## 新逻辑等级处理;

This commit is contained in:
cabbage 2025-10-27 16:50:34 +08:00
parent a8b0ee6b6f
commit f0fe92a1fe
6 changed files with 38 additions and 30 deletions

View File

@ -345,7 +345,7 @@ public interface IMemberServiceApi {
* @param activateFlag 激活标记
* @return
*/
R<?> otherRetailMember(CuMember cuMember, SaOrderExt saOrder, CuMemberAccountExt cuMemberAccountExt, Boolean activateFlag);
R<?> otherRetailMember(CuMember cuMember, SaOrderExt saOrder, CuMemberAccountExt cuMemberAccountExt, Boolean activateFlag, CuMemberLevel cuMemberLevel);
/**
* 校验注册关系是否跨团队
@ -366,6 +366,4 @@ public interface IMemberServiceApi {
*/
R<Integer> getMemberPhoneCount(String phone);
R<Boolean> saveMemberLevel(CuMemberLevel memberLevel);
}

View File

@ -17,7 +17,6 @@ import com.hzs.member.base.dto.ShowWaresDTO;
import com.hzs.member.base.dto.ZeroElementRevokeDTO;
import com.hzs.member.base.service.*;
import com.hzs.member.base.IMemberServiceApi;
import com.hzs.member.detail.service.ICuMemberLevelService;
import com.hzs.member.empty.service.ICuMemberEmptyCodeService;
import com.hzs.member.handlebusiness.dto.AnalysisBusinessAppealParam;
import lombok.extern.slf4j.Slf4j;
@ -43,8 +42,6 @@ public class MemberServiceProvider implements IMemberServiceApi {
private ICuMemberBusinessService iCuMemberBusinessService;
@Autowired
private ICuMemberEmptyCodeService iCuMemberEmptyCodeService;
@Autowired
private ICuMemberLevelService iCuMemberLevelService;
@Override
public R<LoginMember> getMemberInfo(String memberCode) {
@ -341,9 +338,9 @@ public class MemberServiceProvider implements IMemberServiceApi {
}
@Override
public R<?> otherRetailMember(CuMember cuMember, SaOrderExt saOrder, CuMemberAccountExt cuMemberAccountExt, Boolean activateFlag) {
public R<?> otherRetailMember(CuMember cuMember, SaOrderExt saOrder, CuMemberAccountExt cuMemberAccountExt, Boolean activateFlag, CuMemberLevel cuMemberLevel) {
try {
iCuMemberBusinessService.otherRetailMember(cuMember, saOrder, cuMemberAccountExt, activateFlag);
iCuMemberBusinessService.otherRetailMember(cuMember, saOrder, cuMemberAccountExt, activateFlag, cuMemberLevel);
return R.ok();
} catch (Exception e) {
log.error("保存新零售会员其它订单异常! error:", e);
@ -360,9 +357,4 @@ public class MemberServiceProvider implements IMemberServiceApi {
return R.ok(iCuMemberService.getMemberPhoneCount(phone));
}
@Override
public R<Boolean> saveMemberLevel(CuMemberLevel memberLevel) {
return R.ok(iCuMemberLevelService.save(memberLevel));
}
}

View File

@ -2,6 +2,7 @@ package com.hzs.member.base.service;
import com.hzs.common.domain.member.account.CuMemberAccount;
import com.hzs.common.domain.member.base.CuMember;
import com.hzs.common.domain.member.detail.CuMemberLevel;
import com.hzs.common.domain.member.ext.CuMemberAccountExt;
import com.hzs.common.domain.sale.ext.SaOrderExt;
import com.hzs.common.domain.sale.order.SaOrder;
@ -205,6 +206,6 @@ public interface ICuMemberBusinessService {
* @param cuMemberAccountExt 扣款账户
* @param activateFlag 激活标记
*/
void otherRetailMember(CuMember cuMember, SaOrderExt saOrder, CuMemberAccountExt cuMemberAccountExt, Boolean activateFlag);
void otherRetailMember(CuMember cuMember, SaOrderExt saOrder, CuMemberAccountExt cuMemberAccountExt, Boolean activateFlag, CuMemberLevel cuMemberLevel);
}

View File

@ -94,7 +94,7 @@ public class CuMemberBusinessServiceImpl implements ICuMemberBusinessService {
private ICuMemberTradeService cuMemberTradeService;
private ICuMemberLevelService cuMemberLevelService;
private ICuMemberLevelService iCuMemberLevelService;
private ICuMemberAwardsService cuMemberAwardsService;
@ -127,8 +127,8 @@ public class CuMemberBusinessServiceImpl implements ICuMemberBusinessService {
}
@Autowired
public void setCuMemberLevelService(ICuMemberLevelService cuMemberLevelService) {
this.cuMemberLevelService = cuMemberLevelService;
public void setCuMemberLevelService(ICuMemberLevelService iCuMemberLevelService) {
this.iCuMemberLevelService = iCuMemberLevelService;
}
@Autowired
@ -210,7 +210,7 @@ public class CuMemberBusinessServiceImpl implements ICuMemberBusinessService {
.build();
cuMemberLevel.setPkCountry(cuMember.getPkSettleCountry());
cuMemberLevel.setPkCreator(cuMember.getPkId());
return cuMemberLevelService.save(cuMemberLevel);
return iCuMemberLevelService.save(cuMemberLevel);
}
/**
@ -857,7 +857,7 @@ public class CuMemberBusinessServiceImpl implements ICuMemberBusinessService {
Long pkMember = memberList.get(i);
SaOrderExt saOrder = saOrderMap.get(pkMember);
// 删除等级
cuMemberLevelService.deleteCuMemberLevelRecord(saOrder.getPkId(), pkApprove, currentDateTime);
iCuMemberLevelService.deleteCuMemberLevelRecord(saOrder.getPkId(), pkApprove, currentDateTime);
// 回退奖衔,根据订单从 cu_member_awards查询
cuMemberAwardsService.deleteCuMemberAwards(saOrder.getPkId(), pkApprove, currentDateTime);
cuMemberService.deleteCuMemberByPkMember(pkMember, pkApprove, currentDateTime);
@ -1245,7 +1245,7 @@ public class CuMemberBusinessServiceImpl implements ICuMemberBusinessService {
@Transactional(rollbackFor = Exception.class)
@Override
public void otherRetailMember(CuMember cuMember, SaOrderExt saOrder, CuMemberAccountExt cuMemberAccountExt, Boolean activateFlag) {
public void otherRetailMember(CuMember cuMember, SaOrderExt saOrder, CuMemberAccountExt cuMemberAccountExt, Boolean activateFlag, CuMemberLevel cuMemberLevel) {
boolean updateFlag = false;
LambdaUpdateWrapper<CuMember> updateWrapper = new LambdaUpdateWrapper<>();
@ -1255,6 +1255,12 @@ public class CuMemberBusinessServiceImpl implements ICuMemberBusinessService {
updateWrapper.set(null != cuMember.getPayTime(), CuMember::getPayTime, cuMember.getPayTime());
updateFlag = true;
}
if (null != cuMemberLevel) {
updateWrapper.set(CuMember::getPkSettleGrade, cuMember.getPkSettleGrade());
updateFlag = true;
iCuMemberLevelService.save(cuMemberLevel);
}
if (updateFlag) {
// 更新会员信息
updateWrapper.eq(CuMember::getPkId, cuMember.getPkId());

View File

@ -18,17 +18,14 @@ import com.hzs.common.core.utils.*;
import com.hzs.common.core.web.domain.AjaxResult;
import com.hzs.common.domain.member.account.CuMemberAccount;
import com.hzs.common.domain.member.base.CuMember;
import com.hzs.common.domain.member.base.CuMemberShare;
import com.hzs.common.domain.member.detail.CuMemberLevel;
import com.hzs.common.domain.member.ext.CuMemberAccountExt;
import com.hzs.common.domain.sale.ext.BdWaresDetailExt;
import com.hzs.common.domain.sale.ext.SaOrderExt;
import com.hzs.common.domain.sale.ext.SaOrderItemsExt;
import com.hzs.common.domain.sale.order.*;
import com.hzs.common.domain.sale.product.BdProduct;
import com.hzs.common.domain.sale.wares.BdWaresRange;
import com.hzs.common.domain.system.base.BdStorehouse;
import com.hzs.common.domain.system.config.BdAwards;
import com.hzs.common.domain.system.config.BdGrade;
import com.hzs.common.security.utils.SecurityUtils;
import com.hzs.member.account.IMemberAccountServiceApi;
@ -575,10 +572,10 @@ public class RetailOrderServiceImpl implements IRetailOrderService {
// 处理会员激活
Boolean activateFlag = this.handleMemberActivate(buyMember, saOrderExt);
processMemberLevel(buyMember, saOrderExt);
CuMemberLevel cuMemberLevel = processMemberLevel(buyMember, saOrderExt);
// 扣减账户等
// 调用其他服务保存更新会员账户等
R<?> saveResult = iMemberServiceApi.otherRetailMember(buyMember, saOrderExt, memberAccountExt, activateFlag);
R<?> saveResult = iMemberServiceApi.otherRetailMember(buyMember, saOrderExt, memberAccountExt, activateFlag, cuMemberLevel);
if (!saveResult.isSuccess()) {
log.error("新零售 payOtherOrder 会员其它订单失败,{}", saveResult.getMsg());
throw new RuntimeException("下单支付失败");
@ -678,7 +675,7 @@ public class RetailOrderServiceImpl implements IRetailOrderService {
return resultStr;
}
public void processMemberLevel(CuMember gradeMember, SaOrderExt saOrderExt) {
public CuMemberLevel processMemberLevel(CuMember gradeMember, SaOrderExt saOrderExt) {
if (EOrderType.RETAIL_REGISTER.getValue() == saOrderExt.getOrderType()
|| EOrderType.RETAIL_UPGRADE.getValue() == saOrderExt.getOrderType()) {
// 处理等级
@ -687,14 +684,28 @@ public class RetailOrderServiceImpl implements IRetailOrderService {
List<BdGrade> tmpGradeList = iGradeServiceApi.getRetailGradeList().getData();
// 等级值倒序
List<BdGrade> gradeList = tmpGradeList.stream().sorted(Comparator.comparingInt(BdGrade::getGradeValue).reversed()).collect(Collectors.toList());
gradeList.forEach(tmpGrade -> {
for (BdGrade tmpGrade : gradeList) {
if (saOrderExt.getOrderAchieve().compareTo(tmpGrade.getStartValue()) >= 0) {
gradeMember.setPkSettleGrade(tmpGrade.getPkId());
gradeMember.setPkSettleGradeValue(tmpGrade.getGradeValue());
// 记录升级历史
CuMemberLevel cuMemberLevel = CuMemberLevel.builder()
.pkMember(gradeMember.getPkId())
.upType(EUpgradeType.BUY_UPGRADE.getValue())
.oldLevel(bdGrade.getPkId())
.newLevel(tmpGrade.getPkId())
.upgradeTime(saOrderExt.getPayTime())
.pkOrder(saOrderExt.getPkId())
.build();
cuMemberLevel.setPkCountry(gradeMember.getPkSettleCountry());
cuMemberLevel.setPkCreator(gradeMember.getPkId());
return cuMemberLevel;
}
});
}
}
}
return null;
}

View File

@ -22,7 +22,7 @@ public enum ETradeType {
RETAIL_REGISTER_ORDER(141, 0, "注册订单", 0, EnumsPrefixConstants.TRADE_TYPE + 141, EOrderType.RETAIL_REGISTER.getValue()),
RETAIL_UPGRADE_ORDER(142, 0, "甄选订单", 0, EnumsPrefixConstants.TRADE_TYPE + 142, EOrderType.RETAIL_UPGRADE.getValue()),
RETAIL_REPURCHASE_ORDER(143, 0, "复购订单", 0, EnumsPrefixConstants.TRADE_TYPE + 143, EOrderType.RETAIL_REPURCHASE.getValue()),
RETAIL_CONSUME_ORDER(144, 0, "重消订单", 0, EnumsPrefixConstants.TRADE_TYPE + 144, EOrderType.RETAIL_CONSUME.getValue()),
RETAIL_CONSUME_ORDER(144, 0, "赠品订单", 0, EnumsPrefixConstants.TRADE_TYPE + 144, EOrderType.RETAIL_CONSUME.getValue()),
RETAIL_TICKET_ORDER(145, 0, "自主购票", 0, EnumsPrefixConstants.TRADE_TYPE + 145, EOrderType.RETAIL_TICKET.getValue()),
RETAIL_DISCOUNT_ORDER(147, 0, "五折订单", 0, EnumsPrefixConstants.TRADE_TYPE + 147, EOrderType.DISCOUNT_ORDER.getValue()),
@ -71,7 +71,7 @@ public enum ETradeType {
REVOKE_RETAIL_REGISTER_ORDER(641, 0, "注册订单撤单", 0, EnumsPrefixConstants.TRADE_TYPE + 641, -EOrderType.RETAIL_REGISTER.getValue()),
REVOKE_RETAIL_REPURCHASE_ORDER(643, 0, "复购订单撤单", 0, EnumsPrefixConstants.TRADE_TYPE + 643, -EOrderType.RETAIL_REPURCHASE.getValue()),
REVOKE_RETAIL_CONSUME_ORDER(644, 0, "重消订单撤单", 0, EnumsPrefixConstants.TRADE_TYPE + 644, -EOrderType.RETAIL_CONSUME.getValue()),
REVOKE_RETAIL_CONSUME_ORDER(644, 0, "赠品订单撤单", 0, EnumsPrefixConstants.TRADE_TYPE + 644, -EOrderType.RETAIL_CONSUME.getValue()),
REVOKE_RETAIL_TICKET_ORDER(645, 0, "自主购票撤单", 0, EnumsPrefixConstants.TRADE_TYPE + 645, -EOrderType.RETAIL_TICKET.getValue()),
REVOKE_RETAIL_UPGRADE(642, 0, "甄选订单撤单", 0, EnumsPrefixConstants.TRADE_TYPE + 642, -EOrderType.RETAIL_UPGRADE.getValue()),