3
0
Fork 0

Compare commits

...

4 Commits

14 changed files with 334 additions and 264 deletions

View File

@ -291,38 +291,40 @@ public class BonusSettleRangeHandle extends BonusSettleHandle {
// V1 推拿 60
rangeBonusIncome = RetailConstants.V1_V1;
// 前面累计的奖金
totalBonus = totalBonus.add(RetailConstants.V1_V1);
totalBonus = RetailConstants.V1_V1;
} else if (EGrade.YOU_KE.getValue() == targetGradeValue) {
// V2 推拿 80或者减去之前累计
rangeBonusIncome = RetailConstants.V2_V1.subtract(totalBonus);
// 前面累计的奖金
totalBonus = totalBonus.add(RetailConstants.V2_V1.subtract(totalBonus));
totalBonus = RetailConstants.V2_V1;
} else if (EGrade.MAKER.getValue() == targetGradeValue) {
// V3 推拿 100或者减去之前累计
rangeBonusIncome = RetailConstants.V3_V1.subtract(totalBonus);
// 前面累计的奖金
totalBonus = totalBonus.add(RetailConstants.V3_V1.subtract(totalBonus));
totalBonus = RetailConstants.V3_V1;
} else if (EGrade.VIP.getValue() == targetGradeValue) {
// V4 推拿 200或者减去之前累计
rangeBonusIncome = RetailConstants.V4_V1.subtract(totalBonus);
// 前面累计的奖金
totalBonus = totalBonus.add(RetailConstants.V4_V1.subtract(totalBonus));
totalBonus = RetailConstants.V4_V1;
} else if (EGrade.S_VIP.getValue() == targetGradeValue) {
// V5 推拿 208或者减去之前累计
rangeBonusIncome = RetailConstants.V5_V1.subtract(totalBonus);
// 前面累计的奖金
totalBonus = totalBonus.add(RetailConstants.V5_V1.subtract(totalBonus));
totalBonus = RetailConstants.V5_V1;
} else if (EGrade.BRANCH_COMPANY.getValue() == targetGradeValue) {
// V6 推拿 220 或者减去之前累计
rangeBonusIncome = RetailConstants.V6_V1.subtract(totalBonus);
// 前面累计的奖金
totalBonus = totalBonus.add(RetailConstants.V6_V1.subtract(totalBonus));
totalBonus = RetailConstants.V6_V1;
} else if (EGrade.COMPANY.getValue() == targetGradeValue) {
// V7 推拿 240或者减去之前累计
rangeBonusIncome = RetailConstants.V7_V1.subtract(totalBonus);
// 前面累计的奖金
totalBonus = totalBonus.add(RetailConstants.V7_V1.subtract(totalBonus));
totalBonus = RetailConstants.V7_V1;
}
// 前一级会员等级
beforeGradeValue = targetGradeValue;
}
} else if (EGrade.YOU_KE.getValue() == orderGradeValue) {
// 订单等级是VIP
@ -332,38 +334,40 @@ public class BonusSettleRangeHandle extends BonusSettleHandle {
// V1 推拿 300
rangeBonusIncome = RetailConstants.V1_V2;
// 前面累计的奖金
totalBonus = totalBonus.add(RetailConstants.V1_V2);
totalBonus = RetailConstants.V1_V2;
} else if (EGrade.YOU_KE.getValue() == targetGradeValue) {
// V2 推拿 400或者减去之前累计
rangeBonusIncome = RetailConstants.V2_V2.subtract(totalBonus);
// 前面累计的奖金
totalBonus = totalBonus.add(RetailConstants.V2_V2.subtract(totalBonus));
totalBonus = RetailConstants.V2_V2;
} else if (EGrade.MAKER.getValue() == targetGradeValue) {
// V3 推拿 500或者减去之前累计
rangeBonusIncome = RetailConstants.V3_V2.subtract(totalBonus);
// 前面累计的奖金
totalBonus = totalBonus.add(RetailConstants.V3_V2.subtract(totalBonus));
totalBonus = RetailConstants.V3_V2;
} else if (EGrade.VIP.getValue() == targetGradeValue) {
// V4 推拿 1000或者减去之前累计
rangeBonusIncome = RetailConstants.V4_V2.subtract(totalBonus);
// 前面累计的奖金
totalBonus = totalBonus.add(RetailConstants.V4_V2.subtract(totalBonus));
totalBonus = RetailConstants.V4_V2;
} else if (EGrade.S_VIP.getValue() == targetGradeValue) {
// V5 推拿 1040或者减去之前累计
rangeBonusIncome = RetailConstants.V5_V2.subtract(totalBonus);
// 前面累计的奖金
totalBonus = totalBonus.add(RetailConstants.V5_V2.subtract(totalBonus));
totalBonus = RetailConstants.V5_V2;
} else if (EGrade.BRANCH_COMPANY.getValue() == targetGradeValue) {
// V6 推拿 1100或者减去之前累计
rangeBonusIncome = RetailConstants.V6_V2.subtract(totalBonus);
// 前面累计的奖金
totalBonus = totalBonus.add(RetailConstants.V6_V2.subtract(totalBonus));
totalBonus = RetailConstants.V6_V2;
} else if (EGrade.COMPANY.getValue() == targetGradeValue) {
// V7 推拿 1200或者减去之前累计
rangeBonusIncome = RetailConstants.V7_V2.subtract(totalBonus);
// 前面累计的奖金
totalBonus = totalBonus.add(RetailConstants.V7_V2.subtract(totalBonus));
totalBonus = RetailConstants.V7_V2;
}
// 前一级会员等级
beforeGradeValue = targetGradeValue;
}
} else if (EGrade.MAKER.getValue() == orderGradeValue) {
// 订单是合伙人
@ -373,38 +377,40 @@ public class BonusSettleRangeHandle extends BonusSettleHandle {
// V1 推拿 600
rangeBonusIncome = RetailConstants.V1_V3;
// 前面累计的奖金
totalBonus = totalBonus.add(RetailConstants.V1_V3);
totalBonus = RetailConstants.V1_V3;
} else if (EGrade.YOU_KE.getValue() == targetGradeValue) {
// V2 推拿 800或者减去之前累计
rangeBonusIncome = RetailConstants.V2_V3.subtract(totalBonus);
// 前面累计的奖金
totalBonus = totalBonus.add(RetailConstants.V2_V3.subtract(totalBonus));
totalBonus = RetailConstants.V2_V3;
} else if (EGrade.MAKER.getValue() == targetGradeValue) {
// V3 推拿 1000或者减去之前累计
rangeBonusIncome = RetailConstants.V3_V3_1.subtract(totalBonus);
// 前面累计的奖金
totalBonus = totalBonus.add(RetailConstants.V3_V3_1.subtract(totalBonus));
totalBonus = RetailConstants.V3_V3_1;
} else if (EGrade.VIP.getValue() == targetGradeValue) {
// V4 推拿 2000或者减去之前累计
rangeBonusIncome = RetailConstants.V4_V3.subtract(totalBonus);
// 前面累计的奖金
totalBonus = totalBonus.add(RetailConstants.V4_V3.subtract(totalBonus));
totalBonus = RetailConstants.V4_V3;
} else if (EGrade.S_VIP.getValue() == targetGradeValue) {
// V5 推拿 2080或者减去之前累计
rangeBonusIncome = RetailConstants.V5_V3.subtract(totalBonus);
// 前面累计的奖金
totalBonus = totalBonus.add(RetailConstants.V5_V3.subtract(totalBonus));
totalBonus = RetailConstants.V5_V3;
} else if (EGrade.BRANCH_COMPANY.getValue() == targetGradeValue) {
// V6 推拿 2200或者减去之前累计
rangeBonusIncome = RetailConstants.V6_V3.subtract(totalBonus);
// 前面累计的奖金
totalBonus = totalBonus.add(RetailConstants.V6_V3.subtract(totalBonus));
totalBonus = RetailConstants.V6_V3;
} else if (EGrade.COMPANY.getValue() == targetGradeValue) {
// V7 推拿 2400或者减去之前累计
rangeBonusIncome = RetailConstants.V7_V3.subtract(totalBonus);
// 前面累计的奖金
totalBonus = totalBonus.add(RetailConstants.V7_V3.subtract(totalBonus));
totalBonus = RetailConstants.V7_V3;
}
// 前一级会员等级
beforeGradeValue = targetGradeValue;
} else if (EGrade.MAKER.getValue() == beforeGradeValue
&& EGrade.MAKER.getValue() == targetGradeValue) {
// 之前和现在都是合伙人处理平级
@ -412,56 +418,58 @@ public class BonusSettleRangeHandle extends BonusSettleHandle {
// V3第一平级 推拿 1200或者减去之前累计
rangeBonusIncome = RetailConstants.V3_V3_2.subtract(totalBonus);
// 前面累计的奖金
totalBonus = totalBonus.add(RetailConstants.V3_V3_2.subtract(totalBonus));
totalBonus = RetailConstants.V3_V3_2;
v3Count++;
} else if (v3Count == 2) {
// V3第二平级 推拿 1300或者减去之前累计
rangeBonusIncome = RetailConstants.V3_V3_3.subtract(totalBonus);
// 前面累计的奖金
totalBonus = totalBonus.add(RetailConstants.V3_V3_3.subtract(totalBonus));
totalBonus = RetailConstants.V3_V3_3;
v3Count++;
}
}
} else if (EGrade.VIP.getValue() == orderGradeValue) {
// 订单是合伙人
// 订单是博羚店主
if (targetGradeValue > beforeGradeValue) {
// 当前等级大于之前等级
if (EGrade.HAI_FAN.getValue() == targetGradeValue) {
// V1 推拿 1200
rangeBonusIncome = RetailConstants.V1_V4;
// 前面累计的奖金
totalBonus = totalBonus.add(RetailConstants.V1_V4);
totalBonus = RetailConstants.V1_V4;
} else if (EGrade.YOU_KE.getValue() == targetGradeValue) {
// V2 推拿 1600或者减去之前累计
rangeBonusIncome = RetailConstants.V2_V4.subtract(totalBonus);
// 前面累计的奖金
totalBonus = totalBonus.add(RetailConstants.V2_V4.subtract(totalBonus));
totalBonus = RetailConstants.V2_V4;
} else if (EGrade.MAKER.getValue() == targetGradeValue) {
// V3 推拿 2000或者减去之前累计
rangeBonusIncome = RetailConstants.V3_V4_1.subtract(totalBonus);
// 前面累计的奖金
totalBonus = totalBonus.add(RetailConstants.V3_V4_1.subtract(totalBonus));
totalBonus = RetailConstants.V3_V4_1;
} else if (EGrade.VIP.getValue() == targetGradeValue) {
// V4 推拿 4000或者减去之前累计
rangeBonusIncome = RetailConstants.V4_V4.subtract(totalBonus);
// 前面累计的奖金
totalBonus = totalBonus.add(RetailConstants.V4_V4.subtract(totalBonus));
totalBonus = RetailConstants.V4_V4;
} else if (EGrade.S_VIP.getValue() == targetGradeValue) {
// V5 推拿 4160或者减去之前累计
rangeBonusIncome = RetailConstants.V5_V4.subtract(totalBonus);
// 前面累计的奖金
totalBonus = totalBonus.add(RetailConstants.V5_V4.subtract(totalBonus));
totalBonus = RetailConstants.V5_V4;
} else if (EGrade.BRANCH_COMPANY.getValue() == targetGradeValue) {
// V6 推拿 4400或者减去之前累计
rangeBonusIncome = RetailConstants.V6_V4.subtract(totalBonus);
// 前面累计的奖金
totalBonus = totalBonus.add(RetailConstants.V6_V4.subtract(totalBonus));
totalBonus = RetailConstants.V6_V4;
} else if (EGrade.COMPANY.getValue() == targetGradeValue) {
// V7 推拿 4800或者减去之前累计
rangeBonusIncome = RetailConstants.V7_V4.subtract(totalBonus);
// 前面累计的奖金
totalBonus = totalBonus.add(RetailConstants.V7_V4.subtract(totalBonus));
totalBonus = RetailConstants.V7_V4;
}
// 前一级会员等级
beforeGradeValue = targetGradeValue;
} else if (EGrade.MAKER.getValue() == beforeGradeValue
&& EGrade.MAKER.getValue() == targetGradeValue) {
// 之前和现在都是合伙人处理平级
@ -469,13 +477,13 @@ public class BonusSettleRangeHandle extends BonusSettleHandle {
// V3第一平级 推拿 2400或者减去之前累计
rangeBonusIncome = RetailConstants.V3_V4_2.subtract(totalBonus);
// 前面累计的奖金
totalBonus = totalBonus.add(RetailConstants.V3_V4_2.subtract(totalBonus));
totalBonus = RetailConstants.V3_V4_2;
v3Count++;
} else if (v3Count == 2) {
// V3第二平级 推拿 2600或者减去之前累计
rangeBonusIncome = RetailConstants.V3_V4_3.subtract(totalBonus);
// 前面累计的奖金
totalBonus = totalBonus.add(RetailConstants.V3_V4_3.subtract(totalBonus));
totalBonus = RetailConstants.V3_V4_3;
v3Count++;
}
}
@ -487,27 +495,27 @@ public class BonusSettleRangeHandle extends BonusSettleHandle {
// 博羚店主拿 50000
rangeBonusIncome = RetailConstants.V4_V6.subtract(totalBonus);
// 前面累计的奖金
totalBonus = totalBonus.add(RetailConstants.V4_V6.subtract(totalBonus));
totalBonus = RetailConstants.V4_V6;
} else if (EGrade.S_VIP.getValue() == targetGradeValue) {
// 高级店主拿 52000或者减去之前累计
rangeBonusIncome = RetailConstants.V5_V6.subtract(totalBonus);
// 前面累计的奖金
totalBonus = totalBonus.add(RetailConstants.V5_V6.subtract(totalBonus));
totalBonus = RetailConstants.V5_V6;
} else if (EGrade.BRANCH_COMPANY.getValue() == targetGradeValue) {
// 分公司拿 55000或者减去之前累计
rangeBonusIncome = RetailConstants.V6_V6.subtract(totalBonus);
// 前面累计的奖金
totalBonus = totalBonus.add(RetailConstants.V6_V6.subtract(totalBonus));
totalBonus = RetailConstants.V6_V6;
} else if (EGrade.COMPANY.getValue() == targetGradeValue) {
// 总公司拿 60000或者减去之前累计
rangeBonusIncome = RetailConstants.V7_V6.subtract(totalBonus);
// 前面累计的奖金
totalBonus = totalBonus.add(RetailConstants.V7_V6.subtract(totalBonus));
}
}
totalBonus = RetailConstants.V7_V6;
}
// 前一级会员等级
beforeGradeValue = targetGradeValue;
}
}
if (rangeBonusIncome.compareTo(BigDecimal.ZERO) > 0) {
// 处理直推级差收益
@ -623,6 +631,8 @@ public class BonusSettleRangeHandle extends BonusSettleHandle {
// 前面累计的奖金
totalBonus = totalBonus.add(RetailConstants.REPURCHASE_V7.multiply(boxNum).subtract(totalBonus));
}
// 前一级会员等级
beforeGradeValue = targetGradeValue;
} else if (EGrade.MAKER.getValue() == beforeGradeValue
&& EGrade.MAKER.getValue() == targetGradeValue) {
// 之前和现在都是合伙人处理平级
@ -641,9 +651,6 @@ public class BonusSettleRangeHandle extends BonusSettleHandle {
}
}
// 前一级会员等级
beforeGradeValue = targetGradeValue;
if (rangeBonusIncome.compareTo(BigDecimal.ZERO) > 0) {
// 处理复购级差收益
// 会员奖金
@ -662,7 +669,7 @@ public class BonusSettleRangeHandle extends BonusSettleHandle {
rangeRepurRetailRemark(saOrderExt, cuMemberBonusRange, sourceMemberRangeExt, targetMemberRangeExt);
BdBonusDeduct bdBonusDeduct = setBonusDetailDeduct(bonusConfigDTO, cuMemberBonusRange, saOrderExt.getOrderAmount(), saOrderExt.getInExchangeRate());
if (EBonusIncomeStatus.NORMAL.getValue() == cuMemberBonusRange.getIncomeStatus()) {
cuMemberBonus.setRepurRangeIncome(ComputeUtil.computeAdd(cuMemberBonus.getRetailRangeIncome(), cuMemberBonusRange.getPretaxIncome()));
cuMemberBonus.setRepurRangeIncome(ComputeUtil.computeAdd(cuMemberBonus.getRepurRangeIncome(), cuMemberBonusRange.getPretaxIncome()));
setRetailTotal(bdBonusDeduct, cuMemberBonus, cuMemberBonusRange);
}
memberBonusRangeList.add(cuMemberBonusRange);

View File

@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.hzs.common.domain.member.base.CuMember;
import com.hzs.common.domain.member.detail.CuMemberGrade;
import com.hzs.common.domain.member.ext.CuMemberExt;
import com.hzs.common.domain.sale.order.SaOrder;
import com.hzs.common.domain.system.config.BdTradeWhiteConfig;
import com.hzs.member.base.dto.MemberCountDTO;
import com.hzs.member.base.param.*;
@ -625,4 +626,21 @@ public interface CuMemberMapper extends BaseMapper<CuMember> {
*/
CuMember getShopkeeperMember(@Param("pkMember") Long pkMember);
/**
* 查询高级店主
*
* @param pkMember
* @return
*/
CuMember getGradeSvipMember(@Param("pkMember") Long pkMember);
/**
* 查询会员直推大于博羚店主的注册升级订单查询会员直推大于博羚店主的注册升级订单
*
* @param pkMember
* @param orderCode
* @return
*/
SaOrder listRecommendVipOrder(@Param("pkMember") Long pkMember, @Param("orderCode") String orderCode);
}

View File

@ -6,6 +6,7 @@ import com.hzs.common.domain.member.achieve.ext.CuMemberRetailSExt;
import com.hzs.common.domain.member.base.CuMember;
import com.hzs.common.domain.member.detail.CuMemberGrade;
import com.hzs.common.domain.member.ext.CuMemberExt;
import com.hzs.common.domain.sale.order.SaOrder;
import com.hzs.common.domain.system.config.BdTradeWhiteConfig;
import com.hzs.member.base.param.UpdatePlaceParentPetitionParam;
import com.hzs.member.base.dto.ShowWaresDTO;
@ -894,4 +895,21 @@ public interface ICuMemberService extends IService<CuMember> {
*/
CuMember getShopkeeperMember(Long pkMember);
/**
* 查询高级店主
*
* @param pkMember
* @return
*/
CuMember getGradeSvipMember(Long pkMember);
/**
* 查询会员直推大于博羚店主的注册升级订单查询会员直推大于博羚店主的注册升级订单
*
* @param pkMember
* @param orderCode
* @return
*/
SaOrder listRecommendVipOrder(Long pkMember, String orderCode);
}

View File

@ -2,8 +2,8 @@ package com.hzs.member.base.service.impl;
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;
@ -97,13 +97,13 @@ public class CuMemberBusinessServiceImpl implements ICuMemberBusinessService {
private ICuMemberRegisterService iCuMemberRegisterService;
@Autowired
private ICuMemberRetailRegionService iCuMemberRetailRegionService;
@Autowired
private ICuMemberLevelService iCuMemberLevelService;
private ICuMemberAccountService cuMemberAccountService;
private ICuMemberTradeService cuMemberTradeService;
private ICuMemberLevelService cuMemberLevelService;
private ICuMemberAwardsService cuMemberAwardsService;
private ICuMemberChangeLogService cuMemberChangeLogService;
@ -134,11 +134,6 @@ public class CuMemberBusinessServiceImpl implements ICuMemberBusinessService {
this.cuMemberAwardsService = cuMemberAwardsService;
}
@Autowired
public void setCuMemberLevelService(ICuMemberLevelService cuMemberLevelService) {
this.cuMemberLevelService = cuMemberLevelService;
}
@Autowired
public void setCuMemberTradeService(ICuMemberTradeService cuMemberTradeService) {
this.cuMemberTradeService = cuMemberTradeService;
@ -219,7 +214,7 @@ public class CuMemberBusinessServiceImpl implements ICuMemberBusinessService {
.build();
cuMemberLevel.setPkCountry(cuMember.getPkSettleCountry());
cuMemberLevel.setPkCreator(cuMember.getPkId());
return cuMemberLevelService.save(cuMemberLevel);
return iCuMemberLevelService.save(cuMemberLevel);
}
/**
@ -863,7 +858,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);
iCuMemberService.deleteCuMemberByPkMember(pkMember, pkApprove, currentDateTime);
@ -897,7 +892,7 @@ public class CuMemberBusinessServiceImpl implements ICuMemberBusinessService {
if (EOrderType.RETAIL_UPGRADE.getValue() == saOrder.getOrderType()) {
// 升级订单
// 回退等级
cuMemberLevelService.deleteCuMemberLevelRecord(saOrder.getPkId(), pkApprove, currentDateTime);
iCuMemberLevelService.deleteCuMemberLevelRecord(saOrder.getPkId(), pkApprove, currentDateTime);
} else if (EOrderType.RETAIL_REPURCHASE.getValue() == saOrder.getOrderType()) {
// 复购订单
// 会员等级发生变化新等级需要处理
@ -906,26 +901,6 @@ public class CuMemberBusinessServiceImpl implements ICuMemberBusinessService {
// 更新会员等级
cuMember.setPkSettleGrade(newGrade.getPkId());
}
// 处理升级记录添加删除
List<CuMemberLevel> deleteLevelList = saOrder.getDeleteLevelList();
if (CollectionUtil.isNotEmpty(deleteLevelList)) {
cuMemberLevelService.update(Wrappers.<CuMemberLevel>lambdaUpdate()
.set(CuMemberLevel::getDelFlag, EDelFlag.DELETE.getValue())
.set(CuMemberLevel::getModifiedTime, new Date())
.set(CuMemberLevel::getPkModified, pkApprove)
.in(CuMemberLevel::getPkId, deleteLevelList.stream().map(CuMemberLevel::getPkId).collect(Collectors.toList()))
);
}
List<CuMemberLevel> createLevelList = saOrder.getCreateLevelList();
if (CollectionUtil.isNotEmpty(createLevelList)) {
// 校验插入的升级时间要小于V4V5的升级时间
CuMemberLevel tmpLevel = cuMemberLevelService.getLevelByGradeValue(saOrder.getPkMember(), EGrade.VIP.getValue(), saOrder.getPayTime(), saOrder.getPkCountry());
if (null != tmpLevel) {
createLevelList = createLevelList.stream().filter(tmp -> tmp.getUpgradeTime().compareTo(tmpLevel.getUpgradeTime()) < 0).collect(Collectors.toList());
}
cuMemberLevelService.insertBatch(createLevelList);
}
}
// 更新会员标记如果是则更新会员信息
@ -936,6 +911,8 @@ public class CuMemberBusinessServiceImpl implements ICuMemberBusinessService {
}
}
this.handleParentLevel(saOrder, currentDateTime);
// 部分撤单 todo 发货后邮费不退未发货退邮费
if (saOrder.getBackOrderAmount() != null && ComputeUtil.compareValue(saOrder.getBackOrderAmount())) {
cancelPartOrderBackAmount(pkApprove, saOrder);
@ -1633,7 +1610,7 @@ public class CuMemberBusinessServiceImpl implements ICuMemberBusinessService {
.build();
cuMemberLevel.setPkCountry(cuMember.getPkSettleCountry());
cuMemberLevel.setPkCreator(cuMember.getPkId());
cuMemberLevelService.save(cuMemberLevel);
iCuMemberLevelService.save(cuMemberLevel);
LambdaUpdateWrapper<CuMember> updateWrapper = new LambdaUpdateWrapper<>();
updateWrapper.set(CuMember::getPkSettleGrade, upgradeDTO.getPkId());
@ -1645,4 +1622,54 @@ public class CuMemberBusinessServiceImpl implements ICuMemberBusinessService {
}
}
/**
* 处理推荐人等级
*
* @param saOrder
* @param currentDateTime
*/
private void handleParentLevel(SaOrderExt saOrder, Date currentDateTime) {
// 注册升级订单需要判断是否有推荐人升级的
if (EOrderType.RETAIL_REGISTER.getValue() == saOrder.getOrderType()
|| EOrderType.RETAIL_UPGRADE.getValue() == saOrder.getOrderType()) {
// 查询订单是否带有自动升级记录
LambdaQueryWrapper<CuMemberLevel> memberLevelQuery = new LambdaQueryWrapper<>();
memberLevelQuery.eq(CuMemberLevel::getPkOrder, saOrder.getPkId());
memberLevelQuery.eq(CuMemberLevel::getUpType, EUpgradeType.AUTO_UPGRADE.getValue());
CuMemberLevel parentLevel = iCuMemberLevelService.getOne(memberLevelQuery);
if (null != parentLevel) {
// 查询推荐人信息必须是高级店主
CuMember parentMember = iCuMemberService.getGradeSvipMember(parentLevel.getPkMember());
if (null != parentMember) {
// 推荐是高级店主查询直推博羚店主以上订单
SaOrder parentOrder = iCuMemberService.listRecommendVipOrder(parentMember.getPkId(), saOrder.getOrderCode());
if (null != parentOrder) {
// 存在其它博羚店主订单重新处理升级记录
CuMemberLevel parentNewLevel = BeanUtil.copyProperties(parentLevel, CuMemberLevel.class);
parentNewLevel.setPkId(null);
parentNewLevel.setPkOrder(parentOrder.getPkId());
parentNewLevel.setUpgradeTime(parentOrder.getPayTime());
parentNewLevel.setModifiedTime(parentOrder.getPayTime());
parentNewLevel.setPkModified(parentOrder.getPkMember());
iCuMemberLevelService.save(parentNewLevel);
} else {
// 不存在其它博羚店主订单会员需要降级处理
LambdaUpdateWrapper<CuMember> parentMemberUpdate = new LambdaUpdateWrapper<>();
parentMemberUpdate.eq(CuMember::getPkId, parentMember.getPkId());
parentMemberUpdate.set(CuMember::getPkSettleGrade, parentLevel.getOldLevel());
parentMemberUpdate.set(CuMember::getModifiedTime, currentDateTime);
iCuMemberService.update(parentMemberUpdate);
}
// 删除原来升级记录
LambdaUpdateWrapper<CuMemberLevel> updateMemberLevel = new LambdaUpdateWrapper<>();
updateMemberLevel.eq(CuMemberLevel::getPkId, parentLevel.getPkId());
updateMemberLevel.set(CuMemberLevel::getDelFlag, EDelFlag.DELETE.getValue());
updateMemberLevel.set(CuMemberLevel::getModifiedTime, currentDateTime);
iCuMemberLevelService.update(updateMemberLevel);
}
}
}
}
}

View File

@ -26,6 +26,7 @@ import com.hzs.common.domain.member.detail.CuMemberGrade;
import com.hzs.common.domain.member.detail.CuMemberServiceLog;
import com.hzs.common.domain.member.empty.CuMemberEmptyCode;
import com.hzs.common.domain.member.ext.CuMemberExt;
import com.hzs.common.domain.sale.order.SaOrder;
import com.hzs.common.domain.sale.wares.BdWaresAuthority;
import com.hzs.common.domain.system.config.BdAwards;
import com.hzs.common.domain.system.config.BdTradeWhiteConfig;
@ -3161,4 +3162,14 @@ public class CuMemberServiceImpl extends ServiceImpl<CuMemberMapper, CuMember> i
return baseMapper.getShopkeeperMember(pkMember);
}
@Override
public CuMember getGradeSvipMember(Long pkMember) {
return baseMapper.getGradeSvipMember(pkMember);
}
@Override
public SaOrder listRecommendVipOrder(Long pkMember, String orderCode) {
return baseMapper.listRecommendVipOrder(pkMember, orderCode);
}
}

View File

@ -13,7 +13,7 @@ import java.util.List;
public interface ICuMemberLevelService extends IService<CuMemberLevel> {
/**
* 删除会员等级升级记录
* 删除会员等级升级记录订单购买升级的
*
* @param pkOrder 订单
* @param pkApprove 审核人

View File

@ -2,6 +2,7 @@ package com.hzs.member.detail.service.impl;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.hzs.common.core.enums.EUpgradeType;
import com.hzs.common.core.enums.EYesNo;
import com.hzs.common.domain.member.detail.CuMemberGrade;
import com.hzs.common.domain.member.detail.CuMemberLevel;
@ -25,6 +26,8 @@ public class CuMemberLevelServiceImpl extends ServiceImpl<CuMemberLevelMapper, C
updateWrapper.set(CuMemberLevel::getPkModified, pkApprove);
updateWrapper.set(CuMemberLevel::getModifiedTime, currentDateTime);
updateWrapper.eq(CuMemberLevel::getPkOrder, pkOrder);
// 购买升级
updateWrapper.eq(CuMemberLevel::getUpType, EUpgradeType.BUY_UPGRADE.getValue());
update(updateWrapper);
}

View File

@ -2449,4 +2449,42 @@
and bg.grade_value = 60
</select>
<!-- 查询高级店主 -->
<select id="getGradeSvipMember" resultType="com.hzs.common.domain.member.base.CuMember">
select cm.*
from cu_member cm
left join bd_grade bg
on bg.pk_id = cm.pk_settle_grade
where cm.del_flag = 0
and cm.category = 0
and cm.pk_id = #{pkMember}
and bg.grade_value = 70
</select>
<!-- 查询会员直推大于博羚店主的注册、升级订单 -->
<select id="listRecommendVipOrder" resultType="com.hzs.common.domain.sale.order.SaOrder">
select so.*
from (select so.*, rownum
from cu_member cm
left join sa_order so
on so.pk_member = cm.pk_id
left join cu_member_level cml
on cml.pk_member = so.pk_member
and cml.pk_order = so.pk_id
and cml.up_type = 4
left join bd_grade bg
on bg.pk_id = cml.new_level
where cm.del_flag = 0
and cm.category = 0
and cm.pk_parent = #{pkMember}
and so.del_flag = 0
and so.order_status = 1
and so.order_type in (41, 42)
<if test="orderCode != null and orderCode != ''">
and so.order_code != #{orderCode}
</if>
and bg.grade_value >= 60) so
where rownum = 1
</select>
</mapper>

View File

@ -245,7 +245,7 @@ public class RetailOrderServiceImpl implements IRetailOrderService {
int boxNum = 0;
// 2025.03.11 添加需求复购专区重消专区指定盒数商品每用户每月限购50件
this.checkWaresLimit(cuMember, orderParam.getSpecialArea(), waresDetailExtList, boxWaresList, gradeList);
// this.checkWaresLimit(cuMember, orderParam.getSpecialArea(), waresDetailExtList, boxWaresList, gradeList);
// 遍历生成订单明细数据
for (BdWaresDetailExt waresDetailExt : waresDetailExtList) {

View File

@ -911,9 +911,9 @@ public class SaOrderBusinessController extends BaseController {
SaOrderExt saOrderExt = validateCancelOrderVO.getSaOrderExt();
saOrderExtList.add(saOrderExt);
EApprovalBusiness approveBusiness = EApprovalBusiness.ORDER_CANCEL;
if (ECancelOrderType.OTHER_CANCEL_PART_ORDER.getValue() == orderCancelParam.getCancelType()) {
approveBusiness = EApprovalBusiness.ORDER_CANCEL_PRODUCT;
}
// if (ECancelOrderType.OTHER_CANCEL_PART_ORDER.getValue() == orderCancelParam.getCancelType()) {
// approveBusiness = EApprovalBusiness.ORDER_CANCEL_PRODUCT;
// }
Map<Long, OrderQueryChargeDTO> queryChargeMap = iOrderBusinessService.queryChargeLog(saOrderExtList, approveBusiness, SecurityUtils.getPkCountry());
OrderQueryChargeDTO dto = queryChargeMap.get(saOrderExt.getPkId());
// 撤销订单撤销产品撤销除升级订单
@ -932,20 +932,20 @@ public class SaOrderBusinessController extends BaseController {
.orderCode(saOrderExt.getOrderCode())
.build();
List<OrderCancelDetailVO> orderCancelDetailVOList = new ArrayList<>();
if (ECancelOrderType.OTHER_CANCEL_PART_ORDER.getValue() == orderCancelParam.getCancelType()) {
saOrderExt.getOrderItemsList().forEach(saOrderItems -> {
String productName = productServiceApi.getProduct(saOrderItems.getPkProduct()).getData().getProductName();
OrderCancelDetailVO orderCancelDetailVO = OrderCancelDetailVO.builder()
.pkId(saOrderItems.getPkId())
.productName(productName)
.orderAmount(saOrderItems.getPrice())
.number(saOrderItems.getQuantity())
.achievement(saOrderItems.getAchievement())
.assAchievement(saOrderItems.getAssAchievement())
.build();
orderCancelDetailVOList.add(orderCancelDetailVO);
});
} else {
// if (ECancelOrderType.OTHER_CANCEL_PART_ORDER.getValue() == orderCancelParam.getCancelType()) {
// saOrderExt.getOrderItemsList().forEach(saOrderItems -> {
// String productName = productServiceApi.getProduct(saOrderItems.getPkProduct()).getData().getProductName();
// OrderCancelDetailVO orderCancelDetailVO = OrderCancelDetailVO.builder()
// .pkId(saOrderItems.getPkId())
// .productName(productName)
// .orderAmount(saOrderItems.getPrice())
// .number(saOrderItems.getQuantity())
// .achievement(saOrderItems.getAchievement())
// .assAchievement(saOrderItems.getAssAchievement())
// .build();
// orderCancelDetailVOList.add(orderCancelDetailVO);
// });
// } else {
saOrderExt.getOrderItemsExtList().forEach(saOrderItems -> {
OrderCancelDetailVO orderCancelDetailVO = OrderCancelDetailVO.builder()
.pkId(saOrderItems.getPkId())
@ -957,7 +957,7 @@ public class SaOrderBusinessController extends BaseController {
.build();
orderCancelDetailVOList.add(orderCancelDetailVO);
});
}
// }
orderCancelVO.setOrderCancelDetailVOList(orderCancelDetailVOList);
orderCancelVO.setMemberCode(saOrderExt.getMemberCode());
orderCancelVO.setMemberName(saOrderExt.getMemberName());
@ -978,11 +978,11 @@ public class SaOrderBusinessController extends BaseController {
@Log(module = EOperationModule.CANCEL_ORDER_CONFIRM, method = EOperationMethod.INSERT)
public AjaxResult cancelOrder(@RequestBody OrderCancelParam orderCancelParam) {
orderCancelParam.setPkCountry(SecurityUtils.getPkCountry());
if (ECancelOrderType.OTHER_CANCEL_PART_ORDER.getValue() == orderCancelParam.getCancelType()) {
if (orderCancelParam.getOrderCancelDetailParamList() == null || orderCancelParam.getOrderCancelDetailParamList().size() == 0) {
return AjaxResult.error(TransactionUtils.getContent(MemberMsgConstants.REQUIRED_NOT_EMPTY));
}
}
// if (ECancelOrderType.OTHER_CANCEL_PART_ORDER.getValue() == orderCancelParam.getCancelType()) {
// if (orderCancelParam.getOrderCancelDetailParamList() == null || orderCancelParam.getOrderCancelDetailParamList().size() == 0) {
// return AjaxResult.error(TransactionUtils.getContent(MemberMsgConstants.REQUIRED_NOT_EMPTY));
// }
// }
ValidateCancelOrderVO validateCancelOrderVO = iOrderBusinessService.validateCancelOrder(orderCancelParam);
AjaxResult validateCancelOrder = validateCancelOrderVO(orderCancelParam, validateCancelOrderVO);
if (validateCancelOrder != null) {
@ -1001,11 +1001,11 @@ public class SaOrderBusinessController extends BaseController {
@Log(module = EOperationModule.CANCEL_ORDER_CONFIRM, method = EOperationMethod.INSERT)
public AjaxResult freeCostCancelOrder(@RequestBody OrderCancelParam orderCancelParam) {
orderCancelParam.setPkCountry(SecurityUtils.getPkCountry());
if (ECancelOrderType.OTHER_CANCEL_PART_ORDER.getValue() == orderCancelParam.getCancelType()) {
if (orderCancelParam.getOrderCancelDetailParamList() == null || orderCancelParam.getOrderCancelDetailParamList().size() == 0) {
return AjaxResult.error(TransactionUtils.getContent(MemberMsgConstants.REQUIRED_NOT_EMPTY));
}
}
// if (ECancelOrderType.OTHER_CANCEL_PART_ORDER.getValue() == orderCancelParam.getCancelType()) {
// if (orderCancelParam.getOrderCancelDetailParamList() == null || orderCancelParam.getOrderCancelDetailParamList().size() == 0) {
// return AjaxResult.error(TransactionUtils.getContent(MemberMsgConstants.REQUIRED_NOT_EMPTY));
// }
// }
if (orderCancelParam.getCancelRoad() == null || (orderCancelParam.getCancelRoad() != 1 && orderCancelParam.getCancelRoad() != 3)) {
return AjaxResult.error(TransactionUtils.getContent(MemberMsgConstants.REQUIRED_NOT_EMPTY));
}
@ -1014,7 +1014,7 @@ public class SaOrderBusinessController extends BaseController {
if (validateCancelOrder != null) {
return validateCancelOrder;
}
// 2023.11.22 不走签呈也需要添加中间操作表用于区分部分撤单和调换货物
// 不走签呈也需要添加中间操作表用于区分部分撤单和调换货物
iOrderBusinessService.revokeSaOrderByOrderCode(SecurityUtils.getUserId(), orderCancelParam, validateCancelOrderVO);
return AjaxResult.success();
}
@ -1023,22 +1023,22 @@ public class SaOrderBusinessController extends BaseController {
if (validateCancelOrderVO.getSaOrderExt() == null) {
return AjaxResult.error(validateCancelOrderVO.getMsg());
}
if (ECancelOrderType.OTHER_CANCEL_PART_ORDER.getValue() == orderCancelParam.getCancelType()) {
SaOrderExt saOrderExt = validateCancelOrderVO.getSaOrderExt();
if (saOrderExt.getOrderItemsList() == null) {
return AjaxResult.error(TransactionUtils.getContent(SaOrderMsgConstants.ORDER_EMPTY));
}
Map<Long, String> productMap = new HashMap<>(ComputeUtil.mapInitCapacity(orderCancelParam.getOrderCancelDetailParamList().size()));
saOrderExt.getOrderItemsList().forEach(saOrderItems -> {
String productName = productServiceApi.getProduct(saOrderItems.getPkProduct()).getData().getProductName();
productMap.put(saOrderItems.getPkId(), productName);
});
orderCancelParam.getOrderCancelDetailParamList().forEach(orderCancelDetailParam -> {
if (productMap.containsKey(orderCancelDetailParam.getPkId())) {
orderCancelDetailParam.setProductName(productMap.get(orderCancelDetailParam.getPkId()));
}
});
}
// if (ECancelOrderType.OTHER_CANCEL_PART_ORDER.getValue() == orderCancelParam.getCancelType()) {
// SaOrderExt saOrderExt = validateCancelOrderVO.getSaOrderExt();
// if (saOrderExt.getOrderItemsList() == null) {
// return AjaxResult.error(TransactionUtils.getContent(SaOrderMsgConstants.ORDER_EMPTY));
// }
// Map<Long, String> productMap = new HashMap<>(ComputeUtil.mapInitCapacity(orderCancelParam.getOrderCancelDetailParamList().size()));
// saOrderExt.getOrderItemsList().forEach(saOrderItems -> {
// String productName = productServiceApi.getProduct(saOrderItems.getPkProduct()).getData().getProductName();
// productMap.put(saOrderItems.getPkId(), productName);
// });
// orderCancelParam.getOrderCancelDetailParamList().forEach(orderCancelDetailParam -> {
// if (productMap.containsKey(orderCancelDetailParam.getPkId())) {
// orderCancelDetailParam.setProductName(productMap.get(orderCancelDetailParam.getPkId()));
// }
// });
// }
return null;
}

View File

@ -1250,30 +1250,31 @@ public class OrderBusinessServiceImpl implements IOrderBusinessService {
}
int approveBusiness = EApprovalBusiness.ORDER_CANCEL.getValue();
SaOrderExt saOrderExt;
if (ECancelOrderType.OTHER_CANCEL_PART_ORDER.getValue() == orderCancelParam.getCancelType()) {
approveBusiness = EApprovalBusiness.ORDER_CANCEL_PRODUCT.getValue();
SaOrder orderQuery = SaOrder.builder().orderStatus(EOrderStatus.PAY.getValue()).orderCode(orderCancelParam.getOrderCode()).build();
orderQuery.setPkCountry(orderCancelParam.getPkCountry());
// List<Long> itemIdList = new ArrayList<>();
// if (orderCancelParam.getOrderCancelDetailParamList() != null && orderCancelParam.getOrderCancelDetailParamList().size() > 0) {
// orderCancelParam.getOrderCancelDetailParamList().forEach(orderCancelDetailParam ->
// itemIdList.add(orderCancelDetailParam.getPkId()));
// }
saOrderExt = iSaOrderService.querySaleOrderExtByOrderCode(orderQuery, new ArrayList<>());
CuMember cuMember = iSaOrderService.getCuMemberByKey(saOrderExt.getPkMember());
saOrderExt.setMemberCode(cuMember.getMemberCode());
saOrderExt.setMemberName(cuMember.getMemberName());
} else {
// if (ECancelOrderType.OTHER_CANCEL_PART_ORDER.getValue() == orderCancelParam.getCancelType()) {
// approveBusiness = EApprovalBusiness.ORDER_CANCEL_PRODUCT.getValue();
// SaOrder orderQuery = SaOrder.builder().orderStatus(EOrderStatus.PAY.getValue()).orderCode(orderCancelParam.getOrderCode()).build();
// orderQuery.setPkCountry(orderCancelParam.getPkCountry());
//// List<Long> itemIdList = new ArrayList<>();
//// if (orderCancelParam.getOrderCancelDetailParamList() != null && orderCancelParam.getOrderCancelDetailParamList().size() > 0) {
//// orderCancelParam.getOrderCancelDetailParamList().forEach(orderCancelDetailParam ->
//// itemIdList.add(orderCancelDetailParam.getPkId()));
//// }
// saOrderExt = iSaOrderService.querySaleOrderExtByOrderCode(orderQuery, new ArrayList<>());
// CuMember cuMember = iSaOrderService.getCuMemberByKey(saOrderExt.getPkMember());
// saOrderExt.setMemberCode(cuMember.getMemberCode());
// saOrderExt.setMemberName(cuMember.getMemberName());
// } else {
saOrderExt = iSaOrderService.queryOrderByCode(orderCancelParam.getOrderCode(), orderCancelParam.getPkCountry());
}
// }
if (saOrderExt == null || EOrderStatus.WAIT_PAY.getValue() == saOrderExt.getOrderStatus()) {
validateCancelOrderVO.setMsg(TransactionUtils.getContent(SaOrderMsgConstants.ORDER_EMPTY));
return validateCancelOrderVO;
}
if (orderCancelParam.getCancelType().equals(ECancelOrderType.SINGLE_CANCEL_ORDER.getValue()) ||
orderCancelParam.getCancelType().equals(ECancelOrderType.MERGE_CANCEL_ORDER.getValue()) ||
orderCancelParam.getCancelType().equals(ECancelOrderType.OTHER_CANCEL_ORDER.getValue()) ||
orderCancelParam.getCancelType().equals(ECancelOrderType.OTHER_CANCEL_PART_ORDER.getValue())) {
if (orderCancelParam.getCancelType().equals(ECancelOrderType.SINGLE_CANCEL_ORDER.getValue())
|| orderCancelParam.getCancelType().equals(ECancelOrderType.MERGE_CANCEL_ORDER.getValue())
|| orderCancelParam.getCancelType().equals(ECancelOrderType.OTHER_CANCEL_ORDER.getValue())
// || orderCancelParam.getCancelType().equals(ECancelOrderType.OTHER_CANCEL_PART_ORDER.getValue())
) {
// 验证订单时间只能撤销7天以内的支付订单
// 周结只能撤销当前期间的订单不能撤销上个期间的订单
String settleCycle = systemConfigServiceApi.getBonusSystemConfig(orderCancelParam.getPkCountry(), ESystemConfig.EXPAND_CAP_METHOD.getKey()).getData();
@ -1460,14 +1461,14 @@ public class OrderBusinessServiceImpl implements IOrderBusinessService {
String businessCode = CommonUtil.createSerialNumber(EOrderPrefix.DEFAULT);
// 修改类型
EApprovalBusiness approveBusiness = EApprovalBusiness.ORDER_CANCEL;
if (ECancelOrderType.OTHER_CANCEL_PART_ORDER.getValue() == orderCancelParam.getCancelType()) {
approveBusiness = EApprovalBusiness.ORDER_CANCEL_PRODUCT;
}
// if (ECancelOrderType.OTHER_CANCEL_PART_ORDER.getValue() == orderCancelParam.getCancelType()) {
// approveBusiness = EApprovalBusiness.ORDER_CANCEL_PRODUCT;
// }
// 封装修改地址业务日志
List<BusinessLogDTO> dtoList = new ArrayList<>();
// 2023.11.22 不走签呈也需要添加中间操作表用于区分部分撤单和调换货物
// 不走签呈也需要添加中间操作表用于区分部分撤单和调换货物
// 撤单日志列表
List<SaOrderChargeLog> saOrderChargeLogList = new ArrayList<>();
Map<Long, SaOrderExt> saOrderMap = validateCancelOrderVO.getSaOrderMap();
@ -1549,13 +1550,13 @@ public class OrderBusinessServiceImpl implements IOrderBusinessService {
orderCancelParam.setMemberCode(cuMember.getMemberCode());
orderCancelParam.setMemberName(cuMember.getMemberName());
EApprovalBusiness approveBusiness = EApprovalBusiness.ORDER_CANCEL;
if (ECancelOrderType.OTHER_CANCEL_PART_ORDER.getValue() == orderCancelParam.getCancelType()) {
approveBusiness = EApprovalBusiness.ORDER_CANCEL_PRODUCT;
// List<OrderCancelDetailParam> orderCancelDetailParamList = new ArrayList<>();
// orderCancelParam.getOrderCancelDetailParamList().forEach(orderCancelDetailParam ->
// orderCancelDetailParamList.add(BeanUtil.copyProperties(orderCancelDetailParam, OrderCancelDetailParam.class)));
// orderCancelParam.setOrderCancelDetailParamList(orderCancelDetailParamList);
}
// if (ECancelOrderType.OTHER_CANCEL_PART_ORDER.getValue() == orderCancelParam.getCancelType()) {
// approveBusiness = EApprovalBusiness.ORDER_CANCEL_PRODUCT;
//// List<OrderCancelDetailParam> orderCancelDetailParamList = new ArrayList<>();
//// orderCancelParam.getOrderCancelDetailParamList().forEach(orderCancelDetailParam ->
//// orderCancelDetailParamList.add(BeanUtil.copyProperties(orderCancelDetailParam, OrderCancelDetailParam.class)));
//// orderCancelParam.setOrderCancelDetailParamList(orderCancelDetailParamList);
// }
// 本次业务修改费用
Map<Long, OrderQueryChargeDTO> queryChargeMap = null;
if (orderCancelParam.getCancelRoad() == null || orderCancelParam.getCancelRoad() != 2) {

View File

@ -1258,9 +1258,9 @@ public class SaOrderServiceImpl extends ServiceImpl<SaOrderMapper, SaOrder> impl
BusinessCommissionDTO businessCommissionDTO = null;
if (orderCancelParam.getCancelRoad() == 1) {
EApprovalBusiness approveBusiness = EApprovalBusiness.ORDER_CANCEL;
if (ECancelOrderType.OTHER_CANCEL_PART_ORDER.getValue() == orderCancelParam.getCancelType()) {
approveBusiness = EApprovalBusiness.ORDER_CANCEL_PRODUCT;
}
// if (ECancelOrderType.OTHER_CANCEL_PART_ORDER.getValue() == orderCancelParam.getCancelType()) {
// approveBusiness = EApprovalBusiness.ORDER_CANCEL_PRODUCT;
// }
Map<Long, OrderQueryChargeDTO> queryChargeMap = orderBusinessService.queryChargeLog(Collections.singletonList(validateCancelOrderVO.getSaOrderExt()),
approveBusiness, orderCancelParam.getPkCountry());
if (queryChargeMap != null && queryChargeMap.containsKey(saOrderExt.getPkId())) {
@ -1289,47 +1289,47 @@ public class SaOrderServiceImpl extends ServiceImpl<SaOrderMapper, SaOrder> impl
}
}
if (ECancelOrderType.OTHER_CANCEL_PART_ORDER.getValue() == orderCancelParam.getCancelType()) {
List<OrderCancelDetailParam> orderCancelDetailParamList = orderCancelParam.getOrderCancelDetailParamList();
List<Long> pkOrderItemList = orderCancelDetailParamList.stream().map(OrderCancelDetailParam::getPkId).collect(Collectors.toList());
// 第二次封装订单根据明细表计算订单主表金额业绩
saOrderExt.setOrderAmount(BigDecimal.ZERO);
saOrderExt.setOrderAchieve(BigDecimal.ZERO);
saOrderExt.setOrderAssAchieve(BigDecimal.ZERO);
saOrderExt.setBackOrderAmount(BigDecimal.ZERO);
List<SaOrderItems> saOrderItemsList = new ArrayList<>();
saOrderExt.getOrderItemsList().forEach(saOrderItems -> {
if (pkOrderItemList.contains(saOrderItems.getPkId())) {
saOrderExt.setBackOrderAmount(ComputeUtil.computeAddMultiply(saOrderExt.getBackOrderAmount(), saOrderItems.getPrice(), saOrderItems.getQuantity()));
return;
}
// 总价;
saOrderExt.setOrderAmount(ComputeUtil.computeAddMultiply(saOrderExt.getOrderAmount(), saOrderItems.getPrice(), saOrderItems.getQuantity()));
// 总业绩
saOrderExt.setOrderAchieve(ComputeUtil.computeAddMultiply(saOrderExt.getOrderAchieve(), saOrderItems.getAchievement(), saOrderItems.getQuantity()));
// 总考核业绩
saOrderExt.setOrderAssAchieve(ComputeUtil.computeAddMultiply(saOrderExt.getOrderAssAchieve(), saOrderItems.getAssAchievement(), saOrderItems.getQuantity()));
saOrderItemsList.add(saOrderItems);
});
saOrderExt.setUploadAchieve(saOrderExt.getOrderAchieve());
if (saOrderItemsList.size() == 0) {
saOrderExt.setDelFlag(EDelFlag.DELETE.getValue());
} else {
saOrderExt.setOrderItemsList(saOrderItemsList);
}
// 修改订单
Date currentDateTime = DateUtils.currentDateTime();
// 删除发货单
saDeliverItemsService.deleteSaDeliverItems(saOrderExt.getPkId(), pkOrderItemList);
updateSaOrder(pkApprove, saOrderExt, currentDateTime);
// 删除订单明细
if (!saOrderItemsService.updateOrderItemsById(pkOrderItemList, pkApprove, currentDateTime)) {
throw new ServiceException("更新订单失败");
}
if (!memberServiceApi.normalRevokeOrder(pkApprove, saOrderExt, null, businessCommissionDTO).getData()) {
throw new ServiceException("撤单失败");
}
} else {
// if (ECancelOrderType.OTHER_CANCEL_PART_ORDER.getValue() == orderCancelParam.getCancelType()) {
// List<OrderCancelDetailParam> orderCancelDetailParamList = orderCancelParam.getOrderCancelDetailParamList();
// List<Long> pkOrderItemList = orderCancelDetailParamList.stream().map(OrderCancelDetailParam::getPkId).collect(Collectors.toList());
// // 第二次封装订单根据明细表计算订单主表金额业绩
// saOrderExt.setOrderAmount(BigDecimal.ZERO);
// saOrderExt.setOrderAchieve(BigDecimal.ZERO);
// saOrderExt.setOrderAssAchieve(BigDecimal.ZERO);
// saOrderExt.setBackOrderAmount(BigDecimal.ZERO);
// List<SaOrderItems> saOrderItemsList = new ArrayList<>();
// saOrderExt.getOrderItemsList().forEach(saOrderItems -> {
// if (pkOrderItemList.contains(saOrderItems.getPkId())) {
// saOrderExt.setBackOrderAmount(ComputeUtil.computeAddMultiply(saOrderExt.getBackOrderAmount(), saOrderItems.getPrice(), saOrderItems.getQuantity()));
// return;
// }
// // 总价;
// saOrderExt.setOrderAmount(ComputeUtil.computeAddMultiply(saOrderExt.getOrderAmount(), saOrderItems.getPrice(), saOrderItems.getQuantity()));
// // 总业绩
// saOrderExt.setOrderAchieve(ComputeUtil.computeAddMultiply(saOrderExt.getOrderAchieve(), saOrderItems.getAchievement(), saOrderItems.getQuantity()));
// // 总考核业绩
// saOrderExt.setOrderAssAchieve(ComputeUtil.computeAddMultiply(saOrderExt.getOrderAssAchieve(), saOrderItems.getAssAchievement(), saOrderItems.getQuantity()));
// saOrderItemsList.add(saOrderItems);
// });
// saOrderExt.setUploadAchieve(saOrderExt.getOrderAchieve());
// if (saOrderItemsList.size() == 0) {
// saOrderExt.setDelFlag(EDelFlag.DELETE.getValue());
// } else {
// saOrderExt.setOrderItemsList(saOrderItemsList);
// }
// // 修改订单
// Date currentDateTime = DateUtils.currentDateTime();
// // 删除发货单
// saDeliverItemsService.deleteSaDeliverItems(saOrderExt.getPkId(), pkOrderItemList);
// updateSaOrder(pkApprove, saOrderExt, currentDateTime);
// // 删除订单明细
// if (!saOrderItemsService.updateOrderItemsById(pkOrderItemList, pkApprove, currentDateTime)) {
// throw new ServiceException("更新订单失败");
// }
// if (!memberServiceApi.normalRevokeOrder(pkApprove, saOrderExt, null, businessCommissionDTO).getData()) {
// throw new ServiceException("撤单失败");
// }
// } else {
// 删除订单
saOrderExt.setDelFlag(EDelFlag.DELETE.getValue());
Date currentDate = DateUtils.currentDateTime();
@ -1367,7 +1367,7 @@ public class SaOrderServiceImpl extends ServiceImpl<SaOrderMapper, SaOrder> impl
// 其他撤单
this.handleCancelUpgradeOrder(saOrderExt, validateCancelOrderVO.getUpdSaOrder(), pkApprove, businessCommissionDTO);
}
}
// }
try {
// 推送MQ的列表
@ -2030,7 +2030,7 @@ public class SaOrderServiceImpl extends ServiceImpl<SaOrderMapper, SaOrder> impl
* @return
*/
private GradeDTO calculateRetailCancelGrade(CuMember cuMember, SaOrder saOrder) {
// 查询会员升级记录表最终数据
// 查询会员最新升级记录
CuMemberLevel cuMemberLevel = iCuMemberDetailServiceApi.getLastUpgrade(cuMember.getPkId(), saOrder.getPkId()).getData();
if (null != cuMemberLevel) {
return gradeServiceApi.getGrade(cuMemberLevel.getNewLevel()).getData();
@ -2065,10 +2065,9 @@ public class SaOrderServiceImpl extends ServiceImpl<SaOrderMapper, SaOrder> impl
cuMember.setConsumeMoney(BigDecimal.ZERO);
cuMember.setConsumeAchieve(cuMemberRegister.getConsumeAchieve());
// 查询会员升级记录表最终数据
// 查询会员最新升级记录
CuMemberLevel cuMemberLevel = iCuMemberDetailServiceApi.getLastUpgrade(cuMember.getPkId(), saOrderExt.getPkId()).getData();
if (null != cuMemberLevel) {
// 存在手动升级
cuMember.setPkSettleGrade(cuMemberLevel.getNewLevel());
}
} else {
@ -2085,48 +2084,6 @@ public class SaOrderServiceImpl extends ServiceImpl<SaOrderMapper, SaOrder> impl
cuMember.setIsActivate(EYesNo.NO.getIntValue());
}
saOrderExt.setUpdateFlag(EYesNo.YES.getIntValue());
} else if (EOrderType.RETAIL_REPURCHASE.getValue() == saOrderExt.getOrderType()) {
// 复购订单存在盒数商品撤单需要处理降级操作
if (saOrderExt.getBoxNum() > 0) {
// TODO 目前只有注册升级才能激活复购不进行处理
// Date firstDate = baseMapper.getFirstPayTime(cuMember.getPkId());
// if (null == firstDate) {
// // 盒数商品订单最早的时间为空则会员未激活
// cuMember.setPayTime(null);
// cuMember.setPayStatus(EPayStatus.UNPAID.getValue());
// cuMember.setIsActivate(EYesNo.NO.getIntValue());
// saOrderExt.setUpdateFlag(EYesNo.YES.getIntValue());
// }
// TODO 恢复升级专区复购专区不需要处理等级问题
// // 如果复购订单后面还有升级订单不需要处理等级问题 复购订单后面没有升级订单走新逻辑校验
// if (this.count(Wrappers.<SaOrder>lambdaQuery()
// .eq(SaOrder::getPkMember, saOrderExt.getPkMember())
// .eq(SaOrder::getOrderType, EOrderType.RETAIL_UPGRADE.getValue())
// .ge(SaOrder::getPayTime, saOrderExt.getPayTime())
// .eq(SaOrder::getOrderStatus, EPayStatus.PAID.getValue())
// ) == 0) {
// // 带有盒数商品的订单需要校验等级
// List<BdGrade> gradeList = iGradeServiceApi.getRetailGradeList().getData();
// // 当前会员等级
// BdGrade memberGrade = this.getGrade(cuMember.getPkSettleGrade(), gradeList);
//
// // 需要添加的升级记录列表
// List<CuMemberLevel> createLevelList = new ArrayList<>();
// // 需要删除的升级记录列表
// List<CuMemberLevel> deleteLevelList = new ArrayList<>();
// // 新等级计算
// BdGrade newGrade = this.handleNewGrade(cuMember, memberGrade, gradeList, saOrderExt, createLevelList, deleteLevelList);
//
// if (memberGrade.getGradeValue() < EGrade.VIP.getValue() && newGrade.getGradeValue() < memberGrade.getGradeValue()) {
// // 当前会员等级不是V4或者V5 并且 新等级小于当前等级需要进行处理
// saOrderExt.setNewGrade(newGrade);
// saOrderExt.setUpdateFlag(EYesNo.YES.getIntValue());
// }
// saOrderExt.setCreateLevelList(createLevelList);
// saOrderExt.setDeleteLevelList(deleteLevelList);
// }
}
} else if (EOrderType.RETAIL_PICK.getValue() == saOrderExt.getOrderType()) {
// 新提货订单
if (!iAcRetailPickService.cancelRetailPickOrder(saOrderExt.getPkId(), pkApprove)) {
@ -2134,13 +2091,13 @@ public class SaOrderServiceImpl extends ServiceImpl<SaOrderMapper, SaOrder> impl
}
}
if (EOrderType.RETAIL_REPURCHASE.getValue() == saOrderExt.getOrderType() ||
EOrderType.RETAIL_CONSUME.getValue() == saOrderExt.getOrderType()) {
// 需要查询盒数商品
List<String> boxProductList = BoxProductUtil.getBoxProductListBySystemType(saOrderExt.getSystemType());
// 复购重消订单处理限购
iSaOrderWaresLimitService.updateCancelOrder(saOrderExt.getPkId(), saOrderExt.getPkMember(), saOrderExt.getModifiedTime(), boxProductList);
}
// if (EOrderType.RETAIL_REPURCHASE.getValue() == saOrderExt.getOrderType() ||
// EOrderType.RETAIL_CONSUME.getValue() == saOrderExt.getOrderType()) {
// // 需要查询盒数商品
// List<String> boxProductList = BoxProductUtil.getBoxProductListBySystemType(saOrderExt.getSystemType());
// // 复购重消订单处理限购
// iSaOrderWaresLimitService.updateCancelOrder(saOrderExt.getPkId(), saOrderExt.getPkMember(), saOrderExt.getModifiedTime(), boxProductList);
// }
if (!memberServiceApi.normalRevokeOrder(pkApprove, saOrderExt, cuMember, businessCommissionDTO).getData()) {
throw new ServiceException("撤单处理会员失败");

View File

@ -28,10 +28,10 @@ public enum ECancelOrderType {
*/
OTHER_CANCEL_ORDER(3, "其他整单撤单", 0),
/**
* 其他部分撤单
*/
OTHER_CANCEL_PART_ORDER(4, "其他部分撤单", 0),
// /**
// * 其他部分撤单
// */
// OTHER_CANCEL_PART_ORDER(4, "其他部分撤单", 0),
/**
* 单点退单

View File

@ -3,7 +3,6 @@ package com.hzs.common.domain.sale.ext;
import com.hzs.common.core.annotation.Transaction;
import com.hzs.common.core.constant.EnumsPrefixConstants;
import com.hzs.common.domain.member.account.CuMemberTrade;
import com.hzs.common.domain.member.detail.CuMemberLevel;
import com.hzs.common.domain.sale.order.*;
import com.hzs.common.domain.system.config.BdGrade;
import lombok.Data;
@ -166,15 +165,6 @@ public class SaOrderExt extends SaOrder {
*/
private BdGrade newGrade;
/**
* 需要添加的升级记录列表
*/
private List<CuMemberLevel> createLevelList;
/**
* 需要删除的升级记录列表
*/
private List<CuMemberLevel> deleteLevelList;
/**
* 选择区域省