3
0
Fork 0

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

This commit is contained in:
cabbage 2025-06-14 16:31:35 +08:00
parent 13e63c3493
commit b6cd6624a1
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.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);

View File

@ -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("会员不满足升级条件");
}

View File

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

View File

@ -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;
}

View File

@ -689,7 +689,9 @@ public interface ISaOrderService extends IService<SaOrder> {
* @param systemType 系统类型
* @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
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)) {
gradeList = iGradeServiceApi.getRetailGradeList().getData();
}
@ -2654,6 +2655,25 @@ public class SaOrderServiceImpl extends ServiceImpl<SaOrderMapper, SaOrder> 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;
}