Compare commits
No commits in common. "48863d8dc722a152c79dfdca4f354f6681a474e2" and "10c98b6d997d3b3254f7bb3f4b6402d7ffff2356" have entirely different histories.
48863d8dc7
...
10c98b6d99
|
|
@ -4,14 +4,15 @@ import cn.hutool.core.collection.CollectionUtil;
|
||||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||||
import com.hzs.bonus.achieve.mapper.CuMemberRetailRangeMapper;
|
import com.hzs.bonus.achieve.mapper.CuMemberRetailRangeMapper;
|
||||||
import com.hzs.bonus.achieve.service.ICuMemberRetailRangeService;
|
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.constant.MagicNumberConstants;
|
||||||
|
import com.hzs.common.core.enums.EOrderType;
|
||||||
import com.hzs.common.domain.member.achieve.CuMemberRetailDetail;
|
import com.hzs.common.domain.member.achieve.CuMemberRetailDetail;
|
||||||
import com.hzs.common.domain.member.achieve.CuMemberRetailRange;
|
import com.hzs.common.domain.member.achieve.CuMemberRetailRange;
|
||||||
import com.hzs.common.domain.member.achieve.ext.CuMemberRetailRangeExt;
|
import com.hzs.common.domain.member.achieve.ext.CuMemberRetailRangeExt;
|
||||||
import com.hzs.common.domain.member.base.CuMember;
|
import com.hzs.common.domain.member.base.CuMember;
|
||||||
import com.hzs.common.domain.member.ext.CuMemberExt;
|
import com.hzs.common.domain.member.ext.CuMemberExt;
|
||||||
import com.hzs.common.domain.sale.ext.SaOrderExt;
|
import com.hzs.common.domain.sale.ext.SaOrderExt;
|
||||||
|
import org.apache.ibatis.annotations.Param;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
|
|
@ -26,8 +27,6 @@ public class CuMemberRetailRangeServiceImpl extends ServiceImpl<CuMemberRetailRa
|
||||||
|
|
||||||
@Autowired
|
@Autowired
|
||||||
private CuMemberBonusSettle cuMemberBonusSettle;
|
private CuMemberBonusSettle cuMemberBonusSettle;
|
||||||
@Autowired
|
|
||||||
private ICuMemberTreeService iCuMemberTreeService;
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void mergeMemberRetailRangeByYesterday(String rangeTableName, String yesterdayRangeTableName, Boolean isSameMonth) {
|
public void mergeMemberRetailRangeByYesterday(String rangeTableName, String yesterdayRangeTableName, Boolean isSameMonth) {
|
||||||
|
|
@ -43,9 +42,6 @@ public class CuMemberRetailRangeServiceImpl extends ServiceImpl<CuMemberRetailRa
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void mergeMemberRetailRangeDetailByYesterday(String detailTableName, String yesterdayDetailTableName) {
|
public void mergeMemberRetailRangeDetailByYesterday(String detailTableName, String yesterdayDetailTableName) {
|
||||||
// 清空当前明细表
|
|
||||||
iCuMemberTreeService.truncateCuMemberTreeTable(detailTableName);
|
|
||||||
// 用昨天的数据初始化当前明细表
|
|
||||||
baseMapper.mergeMemberRetailRangeDetailByYesterday(detailTableName, yesterdayDetailTableName);
|
baseMapper.mergeMemberRetailRangeDetailByYesterday(detailTableName, yesterdayDetailTableName);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -98,13 +94,7 @@ public class CuMemberRetailRangeServiceImpl extends ServiceImpl<CuMemberRetailRa
|
||||||
Collection<CuMemberRetailDetail> retailDetailColl = new ArrayList<>();
|
Collection<CuMemberRetailDetail> retailDetailColl = new ArrayList<>();
|
||||||
memberRangeExtMap.forEach((key, value) -> {
|
memberRangeExtMap.forEach((key, value) -> {
|
||||||
if (null != value.getOneDetailMap() && value.getOneDetailMap().size() > 0) {
|
if (null != value.getOneDetailMap() && value.getOneDetailMap().size() > 0) {
|
||||||
Collection<CuMemberRetailDetail> tmpDetailColl = value.getOneDetailMap().values();
|
retailDetailColl.addAll(value.getOneDetailMap().values());
|
||||||
for (CuMemberRetailDetail cuMemberRetailDetail : tmpDetailColl) {
|
|
||||||
// 只有需要更新的才进行入库操作
|
|
||||||
if (null != cuMemberRetailDetail.getUpdateBool()) {
|
|
||||||
retailDetailColl.add(cuMemberRetailDetail);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
List<List<?>> list = cuMemberBonusSettle.handleCutList(retailDetailColl);
|
List<List<?>> list = cuMemberBonusSettle.handleCutList(retailDetailColl);
|
||||||
|
|
|
||||||
|
|
@ -2,23 +2,10 @@ package com.hzs.bonus.bonus.mapper;
|
||||||
|
|
||||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||||
import com.hzs.common.domain.member.bonus.CuMemberBonusStage;
|
import com.hzs.common.domain.member.bonus.CuMemberBonusStage;
|
||||||
import org.apache.ibatis.annotations.Param;
|
|
||||||
|
|
||||||
import java.util.List;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 会员奖金-阶段收益明细表 Mapper 接口
|
* 会员奖金-阶段收益明细表 Mapper 接口
|
||||||
*/
|
*/
|
||||||
public interface CuMemberBonusStageMapper extends BaseMapper<CuMemberBonusStage> {
|
public interface CuMemberBonusStageMapper extends BaseMapper<CuMemberBonusStage> {
|
||||||
|
|
||||||
/**
|
|
||||||
* 删除会员阶段奖金表
|
|
||||||
*/
|
|
||||||
void deleteCuMemberBonusStage(Integer period);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 批量插入会员阶段奖
|
|
||||||
*/
|
|
||||||
void batchInsertCuMemberBonusStage(@Param("cuMemberBonusStageList") List<?> cuMemberBonusStageList);
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -3,46 +3,20 @@ package com.hzs.bonus.bonus.service;
|
||||||
import com.baomidou.mybatisplus.extension.service.IService;
|
import com.baomidou.mybatisplus.extension.service.IService;
|
||||||
import com.hzs.common.domain.member.achieve.CuMemberRetailDetail;
|
import com.hzs.common.domain.member.achieve.CuMemberRetailDetail;
|
||||||
import com.hzs.common.domain.member.achieve.ext.CuMemberRetailRangeExt;
|
import com.hzs.common.domain.member.achieve.ext.CuMemberRetailRangeExt;
|
||||||
import com.hzs.common.domain.member.bonus.CuMemberBonus;
|
|
||||||
import com.hzs.common.domain.member.bonus.CuMemberBonusStage;
|
import com.hzs.common.domain.member.bonus.CuMemberBonusStage;
|
||||||
import com.hzs.common.domain.sale.ext.SaOrderExt;
|
|
||||||
|
|
||||||
import java.util.List;
|
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
import java.util.Set;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 会员奖金-阶段收益明细表 服务类
|
* 会员奖金-阶段收益明细表 服务类
|
||||||
*/
|
*/
|
||||||
public interface ICuMemberBonusStageService extends IService<CuMemberBonusStage> {
|
public interface ICuMemberBonusStageService extends IService<CuMemberBonusStage> {
|
||||||
|
|
||||||
/**
|
|
||||||
* 删除会员阶段奖金表
|
|
||||||
*/
|
|
||||||
void deleteCuMemberBonusStage(Integer period);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 批量插入会员阶段奖
|
|
||||||
*/
|
|
||||||
void batchInsertCuMemberBonusStage(List<CuMemberBonusStage> cuMemberBonusStageList, Set<Long> memberIdSet);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 获取阶段收益信息
|
|
||||||
*/
|
|
||||||
CuMemberBonusStage getCuMemberBonusStage(SaOrderExt saOrderExt, CuMemberRetailRangeExt cuMemberRetailRange,
|
|
||||||
CuMemberBonus cuMemberBonus, Integer pkBonusItems);
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 填充会员点位
|
* 填充会员点位
|
||||||
*/
|
*/
|
||||||
String fillChildNode(CuMemberRetailDetail cuMemberRetailDetail, CuMemberRetailDetail newRetailDetail);
|
String fillChildNode(CuMemberRetailDetail cuMemberRetailDetail, CuMemberRetailDetail newRetailDetail);
|
||||||
|
|
||||||
/**
|
|
||||||
* 填充指定点位
|
|
||||||
*/
|
|
||||||
void fillRetailDetail(CuMemberRetailDetail targetRetailDetail, String point,
|
|
||||||
Long pkMember, Integer childNode);
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 处理新点位是推荐第一层
|
* 处理新点位是推荐第一层
|
||||||
*/
|
*/
|
||||||
|
|
@ -64,5 +38,4 @@ public interface ICuMemberBonusStageService extends IService<CuMemberBonusStage>
|
||||||
CuMemberRetailDetail newRetailDetail, CuMemberRetailDetail newParentRetailDetail,
|
CuMemberRetailDetail newRetailDetail, CuMemberRetailDetail newParentRetailDetail,
|
||||||
String rangeTableName, String rangeDetailTableName, String newNode);
|
String rangeTableName, String rangeDetailTableName, String newNode);
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -79,19 +79,6 @@ public abstract class BonusSettleHandle {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 获得 阶段收益 备注
|
|
||||||
*/
|
|
||||||
protected void stageIncomeRemark(SaOrderExt saOrderExt, CuMemberBonusStage cuMemberBonusStage,
|
|
||||||
CuMemberRetailRangeExt sourceMember, CuMemberRetailRangeExt targetMember) {
|
|
||||||
String remark = String.format(BonusMsgConstants.STAGE_INCOME, saOrderExt.getOrderCode(),
|
|
||||||
sourceMember.getMemberCode() + sourceMember.getMemberName(),
|
|
||||||
targetMember.getMemberCode() + targetMember.getMemberName(),
|
|
||||||
cuMemberBonusStage.getChildNode(), cuMemberBonusStage.getStage());
|
|
||||||
cuMemberBonusStage.setRemark(remark);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 获得 直推级差收益的备注
|
* 获得 直推级差收益的备注
|
||||||
*
|
*
|
||||||
|
|
|
||||||
|
|
@ -278,7 +278,7 @@ public class BonusSettleRangeHandle extends BonusSettleHandle {
|
||||||
Date settleEndDate = DateUtils.afterDate(1, ChronoUnit.DAYS, settleStartDate);
|
Date settleEndDate = DateUtils.afterDate(1, ChronoUnit.DAYS, settleStartDate);
|
||||||
|
|
||||||
// 新零售订单(注册、复购)
|
// 新零售订单(注册、复购)
|
||||||
List<SaOrderExt> orderList = iBonusOrderService.listRetailSaOrder(settleStartDate, settleEndDate, null, Arrays.asList(EOrderType.RETAIL_REGISTER.getValue(), EOrderType.RETAIL_UPGRADE.getValue(), EOrderType.RETAIL_REPURCHASE.getValue()));
|
List<SaOrderExt> orderList = iBonusOrderService.listRetailSaOrder(settleStartDate, settleEndDate, null, Arrays.asList(EOrderType.RETAIL_REGISTER.getValue(), EOrderType.RETAIL_REPURCHASE.getValue()));
|
||||||
|
|
||||||
// 更新当月会员, 将昨天业绩更到到今天,更新当月会员考核结果,有消费的考核通过
|
// 更新当月会员, 将昨天业绩更到到今天,更新当月会员考核结果,有消费的考核通过
|
||||||
// 结算期间表
|
// 结算期间表
|
||||||
|
|
@ -354,9 +354,6 @@ public class BonusSettleRangeHandle extends BonusSettleHandle {
|
||||||
if (cuMemberBonusPushList.size() > 0) {
|
if (cuMemberBonusPushList.size() > 0) {
|
||||||
bonusRecordDetailVO.setCuMemberBonusPushList(cuMemberBonusPushList);
|
bonusRecordDetailVO.setCuMemberBonusPushList(cuMemberBonusPushList);
|
||||||
}
|
}
|
||||||
if (cuMemberBonusStageList.size() > 0) {
|
|
||||||
bonusRecordDetailVO.setCuMemberBonusStageList(cuMemberBonusStageList);
|
|
||||||
}
|
|
||||||
if (cuMemberBonusRangeList.size() > 0) {
|
if (cuMemberBonusRangeList.size() > 0) {
|
||||||
bonusRecordDetailVO.setCuMemberBonusRangeList(cuMemberBonusRangeList);
|
bonusRecordDetailVO.setCuMemberBonusRangeList(cuMemberBonusRangeList);
|
||||||
}
|
}
|
||||||
|
|
@ -371,7 +368,6 @@ public class BonusSettleRangeHandle extends BonusSettleHandle {
|
||||||
}
|
}
|
||||||
// 更新日结数据
|
// 更新日结数据
|
||||||
iCuMemberRetailRangeService.updateCuMemberRetailRange(rangeTableName, memberRangeExtMap);
|
iCuMemberRetailRangeService.updateCuMemberRetailRange(rangeTableName, memberRangeExtMap);
|
||||||
CuMemberRetailRangeExt tt = memberRangeExtMap.get(20363L);
|
|
||||||
// 更新日结明细数据
|
// 更新日结明细数据
|
||||||
iCuMemberRetailRangeService.updateCuMemberRetailDetail(rangeDetailTableName, memberRangeExtMap);
|
iCuMemberRetailRangeService.updateCuMemberRetailDetail(rangeDetailTableName, memberRangeExtMap);
|
||||||
}
|
}
|
||||||
|
|
@ -951,8 +947,6 @@ public class BonusSettleRangeHandle extends BonusSettleHandle {
|
||||||
}
|
}
|
||||||
// 当前会员子点位总数
|
// 当前会员子点位总数
|
||||||
int pointCount = sourceMember.getPointCount();
|
int pointCount = sourceMember.getPointCount();
|
||||||
|
|
||||||
newPointInt:
|
|
||||||
for (int i = 1; i <= newPointInt; i++) {
|
for (int i = 1; i <= newPointInt; i++) {
|
||||||
// 订单会员生成的新点位
|
// 订单会员生成的新点位
|
||||||
CuMemberRetailDetail newRetailDetail = CuMemberRetailDetail.builder()
|
CuMemberRetailDetail newRetailDetail = CuMemberRetailDetail.builder()
|
||||||
|
|
@ -964,7 +958,6 @@ public class BonusSettleRangeHandle extends BonusSettleHandle {
|
||||||
.pointType(EBonusStageType.NORMAL.getValue())
|
.pointType(EBonusStageType.NORMAL.getValue())
|
||||||
.pointGift(0)
|
.pointGift(0)
|
||||||
.creationTime(settleDate)
|
.creationTime(settleDate)
|
||||||
.updateBool(0)
|
|
||||||
.build();
|
.build();
|
||||||
detailList.put(newRetailDetail.getChildNode(), newRetailDetail);
|
detailList.put(newRetailDetail.getChildNode(), newRetailDetail);
|
||||||
|
|
||||||
|
|
@ -984,142 +977,47 @@ public class BonusSettleRangeHandle extends BonusSettleHandle {
|
||||||
// 推荐人没有未完成点位,继续往上找
|
// 推荐人没有未完成点位,继续往上找
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
for (Map.Entry<Integer, CuMemberRetailDetail> integerCuMemberRetailDetailEntry : parentDetailList.entrySet()) {
|
parentDetailList.forEach((key, parentRetailDetail) -> {
|
||||||
// 第一层填充
|
|
||||||
CuMemberRetailDetail parentRetailDetail = integerCuMemberRetailDetailEntry.getValue();
|
|
||||||
// 遍历推荐人点位,使用第一个未完成的点位,进行填充
|
// 遍历推荐人点位,使用第一个未完成的点位,进行填充
|
||||||
if (EBonusStageStatus.NO.getValue() == parentRetailDetail.getStageStatus()) {
|
if (EBonusStageStatus.NO.getValue() == parentRetailDetail.getStageStatus()) {
|
||||||
if (null == parentRetailDetail.getPointMember11()) {
|
String newNode = iCuMemberBonusStageService.fillChildNode(parentRetailDetail, newRetailDetail);
|
||||||
iCuMemberBonusStageService.fillRetailDetail(parentRetailDetail, BonusConstants.POINT_11,
|
if (null == newNode) {
|
||||||
newRetailDetail.getPkMember(), newRetailDetail.getChildNode());
|
return;
|
||||||
|
}
|
||||||
|
switch (newNode) {
|
||||||
|
case BonusConstants.POINT_11:
|
||||||
|
case BonusConstants.POINT_12:
|
||||||
// 新点位是推荐人点位的第一层
|
// 新点位是推荐人点位的第一层
|
||||||
iCuMemberBonusStageService.handlePointFirst(memberRangeExtMap, newRetailDetail, parentRetailDetail,
|
iCuMemberBonusStageService.handlePointFirst(memberRangeExtMap, newRetailDetail, parentRetailDetail,
|
||||||
rangeTableName, rangeDetailTableName, BonusConstants.POINT_11);
|
rangeTableName, rangeDetailTableName, newNode);
|
||||||
// 当前新子点位填充完成,进入下一个新子点位
|
break;
|
||||||
continue newPointInt;
|
case BonusConstants.POINT_21:
|
||||||
} else if (null == parentRetailDetail.getPointMember12()) {
|
case BonusConstants.POINT_22:
|
||||||
iCuMemberBonusStageService.fillRetailDetail(parentRetailDetail, BonusConstants.POINT_12,
|
case BonusConstants.POINT_23:
|
||||||
newRetailDetail.getPkMember(), newRetailDetail.getChildNode());
|
case BonusConstants.POINT_24:
|
||||||
// 新点位是推荐人点位的第一层
|
|
||||||
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,
|
iCuMemberBonusStageService.handlePointSecond(memberRangeExtMap, newRetailDetail, parentRetailDetail,
|
||||||
rangeTableName, rangeDetailTableName, BonusConstants.POINT_21);
|
rangeTableName, rangeDetailTableName, newNode);
|
||||||
// 当前新子点位填充完成,进入下一个新子点位
|
break;
|
||||||
continue newPointInt;
|
case BonusConstants.POINT_38:
|
||||||
} else if (null == parentRetailDetail.getPointMember22()) {
|
// 第一个点位已经全部填满,更新完成状态和时间
|
||||||
iCuMemberBonusStageService.fillRetailDetail(parentRetailDetail, BonusConstants.POINT_22,
|
parentRetailDetail.setStageStatus(EBonusStageStatus.YES.getValue());
|
||||||
newRetailDetail.getPkMember(), newRetailDetail.getChildNode());
|
parentRetailDetail.setStageDate(settleDate);
|
||||||
// 新点位是推荐人点位的第二层
|
// TODO 一阶段全满则需要发放一阶段奖金
|
||||||
iCuMemberBonusStageService.handlePointSecond(memberRangeExtMap, newRetailDetail, parentRetailDetail,
|
// TODO 需要记录填满子点位,用来处理生成二阶段以及生成赠点
|
||||||
rangeTableName, rangeDetailTableName, BonusConstants.POINT_22);
|
case BonusConstants.POINT_31:
|
||||||
// 当前新子点位填充完成,进入下一个新子点位
|
case BonusConstants.POINT_32:
|
||||||
continue newPointInt;
|
case BonusConstants.POINT_33:
|
||||||
} else if (null == parentRetailDetail.getPointMember23()) {
|
case BonusConstants.POINT_34:
|
||||||
iCuMemberBonusStageService.fillRetailDetail(parentRetailDetail, BonusConstants.POINT_23,
|
case BonusConstants.POINT_35:
|
||||||
newRetailDetail.getPkMember(), newRetailDetail.getChildNode());
|
case BonusConstants.POINT_36:
|
||||||
// 新点位是推荐人点位的第二层
|
case BonusConstants.POINT_37:
|
||||||
iCuMemberBonusStageService.handlePointSecond(memberRangeExtMap, newRetailDetail, parentRetailDetail,
|
// 新点位是推荐人点位的第三层
|
||||||
rangeTableName, rangeDetailTableName, BonusConstants.POINT_23);
|
iCuMemberBonusStageService.handlePointThird(memberRangeExtMap, newRetailDetail, parentRetailDetail,
|
||||||
// 当前新子点位填充完成,进入下一个新子点位
|
rangeTableName, rangeDetailTableName, newNode);
|
||||||
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;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -40,23 +40,22 @@ public class BonusSettleServiceImpl implements IBonusSettleService {
|
||||||
@Autowired
|
@Autowired
|
||||||
private IBonusOrderService iBonusOrderService;
|
private IBonusOrderService iBonusOrderService;
|
||||||
@Autowired
|
@Autowired
|
||||||
|
private ICuMemberSettlePeriodService cuMemberSettlePeriodService;
|
||||||
|
@Autowired
|
||||||
private BonusSettleRangeHandle bonusSettleRangeHandle;
|
private BonusSettleRangeHandle bonusSettleRangeHandle;
|
||||||
@Autowired
|
@Autowired
|
||||||
private ICuMemberSettlePeriodService iCuMemberSettlePeriodService;
|
private ICuMemberBonusService cuMemberBonusService;
|
||||||
@Autowired
|
@Autowired
|
||||||
private ICuMemberBonusService iCuMemberBonusService;
|
private ICuMemberBonusPushService cuMemberBonusPushService;
|
||||||
@Autowired
|
@Autowired
|
||||||
private ICuMemberBonusPushService iCuMemberBonusPushService;
|
private ICuMemberBonusRangeService cuMemberBonusRangeService;
|
||||||
@Autowired
|
@Autowired
|
||||||
private ICuMemberBonusStageService iCuMemberBonusStageService;
|
private ICuMemberBonusDetailService cuMemberBonusDetailService;
|
||||||
@Autowired
|
|
||||||
private ICuMemberBonusRangeService iCuMemberBonusRangeService;
|
|
||||||
@Autowired
|
|
||||||
private ICuMemberBonusDetailService iCuMemberBonusDetailService;
|
|
||||||
@Autowired
|
@Autowired
|
||||||
private ICuMemberRetailRangeService iCuMemberRetailRangeService;
|
private ICuMemberRetailRangeService iCuMemberRetailRangeService;
|
||||||
@Autowired
|
@Autowired
|
||||||
private ICuMemberService iCuMemberService;
|
private ICuMemberService cuMemberService;
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
@ -69,8 +68,8 @@ public class BonusSettleServiceImpl implements IBonusSettleService {
|
||||||
List<CuMemberBonus> cuMemberBonusList = setCuMemberBonusSeq(settleDate, cuMemberBonusMap);
|
List<CuMemberBonus> cuMemberBonusList = setCuMemberBonusSeq(settleDate, cuMemberBonusMap);
|
||||||
if (cuMemberBonusList.size() > 0) {
|
if (cuMemberBonusList.size() > 0) {
|
||||||
// 插入奖金主表
|
// 插入奖金主表
|
||||||
iCuMemberBonusService.insertOrUpdateCuMemberBonus(cuMemberBonusList);
|
cuMemberBonusService.insertOrUpdateCuMemberBonus(cuMemberBonusList);
|
||||||
List<CuMemberBonus> cuMemberBonuses = iCuMemberBonusService.queryCuMemberBonus(period, cuMemberBonusList);
|
List<CuMemberBonus> cuMemberBonuses = cuMemberBonusService.queryCuMemberBonus(period, cuMemberBonusList);
|
||||||
cuMemberBonuses.forEach(cuMemberBonus -> cuMemberBonusMap.put(cuMemberBonus.getPkMember(), cuMemberBonus));
|
cuMemberBonuses.forEach(cuMemberBonus -> cuMemberBonusMap.put(cuMemberBonus.getPkMember(), cuMemberBonus));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -80,10 +79,10 @@ public class BonusSettleServiceImpl implements IBonusSettleService {
|
||||||
public void calculateCuMemberBonus(String settleDate) {
|
public void calculateCuMemberBonus(String settleDate) {
|
||||||
try {
|
try {
|
||||||
// 结算期间
|
// 结算期间
|
||||||
Integer period = iCuMemberSettlePeriodService.getCuMemberSettlePeriodByDate(settleDate).getPkId();
|
Integer period = cuMemberSettlePeriodService.getCuMemberSettlePeriodByDate(settleDate).getPkId();
|
||||||
String yesterday = DateUtils.beforeDateStr(1, ChronoUnit.DAYS, DateUtils.YYYY_MM_DD, settleDate);
|
String yesterday = DateUtils.beforeDateStr(1, ChronoUnit.DAYS, DateUtils.YYYY_MM_DD, settleDate);
|
||||||
// 结算期间前一天期间
|
// 结算期间前一天期间
|
||||||
Integer yesterdayPeriod = iCuMemberSettlePeriodService.getCuMemberSettlePeriodByDate(yesterday).getPkId();
|
Integer yesterdayPeriod = cuMemberSettlePeriodService.getCuMemberSettlePeriodByDate(yesterday).getPkId();
|
||||||
|
|
||||||
// 获取所有国家的奖金项 key = 国家 + 奖金项的值
|
// 获取所有国家的奖金项 key = 国家 + 奖金项的值
|
||||||
BonusConfigDTO bonusConfigDTO = iBonusItemsServiceApi.queryBonusConfigDTO().getData();
|
BonusConfigDTO bonusConfigDTO = iBonusItemsServiceApi.queryBonusConfigDTO().getData();
|
||||||
|
|
@ -122,10 +121,10 @@ public class BonusSettleServiceImpl implements IBonusSettleService {
|
||||||
// 处理奖金结算秒结表,判断是否存在当天结算的秒接表,从cu_member中获取网体,从昨日结算表中获取累计、结余数据
|
// 处理奖金结算秒结表,判断是否存在当天结算的秒接表,从cu_member中获取网体,从昨日结算表中获取累计、结余数据
|
||||||
// 今天结算期数
|
// 今天结算期数
|
||||||
String settleDate = DateUtils.parseDateToStr(DateUtils.YYYY_MM_DD, saOrderExt.getPayTime());
|
String settleDate = DateUtils.parseDateToStr(DateUtils.YYYY_MM_DD, saOrderExt.getPayTime());
|
||||||
int currentPeriod = iCuMemberSettlePeriodService.getCuMemberSettlePeriodByDate(settleDate).getPkId();
|
int currentPeriod = cuMemberSettlePeriodService.getCuMemberSettlePeriodByDate(settleDate).getPkId();
|
||||||
// 昨天结算期数
|
// 昨天结算期数
|
||||||
String beforeDay = DateUtils.parseDateToStr(DateUtils.YYYY_MM_DD, DateUtils.beforeDate(1, ChronoUnit.DAYS, saOrderExt.getPayTime()));
|
String beforeDay = DateUtils.parseDateToStr(DateUtils.YYYY_MM_DD, DateUtils.beforeDate(1, ChronoUnit.DAYS, saOrderExt.getPayTime()));
|
||||||
int beforePeriod = iCuMemberSettlePeriodService.getCuMemberSettlePeriodByDate(beforeDay).getPkId();
|
int beforePeriod = cuMemberSettlePeriodService.getCuMemberSettlePeriodByDate(beforeDay).getPkId();
|
||||||
// 秒结表名
|
// 秒结表名
|
||||||
String secondRangeTableName = TableNameConstants.CU_MEMBER_RETAIL_S + currentPeriod;
|
String secondRangeTableName = TableNameConstants.CU_MEMBER_RETAIL_S + currentPeriod;
|
||||||
|
|
||||||
|
|
@ -138,28 +137,28 @@ public class BonusSettleServiceImpl implements IBonusSettleService {
|
||||||
secondRangeTableName, beforePeriod, currentPeriod, cuMemberBonusMap, cuMemberBonusDetailList);
|
secondRangeTableName, beforePeriod, currentPeriod, cuMemberBonusMap, cuMemberBonusDetailList);
|
||||||
saveCuMemberBonus(currentPeriod, settleDate, cuMemberBonusMap);
|
saveCuMemberBonus(currentPeriod, settleDate, cuMemberBonusMap);
|
||||||
|
|
||||||
Set<Long> memberIdSet = iCuMemberBonusService.queryMemberBonusByPeriod(currentPeriod);
|
Set<Long> memberIdSet = cuMemberBonusService.queryMemberBonusByPeriod(currentPeriod);
|
||||||
if (cuMemberBonusRangeList.size() > 0) {
|
if (cuMemberBonusRangeList.size() > 0) {
|
||||||
cuMemberBonusRangeList.forEach(cuMemberBonusRange ->
|
cuMemberBonusRangeList.forEach(cuMemberBonusRange ->
|
||||||
cuMemberBonusRange.setPkBonus(cuMemberBonusMap.get(cuMemberBonusRange.getPkBonus()).getPkId()));
|
cuMemberBonusRange.setPkBonus(cuMemberBonusMap.get(cuMemberBonusRange.getPkBonus()).getPkId()));
|
||||||
iCuMemberBonusRangeService.batchInsertCuMemberBonusRange(cuMemberBonusRangeList, memberIdSet);
|
cuMemberBonusRangeService.batchInsertCuMemberBonusRange(cuMemberBonusRangeList, memberIdSet);
|
||||||
}
|
}
|
||||||
if (cuMemberBonusDetailList.size() > 0) {
|
if (cuMemberBonusDetailList.size() > 0) {
|
||||||
cuMemberBonusDetailList.forEach(cuMemberBonusDetail ->
|
cuMemberBonusDetailList.forEach(cuMemberBonusDetail ->
|
||||||
cuMemberBonusDetail.setPkBonus(cuMemberBonusMap.get(cuMemberBonusDetail.getPkBonus()).getPkId()));
|
cuMemberBonusDetail.setPkBonus(cuMemberBonusMap.get(cuMemberBonusDetail.getPkBonus()).getPkId()));
|
||||||
iCuMemberBonusDetailService.batchInsertCuMemberBonusDetail(cuMemberBonusDetailList, memberIdSet);
|
cuMemberBonusDetailService.batchInsertCuMemberBonusDetail(cuMemberBonusDetailList, memberIdSet);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
// 订单撤单处理(逆向)
|
// 订单撤单处理(逆向)
|
||||||
if (!DateUtils.isSameDay(saOrderExt.getPayTime(), DateUtils.currentDate())) {
|
if (!DateUtils.isSameDay(saOrderExt.getPayTime(), DateUtils.currentDate())) {
|
||||||
settleDate = DateUtils.parseDateToFormat(DateUtils.YYYY_MM_DD, DateUtils.beforeDate(1, ChronoUnit.DAYS));
|
settleDate = DateUtils.parseDateToFormat(DateUtils.YYYY_MM_DD, DateUtils.beforeDate(1, ChronoUnit.DAYS));
|
||||||
currentPeriod = iCuMemberSettlePeriodService.getCuMemberSettlePeriodByDate(settleDate).getPkId();
|
currentPeriod = cuMemberSettlePeriodService.getCuMemberSettlePeriodByDate(settleDate).getPkId();
|
||||||
}
|
}
|
||||||
// 实时计算撤单数据(业绩、等级、奖衔、日奖)
|
// 实时计算撤单数据(业绩、等级、奖衔、日奖)
|
||||||
bonusSettleRangeHandle.calculateCuMemberBackRetailIncome(saOrderExt, bonusConfigDTO,
|
bonusSettleRangeHandle.calculateCuMemberBackRetailIncome(saOrderExt, bonusConfigDTO,
|
||||||
secondRangeTableName, beforePeriod, currentPeriod);
|
secondRangeTableName, beforePeriod, currentPeriod);
|
||||||
// 处理收益
|
// 处理收益
|
||||||
iCuMemberBonusService.mergeBackMemberBonusIncome(saOrderExt.getPkId());
|
cuMemberBonusService.mergeBackMemberBonusIncome(saOrderExt.getPkId());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -178,11 +177,11 @@ public class BonusSettleServiceImpl implements IBonusSettleService {
|
||||||
}
|
}
|
||||||
// 今天结算期数
|
// 今天结算期数
|
||||||
String settleDate = DateUtils.parseDateToStr(DateUtils.YYYY_MM_DD, orderExt.getPayTime());
|
String settleDate = DateUtils.parseDateToStr(DateUtils.YYYY_MM_DD, orderExt.getPayTime());
|
||||||
int currentPeriod = iCuMemberSettlePeriodService.getCuMemberSettlePeriodByDate(settleDate).getPkId();
|
int currentPeriod = cuMemberSettlePeriodService.getCuMemberSettlePeriodByDate(settleDate).getPkId();
|
||||||
// 秒结表名
|
// 秒结表名
|
||||||
String secondRangeTableName = TableNameConstants.CU_MEMBER_RETAIL_S + currentPeriod;
|
String secondRangeTableName = TableNameConstants.CU_MEMBER_RETAIL_S + currentPeriod;
|
||||||
List<CuMemberExt> memberList = iCuMemberRetailRangeService.findParentMemberList(orderExt.getPkMember());
|
List<CuMemberExt> memberList = iCuMemberRetailRangeService.findParentMemberList(orderExt.getPkMember());
|
||||||
CuMember self = iCuMemberService.getById(orderExt.getPkId());
|
CuMember self = cuMemberService.getById(orderExt.getPkId());
|
||||||
iCuMemberRetailRangeService.updateMemberRetailSecondRangeSelf(secondRangeTableName, orderExt, self, updateType, symbol);
|
iCuMemberRetailRangeService.updateMemberRetailSecondRangeSelf(secondRangeTableName, orderExt, self, updateType, symbol);
|
||||||
iCuMemberRetailRangeService.updateMemberRetailSecondRangeParent(secondRangeTableName, orderExt, memberList, updateType, symbol);
|
iCuMemberRetailRangeService.updateMemberRetailSecondRangeParent(secondRangeTableName, orderExt, memberList, updateType, symbol);
|
||||||
}
|
}
|
||||||
|
|
@ -194,11 +193,10 @@ public class BonusSettleServiceImpl implements IBonusSettleService {
|
||||||
* @param bonusRecordDetailVO 奖金明细表
|
* @param bonusRecordDetailVO 奖金明细表
|
||||||
*/
|
*/
|
||||||
void insertCuMemberBonus(String settleDate, Integer period, Map<Long, CuMemberBonus> cuMemberBonusMap, BonusRecordDetailVO bonusRecordDetailVO) {
|
void insertCuMemberBonus(String settleDate, Integer period, Map<Long, CuMemberBonus> cuMemberBonusMap, BonusRecordDetailVO bonusRecordDetailVO) {
|
||||||
iCuMemberBonusPushService.deleteCuMemberBonusPush(period);
|
cuMemberBonusPushService.deleteCuMemberBonusPush(period);
|
||||||
iCuMemberBonusStageService.deleteCuMemberBonusStage(period);
|
cuMemberBonusDetailService.deleteCuMemberBonusDetail(period);
|
||||||
iCuMemberBonusDetailService.deleteCuMemberBonusDetail(period);
|
cuMemberBonusRangeService.deleteCuMemberBonusRange(period);
|
||||||
iCuMemberBonusRangeService.deleteCuMemberBonusRange(period);
|
cuMemberBonusService.deleteCuMemberBonus(period);
|
||||||
iCuMemberBonusService.deleteCuMemberBonus(period);
|
|
||||||
if (cuMemberBonusMap.size() == 0) {
|
if (cuMemberBonusMap.size() == 0) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
@ -209,17 +207,11 @@ public class BonusSettleServiceImpl implements IBonusSettleService {
|
||||||
List<CuMemberBonusPush> cuMemberBonusPushList = bonusRecordDetailVO.getCuMemberBonusPushList();
|
List<CuMemberBonusPush> cuMemberBonusPushList = bonusRecordDetailVO.getCuMemberBonusPushList();
|
||||||
List<CuMemberBonusDetail> cuMemberBonusDetailList = bonusRecordDetailVO.getCuMemberBonusDetailList();
|
List<CuMemberBonusDetail> cuMemberBonusDetailList = bonusRecordDetailVO.getCuMemberBonusDetailList();
|
||||||
List<CuMemberBonusRange> cuMemberBonusRangeList = bonusRecordDetailVO.getCuMemberBonusRangeList();
|
List<CuMemberBonusRange> cuMemberBonusRangeList = bonusRecordDetailVO.getCuMemberBonusRangeList();
|
||||||
// 阶段收益奖金明细
|
|
||||||
List<CuMemberBonusStage> cuMemberBonusStageList = bonusRecordDetailVO.getCuMemberBonusStageList();
|
|
||||||
if (cuMemberBonusPushList != null && cuMemberBonusPushList.size() > 0) {
|
if (cuMemberBonusPushList != null && cuMemberBonusPushList.size() > 0) {
|
||||||
cuMemberBonusPushList.forEach(cuMemberBonusPush ->
|
cuMemberBonusPushList.forEach(cuMemberBonusPush ->
|
||||||
cuMemberBonusPush.setPkBonus(cuMemberBonusMap.get(cuMemberBonusPush.getPkBonus()).getPkId()));
|
cuMemberBonusPush.setPkBonus(cuMemberBonusMap.get(cuMemberBonusPush.getPkBonus()).getPkId()));
|
||||||
batchMemberBonusPushList.addAll(cuMemberBonusPushList);
|
batchMemberBonusPushList.addAll(cuMemberBonusPushList);
|
||||||
}
|
}
|
||||||
if (cuMemberBonusStageList != null && cuMemberBonusStageList.size() > 0) {
|
|
||||||
cuMemberBonusStageList.forEach(cuMemberBonusStage ->
|
|
||||||
cuMemberBonusStage.setPkBonus(cuMemberBonusMap.get(cuMemberBonusStage.getPkBonus()).getPkId()));
|
|
||||||
}
|
|
||||||
if (cuMemberBonusDetailList != null && cuMemberBonusDetailList.size() > 0) {
|
if (cuMemberBonusDetailList != null && cuMemberBonusDetailList.size() > 0) {
|
||||||
cuMemberBonusDetailList.forEach(cuMemberBonusDetail ->
|
cuMemberBonusDetailList.forEach(cuMemberBonusDetail ->
|
||||||
cuMemberBonusDetail.setPkBonus(cuMemberBonusMap.get(cuMemberBonusDetail.getPkBonus()).getPkId()));
|
cuMemberBonusDetail.setPkBonus(cuMemberBonusMap.get(cuMemberBonusDetail.getPkBonus()).getPkId()));
|
||||||
|
|
@ -231,16 +223,15 @@ public class BonusSettleServiceImpl implements IBonusSettleService {
|
||||||
batchMemberBonusRangeList.addAll(cuMemberBonusRangeList);
|
batchMemberBonusRangeList.addAll(cuMemberBonusRangeList);
|
||||||
}
|
}
|
||||||
// 插入奖金主表
|
// 插入奖金主表
|
||||||
iCuMemberBonusService.batchInsertCuMemberBonus(cuMemberBonusList);
|
cuMemberBonusService.batchInsertCuMemberBonus(cuMemberBonusList);
|
||||||
Set<Long> memberIdSet = iCuMemberBonusService.queryMemberBonusByPeriod(period);
|
Set<Long> memberIdSet = cuMemberBonusService.queryMemberBonusByPeriod(period);
|
||||||
iCuMemberBonusPushService.batchInsertCuMemberBonusPush(batchMemberBonusPushList, memberIdSet);
|
cuMemberBonusPushService.batchInsertCuMemberBonusPush(batchMemberBonusPushList, memberIdSet);
|
||||||
iCuMemberBonusStageService.batchInsertCuMemberBonusStage(cuMemberBonusStageList, memberIdSet);
|
cuMemberBonusDetailService.batchInsertCuMemberBonusDetail(batchMemberBonusDetailList, memberIdSet);
|
||||||
iCuMemberBonusDetailService.batchInsertCuMemberBonusDetail(batchMemberBonusDetailList, memberIdSet);
|
cuMemberBonusRangeService.batchInsertCuMemberBonusRange(batchMemberBonusRangeList, memberIdSet);
|
||||||
iCuMemberBonusRangeService.batchInsertCuMemberBonusRange(batchMemberBonusRangeList, memberIdSet);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private List<CuMemberBonus> setCuMemberBonusSeq(String settleDate, Map<Long, CuMemberBonus> cuMemberBonusMap) {
|
private List<CuMemberBonus> setCuMemberBonusSeq(String settleDate, Map<Long, CuMemberBonus> cuMemberBonusMap) {
|
||||||
List<Long> pkIdList = iCuMemberBonusService.batchQueryCuMemberBonusSeq(cuMemberBonusMap.size());
|
List<Long> pkIdList = cuMemberBonusService.batchQueryCuMemberBonusSeq(cuMemberBonusMap.size());
|
||||||
int i = 0;
|
int i = 0;
|
||||||
// 判断时间,重算的时候直接是已公布
|
// 判断时间,重算的时候直接是已公布
|
||||||
Integer grantStatus = EGrantStatus.SETTLED.getValue();
|
Integer grantStatus = EGrantStatus.SETTLED.getValue();
|
||||||
|
|
|
||||||
|
|
@ -5,26 +5,23 @@ import cn.hutool.core.util.ObjectUtil;
|
||||||
import cn.hutool.core.util.ReflectUtil;
|
import cn.hutool.core.util.ReflectUtil;
|
||||||
import com.hzs.bonus.achieve.mapper.CuMemberRetailRangeMapper;
|
import com.hzs.bonus.achieve.mapper.CuMemberRetailRangeMapper;
|
||||||
import com.hzs.bonus.achieve.service.ICuMemberRetailDetailService;
|
import com.hzs.bonus.achieve.service.ICuMemberRetailDetailService;
|
||||||
import com.hzs.bonus.achieve.service.impl.CuMemberBonusSettle;
|
|
||||||
import com.hzs.bonus.bonus.mapper.CuMemberBonusStageMapper;
|
import com.hzs.bonus.bonus.mapper.CuMemberBonusStageMapper;
|
||||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||||
import com.hzs.bonus.bonus.service.ICuMemberBonusStageService;
|
import com.hzs.bonus.bonus.service.ICuMemberBonusStageService;
|
||||||
import com.hzs.bonus.constant.BonusConstants;
|
import com.hzs.bonus.constant.BonusConstants;
|
||||||
import com.hzs.common.core.constant.MagicNumberConstants;
|
|
||||||
import com.hzs.common.core.enums.EBonusStage;
|
import com.hzs.common.core.enums.EBonusStage;
|
||||||
import com.hzs.common.core.enums.ECalType;
|
|
||||||
import com.hzs.common.domain.member.achieve.CuMemberRetailDetail;
|
import com.hzs.common.domain.member.achieve.CuMemberRetailDetail;
|
||||||
import com.hzs.common.domain.member.achieve.ext.CuMemberRetailRangeExt;
|
import com.hzs.common.domain.member.achieve.ext.CuMemberRetailRangeExt;
|
||||||
import com.hzs.common.domain.member.bonus.CuMemberBonus;
|
|
||||||
import com.hzs.common.domain.member.bonus.CuMemberBonusStage;
|
import com.hzs.common.domain.member.bonus.CuMemberBonusStage;
|
||||||
import com.hzs.common.domain.sale.ext.SaOrderExt;
|
|
||||||
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 javax.annotation.Resource;
|
||||||
import java.lang.reflect.Field;
|
import java.lang.reflect.Field;
|
||||||
import java.math.BigDecimal;
|
import java.util.ArrayList;
|
||||||
import java.util.*;
|
import java.util.HashMap;
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 会员奖金-阶段收益明细表 服务实现类
|
* 会员奖金-阶段收益明细表 服务实现类
|
||||||
|
|
@ -32,65 +29,25 @@ import java.util.*;
|
||||||
@Service
|
@Service
|
||||||
public class CuMemberBonusStageServiceImpl extends ServiceImpl<CuMemberBonusStageMapper, CuMemberBonusStage> implements ICuMemberBonusStageService {
|
public class CuMemberBonusStageServiceImpl extends ServiceImpl<CuMemberBonusStageMapper, CuMemberBonusStage> implements ICuMemberBonusStageService {
|
||||||
|
|
||||||
@Autowired
|
|
||||||
private CuMemberBonusSettle cuMemberBonusSettle;
|
|
||||||
@Autowired
|
@Autowired
|
||||||
private ICuMemberRetailDetailService iCuMemberRetailDetailService;
|
private ICuMemberRetailDetailService iCuMemberRetailDetailService;
|
||||||
|
|
||||||
@Resource
|
@Resource
|
||||||
private CuMemberRetailRangeMapper cuMemberRetailRangeMapper;
|
private CuMemberRetailRangeMapper cuMemberRetailRangeMapper;
|
||||||
|
|
||||||
@Override
|
private void initFieldMap() {
|
||||||
public void deleteCuMemberBonusStage(Integer period) {
|
BonusConstants.FIELD_MAP = new HashMap<>();
|
||||||
baseMapper.deleteCuMemberBonusStage(period);
|
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 void batchInsertCuMemberBonusStage(List<CuMemberBonusStage> cuMemberBonusStageList, Set<Long> memberIdSet) {
|
|
||||||
if (CollectionUtil.isEmpty(cuMemberBonusStageList)) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
List<CuMemberBonusStage> addMemberBonusStageList = new ArrayList<>();
|
|
||||||
for (CuMemberBonusStage cuMemberBonusStage : cuMemberBonusStageList) {
|
|
||||||
if (memberIdSet.contains(cuMemberBonusStage.getPkBonus())) {
|
|
||||||
addMemberBonusStageList.add(cuMemberBonusStage);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (addMemberBonusStageList.size() == 0) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
List<List<?>> lists = cuMemberBonusSettle.handleCutList(addMemberBonusStageList);
|
|
||||||
lists.forEach(list ->
|
|
||||||
baseMapper.batchInsertCuMemberBonusStage(list));
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 获取阶段收益信息
|
|
||||||
*/
|
|
||||||
@Override
|
|
||||||
public CuMemberBonusStage getCuMemberBonusStage(SaOrderExt saOrderExt, CuMemberRetailRangeExt cuMemberRetailRange, CuMemberBonus cuMemberBonus, Integer pkBonusItems) {
|
|
||||||
CuMemberBonusStage cuMemberBonusStage = CuMemberBonusStage.builder()
|
|
||||||
.pkBonus(cuMemberBonus.getPkId())
|
|
||||||
.pkOrder(saOrderExt.getPkId())
|
|
||||||
.pkBonusItems(pkBonusItems)
|
|
||||||
.incomeStatus(cuMemberRetailRange.getIncomeStatus())
|
|
||||||
.calType(ECalType.VALUE.getValue())
|
|
||||||
.calAchieve(BigDecimal.ZERO)
|
|
||||||
.calValue(BigDecimal.ZERO)
|
|
||||||
.pretaxIncome(BigDecimal.ZERO)
|
|
||||||
.incomeTax(BigDecimal.ZERO)
|
|
||||||
.realIncome(BigDecimal.ZERO)
|
|
||||||
.incomeRatio(BigDecimal.ZERO)
|
|
||||||
.incomeDialRatio(BigDecimal.ZERO)
|
|
||||||
.orderDialRatio(BigDecimal.ZERO)
|
|
||||||
.build();
|
|
||||||
cuMemberBonusStage.setPkCountry(cuMemberRetailRange.getPkSettleCountry());
|
|
||||||
cuMemberBonusStage.setPkCreator(MagicNumberConstants.PK_ADMIN);
|
|
||||||
return cuMemberBonusStage;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String fillChildNode(CuMemberRetailDetail cuMemberRetailDetail, CuMemberRetailDetail newRetailDetail) {
|
public String fillChildNode(CuMemberRetailDetail cuMemberRetailDetail, CuMemberRetailDetail newRetailDetail) {
|
||||||
|
if (ObjectUtil.isEmpty(BonusConstants.FIELD_MAP)) {
|
||||||
|
initFieldMap();
|
||||||
|
}
|
||||||
for (String suffix : BonusConstants.FIELD_LIST) {
|
for (String suffix : BonusConstants.FIELD_LIST) {
|
||||||
Field pointMemberField = BonusConstants.FIELD_MAP.get(BonusConstants.POINT_MEMBER_FIELD_NAME + suffix);
|
Field pointMemberField = BonusConstants.FIELD_MAP.get(BonusConstants.POINT_MEMBER_FIELD_NAME + suffix);
|
||||||
Field pointField = BonusConstants.FIELD_MAP.get(BonusConstants.POINT_FIELD_NAME + suffix);
|
Field pointField = BonusConstants.FIELD_MAP.get(BonusConstants.POINT_FIELD_NAME + suffix);
|
||||||
|
|
@ -98,7 +55,6 @@ public class CuMemberBonusStageServiceImpl extends ServiceImpl<CuMemberBonusStag
|
||||||
if (ObjectUtil.isEmpty(pointFieldValue)) {
|
if (ObjectUtil.isEmpty(pointFieldValue)) {
|
||||||
ReflectUtil.setFieldValue(cuMemberRetailDetail, pointMemberField, newRetailDetail.getPkMember());
|
ReflectUtil.setFieldValue(cuMemberRetailDetail, pointMemberField, newRetailDetail.getPkMember());
|
||||||
ReflectUtil.setFieldValue(cuMemberRetailDetail, pointField, newRetailDetail.getChildNode());
|
ReflectUtil.setFieldValue(cuMemberRetailDetail, pointField, newRetailDetail.getChildNode());
|
||||||
ReflectUtil.setFieldValue(cuMemberRetailDetail, BonusConstants.UPDATE_FLAG, 0);
|
|
||||||
return suffix;
|
return suffix;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -108,7 +64,7 @@ public class CuMemberBonusStageServiceImpl extends ServiceImpl<CuMemberBonusStag
|
||||||
/**
|
/**
|
||||||
* 向上填充子点位
|
* 向上填充子点位
|
||||||
*/
|
*/
|
||||||
private void fillUpTargetRetailDetail(CuMemberRetailDetail targetRetailDetail, CuMemberRetailDetail newParentRetailDetail,
|
public void fillUpTargetRetailDetail(CuMemberRetailDetail targetRetailDetail, CuMemberRetailDetail newParentRetailDetail,
|
||||||
CuMemberRetailDetail newRetailDetail, String node) {
|
CuMemberRetailDetail newRetailDetail, String node) {
|
||||||
if (null == targetRetailDetail) {
|
if (null == targetRetailDetail) {
|
||||||
return;
|
return;
|
||||||
|
|
@ -122,60 +78,80 @@ public class CuMemberBonusStageServiceImpl extends ServiceImpl<CuMemberBonusStag
|
||||||
switch (suffix) {
|
switch (suffix) {
|
||||||
case BonusConstants.POINT_11:
|
case BonusConstants.POINT_11:
|
||||||
if (BonusConstants.POINT_11.equals(node)) {
|
if (BonusConstants.POINT_11.equals(node)) {
|
||||||
this.fillRetailDetail(targetRetailDetail, BonusConstants.POINT_21, newRetailDetail.getPkMember(), newRetailDetail.getChildNode());
|
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());
|
||||||
} else if (BonusConstants.POINT_12.equals(node)) {
|
} else if (BonusConstants.POINT_12.equals(node)) {
|
||||||
this.fillRetailDetail(targetRetailDetail, BonusConstants.POINT_22, newRetailDetail.getPkMember(), newRetailDetail.getChildNode());
|
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());
|
||||||
} else if (BonusConstants.POINT_21.equals(node)) {
|
} else if (BonusConstants.POINT_21.equals(node)) {
|
||||||
this.fillRetailDetail(targetRetailDetail, BonusConstants.POINT_31, newRetailDetail.getPkMember(), newRetailDetail.getChildNode());
|
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());
|
||||||
} else if (BonusConstants.POINT_22.equals(node)) {
|
} else if (BonusConstants.POINT_22.equals(node)) {
|
||||||
this.fillRetailDetail(targetRetailDetail, BonusConstants.POINT_32, newRetailDetail.getPkMember(), newRetailDetail.getChildNode());
|
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());
|
||||||
} else if (BonusConstants.POINT_23.equals(node)) {
|
} else if (BonusConstants.POINT_23.equals(node)) {
|
||||||
this.fillRetailDetail(targetRetailDetail, BonusConstants.POINT_33, newRetailDetail.getPkMember(), newRetailDetail.getChildNode());
|
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());
|
||||||
} else if (BonusConstants.POINT_24.equals(node)) {
|
} else if (BonusConstants.POINT_24.equals(node)) {
|
||||||
this.fillRetailDetail(targetRetailDetail, BonusConstants.POINT_34, newRetailDetail.getPkMember(), newRetailDetail.getChildNode());
|
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());
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case BonusConstants.POINT_12:
|
case BonusConstants.POINT_12:
|
||||||
if (BonusConstants.POINT_11.equals(node)) {
|
if (BonusConstants.POINT_11.equals(node)) {
|
||||||
this.fillRetailDetail(targetRetailDetail, BonusConstants.POINT_23, newRetailDetail.getPkMember(), newRetailDetail.getChildNode());
|
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());
|
||||||
} else if (BonusConstants.POINT_12.equals(node)) {
|
} else if (BonusConstants.POINT_12.equals(node)) {
|
||||||
this.fillRetailDetail(targetRetailDetail, BonusConstants.POINT_24, newRetailDetail.getPkMember(), newRetailDetail.getChildNode());
|
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());
|
||||||
} else if (BonusConstants.POINT_21.equals(node)) {
|
} else if (BonusConstants.POINT_21.equals(node)) {
|
||||||
this.fillRetailDetail(targetRetailDetail, BonusConstants.POINT_35, newRetailDetail.getPkMember(), newRetailDetail.getChildNode());
|
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());
|
||||||
} else if (BonusConstants.POINT_22.equals(node)) {
|
} else if (BonusConstants.POINT_22.equals(node)) {
|
||||||
this.fillRetailDetail(targetRetailDetail, BonusConstants.POINT_36, newRetailDetail.getPkMember(), newRetailDetail.getChildNode());
|
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());
|
||||||
} else if (BonusConstants.POINT_23.equals(node)) {
|
} else if (BonusConstants.POINT_23.equals(node)) {
|
||||||
this.fillRetailDetail(targetRetailDetail, BonusConstants.POINT_37, newRetailDetail.getPkMember(), newRetailDetail.getChildNode());
|
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());
|
||||||
} else if (BonusConstants.POINT_24.equals(node)) {
|
} else if (BonusConstants.POINT_24.equals(node)) {
|
||||||
this.fillRetailDetail(targetRetailDetail, BonusConstants.POINT_38, newRetailDetail.getPkMember(), newRetailDetail.getChildNode());
|
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());
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case BonusConstants.POINT_21:
|
case BonusConstants.POINT_21:
|
||||||
if (BonusConstants.POINT_11.equals(node)) {
|
if (BonusConstants.POINT_11.equals(node)) {
|
||||||
this.fillRetailDetail(targetRetailDetail, BonusConstants.POINT_31, newRetailDetail.getPkMember(), newRetailDetail.getChildNode());
|
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());
|
||||||
} else if (BonusConstants.POINT_12.equals(node)) {
|
} else if (BonusConstants.POINT_12.equals(node)) {
|
||||||
this.fillRetailDetail(targetRetailDetail, BonusConstants.POINT_32, newRetailDetail.getPkMember(), newRetailDetail.getChildNode());
|
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());
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case BonusConstants.POINT_22:
|
case BonusConstants.POINT_22:
|
||||||
if (BonusConstants.POINT_11.equals(node)) {
|
if (BonusConstants.POINT_11.equals(node)) {
|
||||||
this.fillRetailDetail(targetRetailDetail, BonusConstants.POINT_33, newRetailDetail.getPkMember(), newRetailDetail.getChildNode());
|
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());
|
||||||
} else if (BonusConstants.POINT_12.equals(node)) {
|
} else if (BonusConstants.POINT_12.equals(node)) {
|
||||||
this.fillRetailDetail(targetRetailDetail, BonusConstants.POINT_34, newRetailDetail.getPkMember(), newRetailDetail.getChildNode());
|
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());
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case BonusConstants.POINT_23:
|
case BonusConstants.POINT_23:
|
||||||
if (BonusConstants.POINT_11.equals(node)) {
|
if (BonusConstants.POINT_11.equals(node)) {
|
||||||
this.fillRetailDetail(targetRetailDetail, BonusConstants.POINT_35, newRetailDetail.getPkMember(), newRetailDetail.getChildNode());
|
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());
|
||||||
} else if (BonusConstants.POINT_12.equals(node)) {
|
} else if (BonusConstants.POINT_12.equals(node)) {
|
||||||
this.fillRetailDetail(targetRetailDetail, BonusConstants.POINT_36, newRetailDetail.getPkMember(), newRetailDetail.getChildNode());
|
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());
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case BonusConstants.POINT_24:
|
case BonusConstants.POINT_24:
|
||||||
if (BonusConstants.POINT_11.equals(node)) {
|
if (BonusConstants.POINT_11.equals(node)) {
|
||||||
this.fillRetailDetail(targetRetailDetail, BonusConstants.POINT_37, newRetailDetail.getPkMember(), newRetailDetail.getChildNode());
|
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());
|
||||||
} else if (BonusConstants.POINT_12.equals(node)) {
|
} else if (BonusConstants.POINT_12.equals(node)) {
|
||||||
this.fillRetailDetail(targetRetailDetail, BonusConstants.POINT_38, newRetailDetail.getPkMember(), newRetailDetail.getChildNode());
|
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());
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
@ -187,7 +163,7 @@ public class CuMemberBonusStageServiceImpl extends ServiceImpl<CuMemberBonusStag
|
||||||
/**
|
/**
|
||||||
* 向下填充子点位
|
* 向下填充子点位
|
||||||
*/
|
*/
|
||||||
private void fillDownTargetRetailDetail(CuMemberRetailDetail targetRetailDetail, CuMemberRetailDetail newRetailDetail,
|
public void fillDownTargetRetailDetail(CuMemberRetailDetail targetRetailDetail, CuMemberRetailDetail newRetailDetail,
|
||||||
String node, Integer level) {
|
String node, Integer level) {
|
||||||
if (null == targetRetailDetail) {
|
if (null == targetRetailDetail) {
|
||||||
return;
|
return;
|
||||||
|
|
@ -199,43 +175,38 @@ public class CuMemberBonusStageServiceImpl extends ServiceImpl<CuMemberBonusStag
|
||||||
|| BonusConstants.POINT_33.equals(node)
|
|| BonusConstants.POINT_33.equals(node)
|
||||||
|| BonusConstants.POINT_35.equals(node)
|
|| BonusConstants.POINT_35.equals(node)
|
||||||
|| BonusConstants.POINT_37.equals(node)) {
|
|| BonusConstants.POINT_37.equals(node)) {
|
||||||
this.fillRetailDetail(targetRetailDetail, BonusConstants.POINT_11, newRetailDetail.getPkMember(), newRetailDetail.getChildNode());
|
targetRetailDetail.setPointMember11(newRetailDetail.getPkMember());
|
||||||
|
targetRetailDetail.setPoint11(newRetailDetail.getChildNode());
|
||||||
} else if (BonusConstants.POINT_22.equals(node)
|
} else if (BonusConstants.POINT_22.equals(node)
|
||||||
|| BonusConstants.POINT_24.equals(node)
|
|| BonusConstants.POINT_24.equals(node)
|
||||||
|| BonusConstants.POINT_32.equals(node)
|
|| BonusConstants.POINT_32.equals(node)
|
||||||
|| BonusConstants.POINT_34.equals(node)
|
|| BonusConstants.POINT_34.equals(node)
|
||||||
|| BonusConstants.POINT_36.equals(node)
|
|| BonusConstants.POINT_36.equals(node)
|
||||||
|| BonusConstants.POINT_38.equals(node)) {
|
|| BonusConstants.POINT_38.equals(node)) {
|
||||||
this.fillRetailDetail(targetRetailDetail, BonusConstants.POINT_12, newRetailDetail.getPkMember(), newRetailDetail.getChildNode());
|
targetRetailDetail.setPointMember12(newRetailDetail.getPkMember());
|
||||||
|
targetRetailDetail.setPoint12(newRetailDetail.getChildNode());
|
||||||
}
|
}
|
||||||
} else if (level.equals(2)) {
|
} else if (level.equals(2)) {
|
||||||
if (BonusConstants.POINT_31.equals(node)
|
if (BonusConstants.POINT_31.equals(node)
|
||||||
|| BonusConstants.POINT_35.equals(node)) {
|
|| BonusConstants.POINT_35.equals(node)) {
|
||||||
this.fillRetailDetail(targetRetailDetail, BonusConstants.POINT_21, newRetailDetail.getPkMember(), newRetailDetail.getChildNode());
|
targetRetailDetail.setPointMember21(newRetailDetail.getPkMember());
|
||||||
|
targetRetailDetail.setPoint21(newRetailDetail.getChildNode());
|
||||||
} else if (BonusConstants.POINT_32.equals(node)
|
} else if (BonusConstants.POINT_32.equals(node)
|
||||||
|| BonusConstants.POINT_36.equals(node)) {
|
|| BonusConstants.POINT_36.equals(node)) {
|
||||||
this.fillRetailDetail(targetRetailDetail, BonusConstants.POINT_22, newRetailDetail.getPkMember(), newRetailDetail.getChildNode());
|
targetRetailDetail.setPointMember22(newRetailDetail.getPkMember());
|
||||||
|
targetRetailDetail.setPoint22(newRetailDetail.getChildNode());
|
||||||
} else if (BonusConstants.POINT_33.equals(node)
|
} else if (BonusConstants.POINT_33.equals(node)
|
||||||
|| BonusConstants.POINT_37.equals(node)) {
|
|| BonusConstants.POINT_37.equals(node)) {
|
||||||
this.fillRetailDetail(targetRetailDetail, BonusConstants.POINT_23, newRetailDetail.getPkMember(), newRetailDetail.getChildNode());
|
targetRetailDetail.setPointMember23(newRetailDetail.getPkMember());
|
||||||
|
targetRetailDetail.setPoint23(newRetailDetail.getChildNode());
|
||||||
} else if (BonusConstants.POINT_34.equals(node)
|
} else if (BonusConstants.POINT_34.equals(node)
|
||||||
|| BonusConstants.POINT_38.equals(node)) {
|
|| BonusConstants.POINT_38.equals(node)) {
|
||||||
this.fillRetailDetail(targetRetailDetail, BonusConstants.POINT_24, newRetailDetail.getPkMember(), newRetailDetail.getChildNode());
|
targetRetailDetail.setPointMember24(newRetailDetail.getPkMember());
|
||||||
|
targetRetailDetail.setPoint24(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
|
@Override
|
||||||
public void handlePointFirst(Map<Long, CuMemberRetailRangeExt> memberRangeExtMap,
|
public void handlePointFirst(Map<Long, CuMemberRetailRangeExt> memberRangeExtMap,
|
||||||
CuMemberRetailDetail newRetailDetail, CuMemberRetailDetail newParentRetailDetail,
|
CuMemberRetailDetail newRetailDetail, CuMemberRetailDetail newParentRetailDetail,
|
||||||
|
|
@ -267,27 +238,24 @@ public class CuMemberBonusStageServiceImpl extends ServiceImpl<CuMemberBonusStag
|
||||||
}
|
}
|
||||||
|
|
||||||
// 新点位的上第二层
|
// 新点位的上第二层
|
||||||
|
newRetailDetail.setPointMemberSecond(newParentRetailDetail.getPointMemberFirst());
|
||||||
|
newRetailDetail.setPointSecond(newParentRetailDetail.getPointFirst());
|
||||||
CuMemberRetailRangeExt firstMemberRetail = memberRangeExtMap.get(newParentRetailDetail.getPointMemberFirst());
|
CuMemberRetailRangeExt firstMemberRetail = memberRangeExtMap.get(newParentRetailDetail.getPointMemberFirst());
|
||||||
if (null != firstMemberRetail) {
|
if (null != firstMemberRetail) {
|
||||||
CuMemberRetailDetail memberDetail = firstMemberRetail.getOneDetailMap().get(newParentRetailDetail.getPointFirst());
|
CuMemberRetailDetail memberDetail = firstMemberRetail.getOneDetailMap().get(newParentRetailDetail.getPointFirst());
|
||||||
if (null != memberDetail) {
|
|
||||||
newRetailDetail.setPointMemberSecond(newParentRetailDetail.getPointMemberFirst());
|
|
||||||
newRetailDetail.setPointSecond(newParentRetailDetail.getPointFirst());
|
|
||||||
this.fillUpTargetRetailDetail(memberDetail, newParentRetailDetail, newRetailDetail, newNode);
|
this.fillUpTargetRetailDetail(memberDetail, newParentRetailDetail, newRetailDetail, newNode);
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
// 新点位的上第三层
|
// 新点位的上第三层
|
||||||
|
newRetailDetail.setPointMemberThird(newParentRetailDetail.getPointMemberSecond());
|
||||||
|
newRetailDetail.setPointThird(newParentRetailDetail.getPointSecond());
|
||||||
CuMemberRetailRangeExt secondMemberRetail = memberRangeExtMap.get(newParentRetailDetail.getPointMemberSecond());
|
CuMemberRetailRangeExt secondMemberRetail = memberRangeExtMap.get(newParentRetailDetail.getPointMemberSecond());
|
||||||
if (null != secondMemberRetail) {
|
if (null != secondMemberRetail) {
|
||||||
CuMemberRetailDetail memberDetail = secondMemberRetail.getOneDetailMap().get(newParentRetailDetail.getPointSecond());
|
CuMemberRetailDetail memberDetail = secondMemberRetail.getOneDetailMap().get(newParentRetailDetail.getPointSecond());
|
||||||
if (null != memberDetail) {
|
|
||||||
newRetailDetail.setPointMemberThird(newParentRetailDetail.getPointMemberSecond());
|
|
||||||
newRetailDetail.setPointThird(newParentRetailDetail.getPointSecond());
|
|
||||||
this.fillUpTargetRetailDetail(memberDetail, newParentRetailDetail, newRetailDetail, newNode);
|
this.fillUpTargetRetailDetail(memberDetail, newParentRetailDetail, newRetailDetail, newNode);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void handlePointSecond(Map<Long, CuMemberRetailRangeExt> memberRangeExtMap,
|
public void handlePointSecond(Map<Long, CuMemberRetailRangeExt> memberRangeExtMap,
|
||||||
|
|
@ -300,7 +268,7 @@ public class CuMemberBonusStageServiceImpl extends ServiceImpl<CuMemberBonusStag
|
||||||
List<Long> queryMemberList = new ArrayList<>(2);
|
List<Long> queryMemberList = new ArrayList<>(2);
|
||||||
// 获取上第三层结算数据
|
// 获取上第三层结算数据
|
||||||
CuMemberRetailRangeExt memberUpFirst = memberRangeExtMap.get(newParentRetailDetail.getPointMemberFirst());
|
CuMemberRetailRangeExt memberUpFirst = memberRangeExtMap.get(newParentRetailDetail.getPointMemberFirst());
|
||||||
if (null == memberUpFirst && null != newParentRetailDetail.getPointMemberFirst()) {
|
if (null == memberUpFirst) {
|
||||||
queryMemberList.add(newParentRetailDetail.getPointMemberFirst());
|
queryMemberList.add(newParentRetailDetail.getPointMemberFirst());
|
||||||
}
|
}
|
||||||
// 获取上第一层结算数据
|
// 获取上第一层结算数据
|
||||||
|
|
@ -319,7 +287,7 @@ public class CuMemberBonusStageServiceImpl extends ServiceImpl<CuMemberBonusStag
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
CuMemberRetailRangeExt memberDownFirst = memberRangeExtMap.get(downFirstMember);
|
CuMemberRetailRangeExt memberDownFirst = memberRangeExtMap.get(downFirstMember);
|
||||||
if (null == memberDownFirst && null != downFirstMember) {
|
if (null == memberDownFirst) {
|
||||||
queryMemberList.add(downFirstMember);
|
queryMemberList.add(downFirstMember);
|
||||||
}
|
}
|
||||||
if (CollectionUtil.isNotEmpty(queryMemberList)) {
|
if (CollectionUtil.isNotEmpty(queryMemberList)) {
|
||||||
|
|
@ -335,15 +303,13 @@ public class CuMemberBonusStageServiceImpl extends ServiceImpl<CuMemberBonusStag
|
||||||
}
|
}
|
||||||
|
|
||||||
// 新点位的上第三层
|
// 新点位的上第三层
|
||||||
|
newRetailDetail.setPointMemberThird(newParentRetailDetail.getPointMemberFirst());
|
||||||
|
newRetailDetail.setPointThird(newParentRetailDetail.getPointFirst());
|
||||||
CuMemberRetailRangeExt thirdMemberRetail = memberRangeExtMap.get(newParentRetailDetail.getPointMemberFirst());
|
CuMemberRetailRangeExt thirdMemberRetail = memberRangeExtMap.get(newParentRetailDetail.getPointMemberFirst());
|
||||||
if (null != thirdMemberRetail) {
|
if (null != thirdMemberRetail) {
|
||||||
CuMemberRetailDetail memberDetail = thirdMemberRetail.getOneDetailMap().get(newParentRetailDetail.getPointFirst());
|
CuMemberRetailDetail memberDetail = thirdMemberRetail.getOneDetailMap().get(newParentRetailDetail.getPointFirst());
|
||||||
if (null != memberDetail) {
|
|
||||||
newRetailDetail.setPointMemberThird(newParentRetailDetail.getPointMemberFirst());
|
|
||||||
newRetailDetail.setPointThird(newParentRetailDetail.getPointFirst());
|
|
||||||
this.fillUpTargetRetailDetail(memberDetail, newParentRetailDetail, newRetailDetail, newNode);
|
this.fillUpTargetRetailDetail(memberDetail, newParentRetailDetail, newRetailDetail, newNode);
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
// 新点位的上第一层
|
// 新点位的上第一层
|
||||||
CuMemberRetailRangeExt firstMemberRetail = memberRangeExtMap.get(downFirstMember);
|
CuMemberRetailRangeExt firstMemberRetail = memberRangeExtMap.get(downFirstMember);
|
||||||
|
|
@ -405,11 +371,11 @@ public class CuMemberBonusStageServiceImpl extends ServiceImpl<CuMemberBonusStag
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
CuMemberRetailRangeExt memberDownSecond = memberRangeExtMap.get(downSecondMember);
|
CuMemberRetailRangeExt memberDownSecond = memberRangeExtMap.get(downSecondMember);
|
||||||
if (null == memberDownSecond && null != downSecondMember) {
|
if (null == memberDownSecond) {
|
||||||
queryMemberList.add(downSecondMember);
|
queryMemberList.add(downSecondMember);
|
||||||
}
|
}
|
||||||
CuMemberRetailRangeExt memberDownFirst = memberRangeExtMap.get(downFirstMember);
|
CuMemberRetailRangeExt memberDownFirst = memberRangeExtMap.get(downFirstMember);
|
||||||
if (null == memberDownFirst && null != downFirstMember) {
|
if (null == memberDownFirst) {
|
||||||
queryMemberList.add(downFirstMember);
|
queryMemberList.add(downFirstMember);
|
||||||
}
|
}
|
||||||
if (CollectionUtil.isNotEmpty(queryMemberList)) {
|
if (CollectionUtil.isNotEmpty(queryMemberList)) {
|
||||||
|
|
|
||||||
|
|
@ -18,15 +18,10 @@ public class BonusRecordDetailVO implements Serializable {
|
||||||
private Long pkMember;
|
private Long pkMember;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 直推收益、见点收益
|
*
|
||||||
*/
|
*/
|
||||||
private List<CuMemberBonusPush> cuMemberBonusPushList;
|
private List<CuMemberBonusPush> cuMemberBonusPushList;
|
||||||
|
|
||||||
/**
|
|
||||||
* 阶段收益
|
|
||||||
*/
|
|
||||||
private List<CuMemberBonusStage> cuMemberBonusStageList;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 新零售 - 区域分红、月度分红
|
* 新零售 - 区域分红、月度分红
|
||||||
*/
|
*/
|
||||||
|
|
|
||||||
|
|
@ -1,11 +1,7 @@
|
||||||
package com.hzs.bonus.constant;
|
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.lang.reflect.Field;
|
||||||
import java.util.Arrays;
|
import java.util.Arrays;
|
||||||
import java.util.HashMap;
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
||||||
|
|
@ -29,21 +25,9 @@ public class BonusConstants {
|
||||||
public static final List<String> FIELD_LIST = Arrays.asList(POINT_11, POINT_12, POINT_21, POINT_22, POINT_23, POINT_24,
|
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);
|
POINT_31, POINT_32, POINT_33, POINT_34, POINT_35, POINT_36, POINT_37, POINT_38);
|
||||||
|
|
||||||
// 会员ID字段
|
|
||||||
public static final String POINT_MEMBER_FIELD_NAME = "pointMember";
|
|
||||||
// 会员子点位字段
|
|
||||||
public static final String POINT_FIELD_NAME = "point";
|
public static final String POINT_FIELD_NAME = "point";
|
||||||
// 入库标记字段
|
public static final String POINT_MEMBER_FIELD_NAME = "pointMember";
|
||||||
public static final String UPDATE_FLAG = "updateBool";
|
|
||||||
|
|
||||||
public static Map<String, Field> FIELD_MAP = null;
|
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_status NUMBER(1) default 1 not null,
|
||||||
stage_date DATE,
|
stage_date DATE,
|
||||||
point_11 NUMBER(8),
|
point_11 NUMBER(8),
|
||||||
point_member_11 NUMBER(20),
|
|
||||||
point_12 NUMBER(8),
|
point_12 NUMBER(8),
|
||||||
point_member_12 NUMBER(20),
|
|
||||||
point_21 NUMBER(8),
|
point_21 NUMBER(8),
|
||||||
point_member_21 NUMBER(20),
|
|
||||||
point_22 NUMBER(8),
|
point_22 NUMBER(8),
|
||||||
point_member_22 NUMBER(20),
|
|
||||||
point_23 NUMBER(8),
|
point_23 NUMBER(8),
|
||||||
point_member_23 NUMBER(20),
|
|
||||||
point_24 NUMBER(8),
|
point_24 NUMBER(8),
|
||||||
point_member_24 NUMBER(20),
|
|
||||||
point_31 NUMBER(8),
|
point_31 NUMBER(8),
|
||||||
point_member_31 NUMBER(20),
|
|
||||||
point_32 NUMBER(8),
|
point_32 NUMBER(8),
|
||||||
point_member_32 NUMBER(20),
|
|
||||||
point_33 NUMBER(8),
|
point_33 NUMBER(8),
|
||||||
point_member_33 NUMBER(20),
|
|
||||||
point_34 NUMBER(8),
|
point_34 NUMBER(8),
|
||||||
point_member_34 NUMBER(20),
|
|
||||||
point_35 NUMBER(8),
|
point_35 NUMBER(8),
|
||||||
point_member_35 NUMBER(20),
|
|
||||||
point_36 NUMBER(8),
|
point_36 NUMBER(8),
|
||||||
point_member_36 NUMBER(20),
|
|
||||||
point_37 NUMBER(8),
|
point_37 NUMBER(8),
|
||||||
point_member_37 NUMBER(20),
|
|
||||||
point_38 NUMBER(8),
|
point_38 NUMBER(8),
|
||||||
|
point_member_11 NUMBER(20),
|
||||||
|
point_member_12 NUMBER(20),
|
||||||
|
point_member_21 NUMBER(20),
|
||||||
|
point_member_22 NUMBER(20),
|
||||||
|
point_member_23 NUMBER(20),
|
||||||
|
point_member_24 NUMBER(20),
|
||||||
|
point_member_31 NUMBER(20),
|
||||||
|
point_member_32 NUMBER(20),
|
||||||
|
point_member_33 NUMBER(20),
|
||||||
|
point_member_34 NUMBER(20),
|
||||||
|
point_member_35 NUMBER(20),
|
||||||
|
point_member_36 NUMBER(20),
|
||||||
|
point_member_37 NUMBER(20),
|
||||||
point_member_38 NUMBER(20),
|
point_member_38 NUMBER(20),
|
||||||
point_type NUMBER(1) default 0 not null,
|
point_type NUMBER(1) default 0 not null,
|
||||||
point_gift NUMBER(1) default 0 not null,
|
point_gift NUMBER(1) default 0 not null,
|
||||||
|
|
|
||||||
|
|
@ -2,36 +2,31 @@
|
||||||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||||
<mapper namespace="com.hzs.bonus.bonus.mapper.CuMemberBonusStageMapper">
|
<mapper namespace="com.hzs.bonus.bonus.mapper.CuMemberBonusStageMapper">
|
||||||
|
|
||||||
<!-- 删除会员阶段奖金表 -->
|
<!-- 通用查询映射结果 -->
|
||||||
<delete id="deleteCuMemberBonusStage">
|
<resultMap id="BaseResultMap" type="com.hzs.common.domain.member.bonus.CuMemberBonusStage">
|
||||||
delete
|
<id column="PK_ID" property="pkId"/>
|
||||||
from CU_MEMBER_BONUS_STAGE
|
<result column="DEL_FLAG" property="delFlag"/>
|
||||||
where PK_BONUS in (
|
<result column="PK_COUNTRY" property="pkCountry"/>
|
||||||
select pk_id
|
<result column="PK_CREATOR" property="pkCreator"/>
|
||||||
from cu_member_bonus
|
<result column="CREATION_TIME" property="creationTime"/>
|
||||||
where period = #{period}
|
<result column="PK_MODIFIED" property="pkModified"/>
|
||||||
and grant_status <= 2)
|
<result column="MODIFIED_TIME" property="modifiedTime"/>
|
||||||
</delete>
|
<result column="PK_BONUS" property="pkBonus"/>
|
||||||
|
<result column="PK_ORDER" property="pkOrder"/>
|
||||||
<!-- 批量插入会员阶段奖 -->
|
<result column="PK_BONUS_ITEMS" property="pkBonusItems"/>
|
||||||
<insert id="batchInsertCuMemberBonusStage">
|
<result column="INCOME_STATUS" property="incomeStatus"/>
|
||||||
insert ALL
|
<result column="CAL_TYPE" property="calType"/>
|
||||||
<foreach item="item" index="index" collection="cuMemberBonusStageList" separator=" ">
|
<result column="CAL_ACHIEVE" property="calAchieve"/>
|
||||||
into cu_member_bonus_stage (
|
<result column="CAL_VALUE" property="calValue"/>
|
||||||
pk_bonus, pk_order, pk_bonus_items, income_status,
|
<result column="PRETAX_INCOME" property="pretaxIncome"/>
|
||||||
cal_type, cal_achieve, cal_value,
|
<result column="INCOME_TAX" property="incomeTax"/>
|
||||||
pretax_income, income_tax, real_income, remark,
|
<result column="REAL_INCOME" property="realIncome"/>
|
||||||
income_ratio, income_dial_ratio, order_dial_ratio,
|
<result column="REMARK" property="remark"/>
|
||||||
pk_creator, child_node, stage, stage_num)
|
<result column="INCOME_RATIO" property="incomeRatio"/>
|
||||||
values (
|
<result column="INCOME_DIAL_RATIO" property="incomeDialRatio"/>
|
||||||
#{item.pkBonus}, #{item.pkOrder}, #{item.pkBonusItems}, #{item.incomeStatus},
|
<result column="ORDER_DIAL_RATIO" property="orderDialRatio"/>
|
||||||
#{item.calType}, #{item.calAchieve}, #{item.calValue},
|
<result column="STAGE" property="stage"/>
|
||||||
#{item.pretaxIncome}, #{item.incomeTax}, #{item.realIncome},
|
<result column="STAGE_NUM" property="stageNum"/>
|
||||||
#{item.round}, #{item.second}, #{item.remark},
|
</resultMap>
|
||||||
#{item.incomeRatio}, #{item.incomeDialRatio}, #{item.orderDialRatio},
|
|
||||||
#{item.pkCreator}, #{item.childNode}, #{item.stage}, #{item.stageNum})
|
|
||||||
</foreach>
|
|
||||||
SELECT 1 FROM dual
|
|
||||||
</insert>
|
|
||||||
|
|
||||||
</mapper>
|
</mapper>
|
||||||
|
|
|
||||||
|
|
@ -90,7 +90,7 @@
|
||||||
</if>
|
</if>
|
||||||
and so.pay_time >= #{startDate}
|
and so.pay_time >= #{startDate}
|
||||||
and so.pay_time < #{endDate}
|
and so.pay_time < #{endDate}
|
||||||
order by pay_time
|
order by pay_time desc
|
||||||
</select>
|
</select>
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,23 +0,0 @@
|
||||||
package com.hzs.member.base.mapper;
|
|
||||||
|
|
||||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
|
||||||
import com.hzs.common.domain.member.achieve.CuMemberRetailDetail;
|
|
||||||
import com.hzs.member.structure.controller.vo.ChildCodeVO;
|
|
||||||
import org.apache.ibatis.annotations.Param;
|
|
||||||
|
|
||||||
import java.util.List;
|
|
||||||
|
|
||||||
public interface CuMemberRetailDetailMapper extends BaseMapper<CuMemberRetailDetail> {
|
|
||||||
List<ChildCodeVO> getChildList(@Param("memberCode") String memberCode,
|
|
||||||
@Param("stage")Integer stage,
|
|
||||||
@Param("stageStatus")Integer stageStatus,
|
|
||||||
@Param("settleTableName")String settleTableName);
|
|
||||||
|
|
||||||
CuMemberRetailDetail getCuMemberRetailDetailExt(@Param("memberCode")String memberCode,
|
|
||||||
@Param("stage")Integer stage,
|
|
||||||
@Param("stageStatus")Integer stageStatus,
|
|
||||||
@Param("childNode")String childNode,
|
|
||||||
@Param("settleTableName")String settleTableName);
|
|
||||||
|
|
||||||
Integer getFindCumemberRetailDetail(@Param("settleTableName") String settleTableName);
|
|
||||||
}
|
|
||||||
|
|
@ -1,17 +0,0 @@
|
||||||
package com.hzs.member.base.service;
|
|
||||||
|
|
||||||
import cn.hutool.core.lang.tree.Tree;
|
|
||||||
import com.hzs.common.domain.member.achieve.CuMemberRetailDetail;
|
|
||||||
import com.hzs.member.structure.controller.vo.ChildCodeVO;
|
|
||||||
|
|
||||||
import java.util.List;
|
|
||||||
|
|
||||||
public interface ICumemberRetailDetail {
|
|
||||||
List<ChildCodeVO> getChildList(String memberCode, Integer stage, Integer stageStatus, String settleTableName);
|
|
||||||
|
|
||||||
CuMemberRetailDetail getCuMemberRetailDetail(String memberCode, Integer stage, Integer stageStatus, String childNode, String settleTableName);
|
|
||||||
|
|
||||||
Integer getFindCumemberRetailDetail(String settleTableName);
|
|
||||||
|
|
||||||
List<Tree<String>> convertToNodeList(CuMemberRetailDetail cuMemberRetailDetail);
|
|
||||||
}
|
|
||||||
|
|
@ -1,115 +0,0 @@
|
||||||
package com.hzs.member.base.service.impl;
|
|
||||||
|
|
||||||
import cn.hutool.core.lang.tree.Tree;
|
|
||||||
import cn.hutool.core.lang.tree.TreeUtil;
|
|
||||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
||||||
import com.hzs.common.domain.member.achieve.CuMemberRetailDetail;
|
|
||||||
import com.hzs.common.domain.member.base.CuMember;
|
|
||||||
import com.hzs.member.base.mapper.CuMemberRetailDetailMapper;
|
|
||||||
import com.hzs.member.base.service.ICuMemberService;
|
|
||||||
import com.hzs.member.base.service.ICumemberRetailDetail;
|
|
||||||
import com.hzs.member.structure.controller.vo.ChildCodeVO;
|
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
|
||||||
import org.springframework.stereotype.Service;
|
|
||||||
|
|
||||||
import java.util.*;
|
|
||||||
import java.util.function.Function;
|
|
||||||
import java.util.stream.Collectors;
|
|
||||||
import java.util.stream.Stream;
|
|
||||||
|
|
||||||
@Service
|
|
||||||
public class ICumemberRetailDetailImpl extends ServiceImpl<CuMemberRetailDetailMapper, CuMemberRetailDetail> implements ICumemberRetailDetail {
|
|
||||||
@Autowired
|
|
||||||
private ICuMemberService iCuMemberService;
|
|
||||||
@Override
|
|
||||||
public List<ChildCodeVO> getChildList(String memberCode, Integer stage, Integer stageStatus, String settleTableName) {
|
|
||||||
return baseMapper.getChildList(memberCode,stage,stageStatus,settleTableName);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public CuMemberRetailDetail getCuMemberRetailDetail(String memberCode, Integer stage, Integer stageStatus,String childNode,String settleTableName) {
|
|
||||||
return baseMapper.getCuMemberRetailDetailExt(memberCode,stage,stageStatus,childNode,settleTableName);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public Integer getFindCumemberRetailDetail(String settleTableName) {
|
|
||||||
return baseMapper.getFindCumemberRetailDetail(settleTableName);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public List<Tree<String>> convertToNodeList(CuMemberRetailDetail cuMemberRetailDetail) {
|
|
||||||
// 所有会员id
|
|
||||||
Set<Long> ids = new LinkedHashSet<>();
|
|
||||||
ids.add(cuMemberRetailDetail.getPkMember());
|
|
||||||
// 过滤空的会员id
|
|
||||||
Stream.of(
|
|
||||||
cuMemberRetailDetail.getPointMember11(), cuMemberRetailDetail.getPointMember12(),
|
|
||||||
cuMemberRetailDetail.getPointMember21(), cuMemberRetailDetail.getPointMember22(), cuMemberRetailDetail.getPointMember23(), cuMemberRetailDetail.getPointMember24(),
|
|
||||||
cuMemberRetailDetail.getPointMember31(), cuMemberRetailDetail.getPointMember32(), cuMemberRetailDetail.getPointMember33(), cuMemberRetailDetail.getPointMember34(),
|
|
||||||
cuMemberRetailDetail.getPointMember35(), cuMemberRetailDetail.getPointMember36(), cuMemberRetailDetail.getPointMember37(), cuMemberRetailDetail.getPointMember38(),
|
|
||||||
cuMemberRetailDetail.getPointMemberFirst(), cuMemberRetailDetail.getPointMemberSecond(), cuMemberRetailDetail.getPointMemberThird()
|
|
||||||
).filter(Objects::nonNull).forEach(ids::add);
|
|
||||||
|
|
||||||
// 查找对应会员信息
|
|
||||||
List<CuMember> members;
|
|
||||||
if (ids.isEmpty()) {
|
|
||||||
members = Collections.emptyList();
|
|
||||||
} else {
|
|
||||||
members = iCuMemberService.listByIds(new ArrayList<>(ids));
|
|
||||||
}
|
|
||||||
|
|
||||||
Map<Long, CuMember> memberMap = members.stream()
|
|
||||||
.collect(Collectors.toMap(CuMember::getPkId, Function.identity(), (a, b) -> a));
|
|
||||||
|
|
||||||
// 构建node
|
|
||||||
List<Map<String, Object>> nodeList = new ArrayList<>();
|
|
||||||
nodeList.add(makeNode("root", "0", "root", cuMemberRetailDetail.getPkMember(), memberMap));
|
|
||||||
|
|
||||||
nodeList.add(makeNode("1", "root", "1", cuMemberRetailDetail.getPointMember11(), memberMap));
|
|
||||||
nodeList.add(makeNode("2", "root", "2", cuMemberRetailDetail.getPointMember12(), memberMap));
|
|
||||||
|
|
||||||
nodeList.add(makeNode("3", "1", "3", cuMemberRetailDetail.getPointMember21(), memberMap));
|
|
||||||
nodeList.add(makeNode("4", "1", "4", cuMemberRetailDetail.getPointMember22(), memberMap));
|
|
||||||
nodeList.add(makeNode("5", "2", "5", cuMemberRetailDetail.getPointMember23(), memberMap));
|
|
||||||
nodeList.add(makeNode("6", "2", "6", cuMemberRetailDetail.getPointMember24(), memberMap));
|
|
||||||
|
|
||||||
nodeList.add(makeNode("7", "3", "7", cuMemberRetailDetail.getPointMember31(), memberMap));
|
|
||||||
nodeList.add(makeNode("8", "3", "8", cuMemberRetailDetail.getPointMember32(), memberMap));
|
|
||||||
nodeList.add(makeNode("9", "4", "9", cuMemberRetailDetail.getPointMember33(), memberMap));
|
|
||||||
nodeList.add(makeNode("10", "4", "10", cuMemberRetailDetail.getPointMember34(), memberMap));
|
|
||||||
nodeList.add(makeNode("11", "5", "11", cuMemberRetailDetail.getPointMember35(), memberMap));
|
|
||||||
nodeList.add(makeNode("12", "5", "12", cuMemberRetailDetail.getPointMember36(), memberMap));
|
|
||||||
nodeList.add(makeNode("13", "6", "13", cuMemberRetailDetail.getPointMember37(), memberMap));
|
|
||||||
nodeList.add(makeNode("14", "6", "14", cuMemberRetailDetail.getPointMember38(), memberMap));
|
|
||||||
|
|
||||||
// 构造树结构
|
|
||||||
return TreeUtil.build(nodeList, "0", (node, tree) -> {
|
|
||||||
tree.setId((String) node.get("id"));
|
|
||||||
tree.setParentId((String) node.get("parentId"));
|
|
||||||
tree.setName((String) node.get("label"));
|
|
||||||
tree.putExtra("memberCode", node.get("memberCode"));
|
|
||||||
tree.putExtra("memberName", node.get("memberName"));
|
|
||||||
tree.putExtra("nodeCode", node.get("nodeCode"));
|
|
||||||
});
|
|
||||||
}
|
|
||||||
private Map<String, Object> makeNode(String id, String parentId, String label,
|
|
||||||
Long memberId, Map<Long, CuMember> memberMap) {
|
|
||||||
Map<String, Object> map = new HashMap<>();
|
|
||||||
map.put("id", id);
|
|
||||||
map.put("parentId", parentId);
|
|
||||||
map.put("label", label);
|
|
||||||
map.put("nodeCode", label);
|
|
||||||
|
|
||||||
if (memberId != null && memberMap.containsKey(memberId)) {
|
|
||||||
CuMember member = memberMap.get(memberId);
|
|
||||||
map.put("memberCode", member.getMemberCode());
|
|
||||||
map.put("memberName", member.getMemberName());
|
|
||||||
} else {
|
|
||||||
// 没有信息置空
|
|
||||||
map.put("memberCode", "");
|
|
||||||
map.put("memberName", "");
|
|
||||||
}
|
|
||||||
return map;
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
@ -3,26 +3,19 @@ package com.hzs.member.structure.controller.manage;
|
||||||
import cn.hutool.core.bean.BeanUtil;
|
import cn.hutool.core.bean.BeanUtil;
|
||||||
import cn.hutool.core.date.DateTime;
|
import cn.hutool.core.date.DateTime;
|
||||||
import cn.hutool.core.date.DateUtil;
|
import cn.hutool.core.date.DateUtil;
|
||||||
import cn.hutool.core.lang.tree.Tree;
|
|
||||||
import com.alibaba.fastjson2.JSONArray;
|
import com.alibaba.fastjson2.JSONArray;
|
||||||
import com.alibaba.fastjson2.JSONObject;
|
import com.alibaba.fastjson2.JSONObject;
|
||||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||||
import com.hzs.common.core.annotation.AccessPermissions;
|
import com.hzs.common.core.annotation.AccessPermissions;
|
||||||
import com.hzs.common.core.annotation.Log;
|
|
||||||
import com.hzs.common.core.constant.*;
|
import com.hzs.common.core.constant.*;
|
||||||
import com.hzs.common.core.constant.msg.CommonMsgConstants;
|
|
||||||
import com.hzs.common.core.constant.msg.MemberMsgConstants;
|
import com.hzs.common.core.constant.msg.MemberMsgConstants;
|
||||||
import com.hzs.common.core.domain.R;
|
import com.hzs.common.core.domain.R;
|
||||||
import com.hzs.common.core.enums.EOperationBusiness;
|
|
||||||
import com.hzs.common.core.enums.EOperationMethod;
|
|
||||||
import com.hzs.common.core.enums.EOperationModule;
|
|
||||||
import com.hzs.common.core.enums.EYesNo;
|
import com.hzs.common.core.enums.EYesNo;
|
||||||
import com.hzs.common.core.utils.DateUtils;
|
import com.hzs.common.core.utils.DateUtils;
|
||||||
import com.hzs.common.core.utils.StringUtils;
|
import com.hzs.common.core.utils.StringUtils;
|
||||||
import com.hzs.common.core.utils.sign.Base64Util;
|
import com.hzs.common.core.utils.sign.Base64Util;
|
||||||
import com.hzs.common.core.web.controller.BaseController;
|
import com.hzs.common.core.web.controller.BaseController;
|
||||||
import com.hzs.common.core.web.domain.AjaxResult;
|
import com.hzs.common.core.web.domain.AjaxResult;
|
||||||
import com.hzs.common.domain.member.achieve.CuMemberRetailDetail;
|
|
||||||
import com.hzs.common.domain.member.achieve.CuMemberSettlePeriod;
|
import com.hzs.common.domain.member.achieve.CuMemberSettlePeriod;
|
||||||
import com.hzs.common.domain.member.achieve.ext.CuMemberRetailSExt;
|
import com.hzs.common.domain.member.achieve.ext.CuMemberRetailSExt;
|
||||||
import com.hzs.common.domain.member.base.CuMember;
|
import com.hzs.common.domain.member.base.CuMember;
|
||||||
|
|
@ -31,14 +24,11 @@ import com.hzs.common.util.TransactionUtils;
|
||||||
import com.hzs.member.achieve.service.ICuMemberSettlePeriodService;
|
import com.hzs.member.achieve.service.ICuMemberSettlePeriodService;
|
||||||
import com.hzs.member.achieve.service.ICuMemberTreeService;
|
import com.hzs.member.achieve.service.ICuMemberTreeService;
|
||||||
import com.hzs.member.base.service.ICuMemberService;
|
import com.hzs.member.base.service.ICuMemberService;
|
||||||
import com.hzs.member.base.service.ICumemberRetailDetail;
|
|
||||||
import com.hzs.member.structure.controller.vo.ChildCodeVO;
|
|
||||||
import com.hzs.member.structure.controller.vo.CuMemberSettlePeriodVo;
|
import com.hzs.member.structure.controller.vo.CuMemberSettlePeriodVo;
|
||||||
import com.hzs.system.config.IGradeServiceApi;
|
import com.hzs.system.config.IGradeServiceApi;
|
||||||
import com.hzs.system.config.dto.GradeDTO;
|
import com.hzs.system.config.dto.GradeDTO;
|
||||||
import com.hzs.system.sys.IUserServiceApi;
|
import com.hzs.system.sys.IUserServiceApi;
|
||||||
import com.hzs.system.sys.dto.UserAuthorityDTO;
|
import com.hzs.system.sys.dto.UserAuthorityDTO;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
|
||||||
import org.apache.dubbo.config.annotation.DubboReference;
|
import org.apache.dubbo.config.annotation.DubboReference;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.web.bind.annotation.*;
|
import org.springframework.web.bind.annotation.*;
|
||||||
|
|
@ -48,7 +38,6 @@ import java.util.*;
|
||||||
/**
|
/**
|
||||||
* 架构管理
|
* 架构管理
|
||||||
*/
|
*/
|
||||||
@Slf4j
|
|
||||||
@RestController
|
@RestController
|
||||||
@RequestMapping("/manage/member-structure")
|
@RequestMapping("/manage/member-structure")
|
||||||
public class MemberStructureController extends BaseController {
|
public class MemberStructureController extends BaseController {
|
||||||
|
|
@ -60,8 +49,6 @@ public class MemberStructureController extends BaseController {
|
||||||
@Autowired
|
@Autowired
|
||||||
private ICuMemberService iCuMemberService;
|
private ICuMemberService iCuMemberService;
|
||||||
|
|
||||||
@Autowired
|
|
||||||
private ICumemberRetailDetail iCumemberRetailDetail;
|
|
||||||
@DubboReference
|
@DubboReference
|
||||||
IUserServiceApi iUserServiceApi;
|
IUserServiceApi iUserServiceApi;
|
||||||
@DubboReference
|
@DubboReference
|
||||||
|
|
@ -206,68 +193,6 @@ public class MemberStructureController extends BaseController {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 三阶段架构
|
|
||||||
* @param memberSettlePeriodId
|
|
||||||
* @param memberCode
|
|
||||||
* @param stage
|
|
||||||
* @param childNode
|
|
||||||
* @param stageStatus
|
|
||||||
* @return
|
|
||||||
*/
|
|
||||||
@Log(module = EOperationModule.MEMBER_RETAIL_TREE, business = EOperationBusiness.MEMBER_RETAIL_TREE, method = EOperationMethod.SELECT)
|
|
||||||
@GetMapping("/three-framework")
|
|
||||||
public AjaxResult Framework(Long memberSettlePeriodId, String memberCode,Integer stage,String childNode,Integer stageStatus) {
|
|
||||||
if (memberSettlePeriodId == null || memberCode == null || stage == null || stageStatus == null || childNode == null) {
|
|
||||||
log.error("参数错误");
|
|
||||||
return AjaxResult.error(CommonMsgConstants.MISSING_PARAM);
|
|
||||||
}
|
|
||||||
CuMemberSettlePeriod csPeriod = iCuMemberSettlePeriodService.getById(memberSettlePeriodId);
|
|
||||||
log.info("日结信息{}",csPeriod);
|
|
||||||
String settleTableName = TableNameConstants.CU_MEMBER_RETAIL_RANGE_DETAIL + csPeriod.getPkId();
|
|
||||||
log.info("日结表名称{}",settleTableName);
|
|
||||||
// 校验当前日结表是否存在
|
|
||||||
Integer isFind = iCumemberRetailDetail.getFindCumemberRetailDetail(settleTableName);
|
|
||||||
if (isFind != 1) {
|
|
||||||
log.error("当前表名不存在{}",settleTableName);
|
|
||||||
return AjaxResult.error("当前日结信息表不存在",settleTableName);
|
|
||||||
}
|
|
||||||
CuMemberRetailDetail cuMemberRetailDetail = iCumemberRetailDetail.getCuMemberRetailDetail(memberCode,stage,stageStatus,childNode,settleTableName);
|
|
||||||
log.info("日结表会员信息{}",cuMemberRetailDetail);
|
|
||||||
// 拼接树形结构
|
|
||||||
List<Tree<String>> cuMemberRetailTree = iCumemberRetailDetail.convertToNodeList(cuMemberRetailDetail);
|
|
||||||
return AjaxResult.success(cuMemberRetailTree);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 查询子节点
|
|
||||||
* @param memberSettlePeriodId
|
|
||||||
* @param memberCode
|
|
||||||
* @param stage
|
|
||||||
* @param stageStatus
|
|
||||||
* @return
|
|
||||||
*/
|
|
||||||
@Log(module = EOperationModule.MEMBER_RETAIL_CHILDNODE, business = EOperationBusiness.MEMBER_RETAIL_CHILDNODE, method = EOperationMethod.SELECT)
|
|
||||||
@GetMapping("/childList")
|
|
||||||
public AjaxResult Framework(Long memberSettlePeriodId, String memberCode,Integer stage,Integer stageStatus) {
|
|
||||||
if (memberSettlePeriodId == null || memberCode == null || stage == null || stageStatus == null) {
|
|
||||||
log.error("参数错误");
|
|
||||||
return AjaxResult.error(CommonMsgConstants.MISSING_PARAM);
|
|
||||||
}
|
|
||||||
CuMemberSettlePeriod csPeriod = iCuMemberSettlePeriodService.getById(memberSettlePeriodId);
|
|
||||||
log.info("日结信息{}",csPeriod);
|
|
||||||
String settleTableName = TableNameConstants.CU_MEMBER_RETAIL_RANGE_DETAIL + csPeriod.getPkId();
|
|
||||||
log.info("日结表名称{}",settleTableName);
|
|
||||||
// 校验当前日结表是否存在
|
|
||||||
Integer isFind = iCumemberRetailDetail.getFindCumemberRetailDetail(settleTableName);
|
|
||||||
if (isFind != 1) {
|
|
||||||
log.error("当前表名不存在{}",settleTableName);
|
|
||||||
return AjaxResult.error("当前日结信息表不存在",settleTableName);
|
|
||||||
}
|
|
||||||
List<ChildCodeVO> childCodeList = iCumemberRetailDetail.getChildList(memberCode,stage,stageStatus,settleTableName);
|
|
||||||
return AjaxResult.success(childCodeList);
|
|
||||||
}
|
|
||||||
/**
|
/**
|
||||||
* 查询最近一月所有期数
|
* 查询最近一月所有期数
|
||||||
*
|
*
|
||||||
|
|
|
||||||
|
|
@ -1,13 +0,0 @@
|
||||||
package com.hzs.member.structure.controller.vo;
|
|
||||||
|
|
||||||
import lombok.Data;
|
|
||||||
|
|
||||||
@Data
|
|
||||||
|
|
||||||
public class ChildCodeVO {
|
|
||||||
/**
|
|
||||||
* 子会员节点
|
|
||||||
*/
|
|
||||||
Integer childNode;
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
@ -1,35 +0,0 @@
|
||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
|
||||||
<mapper namespace="com.hzs.member.base.mapper.CuMemberRetailDetailMapper">
|
|
||||||
|
|
||||||
<select id="getChildList" resultType="com.hzs.member.structure.controller.vo.ChildCodeVO">
|
|
||||||
SELECT
|
|
||||||
cud.CHILD_NODE
|
|
||||||
FROM
|
|
||||||
CU_MEMBER cu LEFT JOIN
|
|
||||||
${ settleTableName } cud ON cu.PK_ID = cud.PK_MEMBER
|
|
||||||
WHERE
|
|
||||||
cu.MEMBER_CODE = #{ memberCode }
|
|
||||||
AND cud.STAGE = #{ stage }
|
|
||||||
AND cud.STAGE_STATUS = #{ stageStatus }
|
|
||||||
</select>
|
|
||||||
|
|
||||||
<select id="getFindCumemberRetailDetail" resultType="java.lang.Integer">
|
|
||||||
select 1
|
|
||||||
from user_tables
|
|
||||||
where table_name = upper(#{settleTableName})
|
|
||||||
</select>
|
|
||||||
<select id="getCuMemberRetailDetailExt"
|
|
||||||
resultType="com.hzs.common.domain.member.achieve.CuMemberRetailDetail">
|
|
||||||
SELECT
|
|
||||||
cud.*
|
|
||||||
FROM
|
|
||||||
CU_MEMBER cu
|
|
||||||
LEFT JOIN ${ settleTableName } cud ON cu.PK_ID = cud.PK_MEMBER
|
|
||||||
WHERE
|
|
||||||
cu.MEMBER_CODE = #{ memberCode }
|
|
||||||
AND STAGE = #{stage}
|
|
||||||
AND STAGE_STATUS = #{stageStatus}
|
|
||||||
AND CHILD_NODE = #{childNode}
|
|
||||||
</select>
|
|
||||||
</mapper>
|
|
||||||
|
|
@ -15,11 +15,6 @@ public class BonusMsgConstants {
|
||||||
*/
|
*/
|
||||||
public static String REPUR_DIRECT_INCOME = "订单编号%s,%s为%s贡献了第%s代见点收益,计算业绩%f,计算比例%f。";
|
public static String REPUR_DIRECT_INCOME = "订单编号%s,%s为%s贡献了第%s代见点收益,计算业绩%f,计算比例%f。";
|
||||||
|
|
||||||
/**
|
|
||||||
* 阶段 收益说明
|
|
||||||
*/
|
|
||||||
public static String STAGE_INCOME = "订单编号%s,%s为%s贡献了阶段收益,%s子点位%s阶段。";
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 直推级差收益说明
|
* 直推级差收益说明
|
||||||
*/
|
*/
|
||||||
|
|
|
||||||
|
|
@ -402,8 +402,6 @@ public enum EOperationBusiness {
|
||||||
MONTHLY_JOB_LEVEL("月度职级名单查询"),
|
MONTHLY_JOB_LEVEL("月度职级名单查询"),
|
||||||
MEMBER_RISK_CONTROL("K值风控设置"),
|
MEMBER_RISK_CONTROL("K值风控设置"),
|
||||||
MEMBER_RETAIL_STAT("收益区域数据"),
|
MEMBER_RETAIL_STAT("收益区域数据"),
|
||||||
MEMBER_RETAIL_CHILDNODE("会员子节点查询"),
|
|
||||||
MEMBER_RETAIL_TREE("三阶段结构")
|
|
||||||
;
|
;
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -401,8 +401,6 @@ public enum EOperationModule {
|
||||||
|
|
||||||
MEMBER_RISK_CONTROL("K值风控设置"),
|
MEMBER_RISK_CONTROL("K值风控设置"),
|
||||||
ORDER_SYNC("同步失败订单"),
|
ORDER_SYNC("同步失败订单"),
|
||||||
MEMBER_RETAIL_CHILDNODE("会员子节点查询"),
|
|
||||||
MEMBER_RETAIL_TREE("三阶段结构")
|
|
||||||
;
|
;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
||||||
|
|
@ -10,7 +10,12 @@ import lombok.EqualsAndHashCode;
|
||||||
import lombok.experimental.Accessors;
|
import lombok.experimental.Accessors;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
* <p>
|
||||||
* 统计活跃会员
|
* 统计活跃会员
|
||||||
|
* </p>
|
||||||
|
*
|
||||||
|
* @author zhangjing
|
||||||
|
* @since 2023-05-17
|
||||||
*/
|
*/
|
||||||
@Data
|
@Data
|
||||||
@EqualsAndHashCode(callSuper = true)
|
@EqualsAndHashCode(callSuper = true)
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,59 @@
|
||||||
|
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,10 +280,5 @@ public class CuMemberRetailDetail {
|
||||||
@TableField("POINT_MEMBER_THIRD")
|
@TableField("POINT_MEMBER_THIRD")
|
||||||
private Long pointMemberThird;
|
private Long pointMemberThird;
|
||||||
|
|
||||||
/**
|
|
||||||
* 更新标记(不为null则需要入库)
|
|
||||||
*/
|
|
||||||
@TableField(exist = false)
|
|
||||||
private Integer updateBool;
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -50,7 +50,7 @@ public class CuMemberBonus extends BaseEntity {
|
||||||
private Integer pkRate;
|
private Integer pkRate;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 注册直推收益-众康
|
* 注册直推收益-康健
|
||||||
*/
|
*/
|
||||||
@TableField("DIRECT_INCOME")
|
@TableField("DIRECT_INCOME")
|
||||||
private BigDecimal directIncome;
|
private BigDecimal directIncome;
|
||||||
|
|
@ -176,7 +176,7 @@ public class CuMemberBonus extends BaseEntity {
|
||||||
private BigDecimal repurCouponSubtotal;
|
private BigDecimal repurCouponSubtotal;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 复购见点收益-众康
|
* 复购见点收益-康健
|
||||||
*/
|
*/
|
||||||
@TableField("GLOBAL_POINTS")
|
@TableField("GLOBAL_POINTS")
|
||||||
private BigDecimal globalPoints;
|
private BigDecimal globalPoints;
|
||||||
|
|
@ -188,7 +188,7 @@ public class CuMemberBonus extends BaseEntity {
|
||||||
private BigDecimal carAwardPoints;
|
private BigDecimal carAwardPoints;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 注册阶段收益-众康
|
* 注册阶段收益-康健
|
||||||
*/
|
*/
|
||||||
@TableField("STORE_INCOME")
|
@TableField("STORE_INCOME")
|
||||||
private BigDecimal storeIncome;
|
private BigDecimal storeIncome;
|
||||||
|
|
|
||||||
|
|
@ -7,15 +7,13 @@ import com.baomidou.mybatisplus.annotation.TableName;
|
||||||
import com.baomidou.mybatisplus.annotation.TableId;
|
import com.baomidou.mybatisplus.annotation.TableId;
|
||||||
import com.baomidou.mybatisplus.annotation.TableField;
|
import com.baomidou.mybatisplus.annotation.TableField;
|
||||||
import com.hzs.common.core.web.domain.BaseEntity;
|
import com.hzs.common.core.web.domain.BaseEntity;
|
||||||
import lombok.*;
|
import lombok.Data;
|
||||||
|
import lombok.EqualsAndHashCode;
|
||||||
import lombok.experimental.Accessors;
|
import lombok.experimental.Accessors;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 会员奖金-阶段收益明细表
|
* 会员奖金-阶段收益明细表
|
||||||
*/
|
*/
|
||||||
@Builder
|
|
||||||
@AllArgsConstructor
|
|
||||||
@NoArgsConstructor
|
|
||||||
@Data
|
@Data
|
||||||
@EqualsAndHashCode(callSuper = true)
|
@EqualsAndHashCode(callSuper = true)
|
||||||
@Accessors(chain = true)
|
@Accessors(chain = true)
|
||||||
|
|
@ -115,12 +113,6 @@ public class CuMemberBonusStage extends BaseEntity {
|
||||||
@TableField("ORDER_DIAL_RATIO")
|
@TableField("ORDER_DIAL_RATIO")
|
||||||
private BigDecimal orderDialRatio;
|
private BigDecimal orderDialRatio;
|
||||||
|
|
||||||
/**
|
|
||||||
* 会员子节点
|
|
||||||
*/
|
|
||||||
@TableField("CHILD_NODE")
|
|
||||||
private Integer childNode;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 三个阶段(1、2、3)
|
* 三个阶段(1、2、3)
|
||||||
*/
|
*/
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue