## 拓展收益延缓发放相关处理;
This commit is contained in:
parent
157d586044
commit
45b54b0753
|
@ -110,4 +110,11 @@ public interface IGradeServiceApi {
|
||||||
*/
|
*/
|
||||||
R<BdGrade> getLastGrade(BigDecimal achieve, Integer pkCountry);
|
R<BdGrade> getLastGrade(BigDecimal achieve, Integer pkCountry);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获取所有等级
|
||||||
|
*
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
R<Map<Integer, BdGrade>> getGrade();
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -2,9 +2,12 @@ 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.CuMemberBonusDelay;
|
import com.hzs.common.domain.member.bonus.CuMemberBonusDelay;
|
||||||
|
import com.hzs.common.domain.member.bonus.ext.CuMemberBonusDelayExt;
|
||||||
|
import com.hzs.common.domain.member.ext.CuMemberSettleExt;
|
||||||
import org.apache.ibatis.annotations.Param;
|
import org.apache.ibatis.annotations.Param;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.Set;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 会员奖金-拓展收益延缓表 Mapper 接口
|
* 会员奖金-拓展收益延缓表 Mapper 接口
|
||||||
|
@ -28,4 +31,16 @@ public interface CuMemberBonusDelayMapper extends BaseMapper<CuMemberBonusDelay>
|
||||||
*/
|
*/
|
||||||
void batchInsertCuMemberBonusDelay(@Param("cuMemberBonusDelayList") List<?> cuMemberBonusDelayList);
|
void batchInsertCuMemberBonusDelay(@Param("cuMemberBonusDelayList") List<?> cuMemberBonusDelayList);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 查询当天没有产生过奖金,但是还有延缓发放奖金的列表
|
||||||
|
*
|
||||||
|
* @param currentSettleTableName
|
||||||
|
* @param pkMemberSet
|
||||||
|
* @param yesterdayPeriod
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
List<CuMemberSettleExt> listDelayNotBonus(@Param("currentSettleTableName") String currentSettleTableName,
|
||||||
|
@Param("pkMemberSet") Set<Long> pkMemberSet,
|
||||||
|
@Param("yesterdayPeriod") Integer yesterdayPeriod);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -2,6 +2,7 @@ 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.bonus.CuMemberBonusDelay;
|
import com.hzs.common.domain.member.bonus.CuMemberBonusDelay;
|
||||||
|
import com.hzs.common.domain.member.ext.CuMemberSettleExt;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
|
@ -28,4 +29,14 @@ public interface ICuMemberBonusDelayService extends IService<CuMemberBonusDelay>
|
||||||
*/
|
*/
|
||||||
void batchInsertCuMemberBonusDelay(List<CuMemberBonusDelay> cuMemberBonusDelayList, Set<Long> memberIdSet);
|
void batchInsertCuMemberBonusDelay(List<CuMemberBonusDelay> cuMemberBonusDelayList, Set<Long> memberIdSet);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 查询当天没有产生过奖金,但是还有延缓发放奖金的列表
|
||||||
|
*
|
||||||
|
* @param currentSettleTableName
|
||||||
|
* @param pkMemberSet
|
||||||
|
* @param yesterdayPeriod
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
List<CuMemberSettleExt> listDelayNotBonus(String currentSettleTableName, Set<Long> pkMemberSet, Integer yesterdayPeriod);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -2,7 +2,7 @@ package com.hzs.bonus.bonus.service.impl;
|
||||||
|
|
||||||
import cn.hutool.core.bean.BeanUtil;
|
import cn.hutool.core.bean.BeanUtil;
|
||||||
import cn.hutool.core.collection.CollectionUtil;
|
import cn.hutool.core.collection.CollectionUtil;
|
||||||
import com.hzs.bonus.base.service.ICuMemberService;
|
import com.hzs.bonus.bonus.service.ICuMemberBonusDelayService;
|
||||||
import com.hzs.bonus.bonus.vo.BonusRecordDetailVO;
|
import com.hzs.bonus.bonus.vo.BonusRecordDetailVO;
|
||||||
import com.hzs.common.core.constant.*;
|
import com.hzs.common.core.constant.*;
|
||||||
import com.hzs.common.core.constant.msg.BonusMsgConstants;
|
import com.hzs.common.core.constant.msg.BonusMsgConstants;
|
||||||
|
@ -48,7 +48,7 @@ public class BonusSettleFirstPurchaseHandle extends BonusSettleHandle {
|
||||||
IGradeServiceApi iGradeServiceApi;
|
IGradeServiceApi iGradeServiceApi;
|
||||||
|
|
||||||
@Autowired
|
@Autowired
|
||||||
private ICuMemberService iCuMemberService;
|
private ICuMemberBonusDelayService iCuMemberBonusDelayService;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param settleTableName 结算表
|
* @param settleTableName 结算表
|
||||||
|
@ -1221,13 +1221,14 @@ public class BonusSettleFirstPurchaseHandle extends BonusSettleHandle {
|
||||||
* 处理拓展延缓发放
|
* 处理拓展延缓发放
|
||||||
*/
|
*/
|
||||||
public void handleDelayExpand(BonusRecordDetailVO recordDetailVO, Map<Long, CuMemberBonus> cuMemberBonusMap, BonusConfigDTO bonusConfigDTO,
|
public void handleDelayExpand(BonusRecordDetailVO recordDetailVO, Map<Long, CuMemberBonus> cuMemberBonusMap, BonusConfigDTO bonusConfigDTO,
|
||||||
Map<Long, CuMemberSettleExt> cuMemberSettleExtMap, Integer period) {
|
Map<Long, CuMemberSettleExt> cuMemberSettleExtMap, Integer period, Integer yesterdayPeriod, String currentSettleTableName,
|
||||||
// TODO new 这处理的都是今天有收益的,还需要处理今天没有收益,但是历史还有是延缓未发放奖金的
|
Map<Integer, BdGrade> gradeMap) {
|
||||||
|
|
||||||
// 量奖(拓展收益)延缓发放主表量奖(拓展收益)延缓发放主表
|
// 量奖(拓展收益)延缓发放主表量奖(拓展收益)延缓发放主表
|
||||||
List<CuMemberBonusDelay> cuMemberBonusDelayList = new ArrayList<>();
|
List<CuMemberBonusDelay> cuMemberBonusDelayList = new ArrayList<>();
|
||||||
// 量奖(拓展收益)延缓发放列表
|
// 量奖(拓展收益)延缓发放明细列表
|
||||||
List<CuMemberBonusDelayDetail> cuMemberBonusDelayDetailList = new ArrayList<>();
|
List<CuMemberBonusDelayDetail> cuMemberBonusDelayDetailList = new ArrayList<>();
|
||||||
|
// 已经追加拓展延缓明细的会员会员列表
|
||||||
|
Set<Long> pkMemberSet = new HashSet<>();
|
||||||
|
|
||||||
Map<Long, CuMemberBonusDelayDetail> bonusDelayDetailAddMap = recordDetailVO.getBonusDelayDetailAddMap();
|
Map<Long, CuMemberBonusDelayDetail> bonusDelayDetailAddMap = recordDetailVO.getBonusDelayDetailAddMap();
|
||||||
if (bonusDelayDetailAddMap.size() > 0) {
|
if (bonusDelayDetailAddMap.size() > 0) {
|
||||||
|
@ -1242,8 +1243,8 @@ public class BonusSettleFirstPurchaseHandle extends BonusSettleHandle {
|
||||||
|
|
||||||
// 发放收益 = 发放前收益 + 首购 + 复购
|
// 发放收益 = 发放前收益 + 首购 + 复购
|
||||||
BigDecimal pretaxIncome = cuMemberBonusDelayAddDetail.getBeforePretaxIncome().add(cuMemberBonusDelayAddDetail.getFirPretaxIncome()).add(cuMemberBonusDelayAddDetail.getRepPretaxIncome());
|
BigDecimal pretaxIncome = cuMemberBonusDelayAddDetail.getBeforePretaxIncome().add(cuMemberBonusDelayAddDetail.getFirPretaxIncome()).add(cuMemberBonusDelayAddDetail.getRepPretaxIncome());
|
||||||
// 发放后收益 = 发放前 + 新加入的收益
|
// 发放后收益 = 发放前收益 + 首购 + 复购
|
||||||
BigDecimal afterPretaxIncome = cuMemberBonusDelayAddDetail.getBeforePretaxIncome().add(pretaxIncome);
|
BigDecimal afterPretaxIncome = pretaxIncome;
|
||||||
// 获取计算后的值
|
// 获取计算后的值
|
||||||
cuMemberBonusDelayAddDetail.setAfterPretaxIncome(pretaxIncome);
|
cuMemberBonusDelayAddDetail.setAfterPretaxIncome(pretaxIncome);
|
||||||
|
|
||||||
|
@ -1253,13 +1254,12 @@ public class BonusSettleFirstPurchaseHandle extends BonusSettleHandle {
|
||||||
// 封顶值 小于 收益,使用封顶值
|
// 封顶值 小于 收益,使用封顶值
|
||||||
pretaxIncome = cuMemberBonusDelayAddDetail.getExpandCapping();
|
pretaxIncome = cuMemberBonusDelayAddDetail.getExpandCapping();
|
||||||
}
|
}
|
||||||
// 发放后收益 = 发放前 + 新加入的收益 - 本次发放的收益
|
// 记录已经追加拓展延缓明细的会员
|
||||||
afterPretaxIncome = afterPretaxIncome.subtract(pretaxIncome);
|
pkMemberSet.add(pkMember);
|
||||||
|
|
||||||
// 结算会员信息
|
// 结算会员信息
|
||||||
CuMemberSettleExt cuMemberSettleExt = cuMemberSettleExtMap.get(pkMember);
|
CuMemberSettleExt cuMemberSettleExt = cuMemberSettleExtMap.get(pkMember);
|
||||||
|
// TODO new 追加会员奖金拓展收益
|
||||||
// TODO new 生成一条拓展收益明细,并且添加收益奖金
|
|
||||||
// 追加会员奖金收益
|
|
||||||
CuMemberBonus cuMemberBonus = this.getCuMemberBonus(period, cuMemberBonusMap, pkMember,
|
CuMemberBonus cuMemberBonus = this.getCuMemberBonus(period, cuMemberBonusMap, pkMember,
|
||||||
cuMemberSettleExt.getIncomeStatus(), cuMemberSettleExt.getPkSettleCountry(), cuMemberSettleExt.getPkRate());
|
cuMemberSettleExt.getIncomeStatus(), cuMemberSettleExt.getPkSettleCountry(), cuMemberSettleExt.getPkRate());
|
||||||
cuMemberBonus.setExpandIncome(pretaxIncome);
|
cuMemberBonus.setExpandIncome(pretaxIncome);
|
||||||
|
@ -1296,7 +1296,6 @@ public class BonusSettleFirstPurchaseHandle extends BonusSettleHandle {
|
||||||
BdBonusDeduct bdBonusDeduct = setDeplyBonusDetailDeduct(bonusConfigDTO, cuMemberBonusExpand);
|
BdBonusDeduct bdBonusDeduct = setDeplyBonusDetailDeduct(bonusConfigDTO, cuMemberBonusExpand);
|
||||||
// 处理实发小计、实发收益总计
|
// 处理实发小计、实发收益总计
|
||||||
setFirstPurchaseTotal(bdBonusDeduct, cuMemberBonus, cuMemberBonusExpand);
|
setFirstPurchaseTotal(bdBonusDeduct, cuMemberBonus, cuMemberBonusExpand);
|
||||||
|
|
||||||
// TODO new 追加的一条延缓收益生成的拓展收益明细
|
// TODO new 追加的一条延缓收益生成的拓展收益明细
|
||||||
recordDetailVO.getCuMemberBonusExpandList().add(cuMemberBonusExpand);
|
recordDetailVO.getCuMemberBonusExpandList().add(cuMemberBonusExpand);
|
||||||
|
|
||||||
|
@ -1308,16 +1307,17 @@ public class BonusSettleFirstPurchaseHandle extends BonusSettleHandle {
|
||||||
.pretaxIncome(pretaxIncome)
|
.pretaxIncome(pretaxIncome)
|
||||||
.afterPretaxIncome(cuMemberBonusDelayAddDetail.getAfterPretaxIncome().subtract(pretaxIncome))
|
.afterPretaxIncome(cuMemberBonusDelayAddDetail.getAfterPretaxIncome().subtract(pretaxIncome))
|
||||||
.incomeTax(cuMemberBonusExpand.getIncomeTax())
|
.incomeTax(cuMemberBonusExpand.getIncomeTax())
|
||||||
.repPretaxIncome(cuMemberBonusExpand.getPretaxIncome())
|
.realIncome(cuMemberBonusExpand.getRealIncome())
|
||||||
.type(EInfusingWaterType.BANK_TRANSFER.getValue())
|
.type(EInfusingWaterType.BANK_TRANSFER.getValue())
|
||||||
.pkBonus(cuMemberBonusDelayAddDetail.getPkBonus())
|
.pkBonus(cuMemberBonusDelayAddDetail.getPkBonus())
|
||||||
.expandCapping(cuMemberBonusDelayAddDetail.getExpandCapping())
|
.expandCapping(cuMemberBonusDelayAddDetail.getExpandCapping())
|
||||||
.build();
|
.build();
|
||||||
cuMemberBonusDelayGrantDetail.setPkCreator(cuMemberBonusDelayAddDetail.getPkCreator());
|
cuMemberBonusDelayGrantDetail.setPkCreator(cuMemberBonusDelayAddDetail.getPkCreator());
|
||||||
cuMemberBonusDelayGrantDetail.setPkCountry(cuMemberBonusDelayAddDetail.getPkCountry());
|
cuMemberBonusDelayGrantDetail.setPkCountry(cuMemberBonusDelayAddDetail.getPkCountry());
|
||||||
|
|
||||||
// TODO new 增加一条减少的延缓收益明细
|
// TODO new 增加一条减少的延缓收益明细
|
||||||
cuMemberBonusDelayDetailList.add(cuMemberBonusDelayGrantDetail);
|
cuMemberBonusDelayDetailList.add(cuMemberBonusDelayGrantDetail);
|
||||||
|
|
||||||
|
afterPretaxIncome = cuMemberBonusDelayGrantDetail.getAfterPretaxIncome();
|
||||||
}
|
}
|
||||||
|
|
||||||
// 添加延缓主表
|
// 添加延缓主表
|
||||||
|
@ -1331,12 +1331,121 @@ public class BonusSettleFirstPurchaseHandle extends BonusSettleHandle {
|
||||||
.build();
|
.build();
|
||||||
cuMemberBonusDelay.setPkCreator(cuMemberBonusDelayAddDetail.getPkCreator());
|
cuMemberBonusDelay.setPkCreator(cuMemberBonusDelayAddDetail.getPkCreator());
|
||||||
cuMemberBonusDelay.setPkCountry(cuMemberBonusDelayAddDetail.getPkCountry());
|
cuMemberBonusDelay.setPkCountry(cuMemberBonusDelayAddDetail.getPkCountry());
|
||||||
|
// TODO new 增加一条延缓主表
|
||||||
cuMemberBonusDelayList.add(cuMemberBonusDelay);
|
cuMemberBonusDelayList.add(cuMemberBonusDelay);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 处理当天没有奖金的延缓发放
|
||||||
|
this.handleNotGrantDelay(recordDetailVO, cuMemberBonusMap, bonusConfigDTO, cuMemberSettleExtMap, period, yesterdayPeriod, currentSettleTableName,
|
||||||
|
gradeMap, pkMemberSet, cuMemberBonusDelayList, cuMemberBonusDelayDetailList);
|
||||||
|
|
||||||
recordDetailVO.setCuMemberBonusDelayList(cuMemberBonusDelayList);
|
recordDetailVO.setCuMemberBonusDelayList(cuMemberBonusDelayList);
|
||||||
recordDetailVO.setCuMemberBonusDelayDetailList(cuMemberBonusDelayDetailList);
|
recordDetailVO.setCuMemberBonusDelayDetailList(cuMemberBonusDelayDetailList);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 处理当天没有奖金的延缓发放
|
||||||
|
*/
|
||||||
|
private void handleNotGrantDelay(BonusRecordDetailVO recordDetailVO, Map<Long, CuMemberBonus> cuMemberBonusMap, BonusConfigDTO bonusConfigDTO,
|
||||||
|
Map<Long, CuMemberSettleExt> cuMemberSettleExtMap, Integer period, Integer yesterdayPeriod, String currentSettleTableName,
|
||||||
|
Map<Integer, BdGrade> gradeMap, Set<Long> pkMemberSet,
|
||||||
|
List<CuMemberBonusDelay> cuMemberBonusDelayList, List<CuMemberBonusDelayDetail> cuMemberBonusDelayDetailList) {
|
||||||
|
// TODO new 需要今天没有奖金产生,但是还有延缓奖金没发放的会员
|
||||||
|
List<CuMemberSettleExt> notGrantDelayExtList = iCuMemberBonusDelayService.listDelayNotBonus(currentSettleTableName, pkMemberSet, yesterdayPeriod);
|
||||||
|
if (CollectionUtil.isNotEmpty(notGrantDelayExtList)) {
|
||||||
|
for (CuMemberSettleExt cuMemberSettleExt : notGrantDelayExtList) {
|
||||||
|
// 会员ID
|
||||||
|
Long pkMember = cuMemberSettleExt.getPkMember();
|
||||||
|
// 拓展收益
|
||||||
|
BigDecimal pretaxIncome = cuMemberSettleExt.getAfterGrantIncome();
|
||||||
|
BdGrade bdGrade = gradeMap.get(cuMemberSettleExt.getPkGrade());
|
||||||
|
// 等级封顶值
|
||||||
|
BigDecimal expandCapping = bdGrade.getExpandCapping();
|
||||||
|
|
||||||
|
if (expandCapping.compareTo(pretaxIncome) < 0) {
|
||||||
|
// 封顶值 小于 收益,使用封顶值
|
||||||
|
pretaxIncome = expandCapping;
|
||||||
|
}
|
||||||
|
|
||||||
|
// 结算会员信息
|
||||||
|
getMemberSettle(cuMemberSettleExtMap, cuMemberSettleExt);
|
||||||
|
|
||||||
|
// TODO new 生成一条拓展收益明细,并且添加收益奖金
|
||||||
|
// 追加会员奖金收益
|
||||||
|
CuMemberBonus cuMemberBonus = this.getCuMemberBonus(period, cuMemberBonusMap, pkMember,
|
||||||
|
cuMemberSettleExt.getIncomeStatus(), cuMemberSettleExt.getPkSettleCountry(), cuMemberSettleExt.getPkRate());
|
||||||
|
cuMemberBonus.setExpandIncome(pretaxIncome);
|
||||||
|
cuMemberBonus.setExpandNoCapping(pretaxIncome);
|
||||||
|
cuMemberBonus.setExpandCapping(expandCapping);
|
||||||
|
|
||||||
|
// 获取拓展收益奖项
|
||||||
|
Integer pkBonusItems = getPkBonusItems(bonusConfigDTO, cuMemberSettleExt.getPkSettleCountry(), EBonusItems.EXPANSION_INCOME.getValue());
|
||||||
|
// 创建一条拓展收益明细
|
||||||
|
CuMemberBonusExpand cuMemberBonusExpand = CuMemberBonusExpand.builder()
|
||||||
|
.pkBonus(pkMember)
|
||||||
|
.pkBonusItems(pkBonusItems)
|
||||||
|
.incomeStatus(EBonusIncomeStatus.NORMAL.getValue())
|
||||||
|
.pkOrder(0L)
|
||||||
|
.calType(ECalType.RATIO.getValue())
|
||||||
|
.calValue(bdGrade.getExpandRatio())
|
||||||
|
.calAchieve(BigDecimal.ZERO)
|
||||||
|
.pretaxIncome(pretaxIncome)
|
||||||
|
.expandNoCapping(pretaxIncome)
|
||||||
|
.expandCapping(expandCapping)
|
||||||
|
.expandNormalHalf(ComputeUtil.computeMultiplyHalf(expandCapping))
|
||||||
|
.expandNormalReal(ComputeUtil.computeMultiplyHalf(pretaxIncome))
|
||||||
|
.remark(String.format(BonusMsgConstants.BONUS_EXPAND_DELAY, cuMemberSettleExt.getMemberCode() + cuMemberSettleExt.getMemberName()))
|
||||||
|
.currentTouch(0)
|
||||||
|
.expandTouch(0)
|
||||||
|
.addTouch(BigDecimal.ZERO)
|
||||||
|
.incomeRatio(BigDecimal.ZERO)
|
||||||
|
.incomeDialRatio(BigDecimal.ZERO)
|
||||||
|
.orderDialRatio(BigDecimal.ZERO)
|
||||||
|
.build();
|
||||||
|
cuMemberBonusExpand.setPkCreator(MagicNumberConstants.PK_ADMIN);
|
||||||
|
cuMemberBonusExpand.setPkCountry(cuMemberSettleExt.getPkCountry());
|
||||||
|
// 处理扣项,计算最终收益
|
||||||
|
BdBonusDeduct bdBonusDeduct = setDeplyBonusDetailDeduct(bonusConfigDTO, cuMemberBonusExpand);
|
||||||
|
// 处理实发小计、实发收益总计
|
||||||
|
setFirstPurchaseTotal(bdBonusDeduct, cuMemberBonus, cuMemberBonusExpand);
|
||||||
|
// TODO new 追加的一条延缓收益生成的拓展收益明细
|
||||||
|
recordDetailVO.getCuMemberBonusExpandList().add(cuMemberBonusExpand);
|
||||||
|
|
||||||
|
// 封装延缓发放减少明细
|
||||||
|
CuMemberBonusDelayDetail cuMemberBonusDelayGrantDetail = CuMemberBonusDelayDetail.builder()
|
||||||
|
.pkMember(pkMember)
|
||||||
|
.period(period)
|
||||||
|
.beforePretaxIncome(cuMemberSettleExt.getAfterGrantIncome())
|
||||||
|
.pretaxIncome(pretaxIncome)
|
||||||
|
.afterPretaxIncome(cuMemberSettleExt.getAfterGrantIncome().subtract(pretaxIncome))
|
||||||
|
.incomeTax(cuMemberBonusExpand.getIncomeTax())
|
||||||
|
.realIncome(cuMemberBonusExpand.getRealIncome())
|
||||||
|
.type(EInfusingWaterType.BANK_TRANSFER.getValue())
|
||||||
|
.pkBonus(pkMember)
|
||||||
|
.expandCapping(expandCapping)
|
||||||
|
.build();
|
||||||
|
cuMemberBonusDelayGrantDetail.setPkCreator(MagicNumberConstants.PK_ADMIN);
|
||||||
|
cuMemberBonusDelayGrantDetail.setPkCountry(cuMemberSettleExt.getPkCountry());
|
||||||
|
// TODO new 增加一条减少的延缓收益明细
|
||||||
|
cuMemberBonusDelayDetailList.add(cuMemberBonusDelayGrantDetail);
|
||||||
|
|
||||||
|
// 添加延缓主表
|
||||||
|
CuMemberBonusDelay cuMemberBonusDelay = CuMemberBonusDelay.builder()
|
||||||
|
.pkMember(pkMember)
|
||||||
|
.period(period)
|
||||||
|
.beforeGrantIncome(cuMemberSettleExt.getAfterGrantIncome())
|
||||||
|
.grantIncome(pretaxIncome)
|
||||||
|
.afterGrantIncome(cuMemberSettleExt.getAfterGrantIncome().subtract(pretaxIncome))
|
||||||
|
.pkBonus(pkMember)
|
||||||
|
.build();
|
||||||
|
cuMemberBonusDelay.setPkCreator(MagicNumberConstants.PK_ADMIN);
|
||||||
|
cuMemberBonusDelay.setPkCountry(cuMemberSettleExt.getPkCountry());
|
||||||
|
// TODO new 增加一条延缓主表
|
||||||
|
cuMemberBonusDelayList.add(cuMemberBonusDelay);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -205,6 +205,79 @@ public abstract class BonusSettleHandle {
|
||||||
return pkMemberSettleMap;
|
return pkMemberSettleMap;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 记录需要修改的会员结算表数据, 安置的
|
||||||
|
*
|
||||||
|
* @param cuMemberSettleExtMap 会员结算
|
||||||
|
* @param cuMemberSettleExt 查询出来的结算数据
|
||||||
|
*/
|
||||||
|
protected void getMemberSettle(Map<Long, CuMemberSettleExt> cuMemberSettleExtMap, CuMemberSettleExt cuMemberSettleExt) {
|
||||||
|
if (cuMemberSettleExtMap.containsKey(cuMemberSettleExt.getPkMember())) {
|
||||||
|
CuMemberSettleExt memberSettleExt = cuMemberSettleExtMap.get(cuMemberSettleExt.getPkMember());
|
||||||
|
if (memberSettleExt.getPkParent() == null) {
|
||||||
|
memberSettleExt.setPkParent(cuMemberSettleExt.getPkParent());
|
||||||
|
}
|
||||||
|
if (memberSettleExt.getPkPlaceParent() == null) {
|
||||||
|
memberSettleExt.setPkPlaceParent(cuMemberSettleExt.getPkPlaceParent());
|
||||||
|
}
|
||||||
|
if (memberSettleExt.getPlaceDept() == null) {
|
||||||
|
memberSettleExt.setPlaceDept(cuMemberSettleExt.getPlaceDept());
|
||||||
|
}
|
||||||
|
if (memberSettleExt.getPkGrade() == null) {
|
||||||
|
memberSettleExt.setPkGrade(cuMemberSettleExt.getPkGrade());
|
||||||
|
}
|
||||||
|
if (memberSettleExt.getGradeValue() == null) {
|
||||||
|
memberSettleExt.setGradeValue(cuMemberSettleExt.getGradeValue());
|
||||||
|
}
|
||||||
|
if (memberSettleExt.getPkAwards() == null) {
|
||||||
|
memberSettleExt.setPkAwards(cuMemberSettleExt.getPkAwards());
|
||||||
|
}
|
||||||
|
if (memberSettleExt.getRegisterAuthority() == null) {
|
||||||
|
memberSettleExt.setRegisterAuthority(cuMemberSettleExt.getRegisterAuthority());
|
||||||
|
}
|
||||||
|
if (memberSettleExt.getCustomerType() == null) {
|
||||||
|
memberSettleExt.setCustomerType(cuMemberSettleExt.getCustomerType());
|
||||||
|
}
|
||||||
|
if (memberSettleExt.getIsMakerSpace() == null) {
|
||||||
|
memberSettleExt.setIsMakerSpace(cuMemberSettleExt.getIsMakerSpace());
|
||||||
|
}
|
||||||
|
if (memberSettleExt.getIsMakerGift() == null) {
|
||||||
|
memberSettleExt.setIsMakerGift(cuMemberSettleExt.getIsMakerGift());
|
||||||
|
}
|
||||||
|
if (memberSettleExt.getPkVertex() == null) {
|
||||||
|
memberSettleExt.setPkVertex(cuMemberSettleExt.getPkVertex());
|
||||||
|
}
|
||||||
|
if (memberSettleExt.getUnGrantIncome() == null) {
|
||||||
|
memberSettleExt.setUnGrantIncome(cuMemberSettleExt.getUnGrantIncome());
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
cuMemberSettleExt.setANewAmount(BigDecimal.ZERO);
|
||||||
|
cuMemberSettleExt.setANewPv(BigDecimal.ZERO);
|
||||||
|
cuMemberSettleExt.setBNewAmount(BigDecimal.ZERO);
|
||||||
|
cuMemberSettleExt.setBNewPv(BigDecimal.ZERO);
|
||||||
|
cuMemberSettleExt.setRepANewAmount(BigDecimal.ZERO);
|
||||||
|
cuMemberSettleExt.setRepBNewAmount(BigDecimal.ZERO);
|
||||||
|
cuMemberSettleExt.setRepANewPv(BigDecimal.ZERO);
|
||||||
|
cuMemberSettleExt.setRepBNewPv(BigDecimal.ZERO);
|
||||||
|
cuMemberSettleExt.setRegisterNewAmount(BigDecimal.ZERO);
|
||||||
|
cuMemberSettleExt.setRegisterNewPv(BigDecimal.ZERO);
|
||||||
|
cuMemberSettleExt.setUpgradeNewAmount(BigDecimal.ZERO);
|
||||||
|
cuMemberSettleExt.setUpgradeNewPv(BigDecimal.ZERO);
|
||||||
|
cuMemberSettleExt.setRepurchaseNewAmount(BigDecimal.ZERO);
|
||||||
|
cuMemberSettleExt.setRepurchaseNewPv(BigDecimal.ZERO);
|
||||||
|
cuMemberSettleExt.setHiFunNewAmount(BigDecimal.ZERO);
|
||||||
|
cuMemberSettleExt.setHiFunNewPv(BigDecimal.ZERO);
|
||||||
|
cuMemberSettleExt.setMallNewAmount(BigDecimal.ZERO);
|
||||||
|
cuMemberSettleExt.setMallNewPv(BigDecimal.ZERO);
|
||||||
|
cuMemberSettleExt.setRegisterBloNewPv(BigDecimal.ZERO);
|
||||||
|
cuMemberSettleExt.setUpgradeBloNewPv(BigDecimal.ZERO);
|
||||||
|
cuMemberSettleExt.setRepurchaseBloNewPv(BigDecimal.ZERO);
|
||||||
|
cuMemberSettleExt.setHiFunBloNewPv(BigDecimal.ZERO);
|
||||||
|
cuMemberSettleExt.setMallBloNewPv(BigDecimal.ZERO);
|
||||||
|
cuMemberSettleExtMap.put(cuMemberSettleExt.getPkMember(), cuMemberSettleExt);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 记录需要修改的会员结算表数据, 安置的
|
* 记录需要修改的会员结算表数据, 安置的
|
||||||
*
|
*
|
||||||
|
|
|
@ -45,6 +45,7 @@ import com.hzs.common.domain.member.swing.ext.CuMemberSwingNetDetailExt;
|
||||||
import com.hzs.common.domain.member.swing.ext.CuMemberSwingNetExt;
|
import com.hzs.common.domain.member.swing.ext.CuMemberSwingNetExt;
|
||||||
import com.hzs.common.domain.sale.ext.SaOrderExt;
|
import com.hzs.common.domain.sale.ext.SaOrderExt;
|
||||||
import com.hzs.common.domain.system.config.BdAwards;
|
import com.hzs.common.domain.system.config.BdAwards;
|
||||||
|
import com.hzs.common.domain.system.config.BdGrade;
|
||||||
import com.hzs.common.domain.system.config.BdRangeAwards;
|
import com.hzs.common.domain.system.config.BdRangeAwards;
|
||||||
import com.hzs.member.base.IMemberServiceApi;
|
import com.hzs.member.base.IMemberServiceApi;
|
||||||
import com.hzs.sale.order.ISaOrderServiceApi;
|
import com.hzs.sale.order.ISaOrderServiceApi;
|
||||||
|
@ -368,6 +369,7 @@ public class BonusSettleServiceImpl implements IBonusSettleService {
|
||||||
iCuMemberTreeService.initCuMemberTreeTable(yesterdayTableName, currentSettleTableName);
|
iCuMemberTreeService.initCuMemberTreeTable(yesterdayTableName, currentSettleTableName);
|
||||||
|
|
||||||
Map<String, BdAwards> awardsMap = iAwardsServiceApi.getAwards().getData();
|
Map<String, BdAwards> awardsMap = iAwardsServiceApi.getAwards().getData();
|
||||||
|
Map<Integer, BdGrade> gradeMap = iGradeServiceApi.getGrade().getData();
|
||||||
|
|
||||||
// 查看是否有特殊业务,有特殊业务的处理,特殊业务,注水处理
|
// 查看是否有特殊业务,有特殊业务的处理,特殊业务,注水处理
|
||||||
List<CuMemberAchieveLog> cuMemberAchieveLogList = iCuMemberAchieveLogService.queryMemberAchieveLogByPeriod(period);
|
List<CuMemberAchieveLog> cuMemberAchieveLogList = iCuMemberAchieveLogService.queryMemberAchieveLogByPeriod(period);
|
||||||
|
@ -460,7 +462,7 @@ public class BonusSettleServiceImpl implements IBonusSettleService {
|
||||||
// 计算奖金(主入口)
|
// 计算奖金(主入口)
|
||||||
// 乐学易考奖金计算,回写代金券数量
|
// 乐学易考奖金计算,回写代金券数量
|
||||||
LeXueRangeParam leXueRangeParam = calculateBonusBySaOrderList(settleDate, period, yesterdayPeriod, currentSettleTableName,
|
LeXueRangeParam leXueRangeParam = calculateBonusBySaOrderList(settleDate, period, yesterdayPeriod, currentSettleTableName,
|
||||||
firPurchaseOrderList, repurchaseOrderList, mallOrderList, awardsMap, bonusConfigDTO, cuMemberBonusMap,
|
firPurchaseOrderList, repurchaseOrderList, mallOrderList, awardsMap, gradeMap, bonusConfigDTO, cuMemberBonusMap,
|
||||||
recordDetailVO, cuMemberSettleExtMap);
|
recordDetailVO, cuMemberSettleExtMap);
|
||||||
// 计算复购券
|
// 计算复购券
|
||||||
calculateRepurchaseCoupons(DateUtils.parseDate(settleDate), firPurchaseOrderList, period, bonusConfigDTO, cuMemberBonusMap,
|
calculateRepurchaseCoupons(DateUtils.parseDate(settleDate), firPurchaseOrderList, period, bonusConfigDTO, cuMemberBonusMap,
|
||||||
|
@ -786,15 +788,16 @@ public class BonusSettleServiceImpl implements IBonusSettleService {
|
||||||
* @param period 期间
|
* @param period 期间
|
||||||
* @param yesterdayPeriod 昨日期间
|
* @param yesterdayPeriod 昨日期间
|
||||||
* @param currentSettleTableName 结算日表
|
* @param currentSettleTableName 结算日表
|
||||||
* @param awardsMap 奖项
|
* @param awardsMap 奖衔
|
||||||
|
* @param gradeMap 等级
|
||||||
* @param bonusConfigDTO 奖金配置
|
* @param bonusConfigDTO 奖金配置
|
||||||
* @param cuMemberBonusMap 最终的奖金列表
|
* @param cuMemberBonusMap 最终的奖金列表
|
||||||
* @param cuMemberSettleExtMap 会员结算map
|
* @param cuMemberSettleExtMap 会员结算map
|
||||||
*/
|
*/
|
||||||
private LeXueRangeParam calculateBonusBySaOrderList(String settleDate, Integer period, Integer yesterdayPeriod, String currentSettleTableName,
|
private LeXueRangeParam calculateBonusBySaOrderList(String settleDate, Integer period, Integer yesterdayPeriod, String currentSettleTableName,
|
||||||
List<SaOrderExt> firPurchaseOrderList, List<SaOrderExt> repurchaseOrderList, List<SaOrderExt> mallOrderList,
|
List<SaOrderExt> firPurchaseOrderList, List<SaOrderExt> repurchaseOrderList, List<SaOrderExt> mallOrderList,
|
||||||
Map<String, BdAwards> awardsMap, BonusConfigDTO bonusConfigDTO, Map<Long, CuMemberBonus> cuMemberBonusMap,
|
Map<String, BdAwards> awardsMap, Map<Integer, BdGrade> gradeMap, BonusConfigDTO bonusConfigDTO,
|
||||||
BonusRecordDetailVO recordDetailVO, Map<Long, CuMemberSettleExt> cuMemberSettleExtMap) {
|
Map<Long, CuMemberBonus> cuMemberBonusMap, BonusRecordDetailVO recordDetailVO, Map<Long, CuMemberSettleExt> cuMemberSettleExtMap) {
|
||||||
LeXueRangeParam leXueRangeParam = null;
|
LeXueRangeParam leXueRangeParam = null;
|
||||||
Map<Long, CuAwardsControl> cuAwardsControlMap = getCuAwardsControlMap();
|
Map<Long, CuAwardsControl> cuAwardsControlMap = getCuAwardsControlMap();
|
||||||
Map<Long, CuMemberBonus> weekMemberBonusMap = getWeekMemberBonusMap(settleDate, period);
|
Map<Long, CuMemberBonus> weekMemberBonusMap = getWeekMemberBonusMap(settleDate, period);
|
||||||
|
@ -830,7 +833,8 @@ public class BonusSettleServiceImpl implements IBonusSettleService {
|
||||||
}
|
}
|
||||||
|
|
||||||
// 处理拓展延缓发放
|
// 处理拓展延缓发放
|
||||||
bonusSettleFirstPurchaseHandle.handleDelayExpand(recordDetailVO, cuMemberBonusMap, bonusConfigDTO, cuMemberSettleExtMap, period);
|
bonusSettleFirstPurchaseHandle.handleDelayExpand(recordDetailVO, cuMemberBonusMap, bonusConfigDTO, cuMemberSettleExtMap,
|
||||||
|
period, yesterdayPeriod, currentSettleTableName, gradeMap);
|
||||||
|
|
||||||
return leXueRangeParam;
|
return leXueRangeParam;
|
||||||
}
|
}
|
||||||
|
|
|
@ -5,6 +5,7 @@ import com.hzs.bonus.bonus.mapper.CuMemberBonusDelayMapper;
|
||||||
import com.hzs.bonus.bonus.service.ICuMemberBonusDelayService;
|
import com.hzs.bonus.bonus.service.ICuMemberBonusDelayService;
|
||||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||||
import com.hzs.common.domain.member.bonus.CuMemberBonusDelay;
|
import com.hzs.common.domain.member.bonus.CuMemberBonusDelay;
|
||||||
|
import com.hzs.common.domain.member.ext.CuMemberSettleExt;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
|
@ -48,4 +49,9 @@ public class CuMemberBonusDelayServiceImpl extends ServiceImpl<CuMemberBonusDela
|
||||||
baseMapper.batchInsertCuMemberBonusDelay(list));
|
baseMapper.batchInsertCuMemberBonusDelay(list));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public List<CuMemberSettleExt> listDelayNotBonus(String currentSettleTableName, Set<Long> pkMemberSet, Integer yesterdayPeriod) {
|
||||||
|
return baseMapper.listDelayNotBonus(currentSettleTableName, pkMemberSet, yesterdayPeriod);
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -2,6 +2,7 @@
|
||||||
<!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.CuMemberBonusDelayDetailMapper">
|
<mapper namespace="com.hzs.bonus.bonus.mapper.CuMemberBonusDelayDetailMapper">
|
||||||
|
|
||||||
|
<!-- 删除会员延缓发放明细表 -->
|
||||||
<delete id="deleteCuMemberBonusDelayDetail">
|
<delete id="deleteCuMemberBonusDelayDetail">
|
||||||
delete
|
delete
|
||||||
from CU_MEMBER_BONUS_DELAY_DETAIL
|
from CU_MEMBER_BONUS_DELAY_DETAIL
|
||||||
|
@ -11,6 +12,7 @@
|
||||||
where period = #{period} and grant_status <= 2)
|
where period = #{period} and grant_status <= 2)
|
||||||
</delete>
|
</delete>
|
||||||
|
|
||||||
|
<!-- 批量插入会员延缓发放明细表 -->
|
||||||
<insert id="batchInsertCuMemberBonusDelayDetail">
|
<insert id="batchInsertCuMemberBonusDelayDetail">
|
||||||
insert ALL
|
insert ALL
|
||||||
<foreach item="item" index="index" collection="CuMemberBonusDelayDetail" separator=" ">
|
<foreach item="item" index="index" collection="CuMemberBonusDelayDetail" separator=" ">
|
||||||
|
|
|
@ -2,15 +2,18 @@
|
||||||
<!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.CuMemberBonusDelayMapper">
|
<mapper namespace="com.hzs.bonus.bonus.mapper.CuMemberBonusDelayMapper">
|
||||||
|
|
||||||
|
<!-- 删除会员延缓发放主表 -->
|
||||||
<delete id="deleteCuMemberBonusDelay">
|
<delete id="deleteCuMemberBonusDelay">
|
||||||
delete
|
delete
|
||||||
from CU_MEMBER_BONUS_DELAY
|
from CU_MEMBER_BONUS_DELAY
|
||||||
where PK_BONUS in (
|
where PK_BONUS in (
|
||||||
select pk_id
|
select pk_id
|
||||||
from cu_member_bonus
|
from cu_member_bonus
|
||||||
where period = #{period} and grant_status <= 2)
|
where period = #{period}
|
||||||
|
and grant_status <= 2)
|
||||||
</delete>
|
</delete>
|
||||||
|
|
||||||
|
<!-- 批量插入会员延缓发放主表 -->
|
||||||
<insert id="batchInsertCuMemberBonusDelay">
|
<insert id="batchInsertCuMemberBonusDelay">
|
||||||
insert ALL
|
insert ALL
|
||||||
<foreach item="item" index="index" collection="cuMemberBonusDelayList" separator=" ">
|
<foreach item="item" index="index" collection="cuMemberBonusDelayList" separator=" ">
|
||||||
|
@ -26,4 +29,45 @@
|
||||||
SELECT 1 FROM dual
|
SELECT 1 FROM dual
|
||||||
</insert>
|
</insert>
|
||||||
|
|
||||||
|
<!-- 查询当天没有产生过奖金,但是还有延缓发放奖金的列表 -->
|
||||||
|
<select id="listDelayNotBonus" resultType="com.hzs.common.domain.member.ext.CuMemberSettleExt">
|
||||||
|
select cmbd.period, cmbd.pk_country,
|
||||||
|
cmbd.before_grant_income, cmbd.grant_income, cmbd.after_grant_income,
|
||||||
|
a.pk_member, a.member_code, a.member_name,
|
||||||
|
a.pk_place_parent, a.place_dept, a.pk_grade, a.pk_awards,
|
||||||
|
a.account_status, a.income_status, a.pk_settle_country,
|
||||||
|
a.purchase_status, a.share_status, a.register_authority,
|
||||||
|
a.a_balance, a.b_balance, a.r_a_balance, a.r_b_balance,
|
||||||
|
a.rep_a_balance, a.rep_b_balance, a.r_rep_a_balance, a.r_rep_b_balance,
|
||||||
|
a.register_amount, a.register_pv, a.upgrade_amount, a.upgrade_pv,
|
||||||
|
a.repurchase_amount, a.repurchase_pv,
|
||||||
|
a.hi_fun_amount, a.hi_fun_pv,
|
||||||
|
a.mall_amount, a.mall_pv,
|
||||||
|
a.pk_center_code, a.pk_vertex, a.category,
|
||||||
|
a.min_achieve, a.round, a.second,
|
||||||
|
a.store_level, a.expire_status,
|
||||||
|
a.pk_rate
|
||||||
|
from (
|
||||||
|
select cmbd.pk_member,
|
||||||
|
cmbd.period,
|
||||||
|
cmbd.pk_creator,
|
||||||
|
cmbd.pk_country,
|
||||||
|
cmbd.before_grant_income,
|
||||||
|
cmbd.grant_income,
|
||||||
|
cmbd.after_grant_income
|
||||||
|
from cu_member_bonus_delay cmbd
|
||||||
|
where cmbd.del_flag = 0
|
||||||
|
and cmbd.period = #{yesterdayPeriod}
|
||||||
|
and cmbd.after_grant_income > 0
|
||||||
|
<if test="pkMemberSet.size > 0">
|
||||||
|
and cmbd.pk_member not in
|
||||||
|
<foreach collection="pkMemberSet" item="item" open="(" close=")" separator=" union ">
|
||||||
|
select #{item} from dual
|
||||||
|
</foreach>
|
||||||
|
</if>
|
||||||
|
) cmbd
|
||||||
|
left join ${currentSettleTableName} a
|
||||||
|
on a.pk_member = cmbd.pk_member
|
||||||
|
</select>
|
||||||
|
|
||||||
</mapper>
|
</mapper>
|
||||||
|
|
|
@ -250,19 +250,18 @@
|
||||||
</where>
|
</where>
|
||||||
order by b.period,b.pk_bonus_items,b.real_income desc
|
order by b.period,b.pk_bonus_items,b.real_income desc
|
||||||
</select>
|
</select>
|
||||||
|
|
||||||
<select id="queryMemberBonusDetailByConditionForServer" resultMap="CuMemberBonusDetail">
|
<select id="queryMemberBonusDetailByConditionForServer" resultMap="CuMemberBonusDetail">
|
||||||
select b.period,cp.settle_date,so.order_code,so.order_type,bt.short_name source_country_name,
|
select b.period,cp.settle_date,
|
||||||
cu.member_code source_member_code,cu.member_name
|
so.order_code,so.order_type,bt.short_name source_country_name,
|
||||||
source_member_name,so.pk_rate,bc.out_exchange_rate,so.order_amount,
|
cu.member_code source_member_code,cu.member_name source_member_name,
|
||||||
so.order_achieve,b.pk_country,b.pk_bonus_items,b.pretax_income,b.income_tax,b.real_income,b.income_status,
|
nvl(so.pk_rate, 1) pk_rate, nvl(bc.out_exchange_rate, 1) out_exchange_rate,
|
||||||
|
nvl(so.order_amount, 0) order_amount, nvl(so.order_achieve, 0) order_achieve,
|
||||||
|
b.pk_country,b.pk_bonus_items,b.pretax_income,b.income_tax,b.real_income,b.income_status,
|
||||||
tar.member_code,tar.member_name,bg.pk_transaction pk_settle_grade,ba.pk_transaction
|
tar.member_code,tar.member_name,bg.pk_transaction pk_settle_grade,ba.pk_transaction
|
||||||
pk_awards,bv.vertex_name,ct.team_name,
|
pk_awards,bv.vertex_name,ct.team_name,
|
||||||
b.remark,b.income_ratio,b.income_dial_ratio,b.order_dial_ratio,bct.short_name settle_country from (
|
b.remark,b.income_ratio,b.income_dial_ratio,b.order_dial_ratio,bct.short_name settle_country
|
||||||
select pk_id,pk_member,order_code,order_type,pk_rate,pk_country,order_amount,order_achieve from sa_order
|
from (
|
||||||
union
|
|
||||||
select pk_id,pk_member,order_code,order_type,pk_rate,pk_country,order_amount,order_achieve from sa_t_order
|
|
||||||
) so
|
|
||||||
inner join (
|
|
||||||
select * from (
|
select * from (
|
||||||
select
|
select
|
||||||
cb.pk_member,cd.pk_order,cb.period,cb.pk_country,cd.pk_bonus_items,cd.income_status,cd.CAL_ACHIEVE,cd.pretax_income,cd.income_tax,cd.real_income,
|
cb.pk_member,cd.pk_order,cb.period,cb.pk_country,cd.pk_bonus_items,cd.income_status,cd.CAL_ACHIEVE,cd.pretax_income,cd.income_tax,cd.real_income,
|
||||||
|
@ -360,12 +359,15 @@
|
||||||
)
|
)
|
||||||
</if>
|
</if>
|
||||||
) b
|
) b
|
||||||
|
left join (
|
||||||
|
select pk_id,pk_member,order_code,order_type,pk_rate,pk_country,order_amount,order_achieve from sa_order
|
||||||
|
) so
|
||||||
on so.pk_id = b.pk_order
|
on so.pk_id = b.pk_order
|
||||||
inner join cu_member tar
|
left join cu_member tar
|
||||||
on b.pk_member = tar.pk_id
|
on b.pk_member = tar.pk_id
|
||||||
inner join cu_member cu
|
left join cu_member cu
|
||||||
on so.pk_member = cu.pk_id
|
on so.pk_member = cu.pk_id
|
||||||
inner join cu_member_settle_period cp
|
left join cu_member_settle_period cp
|
||||||
on b.period = cp.pk_id
|
on b.period = cp.pk_id
|
||||||
left join bd_vertex bv
|
left join bd_vertex bv
|
||||||
on bv.pk_id = tar.pk_vertex
|
on bv.pk_id = tar.pk_vertex
|
||||||
|
@ -432,6 +434,7 @@
|
||||||
<otherwise>order by tar.pk_teamcode</otherwise>
|
<otherwise>order by tar.pk_teamcode</otherwise>
|
||||||
</choose>
|
</choose>
|
||||||
</select>
|
</select>
|
||||||
|
|
||||||
<select id="queryMemberBonusDetailByBonusItemsForServer" resultMap="CuMemberBonusDetail">
|
<select id="queryMemberBonusDetailByBonusItemsForServer" resultMap="CuMemberBonusDetail">
|
||||||
select b.period,cp.settle_date,so.order_code,so.order_type,bt.short_name source_country_name,
|
select b.period,cp.settle_date,so.order_code,so.order_type,bt.short_name source_country_name,
|
||||||
cu.member_code source_member_code,cu.member_name source_member_name,nvl(so.pk_rate,b.pk_rate) pk_rate,
|
cu.member_code source_member_code,cu.member_name source_member_name,nvl(so.pk_rate,b.pk_rate) pk_rate,
|
||||||
|
|
|
@ -167,22 +167,23 @@
|
||||||
</where>
|
</where>
|
||||||
order by b.period,b.pk_bonus_items,b.real_income desc
|
order by b.period,b.pk_bonus_items,b.real_income desc
|
||||||
</select>
|
</select>
|
||||||
|
|
||||||
<select id="queryMemberBonusExpandByBonusItemsForServer" resultMap="CuMemberBonusExpand">
|
<select id="queryMemberBonusExpandByBonusItemsForServer" resultMap="CuMemberBonusExpand">
|
||||||
select b.period,cp.settle_date,so.order_code,so.order_type,bt.short_name source_country_name,
|
select b.period, cp.settle_date,
|
||||||
cu.member_code source_member_code,cu.member_name source_member_name,so.pk_rate,bc.out_exchange_rate,so.order_amount,
|
so.order_code,so.order_type,bt.short_name source_country_name,
|
||||||
so.order_achieve,b.pk_country,b.pk_bonus_items,b.pretax_income,b.income_tax,b.real_income,b.income_status,
|
cu.member_code source_member_code,cu.member_name source_member_name,
|
||||||
|
nvl(so.pk_rate, 1) pk_rate, nvl(bc.out_exchange_rate, 1) out_exchange_rate,
|
||||||
|
nvl(so.order_amount, 0) order_amount, nvl(so.order_achieve, 0) order_achieve,
|
||||||
|
b.pk_country,b.pk_bonus_items,b.pretax_income,b.income_tax,b.real_income,b.income_status,
|
||||||
tar.member_code,tar.member_name,bg.pk_transaction pk_settle_grade,ba.pk_transaction pk_awards,bv.vertex_name,ct.team_name,
|
tar.member_code,tar.member_name,bg.pk_transaction pk_settle_grade,ba.pk_transaction pk_awards,bv.vertex_name,ct.team_name,
|
||||||
b.remark,b.income_ratio,b.income_dial_ratio,b.order_dial_ratio,b.current_touch,b.expand_touch,
|
b.remark,b.income_ratio,b.income_dial_ratio,b.order_dial_ratio,b.current_touch,b.expand_touch,
|
||||||
b.expand_no_capping,b.expand_capping,b.expand_normal_half,b.expand_normal_real,bct.short_name settle_country from (
|
b.expand_no_capping,b.expand_capping,b.expand_normal_half,b.expand_normal_real,bct.short_name settle_country
|
||||||
select pk_id,pk_member,order_code,order_type,pk_rate,pk_country,order_amount,order_achieve from sa_order
|
from (
|
||||||
union
|
select
|
||||||
select pk_id,pk_member,order_code,order_type,pk_rate,pk_country,order_amount,order_achieve from sa_t_order
|
cb.pk_member,ce.pk_order,cb.period,cb.pk_country,ce.pk_bonus_items,ce.income_status,ce.CAL_ACHIEVE,ce.pretax_income,ce.income_tax,ce.real_income,
|
||||||
) so
|
|
||||||
inner join (
|
|
||||||
select cb.pk_member,ce.pk_order,cb.period,cb.pk_country,ce.pk_bonus_items,ce.income_status,ce.CAL_ACHIEVE,ce.pretax_income,ce.income_tax,ce.real_income,
|
|
||||||
ce.remark,ce.income_ratio,ce.income_dial_ratio,ce.order_dial_ratio,ce.current_touch,ce.expand_touch,
|
ce.remark,ce.income_ratio,ce.income_dial_ratio,ce.order_dial_ratio,ce.current_touch,ce.expand_touch,
|
||||||
ce.expand_no_capping,ce.expand_capping,ce.expand_normal_half,ce.expand_normal_real from
|
ce.expand_no_capping,ce.expand_capping,ce.expand_normal_half,ce.expand_normal_real
|
||||||
cu_member_bonus cb
|
from cu_member_bonus cb
|
||||||
inner join cu_member_bonus_expand ce
|
inner join cu_member_bonus_expand ce
|
||||||
on cb.pk_id = ce.pk_bonus
|
on cb.pk_id = ce.pk_bonus
|
||||||
where 1=1
|
where 1=1
|
||||||
|
@ -215,12 +216,15 @@
|
||||||
)
|
)
|
||||||
</if>
|
</if>
|
||||||
) b
|
) b
|
||||||
|
left join (
|
||||||
|
select pk_id,pk_member,order_code,order_type,pk_rate,pk_country,order_amount,order_achieve from sa_order
|
||||||
|
) so
|
||||||
on so.pk_id = b.pk_order
|
on so.pk_id = b.pk_order
|
||||||
inner join cu_member tar
|
left join cu_member tar
|
||||||
on b.pk_member = tar.pk_id
|
on b.pk_member = tar.pk_id
|
||||||
inner join cu_member cu
|
left join cu_member cu
|
||||||
on so.pk_member = cu.pk_id
|
on so.pk_member = cu.pk_id
|
||||||
inner join cu_member_settle_period cp
|
left join cu_member_settle_period cp
|
||||||
on b.period = cp.pk_id
|
on b.period = cp.pk_id
|
||||||
left join bd_vertex bv
|
left join bd_vertex bv
|
||||||
on bv.pk_id = tar.pk_vertex
|
on bv.pk_id = tar.pk_vertex
|
||||||
|
|
|
@ -3,6 +3,7 @@ package com.hzs.system.config.provider;
|
||||||
import cn.hutool.core.bean.BeanUtil;
|
import cn.hutool.core.bean.BeanUtil;
|
||||||
import cn.hutool.core.collection.CollectionUtil;
|
import cn.hutool.core.collection.CollectionUtil;
|
||||||
import com.hzs.common.core.domain.R;
|
import com.hzs.common.core.domain.R;
|
||||||
|
import com.hzs.common.domain.system.config.BdAwards;
|
||||||
import com.hzs.common.domain.system.config.BdGrade;
|
import com.hzs.common.domain.system.config.BdGrade;
|
||||||
import com.hzs.common.domain.system.ext.BdGradeScopeExt;
|
import com.hzs.common.domain.system.ext.BdGradeScopeExt;
|
||||||
import com.hzs.system.config.IGradeServiceApi;
|
import com.hzs.system.config.IGradeServiceApi;
|
||||||
|
@ -173,4 +174,14 @@ public class GradeServiceProvider implements IGradeServiceApi {
|
||||||
return R.ok(iBdGradeService.getLastGrade(achieve, pkCountry));
|
return R.ok(iBdGradeService.getLastGrade(achieve, pkCountry));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public R<Map<Integer, BdGrade>> getGrade() {
|
||||||
|
Map<Integer, BdGrade> gradeMap = new HashMap<>();
|
||||||
|
|
||||||
|
List<BdGrade> gradeList = iBdGradeService.queryGradeConfigByCondition(null);
|
||||||
|
for (BdGrade bdGrade : gradeList) {
|
||||||
|
gradeMap.put(bdGrade.getPkId(), bdGrade);
|
||||||
|
}
|
||||||
|
return R.ok(gradeMap);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -72,7 +72,9 @@ public class BdGradeServiceImpl extends ServiceImpl<BdGradeMapper, BdGrade> impl
|
||||||
@Override
|
@Override
|
||||||
public List<BdGrade> queryGradeConfigByCondition(Integer pkCountry) {
|
public List<BdGrade> queryGradeConfigByCondition(Integer pkCountry) {
|
||||||
LambdaQueryWrapper<BdGrade> queryWrapper = new LambdaQueryWrapper<>();
|
LambdaQueryWrapper<BdGrade> queryWrapper = new LambdaQueryWrapper<>();
|
||||||
queryWrapper.eq(BdGrade::getPkCountry, pkCountry);
|
if (pkCountry != null) {
|
||||||
|
queryWrapper.eq(BdGrade::getPkCountry, pkCountry);
|
||||||
|
}
|
||||||
queryWrapper.eq(BdGrade::getEnableState, EnableStatus.ENABLE.getValue());
|
queryWrapper.eq(BdGrade::getEnableState, EnableStatus.ENABLE.getValue());
|
||||||
queryWrapper.le(BdGrade::getGradeValue, EGrade.S_VIP.getValue());
|
queryWrapper.le(BdGrade::getGradeValue, EGrade.S_VIP.getValue());
|
||||||
queryWrapper.orderByDesc(BdGrade::getGradeValue);
|
queryWrapper.orderByDesc(BdGrade::getGradeValue);
|
||||||
|
|
|
@ -0,0 +1,19 @@
|
||||||
|
package com.hzs.common.domain.member.bonus.ext;
|
||||||
|
|
||||||
|
import com.hzs.common.domain.member.bonus.CuMemberBonusDelay;
|
||||||
|
import lombok.Data;
|
||||||
|
import lombok.EqualsAndHashCode;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 会员奖金-拓展收益延缓表 扩散表
|
||||||
|
*/
|
||||||
|
@EqualsAndHashCode(callSuper = true)
|
||||||
|
@Data
|
||||||
|
public class CuMemberBonusDelayExt extends CuMemberBonusDelay {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 会员等级
|
||||||
|
*/
|
||||||
|
private Integer pkGrade;
|
||||||
|
|
||||||
|
}
|
|
@ -1,5 +1,6 @@
|
||||||
package com.hzs.common.domain.member.ext;
|
package com.hzs.common.domain.member.ext;
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.annotation.TableField;
|
||||||
import com.hzs.common.domain.member.achieve.CuMemberTree;
|
import com.hzs.common.domain.member.achieve.CuMemberTree;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
import lombok.EqualsAndHashCode;
|
import lombok.EqualsAndHashCode;
|
||||||
|
@ -423,5 +424,17 @@ public class CuMemberSettleExt extends CuMemberTree {
|
||||||
* 拓展收益延缓发放奖金
|
* 拓展收益延缓发放奖金
|
||||||
*/
|
*/
|
||||||
private BigDecimal unGrantIncome;
|
private BigDecimal unGrantIncome;
|
||||||
|
/**
|
||||||
|
* 收益发放前
|
||||||
|
*/
|
||||||
|
private BigDecimal beforeGrantIncome;
|
||||||
|
/**
|
||||||
|
* 发放收益
|
||||||
|
*/
|
||||||
|
private BigDecimal grantIncome;
|
||||||
|
/**
|
||||||
|
* 收益发放后
|
||||||
|
*/
|
||||||
|
private BigDecimal afterGrantIncome;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -64,7 +64,7 @@ public class BdGrade extends BaseEntity {
|
||||||
*/
|
*/
|
||||||
@Excel(name = "注册金额/业绩")
|
@Excel(name = "注册金额/业绩")
|
||||||
@TableField("START_VALUE")
|
@TableField("START_VALUE")
|
||||||
@BigDecimalFormat()
|
@BigDecimalFormat
|
||||||
private BigDecimal startValue;
|
private BigDecimal startValue;
|
||||||
/**
|
/**
|
||||||
* 注册权限
|
* 注册权限
|
||||||
|
|
Loading…
Reference in New Issue