## 赠点激活阶段填充处理;
This commit is contained in:
parent
6f6dcae8b8
commit
a41cd10d4d
|
@ -128,6 +128,12 @@ public interface CuMemberRetailRangeMapper extends BaseMapper<CuMemberRetailRang
|
||||||
*/
|
*/
|
||||||
void updateMemberRetailSecondRangeParent(@Param("tableName") String tableName, @Param("orderExt") SaOrderExt orderExt, @Param("memberList") List<CuMemberExt> memberList, @Param("updateType") Integer updateType, @Param("symbol") String symbol);
|
void updateMemberRetailSecondRangeParent(@Param("tableName") String tableName, @Param("orderExt") SaOrderExt orderExt, @Param("memberList") List<CuMemberExt> memberList, @Param("updateType") Integer updateType, @Param("symbol") String symbol);
|
||||||
|
|
||||||
|
|
||||||
void initMemberRetailSecondRange(@Param("tableName") String tableName, @Param("member") CuMemberExt memberList);
|
void initMemberRetailSecondRange(@Param("tableName") String tableName, @Param("member") CuMemberExt memberList);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 查询直推会员数据
|
||||||
|
*/
|
||||||
|
List<CuMemberRetailRangeExt> listChildRetail(@Param("rangeTableName") String rangeTableName,
|
||||||
|
@Param("pkParentList") List<Long> pkParentList);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -29,7 +29,7 @@ public interface ICuMemberRetailDetailService extends IService<CuMemberRetailDet
|
||||||
/**
|
/**
|
||||||
* 会员直推对应的点位数据
|
* 会员直推对应的点位数据
|
||||||
*/
|
*/
|
||||||
void listChildRetailDetail(String retailDetailTableName, Map<Long, CuMemberRetailRangeExt> memberRangeExtMap,
|
void listChildRetailDetail(String rangeTableName, String retailDetailTableName, Map<Long, CuMemberRetailRangeExt> memberRangeExtMap,
|
||||||
List<Long> queryMemberList, EBonusStage eBonusStage);
|
CuMemberRetailRangeExt sourceMember, EBonusStage eBonusStage);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -2,6 +2,7 @@ package com.hzs.bonus.achieve.service.impl;
|
||||||
|
|
||||||
import cn.hutool.core.collection.CollectionUtil;
|
import cn.hutool.core.collection.CollectionUtil;
|
||||||
import com.hzs.bonus.achieve.mapper.CuMemberRetailDetailMapper;
|
import com.hzs.bonus.achieve.mapper.CuMemberRetailDetailMapper;
|
||||||
|
import com.hzs.bonus.achieve.mapper.CuMemberRetailRangeMapper;
|
||||||
import com.hzs.bonus.achieve.service.ICuMemberRetailDetailService;
|
import com.hzs.bonus.achieve.service.ICuMemberRetailDetailService;
|
||||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||||
import com.hzs.common.core.constant.MagicNumberConstants;
|
import com.hzs.common.core.constant.MagicNumberConstants;
|
||||||
|
@ -12,6 +13,7 @@ import com.hzs.common.domain.member.achieve.ext.CuMemberRetailRangeExt;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
|
import javax.annotation.Resource;
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -20,6 +22,9 @@ import java.util.*;
|
||||||
@Service
|
@Service
|
||||||
public class CuMemberRetailDetailServiceImpl extends ServiceImpl<CuMemberRetailDetailMapper, CuMemberRetailDetail> implements ICuMemberRetailDetailService {
|
public class CuMemberRetailDetailServiceImpl extends ServiceImpl<CuMemberRetailDetailMapper, CuMemberRetailDetail> implements ICuMemberRetailDetailService {
|
||||||
|
|
||||||
|
@Resource
|
||||||
|
private CuMemberRetailRangeMapper cuMemberRetailRangeMapper;
|
||||||
|
|
||||||
@Autowired
|
@Autowired
|
||||||
private CuMemberBonusSettle cuMemberBonusSettle;
|
private CuMemberBonusSettle cuMemberBonusSettle;
|
||||||
|
|
||||||
|
@ -35,32 +40,7 @@ public class CuMemberRetailDetailServiceImpl extends ServiceImpl<CuMemberRetailD
|
||||||
pkMemberList.forEach(tmpIdList -> {
|
pkMemberList.forEach(tmpIdList -> {
|
||||||
// 查询明细数据(指定阶段,未完成的)
|
// 查询明细数据(指定阶段,未完成的)
|
||||||
List<CuMemberRetailDetail> tmpList = baseMapper.listMemberRetailDetail(retailDetailTableName, tmpIdList, eBonusStage.getValue(), null != eBonusStageStatus ? eBonusStageStatus.getValue() : null);
|
List<CuMemberRetailDetail> tmpList = baseMapper.listMemberRetailDetail(retailDetailTableName, tmpIdList, eBonusStage.getValue(), null != eBonusStageStatus ? eBonusStageStatus.getValue() : null);
|
||||||
if (CollectionUtil.isNotEmpty(tmpList)) {
|
packageThreeDetailMap(memberRangeExtMap, eBonusStage, tmpList);
|
||||||
// 明细数据放到对应的会员数据中
|
|
||||||
for (CuMemberRetailDetail cuMemberRetailDetail : tmpList) {
|
|
||||||
CuMemberRetailRangeExt cuMemberRetailRangeExt = memberRangeExtMap.get(cuMemberRetailDetail.getPkMember());
|
|
||||||
if (null == cuMemberRetailRangeExt.getOneDetailMap()) {
|
|
||||||
cuMemberRetailRangeExt.setOneDetailMap(new LinkedHashMap<>());
|
|
||||||
}
|
|
||||||
if (null == cuMemberRetailRangeExt.getTwoDetailMap()) {
|
|
||||||
cuMemberRetailRangeExt.setTwoDetailMap(new LinkedHashMap<>());
|
|
||||||
}
|
|
||||||
if (null == cuMemberRetailRangeExt.getThreeDetailMap()) {
|
|
||||||
cuMemberRetailRangeExt.setThreeDetailMap(new LinkedHashMap<>());
|
|
||||||
}
|
|
||||||
// 使用有序map,为了后续业务处理方便
|
|
||||||
if (EBonusStage.ONE.getValue() == eBonusStage.getValue()) {
|
|
||||||
// 阶段一点位列表
|
|
||||||
cuMemberRetailRangeExt.getOneDetailMap().put(cuMemberRetailDetail.getChildNode(), cuMemberRetailDetail);
|
|
||||||
} else if (EBonusStage.TWO.getValue() == eBonusStage.getValue()) {
|
|
||||||
// 阶段二点位列表
|
|
||||||
cuMemberRetailRangeExt.getTwoDetailMap().put(cuMemberRetailDetail.getChildNode(), cuMemberRetailDetail);
|
|
||||||
} else if (EBonusStage.THREE.getValue() == eBonusStage.getValue()) {
|
|
||||||
// 阶段三点位列表
|
|
||||||
cuMemberRetailRangeExt.getThreeDetailMap().put(cuMemberRetailDetail.getChildNode(), cuMemberRetailDetail);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -69,6 +49,13 @@ public class CuMemberRetailDetailServiceImpl extends ServiceImpl<CuMemberRetailD
|
||||||
List<Long> queryMemberList, EBonusStage eBonusStage) {
|
List<Long> queryMemberList, EBonusStage eBonusStage) {
|
||||||
// 查询明细数据(指定阶段,未完成的)
|
// 查询明细数据(指定阶段,未完成的)
|
||||||
List<CuMemberRetailDetail> tmpDetailList = baseMapper.listMemberRetailDetail(retailDetailTableName, queryMemberList, eBonusStage.getValue(), EBonusStageStatus.NO.getValue());
|
List<CuMemberRetailDetail> tmpDetailList = baseMapper.listMemberRetailDetail(retailDetailTableName, queryMemberList, eBonusStage.getValue(), EBonusStageStatus.NO.getValue());
|
||||||
|
packageThreeDetailMap(memberRangeExtMap, eBonusStage, tmpDetailList);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 封装三个明细map
|
||||||
|
*/
|
||||||
|
private void packageThreeDetailMap(Map<Long, CuMemberRetailRangeExt> memberRangeExtMap, EBonusStage eBonusStage, List<CuMemberRetailDetail> tmpDetailList) {
|
||||||
if (CollectionUtil.isNotEmpty(tmpDetailList)) {
|
if (CollectionUtil.isNotEmpty(tmpDetailList)) {
|
||||||
// 明细数据放到对应的会员数据中
|
// 明细数据放到对应的会员数据中
|
||||||
for (CuMemberRetailDetail cuMemberRetailDetail : tmpDetailList) {
|
for (CuMemberRetailDetail cuMemberRetailDetail : tmpDetailList) {
|
||||||
|
@ -99,9 +86,42 @@ public class CuMemberRetailDetailServiceImpl extends ServiceImpl<CuMemberRetailD
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void listChildRetailDetail(String retailDetailTableName, Map<Long, CuMemberRetailRangeExt> memberRangeExtMap,
|
public void listChildRetailDetail(String rangeTableName, String retailDetailTableName, Map<Long, CuMemberRetailRangeExt> memberRangeExtMap,
|
||||||
List<Long> queryMemberList, EBonusStage eBonusStage) {
|
CuMemberRetailRangeExt sourceMember, EBonusStage eBonusStage) {
|
||||||
|
if (null != sourceMember.getChildRetailMap()) {
|
||||||
|
// 直推会员列表存在,则直接结束
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
sourceMember.setChildRetailMap(new LinkedHashMap<>());
|
||||||
|
|
||||||
|
// 会员直推数据
|
||||||
|
List<CuMemberRetailRangeExt> retailRangeList = cuMemberRetailRangeMapper.listChildRetail(rangeTableName, Collections.singletonList(sourceMember.getPkParent()));
|
||||||
|
if (CollectionUtil.isNotEmpty(retailRangeList)) {
|
||||||
|
// 直推数据列表
|
||||||
|
LinkedHashMap<Date, CuMemberRetailRangeExt> childRetailMap = sourceMember.getChildRetailMap();
|
||||||
|
|
||||||
|
List<Long> queryMemberList = new ArrayList<>();
|
||||||
|
for (CuMemberRetailRangeExt cuMemberRetailRangeExt : retailRangeList) {
|
||||||
|
CuMemberRetailRangeExt tmpMemberRetailRange = memberRangeExtMap.get(cuMemberRetailRangeExt.getPkMember());
|
||||||
|
if (null != tmpMemberRetailRange) {
|
||||||
|
// 直推会员已经存在
|
||||||
|
childRetailMap.put(tmpMemberRetailRange.getPayTime(), tmpMemberRetailRange);
|
||||||
|
} else {
|
||||||
|
// 直推会员不存在
|
||||||
|
childRetailMap.put(cuMemberRetailRangeExt.getPayTime(), cuMemberRetailRangeExt);
|
||||||
|
memberRangeExtMap.put(cuMemberRetailRangeExt.getPkMember(), cuMemberRetailRangeExt);
|
||||||
|
queryMemberList.add(cuMemberRetailRangeExt.getPkMember());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (queryMemberList.size() > 0) {
|
||||||
|
List<List<?>> pkMemberList = cuMemberBonusSettle.handleCutList(queryMemberList, MagicNumberConstants.BATCH_QUERY_NUM);
|
||||||
|
pkMemberList.forEach(tmpIdList -> {
|
||||||
|
// 查询明细数据(指定阶段,未完成的)
|
||||||
|
List<CuMemberRetailDetail> tmpList = baseMapper.listMemberRetailDetail(retailDetailTableName, tmpIdList, eBonusStage.getValue(), EBonusStageStatus.NO.getValue());
|
||||||
|
packageThreeDetailMap(memberRangeExtMap, eBonusStage, tmpList);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -1026,6 +1026,7 @@ public class BonusSettleRangeHandle extends BonusSettleHandle {
|
||||||
.build();
|
.build();
|
||||||
detailList.put(newRetailDetail.getChildNode(), newRetailDetail);
|
detailList.put(newRetailDetail.getChildNode(), newRetailDetail);
|
||||||
|
|
||||||
|
// 处理阶段点位填充(一阶段)
|
||||||
this.handleStageIncome(cuMemberBonusStageList, cuMemberBonusMap, bonusConfigDTO, period,
|
this.handleStageIncome(cuMemberBonusStageList, cuMemberBonusMap, bonusConfigDTO, period,
|
||||||
memberRangeExtMap, saOrderExt, settleDate, rangeTableName, rangeDetailTableName, EBonusStage.ONE,
|
memberRangeExtMap, saOrderExt, settleDate, rangeTableName, rangeDetailTableName, EBonusStage.ONE,
|
||||||
sourceMember, newRetailDetail, returnRetailDetailList);
|
sourceMember, newRetailDetail, returnRetailDetailList);
|
||||||
|
@ -1052,6 +1053,7 @@ public class BonusSettleRangeHandle extends BonusSettleHandle {
|
||||||
.build();
|
.build();
|
||||||
detailList.put(newRetailDetail.getChildNode(), newRetailDetail);
|
detailList.put(newRetailDetail.getChildNode(), newRetailDetail);
|
||||||
|
|
||||||
|
// 处理阶段点位填充(一阶段赠点)
|
||||||
this.handleStageIncome(cuMemberBonusStageList, cuMemberBonusMap, bonusConfigDTO, period,
|
this.handleStageIncome(cuMemberBonusStageList, cuMemberBonusMap, bonusConfigDTO, period,
|
||||||
memberRangeExtMap, saOrderExt, settleDate, rangeTableName, rangeDetailTableName, EBonusStage.ONE,
|
memberRangeExtMap, saOrderExt, settleDate, rangeTableName, rangeDetailTableName, EBonusStage.ONE,
|
||||||
sourceMember, newRetailDetail, returnRetailDetailList);
|
sourceMember, newRetailDetail, returnRetailDetailList);
|
||||||
|
@ -1084,6 +1086,7 @@ public class BonusSettleRangeHandle extends BonusSettleHandle {
|
||||||
return returnRetailDetailList;
|
return returnRetailDetailList;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 处理阶段点位填充
|
||||||
this.handleStageIncome(cuMemberBonusStageList, cuMemberBonusMap, bonusConfigDTO, period,
|
this.handleStageIncome(cuMemberBonusStageList, cuMemberBonusMap, bonusConfigDTO, period,
|
||||||
memberRangeExtMap, null, settleDate, rangeTableName, rangeDetailTableName, eBonusStage,
|
memberRangeExtMap, null, settleDate, rangeTableName, rangeDetailTableName, eBonusStage,
|
||||||
sourceMember, memberRetailDetail, returnRetailDetailList);
|
sourceMember, memberRetailDetail, returnRetailDetailList);
|
||||||
|
@ -1136,7 +1139,6 @@ public class BonusSettleRangeHandle extends BonusSettleHandle {
|
||||||
// 在第一层找到并填充点位,就开始下一个点位的处理
|
// 在第一层找到并填充点位,就开始下一个点位的处理
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
// 推荐人第二层点位处理
|
// 推荐人第二层点位处理
|
||||||
forBool = iCuMemberBonusStageService.secondLevelhandle(parentDetailList, newRetailDetail, rangeTableName, rangeDetailTableName,
|
forBool = iCuMemberBonusStageService.secondLevelhandle(parentDetailList, newRetailDetail, rangeTableName, rangeDetailTableName,
|
||||||
memberRangeExtMap, settleDate, eBonusStage, bonusStageDataList);
|
memberRangeExtMap, settleDate, eBonusStage, bonusStageDataList);
|
||||||
|
@ -1144,7 +1146,6 @@ public class BonusSettleRangeHandle extends BonusSettleHandle {
|
||||||
// 在第二层找到并填充点位,就开始下一个点位的处理
|
// 在第二层找到并填充点位,就开始下一个点位的处理
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
// 推荐人第三层点位处理
|
// 推荐人第三层点位处理
|
||||||
forBool = iCuMemberBonusStageService.thirdLevelhandle(parentDetailList, newRetailDetail, rangeTableName, rangeDetailTableName,
|
forBool = iCuMemberBonusStageService.thirdLevelhandle(parentDetailList, newRetailDetail, rangeTableName, rangeDetailTableName,
|
||||||
memberRangeExtMap, settleDate, eBonusStage, bonusStageDataList);
|
memberRangeExtMap, settleDate, eBonusStage, bonusStageDataList);
|
||||||
|
@ -1154,8 +1155,55 @@ public class BonusSettleRangeHandle extends BonusSettleHandle {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
// TODO 赠送点位处理,赠送点位给自己直推会员轮流布点
|
// 赠送点位处理,赠送点位给自己直推会员轮流布点
|
||||||
|
iCuMemberRetailDetailService.listChildRetailDetail(rangeTableName, rangeDetailTableName, memberRangeExtMap,
|
||||||
|
sourceMember, eBonusStage);
|
||||||
|
// 判断是不是都已经填充过一轮了,如果是则需要重新开始从第一个开始填充
|
||||||
|
LinkedHashMap<Date, CuMemberRetailRangeExt> childRetailMap = sourceMember.getChildRetailMap();
|
||||||
|
if (childRetailMap.size() > 0) {
|
||||||
|
// 获取最后一条数据 key
|
||||||
|
Date lastKey = new ArrayList<>(childRetailMap.keySet()).get(childRetailMap.size() - 1);
|
||||||
|
// 获取最新的会员注册时间,如果没有则设置一个初始化时间
|
||||||
|
Date giftPayTime = sourceMember.getGiftPayTime();
|
||||||
|
if (null == giftPayTime || giftPayTime.compareTo(lastKey) == 0) {
|
||||||
|
giftPayTime = BonusConstants.GIFT_PAY_TIME;
|
||||||
|
}
|
||||||
|
|
||||||
|
for (Date keyDate : childRetailMap.keySet()) {
|
||||||
|
if (keyDate.compareTo(giftPayTime) > 0) {
|
||||||
|
// 当前会员注册比之前的要晚,则顺序进行填充
|
||||||
|
giftPayTime = keyDate;
|
||||||
|
|
||||||
|
// 需要填充的直推会员
|
||||||
|
CuMemberRetailRangeExt targetMember = childRetailMap.get(keyDate);
|
||||||
|
// 推荐人一阶段子点位列表
|
||||||
|
LinkedHashMap<Integer, CuMemberRetailDetail> parentDetailList = targetMember.getOneDetailMap();
|
||||||
|
|
||||||
|
// 推荐人第一层点位处理
|
||||||
|
boolean forBool = iCuMemberBonusStageService.firstLevelhandle(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;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
sourceMember.setGiftPayTime(giftPayTime);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (CollectionUtil.isNotEmpty(bonusStageDataList)) {
|
if (CollectionUtil.isNotEmpty(bonusStageDataList)) {
|
||||||
|
|
|
@ -1,14 +1,12 @@
|
||||||
package com.hzs.bonus.constant;
|
package com.hzs.bonus.constant;
|
||||||
|
|
||||||
import cn.hutool.core.util.ReflectUtil;
|
import cn.hutool.core.util.ReflectUtil;
|
||||||
|
import com.hzs.common.core.utils.DateUtils;
|
||||||
import com.hzs.common.domain.member.achieve.CuMemberRetailDetail;
|
import com.hzs.common.domain.member.achieve.CuMemberRetailDetail;
|
||||||
|
|
||||||
import java.lang.reflect.Field;
|
import java.lang.reflect.Field;
|
||||||
import java.math.BigDecimal;
|
import java.math.BigDecimal;
|
||||||
import java.util.Arrays;
|
import java.util.*;
|
||||||
import java.util.HashMap;
|
|
||||||
import java.util.List;
|
|
||||||
import java.util.Map;
|
|
||||||
|
|
||||||
public class BonusConstants {
|
public class BonusConstants {
|
||||||
|
|
||||||
|
@ -46,6 +44,11 @@ public class BonusConstants {
|
||||||
*/
|
*/
|
||||||
public static final BigDecimal THREE_BONUS_38 = new BigDecimal("155");
|
public static final BigDecimal THREE_BONUS_38 = new BigDecimal("155");
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 赠点初始时间
|
||||||
|
*/
|
||||||
|
public static final Date GIFT_PAY_TIME = DateUtils.parseStringToDateTime("2025-09-01 00:00:00");
|
||||||
|
|
||||||
public static final String POINT_11 = "11";
|
public static final String POINT_11 = "11";
|
||||||
public static final String POINT_12 = "12";
|
public static final String POINT_12 = "12";
|
||||||
public static final String POINT_21 = "21";
|
public static final String POINT_21 = "21";
|
||||||
|
|
|
@ -54,6 +54,7 @@
|
||||||
<result column="wait_point_count" property="waitPointCount"/>
|
<result column="wait_point_count" property="waitPointCount"/>
|
||||||
<result column="rep_pv_balance" property="repPvBalance"/>
|
<result column="rep_pv_balance" property="repPvBalance"/>
|
||||||
<result column="gift_point" property="giftPoint"/>
|
<result column="gift_point" property="giftPoint"/>
|
||||||
|
<result column="gift_pay_time" property="giftPayTime"/>
|
||||||
|
|
||||||
<result column="AWARDS_VALUE" property="awardsValue"/>
|
<result column="AWARDS_VALUE" property="awardsValue"/>
|
||||||
<result column="AWARDS_NAME" property="awardsName"/>
|
<result column="AWARDS_NAME" property="awardsName"/>
|
||||||
|
@ -99,7 +100,8 @@
|
||||||
point_count = 0,
|
point_count = 0,
|
||||||
wait_point_count = 0,
|
wait_point_count = 0,
|
||||||
rep_pv_balance = 0,
|
rep_pv_balance = 0,
|
||||||
gift_point = 0
|
gift_point = 0,
|
||||||
|
gift_pay_time = null
|
||||||
</update>
|
</update>
|
||||||
|
|
||||||
<update id="mergeMemberRetailRangeByYesterday">
|
<update id="mergeMemberRetailRangeByYesterday">
|
||||||
|
@ -112,7 +114,7 @@
|
||||||
team_consume_amount, team_month_amount,
|
team_consume_amount, team_month_amount,
|
||||||
recommend_num, team_num, big_team_pv, small_team_pv,
|
recommend_num, team_num, big_team_pv, small_team_pv,
|
||||||
point_count, wait_point_count, rep_pv_balance,
|
point_count, wait_point_count, rep_pv_balance,
|
||||||
gift_point
|
gift_point, gift_pay_time
|
||||||
from ${yesterdayRangeTableName}
|
from ${yesterdayRangeTableName}
|
||||||
) b
|
) b
|
||||||
on (a.pk_member = b.pk_member)
|
on (a.pk_member = b.pk_member)
|
||||||
|
@ -127,7 +129,7 @@
|
||||||
a.big_team_pv = b.big_team_pv, a.small_team_pv = b.small_team_pv,
|
a.big_team_pv = b.big_team_pv, a.small_team_pv = b.small_team_pv,
|
||||||
a.point_count = b.point_count, a.wait_point_count = b.wait_point_count,
|
a.point_count = b.point_count, a.wait_point_count = b.wait_point_count,
|
||||||
a.rep_pv_balance = b.rep_pv_balance,
|
a.rep_pv_balance = b.rep_pv_balance,
|
||||||
a.gift_point = b.gift_point
|
a.gift_point = b.gift_point, a.gift_pay_time = b.gift_pay_time
|
||||||
<if test="isSameMonth == 0">
|
<if test="isSameMonth == 0">
|
||||||
,a.month_consume_pv = b.month_consume_pv
|
,a.month_consume_pv = b.month_consume_pv
|
||||||
,a.month_consume_amount = b.month_consume_amount
|
,a.month_consume_amount = b.month_consume_amount
|
||||||
|
@ -347,7 +349,7 @@
|
||||||
#{item.repConsumeNewAmount} rep_consume_new_amount, #{item.repConsumeNewPv} rep_consume_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.repTeamNewAmount} rep_team_new_amount, #{item.repTeamNewPv} rep_team_new_pv,
|
||||||
#{item.pointCount} point_count, #{item.waitPointCount} wait_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
|
#{item.giftPoint} gift_point, #{item.giftPayTime, jdbcType=TIMESTAMP} gift_pay_time
|
||||||
from dual
|
from dual
|
||||||
</foreach>
|
</foreach>
|
||||||
) b
|
) b
|
||||||
|
@ -364,7 +366,7 @@
|
||||||
a.rep_consume_new_amount = b.rep_consume_new_amount, a.rep_consume_new_pv = b.rep_consume_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.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.wait_point_count = b.wait_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
|
a.gift_point = b.gift_point, a.gift_pay_time = b.gift_pay_time
|
||||||
</update>
|
</update>
|
||||||
|
|
||||||
<!-- 更新会员日结数据 -->
|
<!-- 更新会员日结数据 -->
|
||||||
|
@ -595,46 +597,43 @@
|
||||||
</foreach>
|
</foreach>
|
||||||
</update>
|
</update>
|
||||||
<insert id="initMemberRetailSecondRange">
|
<insert id="initMemberRetailSecondRange">
|
||||||
INSERT INTO ${tableName} (
|
INSERT INTO ${tableName} ("PK_MEMBER",
|
||||||
"PK_MEMBER",
|
"PK_PARENT",
|
||||||
"PK_PARENT",
|
"PK_GRADE",
|
||||||
"PK_GRADE",
|
"PK_AWARDS",
|
||||||
"PK_AWARDS",
|
"ALL_CONSUME_NEW_AMOUNT",
|
||||||
"ALL_CONSUME_NEW_AMOUNT",
|
"ALL_CONSUME_NEW_PV",
|
||||||
"ALL_CONSUME_NEW_PV",
|
"ALL_TEAM_NEW_AMOUNT",
|
||||||
"ALL_TEAM_NEW_AMOUNT",
|
"ALL_TEAM_NEW_PV",
|
||||||
"ALL_TEAM_NEW_PV",
|
"REG_CONSUME_NEW_AMOUNT",
|
||||||
"REG_CONSUME_NEW_AMOUNT",
|
"REG_CONSUME_NEW_PV",
|
||||||
"REG_CONSUME_NEW_PV",
|
"REG_TEAM_NEW_AMOUNT",
|
||||||
"REG_TEAM_NEW_AMOUNT",
|
"REG_TEAM_NEW_PV",
|
||||||
"REG_TEAM_NEW_PV",
|
"REP_CONSUME_NEW_AMOUNT",
|
||||||
"REP_CONSUME_NEW_AMOUNT",
|
"REP_CONSUME_NEW_PV",
|
||||||
"REP_CONSUME_NEW_PV",
|
"REP_TEAM_NEW_AMOUNT",
|
||||||
"REP_TEAM_NEW_AMOUNT",
|
"REP_TEAM_NEW_PV")
|
||||||
"REP_TEAM_NEW_PV"
|
SELECT #{member.pkId},
|
||||||
)
|
#{member.pkParent},
|
||||||
SELECT
|
#{member.pkSettleGrade},
|
||||||
#{member.pkId},
|
#{member.pkAwards},
|
||||||
#{member.pkParent},
|
0,
|
||||||
#{member.pkSettleGrade},
|
0,
|
||||||
#{member.pkAwards},
|
0,
|
||||||
0,
|
0,
|
||||||
0,
|
0,
|
||||||
0,
|
0,
|
||||||
0,
|
0,
|
||||||
0,
|
0,
|
||||||
0,
|
0,
|
||||||
0,
|
0,
|
||||||
0,
|
0,
|
||||||
0,
|
0
|
||||||
0,
|
FROM DUAL
|
||||||
0,
|
WHERE NOT EXISTS(
|
||||||
0
|
SELECT 1
|
||||||
FROM DUAL
|
FROM ${tableName}
|
||||||
WHERE NOT EXISTS (
|
WHERE "PK_MEMBER" = #{member.pkId}
|
||||||
SELECT 1
|
|
||||||
FROM ${tableName}
|
|
||||||
WHERE "PK_MEMBER" = #{member.pkId}
|
|
||||||
)
|
)
|
||||||
</insert>
|
</insert>
|
||||||
|
|
||||||
|
@ -683,6 +682,7 @@
|
||||||
wait_point_count,
|
wait_point_count,
|
||||||
rep_pv_balance,
|
rep_pv_balance,
|
||||||
gift_point,
|
gift_point,
|
||||||
|
gift_pay_time,
|
||||||
bw.awards_value,
|
bw.awards_value,
|
||||||
bw.awards_name
|
bw.awards_name
|
||||||
from (
|
from (
|
||||||
|
@ -888,15 +888,79 @@
|
||||||
from ${tableName}
|
from ${tableName}
|
||||||
where pk_parent = #{pkParent}
|
where pk_parent = #{pkParent}
|
||||||
</select>
|
</select>
|
||||||
|
|
||||||
<select id="findParentMemberList" resultType="com.hzs.common.domain.member.ext.CuMemberExt">
|
<select id="findParentMemberList" resultType="com.hzs.common.domain.member.ext.CuMemberExt">
|
||||||
select * from (
|
select *
|
||||||
select cm.*
|
from (
|
||||||
from cu_member cm
|
select cm.*
|
||||||
start
|
from cu_member cm
|
||||||
with cm.pk_id = #{pkMember}
|
start
|
||||||
connect by cm.pk_id = prior cm.pk_parent
|
with cm.pk_id = #{pkMember}
|
||||||
order by level
|
connect by cm.pk_id = prior cm.pk_parent
|
||||||
) r where r.pk_id != #{pkMember}
|
order by level
|
||||||
|
) r
|
||||||
|
where r.pk_id != #{pkMember}
|
||||||
|
</select>
|
||||||
|
|
||||||
|
<!-- 查询会员直推结算数据列表 -->
|
||||||
|
<select id="listChildRetail" resultMap="CuMemberRetailRangeExt">
|
||||||
|
select a.pk_member,
|
||||||
|
a.pk_parent,
|
||||||
|
a.member_code,
|
||||||
|
a.member_name,
|
||||||
|
a.pk_grade,
|
||||||
|
a.pk_awards,
|
||||||
|
a.pk_share_awards,
|
||||||
|
a.account_status,
|
||||||
|
a.pay_time,
|
||||||
|
a.category,
|
||||||
|
a.income_status,
|
||||||
|
a.pk_vertex,
|
||||||
|
a.pk_settle_country,
|
||||||
|
a.pk_rate,
|
||||||
|
new_consume_pv,
|
||||||
|
consume_pv,
|
||||||
|
month_consume_pv,
|
||||||
|
new_consume_amount,
|
||||||
|
consume_amount,
|
||||||
|
month_consume_amount,
|
||||||
|
team_new_pv,
|
||||||
|
team_consume_pv,
|
||||||
|
team_month_pv,
|
||||||
|
team_new_amount,
|
||||||
|
team_consume_amount,
|
||||||
|
team_month_amount,
|
||||||
|
recommend_num,
|
||||||
|
team_num,
|
||||||
|
big_team_pv,
|
||||||
|
small_team_pv,
|
||||||
|
reg_consume_new_amount,
|
||||||
|
reg_consume_new_pv,
|
||||||
|
reg_team_new_amount,
|
||||||
|
reg_team_new_pv,
|
||||||
|
rep_consume_new_amount,
|
||||||
|
rep_consume_new_pv,
|
||||||
|
rep_team_new_amount,
|
||||||
|
rep_team_new_pv,
|
||||||
|
point_count,
|
||||||
|
wait_point_count,
|
||||||
|
rep_pv_balance,
|
||||||
|
gift_point,
|
||||||
|
gift_pay_time,
|
||||||
|
bw.awards_value,
|
||||||
|
bw.awards_name
|
||||||
|
from #{rangeTableName} a
|
||||||
|
inner join bd_awards bw
|
||||||
|
on bw.pk_id = a.pk_awards
|
||||||
|
left join bd_vertex bv
|
||||||
|
on bv.pk_id = a.pk_vertex
|
||||||
|
where a.pk_parent in
|
||||||
|
<foreach collection="pkParentList" item="item" open="(" close=")" separator=",">
|
||||||
|
#{item}
|
||||||
|
</foreach>
|
||||||
|
and a.pay_time is not null
|
||||||
|
and a.category = 0
|
||||||
|
order by a.pk_parent, a.pay_time
|
||||||
</select>
|
</select>
|
||||||
|
|
||||||
</mapper>
|
</mapper>
|
||||||
|
|
|
@ -578,7 +578,8 @@
|
||||||
point_count number(8) default 0 not null,
|
point_count number(8) default 0 not null,
|
||||||
wait_point_count number(8) default 0 not null,
|
wait_point_count number(8) default 0 not null,
|
||||||
rep_pv_balance number(17,6) default 0 not null,
|
rep_pv_balance number(17,6) default 0 not null,
|
||||||
gift_point number(2) default 1 not null
|
gift_point number(2) default 1 not null,
|
||||||
|
gift_pay_time DATE
|
||||||
)
|
)
|
||||||
</update>
|
</update>
|
||||||
|
|
||||||
|
|
|
@ -17,13 +17,6 @@ import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
import java.util.concurrent.TimeUnit;
|
import java.util.concurrent.TimeUnit;
|
||||||
|
|
||||||
/**
|
|
||||||
* @Description:
|
|
||||||
* @Author: sui q
|
|
||||||
* @Time: 2022/9/16 17:10
|
|
||||||
* @Classname: RedisComponent
|
|
||||||
* @PackageName: com.hzs.sale.component.load
|
|
||||||
*/
|
|
||||||
@Component
|
@Component
|
||||||
@Slf4j
|
@Slf4j
|
||||||
class RedisComponent {
|
class RedisComponent {
|
||||||
|
|
|
@ -8,9 +8,6 @@ import java.util.List;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 邮费详情设置 Mapper 接口
|
* 邮费详情设置 Mapper 接口
|
||||||
*
|
|
||||||
* @author hzs
|
|
||||||
* @since 2022-08-29
|
|
||||||
*/
|
*/
|
||||||
public interface BdPostageDetailMapper extends BaseMapper<BdPostageDetail> {
|
public interface BdPostageDetailMapper extends BaseMapper<BdPostageDetail> {
|
||||||
|
|
||||||
|
|
|
@ -7,9 +7,6 @@ import java.util.List;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 邮费详情设置 服务类
|
* 邮费详情设置 服务类
|
||||||
*
|
|
||||||
* @author hzs
|
|
||||||
* @since 2022-08-29
|
|
||||||
*/
|
*/
|
||||||
public interface IBdPostageDetailService extends IService<BdPostageDetail> {
|
public interface IBdPostageDetailService extends IService<BdPostageDetail> {
|
||||||
|
|
||||||
|
@ -18,9 +15,6 @@ public interface IBdPostageDetailService extends IService<BdPostageDetail> {
|
||||||
*
|
*
|
||||||
* @param tranType 运费方式
|
* @param tranType 运费方式
|
||||||
* @param pkPostage 邮费模板
|
* @param pkPostage 邮费模板
|
||||||
* @return: BdPostageDetail
|
|
||||||
* @Author: sui q
|
|
||||||
* @Date: 2022/9/19 17:29
|
|
||||||
*/
|
*/
|
||||||
List<BdPostageDetail> getPostageDetail(Integer tranType, Integer pkPostage);
|
List<BdPostageDetail> getPostageDetail(Integer tranType, Integer pkPostage);
|
||||||
|
|
||||||
|
@ -28,9 +22,6 @@ public interface IBdPostageDetailService extends IService<BdPostageDetail> {
|
||||||
* 根据运费类型查询对应的模板
|
* 根据运费类型查询对应的模板
|
||||||
*
|
*
|
||||||
* @param tranType 运费类型
|
* @param tranType 运费类型
|
||||||
* @return: List<BdPostageDetail>
|
|
||||||
* @Author: sui q
|
|
||||||
* @Date: 2022/9/19 17:02
|
|
||||||
*/
|
*/
|
||||||
List<BdPostageDetail> queryPostageDetail(Integer tranType);
|
List<BdPostageDetail> queryPostageDetail(Integer tranType);
|
||||||
}
|
}
|
||||||
|
|
|
@ -9,12 +9,7 @@ import org.springframework.stereotype.Service;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* <p>
|
|
||||||
* 邮费详情设置 服务实现类
|
* 邮费详情设置 服务实现类
|
||||||
* </p>
|
|
||||||
*
|
|
||||||
* @author hzs
|
|
||||||
* @since 2022-08-29
|
|
||||||
*/
|
*/
|
||||||
@Service
|
@Service
|
||||||
public class BdPostageDetailServiceImpl extends ServiceImpl<BdPostageDetailMapper, BdPostageDetail> implements IBdPostageDetailService {
|
public class BdPostageDetailServiceImpl extends ServiceImpl<BdPostageDetailMapper, BdPostageDetail> implements IBdPostageDetailService {
|
||||||
|
|
|
@ -212,4 +212,10 @@ public class CuMemberRetailRange extends BaseEntity {
|
||||||
@TableField("GIFT_POINT")
|
@TableField("GIFT_POINT")
|
||||||
private Integer giftPoint;
|
private Integer giftPoint;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 赠送点位填充最新时间
|
||||||
|
*/
|
||||||
|
@TableField("GIFT_PAY_TIME")
|
||||||
|
private Date giftPayTime;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -6,8 +6,8 @@ import lombok.Data;
|
||||||
import lombok.EqualsAndHashCode;
|
import lombok.EqualsAndHashCode;
|
||||||
|
|
||||||
import java.math.BigDecimal;
|
import java.math.BigDecimal;
|
||||||
|
import java.util.Date;
|
||||||
import java.util.LinkedHashMap;
|
import java.util.LinkedHashMap;
|
||||||
import java.util.List;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 新零售极差实体
|
* 新零售极差实体
|
||||||
|
@ -142,4 +142,9 @@ public class CuMemberRetailRangeExt extends CuMemberRetailRange {
|
||||||
*/
|
*/
|
||||||
private LinkedHashMap<Integer, CuMemberRetailDetail> threeDetailMap;
|
private LinkedHashMap<Integer, CuMemberRetailDetail> threeDetailMap;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 直推会员列表
|
||||||
|
*/
|
||||||
|
private LinkedHashMap<Date, CuMemberRetailRangeExt> childRetailMap;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -12,19 +12,14 @@ import lombok.EqualsAndHashCode;
|
||||||
import lombok.experimental.Accessors;
|
import lombok.experimental.Accessors;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* <p>
|
|
||||||
* 邮费详情设置
|
* 邮费详情设置
|
||||||
* </p>
|
|
||||||
*
|
|
||||||
* @author hzs
|
|
||||||
* @since 2022-08-29
|
|
||||||
*/
|
*/
|
||||||
@Data
|
@Data
|
||||||
@EqualsAndHashCode(callSuper = false)
|
@EqualsAndHashCode(callSuper = false)
|
||||||
@Accessors(chain = true)
|
@Accessors(chain = true)
|
||||||
@TableName("BD_POSTAGE_DETAIL")
|
@TableName("BD_POSTAGE_DETAIL")
|
||||||
@KeySequence("BD_POSTAGE_DETAIL_SEQ")
|
@KeySequence("BD_POSTAGE_DETAIL_SEQ")
|
||||||
public class BdPostageDetail extends BaseEntity {
|
public class BdPostageDetail extends BaseEntity {
|
||||||
|
|
||||||
private static final long serialVersionUID = 1L;
|
private static final long serialVersionUID = 1L;
|
||||||
|
|
||||||
|
@ -32,7 +27,6 @@ public class BdPostageDetail extends BaseEntity {
|
||||||
private Integer pkId;
|
private Integer pkId;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 首重重量
|
* 首重重量
|
||||||
*/
|
*/
|
||||||
|
|
Loading…
Reference in New Issue