|
|
@@ -18,15 +18,13 @@ import com.fs.company.service.ICompanyUserService;
|
|
|
import com.fs.course.service.IFsUserCompanyUserService;
|
|
|
import com.fs.course.service.IFsUserCourseVideoService;
|
|
|
import com.fs.his.domain.FsDoctor;
|
|
|
+import com.fs.his.domain.FsPackage;
|
|
|
import com.fs.his.domain.FsUser;
|
|
|
import com.fs.his.dto.FindUsersByDTO;
|
|
|
import com.fs.his.param.FindUserByParam;
|
|
|
import com.fs.his.param.FsUserCouponUParam;
|
|
|
import com.fs.his.param.FsUserEditPushParam;
|
|
|
-import com.fs.his.service.IFsDoctorService;
|
|
|
-import com.fs.his.service.IFsPackageService;
|
|
|
-import com.fs.his.service.IFsUserCouponService;
|
|
|
-import com.fs.his.service.IFsUserService;
|
|
|
+import com.fs.his.service.*;
|
|
|
import com.fs.his.utils.PhoneUtil;
|
|
|
import com.fs.his.vo.FsUserCouponCountUVO;
|
|
|
import com.fs.his.vo.FsUserCouponListUVO;
|
|
|
@@ -55,10 +53,9 @@ import java.io.*;
|
|
|
import java.math.BigDecimal;
|
|
|
import java.math.RoundingMode;
|
|
|
import java.net.URL;
|
|
|
-import java.util.ArrayList;
|
|
|
-import java.util.HashMap;
|
|
|
+import java.util.*;
|
|
|
import java.util.List;
|
|
|
-import java.util.Map;
|
|
|
+import java.util.stream.Collectors;
|
|
|
|
|
|
import static com.fs.his.utils.PhoneUtil.decryptPhoneMk;
|
|
|
import static com.fs.his.utils.PhoneUtil.encryptPhone;
|
|
|
@@ -83,6 +80,8 @@ public class UserController extends AppBaseController {
|
|
|
private IQwAppContactWayService qwAppContactWayService;
|
|
|
@Autowired
|
|
|
private IFsUserCourseVideoService courseVideoService;
|
|
|
+ @Autowired
|
|
|
+ private IFsPackageOrderService packageOrderService;
|
|
|
|
|
|
|
|
|
@Autowired
|
|
|
@@ -298,8 +297,31 @@ public class UserController extends AppBaseController {
|
|
|
public R getMyEnableCouponList(FsUserCouponUParam param, HttpServletRequest request){
|
|
|
param.setUserId(Long.parseLong(getUserId()));
|
|
|
List<FsUserCouponListUVO> list=couponService.getMyEnableCouponList(param);
|
|
|
+
|
|
|
+ // 尝试获取疗法券关联的套餐项目ID(仅券类型含5或6且有orderId时)
|
|
|
+ Integer packageProjectId = resolvePackageProjectId(param);
|
|
|
+
|
|
|
+ // 过滤:有projectId限制的券,必须与套餐项目匹配;无限制的券(projectId为null)始终保留
|
|
|
+ list = list.stream()
|
|
|
+ .filter(coupon -> coupon.getProjectId() == null || coupon.getProjectId().equals(packageProjectId))
|
|
|
+ .collect(Collectors.toList());
|
|
|
+
|
|
|
return R.ok().put("data",list);
|
|
|
}
|
|
|
+
|
|
|
+ private Integer resolvePackageProjectId(FsUserCouponUParam param) {
|
|
|
+ if (StringUtils.isBlank(param.getCouponType()) || param.getOrderId() == null) {
|
|
|
+ return null;
|
|
|
+ }
|
|
|
+ String[] types = param.getCouponType().split(",");
|
|
|
+ boolean isTherapyCoupon = Arrays.stream(types).anyMatch(t -> Arrays.asList("5", "6").contains(t));
|
|
|
+ if (!isTherapyCoupon) {
|
|
|
+ return null;
|
|
|
+ }
|
|
|
+ FsPackage fsPackage = packageOrderService.selectFsPackageByOrderId(param.getOrderId());
|
|
|
+ return (fsPackage != null) ? fsPackage.getProjectId() : null;
|
|
|
+ }
|
|
|
+
|
|
|
@Login
|
|
|
@ApiOperation("获取用户优惠券数量")
|
|
|
@GetMapping("/getMyCouponCount")
|