3
0
Fork 0

## 自助撤单处理推荐人等级;

This commit is contained in:
cabbage 2025-07-14 09:40:48 +08:00
parent 1df74dedba
commit 443dbbe4b8
1 changed files with 57 additions and 90 deletions

View File

@ -90,8 +90,6 @@ public class CuMemberBusinessServiceImpl implements ICuMemberBusinessService {
@Autowired @Autowired
private ICuMemberAchieveService iCuMemberAchieveService; private ICuMemberAchieveService iCuMemberAchieveService;
@Autowired @Autowired
private RedisService redisService;
@Autowired
private ICuMemberService iCuMemberService; private ICuMemberService iCuMemberService;
@Autowired @Autowired
private ICuMemberRegisterService iCuMemberRegisterService; private ICuMemberRegisterService iCuMemberRegisterService;
@ -99,56 +97,23 @@ public class CuMemberBusinessServiceImpl implements ICuMemberBusinessService {
private ICuMemberRetailRegionService iCuMemberRetailRegionService; private ICuMemberRetailRegionService iCuMemberRetailRegionService;
@Autowired @Autowired
private ICuMemberLevelService iCuMemberLevelService; private ICuMemberLevelService iCuMemberLevelService;
private ICuMemberAccountService cuMemberAccountService;
private ICuMemberTradeService cuMemberTradeService;
private ICuMemberAwardsService cuMemberAwardsService;
private ICuMemberChangeLogService cuMemberChangeLogService;
private ICuMemberTradeDetailService cuMemberTradeDetailService;
private ICuMemberTradeBonusService cuMemberTradeBonusService;
private ICuMemberSettlePeriodService cuMemberSettlePeriodService;
@Autowired @Autowired
public void setCuMemberSettlePeriodService(ICuMemberSettlePeriodService cuMemberSettlePeriodService) { private ICuMemberAccountService iCuMemberAccountService;
this.cuMemberSettlePeriodService = cuMemberSettlePeriodService;
}
@Autowired @Autowired
public void setCuMemberTradeBonusService(ICuMemberTradeBonusService cuMemberTradeBonusService) { private ICuMemberTradeService iCuMemberTradeService;
this.cuMemberTradeBonusService = cuMemberTradeBonusService;
}
@Autowired @Autowired
public void setCuMemberTradeDetailService(ICuMemberTradeDetailService cuMemberTradeDetailService) { private ICuMemberAwardsService iCuMemberAwardsService;
this.cuMemberTradeDetailService = cuMemberTradeDetailService;
}
@Autowired @Autowired
public void setCuMemberAwardsService(ICuMemberAwardsService cuMemberAwardsService) { private ICuMemberChangeLogService iCuMemberChangeLogService;
this.cuMemberAwardsService = cuMemberAwardsService;
}
@Autowired @Autowired
public void setCuMemberTradeService(ICuMemberTradeService cuMemberTradeService) { private ICuMemberTradeDetailService iCuMemberTradeDetailService;
this.cuMemberTradeService = cuMemberTradeService;
}
@Autowired @Autowired
public void setCuMemberAccountService(ICuMemberAccountService cuMemberAccountService) { private ICuMemberTradeBonusService iCuMemberTradeBonusService;
this.cuMemberAccountService = cuMemberAccountService;
}
@Autowired @Autowired
public void setCuMemberChangeLogService(ICuMemberChangeLogService cuMemberChangeLogService) { private ICuMemberSettlePeriodService iCuMemberSettlePeriodService;
this.cuMemberChangeLogService = cuMemberChangeLogService; @Autowired
} private RedisService redisService;
@Override @Override
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
@ -227,7 +192,7 @@ public class CuMemberBusinessServiceImpl implements ICuMemberBusinessService {
*/ */
private void saveAwardsUpgrade(CuMember cuMember, Integer levelType, SaOrder saOrder, Integer pkOldAwards) { private void saveAwardsUpgrade(CuMember cuMember, Integer levelType, SaOrder saOrder, Integer pkOldAwards) {
// 记录奖衔升级历史 // 记录奖衔升级历史
CuMemberSettlePeriod cuMemberSettlePeriod = cuMemberSettlePeriodService.getCuMemberSettlePeriodByDate(DateUtils.parseDateToStr(DateUtils.YYYY_MM_DD, saOrder.getPayTime())); CuMemberSettlePeriod cuMemberSettlePeriod = iCuMemberSettlePeriodService.getCuMemberSettlePeriodByDate(DateUtils.parseDateToStr(DateUtils.YYYY_MM_DD, saOrder.getPayTime()));
CuMemberAwards cuMemberAwards = CuMemberAwards.builder() CuMemberAwards cuMemberAwards = CuMemberAwards.builder()
.period(cuMemberSettlePeriod.getPkId()) .period(cuMemberSettlePeriod.getPkId())
.pkMember(cuMember.getPkId()) .pkMember(cuMember.getPkId())
@ -240,7 +205,7 @@ public class CuMemberBusinessServiceImpl implements ICuMemberBusinessService {
.build(); .build();
cuMemberAwards.setPkCountry(cuMember.getPkSettleCountry()); cuMemberAwards.setPkCountry(cuMember.getPkSettleCountry());
cuMemberAwards.setPkCreator(cuMember.getPkId()); cuMemberAwards.setPkCreator(cuMember.getPkId());
cuMemberAwardsService.save(cuMemberAwards); iCuMemberAwardsService.save(cuMemberAwards);
} }
@Override @Override
@ -299,7 +264,7 @@ public class CuMemberBusinessServiceImpl implements ICuMemberBusinessService {
.build(); .build();
cuMemberAccount.setPkCreator(cuMember.getPkCreator()); cuMemberAccount.setPkCreator(cuMember.getPkCreator());
cuMemberAccount.setPkCountry(cuMember.getPkSettleCountry()); cuMemberAccount.setPkCountry(cuMember.getPkSettleCountry());
cuMemberAccountService.save(cuMemberAccount); iCuMemberAccountService.save(cuMemberAccount);
} }
private void saveMemberRecords(CuMember cuMember, SaOrder saOrder) { private void saveMemberRecords(CuMember cuMember, SaOrder saOrder) {
@ -363,7 +328,7 @@ public class CuMemberBusinessServiceImpl implements ICuMemberBusinessService {
} }
CuMemberAccount cuMemberAccount = CuMemberAccount.builder().pkMember(pkMember).build(); CuMemberAccount cuMemberAccount = CuMemberAccount.builder().pkMember(pkMember).build();
cuMemberAccount.setPkCountry(pkCountry); cuMemberAccount.setPkCountry(pkCountry);
List<CuMemberAccountExt> cuMemberAccountExtList = cuMemberAccountService.queryMemberAccountByCondition(cuMemberAccount); List<CuMemberAccountExt> cuMemberAccountExtList = iCuMemberAccountService.queryMemberAccountByCondition(cuMemberAccount);
if (cuMemberAccountExtList.size() == 0) { if (cuMemberAccountExtList.size() == 0) {
throw new RuntimeException("没有找到会员账户"); throw new RuntimeException("没有找到会员账户");
} }
@ -373,7 +338,7 @@ public class CuMemberBusinessServiceImpl implements ICuMemberBusinessService {
BigDecimal originalMoney = ReflectUtils.invokeGetter(cuMemberAccountExt, MemberFieldConstants.ACCOUNT + bdAccount.getFieldValue()); BigDecimal originalMoney = ReflectUtils.invokeGetter(cuMemberAccountExt, MemberFieldConstants.ACCOUNT + bdAccount.getFieldValue());
CuMemberTrade cuMemberTrade = packageMemberTrade(saOrder, pkCountry, bdAccount.getPkId(), originalMoney, tradeMoney, ETradeClassify.RECHARGE.getValue()); CuMemberTrade cuMemberTrade = packageMemberTrade(saOrder, pkCountry, bdAccount.getPkId(), originalMoney, tradeMoney, ETradeClassify.RECHARGE.getValue());
cuMemberTrade.setRemarks("在线充值"); cuMemberTrade.setRemarks("在线充值");
cuMemberTradeService.save(cuMemberTrade); iCuMemberTradeService.save(cuMemberTrade);
BigDecimal afterAccount = ComputeUtil.computeAdd(ReflectUtils.invokeGetter(cuMemberAccountExt, MemberFieldConstants.ACCOUNT + bdAccount.getFieldValue()), tradeMoney); BigDecimal afterAccount = ComputeUtil.computeAdd(ReflectUtils.invokeGetter(cuMemberAccountExt, MemberFieldConstants.ACCOUNT + bdAccount.getFieldValue()), tradeMoney);
ReflectUtils.invokeSetter(cuMemberAccountExt, MemberFieldConstants.ACCOUNT + bdAccount.getFieldValue(), afterAccount); ReflectUtils.invokeSetter(cuMemberAccountExt, MemberFieldConstants.ACCOUNT + bdAccount.getFieldValue(), afterAccount);
ReflectUtils.invokeSetter(cuMemberAccountExt, MemberFieldConstants.PAY_ACCOUNT + bdAccount.getFieldValue(), tradeMoney); ReflectUtils.invokeSetter(cuMemberAccountExt, MemberFieldConstants.PAY_ACCOUNT + bdAccount.getFieldValue(), tradeMoney);
@ -456,7 +421,7 @@ public class CuMemberBusinessServiceImpl implements ICuMemberBusinessService {
cuMemberTradeBonusList.add(cuMemberTradeBonus); cuMemberTradeBonusList.add(cuMemberTradeBonus);
} }
// 查询会员的发放明细 // 查询会员的发放明细
List<CuMemberTradeDetail> cuMemberTradeDetailList = cuMemberTradeDetailService.queryCuMemberTradeDetail(cuMemberAccount.getPkMember()); List<CuMemberTradeDetail> cuMemberTradeDetailList = iCuMemberTradeDetailService.queryCuMemberTradeDetail(cuMemberAccount.getPkMember());
if (cuMemberTradeDetailList.size() > 0 && ComputeUtil.compareValue(bonusTradeMoney)) { if (cuMemberTradeDetailList.size() > 0 && ComputeUtil.compareValue(bonusTradeMoney)) {
// 会员发放交易明细 // 会员发放交易明细
List<CuMemberTradeDetail> updMemberTradeDetailList = new ArrayList<>(); List<CuMemberTradeDetail> updMemberTradeDetailList = new ArrayList<>();
@ -490,11 +455,11 @@ public class CuMemberBusinessServiceImpl implements ICuMemberBusinessService {
updateMemberAccount.setConsumeAccount4(consumeMoney.negate()); updateMemberAccount.setConsumeAccount4(consumeMoney.negate());
} }
// 更新会员发放交易流水表 // 更新会员发放交易流水表
cuMemberTradeDetailService.updateCuMemberTradeDetail(updMemberTradeDetailList); iCuMemberTradeDetailService.updateCuMemberTradeDetail(updMemberTradeDetailList);
} }
if (cuMemberTradeBonusList.size() > 0) { if (cuMemberTradeBonusList.size() > 0) {
// 新增会员奖金交易流水表 // 新增会员奖金交易流水表
cuMemberTradeBonusService.batchInsertCuMemberTradeBonus(cuMemberTradeBonusList); iCuMemberTradeBonusService.batchInsertCuMemberTradeBonus(cuMemberTradeBonusList);
} }
} }
} }
@ -514,7 +479,7 @@ public class CuMemberBusinessServiceImpl implements ICuMemberBusinessService {
private void saveAndUpdateCuMember(List<CuMemberTrade> cuMemberTradeList, CuMemberAccount updateMemberAccount) { private void saveAndUpdateCuMember(List<CuMemberTrade> cuMemberTradeList, CuMemberAccount updateMemberAccount) {
if (cuMemberTradeList.size() > 0) { if (cuMemberTradeList.size() > 0) {
cuMemberTradeService.saveBatch(cuMemberTradeList); iCuMemberTradeService.saveBatch(cuMemberTradeList);
} }
if (null != updateMemberAccount) { if (null != updateMemberAccount) {
updateCuMemberAccount(updateMemberAccount); updateCuMemberAccount(updateMemberAccount);
@ -534,7 +499,7 @@ public class CuMemberBusinessServiceImpl implements ICuMemberBusinessService {
} }
// 更新账户余额 // 更新账户余额
try { try {
if (!cuMemberAccountService.updateMemberAccount(updateMemberAccount, pkMember)) { if (!iCuMemberAccountService.updateMemberAccount(updateMemberAccount, pkMember)) {
throw new RuntimeException("用户付款失败,请重试!"); throw new RuntimeException("用户付款失败,请重试!");
} }
} finally { } finally {
@ -590,8 +555,7 @@ public class CuMemberBusinessServiceImpl implements ICuMemberBusinessService {
deductCancelOrderCost(businessCommissionDTO); deductCancelOrderCost(businessCommissionDTO);
Date currentDateTime = DateUtils.currentDateTime(); Date currentDateTime = DateUtils.currentDateTime();
CuMemberAccount payMemberAccount = cuMemberAccountService.queryCuMemberAccountByPkMember(saOrder.getPkCreator()); CuMemberAccount payMemberAccount = iCuMemberAccountService.queryCuMemberAccountByPkMember(saOrder.getPkCreator());
if (EOrderType.RETAIL_REGISTER.getValue() == saOrder.getOrderType()) { if (EOrderType.RETAIL_REGISTER.getValue() == saOrder.getOrderType()) {
// 会员账号 验证会员账户是否存在金额 // 会员账号 验证会员账户是否存在金额
CuMember member = iCuMemberService.getMemberById(saOrder.getPkMember()); CuMember member = iCuMemberService.getMemberById(saOrder.getPkMember());
@ -620,12 +584,12 @@ public class CuMemberBusinessServiceImpl implements ICuMemberBusinessService {
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
public Boolean singleRevokeMemberBySelfRevokeOrder(Long pkApprove, SaOrderExt saOrder, BusinessCommissionDTO businessCommissionDTO) { public Boolean singleRevokeMemberBySelfRevokeOrder(Long pkApprove, SaOrderExt saOrder, BusinessCommissionDTO businessCommissionDTO) {
deductCancelOrderCost(businessCommissionDTO); deductCancelOrderCost(businessCommissionDTO);
Date currentDateTime = DateUtils.currentDateTime();
// 回退给创建人 // 回退给创建人
CuMemberAccount payMemberAccount = cuMemberAccountService.queryCuMemberAccountByPkMember(saOrder.getPkCreator()); CuMemberAccount payMemberAccount = iCuMemberAccountService.queryCuMemberAccountByPkMember(saOrder.getPkCreator());
if (EOrderType.RETAIL_REGISTER.getValue() == saOrder.getOrderType()) { if (EOrderType.RETAIL_REGISTER.getValue() == saOrder.getOrderType()) {
// 会员账号 验证会员账户是否存在金额 // 会员账号 验证会员账户是否存在金额
CuMember member = iCuMemberService.getMember(saOrder.getPkMember()); CuMember member = iCuMemberService.getMember(saOrder.getPkMember());
//删除会员 //删除会员
LambdaUpdateWrapper<CuMember> updateWrapper = new LambdaUpdateWrapper<>(); LambdaUpdateWrapper<CuMember> updateWrapper = new LambdaUpdateWrapper<>();
updateWrapper.set(CuMember::getMemberCode, CommonUtil.deleteMemberCode(member.getMemberCode())); updateWrapper.set(CuMember::getMemberCode, CommonUtil.deleteMemberCode(member.getMemberCode()));
@ -644,6 +608,9 @@ public class CuMemberBusinessServiceImpl implements ICuMemberBusinessService {
iCuMemberRegisterService.update(updateWrapperRegister); iCuMemberRegisterService.update(updateWrapperRegister);
} }
// 处理推荐人等级
handleParentLevel(saOrder, currentDateTime);
cancelOrderBackAccount(pkApprove, saOrder, payMemberAccount); cancelOrderBackAccount(pkApprove, saOrder, payMemberAccount);
return true; return true;
} }
@ -660,7 +627,7 @@ public class CuMemberBusinessServiceImpl implements ICuMemberBusinessService {
public Boolean updateCuMemberAccountByDraw(Long pkMember, Integer pkCountry, Integer accountValue, BigDecimal rewardMoney) { public Boolean updateCuMemberAccountByDraw(Long pkMember, Integer pkCountry, Integer accountValue, BigDecimal rewardMoney) {
CuMemberAccount cuMemberAccountParam = CuMemberAccount.builder().pkMember(pkMember).build(); CuMemberAccount cuMemberAccountParam = CuMemberAccount.builder().pkMember(pkMember).build();
cuMemberAccountParam.setPkCountry(pkCountry); cuMemberAccountParam.setPkCountry(pkCountry);
List<CuMemberAccountExt> cuMemberAccountExtList = cuMemberAccountService.queryMemberAccountByCondition(cuMemberAccountParam); List<CuMemberAccountExt> cuMemberAccountExtList = iCuMemberAccountService.queryMemberAccountByCondition(cuMemberAccountParam);
if (CollectionUtil.isEmpty(cuMemberAccountExtList)) { if (CollectionUtil.isEmpty(cuMemberAccountExtList)) {
return Boolean.FALSE; return Boolean.FALSE;
} }
@ -692,7 +659,7 @@ public class CuMemberBusinessServiceImpl implements ICuMemberBusinessService {
.build(); .build();
cuMemberTrade.setPkCountry(pkCountry); cuMemberTrade.setPkCountry(pkCountry);
cuMemberTrade.setPkCreator(pkMember); cuMemberTrade.setPkCreator(pkMember);
cuMemberTradeService.save(cuMemberTrade); iCuMemberTradeService.save(cuMemberTrade);
} }
@Override @Override
@ -723,10 +690,10 @@ public class CuMemberBusinessServiceImpl implements ICuMemberBusinessService {
CuMemberAccount updateMemberAccount = new CuMemberAccount(); CuMemberAccount updateMemberAccount = new CuMemberAccount();
List<CuMemberTrade> cuMemberTradeList = packageCancelOrderCuMemberTrades(pkApprove, saOrder, payMemberAccount, newCuMemberTradeBonusList, cuMemberTradeDetailList, updateMemberAccount); List<CuMemberTrade> cuMemberTradeList = packageCancelOrderCuMemberTrades(pkApprove, saOrder, payMemberAccount, newCuMemberTradeBonusList, cuMemberTradeDetailList, updateMemberAccount);
if (newCuMemberTradeBonusList.size() > 0) { if (newCuMemberTradeBonusList.size() > 0) {
cuMemberTradeBonusService.batchInsertCuMemberTradeBonus(newCuMemberTradeBonusList); iCuMemberTradeBonusService.batchInsertCuMemberTradeBonus(newCuMemberTradeBonusList);
} }
// 根据 newCuMemberTradeBonusList 更新 cu_member_trade_detail // 根据 newCuMemberTradeBonusList 更新 cu_member_trade_detail
cuMemberTradeDetailService.updateAddCuMemberTradeDetail(cuMemberTradeDetailList); iCuMemberTradeDetailService.updateAddCuMemberTradeDetail(cuMemberTradeDetailList);
saveAndUpdateCuMember(cuMemberTradeList, updateMemberAccount); saveAndUpdateCuMember(cuMemberTradeList, updateMemberAccount);
} }
@ -748,7 +715,7 @@ public class CuMemberBusinessServiceImpl implements ICuMemberBusinessService {
// 返回的流水明细 // 返回的流水明细
List<CuMemberTrade> cuMemberTradeList = new ArrayList<>(); List<CuMemberTrade> cuMemberTradeList = new ArrayList<>();
List<CuMemberTrade> cuMemberTrades = cuMemberTradeService.queryCuMemberTrade(saOrder.getPkCreator(), saOrder.getOrderCode()); List<CuMemberTrade> cuMemberTrades = iCuMemberTradeService.queryCuMemberTrade(saOrder.getPkCreator(), saOrder.getOrderCode());
// 如果有订单支付流水明细 // 如果有订单支付流水明细
if (CollectionUtil.isNotEmpty(cuMemberTrades)) { if (CollectionUtil.isNotEmpty(cuMemberTrades)) {
// 订单所属国家和订单支付流水国家不相同则为跨国需要以订单支付流水中的国家为准进行退款 // 订单所属国家和订单支付流水国家不相同则为跨国需要以订单支付流水中的国家为准进行退款
@ -787,7 +754,7 @@ public class CuMemberBusinessServiceImpl implements ICuMemberBusinessService {
updateMemberAccount.setConsumeAccount4(BigDecimal.ZERO); updateMemberAccount.setConsumeAccount4(BigDecimal.ZERO);
BigDecimal bonusTradeMoney = tradeMoney; BigDecimal bonusTradeMoney = tradeMoney;
List<Integer> consumeTypeList = Arrays.asList(EConsumeType.ORDER.getValue(), EConsumeType.BACK_ORDER.getValue()); List<Integer> consumeTypeList = Arrays.asList(EConsumeType.ORDER.getValue(), EConsumeType.BACK_ORDER.getValue());
List<CuMemberTradeBonus> cuMemberTradeBonusList = cuMemberTradeBonusService.queryCuMemberTradeBonus(consumeTypeList, saOrder.getPkId()); List<CuMemberTradeBonus> cuMemberTradeBonusList = iCuMemberTradeBonusService.queryCuMemberTradeBonus(consumeTypeList, saOrder.getPkId());
for (CuMemberTradeBonus cuMemberTradeBonus : cuMemberTradeBonusList) { for (CuMemberTradeBonus cuMemberTradeBonus : cuMemberTradeBonusList) {
if (!ComputeUtil.compareValue(bonusTradeMoney)) { if (!ComputeUtil.compareValue(bonusTradeMoney)) {
break; break;
@ -846,7 +813,7 @@ public class CuMemberBusinessServiceImpl implements ICuMemberBusinessService {
// 按照memberList 倒叙往后删除 // 按照memberList 倒叙往后删除
Date currentDateTime = DateUtils.currentDateTime(); Date currentDateTime = DateUtils.currentDateTime();
List<Long> centerIdList = saOrderMap.values().stream().map(BaseEntity::getPkCreator).distinct().collect(Collectors.toList()); List<Long> centerIdList = saOrderMap.values().stream().map(BaseEntity::getPkCreator).distinct().collect(Collectors.toList());
List<CuMemberAccount> cuMemberAccountList = cuMemberAccountService.queryCuMemberAccountByPkMembers(centerIdList); List<CuMemberAccount> cuMemberAccountList = iCuMemberAccountService.queryCuMemberAccountByPkMembers(centerIdList);
Map<Long, CuMemberAccount> cuMemberAccountMap = new HashMap<>(ComputeUtil.mapInitCapacity(cuMemberAccountList.size())); Map<Long, CuMemberAccount> cuMemberAccountMap = new HashMap<>(ComputeUtil.mapInitCapacity(cuMemberAccountList.size()));
cuMemberAccountList.forEach(cuMemberAccount -> cuMemberAccountList.forEach(cuMemberAccount ->
cuMemberAccountMap.put(cuMemberAccount.getPkMember(), cuMemberAccount)); cuMemberAccountMap.put(cuMemberAccount.getPkMember(), cuMemberAccount));
@ -856,9 +823,9 @@ public class CuMemberBusinessServiceImpl implements ICuMemberBusinessService {
// 删除等级 // 删除等级
iCuMemberLevelService.deleteCuMemberLevelRecord(saOrder.getPkId(), pkApprove, currentDateTime); iCuMemberLevelService.deleteCuMemberLevelRecord(saOrder.getPkId(), pkApprove, currentDateTime);
// 回退奖衔,根据订单从 cu_member_awards查询 // 回退奖衔,根据订单从 cu_member_awards查询
cuMemberAwardsService.deleteCuMemberAwards(saOrder.getPkId(), pkApprove, currentDateTime); iCuMemberAwardsService.deleteCuMemberAwards(saOrder.getPkId(), pkApprove, currentDateTime);
iCuMemberService.deleteCuMemberByPkMember(pkMember, pkApprove, currentDateTime); iCuMemberService.deleteCuMemberByPkMember(pkMember, pkApprove, currentDateTime);
cuMemberAccountService.deleteCuMemberAccountByPkMember(pkMember, pkApprove, currentDateTime); iCuMemberAccountService.deleteCuMemberAccountByPkMember(pkMember, pkApprove, currentDateTime);
// 撤销正常订单修改 cu_member_register 账户状态为死点 // 撤销正常订单修改 cu_member_register 账户状态为死点
CuMemberRegister cuMemberRegister = new CuMemberRegister(); CuMemberRegister cuMemberRegister = new CuMemberRegister();
cuMemberRegister.setPkMember(pkMember); cuMemberRegister.setPkMember(pkMember);
@ -873,7 +840,7 @@ public class CuMemberBusinessServiceImpl implements ICuMemberBusinessService {
private void deductCancelOrderCost(BusinessCommissionDTO businessCommissionDTO) { private void deductCancelOrderCost(BusinessCommissionDTO businessCommissionDTO) {
if (businessCommissionDTO != null) { if (businessCommissionDTO != null) {
if (!cuMemberTradeService.businessCommissionSubmit(businessCommissionDTO)) { if (!iCuMemberTradeService.businessCommissionSubmit(businessCommissionDTO)) {
throw new RuntimeException("撤销订单扣除业务手续费失败"); throw new RuntimeException("撤销订单扣除业务手续费失败");
} }
} }
@ -914,7 +881,7 @@ public class CuMemberBusinessServiceImpl implements ICuMemberBusinessService {
if (saOrder.getBackOrderAmount() != null && ComputeUtil.compareValue(saOrder.getBackOrderAmount())) { if (saOrder.getBackOrderAmount() != null && ComputeUtil.compareValue(saOrder.getBackOrderAmount())) {
cancelPartOrderBackAmount(pkApprove, saOrder); cancelPartOrderBackAmount(pkApprove, saOrder);
} else { } else {
CuMemberAccount payMemberAccount = cuMemberAccountService.queryCuMemberAccountByPkMember(saOrder.getPkCreator()); CuMemberAccount payMemberAccount = iCuMemberAccountService.queryCuMemberAccountByPkMember(saOrder.getPkCreator());
// 回退账号余额 // 回退账号余额
cancelOrderBackAccount(pkApprove, saOrder, payMemberAccount); cancelOrderBackAccount(pkApprove, saOrder, payMemberAccount);
} }
@ -924,7 +891,7 @@ public class CuMemberBusinessServiceImpl implements ICuMemberBusinessService {
@Override @Override
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
public Boolean cancelMemberAccount(Long pkMember, SaOrder saOrder) { public Boolean cancelMemberAccount(Long pkMember, SaOrder saOrder) {
CuMemberAccount payMemberAccount = cuMemberAccountService.queryCuMemberAccountByPkMember(pkMember); CuMemberAccount payMemberAccount = iCuMemberAccountService.queryCuMemberAccountByPkMember(pkMember);
// 回退账号余额 // 回退账号余额
cancelOrderBackAccount(pkMember, saOrder, payMemberAccount); cancelOrderBackAccount(pkMember, saOrder, payMemberAccount);
return Boolean.TRUE; return Boolean.TRUE;
@ -932,7 +899,7 @@ public class CuMemberBusinessServiceImpl implements ICuMemberBusinessService {
@Override @Override
public void cancelPartOrderBackAmount(Long pkApprove, SaOrderExt saOrder) { public void cancelPartOrderBackAmount(Long pkApprove, SaOrderExt saOrder) {
CuMemberAccount payMemberAccount = cuMemberAccountService.queryCuMemberAccountByPkMember(saOrder.getPkCreator()); CuMemberAccount payMemberAccount = iCuMemberAccountService.queryCuMemberAccountByPkMember(saOrder.getPkCreator());
BigDecimal backOrderAmount = saOrder.getBackOrderAmount(); BigDecimal backOrderAmount = saOrder.getBackOrderAmount();
// 考虑部分撤单 // 考虑部分撤单
// 部分退回退金额按照 币种扣除的倒叙扣除 现金->消费->奖金 奖金->消费->现金 // 部分退回退金额按照 币种扣除的倒叙扣除 现金->消费->奖金 奖金->消费->现金
@ -952,7 +919,7 @@ public class CuMemberBusinessServiceImpl implements ICuMemberBusinessService {
mustPayMoneyMap.put(areaCurrencyDTO.getPkAccount(), mustPayMoney); mustPayMoneyMap.put(areaCurrencyDTO.getPkAccount(), mustPayMoney);
} }
} }
List<CuMemberTrade> cuMemberTrades = cuMemberTradeService.queryCuMemberTrade(saOrder.getPkCreator(), saOrder.getOrderCode()); List<CuMemberTrade> cuMemberTrades = iCuMemberTradeService.queryCuMemberTrade(saOrder.getPkCreator(), saOrder.getOrderCode());
Map<Integer, CuMemberTrade> cuMemberTradeMap = new HashMap<>(ComputeUtil.mapInitCapacity(cuMemberTrades.size())); Map<Integer, CuMemberTrade> cuMemberTradeMap = new HashMap<>(ComputeUtil.mapInitCapacity(cuMemberTrades.size()));
cuMemberTrades.forEach(cuMemberTrade -> cuMemberTrades.forEach(cuMemberTrade ->
cuMemberTradeMap.put(cuMemberTrade.getPkAccount(), cuMemberTrade)); cuMemberTradeMap.put(cuMemberTrade.getPkAccount(), cuMemberTrade));
@ -997,10 +964,10 @@ public class CuMemberBusinessServiceImpl implements ICuMemberBusinessService {
} }
} }
if (newCuMemberTradeBonusList.size() > 0) { if (newCuMemberTradeBonusList.size() > 0) {
cuMemberTradeBonusService.batchInsertCuMemberTradeBonus(newCuMemberTradeBonusList); iCuMemberTradeBonusService.batchInsertCuMemberTradeBonus(newCuMemberTradeBonusList);
} }
// 根据 newCuMemberTradeBonusList 更新 cu_member_trade_detail // 根据 newCuMemberTradeBonusList 更新 cu_member_trade_detail
cuMemberTradeDetailService.updateAddCuMemberTradeDetail(cuMemberTradeDetailList); iCuMemberTradeDetailService.updateAddCuMemberTradeDetail(cuMemberTradeDetailList);
saveAndUpdateCuMember(cuMemberTradeList, updateMemberAccount); saveAndUpdateCuMember(cuMemberTradeList, updateMemberAccount);
} }
@ -1008,13 +975,13 @@ public class CuMemberBusinessServiceImpl implements ICuMemberBusinessService {
@Override @Override
public String orderChangeProductPre(SaOrder saOrder, SaOrder updateOrder) { public String orderChangeProductPre(SaOrder saOrder, SaOrder updateOrder) {
// 查询会员订单支付币种 // 查询会员订单支付币种
List<CuMemberTrade> cuMemberTrades = cuMemberTradeService.queryCuMemberTrade(saOrder.getPkCreator(), saOrder.getOrderCode()); List<CuMemberTrade> cuMemberTrades = iCuMemberTradeService.queryCuMemberTrade(saOrder.getPkCreator(), saOrder.getOrderCode());
// 查询会员当前余额 // 查询会员当前余额
CuMemberAccount cuMemberAccount = new CuMemberAccount(); CuMemberAccount cuMemberAccount = new CuMemberAccount();
cuMemberAccount.setPkCountry(saOrder.getPkCountry()); cuMemberAccount.setPkCountry(saOrder.getPkCountry());
cuMemberAccount.setPkMember(saOrder.getPkCreator()); cuMemberAccount.setPkMember(saOrder.getPkCreator());
CuMemberAccountExt tmpCuMemberAccount = cuMemberAccountService.queryMemberAccountByCondition(cuMemberAccount).get(0); CuMemberAccountExt tmpCuMemberAccount = iCuMemberAccountService.queryMemberAccountByCondition(cuMemberAccount).get(0);
if (CollectionUtil.isNotEmpty(cuMemberTrades)) { if (CollectionUtil.isNotEmpty(cuMemberTrades)) {
List<AreaCurrencyDTO> currencyDTOList = iAreaCurrencyServiceApi.queryAreaCurrencyByPkCountry(saOrder.getPkCountry()).getData(); List<AreaCurrencyDTO> currencyDTOList = iAreaCurrencyServiceApi.queryAreaCurrencyByPkCountry(saOrder.getPkCountry()).getData();
@ -1053,13 +1020,13 @@ public class CuMemberBusinessServiceImpl implements ICuMemberBusinessService {
public void orderChangeProduct(SaOrder saOrder, SaOrder updateOrder, Long userId, Object obj) { public void orderChangeProduct(SaOrder saOrder, SaOrder updateOrder, Long userId, Object obj) {
if (null != saOrder && null != updateOrder) { if (null != saOrder && null != updateOrder) {
// 撤销订单 // 撤销订单
this.cancelOrderBackAccount(userId, saOrder, cuMemberAccountService.queryCuMemberAccountByPkMember(saOrder.getPkCreator())); this.cancelOrderBackAccount(userId, saOrder, iCuMemberAccountService.queryCuMemberAccountByPkMember(saOrder.getPkCreator()));
// 查询会员当前余额 // 查询会员当前余额
CuMemberAccount cuMemberAccount = new CuMemberAccount(); CuMemberAccount cuMemberAccount = new CuMemberAccount();
cuMemberAccount.setPkCountry(saOrder.getPkCountry()); cuMemberAccount.setPkCountry(saOrder.getPkCountry());
cuMemberAccount.setPkMember(saOrder.getPkCreator()); cuMemberAccount.setPkMember(saOrder.getPkCreator());
CuMemberAccountExt tmpCuMemberAccount = cuMemberAccountService.queryMemberAccountByCondition(cuMemberAccount).get(0); CuMemberAccountExt tmpCuMemberAccount = iCuMemberAccountService.queryMemberAccountByCondition(cuMemberAccount).get(0);
// 获取需要扣除各币种金额 // 获取需要扣除各币种金额
R<CuMemberAccountExt> resultR = iSaOrderServiceApi.queryOrderSpendDetails(tmpCuMemberAccount, updateOrder, null); R<CuMemberAccountExt> resultR = iSaOrderServiceApi.queryOrderSpendDetails(tmpCuMemberAccount, updateOrder, null);
@ -1091,7 +1058,7 @@ public class CuMemberBusinessServiceImpl implements ICuMemberBusinessService {
// 追加业务实体不为null需要处理 // 追加业务实体不为null需要处理
if (obj instanceof BusinessCommissionDTO) { if (obj instanceof BusinessCommissionDTO) {
// 业务办理扣款逻辑 // 业务办理扣款逻辑
if (!cuMemberTradeService.businessCommissionSubmit((BusinessCommissionDTO) obj)) { if (!iCuMemberTradeService.businessCommissionSubmit((BusinessCommissionDTO) obj)) {
throw new ServiceException("业务手续费扣款失败"); throw new ServiceException("业务手续费扣款失败");
} }
} }
@ -1118,7 +1085,7 @@ public class CuMemberBusinessServiceImpl implements ICuMemberBusinessService {
List<CuMemberTrade> saveMemberTradeList = new ArrayList<>(); List<CuMemberTrade> saveMemberTradeList = new ArrayList<>();
// 查询订单创建人账户 // 查询订单创建人账户
CuMemberAccount cuMemberAccount = cuMemberAccountService.queryCuMemberAccountByPkMember(pkMember); CuMemberAccount cuMemberAccount = iCuMemberAccountService.queryCuMemberAccountByPkMember(pkMember);
// 订单所属专区扣币的第一位配置 // 订单所属专区扣币的第一位配置
AreaCurrencyDTO areaCurrencyDTO = iAreaCurrencyServiceApi.queryAreaCurrencyByCondition(saOrder.getOrderType(), pkCountry).getData().get(0); AreaCurrencyDTO areaCurrencyDTO = iAreaCurrencyServiceApi.queryAreaCurrencyByCondition(saOrder.getOrderType(), pkCountry).getData().get(0);
// 专区扣币的第一位配置所用字段 // 专区扣币的第一位配置所用字段
@ -1127,7 +1094,7 @@ public class CuMemberBusinessServiceImpl implements ICuMemberBusinessService {
if (EOrderPayType.WALLET.getValue() == saOrder.getPayType()) { if (EOrderPayType.WALLET.getValue() == saOrder.getPayType()) {
// 钱包支付 // 钱包支付
// 查询之前订单的支付明细 // 查询之前订单的支付明细
List<CuMemberTrade> memberTradeList = cuMemberTradeService.querySourceCodeLastTrade(pkMember, orderCode, null); List<CuMemberTrade> memberTradeList = iCuMemberTradeService.querySourceCodeLastTrade(pkMember, orderCode, null);
// 获取所有账户配置ID // 获取所有账户配置ID
List<Integer> pkAccountList = memberTradeList.stream().map(CuMemberTrade::getPkAccount).collect(Collectors.toList()); List<Integer> pkAccountList = memberTradeList.stream().map(CuMemberTrade::getPkAccount).collect(Collectors.toList());
@ -1191,7 +1158,7 @@ public class CuMemberBusinessServiceImpl implements ICuMemberBusinessService {
} }
// 批量插入会员明细 // 批量插入会员明细
cuMemberTradeService.batchSaveTradeByMemberCode(saveMemberTradeList); iCuMemberTradeService.batchSaveTradeByMemberCode(saveMemberTradeList);
// 奖金账户有变化需要同步处理 可提现奖金账户 // 奖金账户有变化需要同步处理 可提现奖金账户
BigDecimal bonusBigDecimal = ReflectUtils.invokeGetter(updateMemberAccount, MemberFieldConstants.ACCOUNT + 4); BigDecimal bonusBigDecimal = ReflectUtils.invokeGetter(updateMemberAccount, MemberFieldConstants.ACCOUNT + 4);
@ -1200,7 +1167,7 @@ public class CuMemberBusinessServiceImpl implements ICuMemberBusinessService {
ReflectUtils.invokeSetter(updateMemberAccount, MemberFieldConstants.WITHDRAW_ACCOUNT + 4, bonusBigDecimal); ReflectUtils.invokeSetter(updateMemberAccount, MemberFieldConstants.WITHDRAW_ACCOUNT + 4, bonusBigDecimal);
} }
// 更新会员余额 // 更新会员余额
cuMemberAccountService.updateMemberAccount(updateMemberAccount, userId); iCuMemberAccountService.updateMemberAccount(updateMemberAccount, userId);
// 更新创建人账号根据订单类型不同进行处理 // 更新创建人账号根据订单类型不同进行处理
switch (EOrderType.getEnumByValue(saOrder.getOrderType())) { switch (EOrderType.getEnumByValue(saOrder.getOrderType())) {
@ -1217,7 +1184,7 @@ public class CuMemberBusinessServiceImpl implements ICuMemberBusinessService {
cuMemberChangeLog.setPkMember(saOrder.getPkMember()); cuMemberChangeLog.setPkMember(saOrder.getPkMember());
cuMemberChangeLog.setChangeType(EMemberChangeType.ORDER_RETURN.getValue()); cuMemberChangeLog.setChangeType(EMemberChangeType.ORDER_RETURN.getValue());
cuMemberChangeLog.setChangeAfter(ECategory.LOGGED_OUT.getLabel()); cuMemberChangeLog.setChangeAfter(ECategory.LOGGED_OUT.getLabel());
cuMemberChangeLogService.save(cuMemberChangeLog); iCuMemberChangeLogService.save(cuMemberChangeLog);
} }
} }
@ -1241,7 +1208,7 @@ public class CuMemberBusinessServiceImpl implements ICuMemberBusinessService {
cuMemberChangeLog.setChangeAfter(ECategory.LOGGED_OUT.getLabel()); cuMemberChangeLog.setChangeAfter(ECategory.LOGGED_OUT.getLabel());
cuMemberChangeLogList.add(cuMemberChangeLog); cuMemberChangeLogList.add(cuMemberChangeLog);
} }
cuMemberChangeLogService.saveBatch(cuMemberChangeLogList); iCuMemberChangeLogService.saveBatch(cuMemberChangeLogList);
} }
@ -1327,7 +1294,7 @@ public class CuMemberBusinessServiceImpl implements ICuMemberBusinessService {
Date nowDate = new Date(); Date nowDate = new Date();
// 会员账户 // 会员账户
CuMemberAccount cuMemberAccount = cuMemberAccountService.queryCuMemberAccountByPkMember(pkMember); CuMemberAccount cuMemberAccount = iCuMemberAccountService.queryCuMemberAccountByPkMember(pkMember);
// 会员更新账户 // 会员更新账户
CuMemberAccount updateMemberAccount = new CuMemberAccount(); CuMemberAccount updateMemberAccount = new CuMemberAccount();
updateMemberAccount.setPkMember(pkMember); updateMemberAccount.setPkMember(pkMember);
@ -1354,9 +1321,9 @@ public class CuMemberBusinessServiceImpl implements ICuMemberBusinessService {
cuMemberTrade.setCreationTime(nowDate); cuMemberTrade.setCreationTime(nowDate);
// 保存会员交易明细 // 保存会员交易明细
cuMemberTradeService.save(cuMemberTrade); iCuMemberTradeService.save(cuMemberTrade);
// 更新会员账户 // 更新会员账户
cuMemberAccountService.updateMemberAccount(updateMemberAccount, userId); iCuMemberAccountService.updateMemberAccount(updateMemberAccount, userId);
return null; return null;
} }
@ -1464,7 +1431,7 @@ public class CuMemberBusinessServiceImpl implements ICuMemberBusinessService {
.build(); .build();
cuMemberAccount.setPkCreator(cuMember.getPkCreator()); cuMemberAccount.setPkCreator(cuMember.getPkCreator());
cuMemberAccount.setPkCountry(cuMember.getPkSettleCountry()); cuMemberAccount.setPkCountry(cuMember.getPkSettleCountry());
cuMemberAccountService.save(cuMemberAccount); iCuMemberAccountService.save(cuMemberAccount);
// 保存会员注册信息 // 保存会员注册信息
CuMemberRegister cuMemberRegister = BeanUtil.copyProperties(cuMember, CuMemberRegister.class); CuMemberRegister cuMemberRegister = BeanUtil.copyProperties(cuMember, CuMemberRegister.class);