diff --git a/bd-business/bd-business-sale/src/main/java/com/hzs/retail/sale/controller/api/ApiRetailOrderController.java b/bd-business/bd-business-sale/src/main/java/com/hzs/retail/sale/controller/api/ApiRetailOrderController.java index 6a5328a4..c3e183bb 100644 --- a/bd-business/bd-business-sale/src/main/java/com/hzs/retail/sale/controller/api/ApiRetailOrderController.java +++ b/bd-business/bd-business-sale/src/main/java/com/hzs/retail/sale/controller/api/ApiRetailOrderController.java @@ -8,6 +8,7 @@ import com.hzs.common.core.constant.CacheConstants; import com.hzs.common.core.domain.R; import com.hzs.common.core.enums.EGrade; import com.hzs.common.core.enums.ESpecialArea; +import com.hzs.common.core.enums.EYesNo; import com.hzs.common.core.exception.ServiceException; import com.hzs.common.core.service.RedisService; import com.hzs.common.core.utils.StringUtils; @@ -94,7 +95,7 @@ public class ApiRetailOrderController { try { // 购物车中获取商品信息,获取等级 BdGrade bdGrade = iSaOrderService.calculateGrade(levelParam.getSpecialArea(), convertShoppingCarToSku(SecurityUtils.getUserId(), levelParam.getShopList()), - null, levelParam.getUpgradeMember(), SecurityUtils.getSystemType()); + null, levelParam.getUpgradeMember(), SecurityUtils.getSystemType(), EYesNo.NO.getIntValue()); if (null != bdGrade) { orderLevelVO.setIsEnough(true); orderLevelVO.setPkGradeVal(bdGrade.getGradeName()); @@ -276,6 +277,9 @@ public class ApiRetailOrderController { // return AjaxResult.error(relationStr); // } + // 支付入参 + payParam.setIsPay(EYesNo.YES.getIntValue()); + // 封装会员信息 CuMember newMember = iRetailOrderService.packageCuMember(registerParam); // 封装订单信息 @@ -383,6 +387,9 @@ public class ApiRetailOrderController { return AjaxResult.error(otherCheckStr); } + // 支付入参 + payParam.setIsPay(EYesNo.YES.getIntValue()); + // 封装订单信息 SaOrderExt saOrderExt = iRetailOrderService.createSaOrder(upgradeParam, null, updateGradeMember); diff --git a/bd-business/bd-business-sale/src/main/java/com/hzs/retail/sale/controller/service/impl/RetailOrderServiceImpl.java b/bd-business/bd-business-sale/src/main/java/com/hzs/retail/sale/controller/service/impl/RetailOrderServiceImpl.java index 643f1b2f..a1e5bfa2 100644 --- a/bd-business/bd-business-sale/src/main/java/com/hzs/retail/sale/controller/service/impl/RetailOrderServiceImpl.java +++ b/bd-business/bd-business-sale/src/main/java/com/hzs/retail/sale/controller/service/impl/RetailOrderServiceImpl.java @@ -208,7 +208,8 @@ public class RetailOrderServiceImpl implements IRetailOrderService { if (ESpecialArea.RETAIL_REGISTER.getValue() == orderParam.getSpecialArea() || ESpecialArea.RETAIL_UPGRADE.getValue() == orderParam.getSpecialArea()) { // 注册、升级订单,计算会员等级 - BdGrade newGrade = iSaOrderService.calculateGrade(orderParam.getSpecialArea(), orderParam.getOrderItemsParams(), gradeList, cuMember, orderParam.getSystemType()); + BdGrade newGrade = iSaOrderService.calculateGrade(orderParam.getSpecialArea(), orderParam.getOrderItemsParams(), gradeList, + cuMember, orderParam.getSystemType(), orderParam.getIsPay()); if (null == newGrade) { throw new ServiceException("会员不满足升级条件"); } diff --git a/bd-business/bd-business-sale/src/main/java/com/hzs/retail/sale/param/RetailOrderParam.java b/bd-business/bd-business-sale/src/main/java/com/hzs/retail/sale/param/RetailOrderParam.java index 18de1236..a5587c9a 100644 --- a/bd-business/bd-business-sale/src/main/java/com/hzs/retail/sale/param/RetailOrderParam.java +++ b/bd-business/bd-business-sale/src/main/java/com/hzs/retail/sale/param/RetailOrderParam.java @@ -161,4 +161,9 @@ public class RetailOrderParam implements Serializable { */ private Integer systemType; + /** + * 是否支付操作(0=是,1=否) + */ + private Integer isPay; + } diff --git a/bd-business/bd-business-sale/src/main/java/com/hzs/retail/sale/param/RetailOrderPayParam.java b/bd-business/bd-business-sale/src/main/java/com/hzs/retail/sale/param/RetailOrderPayParam.java index 3ce00264..fe2d6b99 100644 --- a/bd-business/bd-business-sale/src/main/java/com/hzs/retail/sale/param/RetailOrderPayParam.java +++ b/bd-business/bd-business-sale/src/main/java/com/hzs/retail/sale/param/RetailOrderPayParam.java @@ -9,11 +9,7 @@ import javax.validation.constraints.NotNull; import java.io.Serializable; /** - * @Description: 新零售订单支付入参 - * @Author: jiang chao - * @Time: 2024/12/12 16:45 - * @Classname: RetailPayOrderParam - * @PackageName: com.hzs.retail.sale.param + * 新零售订单支付入参 */ @Data public class RetailOrderPayParam implements Serializable { @@ -42,4 +38,10 @@ public class RetailOrderPayParam implements Serializable { @JsonIgnore private Integer pkCountry = CountryConstants.CHINA_COUNTRY; + /** + * 是否支付操作(0=是,1=否) + */ + private Integer isPay; + + } diff --git a/bd-business/bd-business-sale/src/main/java/com/hzs/sale/order/service/ISaOrderService.java b/bd-business/bd-business-sale/src/main/java/com/hzs/sale/order/service/ISaOrderService.java index d6a6e692..cee80d55 100644 --- a/bd-business/bd-business-sale/src/main/java/com/hzs/sale/order/service/ISaOrderService.java +++ b/bd-business/bd-business-sale/src/main/java/com/hzs/sale/order/service/ISaOrderService.java @@ -689,7 +689,9 @@ public interface ISaOrderService extends IService { * @param systemType 系统类型 * @return 返回 null 则为不满足升级条件 */ - BdGrade calculateGrade(Integer specialArea, List orderItemsParams, List gradeList, CuMember updateGradeMember, Integer systemType); + BdGrade calculateGrade(Integer specialArea, List orderItemsParams, + List gradeList, CuMember updateGradeMember, + Integer systemType, Integer isPay); /** * 根据盒数计算等级 diff --git a/bd-business/bd-business-sale/src/main/java/com/hzs/sale/order/service/impl/SaOrderServiceImpl.java b/bd-business/bd-business-sale/src/main/java/com/hzs/sale/order/service/impl/SaOrderServiceImpl.java index 4c17c2c1..3c58d33c 100644 --- a/bd-business/bd-business-sale/src/main/java/com/hzs/sale/order/service/impl/SaOrderServiceImpl.java +++ b/bd-business/bd-business-sale/src/main/java/com/hzs/sale/order/service/impl/SaOrderServiceImpl.java @@ -2607,7 +2607,8 @@ public class SaOrderServiceImpl extends ServiceImpl impl @Override public BdGrade calculateGrade(Integer specialArea, List orderItemsParams, - List gradeList, CuMember updateGradeMember, Integer systemType) { + List gradeList, CuMember updateGradeMember, + Integer systemType, Integer isPay) { if (CollectionUtil.isEmpty(gradeList)) { gradeList = iGradeServiceApi.getRetailGradeList().getData(); } @@ -2654,6 +2655,25 @@ public class SaOrderServiceImpl extends ServiceImpl impl return null; } } + + // TODO 2025.06.14 添加新需求,V1-V3,购买多给两级 + if (EYesNo.YES.getIntValue() == isPay) { + // 支付时才进行处理 + if (null != bdGrade) { + if (EGrade.HAI_FAN.getValue() == bdGrade.getGradeValue()) { + // V1 给 V3 + bdGrade = gradeList.stream().filter(tmpData -> EGrade.MAKER.getValue() == tmpData.getGradeValue()).findFirst().get(); + } else if (EGrade.YOU_KE.getValue() == bdGrade.getGradeValue()) { + // V2 给 V4 + bdGrade = gradeList.stream().filter(tmpData -> EGrade.VIP.getValue() == tmpData.getGradeValue()).findFirst().get(); + } else if (EGrade.MAKER.getValue() == bdGrade.getGradeValue()) { + // V3 给 V5 + bdGrade = gradeList.stream().filter(tmpData -> EGrade.S_VIP.getValue() == tmpData.getGradeValue()).findFirst().get(); + } + } + } + + return bdGrade; }