## 阶段收益入库操作;封装阶段收益使用备注等;
This commit is contained in:
parent
10c98b6d99
commit
a518eb8775
|
@ -2,10 +2,23 @@ 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,15 +3,35 @@ 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);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 填充会员点位
|
* 填充会员点位
|
||||||
*/
|
*/
|
||||||
|
@ -38,4 +58,5 @@ 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,6 +79,19 @@ 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);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 获得 直推级差收益的备注
|
* 获得 直推级差收益的备注
|
||||||
*
|
*
|
||||||
|
|
|
@ -354,6 +354,9 @@ 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);
|
||||||
}
|
}
|
||||||
|
|
|
@ -40,22 +40,23 @@ 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 ICuMemberBonusService cuMemberBonusService;
|
private ICuMemberSettlePeriodService iCuMemberSettlePeriodService;
|
||||||
@Autowired
|
@Autowired
|
||||||
private ICuMemberBonusPushService cuMemberBonusPushService;
|
private ICuMemberBonusService iCuMemberBonusService;
|
||||||
@Autowired
|
@Autowired
|
||||||
private ICuMemberBonusRangeService cuMemberBonusRangeService;
|
private ICuMemberBonusPushService iCuMemberBonusPushService;
|
||||||
@Autowired
|
@Autowired
|
||||||
private ICuMemberBonusDetailService cuMemberBonusDetailService;
|
private ICuMemberBonusStageService iCuMemberBonusStageService;
|
||||||
|
@Autowired
|
||||||
|
private ICuMemberBonusRangeService iCuMemberBonusRangeService;
|
||||||
|
@Autowired
|
||||||
|
private ICuMemberBonusDetailService iCuMemberBonusDetailService;
|
||||||
@Autowired
|
@Autowired
|
||||||
private ICuMemberRetailRangeService iCuMemberRetailRangeService;
|
private ICuMemberRetailRangeService iCuMemberRetailRangeService;
|
||||||
@Autowired
|
@Autowired
|
||||||
private ICuMemberService cuMemberService;
|
private ICuMemberService iCuMemberService;
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -68,8 +69,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) {
|
||||||
// 插入奖金主表
|
// 插入奖金主表
|
||||||
cuMemberBonusService.insertOrUpdateCuMemberBonus(cuMemberBonusList);
|
iCuMemberBonusService.insertOrUpdateCuMemberBonus(cuMemberBonusList);
|
||||||
List<CuMemberBonus> cuMemberBonuses = cuMemberBonusService.queryCuMemberBonus(period, cuMemberBonusList);
|
List<CuMemberBonus> cuMemberBonuses = iCuMemberBonusService.queryCuMemberBonus(period, cuMemberBonusList);
|
||||||
cuMemberBonuses.forEach(cuMemberBonus -> cuMemberBonusMap.put(cuMemberBonus.getPkMember(), cuMemberBonus));
|
cuMemberBonuses.forEach(cuMemberBonus -> cuMemberBonusMap.put(cuMemberBonus.getPkMember(), cuMemberBonus));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -79,10 +80,10 @@ public class BonusSettleServiceImpl implements IBonusSettleService {
|
||||||
public void calculateCuMemberBonus(String settleDate) {
|
public void calculateCuMemberBonus(String settleDate) {
|
||||||
try {
|
try {
|
||||||
// 结算期间
|
// 结算期间
|
||||||
Integer period = cuMemberSettlePeriodService.getCuMemberSettlePeriodByDate(settleDate).getPkId();
|
Integer period = iCuMemberSettlePeriodService.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 = cuMemberSettlePeriodService.getCuMemberSettlePeriodByDate(yesterday).getPkId();
|
Integer yesterdayPeriod = iCuMemberSettlePeriodService.getCuMemberSettlePeriodByDate(yesterday).getPkId();
|
||||||
|
|
||||||
// 获取所有国家的奖金项 key = 国家 + 奖金项的值
|
// 获取所有国家的奖金项 key = 国家 + 奖金项的值
|
||||||
BonusConfigDTO bonusConfigDTO = iBonusItemsServiceApi.queryBonusConfigDTO().getData();
|
BonusConfigDTO bonusConfigDTO = iBonusItemsServiceApi.queryBonusConfigDTO().getData();
|
||||||
|
@ -121,10 +122,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 = cuMemberSettlePeriodService.getCuMemberSettlePeriodByDate(settleDate).getPkId();
|
int currentPeriod = iCuMemberSettlePeriodService.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 = cuMemberSettlePeriodService.getCuMemberSettlePeriodByDate(beforeDay).getPkId();
|
int beforePeriod = iCuMemberSettlePeriodService.getCuMemberSettlePeriodByDate(beforeDay).getPkId();
|
||||||
// 秒结表名
|
// 秒结表名
|
||||||
String secondRangeTableName = TableNameConstants.CU_MEMBER_RETAIL_S + currentPeriod;
|
String secondRangeTableName = TableNameConstants.CU_MEMBER_RETAIL_S + currentPeriod;
|
||||||
|
|
||||||
|
@ -137,28 +138,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 = cuMemberBonusService.queryMemberBonusByPeriod(currentPeriod);
|
Set<Long> memberIdSet = iCuMemberBonusService.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()));
|
||||||
cuMemberBonusRangeService.batchInsertCuMemberBonusRange(cuMemberBonusRangeList, memberIdSet);
|
iCuMemberBonusRangeService.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()));
|
||||||
cuMemberBonusDetailService.batchInsertCuMemberBonusDetail(cuMemberBonusDetailList, memberIdSet);
|
iCuMemberBonusDetailService.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 = cuMemberSettlePeriodService.getCuMemberSettlePeriodByDate(settleDate).getPkId();
|
currentPeriod = iCuMemberSettlePeriodService.getCuMemberSettlePeriodByDate(settleDate).getPkId();
|
||||||
}
|
}
|
||||||
// 实时计算撤单数据(业绩、等级、奖衔、日奖)
|
// 实时计算撤单数据(业绩、等级、奖衔、日奖)
|
||||||
bonusSettleRangeHandle.calculateCuMemberBackRetailIncome(saOrderExt, bonusConfigDTO,
|
bonusSettleRangeHandle.calculateCuMemberBackRetailIncome(saOrderExt, bonusConfigDTO,
|
||||||
secondRangeTableName, beforePeriod, currentPeriod);
|
secondRangeTableName, beforePeriod, currentPeriod);
|
||||||
// 处理收益
|
// 处理收益
|
||||||
cuMemberBonusService.mergeBackMemberBonusIncome(saOrderExt.getPkId());
|
iCuMemberBonusService.mergeBackMemberBonusIncome(saOrderExt.getPkId());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -177,11 +178,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 = cuMemberSettlePeriodService.getCuMemberSettlePeriodByDate(settleDate).getPkId();
|
int currentPeriod = iCuMemberSettlePeriodService.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 = cuMemberService.getById(orderExt.getPkId());
|
CuMember self = iCuMemberService.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);
|
||||||
}
|
}
|
||||||
|
@ -193,10 +194,11 @@ 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) {
|
||||||
cuMemberBonusPushService.deleteCuMemberBonusPush(period);
|
iCuMemberBonusPushService.deleteCuMemberBonusPush(period);
|
||||||
cuMemberBonusDetailService.deleteCuMemberBonusDetail(period);
|
iCuMemberBonusStageService.deleteCuMemberBonusStage(period);
|
||||||
cuMemberBonusRangeService.deleteCuMemberBonusRange(period);
|
iCuMemberBonusDetailService.deleteCuMemberBonusDetail(period);
|
||||||
cuMemberBonusService.deleteCuMemberBonus(period);
|
iCuMemberBonusRangeService.deleteCuMemberBonusRange(period);
|
||||||
|
iCuMemberBonusService.deleteCuMemberBonus(period);
|
||||||
if (cuMemberBonusMap.size() == 0) {
|
if (cuMemberBonusMap.size() == 0) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
@ -207,11 +209,17 @@ 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()));
|
||||||
|
@ -223,15 +231,16 @@ public class BonusSettleServiceImpl implements IBonusSettleService {
|
||||||
batchMemberBonusRangeList.addAll(cuMemberBonusRangeList);
|
batchMemberBonusRangeList.addAll(cuMemberBonusRangeList);
|
||||||
}
|
}
|
||||||
// 插入奖金主表
|
// 插入奖金主表
|
||||||
cuMemberBonusService.batchInsertCuMemberBonus(cuMemberBonusList);
|
iCuMemberBonusService.batchInsertCuMemberBonus(cuMemberBonusList);
|
||||||
Set<Long> memberIdSet = cuMemberBonusService.queryMemberBonusByPeriod(period);
|
Set<Long> memberIdSet = iCuMemberBonusService.queryMemberBonusByPeriod(period);
|
||||||
cuMemberBonusPushService.batchInsertCuMemberBonusPush(batchMemberBonusPushList, memberIdSet);
|
iCuMemberBonusPushService.batchInsertCuMemberBonusPush(batchMemberBonusPushList, memberIdSet);
|
||||||
cuMemberBonusDetailService.batchInsertCuMemberBonusDetail(batchMemberBonusDetailList, memberIdSet);
|
iCuMemberBonusStageService.batchInsertCuMemberBonusStage(cuMemberBonusStageList, memberIdSet);
|
||||||
cuMemberBonusRangeService.batchInsertCuMemberBonusRange(batchMemberBonusRangeList, memberIdSet);
|
iCuMemberBonusDetailService.batchInsertCuMemberBonusDetail(batchMemberBonusDetailList, 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 = cuMemberBonusService.batchQueryCuMemberBonusSeq(cuMemberBonusMap.size());
|
List<Long> pkIdList = iCuMemberBonusService.batchQueryCuMemberBonusSeq(cuMemberBonusMap.size());
|
||||||
int i = 0;
|
int i = 0;
|
||||||
// 判断时间,重算的时候直接是已公布
|
// 判断时间,重算的时候直接是已公布
|
||||||
Integer grantStatus = EGrantStatus.SETTLED.getValue();
|
Integer grantStatus = EGrantStatus.SETTLED.getValue();
|
||||||
|
|
|
@ -5,23 +5,26 @@ 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.util.ArrayList;
|
import java.math.BigDecimal;
|
||||||
import java.util.HashMap;
|
import java.util.*;
|
||||||
import java.util.List;
|
|
||||||
import java.util.Map;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 会员奖金-阶段收益明细表 服务实现类
|
* 会员奖金-阶段收益明细表 服务实现类
|
||||||
|
@ -29,12 +32,63 @@ import java.util.Map;
|
||||||
@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
|
||||||
|
public void deleteCuMemberBonusStage(Integer period) {
|
||||||
|
baseMapper.deleteCuMemberBonusStage(period);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void batchInsertCuMemberBonusStage(List<CuMemberBonusStage> cuMemberBonusStageList, Set<Long> memberIdSet) {
|
||||||
|
if (cuMemberBonusStageList.size() == 0) {
|
||||||
|
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;
|
||||||
|
}
|
||||||
|
|
||||||
private void initFieldMap() {
|
private void initFieldMap() {
|
||||||
BonusConstants.FIELD_MAP = new HashMap<>();
|
BonusConstants.FIELD_MAP = new HashMap<>();
|
||||||
for (String suffix : BonusConstants.FIELD_LIST) {
|
for (String suffix : BonusConstants.FIELD_LIST) {
|
||||||
|
|
|
@ -18,10 +18,15 @@ public class BonusRecordDetailVO implements Serializable {
|
||||||
private Long pkMember;
|
private Long pkMember;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*
|
* 直推收益、见点收益
|
||||||
*/
|
*/
|
||||||
private List<CuMemberBonusPush> cuMemberBonusPushList;
|
private List<CuMemberBonusPush> cuMemberBonusPushList;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 阶段收益
|
||||||
|
*/
|
||||||
|
private List<CuMemberBonusStage> cuMemberBonusStageList;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 新零售 - 区域分红、月度分红
|
* 新零售 - 区域分红、月度分红
|
||||||
*/
|
*/
|
||||||
|
|
|
@ -2,31 +2,36 @@
|
||||||
<!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">
|
||||||
|
|
||||||
<!-- 通用查询映射结果 -->
|
<!-- 删除会员阶段奖金表 -->
|
||||||
<resultMap id="BaseResultMap" type="com.hzs.common.domain.member.bonus.CuMemberBonusStage">
|
<delete id="deleteCuMemberBonusStage">
|
||||||
<id column="PK_ID" property="pkId"/>
|
delete
|
||||||
<result column="DEL_FLAG" property="delFlag"/>
|
from CU_MEMBER_BONUS_STAGE
|
||||||
<result column="PK_COUNTRY" property="pkCountry"/>
|
where PK_BONUS in (
|
||||||
<result column="PK_CREATOR" property="pkCreator"/>
|
select pk_id
|
||||||
<result column="CREATION_TIME" property="creationTime"/>
|
from cu_member_bonus
|
||||||
<result column="PK_MODIFIED" property="pkModified"/>
|
where period = #{period}
|
||||||
<result column="MODIFIED_TIME" property="modifiedTime"/>
|
and grant_status <= 2)
|
||||||
<result column="PK_BONUS" property="pkBonus"/>
|
</delete>
|
||||||
<result column="PK_ORDER" property="pkOrder"/>
|
|
||||||
<result column="PK_BONUS_ITEMS" property="pkBonusItems"/>
|
<!-- 批量插入会员阶段奖 -->
|
||||||
<result column="INCOME_STATUS" property="incomeStatus"/>
|
<insert id="batchInsertCuMemberBonusStage">
|
||||||
<result column="CAL_TYPE" property="calType"/>
|
insert ALL
|
||||||
<result column="CAL_ACHIEVE" property="calAchieve"/>
|
<foreach item="item" index="index" collection="cuMemberBonusStageList" separator=" ">
|
||||||
<result column="CAL_VALUE" property="calValue"/>
|
into cu_member_bonus_stage (
|
||||||
<result column="PRETAX_INCOME" property="pretaxIncome"/>
|
pk_bonus, pk_order, pk_bonus_items, income_status,
|
||||||
<result column="INCOME_TAX" property="incomeTax"/>
|
cal_type, cal_achieve, cal_value,
|
||||||
<result column="REAL_INCOME" property="realIncome"/>
|
pretax_income, income_tax, real_income, remark,
|
||||||
<result column="REMARK" property="remark"/>
|
income_ratio, income_dial_ratio, order_dial_ratio,
|
||||||
<result column="INCOME_RATIO" property="incomeRatio"/>
|
pk_creator, child_node, stage, stage_num)
|
||||||
<result column="INCOME_DIAL_RATIO" property="incomeDialRatio"/>
|
values (
|
||||||
<result column="ORDER_DIAL_RATIO" property="orderDialRatio"/>
|
#{item.pkBonus}, #{item.pkOrder}, #{item.pkBonusItems}, #{item.incomeStatus},
|
||||||
<result column="STAGE" property="stage"/>
|
#{item.calType}, #{item.calAchieve}, #{item.calValue},
|
||||||
<result column="STAGE_NUM" property="stageNum"/>
|
#{item.pretaxIncome}, #{item.incomeTax}, #{item.realIncome},
|
||||||
</resultMap>
|
#{item.round}, #{item.second}, #{item.remark},
|
||||||
|
#{item.incomeRatio}, #{item.incomeDialRatio}, #{item.orderDialRatio},
|
||||||
|
#{item.pkCreator}, #{item.childNode}, #{item.stage}, #{item.stageNum})
|
||||||
|
</foreach>
|
||||||
|
SELECT 1 FROM dual
|
||||||
|
</insert>
|
||||||
|
|
||||||
</mapper>
|
</mapper>
|
||||||
|
|
|
@ -15,6 +15,11 @@ 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阶段。";
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 直推级差收益说明
|
* 直推级差收益说明
|
||||||
*/
|
*/
|
||||||
|
|
|
@ -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,13 +7,15 @@ 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.Data;
|
import lombok.*;
|
||||||
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)
|
||||||
|
@ -113,6 +115,12 @@ 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