Compare commits
	
		
			2 Commits
		
	
	
		
			619e6f1006
			...
			08bc71c55f
		
	
	| Author | SHA1 | Date | 
|---|---|---|
| 
							
							
								
								 | 
						08bc71c55f | |
| 
							
							
								
								 | 
						abe46ad69e | 
| 
						 | 
				
			
			@ -4,15 +4,14 @@ import cn.hutool.core.collection.CollectionUtil;
 | 
			
		|||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 | 
			
		||||
import com.hzs.bonus.achieve.mapper.CuMemberRetailRangeMapper;
 | 
			
		||||
import com.hzs.bonus.achieve.service.ICuMemberRetailRangeService;
 | 
			
		||||
import com.hzs.bonus.achieve.service.ICuMemberTreeService;
 | 
			
		||||
import com.hzs.common.core.constant.MagicNumberConstants;
 | 
			
		||||
import com.hzs.common.core.enums.EOrderType;
 | 
			
		||||
import com.hzs.common.domain.member.achieve.CuMemberRetailDetail;
 | 
			
		||||
import com.hzs.common.domain.member.achieve.CuMemberRetailRange;
 | 
			
		||||
import com.hzs.common.domain.member.achieve.ext.CuMemberRetailRangeExt;
 | 
			
		||||
import com.hzs.common.domain.member.base.CuMember;
 | 
			
		||||
import com.hzs.common.domain.member.ext.CuMemberExt;
 | 
			
		||||
import com.hzs.common.domain.sale.ext.SaOrderExt;
 | 
			
		||||
import org.apache.ibatis.annotations.Param;
 | 
			
		||||
import org.springframework.beans.factory.annotation.Autowired;
 | 
			
		||||
import org.springframework.stereotype.Service;
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -27,6 +26,8 @@ public class CuMemberRetailRangeServiceImpl extends ServiceImpl<CuMemberRetailRa
 | 
			
		|||
 | 
			
		||||
    @Autowired
 | 
			
		||||
    private CuMemberBonusSettle cuMemberBonusSettle;
 | 
			
		||||
    @Autowired
 | 
			
		||||
    private ICuMemberTreeService iCuMemberTreeService;
 | 
			
		||||
 | 
			
		||||
    @Override
 | 
			
		||||
    public void mergeMemberRetailRangeByYesterday(String rangeTableName, String yesterdayRangeTableName, Boolean isSameMonth) {
 | 
			
		||||
| 
						 | 
				
			
			@ -42,6 +43,9 @@ public class CuMemberRetailRangeServiceImpl extends ServiceImpl<CuMemberRetailRa
 | 
			
		|||
 | 
			
		||||
    @Override
 | 
			
		||||
    public void mergeMemberRetailRangeDetailByYesterday(String detailTableName, String yesterdayDetailTableName) {
 | 
			
		||||
        // 清空当前明细表
 | 
			
		||||
        iCuMemberTreeService.truncateCuMemberTreeTable(detailTableName);
 | 
			
		||||
        // 用昨天的数据初始化当前明细表
 | 
			
		||||
        baseMapper.mergeMemberRetailRangeDetailByYesterday(detailTableName, yesterdayDetailTableName);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -94,15 +98,21 @@ public class CuMemberRetailRangeServiceImpl extends ServiceImpl<CuMemberRetailRa
 | 
			
		|||
        Collection<CuMemberRetailDetail> retailDetailColl = new ArrayList<>();
 | 
			
		||||
        memberRangeExtMap.forEach((key, value) -> {
 | 
			
		||||
            if (null != value.getOneDetailMap() && value.getOneDetailMap().size() > 0) {
 | 
			
		||||
                retailDetailColl.addAll(value.getOneDetailMap().values());
 | 
			
		||||
                Collection<CuMemberRetailDetail> tmpDetailColl = value.getOneDetailMap().values();
 | 
			
		||||
                for (CuMemberRetailDetail cuMemberRetailDetail : tmpDetailColl) {
 | 
			
		||||
                    // 只有需要更新的才进行入库操作
 | 
			
		||||
                    if (null != cuMemberRetailDetail.getUpdateBool()) {
 | 
			
		||||
                        retailDetailColl.add(cuMemberRetailDetail);
 | 
			
		||||
                    }
 | 
			
		||||
                }
 | 
			
		||||
            }
 | 
			
		||||
        });
 | 
			
		||||
        List<List<?>> list = cuMemberBonusSettle.handleCutList(retailDetailColl);
 | 
			
		||||
            list.forEach(tmpList -> {
 | 
			
		||||
                if (CollectionUtil.isNotEmpty(tmpList)) {
 | 
			
		||||
                    baseMapper.mergeCuMemberRetailDetail(rangeDetailTableName, tmpList);
 | 
			
		||||
                }
 | 
			
		||||
            });
 | 
			
		||||
        list.forEach(tmpList -> {
 | 
			
		||||
            if (CollectionUtil.isNotEmpty(tmpList)) {
 | 
			
		||||
                baseMapper.mergeCuMemberRetailDetail(rangeDetailTableName, tmpList);
 | 
			
		||||
            }
 | 
			
		||||
        });
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    @Override
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -37,6 +37,12 @@ public interface ICuMemberBonusStageService extends IService<CuMemberBonusStage>
 | 
			
		|||
     */
 | 
			
		||||
    String fillChildNode(CuMemberRetailDetail cuMemberRetailDetail, CuMemberRetailDetail newRetailDetail);
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * 填充指定点位
 | 
			
		||||
     */
 | 
			
		||||
    void fillRetailDetail(CuMemberRetailDetail targetRetailDetail, String point,
 | 
			
		||||
                          Long pkMember, Integer childNode);
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * 处理新点位是推荐第一层
 | 
			
		||||
     */
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -278,7 +278,7 @@ public class BonusSettleRangeHandle extends BonusSettleHandle {
 | 
			
		|||
        Date settleEndDate = DateUtils.afterDate(1, ChronoUnit.DAYS, settleStartDate);
 | 
			
		||||
 | 
			
		||||
        // 新零售订单(注册、复购)
 | 
			
		||||
        List<SaOrderExt> orderList = iBonusOrderService.listRetailSaOrder(settleStartDate, settleEndDate, null, Arrays.asList(EOrderType.RETAIL_REGISTER.getValue(), EOrderType.RETAIL_REPURCHASE.getValue()));
 | 
			
		||||
        List<SaOrderExt> orderList = iBonusOrderService.listRetailSaOrder(settleStartDate, settleEndDate, null, Arrays.asList(EOrderType.RETAIL_REGISTER.getValue(), EOrderType.RETAIL_UPGRADE.getValue(), EOrderType.RETAIL_REPURCHASE.getValue()));
 | 
			
		||||
 | 
			
		||||
        // 更新当月会员, 将昨天业绩更到到今天,更新当月会员考核结果,有消费的考核通过
 | 
			
		||||
        // 结算期间表
 | 
			
		||||
| 
						 | 
				
			
			@ -371,6 +371,7 @@ public class BonusSettleRangeHandle extends BonusSettleHandle {
 | 
			
		|||
            }
 | 
			
		||||
            // 更新日结数据
 | 
			
		||||
            iCuMemberRetailRangeService.updateCuMemberRetailRange(rangeTableName, memberRangeExtMap);
 | 
			
		||||
            CuMemberRetailRangeExt tt = memberRangeExtMap.get(20363L);
 | 
			
		||||
            // 更新日结明细数据
 | 
			
		||||
            iCuMemberRetailRangeService.updateCuMemberRetailDetail(rangeDetailTableName, memberRangeExtMap);
 | 
			
		||||
        }
 | 
			
		||||
| 
						 | 
				
			
			@ -950,6 +951,8 @@ public class BonusSettleRangeHandle extends BonusSettleHandle {
 | 
			
		|||
        }
 | 
			
		||||
        // 当前会员子点位总数
 | 
			
		||||
        int pointCount = sourceMember.getPointCount();
 | 
			
		||||
 | 
			
		||||
        newPointInt:
 | 
			
		||||
        for (int i = 1; i <= newPointInt; i++) {
 | 
			
		||||
            // 订单会员生成的新点位
 | 
			
		||||
            CuMemberRetailDetail newRetailDetail = CuMemberRetailDetail.builder()
 | 
			
		||||
| 
						 | 
				
			
			@ -961,6 +964,7 @@ public class BonusSettleRangeHandle extends BonusSettleHandle {
 | 
			
		|||
                    .pointType(EBonusStageType.NORMAL.getValue())
 | 
			
		||||
                    .pointGift(0)
 | 
			
		||||
                    .creationTime(settleDate)
 | 
			
		||||
                    .updateBool(0)
 | 
			
		||||
                    .build();
 | 
			
		||||
            detailList.put(newRetailDetail.getChildNode(), newRetailDetail);
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -980,47 +984,142 @@ public class BonusSettleRangeHandle extends BonusSettleHandle {
 | 
			
		|||
                    // 推荐人没有未完成点位,继续往上找
 | 
			
		||||
                    continue;
 | 
			
		||||
                }
 | 
			
		||||
                parentDetailList.forEach((key, parentRetailDetail) -> {
 | 
			
		||||
                for (Map.Entry<Integer, CuMemberRetailDetail> integerCuMemberRetailDetailEntry : parentDetailList.entrySet()) {
 | 
			
		||||
                    // 第一层填充
 | 
			
		||||
                    CuMemberRetailDetail parentRetailDetail = integerCuMemberRetailDetailEntry.getValue();
 | 
			
		||||
                    // 遍历推荐人点位,使用第一个未完成的点位,进行填充
 | 
			
		||||
                    if (EBonusStageStatus.NO.getValue() == parentRetailDetail.getStageStatus()) {
 | 
			
		||||
                        String newNode = iCuMemberBonusStageService.fillChildNode(parentRetailDetail, newRetailDetail);
 | 
			
		||||
                        if (null == newNode) {
 | 
			
		||||
                            return;
 | 
			
		||||
                        }
 | 
			
		||||
                        switch (newNode) {
 | 
			
		||||
                            case BonusConstants.POINT_11:
 | 
			
		||||
                            case BonusConstants.POINT_12:
 | 
			
		||||
                                // 新点位是推荐人点位的第一层
 | 
			
		||||
                                iCuMemberBonusStageService.handlePointFirst(memberRangeExtMap, newRetailDetail, parentRetailDetail,
 | 
			
		||||
                                        rangeTableName, rangeDetailTableName, newNode);
 | 
			
		||||
                                break;
 | 
			
		||||
                            case BonusConstants.POINT_21:
 | 
			
		||||
                            case BonusConstants.POINT_22:
 | 
			
		||||
                            case BonusConstants.POINT_23:
 | 
			
		||||
                            case BonusConstants.POINT_24:
 | 
			
		||||
                                // 新点位是推荐人点位的第二层
 | 
			
		||||
                                iCuMemberBonusStageService.handlePointSecond(memberRangeExtMap, newRetailDetail, parentRetailDetail,
 | 
			
		||||
                                        rangeTableName, rangeDetailTableName, newNode);
 | 
			
		||||
                                break;
 | 
			
		||||
                            case BonusConstants.POINT_38:
 | 
			
		||||
                                // 第一个点位已经全部填满,更新完成状态和时间
 | 
			
		||||
                                parentRetailDetail.setStageStatus(EBonusStageStatus.YES.getValue());
 | 
			
		||||
                                parentRetailDetail.setStageDate(settleDate);
 | 
			
		||||
                                // TODO 一阶段全满则需要发放一阶段奖金
 | 
			
		||||
                                // TODO 需要记录填满子点位,用来处理生成二阶段以及生成赠点
 | 
			
		||||
                            case BonusConstants.POINT_31:
 | 
			
		||||
                            case BonusConstants.POINT_32:
 | 
			
		||||
                            case BonusConstants.POINT_33:
 | 
			
		||||
                            case BonusConstants.POINT_34:
 | 
			
		||||
                            case BonusConstants.POINT_35:
 | 
			
		||||
                            case BonusConstants.POINT_36:
 | 
			
		||||
                            case BonusConstants.POINT_37:
 | 
			
		||||
                                // 新点位是推荐人点位的第三层
 | 
			
		||||
                                iCuMemberBonusStageService.handlePointThird(memberRangeExtMap, newRetailDetail, parentRetailDetail,
 | 
			
		||||
                                        rangeTableName, rangeDetailTableName, newNode);
 | 
			
		||||
                        if (null == parentRetailDetail.getPointMember11()) {
 | 
			
		||||
                            iCuMemberBonusStageService.fillRetailDetail(parentRetailDetail, BonusConstants.POINT_11,
 | 
			
		||||
                                    newRetailDetail.getPkMember(), newRetailDetail.getChildNode());
 | 
			
		||||
                            // 新点位是推荐人点位的第一层
 | 
			
		||||
                            iCuMemberBonusStageService.handlePointFirst(memberRangeExtMap, newRetailDetail, parentRetailDetail,
 | 
			
		||||
                                    rangeTableName, rangeDetailTableName, BonusConstants.POINT_11);
 | 
			
		||||
                            // 当前新子点位填充完成,进入下一个新子点位
 | 
			
		||||
                            continue newPointInt;
 | 
			
		||||
                        } else if (null == parentRetailDetail.getPointMember12()) {
 | 
			
		||||
                            iCuMemberBonusStageService.fillRetailDetail(parentRetailDetail, BonusConstants.POINT_12,
 | 
			
		||||
                                    newRetailDetail.getPkMember(), newRetailDetail.getChildNode());
 | 
			
		||||
                            // 新点位是推荐人点位的第一层
 | 
			
		||||
                            iCuMemberBonusStageService.handlePointFirst(memberRangeExtMap, newRetailDetail, parentRetailDetail,
 | 
			
		||||
                                    rangeTableName, rangeDetailTableName, BonusConstants.POINT_12);
 | 
			
		||||
                            // 当前新子点位填充完成,进入下一个新子点位
 | 
			
		||||
                            continue newPointInt;
 | 
			
		||||
                        }
 | 
			
		||||
                    }
 | 
			
		||||
                });
 | 
			
		||||
                }
 | 
			
		||||
                for (Map.Entry<Integer, CuMemberRetailDetail> integerCuMemberRetailDetailEntry : parentDetailList.entrySet()) {
 | 
			
		||||
                    // 第二层填充
 | 
			
		||||
                    CuMemberRetailDetail parentRetailDetail = integerCuMemberRetailDetailEntry.getValue();
 | 
			
		||||
                    // 遍历推荐人点位,使用第一个未完成的点位,进行填充
 | 
			
		||||
                    if (EBonusStageStatus.NO.getValue() == parentRetailDetail.getStageStatus()) {
 | 
			
		||||
                        if (null == parentRetailDetail.getPointMember21()) {
 | 
			
		||||
                            iCuMemberBonusStageService.fillRetailDetail(parentRetailDetail, BonusConstants.POINT_21,
 | 
			
		||||
                                    newRetailDetail.getPkMember(), newRetailDetail.getChildNode());
 | 
			
		||||
                            // 新点位是推荐人点位的第二层
 | 
			
		||||
                            iCuMemberBonusStageService.handlePointSecond(memberRangeExtMap, newRetailDetail, parentRetailDetail,
 | 
			
		||||
                                    rangeTableName, rangeDetailTableName, BonusConstants.POINT_21);
 | 
			
		||||
                            // 当前新子点位填充完成,进入下一个新子点位
 | 
			
		||||
                            continue newPointInt;
 | 
			
		||||
                        } else if (null == parentRetailDetail.getPointMember22()) {
 | 
			
		||||
                            iCuMemberBonusStageService.fillRetailDetail(parentRetailDetail, BonusConstants.POINT_22,
 | 
			
		||||
                                    newRetailDetail.getPkMember(), newRetailDetail.getChildNode());
 | 
			
		||||
                            // 新点位是推荐人点位的第二层
 | 
			
		||||
                            iCuMemberBonusStageService.handlePointSecond(memberRangeExtMap, newRetailDetail, parentRetailDetail,
 | 
			
		||||
                                    rangeTableName, rangeDetailTableName, BonusConstants.POINT_22);
 | 
			
		||||
                            // 当前新子点位填充完成,进入下一个新子点位
 | 
			
		||||
                            continue newPointInt;
 | 
			
		||||
                        } else if (null == parentRetailDetail.getPointMember23()) {
 | 
			
		||||
                            iCuMemberBonusStageService.fillRetailDetail(parentRetailDetail, BonusConstants.POINT_23,
 | 
			
		||||
                                    newRetailDetail.getPkMember(), newRetailDetail.getChildNode());
 | 
			
		||||
                            // 新点位是推荐人点位的第二层
 | 
			
		||||
                            iCuMemberBonusStageService.handlePointSecond(memberRangeExtMap, newRetailDetail, parentRetailDetail,
 | 
			
		||||
                                    rangeTableName, rangeDetailTableName, BonusConstants.POINT_23);
 | 
			
		||||
                            // 当前新子点位填充完成,进入下一个新子点位
 | 
			
		||||
                            continue newPointInt;
 | 
			
		||||
                        } else if (null == parentRetailDetail.getPointMember24()) {
 | 
			
		||||
                            iCuMemberBonusStageService.fillRetailDetail(parentRetailDetail, BonusConstants.POINT_24,
 | 
			
		||||
                                    newRetailDetail.getPkMember(), newRetailDetail.getChildNode());
 | 
			
		||||
                            // 新点位是推荐人点位的第二层
 | 
			
		||||
                            iCuMemberBonusStageService.handlePointSecond(memberRangeExtMap, newRetailDetail, parentRetailDetail,
 | 
			
		||||
                                    rangeTableName, rangeDetailTableName, BonusConstants.POINT_24);
 | 
			
		||||
                            // 当前新子点位填充完成,进入下一个新子点位
 | 
			
		||||
                            continue newPointInt;
 | 
			
		||||
                        }
 | 
			
		||||
                    }
 | 
			
		||||
                }
 | 
			
		||||
                for (Map.Entry<Integer, CuMemberRetailDetail> integerCuMemberRetailDetailEntry : parentDetailList.entrySet()) {
 | 
			
		||||
                    // 第三层填充
 | 
			
		||||
                    CuMemberRetailDetail parentRetailDetail = integerCuMemberRetailDetailEntry.getValue();
 | 
			
		||||
                    // 遍历推荐人点位,使用第一个未完成的点位,进行填充
 | 
			
		||||
                    if (EBonusStageStatus.NO.getValue() == parentRetailDetail.getStageStatus()) {
 | 
			
		||||
                        if (null == parentRetailDetail.getPointMember31()) {
 | 
			
		||||
                            iCuMemberBonusStageService.fillRetailDetail(parentRetailDetail, BonusConstants.POINT_31,
 | 
			
		||||
                                    newRetailDetail.getPkMember(), newRetailDetail.getChildNode());
 | 
			
		||||
                            // 新点位是推荐人点位的第三层
 | 
			
		||||
                            iCuMemberBonusStageService.handlePointThird(memberRangeExtMap, newRetailDetail, parentRetailDetail,
 | 
			
		||||
                                    rangeTableName, rangeDetailTableName, BonusConstants.POINT_31);
 | 
			
		||||
                            // 当前新子点位填充完成,进入下一个新子点位
 | 
			
		||||
                            continue newPointInt;
 | 
			
		||||
                        } else if (null == parentRetailDetail.getPointMember32()) {
 | 
			
		||||
                            iCuMemberBonusStageService.fillRetailDetail(parentRetailDetail, BonusConstants.POINT_32,
 | 
			
		||||
                                    newRetailDetail.getPkMember(), newRetailDetail.getChildNode());
 | 
			
		||||
                            // 新点位是推荐人点位的第三层
 | 
			
		||||
                            iCuMemberBonusStageService.handlePointThird(memberRangeExtMap, newRetailDetail, parentRetailDetail,
 | 
			
		||||
                                    rangeTableName, rangeDetailTableName, BonusConstants.POINT_32);
 | 
			
		||||
                            // 当前新子点位填充完成,进入下一个新子点位
 | 
			
		||||
                            continue newPointInt;
 | 
			
		||||
                        } else if (null == parentRetailDetail.getPointMember33()) {
 | 
			
		||||
                            iCuMemberBonusStageService.fillRetailDetail(parentRetailDetail, BonusConstants.POINT_33,
 | 
			
		||||
                                    newRetailDetail.getPkMember(), newRetailDetail.getChildNode());
 | 
			
		||||
                            // 新点位是推荐人点位的第三层
 | 
			
		||||
                            iCuMemberBonusStageService.handlePointThird(memberRangeExtMap, newRetailDetail, parentRetailDetail,
 | 
			
		||||
                                    rangeTableName, rangeDetailTableName, BonusConstants.POINT_33);
 | 
			
		||||
                            // 当前新子点位填充完成,进入下一个新子点位
 | 
			
		||||
                            continue newPointInt;
 | 
			
		||||
                        } else if (null == parentRetailDetail.getPointMember34()) {
 | 
			
		||||
                            iCuMemberBonusStageService.fillRetailDetail(parentRetailDetail, BonusConstants.POINT_34,
 | 
			
		||||
                                    newRetailDetail.getPkMember(), newRetailDetail.getChildNode());
 | 
			
		||||
                            // 新点位是推荐人点位的第三层
 | 
			
		||||
                            iCuMemberBonusStageService.handlePointThird(memberRangeExtMap, newRetailDetail, parentRetailDetail,
 | 
			
		||||
                                    rangeTableName, rangeDetailTableName, BonusConstants.POINT_34);
 | 
			
		||||
                            // 当前新子点位填充完成,进入下一个新子点位
 | 
			
		||||
                            continue newPointInt;
 | 
			
		||||
                        } else if (null == parentRetailDetail.getPointMember35()) {
 | 
			
		||||
                            iCuMemberBonusStageService.fillRetailDetail(parentRetailDetail, BonusConstants.POINT_35,
 | 
			
		||||
                                    newRetailDetail.getPkMember(), newRetailDetail.getChildNode());
 | 
			
		||||
                            // 新点位是推荐人点位的第三层
 | 
			
		||||
                            iCuMemberBonusStageService.handlePointThird(memberRangeExtMap, newRetailDetail, parentRetailDetail,
 | 
			
		||||
                                    rangeTableName, rangeDetailTableName, BonusConstants.POINT_35);
 | 
			
		||||
                            // 当前新子点位填充完成,进入下一个新子点位
 | 
			
		||||
                            continue newPointInt;
 | 
			
		||||
                        } else if (null == parentRetailDetail.getPointMember36()) {
 | 
			
		||||
                            iCuMemberBonusStageService.fillRetailDetail(parentRetailDetail, BonusConstants.POINT_36,
 | 
			
		||||
                                    newRetailDetail.getPkMember(), newRetailDetail.getChildNode());
 | 
			
		||||
                            // 新点位是推荐人点位的第三层
 | 
			
		||||
                            iCuMemberBonusStageService.handlePointThird(memberRangeExtMap, newRetailDetail, parentRetailDetail,
 | 
			
		||||
                                    rangeTableName, rangeDetailTableName, BonusConstants.POINT_36);
 | 
			
		||||
                            // 当前新子点位填充完成,进入下一个新子点位
 | 
			
		||||
                            continue newPointInt;
 | 
			
		||||
                        } else if (null == parentRetailDetail.getPointMember37()) {
 | 
			
		||||
                            iCuMemberBonusStageService.fillRetailDetail(parentRetailDetail, BonusConstants.POINT_37,
 | 
			
		||||
                                    newRetailDetail.getPkMember(), newRetailDetail.getChildNode());
 | 
			
		||||
                            // 新点位是推荐人点位的第三层
 | 
			
		||||
                            iCuMemberBonusStageService.handlePointThird(memberRangeExtMap, newRetailDetail, parentRetailDetail,
 | 
			
		||||
                                    rangeTableName, rangeDetailTableName, BonusConstants.POINT_37);
 | 
			
		||||
                            // 当前新子点位填充完成,进入下一个新子点位
 | 
			
		||||
                            continue newPointInt;
 | 
			
		||||
                        } else if (null == parentRetailDetail.getPointMember38()) {
 | 
			
		||||
                            iCuMemberBonusStageService.fillRetailDetail(parentRetailDetail, BonusConstants.POINT_38,
 | 
			
		||||
                                    newRetailDetail.getPkMember(), newRetailDetail.getChildNode());
 | 
			
		||||
                            // 新点位是推荐人点位的第三层
 | 
			
		||||
                            iCuMemberBonusStageService.handlePointThird(memberRangeExtMap, newRetailDetail, parentRetailDetail,
 | 
			
		||||
                                    rangeTableName, rangeDetailTableName, BonusConstants.POINT_38);
 | 
			
		||||
                            // 当前新子点位填充完成,进入下一个新子点位
 | 
			
		||||
                            continue newPointInt;
 | 
			
		||||
                        }
 | 
			
		||||
                    }
 | 
			
		||||
                }
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -47,7 +47,7 @@ public class CuMemberBonusStageServiceImpl extends ServiceImpl<CuMemberBonusStag
 | 
			
		|||
 | 
			
		||||
    @Override
 | 
			
		||||
    public void batchInsertCuMemberBonusStage(List<CuMemberBonusStage> cuMemberBonusStageList, Set<Long> memberIdSet) {
 | 
			
		||||
        if (cuMemberBonusStageList.size() == 0) {
 | 
			
		||||
        if (CollectionUtil.isEmpty(cuMemberBonusStageList)) {
 | 
			
		||||
            return;
 | 
			
		||||
        }
 | 
			
		||||
        List<CuMemberBonusStage> addMemberBonusStageList = new ArrayList<>();
 | 
			
		||||
| 
						 | 
				
			
			@ -89,19 +89,8 @@ public class CuMemberBonusStageServiceImpl extends ServiceImpl<CuMemberBonusStag
 | 
			
		|||
        return cuMemberBonusStage;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    private void initFieldMap() {
 | 
			
		||||
        BonusConstants.FIELD_MAP = new HashMap<>();
 | 
			
		||||
        for (String suffix : BonusConstants.FIELD_LIST) {
 | 
			
		||||
            BonusConstants.FIELD_MAP.put(BonusConstants.POINT_MEMBER_FIELD_NAME + suffix, ReflectUtil.getField(CuMemberRetailDetail.class, BonusConstants.POINT_MEMBER_FIELD_NAME + suffix));
 | 
			
		||||
            BonusConstants.FIELD_MAP.put(BonusConstants.POINT_FIELD_NAME + suffix, ReflectUtil.getField(CuMemberRetailDetail.class, BonusConstants.POINT_FIELD_NAME + suffix));
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    @Override
 | 
			
		||||
    public String fillChildNode(CuMemberRetailDetail cuMemberRetailDetail, CuMemberRetailDetail newRetailDetail) {
 | 
			
		||||
        if (ObjectUtil.isEmpty(BonusConstants.FIELD_MAP)) {
 | 
			
		||||
            initFieldMap();
 | 
			
		||||
        }
 | 
			
		||||
        for (String suffix : BonusConstants.FIELD_LIST) {
 | 
			
		||||
            Field pointMemberField = BonusConstants.FIELD_MAP.get(BonusConstants.POINT_MEMBER_FIELD_NAME + suffix);
 | 
			
		||||
            Field pointField = BonusConstants.FIELD_MAP.get(BonusConstants.POINT_FIELD_NAME + suffix);
 | 
			
		||||
| 
						 | 
				
			
			@ -109,6 +98,7 @@ public class CuMemberBonusStageServiceImpl extends ServiceImpl<CuMemberBonusStag
 | 
			
		|||
            if (ObjectUtil.isEmpty(pointFieldValue)) {
 | 
			
		||||
                ReflectUtil.setFieldValue(cuMemberRetailDetail, pointMemberField, newRetailDetail.getPkMember());
 | 
			
		||||
                ReflectUtil.setFieldValue(cuMemberRetailDetail, pointField, newRetailDetail.getChildNode());
 | 
			
		||||
                ReflectUtil.setFieldValue(cuMemberRetailDetail, BonusConstants.UPDATE_FLAG, 0);
 | 
			
		||||
                return suffix;
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
| 
						 | 
				
			
			@ -118,8 +108,8 @@ public class CuMemberBonusStageServiceImpl extends ServiceImpl<CuMemberBonusStag
 | 
			
		|||
    /**
 | 
			
		||||
     * 向上填充子点位
 | 
			
		||||
     */
 | 
			
		||||
    public void fillUpTargetRetailDetail(CuMemberRetailDetail targetRetailDetail, CuMemberRetailDetail newParentRetailDetail,
 | 
			
		||||
                                         CuMemberRetailDetail newRetailDetail, String node) {
 | 
			
		||||
    private void fillUpTargetRetailDetail(CuMemberRetailDetail targetRetailDetail, CuMemberRetailDetail newParentRetailDetail,
 | 
			
		||||
                                          CuMemberRetailDetail newRetailDetail, String node) {
 | 
			
		||||
        if (null == targetRetailDetail) {
 | 
			
		||||
            return;
 | 
			
		||||
        }
 | 
			
		||||
| 
						 | 
				
			
			@ -132,80 +122,60 @@ public class CuMemberBonusStageServiceImpl extends ServiceImpl<CuMemberBonusStag
 | 
			
		|||
                switch (suffix) {
 | 
			
		||||
                    case BonusConstants.POINT_11:
 | 
			
		||||
                        if (BonusConstants.POINT_11.equals(node)) {
 | 
			
		||||
                            ReflectUtil.setFieldValue(targetRetailDetail, BonusConstants.POINT_MEMBER_FIELD_NAME + BonusConstants.POINT_21, newRetailDetail.getPkMember());
 | 
			
		||||
                            ReflectUtil.setFieldValue(targetRetailDetail, BonusConstants.POINT_FIELD_NAME + BonusConstants.POINT_21, newRetailDetail.getChildNode());
 | 
			
		||||
                            this.fillRetailDetail(targetRetailDetail, BonusConstants.POINT_21, newRetailDetail.getPkMember(), newRetailDetail.getChildNode());
 | 
			
		||||
                        } else if (BonusConstants.POINT_12.equals(node)) {
 | 
			
		||||
                            ReflectUtil.setFieldValue(targetRetailDetail, BonusConstants.POINT_MEMBER_FIELD_NAME + BonusConstants.POINT_22, newRetailDetail.getPkMember());
 | 
			
		||||
                            ReflectUtil.setFieldValue(targetRetailDetail, BonusConstants.POINT_FIELD_NAME + BonusConstants.POINT_22, newRetailDetail.getChildNode());
 | 
			
		||||
                            this.fillRetailDetail(targetRetailDetail, BonusConstants.POINT_22, newRetailDetail.getPkMember(), newRetailDetail.getChildNode());
 | 
			
		||||
                        } else if (BonusConstants.POINT_21.equals(node)) {
 | 
			
		||||
                            ReflectUtil.setFieldValue(targetRetailDetail, BonusConstants.POINT_MEMBER_FIELD_NAME + BonusConstants.POINT_31, newRetailDetail.getPkMember());
 | 
			
		||||
                            ReflectUtil.setFieldValue(targetRetailDetail, BonusConstants.POINT_FIELD_NAME + BonusConstants.POINT_31, newRetailDetail.getChildNode());
 | 
			
		||||
                            this.fillRetailDetail(targetRetailDetail, BonusConstants.POINT_31, newRetailDetail.getPkMember(), newRetailDetail.getChildNode());
 | 
			
		||||
                        } else if (BonusConstants.POINT_22.equals(node)) {
 | 
			
		||||
                            ReflectUtil.setFieldValue(targetRetailDetail, BonusConstants.POINT_MEMBER_FIELD_NAME + BonusConstants.POINT_32, newRetailDetail.getPkMember());
 | 
			
		||||
                            ReflectUtil.setFieldValue(targetRetailDetail, BonusConstants.POINT_FIELD_NAME + BonusConstants.POINT_32, newRetailDetail.getChildNode());
 | 
			
		||||
                            this.fillRetailDetail(targetRetailDetail, BonusConstants.POINT_32, newRetailDetail.getPkMember(), newRetailDetail.getChildNode());
 | 
			
		||||
                        } else if (BonusConstants.POINT_23.equals(node)) {
 | 
			
		||||
                            ReflectUtil.setFieldValue(targetRetailDetail, BonusConstants.POINT_MEMBER_FIELD_NAME + BonusConstants.POINT_33, newRetailDetail.getPkMember());
 | 
			
		||||
                            ReflectUtil.setFieldValue(targetRetailDetail, BonusConstants.POINT_FIELD_NAME + BonusConstants.POINT_33, newRetailDetail.getChildNode());
 | 
			
		||||
                            this.fillRetailDetail(targetRetailDetail, BonusConstants.POINT_33, newRetailDetail.getPkMember(), newRetailDetail.getChildNode());
 | 
			
		||||
                        } else if (BonusConstants.POINT_24.equals(node)) {
 | 
			
		||||
                            ReflectUtil.setFieldValue(targetRetailDetail, BonusConstants.POINT_MEMBER_FIELD_NAME + BonusConstants.POINT_34, newRetailDetail.getPkMember());
 | 
			
		||||
                            ReflectUtil.setFieldValue(targetRetailDetail, BonusConstants.POINT_FIELD_NAME + BonusConstants.POINT_34, newRetailDetail.getChildNode());
 | 
			
		||||
                            this.fillRetailDetail(targetRetailDetail, BonusConstants.POINT_34, newRetailDetail.getPkMember(), newRetailDetail.getChildNode());
 | 
			
		||||
                        }
 | 
			
		||||
                        break;
 | 
			
		||||
                    case BonusConstants.POINT_12:
 | 
			
		||||
                        if (BonusConstants.POINT_11.equals(node)) {
 | 
			
		||||
                            ReflectUtil.setFieldValue(targetRetailDetail, BonusConstants.POINT_MEMBER_FIELD_NAME + BonusConstants.POINT_23, newRetailDetail.getPkMember());
 | 
			
		||||
                            ReflectUtil.setFieldValue(targetRetailDetail, BonusConstants.POINT_FIELD_NAME + BonusConstants.POINT_23, newRetailDetail.getChildNode());
 | 
			
		||||
                            this.fillRetailDetail(targetRetailDetail, BonusConstants.POINT_23, newRetailDetail.getPkMember(), newRetailDetail.getChildNode());
 | 
			
		||||
                        } else if (BonusConstants.POINT_12.equals(node)) {
 | 
			
		||||
                            ReflectUtil.setFieldValue(targetRetailDetail, BonusConstants.POINT_MEMBER_FIELD_NAME + BonusConstants.POINT_24, newRetailDetail.getPkMember());
 | 
			
		||||
                            ReflectUtil.setFieldValue(targetRetailDetail, BonusConstants.POINT_FIELD_NAME + BonusConstants.POINT_24, newRetailDetail.getChildNode());
 | 
			
		||||
                            this.fillRetailDetail(targetRetailDetail, BonusConstants.POINT_24, newRetailDetail.getPkMember(), newRetailDetail.getChildNode());
 | 
			
		||||
                        } else if (BonusConstants.POINT_21.equals(node)) {
 | 
			
		||||
                            ReflectUtil.setFieldValue(targetRetailDetail, BonusConstants.POINT_MEMBER_FIELD_NAME + BonusConstants.POINT_35, newRetailDetail.getPkMember());
 | 
			
		||||
                            ReflectUtil.setFieldValue(targetRetailDetail, BonusConstants.POINT_FIELD_NAME + BonusConstants.POINT_35, newRetailDetail.getChildNode());
 | 
			
		||||
                            this.fillRetailDetail(targetRetailDetail, BonusConstants.POINT_35, newRetailDetail.getPkMember(), newRetailDetail.getChildNode());
 | 
			
		||||
                        } else if (BonusConstants.POINT_22.equals(node)) {
 | 
			
		||||
                            ReflectUtil.setFieldValue(targetRetailDetail, BonusConstants.POINT_MEMBER_FIELD_NAME + BonusConstants.POINT_36, newRetailDetail.getPkMember());
 | 
			
		||||
                            ReflectUtil.setFieldValue(targetRetailDetail, BonusConstants.POINT_FIELD_NAME + BonusConstants.POINT_36, newRetailDetail.getChildNode());
 | 
			
		||||
                            this.fillRetailDetail(targetRetailDetail, BonusConstants.POINT_36, newRetailDetail.getPkMember(), newRetailDetail.getChildNode());
 | 
			
		||||
                        } else if (BonusConstants.POINT_23.equals(node)) {
 | 
			
		||||
                            ReflectUtil.setFieldValue(targetRetailDetail, BonusConstants.POINT_MEMBER_FIELD_NAME + BonusConstants.POINT_37, newRetailDetail.getPkMember());
 | 
			
		||||
                            ReflectUtil.setFieldValue(targetRetailDetail, BonusConstants.POINT_FIELD_NAME + BonusConstants.POINT_37, newRetailDetail.getChildNode());
 | 
			
		||||
                            this.fillRetailDetail(targetRetailDetail, BonusConstants.POINT_37, newRetailDetail.getPkMember(), newRetailDetail.getChildNode());
 | 
			
		||||
                        } else if (BonusConstants.POINT_24.equals(node)) {
 | 
			
		||||
                            ReflectUtil.setFieldValue(targetRetailDetail, BonusConstants.POINT_MEMBER_FIELD_NAME + BonusConstants.POINT_38, newRetailDetail.getPkMember());
 | 
			
		||||
                            ReflectUtil.setFieldValue(targetRetailDetail, BonusConstants.POINT_FIELD_NAME + BonusConstants.POINT_38, newRetailDetail.getChildNode());
 | 
			
		||||
                            this.fillRetailDetail(targetRetailDetail, BonusConstants.POINT_38, newRetailDetail.getPkMember(), newRetailDetail.getChildNode());
 | 
			
		||||
                        }
 | 
			
		||||
                        break;
 | 
			
		||||
                    case BonusConstants.POINT_21:
 | 
			
		||||
                        if (BonusConstants.POINT_11.equals(node)) {
 | 
			
		||||
                            ReflectUtil.setFieldValue(targetRetailDetail, BonusConstants.POINT_MEMBER_FIELD_NAME + BonusConstants.POINT_31, newRetailDetail.getPkMember());
 | 
			
		||||
                            ReflectUtil.setFieldValue(targetRetailDetail, BonusConstants.POINT_FIELD_NAME + BonusConstants.POINT_31, newRetailDetail.getChildNode());
 | 
			
		||||
                            this.fillRetailDetail(targetRetailDetail, BonusConstants.POINT_31, newRetailDetail.getPkMember(), newRetailDetail.getChildNode());
 | 
			
		||||
                        } else if (BonusConstants.POINT_12.equals(node)) {
 | 
			
		||||
                            ReflectUtil.setFieldValue(targetRetailDetail, BonusConstants.POINT_MEMBER_FIELD_NAME + BonusConstants.POINT_32, newRetailDetail.getPkMember());
 | 
			
		||||
                            ReflectUtil.setFieldValue(targetRetailDetail, BonusConstants.POINT_FIELD_NAME + BonusConstants.POINT_32, newRetailDetail.getChildNode());
 | 
			
		||||
                            this.fillRetailDetail(targetRetailDetail, BonusConstants.POINT_32, newRetailDetail.getPkMember(), newRetailDetail.getChildNode());
 | 
			
		||||
                        }
 | 
			
		||||
                        break;
 | 
			
		||||
                    case BonusConstants.POINT_22:
 | 
			
		||||
                        if (BonusConstants.POINT_11.equals(node)) {
 | 
			
		||||
                            ReflectUtil.setFieldValue(targetRetailDetail, BonusConstants.POINT_MEMBER_FIELD_NAME + BonusConstants.POINT_33, newRetailDetail.getPkMember());
 | 
			
		||||
                            ReflectUtil.setFieldValue(targetRetailDetail, BonusConstants.POINT_FIELD_NAME + BonusConstants.POINT_33, newRetailDetail.getChildNode());
 | 
			
		||||
                            this.fillRetailDetail(targetRetailDetail, BonusConstants.POINT_33, newRetailDetail.getPkMember(), newRetailDetail.getChildNode());
 | 
			
		||||
                        } else if (BonusConstants.POINT_12.equals(node)) {
 | 
			
		||||
                            ReflectUtil.setFieldValue(targetRetailDetail, BonusConstants.POINT_MEMBER_FIELD_NAME + BonusConstants.POINT_34, newRetailDetail.getPkMember());
 | 
			
		||||
                            ReflectUtil.setFieldValue(targetRetailDetail, BonusConstants.POINT_FIELD_NAME + BonusConstants.POINT_34, newRetailDetail.getChildNode());
 | 
			
		||||
                            this.fillRetailDetail(targetRetailDetail, BonusConstants.POINT_34, newRetailDetail.getPkMember(), newRetailDetail.getChildNode());
 | 
			
		||||
                        }
 | 
			
		||||
                        break;
 | 
			
		||||
                    case BonusConstants.POINT_23:
 | 
			
		||||
                        if (BonusConstants.POINT_11.equals(node)) {
 | 
			
		||||
                            ReflectUtil.setFieldValue(targetRetailDetail, BonusConstants.POINT_MEMBER_FIELD_NAME + BonusConstants.POINT_35, newRetailDetail.getPkMember());
 | 
			
		||||
                            ReflectUtil.setFieldValue(targetRetailDetail, BonusConstants.POINT_FIELD_NAME + BonusConstants.POINT_35, newRetailDetail.getChildNode());
 | 
			
		||||
                            this.fillRetailDetail(targetRetailDetail, BonusConstants.POINT_35, newRetailDetail.getPkMember(), newRetailDetail.getChildNode());
 | 
			
		||||
                        } else if (BonusConstants.POINT_12.equals(node)) {
 | 
			
		||||
                            ReflectUtil.setFieldValue(targetRetailDetail, BonusConstants.POINT_MEMBER_FIELD_NAME + BonusConstants.POINT_36, newRetailDetail.getPkMember());
 | 
			
		||||
                            ReflectUtil.setFieldValue(targetRetailDetail, BonusConstants.POINT_FIELD_NAME + BonusConstants.POINT_36, newRetailDetail.getChildNode());
 | 
			
		||||
                            this.fillRetailDetail(targetRetailDetail, BonusConstants.POINT_36, newRetailDetail.getPkMember(), newRetailDetail.getChildNode());
 | 
			
		||||
                        }
 | 
			
		||||
                        break;
 | 
			
		||||
                    case BonusConstants.POINT_24:
 | 
			
		||||
                        if (BonusConstants.POINT_11.equals(node)) {
 | 
			
		||||
                            ReflectUtil.setFieldValue(targetRetailDetail, BonusConstants.POINT_MEMBER_FIELD_NAME + BonusConstants.POINT_37, newRetailDetail.getPkMember());
 | 
			
		||||
                            ReflectUtil.setFieldValue(targetRetailDetail, BonusConstants.POINT_FIELD_NAME + BonusConstants.POINT_37, newRetailDetail.getChildNode());
 | 
			
		||||
                            this.fillRetailDetail(targetRetailDetail, BonusConstants.POINT_37, newRetailDetail.getPkMember(), newRetailDetail.getChildNode());
 | 
			
		||||
                        } else if (BonusConstants.POINT_12.equals(node)) {
 | 
			
		||||
                            ReflectUtil.setFieldValue(targetRetailDetail, BonusConstants.POINT_MEMBER_FIELD_NAME + BonusConstants.POINT_38, newRetailDetail.getPkMember());
 | 
			
		||||
                            ReflectUtil.setFieldValue(targetRetailDetail, BonusConstants.POINT_FIELD_NAME + BonusConstants.POINT_38, newRetailDetail.getChildNode());
 | 
			
		||||
                            this.fillRetailDetail(targetRetailDetail, BonusConstants.POINT_38, newRetailDetail.getPkMember(), newRetailDetail.getChildNode());
 | 
			
		||||
                        }
 | 
			
		||||
                        break;
 | 
			
		||||
                }
 | 
			
		||||
| 
						 | 
				
			
			@ -217,8 +187,8 @@ public class CuMemberBonusStageServiceImpl extends ServiceImpl<CuMemberBonusStag
 | 
			
		|||
    /**
 | 
			
		||||
     * 向下填充子点位
 | 
			
		||||
     */
 | 
			
		||||
    public void fillDownTargetRetailDetail(CuMemberRetailDetail targetRetailDetail, CuMemberRetailDetail newRetailDetail,
 | 
			
		||||
                                           String node, Integer level) {
 | 
			
		||||
    private void fillDownTargetRetailDetail(CuMemberRetailDetail targetRetailDetail, CuMemberRetailDetail newRetailDetail,
 | 
			
		||||
                                            String node, Integer level) {
 | 
			
		||||
        if (null == targetRetailDetail) {
 | 
			
		||||
            return;
 | 
			
		||||
        }
 | 
			
		||||
| 
						 | 
				
			
			@ -229,38 +199,43 @@ public class CuMemberBonusStageServiceImpl extends ServiceImpl<CuMemberBonusStag
 | 
			
		|||
                    || BonusConstants.POINT_33.equals(node)
 | 
			
		||||
                    || BonusConstants.POINT_35.equals(node)
 | 
			
		||||
                    || BonusConstants.POINT_37.equals(node)) {
 | 
			
		||||
                targetRetailDetail.setPointMember11(newRetailDetail.getPkMember());
 | 
			
		||||
                targetRetailDetail.setPoint11(newRetailDetail.getChildNode());
 | 
			
		||||
                this.fillRetailDetail(targetRetailDetail, BonusConstants.POINT_11, newRetailDetail.getPkMember(), newRetailDetail.getChildNode());
 | 
			
		||||
            } else if (BonusConstants.POINT_22.equals(node)
 | 
			
		||||
                    || BonusConstants.POINT_24.equals(node)
 | 
			
		||||
                    || BonusConstants.POINT_32.equals(node)
 | 
			
		||||
                    || BonusConstants.POINT_34.equals(node)
 | 
			
		||||
                    || BonusConstants.POINT_36.equals(node)
 | 
			
		||||
                    || BonusConstants.POINT_38.equals(node)) {
 | 
			
		||||
                targetRetailDetail.setPointMember12(newRetailDetail.getPkMember());
 | 
			
		||||
                targetRetailDetail.setPoint12(newRetailDetail.getChildNode());
 | 
			
		||||
                this.fillRetailDetail(targetRetailDetail, BonusConstants.POINT_12, newRetailDetail.getPkMember(), newRetailDetail.getChildNode());
 | 
			
		||||
            }
 | 
			
		||||
        } else if (level.equals(2)) {
 | 
			
		||||
            if (BonusConstants.POINT_31.equals(node)
 | 
			
		||||
                    || BonusConstants.POINT_35.equals(node)) {
 | 
			
		||||
                targetRetailDetail.setPointMember21(newRetailDetail.getPkMember());
 | 
			
		||||
                targetRetailDetail.setPoint21(newRetailDetail.getChildNode());
 | 
			
		||||
                this.fillRetailDetail(targetRetailDetail, BonusConstants.POINT_21, newRetailDetail.getPkMember(), newRetailDetail.getChildNode());
 | 
			
		||||
            } else if (BonusConstants.POINT_32.equals(node)
 | 
			
		||||
                    || BonusConstants.POINT_36.equals(node)) {
 | 
			
		||||
                targetRetailDetail.setPointMember22(newRetailDetail.getPkMember());
 | 
			
		||||
                targetRetailDetail.setPoint22(newRetailDetail.getChildNode());
 | 
			
		||||
                this.fillRetailDetail(targetRetailDetail, BonusConstants.POINT_22, newRetailDetail.getPkMember(), newRetailDetail.getChildNode());
 | 
			
		||||
            } else if (BonusConstants.POINT_33.equals(node)
 | 
			
		||||
                    || BonusConstants.POINT_37.equals(node)) {
 | 
			
		||||
                targetRetailDetail.setPointMember23(newRetailDetail.getPkMember());
 | 
			
		||||
                targetRetailDetail.setPoint23(newRetailDetail.getChildNode());
 | 
			
		||||
                this.fillRetailDetail(targetRetailDetail, BonusConstants.POINT_23, newRetailDetail.getPkMember(), newRetailDetail.getChildNode());
 | 
			
		||||
            } else if (BonusConstants.POINT_34.equals(node)
 | 
			
		||||
                    || BonusConstants.POINT_38.equals(node)) {
 | 
			
		||||
                targetRetailDetail.setPointMember24(newRetailDetail.getPkMember());
 | 
			
		||||
                targetRetailDetail.setPoint24(newRetailDetail.getChildNode());
 | 
			
		||||
                this.fillRetailDetail(targetRetailDetail, BonusConstants.POINT_24, newRetailDetail.getPkMember(), newRetailDetail.getChildNode());
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * 填充点位
 | 
			
		||||
     */
 | 
			
		||||
    @Override
 | 
			
		||||
    public void fillRetailDetail(CuMemberRetailDetail targetRetailDetail, String point,
 | 
			
		||||
                                 Long pkMember, Integer childNode) {
 | 
			
		||||
        ReflectUtil.setFieldValue(targetRetailDetail, BonusConstants.POINT_MEMBER_FIELD_NAME + point, pkMember);
 | 
			
		||||
        ReflectUtil.setFieldValue(targetRetailDetail, BonusConstants.POINT_FIELD_NAME + point, childNode);
 | 
			
		||||
        ReflectUtil.setFieldValue(targetRetailDetail, BonusConstants.UPDATE_FLAG, 0);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    @Override
 | 
			
		||||
    public void handlePointFirst(Map<Long, CuMemberRetailRangeExt> memberRangeExtMap,
 | 
			
		||||
                                 CuMemberRetailDetail newRetailDetail, CuMemberRetailDetail newParentRetailDetail,
 | 
			
		||||
| 
						 | 
				
			
			@ -292,22 +267,25 @@ public class CuMemberBonusStageServiceImpl extends ServiceImpl<CuMemberBonusStag
 | 
			
		|||
        }
 | 
			
		||||
 | 
			
		||||
        // 新点位的上第二层
 | 
			
		||||
        newRetailDetail.setPointMemberSecond(newParentRetailDetail.getPointMemberFirst());
 | 
			
		||||
        newRetailDetail.setPointSecond(newParentRetailDetail.getPointFirst());
 | 
			
		||||
        CuMemberRetailRangeExt firstMemberRetail = memberRangeExtMap.get(newParentRetailDetail.getPointMemberFirst());
 | 
			
		||||
        if (null != firstMemberRetail) {
 | 
			
		||||
            CuMemberRetailDetail memberDetail = firstMemberRetail.getOneDetailMap().get(newParentRetailDetail.getPointFirst());
 | 
			
		||||
            this.fillUpTargetRetailDetail(memberDetail, newParentRetailDetail, newRetailDetail, newNode);
 | 
			
		||||
            if (null != memberDetail) {
 | 
			
		||||
                newRetailDetail.setPointMemberSecond(newParentRetailDetail.getPointMemberFirst());
 | 
			
		||||
                newRetailDetail.setPointSecond(newParentRetailDetail.getPointFirst());
 | 
			
		||||
                this.fillUpTargetRetailDetail(memberDetail, newParentRetailDetail, newRetailDetail, newNode);
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
        // 新点位的上第三层
 | 
			
		||||
        newRetailDetail.setPointMemberThird(newParentRetailDetail.getPointMemberSecond());
 | 
			
		||||
        newRetailDetail.setPointThird(newParentRetailDetail.getPointSecond());
 | 
			
		||||
        CuMemberRetailRangeExt secondMemberRetail = memberRangeExtMap.get(newParentRetailDetail.getPointMemberSecond());
 | 
			
		||||
        if (null != secondMemberRetail) {
 | 
			
		||||
            CuMemberRetailDetail memberDetail = secondMemberRetail.getOneDetailMap().get(newParentRetailDetail.getPointSecond());
 | 
			
		||||
            this.fillUpTargetRetailDetail(memberDetail, newParentRetailDetail, newRetailDetail, newNode);
 | 
			
		||||
            if (null != memberDetail) {
 | 
			
		||||
                newRetailDetail.setPointMemberThird(newParentRetailDetail.getPointMemberSecond());
 | 
			
		||||
                newRetailDetail.setPointThird(newParentRetailDetail.getPointSecond());
 | 
			
		||||
                this.fillUpTargetRetailDetail(memberDetail, newParentRetailDetail, newRetailDetail, newNode);
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -322,7 +300,7 @@ public class CuMemberBonusStageServiceImpl extends ServiceImpl<CuMemberBonusStag
 | 
			
		|||
        List<Long> queryMemberList = new ArrayList<>(2);
 | 
			
		||||
        // 获取上第三层结算数据
 | 
			
		||||
        CuMemberRetailRangeExt memberUpFirst = memberRangeExtMap.get(newParentRetailDetail.getPointMemberFirst());
 | 
			
		||||
        if (null == memberUpFirst) {
 | 
			
		||||
        if (null == memberUpFirst && null != newParentRetailDetail.getPointMemberFirst()) {
 | 
			
		||||
            queryMemberList.add(newParentRetailDetail.getPointMemberFirst());
 | 
			
		||||
        }
 | 
			
		||||
        // 获取上第一层结算数据
 | 
			
		||||
| 
						 | 
				
			
			@ -341,7 +319,7 @@ public class CuMemberBonusStageServiceImpl extends ServiceImpl<CuMemberBonusStag
 | 
			
		|||
                break;
 | 
			
		||||
        }
 | 
			
		||||
        CuMemberRetailRangeExt memberDownFirst = memberRangeExtMap.get(downFirstMember);
 | 
			
		||||
        if (null == memberDownFirst) {
 | 
			
		||||
        if (null == memberDownFirst && null != downFirstMember) {
 | 
			
		||||
            queryMemberList.add(downFirstMember);
 | 
			
		||||
        }
 | 
			
		||||
        if (CollectionUtil.isNotEmpty(queryMemberList)) {
 | 
			
		||||
| 
						 | 
				
			
			@ -357,12 +335,14 @@ public class CuMemberBonusStageServiceImpl extends ServiceImpl<CuMemberBonusStag
 | 
			
		|||
        }
 | 
			
		||||
 | 
			
		||||
        // 新点位的上第三层
 | 
			
		||||
        newRetailDetail.setPointMemberThird(newParentRetailDetail.getPointMemberFirst());
 | 
			
		||||
        newRetailDetail.setPointThird(newParentRetailDetail.getPointFirst());
 | 
			
		||||
        CuMemberRetailRangeExt thirdMemberRetail = memberRangeExtMap.get(newParentRetailDetail.getPointMemberFirst());
 | 
			
		||||
        if (null != thirdMemberRetail) {
 | 
			
		||||
            CuMemberRetailDetail memberDetail = thirdMemberRetail.getOneDetailMap().get(newParentRetailDetail.getPointFirst());
 | 
			
		||||
            this.fillUpTargetRetailDetail(memberDetail, newParentRetailDetail, newRetailDetail, newNode);
 | 
			
		||||
            if (null != memberDetail) {
 | 
			
		||||
                newRetailDetail.setPointMemberThird(newParentRetailDetail.getPointMemberFirst());
 | 
			
		||||
                newRetailDetail.setPointThird(newParentRetailDetail.getPointFirst());
 | 
			
		||||
                this.fillUpTargetRetailDetail(memberDetail, newParentRetailDetail, newRetailDetail, newNode);
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        // 新点位的上第一层
 | 
			
		||||
| 
						 | 
				
			
			@ -425,11 +405,11 @@ public class CuMemberBonusStageServiceImpl extends ServiceImpl<CuMemberBonusStag
 | 
			
		|||
                break;
 | 
			
		||||
        }
 | 
			
		||||
        CuMemberRetailRangeExt memberDownSecond = memberRangeExtMap.get(downSecondMember);
 | 
			
		||||
        if (null == memberDownSecond) {
 | 
			
		||||
        if (null == memberDownSecond && null != downSecondMember) {
 | 
			
		||||
            queryMemberList.add(downSecondMember);
 | 
			
		||||
        }
 | 
			
		||||
        CuMemberRetailRangeExt memberDownFirst = memberRangeExtMap.get(downFirstMember);
 | 
			
		||||
        if (null == memberDownFirst) {
 | 
			
		||||
        if (null == memberDownFirst && null != downFirstMember) {
 | 
			
		||||
            queryMemberList.add(downFirstMember);
 | 
			
		||||
        }
 | 
			
		||||
        if (CollectionUtil.isNotEmpty(queryMemberList)) {
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,7 +1,11 @@
 | 
			
		|||
package com.hzs.bonus.constant;
 | 
			
		||||
 | 
			
		||||
import cn.hutool.core.util.ReflectUtil;
 | 
			
		||||
import com.hzs.common.domain.member.achieve.CuMemberRetailDetail;
 | 
			
		||||
 | 
			
		||||
import java.lang.reflect.Field;
 | 
			
		||||
import java.util.Arrays;
 | 
			
		||||
import java.util.HashMap;
 | 
			
		||||
import java.util.List;
 | 
			
		||||
import java.util.Map;
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -25,9 +29,21 @@ public class BonusConstants {
 | 
			
		|||
    public static final List<String> FIELD_LIST = Arrays.asList(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);
 | 
			
		||||
 | 
			
		||||
    public static final String POINT_FIELD_NAME = "point";
 | 
			
		||||
    // 会员ID字段
 | 
			
		||||
    public static final String POINT_MEMBER_FIELD_NAME = "pointMember";
 | 
			
		||||
    // 会员子点位字段
 | 
			
		||||
    public static final String POINT_FIELD_NAME = "point";
 | 
			
		||||
    // 入库标记字段
 | 
			
		||||
    public static final String UPDATE_FLAG = "updateBool";
 | 
			
		||||
 | 
			
		||||
    public static Map<String, Field> FIELD_MAP = null;
 | 
			
		||||
 | 
			
		||||
    static {
 | 
			
		||||
        BonusConstants.FIELD_MAP = new HashMap<>();
 | 
			
		||||
        for (String suffix : BonusConstants.FIELD_LIST) {
 | 
			
		||||
            BonusConstants.FIELD_MAP.put(BonusConstants.POINT_MEMBER_FIELD_NAME + suffix, ReflectUtil.getField(CuMemberRetailDetail.class, BonusConstants.POINT_MEMBER_FIELD_NAME + suffix));
 | 
			
		||||
            BonusConstants.FIELD_MAP.put(BonusConstants.POINT_FIELD_NAME + suffix, ReflectUtil.getField(CuMemberRetailDetail.class, BonusConstants.POINT_FIELD_NAME + suffix));
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -299,32 +299,32 @@
 | 
			
		|||
            stage_status        NUMBER(1) default 1 not null,
 | 
			
		||||
            stage_date          DATE,
 | 
			
		||||
            point_11            NUMBER(8),
 | 
			
		||||
            point_12            NUMBER(8),
 | 
			
		||||
            point_21            NUMBER(8),
 | 
			
		||||
            point_22            NUMBER(8),
 | 
			
		||||
            point_23            NUMBER(8),
 | 
			
		||||
            point_24            NUMBER(8),
 | 
			
		||||
            point_31            NUMBER(8),
 | 
			
		||||
            point_32            NUMBER(8),
 | 
			
		||||
            point_33            NUMBER(8),
 | 
			
		||||
            point_34            NUMBER(8),
 | 
			
		||||
            point_35            NUMBER(8),
 | 
			
		||||
            point_36            NUMBER(8),
 | 
			
		||||
            point_37            NUMBER(8),
 | 
			
		||||
            point_38            NUMBER(8),
 | 
			
		||||
            point_member_11     NUMBER(20),
 | 
			
		||||
            point_12            NUMBER(8),
 | 
			
		||||
            point_member_12     NUMBER(20),
 | 
			
		||||
            point_21            NUMBER(8),
 | 
			
		||||
            point_member_21     NUMBER(20),
 | 
			
		||||
            point_22            NUMBER(8),
 | 
			
		||||
            point_member_22     NUMBER(20),
 | 
			
		||||
            point_23            NUMBER(8),
 | 
			
		||||
            point_member_23     NUMBER(20),
 | 
			
		||||
            point_24            NUMBER(8),
 | 
			
		||||
            point_member_24     NUMBER(20),
 | 
			
		||||
            point_31            NUMBER(8),
 | 
			
		||||
            point_member_31     NUMBER(20),
 | 
			
		||||
            point_32            NUMBER(8),
 | 
			
		||||
            point_member_32     NUMBER(20),
 | 
			
		||||
            point_33            NUMBER(8),
 | 
			
		||||
            point_member_33     NUMBER(20),
 | 
			
		||||
            point_34            NUMBER(8),
 | 
			
		||||
            point_member_34     NUMBER(20),
 | 
			
		||||
            point_35            NUMBER(8),
 | 
			
		||||
            point_member_35     NUMBER(20),
 | 
			
		||||
            point_36            NUMBER(8),
 | 
			
		||||
            point_member_36     NUMBER(20),
 | 
			
		||||
            point_37            NUMBER(8),
 | 
			
		||||
            point_member_37     NUMBER(20),
 | 
			
		||||
            point_38            NUMBER(8),
 | 
			
		||||
            point_member_38     NUMBER(20),
 | 
			
		||||
            point_type          NUMBER(1) default 0 not null,
 | 
			
		||||
            point_gift          NUMBER(1) default 0 not null,
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -90,7 +90,7 @@
 | 
			
		|||
        </if>
 | 
			
		||||
        and so.pay_time >= #{startDate}
 | 
			
		||||
        and so.pay_time < #{endDate}
 | 
			
		||||
        order by pay_time desc
 | 
			
		||||
        order by pay_time
 | 
			
		||||
    </select>
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -10,12 +10,7 @@ import lombok.EqualsAndHashCode;
 | 
			
		|||
import lombok.experimental.Accessors;
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * <p>
 | 
			
		||||
 * 统计活跃会员
 | 
			
		||||
 * </p>
 | 
			
		||||
 *
 | 
			
		||||
 * @author zhangjing
 | 
			
		||||
 * @since 2023-05-17
 | 
			
		||||
 */
 | 
			
		||||
@Data
 | 
			
		||||
@EqualsAndHashCode(callSuper = true)
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,59 +0,0 @@
 | 
			
		|||
package com.hzs.common.domain.member.achieve;
 | 
			
		||||
 | 
			
		||||
import java.math.BigDecimal;
 | 
			
		||||
import com.baomidou.mybatisplus.annotation.TableName;
 | 
			
		||||
import java.util.Date;
 | 
			
		||||
import com.baomidou.mybatisplus.annotation.TableField;
 | 
			
		||||
import com.hzs.common.core.web.domain.BaseEntity;
 | 
			
		||||
import lombok.Data;
 | 
			
		||||
import lombok.EqualsAndHashCode;
 | 
			
		||||
import lombok.experimental.Accessors;
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * <p>
 | 
			
		||||
 * 极差月新增业绩
 | 
			
		||||
 * </p>
 | 
			
		||||
 *
 | 
			
		||||
 * @author hzs
 | 
			
		||||
 * @since 2024-10-28
 | 
			
		||||
 */
 | 
			
		||||
@Data
 | 
			
		||||
@EqualsAndHashCode(callSuper = true)
 | 
			
		||||
@Accessors(chain = true)
 | 
			
		||||
@TableName("CU_MEMBER_RANGE_MONTH")
 | 
			
		||||
public class CuMemberRangeMonth extends BaseEntity {
 | 
			
		||||
 | 
			
		||||
    private static final long serialVersionUID = 1L;
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * 会员ID
 | 
			
		||||
     */
 | 
			
		||||
    @TableField("PK_MEMBER")
 | 
			
		||||
    private Long pkMember;
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * 期数
 | 
			
		||||
     */
 | 
			
		||||
    @TableField("PERIOD")
 | 
			
		||||
    private Integer period;
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * 结算日期
 | 
			
		||||
     */
 | 
			
		||||
    @TableField("SETTLE_DATE")
 | 
			
		||||
    private Date settleDate;
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * 个人新增PV
 | 
			
		||||
     */
 | 
			
		||||
    @TableField("NEW_PV")
 | 
			
		||||
    private BigDecimal newPv;
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * 团队新增PV
 | 
			
		||||
     */
 | 
			
		||||
    @TableField("NEW_TEAM_PV")
 | 
			
		||||
    private BigDecimal newTeamPv;
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			@ -280,5 +280,10 @@ public class CuMemberRetailDetail {
 | 
			
		|||
    @TableField("POINT_MEMBER_THIRD")
 | 
			
		||||
    private Long pointMemberThird;
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * 更新标记(不为null则需要入库)
 | 
			
		||||
     */
 | 
			
		||||
    @TableField(exist = false)
 | 
			
		||||
    private Integer updateBool;
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue