forked from angelo/java-retail-app
## 新需求,注册、升级支付多送两级;
This commit is contained in:
parent
13e63c3493
commit
b6cd6624a1
|
@ -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);
|
||||||
|
|
||||||
|
|
|
@ -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("会员不满足升级条件");
|
||||||
}
|
}
|
||||||
|
|
|
@ -161,4 +161,9 @@ public class RetailOrderParam implements Serializable {
|
||||||
*/
|
*/
|
||||||
private Integer systemType;
|
private Integer systemType;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 是否支付操作(0=是,1=否)
|
||||||
|
*/
|
||||||
|
private Integer isPay;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -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;
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -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);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 根据盒数计算等级
|
* 根据盒数计算等级
|
||||||
|
|
|
@ -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;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue