diff --git a/mallinkPosApi/src/main/java/com/iformall/service/impl/PosServiceImpl.java b/mallinkPosApi/src/main/java/com/iformall/service/impl/PosServiceImpl.java index 20089defb..32ca6284a 100644 --- a/mallinkPosApi/src/main/java/com/iformall/service/impl/PosServiceImpl.java +++ b/mallinkPosApi/src/main/java/com/iformall/service/impl/PosServiceImpl.java @@ -123,6 +123,13 @@ public class PosServiceImpl implements PosService { logger.error(errMessage); throw new MallinkException(ErrorCode.SYS_PARAMETER_NOT_NULL.getCode(), errMessage); } + + PosMallConfig config = posMallConfigService.getByTenantId(tenantId); + if (config == null) { + logger.error(ErrorCode.POS_CONFIG_NOT_FOUND.getMessage()); + throw new MallinkException(ErrorCode.POS_CONFIG_NOT_FOUND); + } + if (StringUtils.isBlank(merchantIdStr)) { String errMessage = "request params[merchant_id] error."; logger.error(errMessage); @@ -179,12 +186,6 @@ public class PosServiceImpl implements PosService { throw new MallinkException(ErrorCode.SYS_PARAMETER_CAST_ERROR); } - PosMallConfig config = posMallConfigService.getByTenantId(tenantId); - if (config == null) { - logger.error(ErrorCode.POS_CONFIG_NOT_FOUND.getMessage()); - throw new MallinkException(ErrorCode.POS_CONFIG_NOT_FOUND); - } - Integer discount = 100; if (config.getDiscount().equals(EnumEnableType.Enable.getCode())) { @@ -221,34 +222,38 @@ public class PosServiceImpl implements PosService { Double remainAmountD = posAmount * 1.0D * discount / 100; long remainAmount = Math.round(remainAmountD); + // 优惠券列表 + if (config.getCoupon().equals(EnumEnableType.Enable.getCode())) { + Map coQ = new HashMap<>(); + coQ.put("tenantId", tenantId); + coQ.put("cUserId", user.getId()); + coQ.put("merchantId", merchantId); + coQ.put("posOrderId", posOrderId); + List couponOrderList = couponOrderService.findAvailCouponOrder(coQ); + if (couponOrderList.size() > 0) { + retMap.put(WxPayConstant.AVAIL_CO_LIST, + JSONArray.toJSONString( + couponOrderList + .stream() + .filter(co -> + (co.get("type") == EnumCouponType.COUPON_MULTIMCH.getCode() || + co.get("type") == EnumCouponType.COUPON_MANJIAN.getCode() || + co.get("type") == EnumCouponType.COUPON_DAIJIN.getCode() + )) + .collect(Collectors.toList()) + )); + } else { + retMap.put(WxPayConstant.AVAIL_CO_LIST, "[]"); + } + } else { + retMap.put(WxPayConstant.AVAIL_CO_LIST, "[]"); + } retMap.put(WxPayConstant.MEM_ID, user.getId().toString()); retMap.put(WxPayConstant.MEM_PHONE, user.getPhone()); retMap.put(WxPayConstant.ORG_AMOUNT, posAmountStr); retMap.put(WxPayConstant.REMAIN_AMOUNT, String.valueOf(remainAmount)); - // 优惠券列表 - Map coQ = new HashMap<>(); - coQ.put("tenantId", tenantId); - coQ.put("cUserId", user.getId()); - coQ.put("merchantId", merchantId); - coQ.put("posOrderId", posOrderId); - List couponOrderList = couponOrderService.findAvailCouponOrder(coQ); - if (couponOrderList.size() > 0) { - retMap.put(WxPayConstant.AVAIL_CO_LIST, - JSONArray.toJSONString( - couponOrderList - .stream() - .filter(co -> - (co.get("type") == EnumCouponType.COUPON_MULTIMCH.getCode() || - co.get("type") == EnumCouponType.COUPON_MANJIAN.getCode() || - co.get("type") == EnumCouponType.COUPON_DAIJIN.getCode() - )) - .collect(Collectors.toList()) - )); - } else { - retMap.put(WxPayConstant.AVAIL_CO_LIST, "[]"); - } return retMap; } @@ -270,6 +275,15 @@ public class PosServiceImpl implements PosService { logger.error(errMessage); throw new MallinkException(ErrorCode.SYS_PARAMETER_NOT_NULL.getCode(), errMessage); } + PosMallConfig config = posMallConfigService.getByTenantId(tenantId); + if (config == null) { + logger.error(ErrorCode.POS_CONFIG_NOT_FOUND.getMessage()); + throw new MallinkException(ErrorCode.POS_CONFIG_NOT_FOUND); + } + if (!config.getCoupon().equals(EnumEnableType.Enable.getCode())) { + logger.error(ErrorCode.POS_CONFIG_MEM_COUPON_DISABLE.getMessage()); + throw new MallinkException(ErrorCode.POS_CONFIG_MEM_COUPON_DISABLE); + } if (StringUtils.isBlank(merchantIdStr)) { String errMessage = "request params[merchant_id] error."; logger.error(errMessage); @@ -388,6 +402,15 @@ public class PosServiceImpl implements PosService { logger.error(errMessage); throw new MallinkException(ErrorCode.SYS_PARAMETER_NOT_NULL.getCode(), errMessage); } + PosMallConfig config = posMallConfigService.getByTenantId(tenantId); + if (config == null) { + logger.error(ErrorCode.POS_CONFIG_NOT_FOUND.getMessage()); + throw new MallinkException(ErrorCode.POS_CONFIG_NOT_FOUND); + } + if (!config.getCoupon().equals(EnumEnableType.Enable.getCode())) { + logger.error(ErrorCode.POS_CONFIG_MEM_COUPON_DISABLE.getMessage()); + throw new MallinkException(ErrorCode.POS_CONFIG_MEM_COUPON_DISABLE); + } if (StringUtils.isBlank(merchantIdStr)) { String errMessage = "request params[merchant_id] error."; logger.error(errMessage); diff --git a/mallinkService/src/main/java/com/iformall/common/ErrorCode.java b/mallinkService/src/main/java/com/iformall/common/ErrorCode.java index 366ce4a6f..067e1e3b2 100644 --- a/mallinkService/src/main/java/com/iformall/common/ErrorCode.java +++ b/mallinkService/src/main/java/com/iformall/common/ErrorCode.java @@ -233,6 +233,8 @@ public enum ErrorCode{ * POS */ POS_CONFIG_NOT_FOUND(11100, "POS会员相关未设置"), + POS_CONFIG_MEM_DISCOUNT_DISABLE(11101, "POS会员折扣未启用"), + POS_CONFIG_MEM_COUPON_DISABLE(11102, "POS会员优惠券未启用"), /**