Compare commits
	
		
			3 Commits
		
	
	
		
			7ebe459dd9
			...
			02ff3cd355
		
	
	| Author | SHA1 | Date | 
|---|---|---|
| 
							
							
								
								 | 
						02ff3cd355 | |
| 
							
							
								
								 | 
						5504309c8a | |
| 
							
							
								
								 | 
						34903b0b00 | 
| 
						 | 
				
			
			@ -12,10 +12,11 @@ import java.util.List;
 | 
			
		|||
public interface CuMemberRetailDetailMapper extends BaseMapper<CuMemberRetailDetail> {
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * 查询明细数据(指定阶段,未完成的)
 | 
			
		||||
     * 查询明细数据(指定阶段,指定状态)
 | 
			
		||||
     */
 | 
			
		||||
    List<CuMemberRetailDetail> listMemberRetailDetail(@Param("retailDetailTableName") String retailDetailTableName,
 | 
			
		||||
                                                      @Param("tmpIdList") List<?> tmpIdList,
 | 
			
		||||
                                                      @Param("stage") Integer stage);
 | 
			
		||||
                                                      @Param("stage") Integer stage,
 | 
			
		||||
                                                      @Param("stageStatus") Integer stageStatus);
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -2,6 +2,7 @@ package com.hzs.bonus.achieve.service;
 | 
			
		|||
 | 
			
		||||
import com.baomidou.mybatisplus.extension.service.IService;
 | 
			
		||||
import com.hzs.common.core.enums.EBonusStage;
 | 
			
		||||
import com.hzs.common.core.enums.EBonusStageStatus;
 | 
			
		||||
import com.hzs.common.domain.member.achieve.CuMemberRetailDetail;
 | 
			
		||||
import com.hzs.common.domain.member.achieve.ext.CuMemberRetailRangeExt;
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -17,12 +18,18 @@ public interface ICuMemberRetailDetailService extends IService<CuMemberRetailDet
 | 
			
		|||
     * 根据结算会员获取对应的点位数据
 | 
			
		||||
     */
 | 
			
		||||
    void listMemberRetailDetail(String retailDetailTableName, Map<Long, CuMemberRetailRangeExt> memberRangeExtMap,
 | 
			
		||||
                                EBonusStage eBonusStage, List<Long> stageMemberList);
 | 
			
		||||
                                EBonusStage eBonusStage, EBonusStageStatus eBonusStageStatus, List<Long> stageMemberList);
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * 指定会员获取对应的点位数据
 | 
			
		||||
     */
 | 
			
		||||
    void listMemberRetailDetail(String retailDetailTableName, Map<Long, CuMemberRetailRangeExt> memberRangeExtMap,
 | 
			
		||||
                                List<Long> queryMemberList, EBonusStage eBonusStage);
 | 
			
		||||
    void listMemberRetailDetailByQuery(String retailDetailTableName, Map<Long, CuMemberRetailRangeExt> memberRangeExtMap,
 | 
			
		||||
                                       List<Long> queryMemberList, EBonusStage eBonusStage);
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * 会员直推对应的点位数据
 | 
			
		||||
     */
 | 
			
		||||
    void listChildRetailDetail(String retailDetailTableName, Map<Long, CuMemberRetailRangeExt> memberRangeExtMap,
 | 
			
		||||
                               List<Long> queryMemberList, EBonusStage eBonusStage);
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -6,6 +6,7 @@ import com.hzs.bonus.achieve.service.ICuMemberRetailDetailService;
 | 
			
		|||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 | 
			
		||||
import com.hzs.common.core.constant.MagicNumberConstants;
 | 
			
		||||
import com.hzs.common.core.enums.EBonusStage;
 | 
			
		||||
import com.hzs.common.core.enums.EBonusStageStatus;
 | 
			
		||||
import com.hzs.common.domain.member.achieve.CuMemberRetailDetail;
 | 
			
		||||
import com.hzs.common.domain.member.achieve.ext.CuMemberRetailRangeExt;
 | 
			
		||||
import org.springframework.beans.factory.annotation.Autowired;
 | 
			
		||||
| 
						 | 
				
			
			@ -24,7 +25,7 @@ public class CuMemberRetailDetailServiceImpl extends ServiceImpl<CuMemberRetailD
 | 
			
		|||
 | 
			
		||||
    @Override
 | 
			
		||||
    public void listMemberRetailDetail(String retailDetailTableName, Map<Long, CuMemberRetailRangeExt> memberRangeExtMap,
 | 
			
		||||
                                       EBonusStage eBonusStage, List<Long> stageMemberList) {
 | 
			
		||||
                                       EBonusStage eBonusStage, EBonusStageStatus eBonusStageStatus, List<Long> stageMemberList) {
 | 
			
		||||
        List<List<?>> pkMemberList;
 | 
			
		||||
        if (CollectionUtil.isNotEmpty(stageMemberList)) {
 | 
			
		||||
            pkMemberList = cuMemberBonusSettle.handleCutList(stageMemberList, MagicNumberConstants.BATCH_QUERY_NUM);
 | 
			
		||||
| 
						 | 
				
			
			@ -33,7 +34,7 @@ public class CuMemberRetailDetailServiceImpl extends ServiceImpl<CuMemberRetailD
 | 
			
		|||
        }
 | 
			
		||||
        pkMemberList.forEach(tmpIdList -> {
 | 
			
		||||
            // 查询明细数据(指定阶段,未完成的)
 | 
			
		||||
            List<CuMemberRetailDetail> tmpList = baseMapper.listMemberRetailDetail(retailDetailTableName, tmpIdList, eBonusStage.getValue());
 | 
			
		||||
            List<CuMemberRetailDetail> tmpList = baseMapper.listMemberRetailDetail(retailDetailTableName, tmpIdList, eBonusStage.getValue(), null != eBonusStageStatus ? eBonusStageStatus.getValue() : null);
 | 
			
		||||
            if (CollectionUtil.isNotEmpty(tmpList)) {
 | 
			
		||||
                // 明细数据放到对应的会员数据中
 | 
			
		||||
                for (CuMemberRetailDetail cuMemberRetailDetail : tmpList) {
 | 
			
		||||
| 
						 | 
				
			
			@ -64,10 +65,10 @@ public class CuMemberRetailDetailServiceImpl extends ServiceImpl<CuMemberRetailD
 | 
			
		|||
    }
 | 
			
		||||
 | 
			
		||||
    @Override
 | 
			
		||||
    public void listMemberRetailDetail(String retailDetailTableName, Map<Long, CuMemberRetailRangeExt> memberRangeExtMap,
 | 
			
		||||
                                       List<Long> queryMemberList, EBonusStage eBonusStage) {
 | 
			
		||||
    public void listMemberRetailDetailByQuery(String retailDetailTableName, Map<Long, CuMemberRetailRangeExt> memberRangeExtMap,
 | 
			
		||||
                                              List<Long> queryMemberList, EBonusStage eBonusStage) {
 | 
			
		||||
        // 查询明细数据(指定阶段,未完成的)
 | 
			
		||||
        List<CuMemberRetailDetail> tmpDetailList = baseMapper.listMemberRetailDetail(retailDetailTableName, queryMemberList, eBonusStage.getValue());
 | 
			
		||||
        List<CuMemberRetailDetail> tmpDetailList = baseMapper.listMemberRetailDetail(retailDetailTableName, queryMemberList, eBonusStage.getValue(), EBonusStageStatus.NO.getValue());
 | 
			
		||||
        if (CollectionUtil.isNotEmpty(tmpDetailList)) {
 | 
			
		||||
            // 明细数据放到对应的会员数据中
 | 
			
		||||
            for (CuMemberRetailDetail cuMemberRetailDetail : tmpDetailList) {
 | 
			
		||||
| 
						 | 
				
			
			@ -97,4 +98,10 @@ public class CuMemberRetailDetailServiceImpl extends ServiceImpl<CuMemberRetailD
 | 
			
		|||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    @Override
 | 
			
		||||
    public void listChildRetailDetail(String retailDetailTableName, Map<Long, CuMemberRetailRangeExt> memberRangeExtMap,
 | 
			
		||||
                                      List<Long> queryMemberList, EBonusStage eBonusStage) {
 | 
			
		||||
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -38,6 +38,11 @@ public class BonusStageData {
 | 
			
		|||
     */
 | 
			
		||||
    private Integer stageNum;
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * 三阶段走完,需要添加的待激活点位数
 | 
			
		||||
     */
 | 
			
		||||
    private Integer pointGift;
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * 二阶段点位
 | 
			
		||||
     */
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -7,6 +7,7 @@ import com.hzs.bonus.base.service.ICuMemberService;
 | 
			
		|||
import com.hzs.bonus.bonus.dto.BonusStageData;
 | 
			
		||||
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.order.service.IBonusOrderService;
 | 
			
		||||
import com.hzs.common.core.constant.MagicNumberConstants;
 | 
			
		||||
| 
						 | 
				
			
			@ -310,7 +311,7 @@ public class BonusSettleRangeHandle extends BonusSettleHandle {
 | 
			
		|||
                }
 | 
			
		||||
            }
 | 
			
		||||
            // 查询血缘会员明细数据(一阶段)
 | 
			
		||||
            iCuMemberRetailDetailService.listMemberRetailDetail(rangeDetailTableName, memberRangeExtMap, EBonusStage.ONE, null);
 | 
			
		||||
            iCuMemberRetailDetailService.listMemberRetailDetail(rangeDetailTableName, memberRangeExtMap, EBonusStage.ONE, EBonusStageStatus.NO, null);
 | 
			
		||||
 | 
			
		||||
            // 奖衔
 | 
			
		||||
            Map<Integer, BdAwards> retailAwardsMap = new HashMap<>();
 | 
			
		||||
| 
						 | 
				
			
			@ -353,21 +354,25 @@ public class BonusSettleRangeHandle extends BonusSettleHandle {
 | 
			
		|||
                }
 | 
			
		||||
            }
 | 
			
		||||
 | 
			
		||||
            // TODO 处理升二阶段点位
 | 
			
		||||
            // 处理升二阶段点位
 | 
			
		||||
            if (CollectionUtil.isNotEmpty(stageList)) {
 | 
			
		||||
                List<Long> stageMemberList = stageList.stream().map(CuMemberRetailDetail::getPkMember).collect(Collectors.toList());
 | 
			
		||||
                // 查询升阶段点位血缘上所有会员ID
 | 
			
		||||
                List<Long> findMemberList = this.findParent(memberRangeExtMap, stageMemberList);
 | 
			
		||||
                // 查询血缘会员明细数据(二阶段)
 | 
			
		||||
                iCuMemberRetailDetailService.listMemberRetailDetail(rangeDetailTableName, memberRangeExtMap, EBonusStage.TWO, stageMemberList);
 | 
			
		||||
                iCuMemberRetailDetailService.listMemberRetailDetail(rangeDetailTableName, memberRangeExtMap, EBonusStage.TWO, EBonusStageStatus.NO, findMemberList);
 | 
			
		||||
                // 二阶段收益
 | 
			
		||||
                stageList = this.calculateStageIncomeTwoThree(cuMemberBonusStageList, cuMemberBonusMap, bonusConfigDTO, period,
 | 
			
		||||
                        memberRangeExtMap, settleStartDate, rangeTableName, rangeDetailTableName, EBonusStage.TWO, stageList);
 | 
			
		||||
            }
 | 
			
		||||
 | 
			
		||||
            // TODO 处理升三阶段点位
 | 
			
		||||
            // 处理升三阶段点位
 | 
			
		||||
            if (CollectionUtil.isNotEmpty(stageList)) {
 | 
			
		||||
                List<Long> stageMemberList = stageList.stream().map(CuMemberRetailDetail::getPkMember).collect(Collectors.toList());
 | 
			
		||||
                // 查询升阶段点位血缘上所有会员ID
 | 
			
		||||
                List<Long> findMemberList = this.findParent(memberRangeExtMap, stageMemberList);
 | 
			
		||||
                // 查询血缘会员明细数据(三阶段)
 | 
			
		||||
                iCuMemberRetailDetailService.listMemberRetailDetail(rangeDetailTableName, memberRangeExtMap, EBonusStage.THREE, stageMemberList);
 | 
			
		||||
                iCuMemberRetailDetailService.listMemberRetailDetail(rangeDetailTableName, memberRangeExtMap, EBonusStage.THREE, EBonusStageStatus.NO, findMemberList);
 | 
			
		||||
                // 三阶段收益
 | 
			
		||||
                this.calculateStageIncomeTwoThree(cuMemberBonusStageList, cuMemberBonusMap, bonusConfigDTO, period,
 | 
			
		||||
                        memberRangeExtMap, settleStartDate, rangeTableName, rangeDetailTableName, EBonusStage.THREE, stageList);
 | 
			
		||||
| 
						 | 
				
			
			@ -965,12 +970,21 @@ public class BonusSettleRangeHandle extends BonusSettleHandle {
 | 
			
		|||
            return returnRetailDetailList;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        // 订单生成新点位数量
 | 
			
		||||
        int newPointInt;
 | 
			
		||||
        if (EOrderType.RETAIL_REGISTER.getValue() == saOrderExt.getOrderType()
 | 
			
		||||
                || EOrderType.RETAIL_UPGRADE.getValue() == saOrderExt.getOrderType()) {
 | 
			
		||||
            // 精品专区按订单金额计算
 | 
			
		||||
            BigDecimal orderAmount = saOrderExt.getOrderAmount();
 | 
			
		||||
            // 订单金额除50取整,为新増点位数量
 | 
			
		||||
            newPointInt = saOrderExt.getOrderAmount().divide(RetailConstants.POINT_VAL, 0, RoundingMode.DOWN).intValue();
 | 
			
		||||
            newPointInt = orderAmount.divide(RetailConstants.POINT_VAL, 0, RoundingMode.DOWN).intValue();
 | 
			
		||||
            if (orderAmount.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) {
 | 
			
		||||
                // 首次订单金额大于等于1万,每个点位完成三阶段赠送1个点位
 | 
			
		||||
                sourceMember.setGiftPoint(1);
 | 
			
		||||
            }
 | 
			
		||||
        } else {
 | 
			
		||||
            // 商城专区按累计业绩处理
 | 
			
		||||
            BigDecimal repPvBalance = sourceMember.getRepPvBalance().add(saOrderExt.getOrderAchieve());
 | 
			
		||||
| 
						 | 
				
			
			@ -981,6 +995,8 @@ public class BonusSettleRangeHandle extends BonusSettleHandle {
 | 
			
		|||
            // 当前订单不足生成点位
 | 
			
		||||
            return returnRetailDetailList;
 | 
			
		||||
        }
 | 
			
		||||
        // 赠送点位
 | 
			
		||||
        int pointGift = sourceMember.getGiftPoint();
 | 
			
		||||
 | 
			
		||||
        // 会员一阶段子点位列表
 | 
			
		||||
        LinkedHashMap<Integer, CuMemberRetailDetail> detailList = sourceMember.getOneDetailMap();
 | 
			
		||||
| 
						 | 
				
			
			@ -1001,7 +1017,7 @@ public class BonusSettleRangeHandle extends BonusSettleHandle {
 | 
			
		|||
                    .stage(EBonusStage.ONE.getValue())
 | 
			
		||||
                    .stageStatus(EBonusStageStatus.NO.getValue())
 | 
			
		||||
                    .pointType(EBonusStageType.NORMAL.getValue())
 | 
			
		||||
                    .pointGift(0)
 | 
			
		||||
                    .pointGift(pointGift)
 | 
			
		||||
                    .creationTime(settleDate)
 | 
			
		||||
                    .thirdBonus1(0)
 | 
			
		||||
                    .thirdBonus2(0)
 | 
			
		||||
| 
						 | 
				
			
			@ -1014,6 +1030,39 @@ public class BonusSettleRangeHandle extends BonusSettleHandle {
 | 
			
		|||
                    memberRangeExtMap, saOrderExt, settleDate, rangeTableName, rangeDetailTableName, EBonusStage.ONE,
 | 
			
		||||
                    sourceMember, newRetailDetail, returnRetailDetailList);
 | 
			
		||||
        }
 | 
			
		||||
        // 待激活点位
 | 
			
		||||
        int waitPointCount = sourceMember.getWaitPointCount();
 | 
			
		||||
        if (waitPointCount != 0) {
 | 
			
		||||
            for (int i = 1; i <= newPointInt; i++) {
 | 
			
		||||
                if (waitPointCount > 0) {
 | 
			
		||||
                    // 购买一个点位,激活一个待激活点位
 | 
			
		||||
                    CuMemberRetailDetail newRetailDetail = CuMemberRetailDetail.builder()
 | 
			
		||||
                            .pkMember(sourceMember.getPkMember())
 | 
			
		||||
                            .childNode(pointCount + i)
 | 
			
		||||
                            .pkParent(sourceMember.getPkParent())
 | 
			
		||||
                            .stage(EBonusStage.ONE.getValue())
 | 
			
		||||
                            .stageStatus(EBonusStageStatus.NO.getValue())
 | 
			
		||||
                            .pointType(EBonusStageType.GIFT.getValue())
 | 
			
		||||
                            .pointGift(0)
 | 
			
		||||
                            .creationTime(settleDate)
 | 
			
		||||
                            .thirdBonus1(0)
 | 
			
		||||
                            .thirdBonus2(0)
 | 
			
		||||
                            .thirdBonus3(0)
 | 
			
		||||
                            .updateBool(0)
 | 
			
		||||
                            .build();
 | 
			
		||||
                    detailList.put(newRetailDetail.getChildNode(), newRetailDetail);
 | 
			
		||||
 | 
			
		||||
                    this.handleStageIncome(cuMemberBonusStageList, cuMemberBonusMap, bonusConfigDTO, period,
 | 
			
		||||
                            memberRangeExtMap, saOrderExt, settleDate, rangeTableName, rangeDetailTableName, EBonusStage.ONE,
 | 
			
		||||
                            sourceMember, newRetailDetail, returnRetailDetailList);
 | 
			
		||||
 | 
			
		||||
                    waitPointCount = waitPointCount - 1;
 | 
			
		||||
                } else {
 | 
			
		||||
                    break;
 | 
			
		||||
                }
 | 
			
		||||
            }
 | 
			
		||||
            sourceMember.setWaitPointCount(waitPointCount);
 | 
			
		||||
        }
 | 
			
		||||
        sourceMember.setPointCount(sourceMember.getPointCount() + newPointInt);
 | 
			
		||||
        return returnRetailDetailList;
 | 
			
		||||
    }
 | 
			
		||||
| 
						 | 
				
			
			@ -1053,53 +1102,60 @@ public class BonusSettleRangeHandle extends BonusSettleHandle {
 | 
			
		|||
                                   List<CuMemberRetailDetail> returnRetailDetailList) {
 | 
			
		||||
        // 阶段奖金处理列表
 | 
			
		||||
        List<BonusStageData> bonusStageDataList = new ArrayList<>();
 | 
			
		||||
        // 推荐人
 | 
			
		||||
        Long pkParent = sourceMember.getPkParent();
 | 
			
		||||
        while (true) {
 | 
			
		||||
            CuMemberRetailRangeExt targetMember = memberRangeExtMap.get(pkParent);
 | 
			
		||||
            if (null == targetMember) {
 | 
			
		||||
                // 没有推荐人了,则直接结束
 | 
			
		||||
                break;
 | 
			
		||||
            }
 | 
			
		||||
            pkParent = targetMember.getPkParent();
 | 
			
		||||
 | 
			
		||||
            // 推荐人一阶段子点位列表
 | 
			
		||||
            LinkedHashMap<Integer, CuMemberRetailDetail> parentDetailList = null;
 | 
			
		||||
            if (EBonusStage.ONE.getValue() == eBonusStage.getValue()) {
 | 
			
		||||
                parentDetailList = targetMember.getOneDetailMap();
 | 
			
		||||
            } else if (EBonusStage.TWO.getValue() == eBonusStage.getValue()) {
 | 
			
		||||
                parentDetailList = targetMember.getTwoDetailMap();
 | 
			
		||||
            } else if (EBonusStage.THREE.getValue() == eBonusStage.getValue()) {
 | 
			
		||||
                parentDetailList = targetMember.getThreeDetailMap();
 | 
			
		||||
            }
 | 
			
		||||
            if (CollectionUtil.isEmpty(parentDetailList)) {
 | 
			
		||||
                // 推荐人没有未完成点位,继续往上找
 | 
			
		||||
                continue;
 | 
			
		||||
            }
 | 
			
		||||
        if (EBonusStageType.NORMAL.getValue() == newRetailDetail.getPointType()) {
 | 
			
		||||
            // 普通点位处理
 | 
			
		||||
            // 推荐人
 | 
			
		||||
            Long pkParent = sourceMember.getPkParent();
 | 
			
		||||
            while (true) {
 | 
			
		||||
                CuMemberRetailRangeExt targetMember = memberRangeExtMap.get(pkParent);
 | 
			
		||||
                if (null == targetMember) {
 | 
			
		||||
                    // 没有推荐人了,则直接结束
 | 
			
		||||
                    break;
 | 
			
		||||
                }
 | 
			
		||||
                pkParent = targetMember.getPkParent();
 | 
			
		||||
 | 
			
		||||
            // 推荐人第一层点位处理
 | 
			
		||||
            boolean forBool = iCuMemberBonusStageService.firstLevelhandle(parentDetailList, newRetailDetail, rangeTableName, rangeDetailTableName,
 | 
			
		||||
                    memberRangeExtMap, settleDate, eBonusStage, bonusStageDataList);
 | 
			
		||||
            if (forBool) {
 | 
			
		||||
                // 在第一层找到并填充点位,就开始下一个点位的处理
 | 
			
		||||
                break;
 | 
			
		||||
            }
 | 
			
		||||
                // 推荐人一阶段子点位列表
 | 
			
		||||
                LinkedHashMap<Integer, CuMemberRetailDetail> parentDetailList = null;
 | 
			
		||||
                if (EBonusStage.ONE.getValue() == eBonusStage.getValue()) {
 | 
			
		||||
                    parentDetailList = targetMember.getOneDetailMap();
 | 
			
		||||
                } else if (EBonusStage.TWO.getValue() == eBonusStage.getValue()) {
 | 
			
		||||
                    parentDetailList = targetMember.getTwoDetailMap();
 | 
			
		||||
                } else if (EBonusStage.THREE.getValue() == eBonusStage.getValue()) {
 | 
			
		||||
                    parentDetailList = targetMember.getThreeDetailMap();
 | 
			
		||||
                }
 | 
			
		||||
                if (CollectionUtil.isEmpty(parentDetailList)) {
 | 
			
		||||
                    // 推荐人没有未完成点位,继续往上找
 | 
			
		||||
                    continue;
 | 
			
		||||
                }
 | 
			
		||||
 | 
			
		||||
            // 推荐人第二层点位处理
 | 
			
		||||
            forBool = iCuMemberBonusStageService.secondLevelhandle(parentDetailList, newRetailDetail, rangeTableName, rangeDetailTableName,
 | 
			
		||||
                    memberRangeExtMap, settleDate, eBonusStage, bonusStageDataList);
 | 
			
		||||
            if (forBool) {
 | 
			
		||||
                // 在第二层找到并填充点位,就开始下一个点位的处理
 | 
			
		||||
                break;
 | 
			
		||||
            }
 | 
			
		||||
                // 推荐人第一层点位处理
 | 
			
		||||
                boolean forBool = iCuMemberBonusStageService.firstLevelhandle(parentDetailList, newRetailDetail, rangeTableName, rangeDetailTableName,
 | 
			
		||||
                        memberRangeExtMap, settleDate, eBonusStage, bonusStageDataList);
 | 
			
		||||
                if (forBool) {
 | 
			
		||||
                    // 在第一层找到并填充点位,就开始下一个点位的处理
 | 
			
		||||
                    break;
 | 
			
		||||
                }
 | 
			
		||||
 | 
			
		||||
            // 推荐人第三层点位处理
 | 
			
		||||
            forBool = iCuMemberBonusStageService.thirdLevelhandle(parentDetailList, newRetailDetail, rangeTableName, rangeDetailTableName,
 | 
			
		||||
                    memberRangeExtMap, settleDate, eBonusStage, bonusStageDataList);
 | 
			
		||||
            if (forBool) {
 | 
			
		||||
                // 在第三层找到并填充点位,就开始下一个点位的处理
 | 
			
		||||
                break;
 | 
			
		||||
                // 推荐人第二层点位处理
 | 
			
		||||
                forBool = iCuMemberBonusStageService.secondLevelhandle(parentDetailList, newRetailDetail, rangeTableName, rangeDetailTableName,
 | 
			
		||||
                        memberRangeExtMap, settleDate, eBonusStage, bonusStageDataList);
 | 
			
		||||
                if (forBool) {
 | 
			
		||||
                    // 在第二层找到并填充点位,就开始下一个点位的处理
 | 
			
		||||
                    break;
 | 
			
		||||
                }
 | 
			
		||||
 | 
			
		||||
                // 推荐人第三层点位处理
 | 
			
		||||
                forBool = iCuMemberBonusStageService.thirdLevelhandle(parentDetailList, newRetailDetail, rangeTableName, rangeDetailTableName,
 | 
			
		||||
                        memberRangeExtMap, settleDate, eBonusStage, bonusStageDataList);
 | 
			
		||||
                if (forBool) {
 | 
			
		||||
                    // 在第三层找到并填充点位,就开始下一个点位的处理
 | 
			
		||||
                    break;
 | 
			
		||||
                }
 | 
			
		||||
            }
 | 
			
		||||
        } else {
 | 
			
		||||
            // TODO 赠送点位处理,赠送点位给自己直推会员轮流布点
 | 
			
		||||
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        if (CollectionUtil.isNotEmpty(bonusStageDataList)) {
 | 
			
		||||
| 
						 | 
				
			
			@ -1138,11 +1194,36 @@ public class BonusSettleRangeHandle extends BonusSettleHandle {
 | 
			
		|||
                    targetMember.getThreeDetailMap().put(threeRetailDetail.getChildNode(), threeRetailDetail);
 | 
			
		||||
                    returnRetailDetailList.add(threeRetailDetail);
 | 
			
		||||
                } else if (EBonusStage.THREE.getValue() == bonusStageData.getStage()) {
 | 
			
		||||
                    // TODO 三阶段填充满,判断是否需要赠送点位
 | 
			
		||||
 | 
			
		||||
                    // 三阶段填充满,判断是否需要赠送点位
 | 
			
		||||
                    if (bonusStageData.getPointGift() != 0) {
 | 
			
		||||
                        // 需要添加赠送的待激活点位
 | 
			
		||||
                        targetMember.setWaitPointCount(targetMember.getWaitPointCount() + bonusStageData.getPointGift());
 | 
			
		||||
                    }
 | 
			
		||||
                }
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * 查找血缘上所有会员
 | 
			
		||||
     */
 | 
			
		||||
    private List<Long> findParent(Map<Long, CuMemberRetailRangeExt> memberRangeExtMap, List<Long> pkMemberList) {
 | 
			
		||||
        List<Long> resultList = new ArrayList<>();
 | 
			
		||||
        for (Long pkMember : pkMemberList) {
 | 
			
		||||
            CuMemberRetailRangeExt sourceMember = memberRangeExtMap.get(pkMember);
 | 
			
		||||
            resultList.add(sourceMember.getPkMember());
 | 
			
		||||
 | 
			
		||||
            Long pkParent = sourceMember.getPkParent();
 | 
			
		||||
            while (true) {
 | 
			
		||||
                CuMemberRetailRangeExt targetMember = memberRangeExtMap.get(pkParent);
 | 
			
		||||
                if (null == targetMember) {
 | 
			
		||||
                    break;
 | 
			
		||||
                }
 | 
			
		||||
                resultList.add(targetMember.getPkMember());
 | 
			
		||||
                pkParent = targetMember.getPkParent();
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
        return resultList;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -361,6 +361,7 @@ public class CuMemberBonusStageServiceImpl extends ServiceImpl<CuMemberBonusStag
 | 
			
		|||
                                    .targetChildNode(targetRetailDetail.getChildNode())
 | 
			
		||||
                                    .stage(eBonusStage.getValue())
 | 
			
		||||
                                    .stageNum(2)
 | 
			
		||||
                                    .pointGift(0)
 | 
			
		||||
                                    .build();
 | 
			
		||||
                            bonusStageDataList.add(bonusStageData);
 | 
			
		||||
                            // 第一层发放过1次
 | 
			
		||||
| 
						 | 
				
			
			@ -386,6 +387,7 @@ public class CuMemberBonusStageServiceImpl extends ServiceImpl<CuMemberBonusStag
 | 
			
		|||
                                    .targetChildNode(targetRetailDetail.getChildNode())
 | 
			
		||||
                                    .stage(eBonusStage.getValue())
 | 
			
		||||
                                    .stageNum(4)
 | 
			
		||||
                                    .pointGift(0)
 | 
			
		||||
                                    .build();
 | 
			
		||||
                            bonusStageDataList.add(bonusStageData);
 | 
			
		||||
                            // 第二层发放过1次
 | 
			
		||||
| 
						 | 
				
			
			@ -410,24 +412,26 @@ public class CuMemberBonusStageServiceImpl extends ServiceImpl<CuMemberBonusStag
 | 
			
		|||
                            }
 | 
			
		||||
                        }
 | 
			
		||||
                        if (tmpInt - targetRetailDetail.getThirdBonus3() == 1) {
 | 
			
		||||
                            Integer pointGift = 0;
 | 
			
		||||
                            // 默认第三层前7个点位奖金
 | 
			
		||||
                            BigDecimal bonus = BonusConstants.THREE_BONUS_3;
 | 
			
		||||
                            if (tmpInt == 8) {
 | 
			
		||||
                                // 第三层第8个点位
 | 
			
		||||
                                bonus = BonusConstants.THREE_BONUS_38;
 | 
			
		||||
 | 
			
		||||
                                // 三层全满
 | 
			
		||||
                                // 三层全满,三阶段完成
 | 
			
		||||
                                targetRetailDetail.setStageStatus(EBonusStageStatus.YES.getValue());
 | 
			
		||||
                                targetRetailDetail.setStageDate(settleDate);
 | 
			
		||||
                                // TODO 三阶段填充满,判断是否需要赠送点位
 | 
			
		||||
 | 
			
		||||
                                // 当前点位赠点数量
 | 
			
		||||
                                pointGift = targetRetailDetail.getPointGift();
 | 
			
		||||
                            }
 | 
			
		||||
                            BonusStageData bonusStageData = BonusStageData.builder()
 | 
			
		||||
                                    .bonusIncome(bonus)
 | 
			
		||||
                                    .targetPkMember(targetRetailDetail.getPkMember())
 | 
			
		||||
                                    .targetChildNode(targetRetailDetail.getChildNode())
 | 
			
		||||
                                    .stage(eBonusStage.getValue())
 | 
			
		||||
                                    .stageNum(tmpInt)
 | 
			
		||||
                                    .stageNum(tmpInt + 6)
 | 
			
		||||
                                    .pointGift(pointGift)
 | 
			
		||||
                                    .build();
 | 
			
		||||
                            bonusStageDataList.add(bonusStageData);
 | 
			
		||||
                            targetRetailDetail.setThirdBonus3(tmpInt);
 | 
			
		||||
| 
						 | 
				
			
			@ -464,8 +468,8 @@ public class CuMemberBonusStageServiceImpl extends ServiceImpl<CuMemberBonusStag
 | 
			
		|||
                retailList.forEach(tmpRetail -> {
 | 
			
		||||
                    memberRangeExtMap.put(tmpRetail.getPkMember(), tmpRetail);
 | 
			
		||||
                });
 | 
			
		||||
                // 查询血缘会员明细数据(一阶段)
 | 
			
		||||
                iCuMemberRetailDetailService.listMemberRetailDetail(rangeDetailTableName, memberRangeExtMap, queryMemberList, EBonusStage.ONE);
 | 
			
		||||
                // 查询血缘会员明细数据
 | 
			
		||||
                iCuMemberRetailDetailService.listMemberRetailDetailByQuery(rangeDetailTableName, memberRangeExtMap, queryMemberList, eBonusStage);
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -535,8 +539,8 @@ public class CuMemberBonusStageServiceImpl extends ServiceImpl<CuMemberBonusStag
 | 
			
		|||
                retailList.forEach(tmpRetail -> {
 | 
			
		||||
                    memberRangeExtMap.put(tmpRetail.getPkMember(), tmpRetail);
 | 
			
		||||
                });
 | 
			
		||||
                // 查询血缘会员明细数据(一阶段)
 | 
			
		||||
                iCuMemberRetailDetailService.listMemberRetailDetail(rangeDetailTableName, memberRangeExtMap, queryMemberList, EBonusStage.ONE);
 | 
			
		||||
                // 查询血缘会员明细数据
 | 
			
		||||
                iCuMemberRetailDetailService.listMemberRetailDetailByQuery(rangeDetailTableName, memberRangeExtMap, queryMemberList, eBonusStage);
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -628,8 +632,8 @@ public class CuMemberBonusStageServiceImpl extends ServiceImpl<CuMemberBonusStag
 | 
			
		|||
                retailList.forEach(tmpRetail -> {
 | 
			
		||||
                    memberRangeExtMap.put(tmpRetail.getPkMember(), tmpRetail);
 | 
			
		||||
                });
 | 
			
		||||
                // 查询血缘会员明细数据(一阶段)
 | 
			
		||||
                iCuMemberRetailDetailService.listMemberRetailDetail(rangeDetailTableName, memberRangeExtMap, queryMemberList, EBonusStage.ONE);
 | 
			
		||||
                // 查询血缘会员明细数据
 | 
			
		||||
                iCuMemberRetailDetailService.listMemberRetailDetailByQuery(rangeDetailTableName, memberRangeExtMap, queryMemberList, eBonusStage);
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -12,6 +12,15 @@ import java.util.Map;
 | 
			
		|||
 | 
			
		||||
public class BonusConstants {
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * 赠送2个点位订单金额
 | 
			
		||||
     */
 | 
			
		||||
    public static final BigDecimal GIFT_TWO_AMOUNT = new BigDecimal("20000");
 | 
			
		||||
    /**
 | 
			
		||||
     * 赠送1个点位订单金额
 | 
			
		||||
     */
 | 
			
		||||
    public static final BigDecimal GIFT_ONE_AMOUNT = new BigDecimal("10000");
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * 一阶段奖金 -- 满14,发35
 | 
			
		||||
     */
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -10,9 +10,13 @@
 | 
			
		|||
        <foreach collection="tmpIdList" item="items" open="(" close=")" separator=",">
 | 
			
		||||
            #{items}
 | 
			
		||||
        </foreach>
 | 
			
		||||
        and cmrd.stage = #{stage}
 | 
			
		||||
        and cmrd.stage_status = 1
 | 
			
		||||
        order by cmrd.pk_member, cmrd.child_node
 | 
			
		||||
        <if test="stage != null">
 | 
			
		||||
            and cmrd.stage = #{stage}
 | 
			
		||||
        </if>
 | 
			
		||||
        <if test="stageStatus != null">
 | 
			
		||||
            and cmrd.stage_status = #{stageStatus}
 | 
			
		||||
        </if>
 | 
			
		||||
        order by cmrd.pk_member, cmrd.child_node, cmrd.stage
 | 
			
		||||
    </select>
 | 
			
		||||
 | 
			
		||||
</mapper>
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -51,7 +51,9 @@
 | 
			
		|||
        <result column="rep_team_new_amount" property="repTeamNewAmount"/>
 | 
			
		||||
        <result column="rep_team_new_pv" property="repTeamNewPv"/>
 | 
			
		||||
        <result column="point_count" property="pointCount"/>
 | 
			
		||||
        <result column="wait_point_count" property="waitPointCount"/>
 | 
			
		||||
        <result column="rep_pv_balance" property="repPvBalance"/>
 | 
			
		||||
        <result column="gift_point" property="giftPoint"/>
 | 
			
		||||
 | 
			
		||||
        <result column="AWARDS_VALUE" property="awardsValue"/>
 | 
			
		||||
        <result column="AWARDS_NAME" property="awardsName"/>
 | 
			
		||||
| 
						 | 
				
			
			@ -95,7 +97,9 @@
 | 
			
		|||
            rep_team_new_amount    = 0,
 | 
			
		||||
            rep_team_new_pv        = 0,
 | 
			
		||||
            point_count            = 0,
 | 
			
		||||
            rep_pv_balance         = 0
 | 
			
		||||
            wait_point_count       = 0,
 | 
			
		||||
            rep_pv_balance         = 0,
 | 
			
		||||
            gift_point             = 0
 | 
			
		||||
    </update>
 | 
			
		||||
 | 
			
		||||
    <update id="mergeMemberRetailRangeByYesterday">
 | 
			
		||||
| 
						 | 
				
			
			@ -107,7 +111,8 @@
 | 
			
		|||
        team_consume_pv, team_month_pv,
 | 
			
		||||
        team_consume_amount, team_month_amount,
 | 
			
		||||
        recommend_num, team_num, big_team_pv, small_team_pv,
 | 
			
		||||
        point_count, rep_pv_balance
 | 
			
		||||
        point_count, wait_point_count, rep_pv_balance,
 | 
			
		||||
        gift_point
 | 
			
		||||
        from ${yesterdayRangeTableName}
 | 
			
		||||
        ) b
 | 
			
		||||
        on (a.pk_member = b.pk_member)
 | 
			
		||||
| 
						 | 
				
			
			@ -120,7 +125,9 @@
 | 
			
		|||
        a.team_consume_amount = b.team_consume_amount,
 | 
			
		||||
        a.recommend_num = b.recommend_num, a.team_num = b.team_num,
 | 
			
		||||
        a.big_team_pv = b.big_team_pv, a.small_team_pv = b.small_team_pv,
 | 
			
		||||
        a.point_count = b.point_count, a.rep_pv_balance = b.rep_pv_balance
 | 
			
		||||
        a.point_count = b.point_count, a.wait_point_count = b.wait_point_count,
 | 
			
		||||
        a.rep_pv_balance = b.rep_pv_balance,
 | 
			
		||||
        a.gift_point = b.gift_point
 | 
			
		||||
        <if test="isSameMonth == 0">
 | 
			
		||||
            ,a.month_consume_pv = b.month_consume_pv
 | 
			
		||||
            ,a.month_consume_amount = b.month_consume_amount
 | 
			
		||||
| 
						 | 
				
			
			@ -339,7 +346,8 @@
 | 
			
		|||
            #{item.regTeamNewAmount} reg_team_new_amount, #{item.regTeamNewPv} reg_team_new_pv,
 | 
			
		||||
            #{item.repConsumeNewAmount} rep_consume_new_amount, #{item.repConsumeNewPv} rep_consume_new_pv,
 | 
			
		||||
            #{item.repTeamNewAmount} rep_team_new_amount, #{item.repTeamNewPv} rep_team_new_pv,
 | 
			
		||||
            #{item.pointCount} point_count, #{item.repPvBalance} rep_pv_balance
 | 
			
		||||
            #{item.pointCount} point_count, #{item.waitPointCount} wait_point_count, #{item.repPvBalance} rep_pv_balance,
 | 
			
		||||
            #{item.giftPoint} gift_point
 | 
			
		||||
            from dual
 | 
			
		||||
        </foreach>
 | 
			
		||||
        ) b
 | 
			
		||||
| 
						 | 
				
			
			@ -355,7 +363,8 @@
 | 
			
		|||
        a.reg_team_new_amount = b.reg_team_new_amount, a.reg_team_new_pv = b.reg_team_new_pv,
 | 
			
		||||
        a.rep_consume_new_amount = b.rep_consume_new_amount, a.rep_consume_new_pv = b.rep_consume_new_pv,
 | 
			
		||||
        a.rep_team_new_amount = b.rep_team_new_amount, a.rep_team_new_pv = b.rep_team_new_pv,
 | 
			
		||||
        a.point_count = b.point_count, a.rep_pv_balance = b.rep_pv_balance
 | 
			
		||||
        a.point_count = b.point_count, a.wait_point_count = b.wait_point_count, a.rep_pv_balance = b.rep_pv_balance,
 | 
			
		||||
        a.gift_point = b.gift_point
 | 
			
		||||
    </update>
 | 
			
		||||
 | 
			
		||||
    <!-- 更新会员日结数据 -->
 | 
			
		||||
| 
						 | 
				
			
			@ -671,7 +680,9 @@
 | 
			
		|||
            rep_team_new_amount,
 | 
			
		||||
            rep_team_new_pv,
 | 
			
		||||
            point_count,
 | 
			
		||||
            wait_point_count,
 | 
			
		||||
            rep_pv_balance,
 | 
			
		||||
            gift_point,
 | 
			
		||||
            bw.awards_value,
 | 
			
		||||
            bw.awards_name
 | 
			
		||||
            from (
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -576,7 +576,9 @@
 | 
			
		|||
            rep_team_new_amount    number(17,6) default 0 not null,
 | 
			
		||||
            rep_team_new_pv        number(17,6) default 0 not null,
 | 
			
		||||
            point_count            number(8) default 0 not null,
 | 
			
		||||
            rep_pv_balance         number(17,6) default 0 not null
 | 
			
		||||
            wait_point_count       number(8) default 0 not null,
 | 
			
		||||
            rep_pv_balance         number(17,6) default 0 not null,
 | 
			
		||||
            gift_point               number(2) default 1 not null
 | 
			
		||||
        )
 | 
			
		||||
    </update>
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -3,6 +3,7 @@ package com.hzs.member.base.mapper;
 | 
			
		|||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 | 
			
		||||
import com.hzs.common.domain.member.achieve.CuMemberRetailDetail;
 | 
			
		||||
import com.hzs.member.structure.controller.vo.ChildCodeVO;
 | 
			
		||||
import com.hzs.member.structure.controller.vo.CuMemberPointDetailVO;
 | 
			
		||||
import com.hzs.member.structure.controller.vo.CuMemberThreeFrameworkVO;
 | 
			
		||||
import org.apache.ibatis.annotations.Param;
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -33,8 +34,10 @@ public interface CuMemberRetailDetailMapper extends BaseMapper<CuMemberRetailDet
 | 
			
		|||
                                           @Param("stageStatus")Integer stageStatus,
 | 
			
		||||
                                           @Param("settleTableName")String settleTableName);
 | 
			
		||||
 | 
			
		||||
    List<CuMemberThreeFrameworkVO> getCuMemberRetailDetailList(@Param("settleTableName") String settleTableName,
 | 
			
		||||
                                                               @Param("memberCode") String memberCode,
 | 
			
		||||
                                                               @Param("stage") Integer stage,
 | 
			
		||||
                                                               @Param("stageStatus") Integer stageStatus);
 | 
			
		||||
    CuMemberPointDetailVO getPointDetail(@Param("pointMemberCode") Long pointMemberCode);
 | 
			
		||||
 | 
			
		||||
    List<CuMemberThreeFrameworkVO> getCuMemberRetailDetailDTOList(@Param("settleTableName") String settleTableName,
 | 
			
		||||
                                                                   @Param("memberCode") String memberCode,
 | 
			
		||||
                                                                   @Param("stage") Integer stage,
 | 
			
		||||
                                                                   @Param("stageStatus") Integer stageStatus);
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -3,6 +3,7 @@ package com.hzs.member.base.service;
 | 
			
		|||
import cn.hutool.core.lang.tree.Tree;
 | 
			
		||||
import com.hzs.common.domain.member.achieve.CuMemberRetailDetail;
 | 
			
		||||
import com.hzs.member.structure.controller.vo.ChildCodeVO;
 | 
			
		||||
import com.hzs.member.structure.controller.vo.CuMemberPointDetailVO;
 | 
			
		||||
import com.hzs.member.structure.controller.vo.CuMemberThreeFrameworkVO;
 | 
			
		||||
 | 
			
		||||
import java.util.List;
 | 
			
		||||
| 
						 | 
				
			
			@ -21,4 +22,7 @@ public interface ICumemberRetailDetailService {
 | 
			
		|||
    List<ChildCodeVO> getChildListByUserId(Long userId, Integer stage, Integer stageStatus, String settleTableName);
 | 
			
		||||
 | 
			
		||||
    List<CuMemberThreeFrameworkVO> getCuMemberRetailDetailList(String settleTableName, String memberCode, Integer stage, Integer stageStatus);
 | 
			
		||||
 | 
			
		||||
    CuMemberPointDetailVO getPointDetail(Long pointMemberCode);
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -10,6 +10,7 @@ import com.hzs.member.base.mapper.CuMemberRetailDetailMapper;
 | 
			
		|||
import com.hzs.member.base.service.ICuMemberService;
 | 
			
		||||
import com.hzs.member.base.service.ICumemberRetailDetailService;
 | 
			
		||||
import com.hzs.member.structure.controller.vo.ChildCodeVO;
 | 
			
		||||
import com.hzs.member.structure.controller.vo.CuMemberPointDetailVO;
 | 
			
		||||
import com.hzs.member.structure.controller.vo.CuMemberThreeFrameworkVO;
 | 
			
		||||
import org.springframework.beans.factory.annotation.Autowired;
 | 
			
		||||
import org.springframework.stereotype.Service;
 | 
			
		||||
| 
						 | 
				
			
			@ -106,14 +107,12 @@ public class ICumemberRetailDetailServiceImpl extends ServiceImpl<CuMemberRetail
 | 
			
		|||
 | 
			
		||||
    @Override
 | 
			
		||||
    public List<CuMemberThreeFrameworkVO> getCuMemberRetailDetailList(String settleTableName, String memberCode, Integer stage, Integer stageStatus) {
 | 
			
		||||
        List<CuMemberThreeFrameworkVO> cuMemberRetailDetailList = baseMapper.getCuMemberRetailDetailList(settleTableName, memberCode, stage, stageStatus);
 | 
			
		||||
        if (cuMemberRetailDetailList == null || cuMemberRetailDetailList.isEmpty()) {
 | 
			
		||||
            return null;
 | 
			
		||||
        }else {
 | 
			
		||||
            // 构建map
 | 
			
		||||
            cuMemberRetailDetailList.forEach(CuMemberThreeFrameworkVO::buildMemberMaps);
 | 
			
		||||
        }
 | 
			
		||||
        return cuMemberRetailDetailList;
 | 
			
		||||
        return baseMapper.getCuMemberRetailDetailDTOList(settleTableName, memberCode, stage, stageStatus);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    @Override
 | 
			
		||||
    public CuMemberPointDetailVO getPointDetail(Long pointMemberCode) {
 | 
			
		||||
        return baseMapper.getPointDetail(pointMemberCode);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    private Map<String, Object> makeNode(String id, String parentId, String label,Integer pointMember,
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -9,11 +9,15 @@ import com.hzs.common.core.web.controller.BaseController;
 | 
			
		|||
import com.hzs.common.core.web.domain.AjaxResult;
 | 
			
		||||
import com.hzs.common.domain.member.achieve.CuMemberRetailDetail;
 | 
			
		||||
import com.hzs.common.domain.member.achieve.CuMemberSettlePeriod;
 | 
			
		||||
import com.hzs.common.domain.member.base.CuMember;
 | 
			
		||||
import com.hzs.common.security.service.UserTokenService;
 | 
			
		||||
import com.hzs.common.security.utils.SecurityUtils;
 | 
			
		||||
import com.hzs.member.achieve.service.ICuMemberSettlePeriodService;
 | 
			
		||||
import com.hzs.member.base.service.ICuMemberService;
 | 
			
		||||
import com.hzs.member.base.service.ICumemberRetailDetailService;
 | 
			
		||||
import com.hzs.member.structure.controller.vo.ChildCodeVO;
 | 
			
		||||
import com.hzs.member.structure.controller.vo.CuMemberPointDetailVO;
 | 
			
		||||
import com.hzs.member.structure.controller.vo.CuMemberThreeFrameworkVO;
 | 
			
		||||
import com.hzs.system.sys.dto.LoginUser;
 | 
			
		||||
import lombok.extern.slf4j.Slf4j;
 | 
			
		||||
import org.springframework.beans.factory.annotation.Autowired;
 | 
			
		||||
| 
						 | 
				
			
			@ -46,6 +50,9 @@ public class ApiMemberStructureController extends BaseController {
 | 
			
		|||
    @Autowired
 | 
			
		||||
    ICumemberRetailDetailService iCumemberRetailDetailService;
 | 
			
		||||
 | 
			
		||||
    @Autowired
 | 
			
		||||
    ICuMemberService iCuMemberService;
 | 
			
		||||
 | 
			
		||||
    @Log(module = EOperationModule.MEMBER_RETAIL_TREE, business = EOperationBusiness.MEMBER_RETAIL_TREE, method = EOperationMethod.SELECT)
 | 
			
		||||
    @GetMapping("/three-framework")
 | 
			
		||||
    public AjaxResult Framework(Integer stage,String childNode,Integer stageStatus) {
 | 
			
		||||
| 
						 | 
				
			
			@ -116,6 +123,51 @@ public class ApiMemberStructureController extends BaseController {
 | 
			
		|||
        return AjaxResult.success(childCodeList);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    @Log(module = EOperationModule.MEMBER_RETAIL_TREE_LIST, business = EOperationBusiness.MEMBER_RETAIL_TREE_LIST, method = EOperationMethod.SELECT)
 | 
			
		||||
    @GetMapping("/three-framework-list")
 | 
			
		||||
    public AjaxResult threeFrameworkList(Integer stage,Integer stageStatus) {
 | 
			
		||||
        if (stage == null) {
 | 
			
		||||
            log.error("参数错误");
 | 
			
		||||
            return AjaxResult.error(CommonMsgConstants.MISSING_PARAM);
 | 
			
		||||
        }
 | 
			
		||||
        Long userId = SecurityUtils.getUserId();
 | 
			
		||||
        if (userId == null) {
 | 
			
		||||
            log.error("用户登录信息错误");
 | 
			
		||||
            return AjaxResult.error(CommonMsgConstants.MISSING_PARAM);
 | 
			
		||||
        }
 | 
			
		||||
        // 获取当前时间 -1 天
 | 
			
		||||
        String yesterday  = LocalDate.now().minusDays(1).format((DateTimeFormatter.ofPattern("yyyy-MM-dd")));
 | 
			
		||||
        // 查询相关日结表
 | 
			
		||||
        CuMemberSettlePeriod csPeriod = iCuMemberSettlePeriodService.getCuMemberSettlePeriodByDate(yesterday);
 | 
			
		||||
        log.info("日结信息{}",csPeriod);
 | 
			
		||||
        String settleTableName = TableNameConstants.CU_MEMBER_RETAIL_RANGE_DETAIL + csPeriod.getPkId();
 | 
			
		||||
        log.info("日结表名称{}",settleTableName);
 | 
			
		||||
        // 校验当前日结表是否存在
 | 
			
		||||
        Integer isFind = iCumemberRetailDetailService.getFindCumemberRetailDetail(settleTableName);
 | 
			
		||||
        if (isFind == null || isFind != 1) {
 | 
			
		||||
            log.error("当前会员日结信息不存在{}",settleTableName);
 | 
			
		||||
            return AjaxResult.error("数据查询错误,请联系客服处理");
 | 
			
		||||
        }
 | 
			
		||||
        startPage();
 | 
			
		||||
        // 查询当前会员所有子点位信息
 | 
			
		||||
        CuMember member = iCuMemberService.getMember(userId);
 | 
			
		||||
        List<CuMemberThreeFrameworkVO> cuMemberThreeFrameworkVOS = iCumemberRetailDetailService.getCuMemberRetailDetailList(settleTableName,member.getMemberCode(),stage,stageStatus);
 | 
			
		||||
        return AjaxResult.success(getDataTable(cuMemberThreeFrameworkVOS));
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    @Log(module = EOperationModule.MEMBER_RETAIL_TREE_LIST, business = EOperationBusiness.MEMBER_RETAIL_TREE_LIST, method = EOperationMethod.SELECT)
 | 
			
		||||
    @GetMapping("/pointDetail")
 | 
			
		||||
    public AjaxResult pointDetail(Long pointMemberCode) {
 | 
			
		||||
        if (pointMemberCode == null) {
 | 
			
		||||
            log.error("参数错误");
 | 
			
		||||
            return AjaxResult.error(CommonMsgConstants.MISSING_PARAM);
 | 
			
		||||
        }
 | 
			
		||||
        CuMemberPointDetailVO cuMemberPointDetailVO = iCumemberRetailDetailService.getPointDetail(pointMemberCode);
 | 
			
		||||
        if (cuMemberPointDetailVO == null) {
 | 
			
		||||
            return null;
 | 
			
		||||
        }
 | 
			
		||||
        return AjaxResult.success(cuMemberPointDetailVO);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
//    @Autowired
 | 
			
		||||
//    private ITransactionCommonService iTransactionCommonService;
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -33,6 +33,7 @@ import com.hzs.member.achieve.service.ICuMemberTreeService;
 | 
			
		|||
import com.hzs.member.base.service.ICuMemberService;
 | 
			
		||||
import com.hzs.member.base.service.ICumemberRetailDetailService;
 | 
			
		||||
import com.hzs.member.structure.controller.vo.ChildCodeVO;
 | 
			
		||||
import com.hzs.member.structure.controller.vo.CuMemberPointDetailVO;
 | 
			
		||||
import com.hzs.member.structure.controller.vo.CuMemberSettlePeriodVo;
 | 
			
		||||
import com.hzs.member.structure.controller.vo.CuMemberThreeFrameworkVO;
 | 
			
		||||
import com.hzs.system.config.IGradeServiceApi;
 | 
			
		||||
| 
						 | 
				
			
			@ -274,6 +275,20 @@ public class MemberStructureController extends BaseController {
 | 
			
		|||
        return AjaxResult.success(getDataTable(cuMemberThreeFrameworkVOS));
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    @Log(module = EOperationModule.MEMBER_RETAIL_TREE_LIST, business = EOperationBusiness.MEMBER_RETAIL_TREE_LIST, method = EOperationMethod.SELECT)
 | 
			
		||||
    @GetMapping("/pointDetail")
 | 
			
		||||
    public AjaxResult pointDetail(Long pointMemberCode) {
 | 
			
		||||
        if (pointMemberCode == null) {
 | 
			
		||||
            log.error("参数错误");
 | 
			
		||||
            return AjaxResult.error(CommonMsgConstants.MISSING_PARAM);
 | 
			
		||||
        }
 | 
			
		||||
        CuMemberPointDetailVO cuMemberPointDetailVO = iCumemberRetailDetailService.getPointDetail(pointMemberCode);
 | 
			
		||||
        if (cuMemberPointDetailVO == null) {
 | 
			
		||||
            return null;
 | 
			
		||||
        }
 | 
			
		||||
        return AjaxResult.success(cuMemberPointDetailVO);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * 查询子节点
 | 
			
		||||
     * @param memberSettlePeriodId
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -0,0 +1,29 @@
 | 
			
		|||
package com.hzs.member.structure.controller.vo;
 | 
			
		||||
 | 
			
		||||
import com.fasterxml.jackson.annotation.JsonInclude;
 | 
			
		||||
import lombok.AllArgsConstructor;
 | 
			
		||||
import lombok.Data;
 | 
			
		||||
import lombok.NoArgsConstructor;
 | 
			
		||||
 | 
			
		||||
@Data
 | 
			
		||||
@AllArgsConstructor
 | 
			
		||||
@NoArgsConstructor
 | 
			
		||||
@JsonInclude(JsonInclude.Include.ALWAYS)
 | 
			
		||||
public class CuMemberPointDetailVO {
 | 
			
		||||
    /**
 | 
			
		||||
     * 会员编号
 | 
			
		||||
     */
 | 
			
		||||
    private String memberCode;
 | 
			
		||||
    /**
 | 
			
		||||
     * 会员姓名
 | 
			
		||||
     */
 | 
			
		||||
    private String memberName;
 | 
			
		||||
    /**
 | 
			
		||||
     * 荣誉奖衔
 | 
			
		||||
     */
 | 
			
		||||
    private String awardsName;
 | 
			
		||||
    /**
 | 
			
		||||
     * 隶属体系
 | 
			
		||||
     */
 | 
			
		||||
    private String vertexName;
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			@ -1,182 +1,159 @@
 | 
			
		|||
package com.hzs.member.structure.controller.vo;
 | 
			
		||||
 | 
			
		||||
import com.baomidou.mybatisplus.annotation.TableField;
 | 
			
		||||
import com.fasterxml.jackson.annotation.JsonFormat;
 | 
			
		||||
import com.fasterxml.jackson.annotation.JsonInclude;
 | 
			
		||||
import lombok.AllArgsConstructor;
 | 
			
		||||
import lombok.Data;
 | 
			
		||||
import lombok.NoArgsConstructor;
 | 
			
		||||
 | 
			
		||||
import java.util.Date;
 | 
			
		||||
import java.util.HashMap;
 | 
			
		||||
import java.io.Serializable;
 | 
			
		||||
 | 
			
		||||
@Data
 | 
			
		||||
@AllArgsConstructor
 | 
			
		||||
@NoArgsConstructor
 | 
			
		||||
public class CuMemberThreeFrameworkVO {
 | 
			
		||||
@JsonInclude(JsonInclude.Include.ALWAYS)
 | 
			
		||||
public class CuMemberThreeFrameworkVO implements Serializable {
 | 
			
		||||
 | 
			
		||||
    private static final long serialVersionUID = 1L;
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * 阶段状态(0=已完成,1=未完成)
 | 
			
		||||
     */
 | 
			
		||||
    private Integer stageStatus;
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * 阶段完成时间
 | 
			
		||||
     * 阶段
 | 
			
		||||
     */
 | 
			
		||||
    private Date stageDate;
 | 
			
		||||
    private Integer stage;
 | 
			
		||||
    /**
 | 
			
		||||
     * 子点位
 | 
			
		||||
     */
 | 
			
		||||
    private Integer childNode;
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * 点位1-1会员ID
 | 
			
		||||
     */
 | 
			
		||||
    private Long pointMember11;
 | 
			
		||||
    private String pointMemberName11;
 | 
			
		||||
    /**
 | 
			
		||||
     * 点位1-1会员子节点
 | 
			
		||||
     * 点位1-1会员ID
 | 
			
		||||
     */
 | 
			
		||||
    private String point11;
 | 
			
		||||
    private String pointMemberCode11;
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * 点位1-2会员ID
 | 
			
		||||
     */
 | 
			
		||||
    private Long pointMember12;
 | 
			
		||||
    private String pointMemberName12;
 | 
			
		||||
    /**
 | 
			
		||||
     * 点位1-2会员子节点
 | 
			
		||||
     * 点位1-1会员ID
 | 
			
		||||
     */
 | 
			
		||||
    private String point12;
 | 
			
		||||
    private String pointMemberCode12;
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * 点位2-1会员ID
 | 
			
		||||
     */
 | 
			
		||||
    private Long pointMember21;
 | 
			
		||||
    private String pointMemberName21;
 | 
			
		||||
    /**
 | 
			
		||||
     * 点位2-1会员子节点
 | 
			
		||||
     * 点位1-1会员ID
 | 
			
		||||
     */
 | 
			
		||||
    private String point21;
 | 
			
		||||
    private String pointMemberCode21;
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * 点位2-2会员ID
 | 
			
		||||
     */
 | 
			
		||||
    private Long pointMember22;
 | 
			
		||||
    private String pointMemberName22;
 | 
			
		||||
    /**
 | 
			
		||||
     * 点位2-2会员子节点
 | 
			
		||||
     * 点位1-1会员ID
 | 
			
		||||
     */
 | 
			
		||||
    private String point22;
 | 
			
		||||
    private String pointMemberCode22;
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * 点位2-3会员ID
 | 
			
		||||
     */
 | 
			
		||||
    private Long pointMember23;
 | 
			
		||||
    private String pointMemberName23;
 | 
			
		||||
    /**
 | 
			
		||||
     * 点位2-3会员子节点
 | 
			
		||||
     * 点位1-1会员ID
 | 
			
		||||
     */
 | 
			
		||||
    private String point23;
 | 
			
		||||
    private String pointMemberCode23;
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * 点位2-4会员ID
 | 
			
		||||
     */
 | 
			
		||||
    private Long pointMember24;
 | 
			
		||||
    private String pointMemberName24;
 | 
			
		||||
    /**
 | 
			
		||||
     * 点位2-4会员子节点
 | 
			
		||||
     * 点位1-1会员ID
 | 
			
		||||
     */
 | 
			
		||||
    private String point24;
 | 
			
		||||
    private String pointMemberCode24;
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * 点位3-1会员ID
 | 
			
		||||
     */
 | 
			
		||||
    private Long pointMember31;
 | 
			
		||||
    private String pointMemberName31;
 | 
			
		||||
    /**
 | 
			
		||||
     * 点位3-1会员子节点
 | 
			
		||||
     * 点位1-1会员ID
 | 
			
		||||
     */
 | 
			
		||||
    private String point31;
 | 
			
		||||
    private String pointMemberCode31;
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * 点位3-2会员ID
 | 
			
		||||
     */
 | 
			
		||||
    private Long pointMember32;
 | 
			
		||||
    private String pointMemberName32;
 | 
			
		||||
    /**
 | 
			
		||||
     * 点位3-2会员子节点
 | 
			
		||||
     * 点位1-1会员ID
 | 
			
		||||
     */
 | 
			
		||||
    private String point32;
 | 
			
		||||
    private String pointMemberCode32;
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * 点位3-3会员ID
 | 
			
		||||
     */
 | 
			
		||||
    private Long pointMember33;
 | 
			
		||||
    private String pointMemberName33;
 | 
			
		||||
    /**
 | 
			
		||||
     * 点位3-3会员子节点
 | 
			
		||||
     * 点位1-1会员ID
 | 
			
		||||
     */
 | 
			
		||||
    private String point33;
 | 
			
		||||
    private String pointMemberCode33;
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * 点位3-4会员ID
 | 
			
		||||
     */
 | 
			
		||||
    private Long pointMember34;
 | 
			
		||||
    private String pointMemberName34;
 | 
			
		||||
    /**
 | 
			
		||||
     * 点位3-4会员子节点
 | 
			
		||||
     * 点位1-1会员ID
 | 
			
		||||
     */
 | 
			
		||||
    private String point34;
 | 
			
		||||
    private String pointMemberCode34;
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * 点位3-5会员ID
 | 
			
		||||
     */
 | 
			
		||||
    private Long pointMember35;
 | 
			
		||||
    private String pointMemberName35;
 | 
			
		||||
    /**
 | 
			
		||||
     * 点位3-5会员子节点
 | 
			
		||||
     * 点位1-1会员ID
 | 
			
		||||
     */
 | 
			
		||||
    private String point35;
 | 
			
		||||
    private String pointMemberCode35;
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * 点位3-6会员ID
 | 
			
		||||
     */
 | 
			
		||||
    private Long pointMember36;
 | 
			
		||||
    private String pointMemberName36;
 | 
			
		||||
    /**
 | 
			
		||||
     * 点位3-6会员子节点
 | 
			
		||||
     * 点位1-1会员ID
 | 
			
		||||
     */
 | 
			
		||||
    private String point36;
 | 
			
		||||
    private String pointMemberCode36;
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * 点位3-7会员ID
 | 
			
		||||
     */
 | 
			
		||||
    private Long pointMember37;
 | 
			
		||||
    private String pointMemberName37;
 | 
			
		||||
    /**
 | 
			
		||||
     * 点位3-7会员子节点
 | 
			
		||||
     * 点位1-1会员ID
 | 
			
		||||
     */
 | 
			
		||||
    private String point37;
 | 
			
		||||
    private String pointMemberCode37;
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * 点位3-8会员ID
 | 
			
		||||
     */
 | 
			
		||||
    private Long pointMember38;
 | 
			
		||||
    private String pointMemberName38;
 | 
			
		||||
    /**
 | 
			
		||||
     * 点位3-8会员子节点
 | 
			
		||||
     * 点位1-1会员ID
 | 
			
		||||
     */
 | 
			
		||||
    private String point38;
 | 
			
		||||
 | 
			
		||||
    @TableField(exist = false)
 | 
			
		||||
    HashMap<String,Long> memberMaps = new HashMap<>(14);
 | 
			
		||||
 | 
			
		||||
    public void buildMemberMaps() {
 | 
			
		||||
        memberMaps.clear();
 | 
			
		||||
 | 
			
		||||
        putIntoMap(point11, pointMember11);
 | 
			
		||||
        putIntoMap(point12, pointMember12);
 | 
			
		||||
        putIntoMap(point21, pointMember21);
 | 
			
		||||
        putIntoMap(point22, pointMember22);
 | 
			
		||||
        putIntoMap(point23, pointMember23);
 | 
			
		||||
        putIntoMap(point24, pointMember24);
 | 
			
		||||
        putIntoMap(point31, pointMember31);
 | 
			
		||||
        putIntoMap(point32, pointMember32);
 | 
			
		||||
        putIntoMap(point33, pointMember33);
 | 
			
		||||
        putIntoMap(point34, pointMember34);
 | 
			
		||||
        putIntoMap(point35, pointMember35);
 | 
			
		||||
        putIntoMap(point36, pointMember36);
 | 
			
		||||
        putIntoMap(point37, pointMember37);
 | 
			
		||||
        putIntoMap(point38, pointMember38);
 | 
			
		||||
    }
 | 
			
		||||
    private void putIntoMap(String key, Long value) {
 | 
			
		||||
        memberMaps.put(key != null ? key : "", value);
 | 
			
		||||
    }
 | 
			
		||||
    private String pointMemberCode38;
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -62,41 +62,98 @@
 | 
			
		|||
            and cud.STAGE_STATUS = #{stageStatus}
 | 
			
		||||
        </if>
 | 
			
		||||
    </select>
 | 
			
		||||
    <select id="getCuMemberRetailDetailList"
 | 
			
		||||
    <select id="getPointDetail" resultType="com.hzs.member.structure.controller.vo.CuMemberPointDetailVO">
 | 
			
		||||
        SELECT
 | 
			
		||||
            cu.MEMBER_CODE,
 | 
			
		||||
            cu.MEMBER_NAME,
 | 
			
		||||
            ba.AWARDS_NAME AS awardsName,
 | 
			
		||||
            bv.VERTEX_NAME AS vertexName
 | 
			
		||||
        FROM
 | 
			
		||||
            CU_MEMBER cu
 | 
			
		||||
                LEFT JOIN BD_AWARDS ba ON cu.PK_AWARDS = ba.PK_ID
 | 
			
		||||
                LEFT JOIN BD_VERTEX bv ON cu.PK_VERTEX = bv.PK_ID
 | 
			
		||||
        WHERE
 | 
			
		||||
            cu.PK_ID = #{pointMemberCode}
 | 
			
		||||
    </select>
 | 
			
		||||
    <select id="getCuMemberRetailDetailDTOList"
 | 
			
		||||
            resultType="com.hzs.member.structure.controller.vo.CuMemberThreeFrameworkVO">
 | 
			
		||||
        SELECT
 | 
			
		||||
            curd.STAGE_STATUS,
 | 
			
		||||
            curd.STAGE_DATE,
 | 
			
		||||
            '1-1' AS point11,
 | 
			
		||||
            curd.POINT_MEMBER_11 AS pointMember11,
 | 
			
		||||
            '1-2' AS point12,
 | 
			
		||||
            curd.POINT_MEMBER_12 AS pointMember12,
 | 
			
		||||
            '2-1' AS point21,
 | 
			
		||||
            curd.POINT_MEMBER_21 AS pointMember21,
 | 
			
		||||
            '2-2' AS point22,
 | 
			
		||||
            curd.POINT_MEMBER_22 AS pointMember22,
 | 
			
		||||
            '2-3' AS point23,
 | 
			
		||||
            curd.POINT_MEMBER_23 AS pointMember23,
 | 
			
		||||
            '2-4' AS point24,
 | 
			
		||||
            curd.POINT_MEMBER_24 AS pointMember24,
 | 
			
		||||
            '3-1' AS point31,
 | 
			
		||||
            curd.POINT_MEMBER_31 AS pointMember31,
 | 
			
		||||
            '3-2' AS point32,
 | 
			
		||||
            curd.POINT_MEMBER_32 AS pointMember32,
 | 
			
		||||
            '3-3' AS point33,
 | 
			
		||||
            curd.POINT_MEMBER_33 AS pointMember33,
 | 
			
		||||
            '3-4' AS point34,
 | 
			
		||||
            curd.POINT_MEMBER_34 AS pointMember34,
 | 
			
		||||
            '3-5' AS point35,
 | 
			
		||||
            curd.POINT_MEMBER_35 AS pointMember35,
 | 
			
		||||
            '3-6' AS point36,
 | 
			
		||||
            curd.POINT_MEMBER_36 AS pointMember36,
 | 
			
		||||
            '3-7' AS point37,
 | 
			
		||||
            curd.POINT_MEMBER_37 AS pointMember37,
 | 
			
		||||
            '3-8' AS point38,
 | 
			
		||||
            curd.POINT_MEMBER_38 AS pointMember38
 | 
			
		||||
            curd.CHILD_NODE,
 | 
			
		||||
            curd.STAGE,
 | 
			
		||||
            curd.POINT_MEMBER_11 as pointMemberCode11,
 | 
			
		||||
            curd.POINT_MEMBER_12 as pointMemberCode12,
 | 
			
		||||
            curd.POINT_MEMBER_21 as pointMemberCode21,
 | 
			
		||||
            curd.POINT_MEMBER_22 as pointMemberCode22,
 | 
			
		||||
            curd.POINT_MEMBER_23 as pointMemberCode23,
 | 
			
		||||
            curd.POINT_MEMBER_24 as pointMemberCode24,
 | 
			
		||||
            curd.POINT_MEMBER_31 as pointMemberCode31,
 | 
			
		||||
            curd.POINT_MEMBER_32 as pointMemberCode32,
 | 
			
		||||
            curd.POINT_MEMBER_33 as pointMemberCode33,
 | 
			
		||||
            curd.POINT_MEMBER_34 as pointMemberCode34,
 | 
			
		||||
            curd.POINT_MEMBER_35 as pointMemberCode35,
 | 
			
		||||
            curd.POINT_MEMBER_36 as pointMemberCode36,
 | 
			
		||||
            curd.POINT_MEMBER_37 as pointMemberCode37,
 | 
			
		||||
            curd.POINT_MEMBER_38 as pointMemberCode38,
 | 
			
		||||
            CASE
 | 
			
		||||
                WHEN curd.POINT_11 IS NULL THEN NULL
 | 
			
		||||
                ELSE cu.MEMBER_NAME || '-' || curd.POINT_11
 | 
			
		||||
                END AS pointMemberName11,
 | 
			
		||||
            CASE
 | 
			
		||||
                WHEN curd.POINT_12 IS NULL THEN NULL
 | 
			
		||||
                ELSE cu.MEMBER_NAME || '-' || curd.POINT_12
 | 
			
		||||
                END AS pointMemberName12,
 | 
			
		||||
            CASE
 | 
			
		||||
                WHEN curd.POINT_21 IS NULL THEN NULL
 | 
			
		||||
                ELSE cu.MEMBER_NAME || '-' || curd.POINT_21
 | 
			
		||||
                END AS pointMemberName21,
 | 
			
		||||
            CASE
 | 
			
		||||
                WHEN curd.POINT_22 IS NULL THEN NULL
 | 
			
		||||
                ELSE cu.MEMBER_NAME || '-' || curd.POINT_22
 | 
			
		||||
                END AS pointMemberName22,
 | 
			
		||||
            CASE
 | 
			
		||||
                WHEN curd.POINT_23 IS NULL THEN NULL
 | 
			
		||||
                ELSE cu.MEMBER_NAME || '-' || curd.POINT_23
 | 
			
		||||
                END AS pointMemberName23,
 | 
			
		||||
            CASE
 | 
			
		||||
                WHEN curd.POINT_24 IS NULL THEN NULL
 | 
			
		||||
                ELSE cu.MEMBER_NAME || '-' || curd.POINT_24
 | 
			
		||||
                END AS pointMemberName24,
 | 
			
		||||
            CASE
 | 
			
		||||
                WHEN curd.POINT_31 IS NULL THEN NULL
 | 
			
		||||
                ELSE cu.MEMBER_NAME || '-' || curd.POINT_31
 | 
			
		||||
                END AS pointMemberName31,
 | 
			
		||||
            CASE
 | 
			
		||||
                WHEN curd.POINT_32 IS NULL THEN NULL
 | 
			
		||||
                ELSE cu.MEMBER_NAME || '-' || curd.POINT_32
 | 
			
		||||
                END AS pointMemberName32,
 | 
			
		||||
            CASE
 | 
			
		||||
                WHEN curd.POINT_33 IS NULL THEN NULL
 | 
			
		||||
                ELSE cu.MEMBER_NAME || '-' || curd.POINT_33
 | 
			
		||||
                END AS pointMemberName33,
 | 
			
		||||
            CASE
 | 
			
		||||
                WHEN curd.POINT_34 IS NULL THEN NULL
 | 
			
		||||
                ELSE cu.MEMBER_NAME || '-' || curd.POINT_34
 | 
			
		||||
                END AS pointMemberName34,
 | 
			
		||||
            CASE
 | 
			
		||||
                WHEN curd.POINT_35 IS NULL THEN NULL
 | 
			
		||||
                ELSE cu.MEMBER_NAME || '-' || curd.POINT_35
 | 
			
		||||
                END AS pointMemberName35,
 | 
			
		||||
            CASE
 | 
			
		||||
                WHEN curd.POINT_36 IS NULL THEN NULL
 | 
			
		||||
                ELSE cu.MEMBER_NAME || '-' || curd.POINT_36
 | 
			
		||||
                END AS pointMemberName36,
 | 
			
		||||
            CASE
 | 
			
		||||
                WHEN curd.POINT_37 IS NULL THEN NULL
 | 
			
		||||
                ELSE cu.MEMBER_NAME || '-' || curd.POINT_37
 | 
			
		||||
                END AS pointMemberName37,
 | 
			
		||||
            CASE
 | 
			
		||||
                WHEN curd.POINT_38 IS NULL THEN NULL
 | 
			
		||||
                ELSE cu.MEMBER_NAME || '-' || curd.POINT_38
 | 
			
		||||
                END AS pointMemberName38
 | 
			
		||||
        FROM
 | 
			
		||||
            #{settleTableName} curd
 | 
			
		||||
            ${settleTableName} curd
 | 
			
		||||
                LEFT JOIN CU_MEMBER cu ON curd.PK_MEMBER = cu.PK_ID
 | 
			
		||||
        WHERE
 | 
			
		||||
            cu.MEMBER_CODE = #{memberCode}
 | 
			
		||||
| 
						 | 
				
			
			@ -104,5 +161,7 @@
 | 
			
		|||
        <if test="stageStatus != null">
 | 
			
		||||
            and curd.STAGE_STATUS = #{stageStatus}
 | 
			
		||||
        </if>
 | 
			
		||||
        ORDER BY
 | 
			
		||||
            curd.CHILD_NODE
 | 
			
		||||
    </select>
 | 
			
		||||
</mapper>
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -194,6 +194,11 @@ public class CuMemberRetailRange extends BaseEntity {
 | 
			
		|||
     */
 | 
			
		||||
    @TableField("point_count")
 | 
			
		||||
    private Integer pointCount;
 | 
			
		||||
    /**
 | 
			
		||||
     * 待激活子点位数
 | 
			
		||||
     */
 | 
			
		||||
    @TableField("WAIT_POINT_COUNT")
 | 
			
		||||
    private Integer waitPointCount;
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * 复购业绩余额
 | 
			
		||||
| 
						 | 
				
			
			@ -201,4 +206,10 @@ public class CuMemberRetailRange extends BaseEntity {
 | 
			
		|||
    @TableField("REP_PV_BALANCE")
 | 
			
		||||
    private BigDecimal repPvBalance;
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * 赠送几个点位
 | 
			
		||||
     */
 | 
			
		||||
    @TableField("GIFT_POINT")
 | 
			
		||||
    private Integer giftPoint;
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue