## 新需求,注册、升级支付多送两级;

This commit is contained in:
cabbage 2025-06-14 16:31:35 +08:00
parent ea76dfab3b
commit b9ddee109f
6 changed files with 46 additions and 9 deletions

View File

@ -8,6 +8,7 @@ import com.hzs.common.core.constant.CacheConstants;
import com.hzs.common.core.domain.R; import com.hzs.common.core.domain.R;
import com.hzs.common.core.enums.EGrade; import com.hzs.common.core.enums.EGrade;
import com.hzs.common.core.enums.ESpecialArea; 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.exception.ServiceException;
import com.hzs.common.core.service.RedisService; import com.hzs.common.core.service.RedisService;
import com.hzs.common.core.utils.StringUtils; import com.hzs.common.core.utils.StringUtils;
@ -94,7 +95,7 @@ public class ApiRetailOrderController {
try { try {
// 购物车中获取商品信息获取等级 // 购物车中获取商品信息获取等级
BdGrade bdGrade = iSaOrderService.calculateGrade(levelParam.getSpecialArea(), convertShoppingCarToSku(SecurityUtils.getUserId(), levelParam.getShopList()), 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) { if (null != bdGrade) {
orderLevelVO.setIsEnough(true); orderLevelVO.setIsEnough(true);
orderLevelVO.setPkGradeVal(bdGrade.getGradeName()); orderLevelVO.setPkGradeVal(bdGrade.getGradeName());
@ -276,6 +277,9 @@ public class ApiRetailOrderController {
// return AjaxResult.error(relationStr); // return AjaxResult.error(relationStr);
// } // }
// 支付入参
payParam.setIsPay(EYesNo.YES.getIntValue());
// 封装会员信息 // 封装会员信息
CuMember newMember = iRetailOrderService.packageCuMember(registerParam); CuMember newMember = iRetailOrderService.packageCuMember(registerParam);
// 封装订单信息 // 封装订单信息
@ -383,6 +387,9 @@ public class ApiRetailOrderController {
return AjaxResult.error(otherCheckStr); return AjaxResult.error(otherCheckStr);
} }
// 支付入参
payParam.setIsPay(EYesNo.YES.getIntValue());
// 封装订单信息 // 封装订单信息
SaOrderExt saOrderExt = iRetailOrderService.createSaOrder(upgradeParam, null, updateGradeMember); SaOrderExt saOrderExt = iRetailOrderService.createSaOrder(upgradeParam, null, updateGradeMember);

View File

@ -208,7 +208,8 @@ public class RetailOrderServiceImpl implements IRetailOrderService {
if (ESpecialArea.RETAIL_REGISTER.getValue() == orderParam.getSpecialArea() if (ESpecialArea.RETAIL_REGISTER.getValue() == orderParam.getSpecialArea()
|| ESpecialArea.RETAIL_UPGRADE.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) { if (null == newGrade) {
throw new ServiceException("会员不满足升级条件"); throw new ServiceException("会员不满足升级条件");
} }

View File

@ -161,4 +161,9 @@ public class RetailOrderParam implements Serializable {
*/ */
private Integer systemType; private Integer systemType;
/**
* 是否支付操作0=1=
*/
private Integer isPay;
} }

View File

@ -9,11 +9,7 @@ import javax.validation.constraints.NotNull;
import java.io.Serializable; import java.io.Serializable;
/** /**
* @Description: 新零售订单支付入参 * 新零售订单支付入参
* @Author: jiang chao
* @Time: 2024/12/12 16:45
* @Classname: RetailPayOrderParam
* @PackageName: com.hzs.retail.sale.param
*/ */
@Data @Data
public class RetailOrderPayParam implements Serializable { public class RetailOrderPayParam implements Serializable {
@ -42,4 +38,10 @@ public class RetailOrderPayParam implements Serializable {
@JsonIgnore @JsonIgnore
private Integer pkCountry = CountryConstants.CHINA_COUNTRY; private Integer pkCountry = CountryConstants.CHINA_COUNTRY;
/**
* 是否支付操作0=1=
*/
private Integer isPay;
} }

View File

@ -689,7 +689,9 @@ public interface ISaOrderService extends IService<SaOrder> {
* @param systemType 系统类型 * @param systemType 系统类型
* @return 返回 null 则为不满足升级条件 * @return 返回 null 则为不满足升级条件
*/ */
BdGrade calculateGrade(Integer specialArea, List<OrderItemsParam> orderItemsParams, List<BdGrade> gradeList, CuMember updateGradeMember, Integer systemType); BdGrade calculateGrade(Integer specialArea, List<OrderItemsParam> orderItemsParams,
List<BdGrade> gradeList, CuMember updateGradeMember,
Integer systemType, Integer isPay);
/** /**
* 根据盒数计算等级 * 根据盒数计算等级

View File

@ -2607,7 +2607,8 @@ public class SaOrderServiceImpl extends ServiceImpl<SaOrderMapper, SaOrder> impl
@Override @Override
public BdGrade calculateGrade(Integer specialArea, List<OrderItemsParam> orderItemsParams, public BdGrade calculateGrade(Integer specialArea, List<OrderItemsParam> orderItemsParams,
List<BdGrade> gradeList, CuMember updateGradeMember, Integer systemType) { List<BdGrade> gradeList, CuMember updateGradeMember,
Integer systemType, Integer isPay) {
if (CollectionUtil.isEmpty(gradeList)) { if (CollectionUtil.isEmpty(gradeList)) {
gradeList = iGradeServiceApi.getRetailGradeList().getData(); gradeList = iGradeServiceApi.getRetailGradeList().getData();
} }
@ -2654,6 +2655,25 @@ public class SaOrderServiceImpl extends ServiceImpl<SaOrderMapper, SaOrder> impl
return null; 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; return bdGrade;
} }