diff --git a/platform-biz-service/src/main/java/com/lyms/platform/permission/service/CouponService.java b/platform-biz-service/src/main/java/com/lyms/platform/permission/service/CouponService.java index b112448..ae00ead 100644 --- a/platform-biz-service/src/main/java/com/lyms/platform/permission/service/CouponService.java +++ b/platform-biz-service/src/main/java/com/lyms/platform/permission/service/CouponService.java @@ -44,5 +44,7 @@ public interface CouponService{ Map findCouponByCode(Map param); + BaseObjectResponse validateUse(String code, Integer type, String hospitalId); + int updateCouponStatus(Map param); } diff --git a/platform-biz-service/src/main/java/com/lyms/platform/permission/service/impl/CouponServiceImpl.java b/platform-biz-service/src/main/java/com/lyms/platform/permission/service/impl/CouponServiceImpl.java index ed21983..bc29022 100644 --- a/platform-biz-service/src/main/java/com/lyms/platform/permission/service/impl/CouponServiceImpl.java +++ b/platform-biz-service/src/main/java/com/lyms/platform/permission/service/impl/CouponServiceImpl.java @@ -357,6 +357,58 @@ public class CouponServiceImpl implements CouponService { return RespBuilder.buildSuccess(patientsInfo); } + + + @Override + public BaseObjectResponse validateUse(String code, Integer type, String hospitalId) { + Map param = new HashMap<>(); + param.put("code", code); + param.put("type", type); + List couponInfos = couponMapper.findList(param); + if(CollectionUtils.isEmpty(couponInfos)) + return RespBuilder.buildErro(ResponseCode.COUPON_NOT_FOUND); + if(couponInfos.size() > 1) + return RespBuilder.buildErro(ResponseCode.COUPON_NOT_UNIQUE); + + CouponInfo couponInfo = couponInfos.get(0); + Map patientsInfo = getPatientsInfo(couponInfo.getUserId()); + + if(couponInfo.getStatus() == 3) { + return RespBuilder.buildErro(ResponseCode.COUPON_IS_INVALID, patientsInfo); + } + if(couponInfo.getStatus() == -1) { + return RespBuilder.buildErro(ResponseCode.COUPON_IS_DISABLED, patientsInfo); + } + if(couponInfo.getStatus() == 2) { + return RespBuilder.buildErro(ResponseCode.COUPON_IS_USERD, patientsInfo); + } + + Map data = couponMapper.findValidateParam(param); + if(MapUtils.isEmpty(data)) { + return RespBuilder.buildErro(ResponseCode.COUPON_NOT_AVAILABLE, patientsInfo); + } + + + /** 验证区域 */ + if(!validateArea(data.get("area_type").toString(), couponInfo.getCreateHospitalId(), hospitalId)) { + return RespBuilder.buildErro(ResponseCode.COUPON_AREA_NO_USE, patientsInfo); + } + + //验证优惠劵是否临时使用了 该功能属于秦皇岛区域 + if (couponInfo.getTempStatus() != null && couponInfo.getTempStatus() == 1) + { + //验证临时使用的医院是不是当前登陆的医院 + if (StringUtils.isNotEmpty(couponInfo.getTempHospitalId()) && !couponInfo.getTempHospitalId().equals(hospitalId)) + { + return RespBuilder.buildErro(ResponseCode.COUPON_IS_USED); + } + } + + + return RespBuilder.buildSuccess(patientsInfo); + } + + @Override public Map getPatientsInfo(String userId) { Map restMap = new HashMap<>(); diff --git a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/CouponPrintController.java b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/CouponPrintController.java index 0921f3e..029fd45 100644 --- a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/CouponPrintController.java +++ b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/CouponPrintController.java @@ -137,7 +137,7 @@ public class CouponPrintController extends BaseController{ Object type = couponInfo.get("type"); //验证优惠劵是否可以使用 - BaseObjectResponse objectResponse = couponService.validate(code, Integer.parseInt(type.toString()), hospitalId); + BaseObjectResponse objectResponse = couponService.validateUse(code, Integer.parseInt(type.toString()), hospitalId); if (objectResponse.getErrorcode() != ResponseCode.SUCCESS.getCode()) { return objectResponse; @@ -207,7 +207,7 @@ public class CouponPrintController extends BaseController{ Object type = couponInfo.get("type"); //验证优惠劵是否可以使用 - BaseObjectResponse objectResponse = couponService.validate(code,Integer.parseInt(type.toString()),hospitalId); + BaseObjectResponse objectResponse = couponService.validateUse(code,Integer.parseInt(type.toString()),hospitalId); if (objectResponse.getErrorcode() != ResponseCode.SUCCESS.getCode()) { return objectResponse;