## 拓展延缓发放处理辅导收益;

This commit is contained in:
cabbage 2025-04-21 17:21:45 +08:00
parent 47a7ff90da
commit bc7fd1e5ee
9 changed files with 199 additions and 184 deletions

View File

@ -668,15 +668,18 @@ public class BonusSettleFirstPurchaseHandle extends BonusSettleHandle {
* @param firPurchaseOrderList 订单列表
* @param cuMemberBonusExpandList 量奖明细
* @param cuMemberBonusMap 所有计算出来的奖金汇总
* @param firstBool true=首购false=复购
* @param orderBool true=有订单false=没有订单延缓发放处理
*/
List<CuMemberBonusCoach> calculateCoachBonus(Map<Long, CuMemberSettleExt> cuMemberSettleExtMap, String settleTableName, String settleDateStr, BonusConfigDTO bonusConfigDTO,
List<SaOrderExt> firPurchaseOrderList, List<CuMemberBonusExpand> cuMemberBonusExpandList, Integer period, Map<Long, CuMemberBonus> cuMemberBonusMap,
Map<Long, CuAwardsControl> cuAwardsControlMap, Map<Long, CuMemberRiskControl> riskControlMap, List<BdAwards> awardsList, boolean firstBool) {
Map<Long, CuAwardsControl> cuAwardsControlMap, Map<Long, CuMemberRiskControl> riskControlMap, List<BdAwards> awardsList,
boolean firstBool, boolean orderBool) {
Map<Long, SaOrderExt> saOrderExtMap = new HashMap<>(ComputeUtil.mapInitCapacity(firPurchaseOrderList.size()));
firPurchaseOrderList.forEach(saOrderExt ->
saOrderExtMap.put(saOrderExt.getPkId(), saOrderExt));
return calculateCoachBonusOne(cuMemberSettleExtMap, settleTableName, settleDateStr, bonusConfigDTO, cuMemberBonusExpandList, period,
cuMemberBonusMap, saOrderExtMap, cuAwardsControlMap, riskControlMap, awardsList, firstBool);
cuMemberBonusMap, saOrderExtMap, cuAwardsControlMap, riskControlMap, awardsList, firstBool, orderBool);
}
/**
@ -685,7 +688,7 @@ public class BonusSettleFirstPurchaseHandle extends BonusSettleHandle {
List<CuMemberBonusCoach> calculateCoachBonusOne(Map<Long, CuMemberSettleExt> cuMemberSettleExtMap, String settleTableName, String settleDateStr, BonusConfigDTO bonusConfigDTO,
List<CuMemberBonusExpand> cuMemberBonusExpandList, Integer period, Map<Long, CuMemberBonus> cuMemberBonusMap,
Map<Long, SaOrderExt> saOrderExtMap, Map<Long, CuAwardsControl> cuAwardsControlMap, Map<Long, CuMemberRiskControl> riskControlMap,
List<BdAwards> awardsList, boolean firstBool) {
List<BdAwards> awardsList, boolean firstBool, boolean orderBool) {
// 领导奖数据列表
List<CuMemberBonusCoach> cuMemberBonusCoachList = new ArrayList<>();
@ -717,7 +720,7 @@ public class BonusSettleFirstPurchaseHandle extends BonusSettleHandle {
// }
List<CuMemberBonusCoach> coachBonusList = calculateBonusCoach(cuMemberSettleExtMap, bonusConfigDTO, period, cuMemberBonusMap,
saOrderExtMap, cuMemberAssessMap, bonusIdSettleMap, cuMemberBonusExpand, cuAwardsControlMap,
riskControlMap, cuMemberBonusNumMap, awardsList, firstBool);
riskControlMap, cuMemberBonusNumMap, awardsList, firstBool, orderBool);
if (coachBonusList.size() > 0) {
cuMemberBonusCoachList.addAll(coachBonusList);
}
@ -732,7 +735,8 @@ public class BonusSettleFirstPurchaseHandle extends BonusSettleHandle {
private List<CuMemberBonusCoach> calculateBonusCoach(Map<Long, CuMemberSettleExt> cuMemberSettleExtMap, BonusConfigDTO bonusConfigDTO, Integer period,
Map<Long, CuMemberBonus> cuMemberBonusMap, Map<Long, SaOrderExt> saOrderExtMap, Map<Long, CuMemberAssess> cuMemberAssessMap,
Map<Long, CuMemberSettleExt> bonusIdSettleMap, CuMemberBonusExpand cuMemberBonusExpand, Map<Long, CuAwardsControl> cuAwardsControlMap,
Map<Long, CuMemberRiskControl> riskControlMap, Map<Long, CuMemberSettleExt> cuMemberBonusNumMap, List<BdAwards> awardsList, boolean firstBool) {
Map<Long, CuMemberRiskControl> riskControlMap, Map<Long, CuMemberSettleExt> cuMemberBonusNumMap, List<BdAwards> awardsList,
boolean firstBool, boolean orderBool) {
// 目前这个会员只用来处理备注会员信息使用
CuMemberSettleExt sourceMemberSettleExt = bonusIdSettleMap.get(cuMemberBonusExpand.getPkBonus());
// 用于回写血缘总共多少代
@ -773,10 +777,8 @@ public class BonusSettleFirstPurchaseHandle extends BonusSettleHandle {
}
SaOrderExt saOrderExt = saOrderExtMap.get(cuMemberBonusExpand.getPkOrder());
if (null == saOrderExt
// || !validateSecondOrderExistBonus(saOrderExt, EBonusItems.COACHING_INCOME.getValue())
) {
// 订单为空 或者 判断二次发货是否有辅导收益 -- 原二次发货判断去掉
if (orderBool && null == saOrderExt) {
// 有订单 并且 订单为空
continue;
}
@ -831,7 +833,9 @@ public class BonusSettleFirstPurchaseHandle extends BonusSettleHandle {
}
// 收益占比
BdBonusDeduct bdBonusDeduct = setBonusDetailDeduct(bonusConfigDTO, cuMemberBonusCoach, saOrderExt.getOrderAmount(), saOrderExt.getInExchangeRate());
BdBonusDeduct bdBonusDeduct = setBonusDetailDeduct(bonusConfigDTO, cuMemberBonusCoach,
null != saOrderExt ? saOrderExt.getOrderAmount() : BigDecimal.ZERO,
null != saOrderExt ? saOrderExt.getInExchangeRate() : BigDecimal.ONE);
coachRemark(saOrderExt, cuMemberBonusCoach, sourceMemberSettleExt, targetMemberSettleExt, firstBool);
if (EBonusIncomeStatus.NORMAL.getValue() == cuMemberBonusCoach.getIncomeStatus()) {
@ -909,6 +913,7 @@ public class BonusSettleFirstPurchaseHandle extends BonusSettleHandle {
.build();
cuMemberBonusCoach.setPkCountry(targetMemberSettleExt.getPkSettleCountry());
cuMemberBonusCoach.setPkCreator(MagicNumberConstants.PK_ADMIN);
cuMemberBonusCoach.setPkModified(cuMemberBonusExpand.getPkModified());
if (EExpireStatus.TERMINATED.getValue() == targetMemberSettleExt.getExpireStatus()) {
cuMemberBonusCoach.setIncomeStatus(EBonusIncomeStatus.FIRE_BURN.getValue());
}
@ -1311,8 +1316,8 @@ public class BonusSettleFirstPurchaseHandle extends BonusSettleHandle {
* 处理拓展延缓发放
*/
public List<CuMemberBonusExpand> handleDelayExpand(BonusRecordDetailVO recordDetailVO, Map<Long, CuMemberBonus> cuMemberBonusMap, BonusConfigDTO bonusConfigDTO,
Map<Long, CuMemberSettleExt> cuMemberSettleExtMap, Integer period, Integer yesterdayPeriod, String currentSettleTableName,
Map<Integer, BdGrade> gradeMap) {
Map<Long, CuMemberSettleExt> cuMemberSettleExtMap, Integer period, Integer yesterdayPeriod, String currentSettleTableName,
Map<Integer, BdGrade> gradeMap) {
// 量奖拓展收益延缓发放主表量奖拓展收益延缓发放主表
List<CuMemberBonusDelay> cuMemberBonusDelayList = new ArrayList<>();
// 量奖拓展收益延缓发放明细列表
@ -1391,6 +1396,7 @@ public class BonusSettleFirstPurchaseHandle extends BonusSettleHandle {
.build();
cuMemberBonusExpand.setPkCreator(cuMemberBonusDelayAddDetail.getPkCreator());
cuMemberBonusExpand.setPkCountry(cuMemberBonusDelayAddDetail.getPkCountry());
cuMemberBonusExpand.setPkModified(pkMember);
// 处理扣项计算最终收益
BdBonusDeduct bdBonusDeduct = setDeplyBonusDetailDeduct(bonusConfigDTO, cuMemberBonusExpand);
// 处理实发小计实发收益总计
@ -1537,6 +1543,7 @@ public class BonusSettleFirstPurchaseHandle extends BonusSettleHandle {
.build();
cuMemberBonusExpand.setPkCreator(MagicNumberConstants.PK_ADMIN);
cuMemberBonusExpand.setPkCountry(cuMemberSettleExt.getPkCountry());
cuMemberBonusExpand.setPkModified(pkMember);
// 处理扣项计算最终收益
BdBonusDeduct bdBonusDeduct = setDeplyBonusDetailDeduct(bonusConfigDTO, cuMemberBonusExpand);
// 处理实发小计实发收益总计

View File

@ -6,7 +6,6 @@ import com.hzs.bonus.achieve.service.ICuMemberSettlePeriodService;
import com.hzs.bonus.achieve.service.ICuMemberTreeService;
import com.hzs.bonus.detail.service.ICuMemberAssessService;
import com.hzs.common.core.constant.BonusFieldConstants;
import com.hzs.common.core.constant.CountryConstants;
import com.hzs.common.core.constant.MagicNumberConstants;
import com.hzs.common.core.constant.TableNameConstants;
import com.hzs.common.core.constant.msg.BonusMsgConstants;
@ -431,203 +430,181 @@ public abstract class BonusSettleHandle {
}
/**
* 获得 直推收益的备注
*
* @param saOrderExt 订单编号
* @param cuMemberBonusPush 直推奖
* @param cuMemberRangeExtMap 存储会员网体的map
* @Description: 获得 直推收益的备注
* @return: String
* @Author: sui q
* @Date: 2022/11/17 11:22
*/
protected void recommendRangeRemark(SaOrderExt saOrderExt, CuMemberBonusPush cuMemberBonusPush, Map<Long, CuMemberRangeExt> cuMemberRangeExtMap, CuMemberRangeExt targetCuMemberRangeExt) {
CuMemberRangeExt sourceCuMemberRangeExt = cuMemberRangeExtMap.get(saOrderExt.getPkMember());
String remark = String.format(BonusMsgConstants.RANGE_RECOMMEND, cuMemberBonusPush.getRound(), cuMemberBonusPush.getSecond(), saOrderExt.getOrderCode(),
sourceCuMemberRangeExt.getMemberCode() + sourceCuMemberRangeExt.getMemberName(),
targetCuMemberRangeExt.getMemberCode() + targetCuMemberRangeExt.getMemberName(),
sourceCuMemberRangeExt.getMemberCode() + " " + sourceCuMemberRangeExt.getMemberName(),
targetCuMemberRangeExt.getMemberCode() + " " + targetCuMemberRangeExt.getMemberName(),
cuMemberBonusPush.getCalAchieve());
cuMemberBonusPush.setRemark(remark);
}
/**
* 获得 拓展收益的备注
*
* @param saOrderExt 订单编号
* @param cuMemberBonusExpand 拓展奖
* @param sourceCuMemberSettleExt 提供奖金的人
* @param targetCuMemberSettleExt 获得奖金的人
* @Description: 获得 拓展收益的备注
* @return: String
* @Author: sui q
* @Date: 2022/11/17 11:22
*/
protected void expandRemark(SaOrderExt saOrderExt, CuMemberBonusExpand cuMemberBonusExpand,
CuMemberSettleExt sourceCuMemberSettleExt, CuMemberSettleExt targetCuMemberSettleExt) {
String remark = String.format(BonusMsgConstants.EXPAND, cuMemberBonusExpand.getCurrentTouch(), cuMemberBonusExpand.getExpandTouch(), saOrderExt.getOrderCode(),
sourceCuMemberSettleExt.getMemberCode() + sourceCuMemberSettleExt.getMemberName(),
targetCuMemberSettleExt.getMemberCode() + targetCuMemberSettleExt.getMemberName(),
sourceCuMemberSettleExt.getMemberCode() + " " + sourceCuMemberSettleExt.getMemberName(),
targetCuMemberSettleExt.getMemberCode() + " " + targetCuMemberSettleExt.getMemberName(),
cuMemberBonusExpand.getCalAchieve(), cuMemberBonusExpand.getCalValue());
cuMemberBonusExpand.setRemark(remark);
}
/**
* 获得 拓展收益的备注
*
* @param saOrderExt 订单编号
* @param cuMemberBonusPush 拓展奖
* @param sourceCuMemberSettleExt 提供奖金的人
* @param targetCuMemberSettleExt 获得奖金的人
* @Description: 获得 拓展收益的备注
* @return: String
* @Author: sui q
* @Date: 2022/11/17 11:22
*/
protected void repurchasePushRemark(SaOrderExt saOrderExt, CuMemberBonusPush cuMemberBonusPush,
CuMemberSettleExt sourceCuMemberSettleExt, CuMemberSettleExt targetCuMemberSettleExt, String msg) {
String remark = String.format(msg, saOrderExt.getOrderCode(),
sourceCuMemberSettleExt.getMemberCode() + sourceCuMemberSettleExt.getMemberName(),
targetCuMemberSettleExt.getMemberCode() + targetCuMemberSettleExt.getMemberName(),
sourceCuMemberSettleExt.getMemberCode() + " " + sourceCuMemberSettleExt.getMemberName(),
targetCuMemberSettleExt.getMemberCode() + " " + targetCuMemberSettleExt.getMemberName(),
cuMemberBonusPush.getCalAchieve(), cuMemberBonusPush.getCalValue());
cuMemberBonusPush.setRemark(remark);
}
/**
* 获得 拓展收益的备注
*
* @param saOrderExt 订单编号
* @param cuMemberBonusExpand 拓展奖
* @param sourceCuMemberSettleExt 提供奖金的人
* @param targetCuMemberSettleExt 获得奖金的人
* @Description: 获得 拓展收益的备注
* @return: String
* @Author: sui q
* @Date: 2022/11/17 11:22
*/
protected void repurchaseExpandRemark(SaOrderExt saOrderExt, CuMemberBonusExpand cuMemberBonusExpand,
CuMemberSettleExt sourceCuMemberSettleExt, CuMemberSettleExt targetCuMemberSettleExt) {
String remark = String.format(BonusMsgConstants.REPURCHASE_EXPAND, cuMemberBonusExpand.getCurrentTouch(), cuMemberBonusExpand.getExpandTouch(), saOrderExt.getOrderCode(),
sourceCuMemberSettleExt.getMemberCode() + sourceCuMemberSettleExt.getMemberName(),
targetCuMemberSettleExt.getMemberCode() + targetCuMemberSettleExt.getMemberName(),
sourceCuMemberSettleExt.getMemberCode() + " " + sourceCuMemberSettleExt.getMemberName(),
targetCuMemberSettleExt.getMemberCode() + " " + targetCuMemberSettleExt.getMemberName(),
cuMemberBonusExpand.getCalAchieve(), cuMemberBonusExpand.getCalValue());
cuMemberBonusExpand.setRemark(remark);
}
/**
* 获得 辅导收益的备注
*
* @param saOrderExt 订单编号
* @param cuMemberBonusCoach 辅导奖
* @param sourceCuMemberSettleExt 提供奖金的人
* @param targetCuMemberSettleExt 获得奖金的人
* @Description: 获得 辅导收益的备注
* @return: String
* @Author: sui q
* @Date: 2022/11/17 11:22
*/
protected void coachRemark(SaOrderExt saOrderExt, CuMemberBonusCoach cuMemberBonusCoach,
CuMemberSettleExt sourceCuMemberSettleExt, CuMemberSettleExt targetCuMemberSettleExt, boolean firstBool) {
String remark = String.format(firstBool ? BonusMsgConstants.COACH : BonusMsgConstants.REPURCHASE_COACH,
cuMemberBonusCoach.getCurrentGeneration(), saOrderExt.getOrderCode(),
sourceCuMemberSettleExt.getMemberCode() + sourceCuMemberSettleExt.getMemberName(),
targetCuMemberSettleExt.getMemberCode() + targetCuMemberSettleExt.getMemberName(),
cuMemberBonusCoach.getCurrentGeneration(), null != saOrderExt ? saOrderExt.getOrderCode() : " ",
sourceCuMemberSettleExt.getMemberCode() + " " + sourceCuMemberSettleExt.getMemberName(),
targetCuMemberSettleExt.getMemberCode() + " " + targetCuMemberSettleExt.getMemberName(),
cuMemberBonusCoach.getCalAchieve(), cuMemberBonusCoach.getCalValue());
cuMemberBonusCoach.setRemark(remark);
}
/**
* 获得 辅导收益的备注
*
* @param saOrderExt 订单编号
* @param cuMemberBonusCoach 辅导奖
* @param sourceMemberRangeExt 提供奖金的人
* @param targetMemberRangeExt 获得奖金的人
* @Description: 获得 辅导收益的备注
* @return: String
* @Author: sui q
* @Date: 2022/11/17 11:22
*/
protected void coachRangeRemark(SaOrderExt saOrderExt, CuMemberBonusCoach cuMemberBonusCoach,
CuMemberRangeExt sourceMemberRangeExt, CuMemberRangeExt targetMemberRangeExt) {
String remark = String.format(BonusMsgConstants.RANGE_COACH, cuMemberBonusCoach.getCurrentGeneration(), cuMemberBonusCoach.getCoachGeneration(),
saOrderExt.getOrderCode(),
sourceMemberRangeExt.getMemberCode() + sourceMemberRangeExt.getMemberName(),
targetMemberRangeExt.getMemberCode() + targetMemberRangeExt.getMemberName(),
sourceMemberRangeExt.getMemberCode() + " " + sourceMemberRangeExt.getMemberName(),
targetMemberRangeExt.getMemberCode() + " " + targetMemberRangeExt.getMemberName(),
cuMemberBonusCoach.getCalAchieve(), cuMemberBonusCoach.getCalValue());
cuMemberBonusCoach.setRemark(remark);
}
/**
* 获得 报单服务费收益的备注
*
* @param saOrderExt 订单编号
* @param cuMemberBonusDetail 报单服务费
* @param sourceCuMemberSettleExt 提供奖金的人
* @param targetCuMemberSettleExt 获得奖金的人
* @Description: 获得 报单服务费收益的备注
* @return: String
* @Author: sui q
* @Date: 2022/11/17 11:22
*/
protected void serviceRemark(SaOrderExt saOrderExt, CuMemberBonusDetail cuMemberBonusDetail,
CuMemberSettleExt sourceCuMemberSettleExt, CuMemberSettleExt targetCuMemberSettleExt) {
String remark = String.format(BonusMsgConstants.SERVICE, saOrderExt.getOrderCode(),
sourceCuMemberSettleExt.getMemberCode() + sourceCuMemberSettleExt.getMemberName(),
targetCuMemberSettleExt.getMemberCode() + targetCuMemberSettleExt.getMemberName(),
sourceCuMemberSettleExt.getMemberCode() + " " + sourceCuMemberSettleExt.getMemberName(),
targetCuMemberSettleExt.getMemberCode() + " " + targetCuMemberSettleExt.getMemberName(),
cuMemberBonusDetail.getCalAchieve(), cuMemberBonusDetail.getCalValue());
cuMemberBonusDetail.setRemark(remark);
}
/**
* 获得 报单服务费收益的备注
*
* @param saOrderExt 订单编号
* @param cuMemberBonusDetail 报单服务费
* @param sourceCuMemberRangeExt 提供奖金的人
* @param targetCuMemberRangeExt 获得奖金的人
* @Description: 获得 报单服务费收益的备注
* @return: String
* @Author: sui q
* @Date: 2022/11/17 11:22
*/
protected void rangeServiceRemark(SaOrderExt saOrderExt, CuMemberBonusDetail cuMemberBonusDetail,
CuMemberRangeExt sourceCuMemberRangeExt, CuMemberRangeExt targetCuMemberRangeExt) {
String remark = String.format(BonusMsgConstants.RANGE_SERVICE, saOrderExt.getOrderCode(),
sourceCuMemberRangeExt.getMemberCode() + sourceCuMemberRangeExt.getMemberName(),
targetCuMemberRangeExt.getMemberCode() + targetCuMemberRangeExt.getMemberName(),
sourceCuMemberRangeExt.getMemberCode() + " " + sourceCuMemberRangeExt.getMemberName(),
targetCuMemberRangeExt.getMemberCode() + " " + targetCuMemberRangeExt.getMemberName(),
cuMemberBonusDetail.getCalAchieve(), cuMemberBonusDetail.getCalValue());
cuMemberBonusDetail.setRemark(remark);
}
/**
* 获得 报单服务费收益的备注
*
* @param saOrderExt 订单编号
* @param cuMemberBonusDetail 报单服务费
* @param sourceCuMemberSettleExt 提供奖金的人
* @param targetCuMemberSettleExt 获得奖金的人
* @Description: 获得 报单服务费收益的备注
* @return: String
* @Author: sui q
* @Date: 2022/11/17 11:22
*/
protected void haiFunRemark(SaOrderExt saOrderExt, CuMemberBonusDetail cuMemberBonusDetail,
CuMemberSettleExt sourceCuMemberSettleExt, CuMemberSettleExt targetCuMemberSettleExt) {
String remark = String.format(BonusMsgConstants.HAI_FUN, saOrderExt.getOrderCode(),
sourceCuMemberSettleExt.getMemberCode() + sourceCuMemberSettleExt.getMemberName(),
targetCuMemberSettleExt.getMemberCode() + targetCuMemberSettleExt.getMemberName(),
sourceCuMemberSettleExt.getMemberCode() + " " + sourceCuMemberSettleExt.getMemberName(),
targetCuMemberSettleExt.getMemberCode() + " " + targetCuMemberSettleExt.getMemberName(),
cuMemberBonusDetail.getPretaxIncome());
cuMemberBonusDetail.setRemark(remark);
}
/**
* 获得 嗨粉推荐的收益
*
* @param saOrderExt 订单编号
* @param cuMemberBonusDetail 报单服务费
* @param sourceCuMemberSettleExt 提供奖金的人
* @param targetCuMemberSettleExt 获得奖金的人
* @Description: 获得 嗨粉推荐的收益
* @return: String
* @Author: sui q
* @Date: 2022/11/17 11:22
*/
protected void hiFunRemark(SaOrderExt saOrderExt, CuMemberBonusDetail cuMemberBonusDetail,
CuMemberSettleExt sourceCuMemberSettleExt, CuMemberSettleExt targetCuMemberSettleExt) {
String remark = String.format(BonusMsgConstants.HI_FUN, saOrderExt.getOrderCode(),
sourceCuMemberSettleExt.getMemberCode() + sourceCuMemberSettleExt.getMemberName(),
targetCuMemberSettleExt.getMemberCode() + targetCuMemberSettleExt.getMemberName(),
sourceCuMemberSettleExt.getMemberCode() + " " + sourceCuMemberSettleExt.getMemberName(),
targetCuMemberSettleExt.getMemberCode() + " " + targetCuMemberSettleExt.getMemberName(),
cuMemberBonusDetail.getRealIncome());
cuMemberBonusDetail.setRemark(remark);
}
/**
* 获得 分红收益的备注
*
* @param cuMemberBonusDetail 分红
* @param settleDate 结算日期
* @Description: 获得 分红收益的备注
* @return: String
* @Author: sui q
* @Date: 2022/11/17 11:22
*/
protected void shareRemark(CuMemberBonusDetail cuMemberBonusDetail, String settleDate) {
String remark = String.format(BonusMsgConstants.SHARE, DateUtils.getMonth(settleDate),
@ -636,12 +613,10 @@ public abstract class BonusSettleHandle {
}
/**
* 获得 分红收益的备注
*
* @param cuMemberBonusDetail 分红
* @param settleDate 结算日期
* @Description: 获得 分红收益的备注
* @return: String
* @Author: sui q
* @Date: 2022/11/17 11:22
*/
protected void shareCouponRemark(CuMemberBonusDetail cuMemberBonusDetail, String settleDate) {
String remark = String.format(BonusMsgConstants.SHARE_COUPON, DateUtils.getMonth(settleDate),
@ -650,12 +625,10 @@ public abstract class BonusSettleHandle {
}
/**
* 获得 店铺收益的备注
*
* @param cuMemberBonusDetail 分红
* @param settleDate 结算日期
* @Description: 获得 分红收益的备注
* @return: String
* @Author: sui q
* @Date: 2022/11/17 11:22
*/
protected void storeRemark(CuMemberBonusDetail cuMemberBonusDetail, String settleDate) {
String remark = String.format(BonusMsgConstants.STORE, DateUtils.getMonth(settleDate),
@ -664,14 +637,12 @@ public abstract class BonusSettleHandle {
}
/**
* 获得 极差收益的备注
*
* @param saOrderExt 订单编号
* @param cuMemberBonusRange 报单服务费
* @param sourceCuMemberSettleExt 提供奖金的人
* @param targetCuMemberSettleExt 获得奖金的人
* @Description: 获得 报单服务费收益的备注
* @return: String
* @Author: sui q
* @Date: 2022/11/17 11:22
*/
protected void rangeRemark(SaOrderExt saOrderExt, CuMemberBonusRange cuMemberBonusRange, CuMemberSettleExt sourceCuMemberSettleExt,
CuMemberSettleExt targetCuMemberSettleExt, Map<String, RangeDTO> rangePkDtoMap) {
@ -685,14 +656,12 @@ public abstract class BonusSettleHandle {
}
/**
* 获得 极差收益的备注
*
* @param saOrderExt 订单编号
* @param cuMemberBonusRange 报单服务费
* @param sourceMemberRangeExt 提供奖金的人
* @param targetMemberRangeExt 获得奖金的人
* @Description: 获得 报单服务费收益的备注
* @return: String
* @Author: sui q
* @Date: 2022/11/17 11:22
*/
protected void rangeRemark(SaOrderExt saOrderExt, CuMemberBonusRange cuMemberBonusRange, CuMemberRangeExt sourceMemberRangeExt,
CuMemberRangeExt targetMemberRangeExt) {
@ -704,14 +673,12 @@ public abstract class BonusSettleHandle {
}
/**
* 获得 极差收益的备注
*
* @param saOrderExt 订单编号
* @param cuMemberBonusRange 报单服务费
* @param sourceMemberRangeExt 提供奖金的人
* @param targetMemberRangeExt 获得奖金的人
* @Description: 获得 报单服务费收益的备注
* @return: String
* @Author: sui q
* @Date: 2022/11/17 11:22
*/
protected void oriRangeRemark(SaOrderExt saOrderExt, CuMemberBonusRange cuMemberBonusRange, CuMemberRangeExt sourceMemberRangeExt,
CuMemberRangeExt targetMemberRangeExt) {
@ -723,7 +690,7 @@ public abstract class BonusSettleHandle {
}
/**
* 获得 报单服务费收益的备注
* 获得 分享极差收益的备注
*
* @param saOrderExt 订单编号
* @param cuMemberBonusRange 报单服务费
@ -804,11 +771,17 @@ public abstract class BonusSettleHandle {
* @return CuMemberBonus
*/
protected CuMemberBonus getCuMemberBonus(Integer period, Map<Long, CuMemberBonus> cuMemberBonusMap, SaOrder saOrder, CuMemberSettleExt cuMemberSettleExt) {
Integer pkRate = saOrder.getPkRate();
if (pkRate == null || !Objects.equals(cuMemberSettleExt.getPkSettleCountry(), saOrder.getPkCountry())) {
// 结算会员和订单不是一个国家的需要按结算会员的汇率进行处理
Integer pkRate;
if (null == saOrder) {
CurrencyDTO currencyDTO = iCurrencyServiceApi.getCurrency(cuMemberSettleExt.getPkSettleCountry()).getData();
pkRate = currencyDTO.getPkId();
} else {
pkRate = saOrder.getPkRate();
if (pkRate == null || !Objects.equals(cuMemberSettleExt.getPkSettleCountry(), saOrder.getPkCountry())) {
// 结算会员和订单不是一个国家的需要按结算会员的汇率进行处理
CurrencyDTO currencyDTO = iCurrencyServiceApi.getCurrency(cuMemberSettleExt.getPkSettleCountry()).getData();
pkRate = currencyDTO.getPkId();
}
}
return getCuMemberBonus(period, cuMemberBonusMap, cuMemberSettleExt.getPkMember(), cuMemberSettleExt.getIncomeStatus(),
cuMemberSettleExt.getPkSettleCountry(), pkRate);
@ -861,6 +834,7 @@ public abstract class BonusSettleHandle {
cuMemberBonus.setPkCreator(MagicNumberConstants.PK_ADMIN);
cuMemberBonus.setPkCountry(pkCountry);
cuMemberBonus.setGrantStatus(EGrantStatus.SETTLED.getValue());
cuMemberBonus.setPkModified(pkMember);
cuMemberBonusMap.put(pkMember, cuMemberBonus);
return cuMemberBonus;
}
@ -1090,10 +1064,7 @@ public abstract class BonusSettleHandle {
}
/**
* @Description: 云代计算 扣项小计总计
* @return: void
* @Author: sui q
* @Date: 2023/1/11 13:59
* 云代计算 扣项小计总计
*/
protected void setCloudTotal(BdBonusDeduct bdBonusDeduct, CuMemberBonus cuMemberBonus, Object bonusDetail) {
setBonusDeduct(bdBonusDeduct, cuMemberBonus, bonusDetail);
@ -1103,10 +1074,7 @@ public abstract class BonusSettleHandle {
}
/**
* @Description: 复购券 扣项小计总计
* @return: void
* @Author: sui q
* @Date: 2023/1/11 13:59
* 复购券 扣项小计总计
*/
protected void setRepurchaseCouponTotal(BdBonusDeduct bdBonusDeduct, CuMemberBonus cuMemberBonus, Object bonusDetail) {
setBonusDeduct(bdBonusDeduct, cuMemberBonus, bonusDetail);

View File

@ -241,7 +241,8 @@ public class BonusSettleServiceImpl implements IBonusSettleService {
boolean firstFlag = EOrderType.SPECIAL_REGISTER_ORDER.getValue() == saOrderExt.getOrderType()
|| EOrderType.SPECIAL_UPGRADE_ORDER.getValue() == saOrderExt.getOrderType();
// 领导奖处理
List<CuMemberBonusCoach> cuMemberBonusCoachList = bonusSettleFirstPurchaseHandle.calculateCoachBonusOne(cuMemberSettleExtMap, settleTableName, settleDate, bonusConfigDTO, cuMemberBonusExpandList, period, cuMemberBonusMap, saOrderExtMap, cuAwardsControlMap, riskControlMap, awardsList, firstFlag);
List<CuMemberBonusCoach> cuMemberBonusCoachList = bonusSettleFirstPurchaseHandle.calculateCoachBonusOne(cuMemberSettleExtMap, settleTableName, settleDate, bonusConfigDTO,
cuMemberBonusExpandList, period, cuMemberBonusMap, saOrderExtMap, cuAwardsControlMap, riskControlMap, awardsList, firstFlag, false);
// 计算报单服务费
CuMemberBonusDetail cuMemberBonusDetail = bonusSettleFirstPurchaseHandle.calculateServiceBonusOne(settleDate, cuMemberAssessMap, cuMemberSettleExtMap, bonusConfigDTO, period, cuMemberBonusMap, saOrderExt);
@ -851,23 +852,26 @@ public class BonusSettleServiceImpl implements IBonusSettleService {
List<CuMemberBonusExpand> delayExpandList = bonusSettleFirstPurchaseHandle.handleDelayExpand(bonusRecordDetailVO, cuMemberBonusMap, bonusConfigDTO, cuMemberSettleExtMap,
period, yesterdayPeriod, settleTableName, gradeMap);
// TODO new 处理拓展延缓发放辅导收益
// // 判断是否有量奖有量奖有辅导奖
// List<CuMemberBonusCoach> cuMemberBonusCoachList = bonusSettleFirstPurchaseHandle.calculateCoachBonus(cuMemberSettleExtMap, settleTableName, settleDate, bonusConfigDTO, Collections.emptyList(),
// delayExpandList, period, cuMemberBonusMap, cuAwardsControlMap, riskControlMap, awardsList, true);
// if (CollectionUtil.isNotEmpty(bonusRecordDetailVO.getCuMemberBonusCoachList())) {
// bonusRecordDetailVO.getCuMemberBonusCoachList().addAll(cuMemberBonusCoachList);
// }
// TODO new 处理拓展延缓发放辅导收益没有订单需要兼容一下
// 判断是否有量奖有量奖有辅导奖
List<CuMemberBonusCoach> cuMemberBonusCoachList = bonusSettleFirstPurchaseHandle.calculateCoachBonus(cuMemberSettleExtMap, settleTableName, settleDate, bonusConfigDTO,
Collections.emptyList(), delayExpandList, period, cuMemberBonusMap, cuAwardsControlMap, riskControlMap, awardsList, true, false);
if (CollectionUtil.isNotEmpty(bonusRecordDetailVO.getCuMemberBonusCoachList())) {
bonusRecordDetailVO.getCuMemberBonusCoachList().addAll(cuMemberBonusCoachList);
} else {
bonusRecordDetailVO.setCuMemberBonusCoachList(cuMemberBonusCoachList);
}
// 延缓发放的订单占比等已经在延缓的时间处理过后面不需要再处理这个位置就先不用了
// cuMemberBonusCoachList.forEach(cuMemberBonusCoach -> {
// MemberBonusDetailCalVO memberBonusDetailCalVO = calculateOrderRatio(memberBonusDetailCalVoMap, cuMemberBonusCoach);
// memberBonusDetailCalVO.setCoachIncome(ComputeUtil.computeAdd(memberBonusDetailCalVO.getCoachIncome(), cuMemberBonusCoach.getRealIncome()));
// });
// // 辅导收益
// cuMemberBonusCoachList.forEach(cuMemberBonusCoach -> {
// // 收益拨比订单占比在延缓明细里面已经计算过此处可以直接给0
// cuMemberBonusCoach.setIncomeDialRatio(BigDecimal.ZERO);
// cuMemberBonusCoach.setOrderDialRatio(BigDecimal.ZERO);
// });
// 辅导收益
cuMemberBonusCoachList.forEach(cuMemberBonusCoach -> {
// 收益拨比订单占比在延缓明细里面已经计算过此处可以直接给0
cuMemberBonusCoach.setIncomeDialRatio(BigDecimal.ZERO);
cuMemberBonusCoach.setOrderDialRatio(BigDecimal.ZERO);
});
return leXueRangeParam;
}
@ -1067,7 +1071,7 @@ public class BonusSettleServiceImpl implements IBonusSettleService {
//*********************************计算领导奖(首购辅导收益)************************/
// 判断是否有量奖有量奖有辅导奖
List<CuMemberBonusCoach> cuMemberBonusCoachList = bonusSettleFirstPurchaseHandle.calculateCoachBonus(cuMemberSettleExtMap, settleTableName, settleDate, bonusConfigDTO, firPurchaseOrderList,
cuMemberBonusExpandList, period, cuMemberBonusMap, cuAwardsControlMap, riskControlMap, awardsList, true);
cuMemberBonusExpandList, period, cuMemberBonusMap, cuAwardsControlMap, riskControlMap, awardsList, true, true);
if (CollectionUtil.isNotEmpty(bonusRecordDetailVO.getCuMemberBonusCoachList())) {
bonusRecordDetailVO.getCuMemberBonusCoachList().addAll(cuMemberBonusCoachList);
} else {
@ -1195,7 +1199,7 @@ public class BonusSettleServiceImpl implements IBonusSettleService {
//*********************************计算领导奖(复购辅导收益)************************/
// 判断是否有量奖有量奖有辅导奖
List<CuMemberBonusCoach> cuMemberBonusCoachList = bonusSettleFirstPurchaseHandle.calculateCoachBonus(cuMemberSettleExtMap, settleTableName, settleDate, bonusConfigDTO, purchaseOrderList,
cuMemberBonusExpandList, period, cuMemberBonusMap, cuAwardsControlMap, riskControlMap, awardsList, false);
cuMemberBonusExpandList, period, cuMemberBonusMap, cuAwardsControlMap, riskControlMap, awardsList, false, true);
bonusRecordDetailVO.setCuMemberBonusCoachList(cuMemberBonusCoachList);
//****************************乐学极差(复购)*****************************/

View File

@ -517,7 +517,7 @@ public class CuMemberBonusServiceImpl extends ServiceImpl<CuMemberBonusMapper, C
});
} else if (EBonusItems.COACHING_INCOME.getValue() == bonusItemsValue
|| EBonusItems.REPURCHASE_COACHING_INCOME.getValue() == bonusItemsValue) {
// 辅导收益
// 辅导收益复购辅导收益
List<CuMemberBonusCoachExt> cuMemberBonusCoachList = cuMemberBonusCoachMapper.queryMemberBonusCoachByBonusItemsForServer(bonusParam);
dataTable = getDataTable(cuMemberBonusCoachList);
cuMemberBonusCoachList.forEach(cuMemberBonusCoach -> {

View File

@ -347,4 +347,19 @@ public class MemberBonusDetailSerVO implements Serializable {
@Excel(name = "订单拨比(%)", scale = 2)
private BigDecimal orderDialRatio;
public BigDecimal getOrderAmount() {
return null != orderAmount ? orderAmount : BigDecimal.ZERO;
}
public BigDecimal getOrderAchieveOri() {
return null != orderAchieveOri ? orderAchieveOri : BigDecimal.ZERO;
}
public BigDecimal getOrderAmountDollar() {
return null != orderAmountDollar ? orderAmountDollar : BigDecimal.ZERO;
}
public BigDecimal getOrderAchieve() {
return null != orderAchieve ? orderAchieve : BigDecimal.ZERO;
}
}

View File

@ -66,7 +66,7 @@
coach_generation, coach_no_capping, coach_capping,
coach_normal_half, coach_normal_real, remark,
income_ratio, income_dial_ratio, order_dial_ratio,
pk_country, pk_creator
pk_country, pk_creator, pk_modified
)
values (
#{item.pkBonus}, #{item.pkOrder}, #{item.pkBonusItems}, #{item.incomeStatus},
@ -75,7 +75,7 @@
#{item.coachGeneration}, #{item.coachNoCapping}, #{item.coachCapping},
#{item.coachNormalHalf},#{item.coachNormalReal}, #{item.remark},
#{item.incomeRatio}, #{item.incomeDialRatio}, #{item.orderDialRatio},
#{item.pkCountry}, #{item.pkCreator}
#{item.pkCountry}, #{item.pkCreator} ,#{item.pkModified,jdbcType=NUMERIC}
)
</foreach>
SELECT 1 FROM dual
@ -162,32 +162,34 @@
<select id="queryMemberBonusCoachByBonusItemsForServer" resultMap="CuMemberBonusCoach">
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,so.pk_rate,bc.out_exchange_rate,so.order_amount,
nvl(cu.member_code, cum.member_code) source_member_code, nvl(cu.member_name, cum.member_name) source_member_name,
so.pk_rate,bc.out_exchange_rate,so.order_amount,
so.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,
b.remark,b.income_ratio,b.income_dial_ratio,b.order_dial_ratio,b.current_generation,b.coach_generation,
b.coach_no_capping,b.coach_capping,b.coach_normal_half,b.coach_normal_real,bct.short_name settle_country
from sa_order so
inner join (
from (
select
cb.pk_member,cc.pk_order,cb.period,cb.pk_country,cc.pk_bonus_items,cc.income_status,cc.CAL_ACHIEVE,cc.pretax_income,cc.income_tax,cc.real_income,
cc.remark,cc.income_ratio,cc.income_dial_ratio,cc.order_dial_ratio,cc.current_generation,cc.coach_generation,
cc.coach_no_capping,cc.coach_capping,cc.coach_normal_half,cc.coach_normal_real from cu_member_bonus cb
cc.coach_no_capping,cc.coach_capping,cc.coach_normal_half,cc.coach_normal_real,
cb.pk_rate, cc.pk_modified
from cu_member_bonus cb
inner join cu_member_bonus_coach cc
on cb.pk_id = cc.pk_bonus
where 1=1
where 1 = 1
<if test="bonusParam.period != null">
and cb.period =#{bonusParam.period}
</if>
<if test="bonusParam.pkBonusItems != null">
and cc.pk_bonus_items = #{bonusParam.pkBonusItems}
</if>
<if test="bonusParam.vertexList != null and bonusParam.vertexList.size >0">
<if test="bonusParam.vertexList != null and bonusParam.vertexList.size > 0">
and exists(
select 1 from (
<foreach collection="bonusParam.vertexList" item="item" separator=" union ">
select pk_id from cu_member
where del_flag=0 and PAY_STATUS=1
where del_flag = 0 and PAY_STATUS = 1
start with pk_id = #{item}
connect by pk_parent = prior pk_id
</foreach>
@ -205,27 +207,30 @@
)
</if>
) b
left join sa_order so
on so.pk_id = b.pk_order
inner join cu_member tar
left join cu_member tar
on b.pk_member = tar.pk_id
inner join cu_member cu
left join cu_member cu
on so.pk_member = cu.pk_id
inner join cu_member_settle_period cp
left join cu_member cum
on b.pk_modified = cum.pk_id
left join cu_member_settle_period cp
on b.period = cp.pk_id
left join bd_vertex bv
on bv.pk_id = tar.pk_vertex
left join cu_member_team ct
on ct.pk_id = tar.pk_team_code
left join bd_currency bc
on bc.pk_id=so.pk_rate
on bc.pk_id = b.pk_rate
left join bd_grade bg
on bg.pk_id=tar.pk_settle_grade
on bg.pk_id = tar.pk_settle_grade
left join bd_awards ba
on ba.pk_id=tar.pk_awards
on ba.pk_id = tar.pk_awards
left join bd_country bt
on bt.pk_id=so.pk_country
on bt.pk_id = so.pk_country
left join bd_country bct
on bct.pk_id=tar.pk_settle_country
on bct.pk_id = tar.pk_settle_country
<where>
1=1
<if test="bonusParam.pkCountry != null">
@ -250,10 +255,16 @@
and so.order_code like #{bonusParam.orderCode}|| '%'
</if>
<if test="bonusParam.sourceMemberCode != null and bonusParam.sourceMemberCode != ''">
and cu.member_code = #{bonusParam.sourceMemberCode}
and (
cu.member_code = #{bonusParam.sourceMemberCode}
or cum.member_code = #{bonusParam.sourceMemberCode}
)
</if>
<if test="bonusParam.sourceMemberName != null and bonusParam.sourceMemberName != ''">
and cu.member_name = #{bonusParam.sourceMemberName}
and (
cu.member_name = #{bonusParam.sourceMemberName}
or cum.member_name = #{bonusParam.sourceMemberName}
)
</if>
<if test="bonusParam.memberCode != null and bonusParam.memberCode != ''">
and tar.member_code = #{bonusParam.memberCode}
@ -272,7 +283,7 @@
</if>
</where>
<choose>
<when test="bonusParam.sort == null or bonusParam.sort ==1">order by cp.settle_date desc, so.order_code,b.current_generation</when>
<when test="bonusParam.sort == null or bonusParam.sort ==1">order by cp.settle_date desc, so.order_code, b.current_generation</when>
<when test="bonusParam.sort ==2">order by tar.pk_vertex, b.real_income desc</when>
<otherwise>order by tar.pk_teamcode</otherwise>
</choose>

View File

@ -252,9 +252,9 @@
</select>
<select id="queryMemberBonusDetailByConditionForServer" resultMap="CuMemberBonusDetail">
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,
select b.period, cp.settle_date,
so.order_code, so.order_type, bt.short_name source_country_name,
nvl(cu.member_code, cum.member_code) source_member_code, nvl(cu.member_name, cum.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,
@ -265,7 +265,8 @@
select * from (
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,
cd.remark,cd.income_ratio,cd.income_dial_ratio,cd.order_dial_ratio from cu_member_bonus cb
cd.remark,cd.income_ratio,cd.income_dial_ratio,cd.order_dial_ratio, cd.pk_modified
from cu_member_bonus cb
inner join cu_member_bonus_detail cd
on cb.pk_id = cd.pk_bonus
where 1=1
@ -278,8 +279,8 @@
union all
select
cb.pk_member,cp.pk_order,cb.period,cb.pk_country,cp.pk_bonus_items,cp.income_status,cp.CAL_ACHIEVE,cp.pretax_income,cp.income_tax,cp.real_income,
cp.remark,cp.income_ratio,cp.income_dial_ratio,cp.order_dial_ratio from
cu_member_bonus cb
cp.remark,cp.income_ratio,cp.income_dial_ratio,cp.order_dial_ratio, cp.pk_modified
from cu_member_bonus cb
inner join cu_member_bonus_push cp
on cb.pk_id = cp.pk_bonus
where 1=1
@ -292,8 +293,8 @@
union all
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 from
cu_member_bonus cb
ce.remark,ce.income_ratio,ce.income_dial_ratio,ce.order_dial_ratio, ce.pk_modified
from cu_member_bonus cb
inner join cu_member_bonus_expand ce
on cb.pk_id = ce.pk_bonus
where 1=1
@ -306,8 +307,8 @@
union all
select
cb.pk_member,cc.pk_order,cb.period,cb.pk_country,cc.pk_bonus_items,cc.income_status,cc.CAL_ACHIEVE,cc.pretax_income,cc.income_tax,cc.real_income,
cc.remark,cc.income_ratio,cc.income_dial_ratio,cc.order_dial_ratio from
cu_member_bonus cb
cc.remark,cc.income_ratio,cc.income_dial_ratio,cc.order_dial_ratio, cc.pk_modified
from cu_member_bonus cb
inner join cu_member_bonus_coach cc
on cb.pk_id = cc.pk_bonus
where 1=1
@ -320,8 +321,8 @@
union all
select
cb.pk_member,cr.pk_order,cb.period,cb.pk_country,cr.pk_bonus_items,cr.income_status,cr.CAL_ACHIEVE,cr.pretax_income,cr.income_tax,cr.real_income,
cr.remark,cr.income_ratio,cr.income_dial_ratio,cr.order_dial_ratio from
cu_member_bonus cb
cr.remark,cr.income_ratio,cr.income_dial_ratio,cr.order_dial_ratio, cr.pk_modified
from cu_member_bonus cb
inner join cu_member_bonus_range cr
on cb.pk_id = cr.pk_bonus
where 1=1
@ -367,6 +368,8 @@
on b.pk_member = tar.pk_id
left join cu_member cu
on so.pk_member = cu.pk_id
left join cu_member cum
on cum.pk_id = b.pk_modified
left join cu_member_settle_period cp
on b.period = cp.pk_id
left join bd_vertex bv
@ -382,7 +385,7 @@
left join bd_country bt
on bt.pk_id=so.pk_country
left join bd_country bct
on bct.pk_id=tar.pk_settle_country
on bct.pk_id = tar.pk_settle_country
<where>
1=1
<if test="bonusParam.pkCountry != null">
@ -407,10 +410,16 @@
and so.order_code like #{bonusParam.orderCode}|| '%'
</if>
<if test="bonusParam.sourceMemberCode != null and bonusParam.sourceMemberCode != ''">
and cu.member_code = #{bonusParam.sourceMemberCode}
and (
cu.member_code = #{bonusParam.sourceMemberCode}
or cum.member_code = #{bonusParam.sourceMemberCode}
)
</if>
<if test="bonusParam.sourceMemberName != null and bonusParam.sourceMemberName != ''">
and cu.member_name = #{bonusParam.sourceMemberName}
and (
cu.member_name = #{bonusParam.sourceMemberName}
or cum.member_name = #{bonusParam.sourceMemberName}
)
</if>
<if test="bonusParam.memberCode != null and bonusParam.memberCode != ''">
and tar.member_code = #{bonusParam.memberCode}

View File

@ -64,7 +64,7 @@
cal_type,cal_achieve,cal_value,pretax_income,
income_tax,real_income,current_touch,expand_touch,add_touch,expand_no_capping,
expand_capping,expand_normal_half,expand_normal_real,remark,
income_ratio,income_dial_ratio,order_dial_ratio,pk_country,pk_creator)
income_ratio,income_dial_ratio,order_dial_ratio,pk_country, pk_creator, pk_modified)
values
(
#{item.pkBonus},#{item.pkOrder},#{item.pkBonusItems},#{item.incomeStatus},
@ -72,11 +72,12 @@
#{item.incomeTax},#{item.realIncome},#{item.currentTouch},#{item.expandTouch},#{item.addTouch,jdbcType=NUMERIC},
#{item.expandNoCapping},#{item.expandCapping},#{item.expandNormalHalf},#{item.expandNormalReal},
#{item.remark},#{item.incomeRatio},#{item.incomeDialRatio},#{item.orderDialRatio},
#{item.pkCountry},#{item.pkCreator}
#{item.pkCountry} ,#{item.pkCreator} ,#{item.pkModified,jdbcType=NUMERIC}
)
</foreach>
SELECT 1 FROM dual
</insert>
<insert id="insertCuMemberBonusExpand">
insert into cu_member_bonus_expand(pk_bonus, pk_order, pk_bonus_items, income_status,
cal_type, cal_achieve, cal_value, pretax_income,
@ -171,7 +172,7 @@
<select id="queryMemberBonusExpandByBonusItemsForServer" resultMap="CuMemberBonusExpand">
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(cu.member_code, cum.member_code) source_member_code, nvl(cu.member_name, cum.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,
@ -182,7 +183,7 @@
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.expand_no_capping,ce.expand_capping,ce.expand_normal_half,ce.expand_normal_real
ce.expand_no_capping,ce.expand_capping,ce.expand_normal_half,ce.expand_normal_real, ce.pk_modified
from cu_member_bonus cb
inner join cu_member_bonus_expand ce
on cb.pk_id = ce.pk_bonus
@ -224,6 +225,8 @@
on b.pk_member = tar.pk_id
left join cu_member cu
on so.pk_member = cu.pk_id
left join cu_member cum
on b.pk_modified = cum.pk_id
left join cu_member_settle_period cp
on b.period = cp.pk_id
left join bd_vertex bv
@ -264,10 +267,16 @@
and so.order_code like #{bonusParam.orderCode}|| '%'
</if>
<if test="bonusParam.sourceMemberCode != null and bonusParam.sourceMemberCode != ''">
and cu.member_code = #{bonusParam.sourceMemberCode}
and (
cu.member_code = #{bonusParam.sourceMemberCode}
or cum.member_code = #{bonusParam.sourceMemberCode}
)
</if>
<if test="bonusParam.sourceMemberName != null and bonusParam.sourceMemberName != ''">
and cu.member_name = #{bonusParam.sourceMemberName}
and (
cu.member_name = #{bonusParam.sourceMemberName}
or cum.member_name = #{bonusParam.sourceMemberName}
)
</if>
<if test="bonusParam.memberCode != null and bonusParam.memberCode != ''">
and tar.member_code = #{bonusParam.memberCode}

View File

@ -15,12 +15,10 @@ import java.math.RoundingMode;
public class ComputeUtil {
/**
* 统一的除法计算方法
*
* @param divisor 除数
* @param dividend 被除数
* @Description: 统一的除法计算方法
* @return: BigDecimal
* @Author: sui q
* @Date: 2022/9/20 21:09
*/
public static BigDecimal computeDivide(BigDecimal divisor, BigDecimal dividend) {
if (dividend.compareTo(BigDecimal.ZERO) == 0) {
@ -30,12 +28,10 @@ public class ComputeUtil {
}
/**
* 统一的除法计算方法, 向上取整
*
* @param divisor 除数
* @param dividend 被除数
* @Description: 统一的除法计算方法, 向上取整
* @return: BigDecimal
* @Author: sui q
* @Date: 2022/9/20 21:09
*/
public static BigDecimal computeDivideRoundUp(BigDecimal divisor, BigDecimal dividend) {
if (dividend.compareTo(BigDecimal.ZERO) == 0) {
@ -45,12 +41,10 @@ public class ComputeUtil {
}
/**
* 统一的除法计算方法, 向下取整
*
* @param divisor 除数
* @param dividend 被除数
* @Description: 统一的除法计算方法, 向下取整
* @return: BigDecimal
* @Author: sui q
* @Date: 2022/9/20 21:09
*/
public static BigDecimal computeDivideRoundDown(BigDecimal divisor, BigDecimal dividend) {
if (dividend.compareTo(BigDecimal.ZERO) == 0) {
@ -60,12 +54,10 @@ public class ComputeUtil {
}
/**
* 统一的减法计算方法前面减后面
*
* @param subtract 值1
* @param subtract1 值2
* 统一的减法计算方法前面减后面
* @return: BigDecimal
* @Author: sui q
* @Date: 2022/9/20 21:09
*/
public static BigDecimal computeSubtract(BigDecimal subtract, BigDecimal subtract1) {
return subtract.subtract(subtract1);