forked from angelo/java-retail-app
Merge remote-tracking branch 'origin/dev' into dev
This commit is contained in:
commit
59216b24d5
|
@ -4,6 +4,7 @@ import cn.hutool.core.bean.BeanUtil;
|
|||
import cn.hutool.core.collection.CollectionUtil;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
|
||||
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
||||
import com.hzs.common.core.constant.*;
|
||||
import com.hzs.common.core.constant.msg.MemberMsgConstants;
|
||||
import com.hzs.common.core.domain.R;
|
||||
|
@ -90,8 +91,6 @@ public class CuMemberBusinessServiceImpl implements ICuMemberBusinessService {
|
|||
@Autowired
|
||||
private ICuMemberAchieveService iCuMemberAchieveService;
|
||||
@Autowired
|
||||
private RedisService redisService;
|
||||
@Autowired
|
||||
private ICuMemberService iCuMemberService;
|
||||
@Autowired
|
||||
private ICuMemberRegisterService iCuMemberRegisterService;
|
||||
|
@ -99,56 +98,23 @@ public class CuMemberBusinessServiceImpl implements ICuMemberBusinessService {
|
|||
private ICuMemberRetailRegionService iCuMemberRetailRegionService;
|
||||
@Autowired
|
||||
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
|
||||
public void setCuMemberSettlePeriodService(ICuMemberSettlePeriodService cuMemberSettlePeriodService) {
|
||||
this.cuMemberSettlePeriodService = cuMemberSettlePeriodService;
|
||||
}
|
||||
|
||||
private ICuMemberAccountService iCuMemberAccountService;
|
||||
@Autowired
|
||||
public void setCuMemberTradeBonusService(ICuMemberTradeBonusService cuMemberTradeBonusService) {
|
||||
this.cuMemberTradeBonusService = cuMemberTradeBonusService;
|
||||
}
|
||||
|
||||
private ICuMemberTradeService iCuMemberTradeService;
|
||||
@Autowired
|
||||
public void setCuMemberTradeDetailService(ICuMemberTradeDetailService cuMemberTradeDetailService) {
|
||||
this.cuMemberTradeDetailService = cuMemberTradeDetailService;
|
||||
}
|
||||
|
||||
private ICuMemberAwardsService iCuMemberAwardsService;
|
||||
@Autowired
|
||||
public void setCuMemberAwardsService(ICuMemberAwardsService cuMemberAwardsService) {
|
||||
this.cuMemberAwardsService = cuMemberAwardsService;
|
||||
}
|
||||
|
||||
private ICuMemberChangeLogService iCuMemberChangeLogService;
|
||||
@Autowired
|
||||
public void setCuMemberTradeService(ICuMemberTradeService cuMemberTradeService) {
|
||||
this.cuMemberTradeService = cuMemberTradeService;
|
||||
}
|
||||
|
||||
private ICuMemberTradeDetailService iCuMemberTradeDetailService;
|
||||
@Autowired
|
||||
public void setCuMemberAccountService(ICuMemberAccountService cuMemberAccountService) {
|
||||
this.cuMemberAccountService = cuMemberAccountService;
|
||||
}
|
||||
|
||||
|
||||
private ICuMemberTradeBonusService iCuMemberTradeBonusService;
|
||||
@Autowired
|
||||
public void setCuMemberChangeLogService(ICuMemberChangeLogService cuMemberChangeLogService) {
|
||||
this.cuMemberChangeLogService = cuMemberChangeLogService;
|
||||
}
|
||||
private ICuMemberSettlePeriodService iCuMemberSettlePeriodService;
|
||||
@Autowired
|
||||
private RedisService redisService;
|
||||
|
||||
|
||||
@Override
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
|
@ -227,7 +193,7 @@ public class CuMemberBusinessServiceImpl implements ICuMemberBusinessService {
|
|||
*/
|
||||
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()
|
||||
.period(cuMemberSettlePeriod.getPkId())
|
||||
.pkMember(cuMember.getPkId())
|
||||
|
@ -240,7 +206,7 @@ public class CuMemberBusinessServiceImpl implements ICuMemberBusinessService {
|
|||
.build();
|
||||
cuMemberAwards.setPkCountry(cuMember.getPkSettleCountry());
|
||||
cuMemberAwards.setPkCreator(cuMember.getPkId());
|
||||
cuMemberAwardsService.save(cuMemberAwards);
|
||||
iCuMemberAwardsService.save(cuMemberAwards);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -299,7 +265,7 @@ public class CuMemberBusinessServiceImpl implements ICuMemberBusinessService {
|
|||
.build();
|
||||
cuMemberAccount.setPkCreator(cuMember.getPkCreator());
|
||||
cuMemberAccount.setPkCountry(cuMember.getPkSettleCountry());
|
||||
cuMemberAccountService.save(cuMemberAccount);
|
||||
iCuMemberAccountService.save(cuMemberAccount);
|
||||
}
|
||||
|
||||
private void saveMemberRecords(CuMember cuMember, SaOrder saOrder) {
|
||||
|
@ -363,7 +329,7 @@ public class CuMemberBusinessServiceImpl implements ICuMemberBusinessService {
|
|||
}
|
||||
CuMemberAccount cuMemberAccount = CuMemberAccount.builder().pkMember(pkMember).build();
|
||||
cuMemberAccount.setPkCountry(pkCountry);
|
||||
List<CuMemberAccountExt> cuMemberAccountExtList = cuMemberAccountService.queryMemberAccountByCondition(cuMemberAccount);
|
||||
List<CuMemberAccountExt> cuMemberAccountExtList = iCuMemberAccountService.queryMemberAccountByCondition(cuMemberAccount);
|
||||
if (cuMemberAccountExtList.size() == 0) {
|
||||
throw new RuntimeException("没有找到会员账户");
|
||||
}
|
||||
|
@ -373,7 +339,7 @@ public class CuMemberBusinessServiceImpl implements ICuMemberBusinessService {
|
|||
BigDecimal originalMoney = ReflectUtils.invokeGetter(cuMemberAccountExt, MemberFieldConstants.ACCOUNT + bdAccount.getFieldValue());
|
||||
CuMemberTrade cuMemberTrade = packageMemberTrade(saOrder, pkCountry, bdAccount.getPkId(), originalMoney, tradeMoney, ETradeClassify.RECHARGE.getValue());
|
||||
cuMemberTrade.setRemarks("在线充值");
|
||||
cuMemberTradeService.save(cuMemberTrade);
|
||||
iCuMemberTradeService.save(cuMemberTrade);
|
||||
BigDecimal afterAccount = ComputeUtil.computeAdd(ReflectUtils.invokeGetter(cuMemberAccountExt, MemberFieldConstants.ACCOUNT + bdAccount.getFieldValue()), tradeMoney);
|
||||
ReflectUtils.invokeSetter(cuMemberAccountExt, MemberFieldConstants.ACCOUNT + bdAccount.getFieldValue(), afterAccount);
|
||||
ReflectUtils.invokeSetter(cuMemberAccountExt, MemberFieldConstants.PAY_ACCOUNT + bdAccount.getFieldValue(), tradeMoney);
|
||||
|
@ -456,7 +422,7 @@ public class CuMemberBusinessServiceImpl implements ICuMemberBusinessService {
|
|||
cuMemberTradeBonusList.add(cuMemberTradeBonus);
|
||||
}
|
||||
// 查询会员的发放明细
|
||||
List<CuMemberTradeDetail> cuMemberTradeDetailList = cuMemberTradeDetailService.queryCuMemberTradeDetail(cuMemberAccount.getPkMember());
|
||||
List<CuMemberTradeDetail> cuMemberTradeDetailList = iCuMemberTradeDetailService.queryCuMemberTradeDetail(cuMemberAccount.getPkMember());
|
||||
if (cuMemberTradeDetailList.size() > 0 && ComputeUtil.compareValue(bonusTradeMoney)) {
|
||||
// 会员发放交易明细
|
||||
List<CuMemberTradeDetail> updMemberTradeDetailList = new ArrayList<>();
|
||||
|
@ -490,11 +456,11 @@ public class CuMemberBusinessServiceImpl implements ICuMemberBusinessService {
|
|||
updateMemberAccount.setConsumeAccount4(consumeMoney.negate());
|
||||
}
|
||||
// 更新会员发放交易流水表
|
||||
cuMemberTradeDetailService.updateCuMemberTradeDetail(updMemberTradeDetailList);
|
||||
iCuMemberTradeDetailService.updateCuMemberTradeDetail(updMemberTradeDetailList);
|
||||
}
|
||||
if (cuMemberTradeBonusList.size() > 0) {
|
||||
// 新增会员奖金交易流水表
|
||||
cuMemberTradeBonusService.batchInsertCuMemberTradeBonus(cuMemberTradeBonusList);
|
||||
iCuMemberTradeBonusService.batchInsertCuMemberTradeBonus(cuMemberTradeBonusList);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -514,7 +480,7 @@ public class CuMemberBusinessServiceImpl implements ICuMemberBusinessService {
|
|||
|
||||
private void saveAndUpdateCuMember(List<CuMemberTrade> cuMemberTradeList, CuMemberAccount updateMemberAccount) {
|
||||
if (cuMemberTradeList.size() > 0) {
|
||||
cuMemberTradeService.saveBatch(cuMemberTradeList);
|
||||
iCuMemberTradeService.saveBatch(cuMemberTradeList);
|
||||
}
|
||||
if (null != updateMemberAccount) {
|
||||
updateCuMemberAccount(updateMemberAccount);
|
||||
|
@ -534,7 +500,7 @@ public class CuMemberBusinessServiceImpl implements ICuMemberBusinessService {
|
|||
}
|
||||
// 更新账户余额
|
||||
try {
|
||||
if (!cuMemberAccountService.updateMemberAccount(updateMemberAccount, pkMember)) {
|
||||
if (!iCuMemberAccountService.updateMemberAccount(updateMemberAccount, pkMember)) {
|
||||
throw new RuntimeException("用户付款失败,请重试!");
|
||||
}
|
||||
} finally {
|
||||
|
@ -590,8 +556,7 @@ public class CuMemberBusinessServiceImpl implements ICuMemberBusinessService {
|
|||
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()) {
|
||||
// 会员账号 验证会员账户是否存在金额
|
||||
CuMember member = iCuMemberService.getMemberById(saOrder.getPkMember());
|
||||
|
@ -611,6 +576,12 @@ public class CuMemberBusinessServiceImpl implements ICuMemberBusinessService {
|
|||
|
||||
// 处理推荐人等级
|
||||
handleParentLevel(saOrder, currentDateTime);
|
||||
// 删除会员区域
|
||||
iCuMemberRetailRegionService.update(Wrappers.<CuMemberRetailRegion>lambdaUpdate()
|
||||
.eq(CuMemberRetailRegion::getPkMember, saOrder.getPkMember())
|
||||
.set(CuMemberRetailRegion::getDelFlag, EDelFlag.DELETE.getValue())
|
||||
.set(CuMemberRetailRegion::getModifiedTime, currentDateTime)
|
||||
);
|
||||
|
||||
cancelOrderBackAccount(pkApprove, saOrder, payMemberAccount);
|
||||
return true;
|
||||
|
@ -620,17 +591,17 @@ public class CuMemberBusinessServiceImpl implements ICuMemberBusinessService {
|
|||
@Transactional(rollbackFor = Exception.class)
|
||||
public Boolean singleRevokeMemberBySelfRevokeOrder(Long pkApprove, SaOrderExt saOrder, BusinessCommissionDTO 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()) {
|
||||
// 会员账号 验证会员账户是否存在金额
|
||||
CuMember member = iCuMemberService.getMember(saOrder.getPkMember());
|
||||
|
||||
//删除会员
|
||||
LambdaUpdateWrapper<CuMember> updateWrapper = new LambdaUpdateWrapper<>();
|
||||
updateWrapper.set(CuMember::getMemberCode, CommonUtil.deleteMemberCode(member.getMemberCode()));
|
||||
updateWrapper.set(CuMember::getDelFlag, EDelFlag.DELETE.getValue());
|
||||
updateWrapper.set(CuMember::getModifiedTime, DateUtils.currentDateTime());
|
||||
updateWrapper.set(CuMember::getModifiedTime, currentDateTime);
|
||||
updateWrapper.set(CuMember::getPkModified, saOrder.getPkModified());
|
||||
updateWrapper.eq(CuMember::getPkId, member.getPkId());
|
||||
iCuMemberService.update(updateWrapper);
|
||||
|
@ -638,12 +609,21 @@ public class CuMemberBusinessServiceImpl implements ICuMemberBusinessService {
|
|||
// 删除会员注册表
|
||||
LambdaUpdateWrapper<CuMemberRegister> updateWrapperRegister = new LambdaUpdateWrapper<>();
|
||||
updateWrapperRegister.set(CuMemberRegister::getDelFlag, EDelFlag.DELETE.getValue());
|
||||
updateWrapperRegister.set(CuMemberRegister::getModifiedTime, DateUtils.currentDateTime());
|
||||
updateWrapperRegister.set(CuMemberRegister::getModifiedTime, currentDateTime);
|
||||
updateWrapperRegister.set(CuMemberRegister::getPkModified, saOrder.getPkModified());
|
||||
updateWrapperRegister.eq(CuMemberRegister::getPkMember, member.getPkId());
|
||||
iCuMemberRegisterService.update(updateWrapperRegister);
|
||||
}
|
||||
|
||||
// 处理推荐人等级
|
||||
handleParentLevel(saOrder, currentDateTime);
|
||||
// 删除会员区域
|
||||
iCuMemberRetailRegionService.update(Wrappers.<CuMemberRetailRegion>lambdaUpdate()
|
||||
.eq(CuMemberRetailRegion::getPkMember, saOrder.getPkMember())
|
||||
.set(CuMemberRetailRegion::getDelFlag, EDelFlag.DELETE.getValue())
|
||||
.set(CuMemberRetailRegion::getModifiedTime, currentDateTime)
|
||||
);
|
||||
|
||||
cancelOrderBackAccount(pkApprove, saOrder, payMemberAccount);
|
||||
return true;
|
||||
}
|
||||
|
@ -660,7 +640,7 @@ public class CuMemberBusinessServiceImpl implements ICuMemberBusinessService {
|
|||
public Boolean updateCuMemberAccountByDraw(Long pkMember, Integer pkCountry, Integer accountValue, BigDecimal rewardMoney) {
|
||||
CuMemberAccount cuMemberAccountParam = CuMemberAccount.builder().pkMember(pkMember).build();
|
||||
cuMemberAccountParam.setPkCountry(pkCountry);
|
||||
List<CuMemberAccountExt> cuMemberAccountExtList = cuMemberAccountService.queryMemberAccountByCondition(cuMemberAccountParam);
|
||||
List<CuMemberAccountExt> cuMemberAccountExtList = iCuMemberAccountService.queryMemberAccountByCondition(cuMemberAccountParam);
|
||||
if (CollectionUtil.isEmpty(cuMemberAccountExtList)) {
|
||||
return Boolean.FALSE;
|
||||
}
|
||||
|
@ -692,7 +672,7 @@ public class CuMemberBusinessServiceImpl implements ICuMemberBusinessService {
|
|||
.build();
|
||||
cuMemberTrade.setPkCountry(pkCountry);
|
||||
cuMemberTrade.setPkCreator(pkMember);
|
||||
cuMemberTradeService.save(cuMemberTrade);
|
||||
iCuMemberTradeService.save(cuMemberTrade);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -723,10 +703,10 @@ public class CuMemberBusinessServiceImpl implements ICuMemberBusinessService {
|
|||
CuMemberAccount updateMemberAccount = new CuMemberAccount();
|
||||
List<CuMemberTrade> cuMemberTradeList = packageCancelOrderCuMemberTrades(pkApprove, saOrder, payMemberAccount, newCuMemberTradeBonusList, cuMemberTradeDetailList, updateMemberAccount);
|
||||
if (newCuMemberTradeBonusList.size() > 0) {
|
||||
cuMemberTradeBonusService.batchInsertCuMemberTradeBonus(newCuMemberTradeBonusList);
|
||||
iCuMemberTradeBonusService.batchInsertCuMemberTradeBonus(newCuMemberTradeBonusList);
|
||||
}
|
||||
// 根据 newCuMemberTradeBonusList 更新 cu_member_trade_detail
|
||||
cuMemberTradeDetailService.updateAddCuMemberTradeDetail(cuMemberTradeDetailList);
|
||||
iCuMemberTradeDetailService.updateAddCuMemberTradeDetail(cuMemberTradeDetailList);
|
||||
saveAndUpdateCuMember(cuMemberTradeList, updateMemberAccount);
|
||||
}
|
||||
|
||||
|
@ -748,7 +728,7 @@ public class CuMemberBusinessServiceImpl implements ICuMemberBusinessService {
|
|||
|
||||
// 返回的流水明细
|
||||
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)) {
|
||||
// 订单所属国家和订单支付流水国家不相同则为跨国,需要以订单支付流水中的国家为准进行退款
|
||||
|
@ -787,7 +767,7 @@ public class CuMemberBusinessServiceImpl implements ICuMemberBusinessService {
|
|||
updateMemberAccount.setConsumeAccount4(BigDecimal.ZERO);
|
||||
BigDecimal bonusTradeMoney = tradeMoney;
|
||||
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) {
|
||||
if (!ComputeUtil.compareValue(bonusTradeMoney)) {
|
||||
break;
|
||||
|
@ -846,7 +826,7 @@ public class CuMemberBusinessServiceImpl implements ICuMemberBusinessService {
|
|||
// 按照memberList 倒叙往后删除
|
||||
Date currentDateTime = DateUtils.currentDateTime();
|
||||
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()));
|
||||
cuMemberAccountList.forEach(cuMemberAccount ->
|
||||
cuMemberAccountMap.put(cuMemberAccount.getPkMember(), cuMemberAccount));
|
||||
|
@ -856,9 +836,9 @@ public class CuMemberBusinessServiceImpl implements ICuMemberBusinessService {
|
|||
// 删除等级
|
||||
iCuMemberLevelService.deleteCuMemberLevelRecord(saOrder.getPkId(), pkApprove, currentDateTime);
|
||||
// 回退奖衔,根据订单从 cu_member_awards查询
|
||||
cuMemberAwardsService.deleteCuMemberAwards(saOrder.getPkId(), pkApprove, currentDateTime);
|
||||
iCuMemberAwardsService.deleteCuMemberAwards(saOrder.getPkId(), pkApprove, currentDateTime);
|
||||
iCuMemberService.deleteCuMemberByPkMember(pkMember, pkApprove, currentDateTime);
|
||||
cuMemberAccountService.deleteCuMemberAccountByPkMember(pkMember, pkApprove, currentDateTime);
|
||||
iCuMemberAccountService.deleteCuMemberAccountByPkMember(pkMember, pkApprove, currentDateTime);
|
||||
// 撤销正常订单,修改 cu_member_register 账户状态为死点
|
||||
CuMemberRegister cuMemberRegister = new CuMemberRegister();
|
||||
cuMemberRegister.setPkMember(pkMember);
|
||||
|
@ -873,7 +853,7 @@ public class CuMemberBusinessServiceImpl implements ICuMemberBusinessService {
|
|||
|
||||
private void deductCancelOrderCost(BusinessCommissionDTO businessCommissionDTO) {
|
||||
if (businessCommissionDTO != null) {
|
||||
if (!cuMemberTradeService.businessCommissionSubmit(businessCommissionDTO)) {
|
||||
if (!iCuMemberTradeService.businessCommissionSubmit(businessCommissionDTO)) {
|
||||
throw new RuntimeException("撤销订单扣除业务手续费失败");
|
||||
}
|
||||
}
|
||||
|
@ -889,14 +869,12 @@ public class CuMemberBusinessServiceImpl implements ICuMemberBusinessService {
|
|||
// 升级订单
|
||||
// 回退等级
|
||||
iCuMemberLevelService.deleteCuMemberLevelRecord(saOrder.getPkId(), pkApprove, currentDateTime);
|
||||
} else if (EOrderType.RETAIL_REPURCHASE.getValue() == saOrder.getOrderType()) {
|
||||
// 复购订单
|
||||
// 会员等级发生变化,新等级需要处理
|
||||
BdGrade newGrade = saOrder.getNewGrade();
|
||||
if (null != cuMember && null != newGrade) {
|
||||
// 更新会员等级
|
||||
cuMember.setPkSettleGrade(newGrade.getPkId());
|
||||
}
|
||||
// 删除会员区域
|
||||
iCuMemberRetailRegionService.update(Wrappers.<CuMemberRetailRegion>lambdaUpdate()
|
||||
.eq(CuMemberRetailRegion::getPkMember, saOrder.getPkMember())
|
||||
.set(CuMemberRetailRegion::getDelFlag, EDelFlag.DELETE.getValue())
|
||||
.set(CuMemberRetailRegion::getModifiedTime, currentDateTime)
|
||||
);
|
||||
}
|
||||
|
||||
// 更新会员标记,如果是则更新会员信息
|
||||
|
@ -914,7 +892,7 @@ public class CuMemberBusinessServiceImpl implements ICuMemberBusinessService {
|
|||
if (saOrder.getBackOrderAmount() != null && ComputeUtil.compareValue(saOrder.getBackOrderAmount())) {
|
||||
cancelPartOrderBackAmount(pkApprove, saOrder);
|
||||
} else {
|
||||
CuMemberAccount payMemberAccount = cuMemberAccountService.queryCuMemberAccountByPkMember(saOrder.getPkCreator());
|
||||
CuMemberAccount payMemberAccount = iCuMemberAccountService.queryCuMemberAccountByPkMember(saOrder.getPkCreator());
|
||||
// 回退账号余额
|
||||
cancelOrderBackAccount(pkApprove, saOrder, payMemberAccount);
|
||||
}
|
||||
|
@ -924,7 +902,7 @@ public class CuMemberBusinessServiceImpl implements ICuMemberBusinessService {
|
|||
@Override
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public Boolean cancelMemberAccount(Long pkMember, SaOrder saOrder) {
|
||||
CuMemberAccount payMemberAccount = cuMemberAccountService.queryCuMemberAccountByPkMember(pkMember);
|
||||
CuMemberAccount payMemberAccount = iCuMemberAccountService.queryCuMemberAccountByPkMember(pkMember);
|
||||
// 回退账号余额
|
||||
cancelOrderBackAccount(pkMember, saOrder, payMemberAccount);
|
||||
return Boolean.TRUE;
|
||||
|
@ -932,7 +910,7 @@ public class CuMemberBusinessServiceImpl implements ICuMemberBusinessService {
|
|||
|
||||
@Override
|
||||
public void cancelPartOrderBackAmount(Long pkApprove, SaOrderExt saOrder) {
|
||||
CuMemberAccount payMemberAccount = cuMemberAccountService.queryCuMemberAccountByPkMember(saOrder.getPkCreator());
|
||||
CuMemberAccount payMemberAccount = iCuMemberAccountService.queryCuMemberAccountByPkMember(saOrder.getPkCreator());
|
||||
BigDecimal backOrderAmount = saOrder.getBackOrderAmount();
|
||||
// 考虑部分撤单
|
||||
// 部分退,回退金额按照 币种扣除的倒叙扣除 现金->消费->奖金 奖金->消费->现金
|
||||
|
@ -952,7 +930,7 @@ public class CuMemberBusinessServiceImpl implements ICuMemberBusinessService {
|
|||
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()));
|
||||
cuMemberTrades.forEach(cuMemberTrade ->
|
||||
cuMemberTradeMap.put(cuMemberTrade.getPkAccount(), cuMemberTrade));
|
||||
|
@ -997,10 +975,10 @@ public class CuMemberBusinessServiceImpl implements ICuMemberBusinessService {
|
|||
}
|
||||
}
|
||||
if (newCuMemberTradeBonusList.size() > 0) {
|
||||
cuMemberTradeBonusService.batchInsertCuMemberTradeBonus(newCuMemberTradeBonusList);
|
||||
iCuMemberTradeBonusService.batchInsertCuMemberTradeBonus(newCuMemberTradeBonusList);
|
||||
}
|
||||
// 根据 newCuMemberTradeBonusList 更新 cu_member_trade_detail
|
||||
cuMemberTradeDetailService.updateAddCuMemberTradeDetail(cuMemberTradeDetailList);
|
||||
iCuMemberTradeDetailService.updateAddCuMemberTradeDetail(cuMemberTradeDetailList);
|
||||
saveAndUpdateCuMember(cuMemberTradeList, updateMemberAccount);
|
||||
}
|
||||
|
||||
|
@ -1008,13 +986,13 @@ public class CuMemberBusinessServiceImpl implements ICuMemberBusinessService {
|
|||
@Override
|
||||
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.setPkCountry(saOrder.getPkCountry());
|
||||
cuMemberAccount.setPkMember(saOrder.getPkCreator());
|
||||
CuMemberAccountExt tmpCuMemberAccount = cuMemberAccountService.queryMemberAccountByCondition(cuMemberAccount).get(0);
|
||||
CuMemberAccountExt tmpCuMemberAccount = iCuMemberAccountService.queryMemberAccountByCondition(cuMemberAccount).get(0);
|
||||
|
||||
if (CollectionUtil.isNotEmpty(cuMemberTrades)) {
|
||||
List<AreaCurrencyDTO> currencyDTOList = iAreaCurrencyServiceApi.queryAreaCurrencyByPkCountry(saOrder.getPkCountry()).getData();
|
||||
|
@ -1053,13 +1031,13 @@ public class CuMemberBusinessServiceImpl implements ICuMemberBusinessService {
|
|||
public void orderChangeProduct(SaOrder saOrder, SaOrder updateOrder, Long userId, Object obj) {
|
||||
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.setPkCountry(saOrder.getPkCountry());
|
||||
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);
|
||||
|
@ -1091,7 +1069,7 @@ public class CuMemberBusinessServiceImpl implements ICuMemberBusinessService {
|
|||
// 追加业务实体不为null,需要处理
|
||||
if (obj instanceof BusinessCommissionDTO) {
|
||||
// 业务办理扣款逻辑
|
||||
if (!cuMemberTradeService.businessCommissionSubmit((BusinessCommissionDTO) obj)) {
|
||||
if (!iCuMemberTradeService.businessCommissionSubmit((BusinessCommissionDTO) obj)) {
|
||||
throw new ServiceException("业务手续费扣款失败");
|
||||
}
|
||||
}
|
||||
|
@ -1118,7 +1096,7 @@ public class CuMemberBusinessServiceImpl implements ICuMemberBusinessService {
|
|||
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);
|
||||
// 专区扣币的第一位配置所用字段
|
||||
|
@ -1127,7 +1105,7 @@ public class CuMemberBusinessServiceImpl implements ICuMemberBusinessService {
|
|||
if (EOrderPayType.WALLET.getValue() == saOrder.getPayType()) {
|
||||
// 钱包支付
|
||||
// 查询之前订单的支付明细
|
||||
List<CuMemberTrade> memberTradeList = cuMemberTradeService.querySourceCodeLastTrade(pkMember, orderCode, null);
|
||||
List<CuMemberTrade> memberTradeList = iCuMemberTradeService.querySourceCodeLastTrade(pkMember, orderCode, null);
|
||||
|
||||
// 获取所有账户配置ID
|
||||
List<Integer> pkAccountList = memberTradeList.stream().map(CuMemberTrade::getPkAccount).collect(Collectors.toList());
|
||||
|
@ -1191,7 +1169,7 @@ public class CuMemberBusinessServiceImpl implements ICuMemberBusinessService {
|
|||
}
|
||||
|
||||
// 批量插入会员明细
|
||||
cuMemberTradeService.batchSaveTradeByMemberCode(saveMemberTradeList);
|
||||
iCuMemberTradeService.batchSaveTradeByMemberCode(saveMemberTradeList);
|
||||
|
||||
// 奖金账户有变化,需要同步处理 可提现奖金账户
|
||||
BigDecimal bonusBigDecimal = ReflectUtils.invokeGetter(updateMemberAccount, MemberFieldConstants.ACCOUNT + 4);
|
||||
|
@ -1200,7 +1178,7 @@ public class CuMemberBusinessServiceImpl implements ICuMemberBusinessService {
|
|||
ReflectUtils.invokeSetter(updateMemberAccount, MemberFieldConstants.WITHDRAW_ACCOUNT + 4, bonusBigDecimal);
|
||||
}
|
||||
// 更新会员余额
|
||||
cuMemberAccountService.updateMemberAccount(updateMemberAccount, userId);
|
||||
iCuMemberAccountService.updateMemberAccount(updateMemberAccount, userId);
|
||||
|
||||
// 更新创建人账号(根据订单类型不同,进行处理)
|
||||
switch (EOrderType.getEnumByValue(saOrder.getOrderType())) {
|
||||
|
@ -1217,7 +1195,7 @@ public class CuMemberBusinessServiceImpl implements ICuMemberBusinessService {
|
|||
cuMemberChangeLog.setPkMember(saOrder.getPkMember());
|
||||
cuMemberChangeLog.setChangeType(EMemberChangeType.ORDER_RETURN.getValue());
|
||||
cuMemberChangeLog.setChangeAfter(ECategory.LOGGED_OUT.getLabel());
|
||||
cuMemberChangeLogService.save(cuMemberChangeLog);
|
||||
iCuMemberChangeLogService.save(cuMemberChangeLog);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -1241,7 +1219,7 @@ public class CuMemberBusinessServiceImpl implements ICuMemberBusinessService {
|
|||
cuMemberChangeLog.setChangeAfter(ECategory.LOGGED_OUT.getLabel());
|
||||
cuMemberChangeLogList.add(cuMemberChangeLog);
|
||||
}
|
||||
cuMemberChangeLogService.saveBatch(cuMemberChangeLogList);
|
||||
iCuMemberChangeLogService.saveBatch(cuMemberChangeLogList);
|
||||
}
|
||||
|
||||
|
||||
|
@ -1327,7 +1305,7 @@ public class CuMemberBusinessServiceImpl implements ICuMemberBusinessService {
|
|||
Date nowDate = new Date();
|
||||
|
||||
// 会员账户
|
||||
CuMemberAccount cuMemberAccount = cuMemberAccountService.queryCuMemberAccountByPkMember(pkMember);
|
||||
CuMemberAccount cuMemberAccount = iCuMemberAccountService.queryCuMemberAccountByPkMember(pkMember);
|
||||
// 会员更新账户
|
||||
CuMemberAccount updateMemberAccount = new CuMemberAccount();
|
||||
updateMemberAccount.setPkMember(pkMember);
|
||||
|
@ -1354,9 +1332,9 @@ public class CuMemberBusinessServiceImpl implements ICuMemberBusinessService {
|
|||
cuMemberTrade.setCreationTime(nowDate);
|
||||
|
||||
// 保存会员交易明细
|
||||
cuMemberTradeService.save(cuMemberTrade);
|
||||
iCuMemberTradeService.save(cuMemberTrade);
|
||||
// 更新会员账户
|
||||
cuMemberAccountService.updateMemberAccount(updateMemberAccount, userId);
|
||||
iCuMemberAccountService.updateMemberAccount(updateMemberAccount, userId);
|
||||
|
||||
return null;
|
||||
}
|
||||
|
@ -1464,7 +1442,7 @@ public class CuMemberBusinessServiceImpl implements ICuMemberBusinessService {
|
|||
.build();
|
||||
cuMemberAccount.setPkCreator(cuMember.getPkCreator());
|
||||
cuMemberAccount.setPkCountry(cuMember.getPkSettleCountry());
|
||||
cuMemberAccountService.save(cuMemberAccount);
|
||||
iCuMemberAccountService.save(cuMemberAccount);
|
||||
|
||||
// 保存会员注册信息
|
||||
CuMemberRegister cuMemberRegister = BeanUtil.copyProperties(cuMember, CuMemberRegister.class);
|
||||
|
|
|
@ -556,7 +556,7 @@ public class ApiOrderController extends BaseController {
|
|||
}
|
||||
|
||||
/**
|
||||
* 自助撤单w
|
||||
* 自助撤单
|
||||
**/
|
||||
@PostMapping("/self-revoke-order")
|
||||
public AjaxResult selfRevokeOrder(@RequestBody MyOrderVO myOrderVO, HttpServletRequest request) {
|
||||
|
|
Loading…
Reference in New Issue