## 赠品积分结算处理;
This commit is contained in:
parent
60400f5399
commit
174b39edfe
|
|
@ -31,6 +31,11 @@ public class BonusConfigDTO implements Serializable {
|
|||
*/
|
||||
private Map<String, BonusDirectDTO> bonusDirectDtoMap;
|
||||
|
||||
/**
|
||||
* 等级列表
|
||||
*/
|
||||
private List<BdGrade> gradeList;
|
||||
|
||||
/**
|
||||
* 奖衔列表
|
||||
*/
|
||||
|
|
|
|||
|
|
@ -121,6 +121,17 @@ public abstract class BonusSettleHandle {
|
|||
cuMemberBonusRange.setRemark(remark);
|
||||
}
|
||||
|
||||
/**
|
||||
* 获得 赠送积分的备注
|
||||
*/
|
||||
protected void giftPointRemark(SaOrderExt saOrderExt, CuMemberBonusDetail cuMemberBonusDetail,
|
||||
CuMemberRetailRangeExt targetMemberRangeExt) {
|
||||
String remark = String.format(BonusMsgConstants.GIFT_POINT, saOrderExt.getOrderCode(),
|
||||
targetMemberRangeExt.getMemberCode() + targetMemberRangeExt.getMemberName(),
|
||||
cuMemberBonusDetail.getRealIncome());
|
||||
cuMemberBonusDetail.setRemark(remark);
|
||||
}
|
||||
|
||||
public CuMemberBonus getCuMemberBonus(Integer period, Map<Long, CuMemberBonus> cuMemberBonusMap,
|
||||
Long pkMember, Integer incomeStatus, Integer pkCountry, Integer pkRate) {
|
||||
if (cuMemberBonusMap.containsKey(pkMember)) {
|
||||
|
|
|
|||
|
|
@ -11,6 +11,7 @@ import com.hzs.bonus.bonus.service.ICuMemberBonusStageService;
|
|||
import com.hzs.bonus.bonus.vo.BonusRecordDetailVO;
|
||||
import com.hzs.bonus.constant.BonusConstants;
|
||||
import com.hzs.bonus.detail.service.ICuMemberAwardsService;
|
||||
import com.hzs.bonus.detail.service.ICuMemberGradeService;
|
||||
import com.hzs.bonus.order.service.IBonusOrderService;
|
||||
import com.hzs.common.core.constant.MagicNumberConstants;
|
||||
import com.hzs.common.core.constant.RetailConstants;
|
||||
|
|
@ -26,6 +27,7 @@ import com.hzs.common.domain.member.detail.*;
|
|||
import com.hzs.common.domain.sale.ext.SaOrderExt;
|
||||
import com.hzs.common.domain.sale.order.SaOrder;
|
||||
import com.hzs.common.domain.system.config.BdAwards;
|
||||
import com.hzs.common.domain.system.config.BdGrade;
|
||||
import com.hzs.system.config.dto.BonusConfigDTO;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
|
|
@ -53,6 +55,8 @@ public class BonusSettleRangeHandle extends BonusSettleHandle {
|
|||
@Autowired
|
||||
private ICuMemberAwardsService iCuMemberAwardsService;
|
||||
@Autowired
|
||||
private ICuMemberGradeService iCuMemberGradeService;
|
||||
@Autowired
|
||||
private ICuMemberService iCuMemberService;
|
||||
@Autowired
|
||||
private IBonusOrderService iBonusOrderService;
|
||||
|
|
@ -303,11 +307,24 @@ public class BonusSettleRangeHandle extends BonusSettleHandle {
|
|||
iCuMemberRetailRangeService.mergeMemberRetailRangeByYesterday(rangeTableName, yesterdayRangeTableName, isSameMonth);
|
||||
// 初始化结算明细数据(昨天数据更新到今天数据)
|
||||
iCuMemberRetailRangeService.mergeMemberRetailRangeDetailByYesterday(rangeDetailTableName, yesterdayRangeDetailTableName, true);
|
||||
// 更新会员手动升级
|
||||
iCuMemberGradeService.updateCuMemberManualGrade(rangeTableName, period);
|
||||
|
||||
// 升阶段点位列表
|
||||
List<CuMemberRetailDetail> stageList = new ArrayList<>();
|
||||
|
||||
if (orderList.size() > 0) {
|
||||
// 会员购买升级记录
|
||||
Map<Long, CuMemberLevel> memberLevelMap = new HashMap<>();
|
||||
List<CuMemberLevel> memberLevelList = iCuMemberGradeService.queryCuMemberLevel(settleStartDate, settleEndDate);
|
||||
memberLevelList.forEach(cuMemberLevel -> memberLevelMap.put(cuMemberLevel.getPkOrder(), cuMemberLevel));
|
||||
// 等级map(key:等级ID,value:等级对象)
|
||||
Map<Integer, BdGrade> gradeIdMap = new HashMap<>();
|
||||
List<BdGrade> gradeList = bonusConfigDTO.getGradeList();
|
||||
for (BdGrade bdGrade : gradeList) {
|
||||
gradeIdMap.put(bdGrade.getPkId(), bdGrade);
|
||||
}
|
||||
|
||||
// 奖衔
|
||||
Map<Integer, BdAwards> awardsMap = new HashMap<>();
|
||||
List<BdAwards> awardsList = bonusConfigDTO.getAwardsList();
|
||||
|
|
@ -319,6 +336,8 @@ public class BonusSettleRangeHandle extends BonusSettleHandle {
|
|||
List<CuMemberBonusRange> cuMemberBonusRangeList = new ArrayList<>();
|
||||
// 阶段收益
|
||||
List<CuMemberBonusStage> cuMemberBonusStageList = new ArrayList<>();
|
||||
// 赠品积分
|
||||
List<CuMemberBonusDetail> cuMemberBonusDetailList = new ArrayList<>();
|
||||
|
||||
// 更新血缘上个人、团队累计业绩,用于处理奖衔
|
||||
Map<Long, MemberAchieveParam> memberAchieveHashMap = new HashMap<>();
|
||||
|
|
@ -380,13 +399,31 @@ public class BonusSettleRangeHandle extends BonusSettleHandle {
|
|||
stageList.addAll(this.calculateStageIncome(cuMemberBonusStageList, cuMemberBonusMap, bonusConfigDTO, period,
|
||||
memberRangeExtMap, sourceMember, saOrderExt, settleStartDate, rangeTableName, rangeDetailTableName));
|
||||
|
||||
// 领导级差收益、平级收益 -- 来源PV
|
||||
this.calculateRetailRangeBonus(cuMemberBonusRangeList, memberRangeExtMap, cuMemberBonusMap, bonusConfigDTO, period,
|
||||
awardsMap, saOrderExt, sourceMember);
|
||||
|
||||
// 2025.10.27需求调整,去掉直推收益
|
||||
// // 直推收益 -- 来源订单金额,直推拿业绩的10%
|
||||
// this.calculateDirectIncome(cuMemberBonusPushList, memberRangeExtMap, sourceMember, saOrderExt,
|
||||
// bonusConfigDTO, period, cuMemberBonusMap);
|
||||
// 领导级差收益、平级收益 -- 来源PV
|
||||
this.calculateRetailRangeBonus(cuMemberBonusRangeList, memberRangeExtMap, cuMemberBonusMap, bonusConfigDTO, period,
|
||||
awardsMap, saOrderExt, sourceMember);
|
||||
|
||||
// 2025.10.27需求调整,订单满指定PV对应给指定赠品积分
|
||||
this.calculateGiftPoint(memberRangeExtMap, saOrderExt, cuMemberBonusMap, cuMemberBonusDetailList, bonusConfigDTO, period);
|
||||
|
||||
// 订单存在升级记录
|
||||
if (memberLevelMap.containsKey(saOrderExt.getPkId())) {
|
||||
CuMemberLevel cuMemberLevel = memberLevelMap.get(saOrderExt.getPkId());
|
||||
if (gradeIdMap.containsKey(cuMemberLevel.getNewLevel())) {
|
||||
BdGrade bdGrade = gradeIdMap.get(cuMemberLevel.getNewLevel());
|
||||
if (bdGrade.getGradeValue() > sourceMember.getGradeValue()) {
|
||||
sourceMember.setPkGrade(bdGrade.getPkId());
|
||||
sourceMember.setGradeValue(bdGrade.getGradeValue());
|
||||
sourceMember.setGradeName(bdGrade.getGradeName());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
} else if (EOrderType.RETAIL_REPURCHASE.getValue() == saOrderExt.getOrderType()) {
|
||||
// 商城专区
|
||||
sourceMember.setRepConsumeNewPv(sourceMember.getRepConsumeNewPv().add(orderAchieve));
|
||||
|
|
@ -445,6 +482,9 @@ public class BonusSettleRangeHandle extends BonusSettleHandle {
|
|||
if (cuMemberBonusStageList.size() > 0) {
|
||||
bonusRecordDetailVO.setCuMemberBonusStageList(cuMemberBonusStageList);
|
||||
}
|
||||
if (cuMemberBonusDetailList.size() > 0) {
|
||||
bonusRecordDetailVO.setCuMemberBonusDetailList(cuMemberBonusDetailList);
|
||||
}
|
||||
// 更新日结数据
|
||||
iCuMemberRetailRangeService.updateCuMemberRetailRange(rangeTableName, memberRangeExtMap);
|
||||
// 更新日结明细数据
|
||||
|
|
@ -607,6 +647,28 @@ public class BonusSettleRangeHandle extends BonusSettleHandle {
|
|||
return cuMemberAwards;
|
||||
}
|
||||
|
||||
private CuMemberBonusDetail getCuMemberBonusDetail(SaOrder saOrderExt, CuMemberRetailRangeExt targetMemberRangeExt,
|
||||
CuMemberBonus cuMemberBonus, Integer pkBonusItems) {
|
||||
CuMemberBonusDetail cuMemberBonusDetail = CuMemberBonusDetail.builder()
|
||||
.pkBonus(cuMemberBonus.getPkId())
|
||||
.pkOrder(saOrderExt.getPkId())
|
||||
.pkBonusItems(pkBonusItems)
|
||||
.incomeStatus(targetMemberRangeExt.getIncomeStatus())
|
||||
.calType(ECalType.VALUE.getValue())
|
||||
.calAchieve(saOrderExt.getOrderAchieve())
|
||||
.calValue(BigDecimal.ZERO)
|
||||
.pretaxIncome(BigDecimal.ZERO)
|
||||
.incomeTax(BigDecimal.ZERO)
|
||||
.realIncome(BigDecimal.ZERO)
|
||||
.incomeRatio(BigDecimal.ZERO)
|
||||
.incomeDialRatio(BigDecimal.ZERO)
|
||||
.orderDialRatio(BigDecimal.ZERO)
|
||||
.build();
|
||||
cuMemberBonusDetail.setPkCountry(targetMemberRangeExt.getPkSettleCountry());
|
||||
cuMemberBonusDetail.setPkCreator(MagicNumberConstants.PK_ADMIN);
|
||||
return cuMemberBonusDetail;
|
||||
}
|
||||
|
||||
/**
|
||||
* 计算直推收益 -- 精品专区
|
||||
*/
|
||||
|
|
@ -753,13 +815,13 @@ public class BonusSettleRangeHandle extends BonusSettleHandle {
|
|||
if (EOrderType.RETAIL_REGISTER.getValue() == saOrderExt.getOrderType()
|
||||
|| EOrderType.RETAIL_UPGRADE.getValue() == saOrderExt.getOrderType()) {
|
||||
// 精品专区按订单金额计算 -- 2025.10.13精品专区改为按业绩处理
|
||||
BigDecimal orderAmount = saOrderExt.getOrderAchieve();
|
||||
BigDecimal orderAchieve = saOrderExt.getOrderAchieve();
|
||||
// 订单金额除50取整,为新増点位数量
|
||||
newPointInt = orderAmount.divide(RetailConstants.POINT_VAL, 0, RoundingMode.DOWN).intValue();
|
||||
if (orderAmount.compareTo(BonusConstants.GIFT_TWO_AMOUNT) >= 0 && sourceMember.getGiftPoint() < 2) {
|
||||
newPointInt = orderAchieve.divide(RetailConstants.POINT_VAL, 0, RoundingMode.DOWN).intValue();
|
||||
if (orderAchieve.compareTo(BonusConstants.GIFT_TWO_AMOUNT) >= 0 && sourceMember.getGiftPoint() < 2) {
|
||||
// 首次订单金额大于等于2万,每个点位完成三阶段赠送2个点位
|
||||
sourceMember.setGiftPoint(2);
|
||||
} else if (orderAmount.compareTo(BonusConstants.GIFT_ONE_AMOUNT) >= 0 && sourceMember.getGiftPoint() < 1) {
|
||||
} else if (orderAchieve.compareTo(BonusConstants.GIFT_ONE_AMOUNT) >= 0 && sourceMember.getGiftPoint() < 1) {
|
||||
// 首次订单金额大于等于1万,每个点位完成三阶段赠送1个点位
|
||||
sourceMember.setGiftPoint(1);
|
||||
}
|
||||
|
|
@ -1359,5 +1421,63 @@ public class BonusSettleRangeHandle extends BonusSettleHandle {
|
|||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 计算赠品积分
|
||||
*/
|
||||
private void calculateGiftPoint(Map<Long, CuMemberRetailRangeExt> memberRangeExtMap, SaOrderExt saOrderExt,
|
||||
Map<Long, CuMemberBonus> cuMemberBonusMap, List<CuMemberBonusDetail> cuMemberBonusDetailList,
|
||||
BonusConfigDTO bonusConfigDTO, Integer period) {
|
||||
// 订单业绩
|
||||
BigDecimal orderAchieve = saOrderExt.getOrderAchieve();
|
||||
// 一次性消费拿赠品积分
|
||||
CuMemberRetailRangeExt sourceMember = memberRangeExtMap.get(saOrderExt.getPkMember());
|
||||
// 推荐会员消费拿赠品积分
|
||||
CuMemberRetailRangeExt targetMember = memberRangeExtMap.get(saOrderExt.getPkReference());
|
||||
|
||||
// 赠送积分
|
||||
BigDecimal giftPoint = BigDecimal.ZERO;
|
||||
// 推荐赠送积分
|
||||
BigDecimal targetGiftPoint = BigDecimal.ZERO;
|
||||
|
||||
if (orderAchieve.compareTo(BonusConstants.GIFT_TWO_AMOUNT) >= 0) {
|
||||
// 订单业绩大于等于2万
|
||||
giftPoint = BonusConstants.GIFT_TWO_POINT;
|
||||
targetGiftPoint = BonusConstants.TARGET_GIFT_TWO_POINT;
|
||||
} else if (orderAchieve.compareTo(BonusConstants.GIFT_ONE_AMOUNT) >= 0) {
|
||||
// 订单业绩大于等于1万
|
||||
giftPoint = BonusConstants.GIFT_ONE_POINT;
|
||||
targetGiftPoint = BonusConstants.TARGET_GIFT_ONE_POINT;
|
||||
}
|
||||
|
||||
if (giftPoint.compareTo(BigDecimal.ZERO) > 0 && null != sourceMember) {
|
||||
CuMemberBonus cuMemberBonus = getCuMemberBonus(period, cuMemberBonusMap, sourceMember.getPkMember(),
|
||||
sourceMember.getIncomeStatus(), sourceMember.getPkSettleCountry(), sourceMember.getPkRate() == null ? saOrderExt.getPkRate() : sourceMember.getPkRate());
|
||||
int pkBonusItems = getPkBonusItems(bonusConfigDTO, sourceMember.getPkSettleCountry(), EBonusItems.RANGE_INCOME.getValue());
|
||||
CuMemberBonusDetail cuMemberBonusDetail = getCuMemberBonusDetail(saOrderExt, sourceMember, cuMemberBonus, pkBonusItems);
|
||||
cuMemberBonusDetail.setPretaxIncome(giftPoint);
|
||||
setBonusDetailDeduct(bonusConfigDTO, cuMemberBonusDetail, saOrderExt.getOrderAmount(), saOrderExt.getInExchangeRate());
|
||||
giftPointRemark(saOrderExt, cuMemberBonusDetail, sourceMember);
|
||||
if (EBonusIncomeStatus.NORMAL.getValue() == cuMemberBonusDetail.getIncomeStatus()) {
|
||||
cuMemberBonus.setBackPoints(ComputeUtil.computeAdd(cuMemberBonus.getBackPoints(), giftPoint));
|
||||
}
|
||||
cuMemberBonusDetailList.add(cuMemberBonusDetail);
|
||||
}
|
||||
if (targetGiftPoint.compareTo(BigDecimal.ZERO) > 0 && null != targetMember && targetMember.getGradeValue() >= EGrade.HAI_FAN.getValue()) {
|
||||
// 银卡 或 金卡会员推荐才有奖励
|
||||
CuMemberBonus cuMemberBonus = getCuMemberBonus(period, cuMemberBonusMap, targetMember.getPkMember(),
|
||||
targetMember.getIncomeStatus(), targetMember.getPkSettleCountry(), targetMember.getPkRate() == null ? saOrderExt.getPkRate() : targetMember.getPkRate());
|
||||
int pkBonusItems = getPkBonusItems(bonusConfigDTO, targetMember.getPkSettleCountry(), EBonusItems.RANGE_INCOME.getValue());
|
||||
CuMemberBonusDetail cuMemberBonusDetail = getCuMemberBonusDetail(saOrderExt, targetMember, cuMemberBonus, pkBonusItems);
|
||||
cuMemberBonusDetail.setPretaxIncome(giftPoint);
|
||||
setBonusDetailDeduct(bonusConfigDTO, cuMemberBonusDetail, saOrderExt.getOrderAmount(), saOrderExt.getInExchangeRate());
|
||||
giftPointRemark(saOrderExt, cuMemberBonusDetail, targetMember);
|
||||
if (EBonusIncomeStatus.NORMAL.getValue() == cuMemberBonusDetail.getIncomeStatus()) {
|
||||
cuMemberBonus.setBackPoints(ComputeUtil.computeAdd(cuMemberBonus.getBackPoints(), giftPoint));
|
||||
}
|
||||
cuMemberBonusDetailList.add(cuMemberBonusDetail);
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -221,6 +221,7 @@ public class BonusSettleServiceImpl implements IBonusSettleService {
|
|||
iCuMemberBonusPushService.deleteCuMemberBonusPush(period);
|
||||
iCuMemberBonusStageService.deleteCuMemberBonusStage(period);
|
||||
iCuMemberBonusRangeService.deleteCuMemberBonusRange(period);
|
||||
iCuMemberBonusDetailService.deleteCuMemberBonusDetail(period);
|
||||
iCuMemberBonusService.deleteCuMemberBonus(period);
|
||||
if (cuMemberBonusMap.size() == 0) {
|
||||
return;
|
||||
|
|
@ -230,6 +231,7 @@ public class BonusSettleServiceImpl implements IBonusSettleService {
|
|||
List<CuMemberBonusPush> cuMemberBonusPushList = bonusRecordDetailVO.getCuMemberBonusPushList();
|
||||
List<CuMemberBonusRange> cuMemberBonusRangeList = bonusRecordDetailVO.getCuMemberBonusRangeList();
|
||||
List<CuMemberBonusStage> cuMemberBonusStageList = bonusRecordDetailVO.getCuMemberBonusStageList();
|
||||
List<CuMemberBonusDetail> cuMemberBonusDetailList = bonusRecordDetailVO.getCuMemberBonusDetailList();
|
||||
if (cuMemberBonusPushList != null && cuMemberBonusPushList.size() > 0) {
|
||||
cuMemberBonusPushList.forEach(cuMemberBonusPush ->
|
||||
cuMemberBonusPush.setPkBonus(cuMemberBonusMap.get(cuMemberBonusPush.getPkBonus()).getPkId()));
|
||||
|
|
@ -242,12 +244,17 @@ public class BonusSettleServiceImpl implements IBonusSettleService {
|
|||
cuMemberBonusStageList.forEach(cuMemberBonusStage ->
|
||||
cuMemberBonusStage.setPkBonus(cuMemberBonusMap.get(cuMemberBonusStage.getPkBonus()).getPkId()));
|
||||
}
|
||||
if (cuMemberBonusDetailList != null && cuMemberBonusDetailList.size() > 0) {
|
||||
cuMemberBonusDetailList.forEach(cuMemberBonusDetail ->
|
||||
cuMemberBonusDetail.setPkBonus(cuMemberBonusMap.get(cuMemberBonusDetail.getPkBonus()).getPkId()));
|
||||
}
|
||||
// 插入奖金主表
|
||||
iCuMemberBonusService.batchInsertCuMemberBonus(cuMemberBonusList);
|
||||
Set<Long> memberIdSet = iCuMemberBonusService.queryMemberBonusByPeriod(period);
|
||||
iCuMemberBonusPushService.batchInsertCuMemberBonusPush(cuMemberBonusPushList, memberIdSet);
|
||||
iCuMemberBonusRangeService.batchInsertCuMemberBonusRange(cuMemberBonusRangeList, memberIdSet);
|
||||
iCuMemberBonusStageService.batchInsertCuMemberBonusStage(cuMemberBonusStageList, memberIdSet);
|
||||
iCuMemberBonusDetailService.batchInsertCuMemberBonusDetail(cuMemberBonusDetailList, memberIdSet);
|
||||
}
|
||||
|
||||
private List<CuMemberBonus> setCuMemberBonusSeq(String settleDate, Map<Long, CuMemberBonus> cuMemberBonusMap) {
|
||||
|
|
|
|||
|
|
@ -40,6 +40,15 @@ public class BonusConstants {
|
|||
*/
|
||||
public static final BigDecimal GIFT_ONE_POINT = new BigDecimal("2000");
|
||||
|
||||
/**
|
||||
* 推荐2万业绩会员赠送积分
|
||||
*/
|
||||
public static final BigDecimal TARGET_GIFT_TWO_POINT = new BigDecimal("2000");
|
||||
/**
|
||||
* 推荐1万业绩会员赠送积分
|
||||
*/
|
||||
public static final BigDecimal TARGET_GIFT_ONE_POINT = new BigDecimal("1000");
|
||||
|
||||
/**
|
||||
* 一阶段奖金 -- 满14,发35
|
||||
*/
|
||||
|
|
|
|||
|
|
@ -0,0 +1,28 @@
|
|||
package com.hzs.bonus.detail.mapper;
|
||||
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import com.hzs.common.domain.member.detail.CuMemberGrade;
|
||||
import com.hzs.common.domain.member.detail.CuMemberLevel;
|
||||
import org.apache.ibatis.annotations.Param;
|
||||
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 会员信息-等级升级记录 Mapper 接口
|
||||
*/
|
||||
public interface CuMemberGradeMapper extends BaseMapper<CuMemberGrade> {
|
||||
|
||||
/**
|
||||
* 更新会员手动升级
|
||||
*/
|
||||
void updateCuMemberManualGrade(@Param("rangeTableName") String rangeTableName, @Param("period") Integer period);
|
||||
|
||||
/**
|
||||
* 查询会员升级记录
|
||||
*/
|
||||
List<CuMemberLevel> queryCuMemberLevel(@Param("startDate") Date startDate,
|
||||
@Param("endDate") Date endDate,
|
||||
@Param("upType") Integer upType);
|
||||
|
||||
}
|
||||
|
|
@ -0,0 +1,25 @@
|
|||
package com.hzs.bonus.detail.service;
|
||||
|
||||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
import com.hzs.common.domain.member.detail.CuMemberGrade;
|
||||
import com.hzs.common.domain.member.detail.CuMemberLevel;
|
||||
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 会员信息-等级升级记录 服务类
|
||||
*/
|
||||
public interface ICuMemberGradeService extends IService<CuMemberGrade> {
|
||||
|
||||
/**
|
||||
* 更新会员手动升级
|
||||
*/
|
||||
void updateCuMemberManualGrade(String rangeTableName, Integer period);
|
||||
|
||||
/**
|
||||
* 回退极差奖衔,每日重新结算,先把等级回退到前一天
|
||||
*/
|
||||
List<CuMemberLevel> queryCuMemberLevel(Date startDate, Date endDate);
|
||||
|
||||
}
|
||||
|
|
@ -0,0 +1,32 @@
|
|||
package com.hzs.bonus.detail.service.impl;
|
||||
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import com.hzs.bonus.detail.mapper.CuMemberGradeMapper;
|
||||
import com.hzs.bonus.detail.service.ICuMemberGradeService;
|
||||
import com.hzs.common.core.enums.EUpgradeType;
|
||||
import com.hzs.common.domain.member.detail.CuMemberGrade;
|
||||
import com.hzs.common.domain.member.detail.CuMemberLevel;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 会员信息-等级升级记录 服务实现类
|
||||
*/
|
||||
@Service
|
||||
public class CuMemberGradeServiceImpl extends ServiceImpl<CuMemberGradeMapper, CuMemberGrade> implements ICuMemberGradeService {
|
||||
|
||||
@Override
|
||||
public void updateCuMemberManualGrade(String rangeTableName, Integer period) {
|
||||
// 根据手动升级记录,更新日结表
|
||||
baseMapper.updateCuMemberManualGrade(rangeTableName, period);
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<CuMemberLevel> queryCuMemberLevel(Date startDate, Date endDate) {
|
||||
// 购买升级记录列表
|
||||
return baseMapper.queryCuMemberLevel(startDate, endDate, EUpgradeType.BUY_UPGRADE.getValue());
|
||||
}
|
||||
|
||||
}
|
||||
|
|
@ -58,6 +58,7 @@
|
|||
<result column="gift_point" property="giftPoint"/>
|
||||
<result column="gift_pay_time" property="giftPayTime"/>
|
||||
|
||||
<result column="GRADE_VALUE" property="gradeValue"/>
|
||||
<result column="AWARDS_VALUE" property="awardsValue"/>
|
||||
<result column="AWARDS_NAME" property="awardsName"/>
|
||||
<result column="RANGE_RATIO" property="rangeRatio"/>
|
||||
|
|
@ -141,252 +142,252 @@
|
|||
<update id="mergeMemberRetailRangeDetailByYesterday">
|
||||
insert into ${detailTableName}
|
||||
select t.pk_member,
|
||||
t.child_node,
|
||||
cm.pk_parent,
|
||||
t.stage,
|
||||
t.stage_status,
|
||||
t.stage_date,
|
||||
t.point_member_11,
|
||||
t.point_11,
|
||||
t.point_member_12,
|
||||
t.point_12,
|
||||
t.point_member_21,
|
||||
t.point_21,
|
||||
t.point_member_22,
|
||||
t.point_22,
|
||||
t.point_member_23,
|
||||
t.point_23,
|
||||
t.point_member_24,
|
||||
t.point_24,
|
||||
t.point_member_31,
|
||||
t.point_31,
|
||||
t.point_member_32,
|
||||
t.point_32,
|
||||
t.point_member_33,
|
||||
t.point_33,
|
||||
t.point_member_34,
|
||||
t.point_34,
|
||||
t.point_member_35,
|
||||
t.point_35,
|
||||
t.point_member_36,
|
||||
t.point_36,
|
||||
t.point_member_37,
|
||||
t.point_37,
|
||||
t.point_member_38,
|
||||
t.point_38,
|
||||
t.point_type,
|
||||
t.point_gift,
|
||||
t.creation_time,
|
||||
t.point_member_first,
|
||||
t.point_first,
|
||||
t.point_member_second,
|
||||
t.point_second,
|
||||
t.point_member_third,
|
||||
t.point_third,
|
||||
t.third_bonus_1,
|
||||
t.third_bonus_2,
|
||||
t.third_bonus_3,
|
||||
t.stage_sort
|
||||
t.child_node,
|
||||
cm.pk_parent,
|
||||
t.stage,
|
||||
t.stage_status,
|
||||
t.stage_date,
|
||||
t.point_member_11,
|
||||
t.point_11,
|
||||
t.point_member_12,
|
||||
t.point_12,
|
||||
t.point_member_21,
|
||||
t.point_21,
|
||||
t.point_member_22,
|
||||
t.point_22,
|
||||
t.point_member_23,
|
||||
t.point_23,
|
||||
t.point_member_24,
|
||||
t.point_24,
|
||||
t.point_member_31,
|
||||
t.point_31,
|
||||
t.point_member_32,
|
||||
t.point_32,
|
||||
t.point_member_33,
|
||||
t.point_33,
|
||||
t.point_member_34,
|
||||
t.point_34,
|
||||
t.point_member_35,
|
||||
t.point_35,
|
||||
t.point_member_36,
|
||||
t.point_36,
|
||||
t.point_member_37,
|
||||
t.point_37,
|
||||
t.point_member_38,
|
||||
t.point_38,
|
||||
t.point_type,
|
||||
t.point_gift,
|
||||
t.creation_time,
|
||||
t.point_member_first,
|
||||
t.point_first,
|
||||
t.point_member_second,
|
||||
t.point_second,
|
||||
t.point_member_third,
|
||||
t.point_third,
|
||||
t.third_bonus_1,
|
||||
t.third_bonus_2,
|
||||
t.third_bonus_3,
|
||||
t.stage_sort
|
||||
from ${yesterdayDetailTableName} t
|
||||
left join cu_member cm
|
||||
on cm.pk_id = t.pk_member
|
||||
<!--
|
||||
merge into ${detailTableName} a
|
||||
using (
|
||||
select x.pk_member,
|
||||
x.child_node,
|
||||
cm.pk_parent,
|
||||
x.stage,
|
||||
x.stage_status,
|
||||
x.stage_date,
|
||||
x.point_11,
|
||||
x.point_12,
|
||||
x.point_21,
|
||||
x.point_22,
|
||||
x.point_23,
|
||||
x.point_24,
|
||||
x.point_31,
|
||||
x.point_32,
|
||||
x.point_33,
|
||||
x.point_34,
|
||||
x.point_35,
|
||||
x.point_36,
|
||||
x.point_37,
|
||||
x.point_38,
|
||||
x.point_member_11,
|
||||
x.point_member_12,
|
||||
x.point_member_21,
|
||||
x.point_member_22,
|
||||
x.point_member_23,
|
||||
x.point_member_24,
|
||||
x.point_member_31,
|
||||
x.point_member_32,
|
||||
x.point_member_33,
|
||||
x.point_member_34,
|
||||
x.point_member_35,
|
||||
x.point_member_36,
|
||||
x.point_member_37,
|
||||
x.point_member_38,
|
||||
x.point_type,
|
||||
x.point_gift,
|
||||
x.creation_time,
|
||||
x.point_first,
|
||||
x.point_member_first,
|
||||
x.point_second,
|
||||
x.point_member_second,
|
||||
x.point_third,
|
||||
x.point_member_third,
|
||||
x.third_bonus_1,
|
||||
x.third_bonus_2,
|
||||
x.third_bonus_3,
|
||||
x.stage_sort
|
||||
from ${yesterdayDetailTableName} x
|
||||
left join cu_member cm
|
||||
on cm.pk_id = x.pk_member
|
||||
) b
|
||||
on (a.pk_member = b.pk_member and a.child_node = b.child_node and a.stage = b.stage)
|
||||
when not matched then
|
||||
insert (pk_member,
|
||||
child_node,
|
||||
pk_parent,
|
||||
stage,
|
||||
stage_status,
|
||||
stage_date,
|
||||
point_11,
|
||||
point_12,
|
||||
point_21,
|
||||
point_22,
|
||||
point_23,
|
||||
point_24,
|
||||
point_31,
|
||||
point_32,
|
||||
point_33,
|
||||
point_34,
|
||||
point_35,
|
||||
point_36,
|
||||
point_37,
|
||||
point_38,
|
||||
point_member_11,
|
||||
point_member_12,
|
||||
point_member_21,
|
||||
point_member_22,
|
||||
point_member_23,
|
||||
point_member_24,
|
||||
point_member_31,
|
||||
point_member_32,
|
||||
point_member_33,
|
||||
point_member_34,
|
||||
point_member_35,
|
||||
point_member_36,
|
||||
point_member_37,
|
||||
point_member_38,
|
||||
point_type,
|
||||
point_gift,
|
||||
creation_time,
|
||||
point_first,
|
||||
point_member_first,
|
||||
point_second,
|
||||
point_member_second,
|
||||
point_third,
|
||||
point_member_third,
|
||||
third_bonus_1,
|
||||
third_bonus_2,
|
||||
third_bonus_3,
|
||||
stage_sort)
|
||||
values (b.pk_member,
|
||||
b.child_node,
|
||||
b.pk_parent,
|
||||
b.stage,
|
||||
b.stage_status,
|
||||
b.stage_date,
|
||||
b.point_11,
|
||||
b.point_12,
|
||||
b.point_21,
|
||||
b.point_22,
|
||||
b.point_23,
|
||||
b.point_24,
|
||||
b.point_31,
|
||||
b.point_32,
|
||||
b.point_33,
|
||||
b.point_34,
|
||||
b.point_35,
|
||||
b.point_36,
|
||||
b.point_37,
|
||||
b.point_38,
|
||||
b.point_member_11,
|
||||
b.point_member_12,
|
||||
b.point_member_21,
|
||||
b.point_member_22,
|
||||
b.point_member_23,
|
||||
b.point_member_24,
|
||||
b.point_member_31,
|
||||
b.point_member_32,
|
||||
b.point_member_33,
|
||||
b.point_member_34,
|
||||
b.point_member_35,
|
||||
b.point_member_36,
|
||||
b.point_member_37,
|
||||
b.point_member_38,
|
||||
b.point_type,
|
||||
b.point_gift,
|
||||
b.creation_time,
|
||||
b.point_first,
|
||||
b.point_member_first,
|
||||
b.point_second,
|
||||
b.point_member_second,
|
||||
b.point_third,
|
||||
b.point_member_third,
|
||||
b.third_bonus_1,
|
||||
b.third_bonus_2,
|
||||
b.third_bonus_3,
|
||||
b.stage_sort)
|
||||
when matched then
|
||||
update set
|
||||
a.pk_parent = b.pk_parent,
|
||||
a.stage_status = b.stage_status,
|
||||
a.stage_date = b.stage_date,
|
||||
a.point_11 = b.point_11,
|
||||
a.point_12 = b.point_12,
|
||||
a.point_21 = b.point_21,
|
||||
a.point_22 = b.point_22,
|
||||
a.point_23 = b.point_23,
|
||||
a.point_24 = b.point_24,
|
||||
a.point_31 = b.point_31,
|
||||
a.point_32 = b.point_32,
|
||||
a.point_33 = b.point_33,
|
||||
a.point_34 = b.point_34,
|
||||
a.point_35 = b.point_35,
|
||||
a.point_36 = b.point_36,
|
||||
a.point_37 = b.point_37,
|
||||
a.point_38 = b.point_38,
|
||||
a.point_member_11 = b.point_member_11,
|
||||
a.point_member_12 = b.point_member_12,
|
||||
a.point_member_21 = b.point_member_21,
|
||||
a.point_member_22 = b.point_member_22,
|
||||
a.point_member_23 = b.point_member_23,
|
||||
a.point_member_24 = b.point_member_24,
|
||||
a.point_member_31 = b.point_member_31,
|
||||
a.point_member_32 = b.point_member_32,
|
||||
a.point_member_33 = b.point_member_33,
|
||||
a.point_member_34 = b.point_member_34,
|
||||
a.point_member_35 = b.point_member_35,
|
||||
a.point_member_36 = b.point_member_36,
|
||||
a.point_member_37 = b.point_member_37,
|
||||
a.point_member_38 = b.point_member_38,
|
||||
a.point_type = b.point_type,
|
||||
a.point_gift = b.point_gift,
|
||||
a.creation_time = b.creation_time,
|
||||
a.point_first = b.point_first,
|
||||
a.point_member_first = b.point_member_first,
|
||||
a.point_second = b.point_second,
|
||||
a.point_member_second = b.point_member_second,
|
||||
a.point_third = b.point_third,
|
||||
a.point_member_third = b.point_member_third,
|
||||
a.third_bonus_1 = b.third_bonus_1,
|
||||
a.third_bonus_2 = b.third_bonus_2,
|
||||
a.third_bonus_3 = b.third_bonus_3,
|
||||
a.stage_sort = b.stage_sort
|
||||
-->
|
||||
left join cu_member cm
|
||||
on cm.pk_id = t.pk_member
|
||||
<!--
|
||||
merge into ${detailTableName} a
|
||||
using (
|
||||
select x.pk_member,
|
||||
x.child_node,
|
||||
cm.pk_parent,
|
||||
x.stage,
|
||||
x.stage_status,
|
||||
x.stage_date,
|
||||
x.point_11,
|
||||
x.point_12,
|
||||
x.point_21,
|
||||
x.point_22,
|
||||
x.point_23,
|
||||
x.point_24,
|
||||
x.point_31,
|
||||
x.point_32,
|
||||
x.point_33,
|
||||
x.point_34,
|
||||
x.point_35,
|
||||
x.point_36,
|
||||
x.point_37,
|
||||
x.point_38,
|
||||
x.point_member_11,
|
||||
x.point_member_12,
|
||||
x.point_member_21,
|
||||
x.point_member_22,
|
||||
x.point_member_23,
|
||||
x.point_member_24,
|
||||
x.point_member_31,
|
||||
x.point_member_32,
|
||||
x.point_member_33,
|
||||
x.point_member_34,
|
||||
x.point_member_35,
|
||||
x.point_member_36,
|
||||
x.point_member_37,
|
||||
x.point_member_38,
|
||||
x.point_type,
|
||||
x.point_gift,
|
||||
x.creation_time,
|
||||
x.point_first,
|
||||
x.point_member_first,
|
||||
x.point_second,
|
||||
x.point_member_second,
|
||||
x.point_third,
|
||||
x.point_member_third,
|
||||
x.third_bonus_1,
|
||||
x.third_bonus_2,
|
||||
x.third_bonus_3,
|
||||
x.stage_sort
|
||||
from ${yesterdayDetailTableName} x
|
||||
left join cu_member cm
|
||||
on cm.pk_id = x.pk_member
|
||||
) b
|
||||
on (a.pk_member = b.pk_member and a.child_node = b.child_node and a.stage = b.stage)
|
||||
when not matched then
|
||||
insert (pk_member,
|
||||
child_node,
|
||||
pk_parent,
|
||||
stage,
|
||||
stage_status,
|
||||
stage_date,
|
||||
point_11,
|
||||
point_12,
|
||||
point_21,
|
||||
point_22,
|
||||
point_23,
|
||||
point_24,
|
||||
point_31,
|
||||
point_32,
|
||||
point_33,
|
||||
point_34,
|
||||
point_35,
|
||||
point_36,
|
||||
point_37,
|
||||
point_38,
|
||||
point_member_11,
|
||||
point_member_12,
|
||||
point_member_21,
|
||||
point_member_22,
|
||||
point_member_23,
|
||||
point_member_24,
|
||||
point_member_31,
|
||||
point_member_32,
|
||||
point_member_33,
|
||||
point_member_34,
|
||||
point_member_35,
|
||||
point_member_36,
|
||||
point_member_37,
|
||||
point_member_38,
|
||||
point_type,
|
||||
point_gift,
|
||||
creation_time,
|
||||
point_first,
|
||||
point_member_first,
|
||||
point_second,
|
||||
point_member_second,
|
||||
point_third,
|
||||
point_member_third,
|
||||
third_bonus_1,
|
||||
third_bonus_2,
|
||||
third_bonus_3,
|
||||
stage_sort)
|
||||
values (b.pk_member,
|
||||
b.child_node,
|
||||
b.pk_parent,
|
||||
b.stage,
|
||||
b.stage_status,
|
||||
b.stage_date,
|
||||
b.point_11,
|
||||
b.point_12,
|
||||
b.point_21,
|
||||
b.point_22,
|
||||
b.point_23,
|
||||
b.point_24,
|
||||
b.point_31,
|
||||
b.point_32,
|
||||
b.point_33,
|
||||
b.point_34,
|
||||
b.point_35,
|
||||
b.point_36,
|
||||
b.point_37,
|
||||
b.point_38,
|
||||
b.point_member_11,
|
||||
b.point_member_12,
|
||||
b.point_member_21,
|
||||
b.point_member_22,
|
||||
b.point_member_23,
|
||||
b.point_member_24,
|
||||
b.point_member_31,
|
||||
b.point_member_32,
|
||||
b.point_member_33,
|
||||
b.point_member_34,
|
||||
b.point_member_35,
|
||||
b.point_member_36,
|
||||
b.point_member_37,
|
||||
b.point_member_38,
|
||||
b.point_type,
|
||||
b.point_gift,
|
||||
b.creation_time,
|
||||
b.point_first,
|
||||
b.point_member_first,
|
||||
b.point_second,
|
||||
b.point_member_second,
|
||||
b.point_third,
|
||||
b.point_member_third,
|
||||
b.third_bonus_1,
|
||||
b.third_bonus_2,
|
||||
b.third_bonus_3,
|
||||
b.stage_sort)
|
||||
when matched then
|
||||
update set
|
||||
a.pk_parent = b.pk_parent,
|
||||
a.stage_status = b.stage_status,
|
||||
a.stage_date = b.stage_date,
|
||||
a.point_11 = b.point_11,
|
||||
a.point_12 = b.point_12,
|
||||
a.point_21 = b.point_21,
|
||||
a.point_22 = b.point_22,
|
||||
a.point_23 = b.point_23,
|
||||
a.point_24 = b.point_24,
|
||||
a.point_31 = b.point_31,
|
||||
a.point_32 = b.point_32,
|
||||
a.point_33 = b.point_33,
|
||||
a.point_34 = b.point_34,
|
||||
a.point_35 = b.point_35,
|
||||
a.point_36 = b.point_36,
|
||||
a.point_37 = b.point_37,
|
||||
a.point_38 = b.point_38,
|
||||
a.point_member_11 = b.point_member_11,
|
||||
a.point_member_12 = b.point_member_12,
|
||||
a.point_member_21 = b.point_member_21,
|
||||
a.point_member_22 = b.point_member_22,
|
||||
a.point_member_23 = b.point_member_23,
|
||||
a.point_member_24 = b.point_member_24,
|
||||
a.point_member_31 = b.point_member_31,
|
||||
a.point_member_32 = b.point_member_32,
|
||||
a.point_member_33 = b.point_member_33,
|
||||
a.point_member_34 = b.point_member_34,
|
||||
a.point_member_35 = b.point_member_35,
|
||||
a.point_member_36 = b.point_member_36,
|
||||
a.point_member_37 = b.point_member_37,
|
||||
a.point_member_38 = b.point_member_38,
|
||||
a.point_type = b.point_type,
|
||||
a.point_gift = b.point_gift,
|
||||
a.creation_time = b.creation_time,
|
||||
a.point_first = b.point_first,
|
||||
a.point_member_first = b.point_member_first,
|
||||
a.point_second = b.point_second,
|
||||
a.point_member_second = b.point_member_second,
|
||||
a.point_third = b.point_third,
|
||||
a.point_member_third = b.point_member_third,
|
||||
a.third_bonus_1 = b.third_bonus_1,
|
||||
a.third_bonus_2 = b.third_bonus_2,
|
||||
a.third_bonus_3 = b.third_bonus_3,
|
||||
a.stage_sort = b.stage_sort
|
||||
-->
|
||||
</update>
|
||||
|
||||
<!-- 更新会员日结数据 -->
|
||||
|
|
@ -394,7 +395,7 @@
|
|||
merge into ${rangeTableName} a
|
||||
using (
|
||||
<foreach collection="cuMemberRangeExtList" item="item" open=" " close=" " separator="union">
|
||||
select #{item.pkMember} pk_member, #{item.pkAwards} pk_awards, #{item.pkShareAwards} pk_share_awards,
|
||||
select #{item.pkMember} pk_member, #{item.pkGrade} pk_grade, #{item.pkAwards} pk_awards, #{item.pkShareAwards} pk_share_awards,
|
||||
#{item.newConsumePv} new_consume_pv, #{item.consumePv} consume_pv, #{item.monthConsumePv} month_consume_pv,
|
||||
#{item.newConsumeAmount} new_consume_amount, #{item.consumeAmount} consume_amount, #{item.monthConsumeAmount} month_consume_amount,
|
||||
#{item.teamNewPv} team_new_pv, #{item.teamConsumePv} team_consume_pv, #{item.teamMonthPv} team_month_pv,
|
||||
|
|
@ -412,7 +413,7 @@
|
|||
) b
|
||||
on (a.pk_member = b.pk_member)
|
||||
when matched then
|
||||
update set a.pk_awards = b.pk_awards, a.pk_share_awards = b.pk_share_awards,
|
||||
update set a.pk_grade = b.pk_grade, a.pk_awards = b.pk_awards, a.pk_share_awards = b.pk_share_awards,
|
||||
a.new_consume_pv = b.new_consume_pv, a.consume_pv = b.consume_pv, a.month_consume_pv = b.month_consume_pv,
|
||||
a.new_consume_amount = b.new_consume_amount, a.consume_amount = b.consume_amount, a.month_consume_amount = b.month_consume_amount,
|
||||
a.team_new_pv = b.team_new_pv, a.team_consume_pv = b.team_consume_pv, a.team_month_pv = b.team_month_pv,
|
||||
|
|
@ -751,7 +752,8 @@
|
|||
gift_point,
|
||||
gift_pay_time,
|
||||
bw.awards_value,
|
||||
bw.awards_name
|
||||
bw.awards_name,
|
||||
bg.grade_value
|
||||
from (
|
||||
select * from ${tableName}
|
||||
start with pk_member = #{item}
|
||||
|
|
@ -759,6 +761,8 @@
|
|||
) a
|
||||
inner join bd_awards bw
|
||||
on bw.pk_id = a.pk_awards
|
||||
inner join bd_grade bg
|
||||
on bg.pk_id = a.pk_grade
|
||||
left join bd_vertex bv
|
||||
on bv.pk_id = a.pk_vertex
|
||||
</foreach>
|
||||
|
|
@ -1082,7 +1086,8 @@
|
|||
connect by cmr.pk_member = prior cmr.pk_parent
|
||||
group by cmr.pk_parent
|
||||
having count (distinct cmr.pk_member) >= #{placeDeptNum})
|
||||
and #{awardsValue} > ba.awards_value
|
||||
and #{awardsValue}
|
||||
> ba.awards_value
|
||||
and cmr.team_consume_pv >= #{totalCheck}
|
||||
</select>
|
||||
|
||||
|
|
|
|||
|
|
@ -133,7 +133,7 @@
|
|||
insert (
|
||||
pk_id, pk_member, period, pk_rate, direct_income, global_points,
|
||||
expand_income,expand_no_capping,
|
||||
expand_capping,coach_income,share_income,service_income,back_points,service_spend,
|
||||
expand_capping,coach_income,share_income,service_income,back_points, service_spend,
|
||||
pur_real_subtotal,repur_push_income,repur_range_income,repur_expand_income,repur_real_subtotal,
|
||||
repur_coupon,repur_coupon_share,repur_coupon_subtotal,
|
||||
store_income, real_income_total,
|
||||
|
|
@ -147,7 +147,7 @@
|
|||
values (
|
||||
b.pk_id, b.pk_member, b.period, b.pk_rate, b.direct_income, b.global_points,
|
||||
b.expand_income,b.expand_no_capping,
|
||||
b.expand_capping,b.coach_income,b.share_income,b.service_income,b.back_points,b.service_spend,
|
||||
b.expand_capping,b.coach_income,b.share_income,b.service_income,b.back_points, b.service_spend,
|
||||
b.pur_real_subtotal,b.repur_push_income,b.repur_range_income,b.repur_expand_income,b.repur_real_subtotal,
|
||||
b.repur_coupon,b.repur_coupon_share,b.repur_coupon_subtotal,
|
||||
b.store_income, b.real_income_total,
|
||||
|
|
|
|||
|
|
@ -0,0 +1,38 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<mapper namespace="com.hzs.bonus.detail.mapper.CuMemberGradeMapper">
|
||||
|
||||
<!-- 更新会员手动升级 -->
|
||||
<update id="updateCuMemberManualGrade">
|
||||
merge into ${rangeTableName} a
|
||||
using (
|
||||
select a.pk_member, max(a.new_level) pk_grade
|
||||
from cu_member_grade a
|
||||
inner join(
|
||||
select pk_member, max(nvl(modified_time, creation_time)) creation_time
|
||||
from cu_member_grade
|
||||
where period = #{period}
|
||||
and del_flag = 0
|
||||
and up_type = 2
|
||||
group by pk_member) b
|
||||
on a.pk_member = b.pk_member and nvl(a.modified_time, a.creation_time) = b.creation_time
|
||||
group by a.pk_member
|
||||
) b
|
||||
on (a.pk_member = b.pk_member)
|
||||
when matched then
|
||||
update set
|
||||
a.pk_grade = b.pk_grade
|
||||
</update>
|
||||
|
||||
<!-- 查询会员升级记录 -->
|
||||
<select id="queryCuMemberLevel" resultType="com.hzs.common.domain.member.detail.CuMemberLevel">
|
||||
select *
|
||||
from cu_member_level
|
||||
where del_flag = 0
|
||||
and up_type = #{upType}
|
||||
and upgrade_time >= #{startDate,jdbcType=DATE}
|
||||
and upgrade_time < #{endDate,jdbcType=DATE}
|
||||
order by upgrade_time
|
||||
</select>
|
||||
|
||||
</mapper>
|
||||
|
|
@ -46,7 +46,6 @@ import com.hzs.sale.product.service.IBdProductService;
|
|||
import com.hzs.sale.pub.dto.OrderDeductionDTO;
|
||||
import com.hzs.system.base.IAreaServiceApi;
|
||||
import com.hzs.system.base.ICurrencyServiceApi;
|
||||
import com.hzs.system.base.ISystemConfigServiceApi;
|
||||
import com.hzs.system.base.dto.CurrencyDTO;
|
||||
import com.hzs.system.config.IAccountServiceApi;
|
||||
import com.hzs.system.config.IServiceChargeServiceApi;
|
||||
|
|
@ -1260,7 +1259,8 @@ public class OrderBusinessServiceImpl implements IOrderBusinessService {
|
|||
}
|
||||
// 校验订单是否存在进行中的签呈
|
||||
if (iSaOrderChargeLogService.checkOrderApprovalExist(
|
||||
Arrays.asList(EApprovalBusiness.ORDER_CHANGE_ADDRESS.getValue(), EApprovalBusiness.ORDER_CHANGE_PRODUCT.getValue(),
|
||||
Arrays.asList(EApprovalBusiness.ORDER_CHANGE_ADDRESS.getValue(),
|
||||
EApprovalBusiness.ORDER_CHANGE_PRODUCT.getValue(),
|
||||
EApprovalBusiness.ORDER_RETURN.getValue(), approveBusiness,
|
||||
EApprovalBusiness.ORDER_CANCEL_PRODUCT.getValue()
|
||||
),
|
||||
|
|
@ -1364,13 +1364,13 @@ public class OrderBusinessServiceImpl implements IOrderBusinessService {
|
|||
}
|
||||
} else if (orderCancelParam.getCancelType().equals(ECancelOrderType.OTHER_CANCEL_ORDER.getValue())) {
|
||||
// 其他撤单
|
||||
if (EOrderType.RETAIL_REPURCHASE.getValue() == saOrderExt.getOrderType()) {
|
||||
// 2025.03.05 复购可以升级,需要必须从最后一单开始撤单
|
||||
if (EOrderType.RETAIL_UPGRADE.getValue() == saOrderExt.getOrderType()) {
|
||||
// 自购买精品专区订单,必须按顺序撤单
|
||||
List<SaOrder> saOrderList = iSaOrderService.querySaleOrderByPkMember(cuMember.getPkSettleCountry(), cuMember.getPkId(),
|
||||
Arrays.asList(EOrderType.RETAIL_REGISTER.getValue(), EOrderType.RETAIL_REPURCHASE.getValue()),
|
||||
Arrays.asList(EOrderType.RETAIL_REGISTER.getValue(), EOrderType.RETAIL_UPGRADE.getValue()),
|
||||
null);
|
||||
if (!saOrderList.get(0).getOrderCode().equals(saOrderExt.getOrderCode())) {
|
||||
validateCancelOrderVO.setMsg("撤销复购订单,只能从最新的订单开始撤销,最新的订单编号:" + saOrderList.get(0).getOrderCode());
|
||||
validateCancelOrderVO.setMsg("撤销复购专区订单,只能从最新的订单开始撤销,最新的订单编号:" + saOrderList.get(0).getOrderCode());
|
||||
return validateCancelOrderVO;
|
||||
}
|
||||
}
|
||||
|
|
@ -2291,7 +2291,7 @@ public class OrderBusinessServiceImpl implements IOrderBusinessService {
|
|||
return myOrderVO;
|
||||
}
|
||||
if (myOrderVO.getOrderType() == EOrderType.RETAIL_REGISTER.getValue() ||
|
||||
myOrderVO.getOrderType() == EOrderType.RETAIL_REPURCHASE.getValue()) {
|
||||
myOrderVO.getOrderType() == EOrderType.RETAIL_UPGRADE.getValue()) {
|
||||
String lastOrderCode = iSaOrderService.lastOrderList(userId, myOrderVO.getPkCountry());
|
||||
if (StringUtils.isEmpty(lastOrderCode) || !lastOrderCode.equals(myOrderVO.getOrderCode())) {
|
||||
myOrderVO.setMsg(TransactionUtils.getContent(SaOrderMsgConstants.CHECK_MEMBER_LAST_ORDER));
|
||||
|
|
|
|||
|
|
@ -27,31 +27,33 @@ import java.util.*;
|
|||
public class BonusItemsServiceProvider implements IBonusItemsServiceApi {
|
||||
|
||||
@Autowired
|
||||
private IBdBonusItemsService bonusItemsService;
|
||||
private IBdBonusItemsService iBdBonusItemsService;
|
||||
@Autowired
|
||||
private IBdBonusDirectService bdBonusDirectService;
|
||||
private IBdBonusDirectService iBdBonusDirectService;
|
||||
@Autowired
|
||||
private IBdAwardsService iBdAwardsService;
|
||||
@Autowired
|
||||
private IBdBonusDeductService bdBonusDeductService;
|
||||
private IBdGradeService iBdGradeService;
|
||||
@Autowired
|
||||
private IBdCurrencyService bdCurrencyService;
|
||||
private IBdBonusDeductService iBdBonusDeductService;
|
||||
@Autowired
|
||||
private IBdCountryService bdCountryService;
|
||||
private IBdCurrencyService iBdCurrencyService;
|
||||
@Autowired
|
||||
private IBdCountryService iBdCountryService;
|
||||
|
||||
@Override
|
||||
public R<List<BdBonusItemsExt>> queryBonusItems(Integer pkCountry) {
|
||||
return R.ok(bonusItemsService.queryBonusItems(pkCountry));
|
||||
return R.ok(iBdBonusItemsService.queryBonusItems(pkCountry));
|
||||
}
|
||||
|
||||
@Override
|
||||
public R<List<BdBonusItems>> queryExistsBonusItems(List<Integer> bonusValueList) {
|
||||
return R.ok(bonusItemsService.queryBonusItemsByValue(bonusValueList));
|
||||
return R.ok(iBdBonusItemsService.queryBonusItemsByValue(bonusValueList));
|
||||
}
|
||||
|
||||
@Override
|
||||
public R<BdBonusItems> queryBonusItems(Integer pkCountry, Integer pkBonusItems) {
|
||||
return R.ok(bonusItemsService.queryBonusItems(pkCountry, pkBonusItems));
|
||||
return R.ok(iBdBonusItemsService.queryBonusItems(pkCountry, pkBonusItems));
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
@ -60,7 +62,7 @@ public class BonusItemsServiceProvider implements IBonusItemsServiceApi {
|
|||
// 汇率
|
||||
bonusConfigDTO.setCurrencyDtoMap(getCurrencyDtoMap());
|
||||
// 收益类型
|
||||
List<BdCountry> allCountryList = bdCountryService.getAllCountry();
|
||||
List<BdCountry> allCountryList = iBdCountryService.getAllCountry();
|
||||
Set<Integer> countrySet = new HashSet<>();
|
||||
allCountryList.forEach(bdCountry ->
|
||||
countrySet.add(bdCountry.getPkId()));
|
||||
|
|
@ -72,11 +74,13 @@ public class BonusItemsServiceProvider implements IBonusItemsServiceApi {
|
|||
bonusConfigDTO.setBonusDeductsMap(getBonusDeductConfig());
|
||||
// 奖衔列表
|
||||
bonusConfigDTO.setAwardsList(iBdAwardsService.queryAwards());
|
||||
// 等级列表
|
||||
bonusConfigDTO.setGradeList(iBdGradeService.queryBdGrade());
|
||||
return R.ok(bonusConfigDTO);
|
||||
}
|
||||
|
||||
private Map<String, BdCurrencyDTO> getCurrencyDtoMap() {
|
||||
List<BdCurrency> bdCurrencyList = bdCurrencyService.queryAllBdCurrency();
|
||||
List<BdCurrency> bdCurrencyList = iBdCurrencyService.queryAllBdCurrency();
|
||||
Map<String, BdCurrencyDTO> currencyDtoMap = new HashMap<>(ComputeUtil.mapInitCapacity(bdCurrencyList.size()));
|
||||
bdCurrencyList.forEach(bdCurrency ->
|
||||
currencyDtoMap.put(bdCurrency.getPkCountry().toString() + bdCurrency.getPkId(),
|
||||
|
|
@ -87,7 +91,7 @@ public class BonusItemsServiceProvider implements IBonusItemsServiceApi {
|
|||
private Map<String, BdBonusItemsExt> getBdBonusItemsExtMap(Set<Integer> countrySet) {
|
||||
Map<String, BdBonusItemsExt> bonusItemsMap = new HashMap<>(ComputeUtil.mapInitCapacity(countrySet.size() * 8));
|
||||
countrySet.forEach(pkCountry -> {
|
||||
List<BdBonusItemsExt> bdBonusItemsExtList = bonusItemsService.queryCalBonusItems(pkCountry);
|
||||
List<BdBonusItemsExt> bdBonusItemsExtList = iBdBonusItemsService.queryCalBonusItems(pkCountry);
|
||||
for (BdBonusItemsExt bdBonusItemsExt : bdBonusItemsExtList) {
|
||||
bonusItemsMap.put(pkCountry.toString() + bdBonusItemsExt.getBonusValue().toString(), bdBonusItemsExt);
|
||||
}
|
||||
|
|
@ -99,7 +103,7 @@ public class BonusItemsServiceProvider implements IBonusItemsServiceApi {
|
|||
* 获得奖金 推荐什么等级 直推奖励配置
|
||||
*/
|
||||
private Map<String, BonusDirectDTO> getBonusDirectConfig() {
|
||||
List<BdBonusDirect> bdBonusDirectList = bdBonusDirectService.queryBonusDirect();
|
||||
List<BdBonusDirect> bdBonusDirectList = iBdBonusDirectService.queryBonusDirect();
|
||||
Map<String, BonusDirectDTO> directDtoHashMap = new HashMap<>(ComputeUtil.mapInitCapacity(bdBonusDirectList.size()));
|
||||
bdBonusDirectList.forEach(bdBonusDirect -> {
|
||||
BonusDirectDTO bonusDirectDTO = BeanUtil.copyProperties(bdBonusDirect, BonusDirectDTO.class);
|
||||
|
|
@ -112,7 +116,7 @@ public class BonusItemsServiceProvider implements IBonusItemsServiceApi {
|
|||
* 获取每个国家奖金项对应的扣项
|
||||
*/
|
||||
private Map<Integer, BdBonusDeduct> getBonusDeductConfig() {
|
||||
List<BdBonusDeduct> bdBonusDeductList = bdBonusDeductService.queryBonusDeduct();
|
||||
List<BdBonusDeduct> bdBonusDeductList = iBdBonusDeductService.queryBonusDeduct();
|
||||
Map<Integer, BdBonusDeduct> bdBonusDeductMap = new HashMap<>(ComputeUtil.mapInitCapacity(bdBonusDeductList.size()));
|
||||
bdBonusDeductList.forEach(bdBonusDeduct ->
|
||||
bdBonusDeductMap.put(bdBonusDeduct.getPkBonusItems(), bdBonusDeduct));
|
||||
|
|
|
|||
|
|
@ -2,7 +2,6 @@ package com.hzs.system.config.service.impl;
|
|||
|
||||
import cn.hutool.core.collection.CollectionUtil;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import com.hzs.common.core.constant.CacheConstants;
|
||||
|
|
@ -173,9 +172,8 @@ public class BdGradeServiceImpl extends ServiceImpl<BdGradeMapper, BdGrade> impl
|
|||
|
||||
@Override
|
||||
public List<BdGrade> queryBdGrade() {
|
||||
QueryWrapper<BdGrade> queryWrapper = new QueryWrapper<>();
|
||||
queryWrapper.select("PK_ID,GRADE_VALUE,FIRST_CALCULATE,FIRST_ASSESS,EXPAND_CAPPING,EXPAND_RATIO,REPURCHASE_CALCULATE,REPURCHASE_ASSESS,REPURCHASE_CAPPING,REPURCHASE_RATIO,PK_COUNTRY");
|
||||
queryWrapper.eq("SYSTEM_TYPE", 0);
|
||||
LambdaQueryWrapper<BdGrade> queryWrapper = new LambdaQueryWrapper<>();
|
||||
queryWrapper.orderByAsc(BdGrade::getGradeValue);
|
||||
return baseMapper.selectList(queryWrapper);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -1,13 +1,10 @@
|
|||
package com.hzs.common.core.enums;
|
||||
|
||||
import com.hzs.common.core.constant.EnumsPrefixConstants;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Getter;
|
||||
|
||||
/**
|
||||
* 撤销订单类型
|
||||
*
|
||||
* @author: hzs
|
||||
*/
|
||||
@AllArgsConstructor
|
||||
@Getter
|
||||
|
|
|
|||
|
|
@ -92,7 +92,7 @@ public class CuMemberBonus extends BaseEntity {
|
|||
private BigDecimal serviceIncome;
|
||||
|
||||
/**
|
||||
* 商城重消
|
||||
* 赠品积分-众康
|
||||
*/
|
||||
@TableField("BACK_POINTS")
|
||||
private BigDecimal backPoints;
|
||||
|
|
|
|||
Loading…
Reference in New Issue