## 乐学复购级差法宝券结算;

This commit is contained in:
cabbage 2025-04-09 20:52:16 +08:00
parent 308c266a26
commit 2376c525cc
7 changed files with 301 additions and 139 deletions

View File

@ -651,14 +651,12 @@ public abstract class BonusSettleHandle {
} }
/** /**
* 获得 报单服务费收益的备注
*
* @param saOrderExt 订单编号 * @param saOrderExt 订单编号
* @param cuMemberBonusRange 报单服务费 * @param cuMemberBonusRange 报单服务费
* @param sourceCuMemberSettleExt 提供奖金的人 * @param sourceCuMemberSettleExt 提供奖金的人
* @param targetCuMemberSettleExt 获得奖金的人 * @param targetCuMemberSettleExt 获得奖金的人
* @Description: 获得 报单服务费收益的备注
* @return: String
* @Author: sui q
* @Date: 2022/11/17 11:22
*/ */
protected void xueRangeRemark(SaOrderExt saOrderExt, CuMemberBonusRange cuMemberBonusRange, CuMemberSettleExt sourceCuMemberSettleExt, protected void xueRangeRemark(SaOrderExt saOrderExt, CuMemberBonusRange cuMemberBonusRange, CuMemberSettleExt sourceCuMemberSettleExt,
CuMemberSettleExt targetCuMemberSettleExt) { CuMemberSettleExt targetCuMemberSettleExt) {
@ -858,13 +856,11 @@ public abstract class BonusSettleHandle {
} }
/** /**
* 根据订单获取会员的血缘父级用于嗨粉推荐复购极差
*
* @param cuMemberSettleExtMap 树关系 * @param cuMemberSettleExtMap 树关系
* @param settleTableName 结算表 * @param settleTableName 结算表
* @param saOrderList 订单 * @param saOrderList 订单
* @Description: 根据订单获取会员的血缘父级用于嗨粉推荐复购极差
* @return: void
* @Author: sui q
* @Date: 2023/1/4 14:10
*/ */
protected List<CuMemberSettleExt> getMemberParentBySaOrder(Map<Long, CuMemberSettleExt> cuMemberSettleExtMap, String settleTableName, List<SaOrderExt> saOrderList) { protected List<CuMemberSettleExt> getMemberParentBySaOrder(Map<Long, CuMemberSettleExt> cuMemberSettleExtMap, String settleTableName, List<SaOrderExt> saOrderList) {
Set<Long> memberSet = new HashSet<>(); Set<Long> memberSet = new HashSet<>();
@ -946,12 +942,10 @@ public abstract class BonusSettleHandle {
} }
/** /**
* 设置奖金扣项计算税前收益扣税实际收益, 设置主表
*
* @param cuMemberBonus 奖金明细 * @param cuMemberBonus 奖金明细
* @param bonusDetail 奖金明细表 * @param bonusDetail 奖金明细表
* @Description: 设置奖金扣项计算税前收益扣税实际收益, 设置主表
* @return: void
* @Author: sui q
* @Date: 2023/1/11 11:17
*/ */
protected void setBonusDeduct(BdBonusDeduct bdBonusDeduct, CuMemberBonus cuMemberBonus, Object bonusDetail) { protected void setBonusDeduct(BdBonusDeduct bdBonusDeduct, CuMemberBonus cuMemberBonus, Object bonusDetail) {
BigDecimal pretaxIncome = ReflectUtils.invokeGetter(bonusDetail, BonusFieldConstants.PRETAX_INCOME); BigDecimal pretaxIncome = ReflectUtils.invokeGetter(bonusDetail, BonusFieldConstants.PRETAX_INCOME);
@ -966,12 +960,10 @@ public abstract class BonusSettleHandle {
} }
/** /**
* 获得需要查询的会员免考通过的不需要查询考核记录
*
* @param cuMemberSettleExtMap 存储目前有的会员数据 * @param cuMemberSettleExtMap 存储目前有的会员数据
* @param cuMemberSettleExtList 需要查询的会员数据 * @param cuMemberSettleExtList 需要查询的会员数据
* @Description: 获得需要查询的会员免考通过的不需要查询考核记录
* @return: List<CuMemberSettleExt>
* @Author: sui q
* @Date: 2022/11/17 17:57
*/ */
protected List<CuMemberSettleExt> getQueryMemberSettleExtList(Map<Long, CuMemberSettleExt> cuMemberSettleExtMap, List<CuMemberSettleExt> cuMemberSettleExtList) { protected List<CuMemberSettleExt> getQueryMemberSettleExtList(Map<Long, CuMemberSettleExt> cuMemberSettleExtMap, List<CuMemberSettleExt> cuMemberSettleExtList) {
// 过滤数据免考的会员不进行查询 // 过滤数据免考的会员不进行查询
@ -1006,6 +998,7 @@ public abstract class BonusSettleHandle {
* @Date: 2023/1/11 13:59 * @Date: 2023/1/11 13:59
*/ */
protected void setPurchaseTotal(BdBonusDeduct bdBonusDeduct, CuMemberBonus cuMemberBonus, Object bonusDetail) { protected void setPurchaseTotal(BdBonusDeduct bdBonusDeduct, CuMemberBonus cuMemberBonus, Object bonusDetail) {
// 处理扣项
setBonusDeduct(bdBonusDeduct, cuMemberBonus, bonusDetail); setBonusDeduct(bdBonusDeduct, cuMemberBonus, bonusDetail);
BigDecimal realIncome = ReflectUtils.invokeGetter(bonusDetail, BonusFieldConstants.REAL_INCOME); BigDecimal realIncome = ReflectUtils.invokeGetter(bonusDetail, BonusFieldConstants.REAL_INCOME);
cuMemberBonus.setRepurRealSubtotal(ComputeUtil.computeAdd(cuMemberBonus.getRepurRealSubtotal(), realIncome)); cuMemberBonus.setRepurRealSubtotal(ComputeUtil.computeAdd(cuMemberBonus.getRepurRealSubtotal(), realIncome));

View File

@ -428,8 +428,12 @@ public class BonusSettlePurchaseHandle extends BonusSettleHandle {
}*/ }*/
}); });
List<CuMemberBonusRange> cuMemberBonusRangeList = new ArrayList<>(); List<CuMemberBonusRange> cuMemberBonusRangeList = new ArrayList<>();
List<CuMemberSettleExt> cuMemberSettleExtList = getMemberParentBySaOrder(cuMemberSettleExtMap, settleTableName, purchaseOrderList); // TODO new 乐学不需要考核相关
Map<Long, CuMemberAssess> cuMemberAssessMap = getCuMemberAssessMap(cuMemberSettleExtMap, settleDate, cuMemberSettleExtList); // List<CuMemberSettleExt> cuMemberSettleExtList = getMemberParentBySaOrder(cuMemberSettleExtMap, settleTableName, purchaseOrderList);
// Map<Long, CuMemberAssess> cuMemberAssessMap = getCuMemberAssessMap(cuMemberSettleExtMap, settleDate, cuMemberSettleExtList);
Map<Long, CuMemberAssess> cuMemberAssessMap = null;
// if (chinaRangeOrderList.size() > 0) { // if (chinaRangeOrderList.size() > 0) {
// Map<String, List<SaOrderRangeDto>> saOrderRangeDtoMap = saOrderServiceApi.queryOrderRangeVO(chinaRangeOrderList).getData(); // Map<String, List<SaOrderRangeDto>> saOrderRangeDtoMap = saOrderServiceApi.queryOrderRangeVO(chinaRangeOrderList).getData();
// Map<String, RangeDTO> rangePkDtoMap = new HashMap<>(ComputeUtil.mapInitCapacity(rangeDtoMap.size())); // Map<String, RangeDTO> rangePkDtoMap = new HashMap<>(ComputeUtil.mapInitCapacity(rangeDtoMap.size()));
@ -502,6 +506,7 @@ public class BonusSettlePurchaseHandle extends BonusSettleHandle {
// } // }
// } // }
// } // }
// TODO new 乐学复购级差商品4个等级购买差价300这个位置进行拨出
if (specialOrderList.size() > 0) { if (specialOrderList.size() > 0) {
for (SaOrderExt saOrderExt : specialOrderList) { for (SaOrderExt saOrderExt : specialOrderList) {
for (SaOrderItems saOrderItems : saOrderExt.getOrderItemsExtList()) { for (SaOrderItems saOrderItems : saOrderExt.getOrderItemsExtList()) {
@ -590,6 +595,7 @@ public class BonusSettlePurchaseHandle extends BonusSettleHandle {
} }
} }
} }
// TODO new 乐学特殊级差
calculateLeXueRangeBonus(settleTableName, rangeDtoMap, bonusConfigDTO, period, cuMemberBonusMap, leXueRangeParam, specialOrderList, cuMemberBonusRangeList); calculateLeXueRangeBonus(settleTableName, rangeDtoMap, bonusConfigDTO, period, cuMemberBonusMap, leXueRangeParam, specialOrderList, cuMemberBonusRangeList);
} }
return cuMemberBonusRangeList; return cuMemberBonusRangeList;
@ -616,22 +622,44 @@ public class BonusSettlePurchaseHandle extends BonusSettleHandle {
cuMemberBonusRangeList.add(cuMemberBonusRange); cuMemberBonusRangeList.add(cuMemberBonusRange);
} }
/**
* 乐学特殊复购级差根据法宝券进行计算奖金
* 每个等级最多拨出一张法宝券给200奖金遇到V4为止
*
* @param settleTableName
* @param rangeDtoMap
* @param bonusConfigDTO
* @param period
* @param cuMemberBonusMap
* @param leXueRangeParam
* @param specialOrderList
* @param cuMemberBonusRangeList
*/
private void calculateLeXueRangeBonus(String settleTableName, Map<String, RangeDTO> rangeDtoMap, BonusConfigDTO bonusConfigDTO, private void calculateLeXueRangeBonus(String settleTableName, Map<String, RangeDTO> rangeDtoMap, BonusConfigDTO bonusConfigDTO,
Integer period, Map<Long, CuMemberBonus> cuMemberBonusMap, LeXueRangeParam leXueRangeParam, Integer period, Map<Long, CuMemberBonus> cuMemberBonusMap, LeXueRangeParam leXueRangeParam,
List<SaOrderExt> specialOrderList, List<CuMemberBonusRange> cuMemberBonusRangeList) { List<SaOrderExt> specialOrderList, List<CuMemberBonusRange> cuMemberBonusRangeList) {
// 计算乐学易考特殊复购极差找第一个vipsvip找到有代金券代金券-1奖金给金额第一个是svip后就不给 // 计算乐学易考特殊复购极差找第一个vipsvip找到有代金券代金券-1奖金给金额第一个是svip后就不给
if (specialOrderList.size() > 0) { if (specialOrderList.size() > 0) {
// 查找订单血缘 // 查找订单血缘上会员
Set<Long> expandMemberSet = specialOrderList.stream().distinct().map(SaOrderExt::getPkMember).collect(Collectors.toSet()); Set<Long> expandMemberSet = specialOrderList.stream().distinct().map(SaOrderExt::getPkMember).collect(Collectors.toSet());
List<CuMemberSettleExt> specialMemberSettleExtList = cuMemberTreeService.batchQueryCuMemberSettleParentForSpecial(settleTableName, expandMemberSet); List<CuMemberSettleExt> specialMemberSettleExtList = cuMemberTreeService.batchQueryCuMemberSettleParentForSpecial(settleTableName, expandMemberSet);
// 重算的时候首先先把数量还回来在重新计算查询订单扣除的记录 // 重算的时候首先先把数量还回来在重新计算查询订单扣除的记录
List<AcPickMemberLog> acPickMemberLogList = acPickServiceApi.queryPickMemberLog(specialOrderList).getData(); List<AcPickMemberLog> acPickMemberLogList = acPickServiceApi.queryPickMemberLog(specialOrderList).getData();
// key: 会员ID + 提货专区ID
Map<String, AcPickMemberLog> pickMemberLogMap = new HashMap<>(ComputeUtil.mapInitCapacity(acPickMemberLogList.size())); Map<String, AcPickMemberLog> pickMemberLogMap = new HashMap<>(ComputeUtil.mapInitCapacity(acPickMemberLogList.size()));
// key: 会员ID + 订单ID
Map<String, AcPickMemberLog> orderMemberMap = new HashMap<>(ComputeUtil.mapInitCapacity(acPickMemberLogList.size()));
if (CollectionUtil.isNotEmpty(acPickMemberLogList)) { if (CollectionUtil.isNotEmpty(acPickMemberLogList)) {
acPickMemberLogList.forEach(acPickMemberLog -> acPickMemberLogList.forEach(acPickMemberLog -> {
pickMemberLogMap.put(acPickMemberLog.getPkMember().toString() + acPickMemberLog.getPkId(), acPickMemberLog)); pickMemberLogMap.put(acPickMemberLog.getPkMember().toString() + acPickMemberLog.getPkId(), acPickMemberLog);
orderMemberMap.put(acPickMemberLog.getPkMember() + acPickMemberLog.getPickOrder(), acPickMemberLog);
}
);
leXueRangeParam.setAcPickMemberLogList(acPickMemberLogList); leXueRangeParam.setAcPickMemberLogList(acPickMemberLogList);
} }
// 初始化父类网体的值 // 初始化父类网体的值
Map<Long, CuMemberSettleExt> specialmeberSettleExtMap = new HashMap<>(); Map<Long, CuMemberSettleExt> specialmeberSettleExtMap = new HashMap<>();
getMemberSettle(specialmeberSettleExtMap, specialMemberSettleExtList); getMemberSettle(specialmeberSettleExtMap, specialMemberSettleExtList);
@ -645,53 +673,123 @@ public class BonusSettlePurchaseHandle extends BonusSettleHandle {
List<AcPickExt> acPickExtList = new ArrayList<>(); List<AcPickExt> acPickExtList = new ArrayList<>();
for (SaOrderExt saOrderExt : specialOrderList) { for (SaOrderExt saOrderExt : specialOrderList) {
for (SaOrderItemsExt saOrderItemsExt : saOrderExt.getOrderItemsExtList()) { for (SaOrderItemsExt saOrderItemsExt : saOrderExt.getOrderItemsExtList()) {
if (EYesNo.YES.getIntValue() == saOrderItemsExt.getIsGift() || ComputeUtil.compareEqual(saOrderItemsExt.getPrice(), BigDecimal.ZERO) || if (EYesNo.YES.getIntValue() == saOrderItemsExt.getIsGift()
ComputeUtil.compareEqual(saOrderItemsExt.getAchievement(), BigDecimal.ZERO)) { || ComputeUtil.compareEqual(saOrderItemsExt.getPrice(), BigDecimal.ZERO)
|| ComputeUtil.compareEqual(saOrderItemsExt.getAchievement(), BigDecimal.ZERO)) {
// 赠品 或者 金额为0 或者 业绩为0 则不进行处理
continue; continue;
} }
// 订单对应的会员
CuMemberSettleExt sourceMemberSettleExt = specialmeberSettleExtMap.get(saOrderExt.getPkMember()); CuMemberSettleExt sourceMemberSettleExt = specialmeberSettleExtMap.get(saOrderExt.getPkMember());
if (sourceMemberSettleExt == null) { if (null == sourceMemberSettleExt) {
continue; break;
} }
// 找不到父级了或者找到第一个svip直接跳出 if (validatePkBonusItems(bonusConfigDTO, sourceMemberSettleExt.getPkSettleCountry(), EBonusItems.REPURCHASE_RANGE_INCOME.getValue())) {
boolean flag = Boolean.TRUE; // 没有这个奖项直接退出
break;
}
// 订单会员推荐人
Long pkParent = sourceMemberSettleExt.getPkParent(); Long pkParent = sourceMemberSettleExt.getPkParent();
// 订单会员等级
int gradeValue = sourceMemberSettleExt.getGradeValue(); int gradeValue = sourceMemberSettleExt.getGradeValue();
// 订单是否使用法宝券true 使用了法宝券
boolean useFlag = null != orderMemberMap.get(saOrderExt.getPkMember() + saOrderExt.getOrderCode()) ? Boolean.TRUE : Boolean.FALSE;
if (EGrade.S_VIP.getValue() == gradeValue && useFlag) {
// 下单会员是 V4 并且 使用了法宝券直接结束
break;
}
// 找不到父级了或者找到第一个svip直接跳出
boolean V1Flag = Boolean.TRUE;
boolean V2Flag = Boolean.TRUE;
boolean V3Flag = Boolean.TRUE;
while (true) { while (true) {
CuMemberSettleExt targetMemberSettleExt = specialmeberSettleExtMap.get(pkParent); CuMemberSettleExt targetMemberSettleExt = specialmeberSettleExtMap.get(pkParent);
if (targetMemberSettleExt == null) { if (null == targetMemberSettleExt) {
// 上面没有推荐人了直接结束
break; break;
} }
if (gradeValue < targetMemberSettleExt.getGradeValue() && EGrade.VIP.getValue() == targetMemberSettleExt.getGradeValue() && flag) {
// 获得奖金 if (useFlag) {
// 验证是否有奖金 // 订单使用了法宝券查询大于当前会员的
if (validatePkBonusItems(bonusConfigDTO, targetMemberSettleExt.getPkSettleCountry(), EBonusItems.REPURCHASE_RANGE_INCOME.getValue())) { if (gradeValue < targetMemberSettleExt.getGradeValue() && EGrade.MAKER.getValue() == targetMemberSettleExt.getGradeValue() && V2Flag && V3Flag) {
// 订单会员等级小于推荐人等级 并且 推荐人是 V2 并且 V2 V3 都没有算过
AcPickExt acPickExt = calculateRangeBonus(rangeDtoMap, bonusConfigDTO, period, cuMemberBonusMap, saOrderExt, saOrderItemsExt, sourceMemberSettleExt,
targetMemberSettleExt, cuMemberBonusRangeList);
if (null != acPickExt) {
acPickExtList.add(acPickExt);
}
pkParent = targetMemberSettleExt.getPkParent(); pkParent = targetMemberSettleExt.getPkParent();
sourceMemberSettleExt = targetMemberSettleExt; sourceMemberSettleExt = targetMemberSettleExt;
continue; V2Flag = Boolean.FALSE;
} } else if (gradeValue < targetMemberSettleExt.getGradeValue() && EGrade.VIP.getValue() == targetMemberSettleExt.getGradeValue() && V3Flag) {
AcPickExt acPickExt = calculateRangeBonus(rangeDtoMap, bonusConfigDTO, period, cuMemberBonusMap, saOrderExt, saOrderItemsExt, sourceMemberSettleExt, // 订单会员等级小于推荐人等级 并且 推荐人是 V3 并且 V3没有算过
targetMemberSettleExt, cuMemberBonusRangeList); AcPickExt acPickExt = calculateRangeBonus(rangeDtoMap, bonusConfigDTO, period, cuMemberBonusMap, saOrderExt, saOrderItemsExt, sourceMemberSettleExt,
if (acPickExt != null) { targetMemberSettleExt, cuMemberBonusRangeList);
acPickExtList.add(acPickExt); if (null != acPickExt) {
} acPickExtList.add(acPickExt);
pkParent = targetMemberSettleExt.getPkParent(); }
sourceMemberSettleExt = targetMemberSettleExt; pkParent = targetMemberSettleExt.getPkParent();
flag = Boolean.FALSE; sourceMemberSettleExt = targetMemberSettleExt;
} else if (gradeValue < targetMemberSettleExt.getGradeValue() && EGrade.S_VIP.getValue() == targetMemberSettleExt.getGradeValue()) { V3Flag = Boolean.FALSE;
// 获得奖金 } else if (gradeValue < targetMemberSettleExt.getGradeValue() && EGrade.S_VIP.getValue() == targetMemberSettleExt.getGradeValue()) {
if (validatePkBonusItems(bonusConfigDTO, targetMemberSettleExt.getPkSettleCountry(), EBonusItems.REPURCHASE_RANGE_INCOME.getValue())) { // 订单会员等级小于推荐人等级 并且 推荐人是 V4
AcPickExt acPickExt = calculateRangeBonus(rangeDtoMap, bonusConfigDTO, period, cuMemberBonusMap, saOrderExt, saOrderItemsExt, sourceMemberSettleExt,
targetMemberSettleExt, cuMemberBonusRangeList);
if (null != acPickExt) {
acPickExtList.add(acPickExt);
}
break; break;
} else {
pkParent = targetMemberSettleExt.getPkParent();
sourceMemberSettleExt = targetMemberSettleExt;
} }
AcPickExt acPickExt = calculateRangeBonus(rangeDtoMap, bonusConfigDTO, period, cuMemberBonusMap, saOrderExt, saOrderItemsExt, sourceMemberSettleExt,
targetMemberSettleExt, cuMemberBonusRangeList);
if (acPickExt != null) {
acPickExtList.add(acPickExt);
}
break;
} else { } else {
pkParent = targetMemberSettleExt.getPkParent(); // 订单没有使用法宝券
sourceMemberSettleExt = targetMemberSettleExt; if (gradeValue <= targetMemberSettleExt.getGradeValue() && EGrade.YOU_KE.getValue() == targetMemberSettleExt.getGradeValue() && V1Flag && V2Flag && V3Flag) {
// 订单会员等级小于推荐人等级 并且 推荐人是 V1 并且 V1 V2 V3 都没有算过
AcPickExt acPickExt = calculateRangeBonus(rangeDtoMap, bonusConfigDTO, period, cuMemberBonusMap, saOrderExt, saOrderItemsExt, sourceMemberSettleExt,
targetMemberSettleExt, cuMemberBonusRangeList);
if (null != acPickExt) {
acPickExtList.add(acPickExt);
}
pkParent = targetMemberSettleExt.getPkParent();
sourceMemberSettleExt = targetMemberSettleExt;
V1Flag = Boolean.FALSE;
} else if (gradeValue <= targetMemberSettleExt.getGradeValue() && EGrade.MAKER.getValue() == targetMemberSettleExt.getGradeValue() && V2Flag && V3Flag) {
// 订单会员等级小于推荐人等级 并且 推荐人是 V2 并且 V2 V3 都没有算过
AcPickExt acPickExt = calculateRangeBonus(rangeDtoMap, bonusConfigDTO, period, cuMemberBonusMap, saOrderExt, saOrderItemsExt, sourceMemberSettleExt,
targetMemberSettleExt, cuMemberBonusRangeList);
if (null != acPickExt) {
acPickExtList.add(acPickExt);
}
pkParent = targetMemberSettleExt.getPkParent();
sourceMemberSettleExt = targetMemberSettleExt;
V2Flag = Boolean.FALSE;
} else if (gradeValue <= targetMemberSettleExt.getGradeValue() && EGrade.VIP.getValue() == targetMemberSettleExt.getGradeValue() && V3Flag) {
// 订单会员等级小于推荐人等级 并且 推荐人是 V3 并且 V3没有算过
AcPickExt acPickExt = calculateRangeBonus(rangeDtoMap, bonusConfigDTO, period, cuMemberBonusMap, saOrderExt, saOrderItemsExt, sourceMemberSettleExt,
targetMemberSettleExt, cuMemberBonusRangeList);
if (null != acPickExt) {
acPickExtList.add(acPickExt);
}
pkParent = targetMemberSettleExt.getPkParent();
sourceMemberSettleExt = targetMemberSettleExt;
V3Flag = Boolean.FALSE;
} else if (gradeValue <= targetMemberSettleExt.getGradeValue() && EGrade.S_VIP.getValue() == targetMemberSettleExt.getGradeValue()) {
// 订单会员等级小于推荐人等级 并且 推荐人是 V4
AcPickExt acPickExt = calculateRangeBonus(rangeDtoMap, bonusConfigDTO, period, cuMemberBonusMap, saOrderExt, saOrderItemsExt, sourceMemberSettleExt,
targetMemberSettleExt, cuMemberBonusRangeList);
if (null != acPickExt) {
acPickExtList.add(acPickExt);
}
break;
} else {
pkParent = targetMemberSettleExt.getPkParent();
sourceMemberSettleExt = targetMemberSettleExt;
}
} }
} }
} }
@ -702,6 +800,20 @@ public class BonusSettlePurchaseHandle extends BonusSettleHandle {
} }
} }
/**
* 计算封装乐学复购特殊级差法宝券返回扣除提货法宝券
*
* @param rangeDtoMap
* @param bonusConfigDTO
* @param period
* @param cuMemberBonusMap
* @param saOrderExt
* @param saOrderItemsExt
* @param sourceMemberSettleExt
* @param targetMemberSettleExt
* @param cuMemberBonusRangeList
* @return
*/
private AcPickExt calculateRangeBonus(Map<String, RangeDTO> rangeDtoMap, BonusConfigDTO bonusConfigDTO, Integer period, private AcPickExt calculateRangeBonus(Map<String, RangeDTO> rangeDtoMap, BonusConfigDTO bonusConfigDTO, Integer period,
Map<Long, CuMemberBonus> cuMemberBonusMap, SaOrderExt saOrderExt, SaOrderItemsExt saOrderItemsExt, Map<Long, CuMemberBonus> cuMemberBonusMap, SaOrderExt saOrderExt, SaOrderItemsExt saOrderItemsExt,
CuMemberSettleExt sourceMemberSettleExt, CuMemberSettleExt sourceMemberSettleExt,

View File

@ -357,6 +357,7 @@ public class BonusSettleServiceImpl implements IBonusSettleService {
validateSettleTable(yesterday, yesterdayTableName); validateSettleTable(yesterday, yesterdayTableName);
Map<String, BdAwards> awardsMap = awardsServiceApi.getAwards().getData(); Map<String, BdAwards> awardsMap = awardsServiceApi.getAwards().getData();
cuMemberTreeService.initCuMemberTreeTable(yesterdayTableName, currentSettleTableName); cuMemberTreeService.initCuMemberTreeTable(yesterdayTableName, currentSettleTableName);
// 查看是否有特殊业务有特殊业务的处理特殊业务注水处理 // 查看是否有特殊业务有特殊业务的处理特殊业务注水处理
List<CuMemberAchieveLog> cuMemberAchieveLogList = cuMemberAchieveLogService.queryMemberAchieveLogByPeriod(period); List<CuMemberAchieveLog> cuMemberAchieveLogList = cuMemberAchieveLogService.queryMemberAchieveLogByPeriod(period);
// 有特殊业务 // 有特殊业务
@ -368,32 +369,25 @@ public class BonusSettleServiceImpl implements IBonusSettleService {
cuMemberAchieveService.mergeCuMemberSettleByAchieveLogByDate(currentSettleTableName, DateUtils.parseStringToDate(settleDate)); cuMemberAchieveService.mergeCuMemberSettleByAchieveLogByDate(currentSettleTableName, DateUtils.parseStringToDate(settleDate));
// 判断特殊业务是否有到期日期有到期的需要使用真实业绩昨天的期间真实更新当前的 // 判断特殊业务是否有到期日期有到期的需要使用真实业绩昨天的期间真实更新当前的
cuMemberAchieveService.updateCuMemberSettleAchieveByDueDate(currentSettleTableName, yesterdayTableName, DateUtils.parseStringToDate(settleDate)); cuMemberAchieveService.updateCuMemberSettleAchieveByDueDate(currentSettleTableName, yesterdayTableName, DateUtils.parseStringToDate(settleDate));
// // 每月10号进行甩网将业绩从A甩到B, 甩网业绩修改为按照每日甩业绩
// List<CuMemberAchieveExt> retMemberAchieveExtList = null;
// if (settleDate.endsWith("10")) {
// retMemberAchieveExtList = execNetAchieve(period, settleDate, currentSettleTableName);
// }
// 根据日期开始计算网体 + 业绩 // 根据日期开始计算网体 + 业绩
//********************* 更新网体*************/ //********************* 更新网体*************/
// 按照订单时间开始奖金结算当订单类型为注册订单需要进行上网更新网体 // 按照订单时间开始奖金结算当订单类型为注册订单需要进行上网更新网体
// 根据订单开始更新业绩 // 根据订单开始更新业绩
// 订单按照体系开始分类 // 订单按照体系开始分类
// Map<Long, List<SaOrderExt>> saOrderMap = new HashMap<>(ComputeUtil.mapInitCapacity(saOrderExtList.size())); // Map<Long, List<SaOrderExt>> saOrderMap = new HashMap<>(ComputeUtil.mapInitCapacity(saOrderExtList.size()));
// suiqing 退单需要处理 // 退单需要处理
// 用于记录每天的撤单退单数据数据7天的网体均变为死点 // 用于记录每天的撤单退单数据数据7天的网体均变为死点
List<SaOrderExt> revokeRegSaOrderList = new ArrayList<>(); List<SaOrderExt> revokeRegSaOrderList = new ArrayList<>();
List<SaOrderExt> revokeUpdSaOrderList = new ArrayList<>(); List<SaOrderExt> revokeUpdSaOrderList = new ArrayList<>();
// 区分体系体系按照多线程进行更新业绩 // 区分体系体系按照多线程进行更新业绩
// 首购订单 注册+升级 直推奖量奖领导奖注册报单服务费 // 首购订单 注册+升级 直推奖量奖领导奖注册报单服务费
// 嗨粉订单 嗨粉 嗨粉极差
// 复购订单 (复购量奖复购极差) // 复购订单 (复购量奖复购极差)
// 其他订单 只累计业绩 仅算奖衔 // 其他订单 只累计业绩 仅算奖衔
// 分红奖金 是固定的
// 云代奖金 1% 待考虑 // 云代奖金 1% 待考虑
// 首购订单 // 首购订单
List<SaOrderExt> firPurchaseOrderList = new ArrayList<>(); List<SaOrderExt> firPurchaseOrderList = new ArrayList<>();
// 注意
// 复购订单 // 复购订单
List<SaOrderExt> repurchaseOrderList = new ArrayList<>(); List<SaOrderExt> repurchaseOrderList = new ArrayList<>();
// 商城订单 // 商城订单
@ -432,6 +426,7 @@ public class BonusSettleServiceImpl implements IBonusSettleService {
// 计算完奖衔回退业绩最终根据新增进行回写 // 计算完奖衔回退业绩最终根据新增进行回写
// cuMemberTreeService.updateCuMemberBackSettle(cuMemberAchieveHashMap, currentSettleTableName); // cuMemberTreeService.updateCuMemberBackSettle(cuMemberAchieveHashMap, currentSettleTableName);
//********************************重新考核*********************************/ //********************************重新考核*********************************/
// TODO new 乐学没有分红复购考核这个位置需要去掉
cuMemberAssessService.retryCalculationAssess(DateUtils.parseStringToDate(settleDate), Boolean.TRUE); cuMemberAssessService.retryCalculationAssess(DateUtils.parseStringToDate(settleDate), Boolean.TRUE);
//*********************************计算奖金********************************/ //*********************************计算奖金********************************/
// 首购订单 注册+升级 直推奖量奖领导奖注册报单服务费 // 首购订单 注册+升级 直推奖量奖领导奖注册报单服务费
@ -440,6 +435,7 @@ public class BonusSettleServiceImpl implements IBonusSettleService {
//计算 直推奖拓展奖辅导奖 //计算 直推奖拓展奖辅导奖
Map<Long, CuMemberSettleExt> cuMemberSettleExtMap = new HashMap<>(); Map<Long, CuMemberSettleExt> cuMemberSettleExtMap = new HashMap<>();
BonusRecordDetailVO recordDetailVO = new BonusRecordDetailVO(); BonusRecordDetailVO recordDetailVO = new BonusRecordDetailVO();
// 计算奖金 // 计算奖金
// 乐学易考奖金计算回写代金券数量 // 乐学易考奖金计算回写代金券数量
LeXueRangeParam leXueRangeParam = calculateBonusBySaOrderList(settleDate, period, currentSettleTableName, LeXueRangeParam leXueRangeParam = calculateBonusBySaOrderList(settleDate, period, currentSettleTableName,
@ -736,6 +732,8 @@ public class BonusSettleServiceImpl implements IBonusSettleService {
} }
/** /**
* 根据不同的订单类型计算奖金
*
* @param settleDate 结算日期 * @param settleDate 结算日期
* @param period 期间 * @param period 期间
* @param currentSettleTableName 结算日表 * @param currentSettleTableName 结算日表
@ -743,10 +741,6 @@ public class BonusSettleServiceImpl implements IBonusSettleService {
* @param bonusConfigDTO 奖金配置 * @param bonusConfigDTO 奖金配置
* @param cuMemberBonusMap 最终的奖金列表 * @param cuMemberBonusMap 最终的奖金列表
* @param cuMemberSettleExtMap 会员结算map * @param cuMemberSettleExtMap 会员结算map
* @Description: 根据不同的订单类型计算奖金
* @return: void
* @Author: sui q
* @Date: 2023/2/13 15:09
*/ */
private LeXueRangeParam calculateBonusBySaOrderList(String settleDate, Integer period, String currentSettleTableName, private LeXueRangeParam calculateBonusBySaOrderList(String settleDate, Integer period, String currentSettleTableName,
List<SaOrderExt> firPurchaseOrderList, List<SaOrderExt> repurchaseOrderList, List<SaOrderExt> mallOrderList, List<SaOrderExt> firPurchaseOrderList, List<SaOrderExt> repurchaseOrderList, List<SaOrderExt> mallOrderList,
@ -1036,14 +1030,12 @@ public class BonusSettleServiceImpl implements IBonusSettleService {
} }
/** /**
* 计算首购订单的奖金
*
* @param settleTableName 结算日表 * @param settleTableName 结算日表
* @param settleDate 结算日期 * @param settleDate 结算日期
* @param bonusConfigDTO 各个国家奖金参数 * @param bonusConfigDTO 各个国家奖金参数
* @param purchaseOrderList 首购订单 * @param purchaseOrderList 首购订单
* @Desccription: 计算首购订单的奖金
* @return: Map<Long, CuMemberSettleExt> 需要更新的
* @Author: sui q
* @Date: 2022/11/10 17:40
*/ */
private LeXueRangeParam calculatePurchaseOrder(Map<Long, CuMemberRiskControl> riskControlMap, Map<Long, CuMemberSettleExt> cuMemberSettleExtMap, String settleTableName, String settleDate, Map<String, RangeDTO> rangeDtoMap, private LeXueRangeParam calculatePurchaseOrder(Map<Long, CuMemberRiskControl> riskControlMap, Map<Long, CuMemberSettleExt> cuMemberSettleExtMap, String settleTableName, String settleDate, Map<String, RangeDTO> rangeDtoMap,
Map<String, BdAwards> awardsMap, BonusConfigDTO bonusConfigDTO, Map<String, String> systemConfigMap, List<SaOrderExt> purchaseOrderList, Integer period, Map<Long, CuMemberBonus> weekMemberBonusMap, Map<String, BdAwards> awardsMap, BonusConfigDTO bonusConfigDTO, Map<String, String> systemConfigMap, List<SaOrderExt> purchaseOrderList, Integer period, Map<Long, CuMemberBonus> weekMemberBonusMap,

View File

@ -640,9 +640,6 @@ public class CuMemberBonusServiceImpl extends ServiceImpl<CuMemberBonusMapper, C
public Boolean autoCalculateBonus(Date startDate, Date endDate) { public Boolean autoCalculateBonus(Date startDate, Date endDate) {
String settleDate = DateUtils.parseDateTimeToStr(DateUtils.YYYY_MM_DD, startDate); String settleDate = DateUtils.parseDateTimeToStr(DateUtils.YYYY_MM_DD, startDate);
Date settleEndDate = DateUtils.afterDate(1, ChronoUnit.DAYS, startDate); Date settleEndDate = DateUtils.afterDate(1, ChronoUnit.DAYS, startDate);
if (DateUtils.compareDateBefore(startDate, DateUtils.parseStringToDate("2024-09-10"))) {
return Boolean.TRUE;
}
// 自动初始化表 // 自动初始化表
cuMemberTreeService.createCuMemberTree(DateUtils.parseDateToStr(DateUtils.YYYY_MM_DD, DateUtils.beforeDate(1, ChronoUnit.DAYS))); cuMemberTreeService.createCuMemberTree(DateUtils.parseDateToStr(DateUtils.YYYY_MM_DD, DateUtils.beforeDate(1, ChronoUnit.DAYS)));
log.info("初始化表完成"); log.info("初始化表完成");

View File

@ -203,7 +203,8 @@
</sql> </sql>
<sql id="memberParent"> <sql id="memberParent">
select pk_member,pk_parent,member_code,member_name,a.pk_awards,account_status,a.register_authority,customer_type, select
pk_member,pk_parent,member_code,member_name,a.pk_awards,account_status,a.register_authority,customer_type,
income_status,pk_settle_country,purchase_status,share_status,is_maker_space, income_status,pk_settle_country,purchase_status,share_status,is_maker_space,
a_balance,b_balance,r_a_balance,r_b_balance,rep_a_balance,rep_b_balance,r_rep_a_balance,r_rep_b_balance, a_balance,b_balance,r_a_balance,r_b_balance,rep_a_balance,rep_b_balance,r_rep_a_balance,r_rep_b_balance,
register_amount,register_pv,upgrade_amount,upgrade_pv,repurchase_amount,pk_center_code, register_amount,register_pv,upgrade_amount,upgrade_pv,repurchase_amount,pk_center_code,
@ -240,9 +241,7 @@
<sql id="CuMemberTableTrig"> <sql id="CuMemberTableTrig">
CREATE CREATE
OR REPLACE TRIGGER OR REPLACE TRIGGER
${tableName} ${tableName}_TRIG
_
TRIG
BEFORE BEFORE
INSERT INSERT
OR OR
@ -277,6 +276,7 @@
END IF; END IF;
END; END;
</sql> </sql>
<sql id="QueryMemberParent"> <sql id="QueryMemberParent">
<foreach collection="pkMemberList" item="item" open=" " close=" " separator=" union "> <foreach collection="pkMemberList" item="item" open=" " close=" " separator=" union ">
select pk_member,pk_parent,member_code,member_name,pk_awards,account_status, select pk_member,pk_parent,member_code,member_name,pk_awards,account_status,
@ -294,8 +294,10 @@
<insert id="insertCuMemberSettleByMember"> <insert id="insertCuMemberSettleByMember">
insert into ${settleTableName}(pk_member, pk_parent, pk_place_parent, place_dept, member_code, member_name, insert into ${settleTableName}(pk_member, pk_parent, pk_place_parent, place_dept, member_code, member_name,
customer_type, phone, pk_grade, pk_awards, account_status, pay_status, register_authority, category, customer_type, phone, pk_grade, pk_awards, account_status, pay_status,
purchase_type, purchase_status, share_status, income_status, pk_team_code, is_maker_space, register_authority, category,
purchase_type, purchase_status, share_status, income_status, pk_team_code,
is_maker_space,
pk_center_code, pk_vertex, pk_settle_country, is_real_name, pk_country, pk_rate, pk_center_code, pk_vertex, pk_settle_country, is_real_name, pk_country, pk_rate,
store_level, is_maker_gift, expire_status) store_level, is_maker_gift, expire_status)
select cm.pk_id, select cm.pk_id,
@ -352,7 +354,8 @@
<insert id="insertCuMemberTreeBySettleDate"> <insert id="insertCuMemberTreeBySettleDate">
insert into ${targetTableName}(period, pk_member, pk_parent, pk_place_parent, place_dept, member_code, insert into ${targetTableName}(period, pk_member, pk_parent, pk_place_parent, place_dept, member_code,
member_name, customer_type, phone, pk_grade, pk_awards, account_status, pay_status, member_name, customer_type, phone, pk_grade, pk_awards, account_status,
pay_status,
register_authority, category, purchase_type, purchase_status, register_authority, category, purchase_type, purchase_status,
share_status, income_status, pk_team_code, pk_center_code, pk_vertex, share_status, income_status, pk_team_code, pk_center_code, pk_vertex,
pk_settle_country, is_real_name, is_bus_license, is_maker_space, pk_country) pk_settle_country, is_real_name, is_bus_license, is_maker_space, pk_country)
@ -412,19 +415,19 @@
</update> </update>
<update id="createCuMemberTreeParentIndex"> <update id="createCuMemberTreeParentIndex">
create index ${tableName}_parent on ${tableName}(pk_parent) create index ${tableName}_parent on ${tableName} ( pk_parent )
</update> </update>
<update id="createCuMemberTreePlaceIndex"> <update id="createCuMemberTreePlaceIndex">
create index ${tableName}_place on ${tableName}(pk_place_parent,place_dept) create index ${tableName}_place on ${tableName} ( pk_place_parent, place_dept )
</update> </update>
<update id="createCuMemberTableUniqueIndex"> <update id="createCuMemberTableUniqueIndex">
create unique index ${tableName}_PK_M on ${tableName}(PK_MEMBER,period) create unique index ${tableName}_PK_M on ${tableName} ( PK_MEMBER, period )
</update> </update>
<update id="createCuMemberTreeDayOnlyIndex"> <update id="createCuMemberTreeDayOnlyIndex">
create unique index ${tableName}_PK_M on ${tableName}(PK_MEMBER) create unique index ${tableName}_PK_M on ${tableName} ( PK_MEMBER )
</update> </update>
<update id="updateCuMemberTreeByCancelOrder"> <update id="updateCuMemberTreeByCancelOrder">
@ -451,16 +454,25 @@
<insert id="insertCuMemberSettleByHis"> <insert id="insertCuMemberSettleByHis">
insert into ${settleTableName}(pk_member, PK_PARENT, PK_PLACE_PARENT, PLACE_DEPT, MEMBER_CODE, member_name, insert into ${settleTableName}(pk_member, PK_PARENT, PK_PLACE_PARENT, PLACE_DEPT, MEMBER_CODE, member_name,
CUSTOMER_TYPE, PHONE, PK_GRADE, PK_AWARDS, ACCOUNT_STATUS, PAY_STATUS, REGISTER_AUTHORITY, CUSTOMER_TYPE, PHONE, PK_GRADE, PK_AWARDS, ACCOUNT_STATUS, PAY_STATUS,
CATEGORY, PURCHASE_TYPE, PURCHASE_STATUS, SHARE_STATUS, INCOME_STATUS, PK_TEAM_CODE, PK_CENTER_CODE, REGISTER_AUTHORITY,
PK_VERTEX, PK_SETTLE_COUNTRY, IS_REAL_NAME, IS_BUS_LICENSE, IS_MAKER_SPACE, PK_COUNTRY, PK_RATE, CATEGORY, PURCHASE_TYPE, PURCHASE_STATUS, SHARE_STATUS, INCOME_STATUS,
PK_TEAM_CODE, PK_CENTER_CODE,
PK_VERTEX, PK_SETTLE_COUNTRY, IS_REAL_NAME, IS_BUS_LICENSE, IS_MAKER_SPACE,
PK_COUNTRY, PK_RATE,
a_balance, b_balance, A_SUM_AMOUNT, B_SUM_AMOUNT, A_SUM_PV, B_SUM_PV, a_balance, b_balance, A_SUM_AMOUNT, B_SUM_AMOUNT, A_SUM_PV, B_SUM_PV,
A_NEW_AMOUNT, B_NEW_AMOUNT, A_NEW_PV, B_NEW_PV, A_SUM_REAL_AMOUNT, B_SUM_REAL_AMOUNT, A_SUM_REAL_PV, B_SUM_REAL_PV, A_NEW_AMOUNT, B_NEW_AMOUNT, A_NEW_PV, B_NEW_PV, A_SUM_REAL_AMOUNT,
REP_A_BALANCE, REP_B_BALANCE, REP_A_NEW_AMOUNT, REP_B_NEW_AMOUNT, REP_A_NEW_PV, REP_B_NEW_PV, REP_A_SUM_AMOUNT, B_SUM_REAL_AMOUNT, A_SUM_REAL_PV, B_SUM_REAL_PV,
REP_B_SUM_AMOUNT, REP_A_SUM_PV, REP_B_SUM_PV, REGISTER_AMOUNT, REGISTER_PV, REGISTER_NEW_AMOUNT, REGISTER_NEW_PV, REP_A_BALANCE, REP_B_BALANCE, REP_A_NEW_AMOUNT, REP_B_NEW_AMOUNT, REP_A_NEW_PV,
UPGRADE_AMOUNT, UPGRADE_PV, UPGRADE_NEW_AMOUNT, UPGRADE_NEW_PV, REPURCHASE_AMOUNT, REPURCHASE_PV, REP_B_NEW_PV, REP_A_SUM_AMOUNT,
REPURCHASE_NEW_AMOUNT, REPURCHASE_NEW_PV, HI_FUN_AMOUNT, HI_FUN_PV, HI_FUN_NEW_AMOUNT, HI_FUN_NEW_PV, REP_B_SUM_AMOUNT, REP_A_SUM_PV, REP_B_SUM_PV, REGISTER_AMOUNT, REGISTER_PV,
MALL_AMOUNT, MALL_PV, MALL_NEW_AMOUNT, MALL_NEW_PV, REGISTER_BLO_NEW_PV, UPGRADE_BLO_NEW_PV, REPURCHASE_BLO_NEW_PV, REGISTER_NEW_AMOUNT, REGISTER_NEW_PV,
UPGRADE_AMOUNT, UPGRADE_PV, UPGRADE_NEW_AMOUNT, UPGRADE_NEW_PV,
REPURCHASE_AMOUNT, REPURCHASE_PV,
REPURCHASE_NEW_AMOUNT, REPURCHASE_NEW_PV, HI_FUN_AMOUNT, HI_FUN_PV,
HI_FUN_NEW_AMOUNT, HI_FUN_NEW_PV,
MALL_AMOUNT, MALL_PV, MALL_NEW_AMOUNT, MALL_NEW_PV, REGISTER_BLO_NEW_PV,
UPGRADE_BLO_NEW_PV, REPURCHASE_BLO_NEW_PV,
HI_FUN_BLO_NEW_PV, MALL_BLO_NEW_PV, MIN_ACHIEVE, ROUND, SECOND) HI_FUN_BLO_NEW_PV, MALL_BLO_NEW_PV, MIN_ACHIEVE, ROUND, SECOND)
select ca.pk_member, select ca.pk_member,
ca.PK_PARENT, ca.PK_PARENT,
@ -549,9 +561,11 @@
<insert id="insertCuMemberRangeByMember"> <insert id="insertCuMemberRangeByMember">
insert into ${settleTableName}(pk_member, pk_parent, member_code, member_name, insert into ${settleTableName}(pk_member, pk_parent, member_code, member_name,
customer_type, phone, pk_grade, pk_awards, pk_range_awards, pk_benefit_awards, account_status, pay_status, register_authority, category, customer_type, phone, pk_grade, pk_awards, pk_range_awards, pk_benefit_awards,
account_status, pay_status, register_authority, category,
purchase_status, income_status, pk_team_code, purchase_status, income_status, pk_team_code,
pk_center_code, pk_vertex, pk_settle_country, is_real_name, pk_country, pk_rate, assess_status, month_member, range_store_status, pay_time) pk_center_code, pk_vertex, pk_settle_country, is_real_name, pk_country, pk_rate,
assess_status, month_member, range_store_status, pay_time)
select cm.pk_id, select cm.pk_id,
pk_parent, pk_parent,
member_code, member_code,
@ -610,6 +624,7 @@
<update id="createCuMemberTableSequence" statementType="STATEMENT"> <update id="createCuMemberTableSequence" statementType="STATEMENT">
<include refid="CuMemberTableTrig"></include> <include refid="CuMemberTableTrig"></include>
</update> </update>
<update id="updateCuMemberSettleExemptByAward"> <update id="updateCuMemberSettleExemptByAward">
merge into ${settleTableName} a merge into ${settleTableName} a
using ( using (
@ -635,24 +650,33 @@
when matched then when matched then
update set a.purchase_status = 0,a.purchase_type = b.purchase_type update set a.purchase_status = 0,a.purchase_type = b.purchase_type
</update> </update>
<update id="updateCuMemberSettle"> <update id="updateCuMemberSettle">
merge into ${settleTableName} a merge into ${settleTableName} a
using( using(
select * from ( select * from (
<foreach collection="cuMemberTreeList" item="item" open=" " separator=" union " close=" "> <foreach collection="cuMemberTreeList" item="item" open=" " separator=" union " close=" ">
select #{item.pkMember} pk_member,#{item.aBalance} a_balance, #{item.bBalance} b_balance, select #{item.pkMember} pk_member,#{item.aBalance} a_balance, #{item.bBalance} b_balance,
#{item.aNewAmount} a_new_amount,#{item.bNewAmount} b_new_amount,#{item.aNewPv} a_new_pv,#{item.bNewPv} b_new_pv, #{item.aNewAmount} a_new_amount,#{item.bNewAmount} b_new_amount,#{item.aNewPv} a_new_pv,#{item.bNewPv}
b_new_pv,
#{item.repABalance} rep_a_balance,#{item.repBBalance} rep_b_balance,#{item.repANewAmount} rep_a_new_amount, #{item.repABalance} rep_a_balance,#{item.repBBalance} rep_b_balance,#{item.repANewAmount} rep_a_new_amount,
#{item.repBNewAmount} rep_b_new_amount,#{item.repANewPv} rep_a_new_pv,#{item.repBNewPv} rep_b_new_pv, #{item.repBNewAmount} rep_b_new_amount,#{item.repANewPv} rep_a_new_pv,#{item.repBNewPv} rep_b_new_pv,
#{item.registerAmount} register_amount,#{item.registerPv} register_pv,#{item.registerNewAmount} register_new_amount,#{item.registerNewPv} register_new_pv, #{item.registerAmount} register_amount,#{item.registerPv} register_pv,#{item.registerNewAmount}
#{item.upgradeAmount} upgrade_amount,#{item.upgradePv} upgrade_pv,#{item.upgradeNewAmount} upgrade_new_amount,#{item.upgradeNewPv} upgrade_new_pv, register_new_amount,#{item.registerNewPv} register_new_pv,
#{item.repurchaseAmount} repurchase_amount,#{item.repurchasePv} repurchase_pv,#{item.repurchaseNewAmount} repurchase_new_amount,#{item.repurchaseNewPv} repurchase_new_pV, #{item.upgradeAmount} upgrade_amount,#{item.upgradePv} upgrade_pv,#{item.upgradeNewAmount}
#{item.hiFunAmount} hi_fun_amount,#{item.hiFunPv} hi_fun_pv,#{item.hiFunNewAmount} hi_fun_new_amount,#{item.hiFunNewPv} hi_fun_new_pv, upgrade_new_amount,#{item.upgradeNewPv} upgrade_new_pv,
#{item.mallAmount} mall_amount,#{item.mallPv} mall_pv,#{item.mallNewAmount} mall_new_amount,#{item.mallNewPv} mall_new_pv, #{item.repurchaseAmount} repurchase_amount,#{item.repurchasePv} repurchase_pv,#{item.repurchaseNewAmount}
#{item.registerBloNewPv} register_blo_new_pv,#{item.upgradeBloNewPv} upgrade_blo_new_pv,#{item.repurchaseBloNewPv} repurchase_blo_new_pv, repurchase_new_amount,#{item.repurchaseNewPv} repurchase_new_pV,
#{item.hiFunAmount} hi_fun_amount,#{item.hiFunPv} hi_fun_pv,#{item.hiFunNewAmount}
hi_fun_new_amount,#{item.hiFunNewPv} hi_fun_new_pv,
#{item.mallAmount} mall_amount,#{item.mallPv} mall_pv,#{item.mallNewAmount}
mall_new_amount,#{item.mallNewPv} mall_new_pv,
#{item.registerBloNewPv} register_blo_new_pv,#{item.upgradeBloNewPv}
upgrade_blo_new_pv,#{item.repurchaseBloNewPv} repurchase_blo_new_pv,
#{item.hiFunBloNewPv} hi_fun_blo_new_pv,#{item.mallBloNewPv} mall_blo_new_pv, #{item.hiFunBloNewPv} hi_fun_blo_new_pv,#{item.mallBloNewPv} mall_blo_new_pv,
#{item.rABalance} r_a_balance,#{item.rBBalance} r_b_balance,#{item.rRepABalance} r_rep_a_balance, #{item.rABalance} r_a_balance,#{item.rBBalance} r_b_balance,#{item.rRepABalance} r_rep_a_balance,
#{item.rRepBBalance} r_rep_b_balance,#{item.minAchieve} min_achieve,#{item.round} round,#{item.second} second from dual #{item.rRepBBalance} r_rep_b_balance,#{item.minAchieve} min_achieve,#{item.round} round,#{item.second}
second from dual
</foreach>) </foreach>)
) b ) b
on (a.pk_member = b.pk_member) on (a.pk_member = b.pk_member)
@ -661,7 +685,8 @@
a.b_new_amount=b.b_new_amount,a.a_new_pv=b.a_new_pv,a.b_new_pv=b.b_new_pv,a.rep_a_balance=b.rep_a_balance, a.b_new_amount=b.b_new_amount,a.a_new_pv=b.a_new_pv,a.b_new_pv=b.b_new_pv,a.rep_a_balance=b.rep_a_balance,
a.rep_b_balance=b.rep_b_balance, a.rep_a_new_amount=b.rep_a_new_amount,a.rep_b_new_amount=b.rep_b_new_amount, a.rep_b_balance=b.rep_b_balance, a.rep_a_new_amount=b.rep_a_new_amount,a.rep_b_new_amount=b.rep_b_new_amount,
a.rep_a_new_pv=b.rep_a_new_pv,a.rep_b_new_pv=b.rep_b_new_pv, a.rep_a_new_pv=b.rep_a_new_pv,a.rep_b_new_pv=b.rep_b_new_pv,
a.register_amount = b.register_amount,a.register_pv=b.register_pv,a.register_new_amount = b.register_new_amount,a.register_new_pv=b.register_new_pv, a.register_amount = b.register_amount,a.register_pv=b.register_pv,a.register_new_amount =
b.register_new_amount,a.register_new_pv=b.register_new_pv,
a.upgrade_amount=b.upgrade_amount,a.upgrade_pv=b.upgrade_pv,a.upgrade_new_amount=b.upgrade_new_amount,a.upgrade_new_pv=b.upgrade_new_pv, a.upgrade_amount=b.upgrade_amount,a.upgrade_pv=b.upgrade_pv,a.upgrade_new_amount=b.upgrade_new_amount,a.upgrade_new_pv=b.upgrade_new_pv,
a.repurchase_amount=b.repurchase_amount,a.repurchase_pv=b.repurchase_pv,a.repurchase_new_amount=b.repurchase_new_amount,a.repurchase_new_pv=b.repurchase_new_pv, a.repurchase_amount=b.repurchase_amount,a.repurchase_pv=b.repurchase_pv,a.repurchase_new_amount=b.repurchase_new_amount,a.repurchase_new_pv=b.repurchase_new_pv,
a.hi_fun_amount=b.hi_fun_amount,a.hi_fun_pv=b.hi_fun_pv,a.hi_fun_new_amount=b.hi_fun_new_amount,a.hi_fun_new_pv=b.hi_fun_new_pv, a.hi_fun_amount=b.hi_fun_amount,a.hi_fun_pv=b.hi_fun_pv,a.hi_fun_new_amount=b.hi_fun_new_amount,a.hi_fun_new_pv=b.hi_fun_new_pv,
@ -689,12 +714,14 @@
using( using(
<foreach collection="cuMemberTreeList" item="item" open=" " separator=" union all " close=" "> <foreach collection="cuMemberTreeList" item="item" open=" " separator=" union all " close=" ">
select #{item.pkMember} pk_member,#{item.aBalance} a_balance, #{item.bBalance} b_balance, select #{item.pkMember} pk_member,#{item.aBalance} a_balance, #{item.bBalance} b_balance,
#{item.aNewAmount} a_new_amount,#{item.bNewAmount} b_new_amount,#{item.aNewPv} a_new_pv,#{item.bNewPv} b_new_pv, #{item.aNewAmount} a_new_amount,#{item.bNewAmount} b_new_amount,#{item.aNewPv} a_new_pv,#{item.bNewPv}
b_new_pv,
#{item.repABalance} rep_a_balance,#{item.repBBalance} rep_b_balance,#{item.repANewAmount} rep_a_new_amount, #{item.repABalance} rep_a_balance,#{item.repBBalance} rep_b_balance,#{item.repANewAmount} rep_a_new_amount,
#{item.repBNewAmount} rep_b_new_amount,#{item.repANewPv} rep_a_new_pv,#{item.repBNewPv} rep_b_new_pv, #{item.repBNewAmount} rep_b_new_amount,#{item.repANewPv} rep_a_new_pv,#{item.repBNewPv} rep_b_new_pv,
#{item.registerAmount} register_amount,#{item.registerPv} register_pv,#{item.registerNewPv} register_new_pv, #{item.registerAmount} register_amount,#{item.registerPv} register_pv,#{item.registerNewPv} register_new_pv,
#{item.upgradeAmount} upgrade_amount,#{item.upgradePv} upgrade_pv,#{item.upgradeNewPv} upgrade_new_pv, #{item.upgradeAmount} upgrade_amount,#{item.upgradePv} upgrade_pv,#{item.upgradeNewPv} upgrade_new_pv,
#{item.repurchaseAmount} repurchase_amount,#{item.repurchasePv} repurchase_pv,#{item.repurchaseNewPv} repurchase_new_pv, #{item.repurchaseAmount} repurchase_amount,#{item.repurchasePv} repurchase_pv,#{item.repurchaseNewPv}
repurchase_new_pv,
#{item.hiFunAmount} hi_fun_amount,#{item.hiFunPv} hi_fun_pv,#{item.hiFunNewPv} hi_fun_new_pv, #{item.hiFunAmount} hi_fun_amount,#{item.hiFunPv} hi_fun_pv,#{item.hiFunNewPv} hi_fun_new_pv,
#{item.mallAmount} mall_amount,#{item.mallPv} mall_pv,#{item.mallNewPv} mall_new_pv, #{item.mallAmount} mall_amount,#{item.mallPv} mall_pv,#{item.mallNewPv} mall_new_pv,
#{item.minAchieve} min_achieve,#{item.round} round,#{item.second} second from dual #{item.minAchieve} min_achieve,#{item.round} round,#{item.second} second from dual
@ -743,7 +770,8 @@
nvl(ST.REP_B_NEW_PV,0) REP_B_NEW_PV,nvl(yt.REP_A_SUM_AMOUNT,0) REP_A_SUM_AMOUNT, nvl(ST.REP_B_NEW_PV,0) REP_B_NEW_PV,nvl(yt.REP_A_SUM_AMOUNT,0) REP_A_SUM_AMOUNT,
nvl(yt.REP_B_SUM_AMOUNT,0) REP_B_SUM_AMOUNT,nvl(yt.REP_A_SUM_PV,0) REP_A_SUM_PV, nvl(yt.REP_B_SUM_AMOUNT,0) REP_B_SUM_AMOUNT,nvl(yt.REP_A_SUM_PV,0) REP_A_SUM_PV,
nvl(yt.REP_B_SUM_PV,0) REP_B_SUM_PV, nvl(yt.REP_B_SUM_PV,0) REP_B_SUM_PV,
nvl(ST.ROUND,0) ROUND,nvl(nvl(ST.SECOND,yt.second),1) SECOND,nvl(ST.MIN_ACHIEVE,0) MIN_ACHIEVE,b.expire_status from nvl(ST.ROUND,0) ROUND,nvl(nvl(ST.SECOND,yt.second),1) SECOND,nvl(ST.MIN_ACHIEVE,0) MIN_ACHIEVE,b.expire_status
from
(select t.pk_id,t.pk_settle_country,t.expire_status from cu_member t (select t.pk_id,t.pk_settle_country,t.expire_status from cu_member t
where t.del_flag = 0 start with t.pk_id = #{pkMember} where t.del_flag = 0 start with t.pk_id = #{pkMember}
connect by t.pk_id = prior connect by t.pk_id = prior
@ -858,7 +886,8 @@
share_status, income_status, pk_team_code, pk_center_code, pk_vertex, share_status, income_status, pk_team_code, pk_center_code, pk_vertex,
pk_settle_country, is_real_name, is_bus_license, is_maker_space, pk_country) pk_settle_country, is_real_name, is_bus_license, is_maker_space, pk_country)
values (b.period, b.pk_member, b.pk_parent, b.pk_place_parent, b.place_dept, b.member_code, values (b.period, b.pk_member, b.pk_parent, b.pk_place_parent, b.place_dept, b.member_code,
b.member_name, b.customer_type, b.phone, b.pk_grade, b.pk_awards, b.account_status, b.pay_status, b.member_name, b.customer_type, b.phone, b.pk_grade, b.pk_awards, b.account_status,
b.pay_status,
b.register_authority, b.category, b.purchase_type, b.purchase_status, b.register_authority, b.category, b.purchase_type, b.purchase_status,
b.share_status, b.income_status, b.pk_team_code, b.pk_center_code, b.pk_vertex, b.share_status, b.income_status, b.pk_team_code, b.pk_center_code, b.pk_vertex,
b.pk_settle_country, b.is_real_name, b.is_bus_license, b.is_maker_space, b.pk_country) b.pk_settle_country, b.is_real_name, b.is_bus_license, b.is_maker_space, b.pk_country)
@ -1180,6 +1209,7 @@
and bw.community_check &lt;= a.b_sum_real_pv and bw.community_check &lt;= a.b_sum_real_pv
order by pk_member desc order by pk_member desc
</select> </select>
<select id="queryCuMemberSettlePlaceUnderUmbrella" resultType="java.lang.Integer"> <select id="queryCuMemberSettlePlaceUnderUmbrella" resultType="java.lang.Integer">
select count(a.pk_member) select count(a.pk_member)
from (select a.*, b.pk_awards from (select a.*, b.pk_awards
@ -1228,6 +1258,7 @@
on x.pk_awards = ba.pk_id on x.pk_awards = ba.pk_id
where ba.awards_value >= (select awards_value from bd_awards where pk_id = #{awardsValue})) where ba.awards_value >= (select awards_value from bd_awards where pk_id = #{awardsValue}))
</select> </select>
<select id="queryExemptCuMemberSettle" resultMap="CuMemberSettleExt"> <select id="queryExemptCuMemberSettle" resultMap="CuMemberSettleExt">
select pk_member, 0 assess_type select pk_member, 0 assess_type
from ${tableName} from ${tableName}
@ -1239,7 +1270,8 @@
</select> </select>
<select id="queryMemberSettleBySaOrder" resultMap="CuMemberSettleExt"> <select id="queryMemberSettleBySaOrder" resultMap="CuMemberSettleExt">
select pk_member,member_code,member_name,c.pk_awards,c.pk_grade,account_status,category,income_status,pk_settle_country, select
pk_member,member_code,member_name,c.pk_awards,c.pk_grade,account_status,category,income_status,pk_settle_country,
is_maker_space,purchase_status,share_status,bg.grade_value,pk_parent,is_maker_space, is_maker_space,purchase_status,share_status,bg.grade_value,pk_parent,is_maker_space,
a_balance,b_balance,r_a_balance,r_b_balance,rep_a_balance,rep_b_balance,r_rep_a_balance,r_rep_b_balance, a_balance,b_balance,r_a_balance,r_b_balance,rep_a_balance,rep_b_balance,r_rep_a_balance,r_rep_b_balance,
register_amount,register_pv,upgrade_amount,upgrade_pv,repurchase_amount,pk_center_code,c.pk_vertex, register_amount,register_pv,upgrade_amount,upgrade_pv,repurchase_amount,pk_center_code,c.pk_vertex,
@ -1254,14 +1286,16 @@
</select> </select>
<select id="batchQueryCuMemberSettlePlaceParent" resultMap="CuMemberSettleExt"> <select id="batchQueryCuMemberSettlePlaceParent" resultMap="CuMemberSettleExt">
select pk_order,pk_member,member_code,member_name,pk_place_parent,place_dept,pk_grade,a.pk_awards,bg.grade_value,account_status, select
pk_order,pk_member,member_code,member_name,pk_place_parent,place_dept,pk_grade,a.pk_awards,bg.grade_value,account_status,
income_status,pk_settle_country,purchase_status,share_status,a.register_authority, income_status,pk_settle_country,purchase_status,share_status,a.register_authority,
a_balance,b_balance,r_a_balance,r_b_balance,rep_a_balance,rep_b_balance,r_rep_a_balance,r_rep_b_balance, a_balance,b_balance,r_a_balance,r_b_balance,rep_a_balance,rep_b_balance,r_rep_a_balance,r_rep_b_balance,
register_amount,register_pv,upgrade_amount,upgrade_pv,repurchase_amount,pk_center_code, register_amount,register_pv,upgrade_amount,upgrade_pv,repurchase_amount,pk_center_code,
repurchase_pv,hi_fun_amount,hi_fun_pv,mall_amount,mall_pv,category,pk_vertex, repurchase_pv,hi_fun_amount,hi_fun_pv,mall_amount,mall_pv,category,pk_vertex,
min_achieve,round,second,store_level,expire_status from ( min_achieve,round,second,store_level,expire_status from (
<foreach collection="firPurchaseOrderList" item="item" open=" " close=" " separator=" union all "> <foreach collection="firPurchaseOrderList" item="item" open=" " close=" " separator=" union all ">
select #{item.pkId} pk_order,pk_member,member_code,member_name,pk_place_parent,place_dept,pk_grade,pk_awards,account_status, select #{item.pkId}
pk_order,pk_member,member_code,member_name,pk_place_parent,place_dept,pk_grade,pk_awards,account_status,
income_status,pk_settle_country,purchase_status,share_status,register_authority, income_status,pk_settle_country,purchase_status,share_status,register_authority,
a_balance,b_balance,r_a_balance,r_b_balance,rep_a_balance,rep_b_balance,r_rep_a_balance,r_rep_b_balance, a_balance,b_balance,r_a_balance,r_b_balance,rep_a_balance,rep_b_balance,r_rep_a_balance,r_rep_b_balance,
register_amount,register_pv,upgrade_amount,upgrade_pv,repurchase_amount,pk_center_code, register_amount,register_pv,upgrade_amount,upgrade_pv,repurchase_amount,pk_center_code,
@ -1292,7 +1326,8 @@
</select> </select>
<select id="batchQueryCuMemberSettleParentForSpecial" resultMap="CuMemberSettleExt"> <select id="batchQueryCuMemberSettleParentForSpecial" resultMap="CuMemberSettleExt">
select a.pk_member,a.pk_parent,a.member_code,a.member_name,a.pk_awards,a.account_status,a.register_authority,a.customer_type, select
a.pk_member,a.pk_parent,a.member_code,a.member_name,a.pk_awards,a.account_status,a.register_authority,a.customer_type,
a.income_status,a.pk_settle_country,a.purchase_status,a.share_status,a.is_maker_space, a.income_status,a.pk_settle_country,a.purchase_status,a.share_status,a.is_maker_space,
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.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.pk_center_code, a.register_amount,a.register_pv,a.upgrade_amount,a.upgrade_pv,a.repurchase_amount,a.pk_center_code,
@ -1304,10 +1339,11 @@
inner join bd_grade bg inner join bd_grade bg
on a.pk_grade = bg.pk_id on a.pk_grade = bg.pk_id
left join ac_pick ap left join ac_pick ap
on ap.pk_member = a.pk_member and ap.pick_type=8 and ap.del_flag=0 on ap.pk_member = a.pk_member and ap.pick_type = 8 and ap.del_flag=0
left join bd_product bp left join bd_product bp
on ap.pk_data_id = bp.pk_id on ap.pk_data_id = bp.pk_id
</select> </select>
<select id="queryCuMemberSecondPlaceParent" resultMap="CuMemberSettleExt"> <select id="queryCuMemberSecondPlaceParent" resultMap="CuMemberSettleExt">
select b.pk_id pk_member, select b.pk_id pk_member,
b.pk_parent, b.pk_parent,
@ -1517,7 +1553,8 @@
</select> </select>
<select id="queryCuMemberSecondParent" resultMap="CuMemberSettleExt"> <select id="queryCuMemberSecondParent" resultMap="CuMemberSettleExt">
select b.pk_id pk_member,b.pk_parent,b.pk_place_parent,b.place_dept,b.pk_center_code,b.member_code,b.member_name,b.pk_grade,b.pk_awards,b.account_status, select b.pk_id
pk_member,b.pk_parent,b.pk_place_parent,b.place_dept,b.pk_center_code,b.member_code,b.member_name,b.pk_grade,b.pk_awards,b.account_status,
b.register_authority,b.customer_type,b.income_status,b.pk_settle_country,b.is_maker_space,b.purchase_status, b.register_authority,b.customer_type,b.income_status,b.pk_settle_country,b.is_maker_space,b.purchase_status,
b.share_status,bg.grade_value,b.category,st.a_balance,st.b_balance,0 r_a_balance,0 r_b_balance, b.share_status,bg.grade_value,b.category,st.a_balance,st.b_balance,0 r_a_balance,0 r_b_balance,
st.a_sum_amount,st.b_sum_amount,st.a_sum_pv,st.b_sum_pv,st.a_new_amount,st.b_new_amount,st.a_new_pv, st.a_sum_amount,st.b_sum_amount,st.a_sum_pv,st.b_sum_pv,st.a_new_amount,st.b_new_amount,st.a_new_pv,
@ -1532,7 +1569,8 @@
st.mall_amount,st.mall_pv,st.mall_new_amount,st.mall_new_pv, st.mall_amount,st.mall_pv,st.mall_new_amount,st.mall_new_pv,
st.round,st.second,st.min_achieve,st.expire_status from st.round,st.second,st.min_achieve,st.expire_status from
( (
select pk_id,pk_parent,pk_place_parent,place_dept,member_code,member_name,pk_center_code,pk_settle_grade pk_grade,pk_awards,account_status,register_authority,customer_type, select pk_id,pk_parent,pk_place_parent,place_dept,member_code,member_name,pk_center_code,pk_settle_grade
pk_grade,pk_awards,account_status,register_authority,customer_type,
income_status,pk_settle_country,purchase_status,share_status,category,is_maker_space from cu_member income_status,pk_settle_country,purchase_status,share_status,category,is_maker_space from cu_member
where del_flag= 0 and pk_id in where del_flag= 0 and pk_id in
<foreach collection="cuMemberTreeList" item="item" open="(" close=")" separator=","> <foreach collection="cuMemberTreeList" item="item" open="(" close=")" separator=",">
@ -1574,7 +1612,8 @@
t.UPGRADE_NEW_PV,t.REPURCHASE_AMOUNT,t.REPURCHASE_PV,t.REPURCHASE_NEW_PV,t.HI_FUN_AMOUNT,t.HI_FUN_PV,t.HI_FUN_NEW_PV,t.MALL_AMOUNT, t.UPGRADE_NEW_PV,t.REPURCHASE_AMOUNT,t.REPURCHASE_PV,t.REPURCHASE_NEW_PV,t.HI_FUN_AMOUNT,t.HI_FUN_PV,t.HI_FUN_NEW_PV,t.MALL_AMOUNT,
t.MALL_PV ,t.MALL_NEW_PV,t.MIN_ACHIEVE,t.ROUND,t.SECOND, t.MALL_PV ,t.MALL_NEW_PV,t.MIN_ACHIEVE,t.ROUND,t.SECOND,
</if> </if>
cm.PK_AWARDS,cm.PK_PLACE_PARENT,cm.PK_PARENT ,cm.PLACE_DEPT ,cm.MEMBER_NAME, cm.MEMBER_CODE,cm.PK_ID PK_MEMBER,cm.PK_COUNTRY,cm.PK_SETTLE_COUNTRY,cme.MEMBER_CODE parentMemberCode, cm.PK_AWARDS,cm.PK_PLACE_PARENT,cm.PK_PARENT ,cm.PLACE_DEPT ,cm.MEMBER_NAME, cm.MEMBER_CODE,cm.PK_ID
PK_MEMBER,cm.PK_COUNTRY,cm.PK_SETTLE_COUNTRY,cme.MEMBER_CODE parentMemberCode,
(select count(cr.pk_id) from CU_MEMBER cr where cr.pk_parent = cm.pk_id and cr.del_flag = 0) directPushNumber (select count(cr.pk_id) from CU_MEMBER cr where cr.pk_parent = cm.pk_id and cr.del_flag = 0) directPushNumber
from from
CU_MEMBER cm CU_MEMBER cm
@ -1679,7 +1718,8 @@
t.UPGRADE_NEW_PV,t.REPURCHASE_AMOUNT,t.REPURCHASE_PV,t.REPURCHASE_NEW_PV,t.HI_FUN_AMOUNT,t.HI_FUN_PV,t.HI_FUN_NEW_PV,t.MALL_AMOUNT, t.UPGRADE_NEW_PV,t.REPURCHASE_AMOUNT,t.REPURCHASE_PV,t.REPURCHASE_NEW_PV,t.HI_FUN_AMOUNT,t.HI_FUN_PV,t.HI_FUN_NEW_PV,t.MALL_AMOUNT,
t.MALL_PV ,t.MALL_NEW_PV,t.MIN_ACHIEVE,t.ROUND,t.SECOND, t.MALL_PV ,t.MALL_NEW_PV,t.MIN_ACHIEVE,t.ROUND,t.SECOND,
</if> </if>
level,cm.PK_AWARDS,cm.PK_PLACE_PARENT,cm.PK_PARENT ,cm.PLACE_DEPT ,cm.MEMBER_NAME, cm.MEMBER_CODE,cm.PK_ID PK_MEMBER,cm.PK_COUNTRY,cm.PK_SETTLE_COUNTRY,cme.MEMBER_CODE parentMemberCode level,cm.PK_AWARDS,cm.PK_PLACE_PARENT,cm.PK_PARENT ,cm.PLACE_DEPT ,cm.MEMBER_NAME, cm.MEMBER_CODE,cm.PK_ID
PK_MEMBER,cm.PK_COUNTRY,cm.PK_SETTLE_COUNTRY,cme.MEMBER_CODE parentMemberCode
from CU_MEMBER cm from CU_MEMBER cm
<if test="tableName != null and tableName != ''"> <if test="tableName != null and tableName != ''">
left join ${tableName} t on cm.PK_ID = t.PK_MEMBER left join ${tableName} t on cm.PK_ID = t.PK_MEMBER
@ -1752,7 +1792,13 @@
union union
select * select *
from ( from (
select t.place_dept, t.pk_member, t.member_name, t.member_code, t.phone, t.category, t.pk_grade select t.place_dept,
t.pk_member,
t.member_name,
t.member_code,
t.phone,
t.category,
t.pk_grade
from ${tableName} t from ${tableName} t
where t.place_dept = 2 where t.place_dept = 2
start start
@ -1772,7 +1818,8 @@
</select> </select>
<select id="queryCuMemberTree" resultMap="CuMemberSettleExt"> <select id="queryCuMemberTree" resultMap="CuMemberSettleExt">
select t.place_dept, t.pk_member, t.member_name,t.member_code, t.phone,t.category,t.pk_grade,bg.grade_value from ${tableName} t select t.place_dept, t.pk_member, t.member_name,t.member_code, t.phone,t.category,t.pk_grade,bg.grade_value from
${tableName} t
left join bd_grade bg left join bd_grade bg
on bg.pk_id = t.pk_grade on bg.pk_id = t.pk_grade
where 1=1 where 1=1
@ -1875,11 +1922,13 @@
</select> </select>
<select id="batchQueryMemberSettleParentByMemberPk" resultMap="CuMemberSettleExt"> <select id="batchQueryMemberSettleParentByMemberPk" resultMap="CuMemberSettleExt">
select cl.pk_member,cl.member_code,cl.member_name,cl.pk_awards,cl.pk_grade,cl.account_status,cl.category,cl.income_status,cl.pk_settle_country, select
cl.pk_member,cl.member_code,cl.member_name,cl.pk_awards,cl.pk_grade,cl.account_status,cl.category,cl.income_status,cl.pk_settle_country,
cl.is_maker_space,cl.purchase_status,cl.share_status, cl.is_maker_space,cl.purchase_status,cl.share_status,
cl.a_balance,cl.b_balance,cl.r_a_balance,cl.r_b_balance,cl.rep_a_balance,cl.rep_b_balance,cl.r_rep_a_balance,cl.r_rep_b_balance, cl.a_balance,cl.b_balance,cl.r_a_balance,cl.r_b_balance,cl.rep_a_balance,cl.rep_b_balance,cl.r_rep_a_balance,cl.r_rep_b_balance,
cl.register_amount,cl.register_pv,cl.upgrade_amount,cl.upgrade_pv,cl.repurchase_amount,cl.pk_center_code,cl.register_authority, cl.register_amount,cl.register_pv,cl.upgrade_amount,cl.upgrade_pv,cl.repurchase_amount,cl.pk_center_code,cl.register_authority,
cl.repurchase_pv,cl.hi_fun_amount,cl.hi_fun_pv,cl.mall_amount,cl.mall_pv,cl.min_achieve,cl.round,cl.second from ${settleTableName} ct cl.repurchase_pv,cl.hi_fun_amount,cl.hi_fun_pv,cl.mall_amount,cl.mall_pv,cl.min_achieve,cl.round,cl.second from
${settleTableName} ct
inner join ${settleTableName} cl inner join ${settleTableName} cl
on ct.pk_parent = cl.pk_member on ct.pk_parent = cl.pk_member
where ct.pk_member in where ct.pk_member in
@ -1887,7 +1936,8 @@
#{item} #{item}
</foreach> </foreach>
union union
select pk_member,member_code,member_name,pk_awards,pk_grade,account_status,category,income_status,pk_settle_country, select
pk_member,member_code,member_name,pk_awards,pk_grade,account_status,category,income_status,pk_settle_country,
is_maker_space,purchase_status,share_status, is_maker_space,purchase_status,share_status,
a_balance,b_balance,r_a_balance,r_b_balance,rep_a_balance,rep_b_balance,r_rep_a_balance,r_rep_b_balance, a_balance,b_balance,r_a_balance,r_b_balance,rep_a_balance,rep_b_balance,r_rep_a_balance,r_rep_b_balance,
register_amount,register_pv,upgrade_amount,upgrade_pv,repurchase_amount,pk_center_code,register_authority, register_amount,register_pv,upgrade_amount,upgrade_pv,repurchase_amount,pk_center_code,register_authority,
@ -1925,7 +1975,8 @@
t.UPGRADE_NEW_PV,t.REPURCHASE_AMOUNT,t.REPURCHASE_PV,t.REPURCHASE_NEW_PV,t.HI_FUN_AMOUNT,t.HI_FUN_PV,t.HI_FUN_NEW_PV,t.MALL_AMOUNT, t.UPGRADE_NEW_PV,t.REPURCHASE_AMOUNT,t.REPURCHASE_PV,t.REPURCHASE_NEW_PV,t.HI_FUN_AMOUNT,t.HI_FUN_PV,t.HI_FUN_NEW_PV,t.MALL_AMOUNT,
t.MALL_PV ,t.MALL_NEW_PV,t.MIN_ACHIEVE,t.ROUND,t.SECOND, t.MALL_PV ,t.MALL_NEW_PV,t.MIN_ACHIEVE,t.ROUND,t.SECOND,
</if> </if>
cm.PK_AWARDS,cm.PK_PLACE_PARENT,cm.PK_PARENT ,cm.PLACE_DEPT ,cm.MEMBER_NAME, cm.MEMBER_CODE,cm.PK_ID PK_MEMBER,cm.PK_COUNTRY,cm.PK_SETTLE_COUNTRY,cme.MEMBER_CODE parentMemberCode cm.PK_AWARDS,cm.PK_PLACE_PARENT,cm.PK_PARENT ,cm.PLACE_DEPT ,cm.MEMBER_NAME, cm.MEMBER_CODE,cm.PK_ID
PK_MEMBER,cm.PK_COUNTRY,cm.PK_SETTLE_COUNTRY,cme.MEMBER_CODE parentMemberCode
from from
CU_MEMBER cm CU_MEMBER cm
left join CU_MEMBER cme on cme.PK_ID = cm.PK_PARENT left join CU_MEMBER cme on cme.PK_ID = cm.PK_PARENT
@ -1954,7 +2005,8 @@
</select> </select>
<select id="queryByMemberParentSumPv" resultType="com.hzs.bonus.achieve.param.MemberParentCountParam"> <select id="queryByMemberParentSumPv" resultType="com.hzs.bonus.achieve.param.MemberParentCountParam">
select sum(cr.REGISTER_PV + cr.UPGRADE_PV + cr.REPURCHASE_PV + cr.HI_FUN_PV + cr.MALL_PV) parentMemberSumPv,cm.PK_PARENT pkMember from ${tableName} cr select sum(cr.REGISTER_PV + cr.UPGRADE_PV + cr.REPURCHASE_PV + cr.HI_FUN_PV + cr.MALL_PV)
parentMemberSumPv,cm.PK_PARENT pkMember from ${tableName} cr
left join CU_MEMBER cm on cm.PK_ID = cr.PK_MEMBER left join CU_MEMBER cm on cm.PK_ID = cr.PK_MEMBER
where cm.del_flag = 0 and cm.PK_PARENT in where cm.del_flag = 0 and cm.PK_PARENT in
<foreach collection="memberIds" item="item" open="(" close=")" separator=","> <foreach collection="memberIds" item="item" open="(" close=")" separator=",">
@ -1971,7 +2023,8 @@
t.REP_B_SUM_AMOUNT,t.REP_A_SUM_PV,t.REP_B_SUM_PV,t.REGISTER_AMOUNT,t.REGISTER_PV,t.REGISTER_NEW_PV,t.UPGRADE_AMOUNT,t.UPGRADE_PV, t.REP_B_SUM_AMOUNT,t.REP_A_SUM_PV,t.REP_B_SUM_PV,t.REGISTER_AMOUNT,t.REGISTER_PV,t.REGISTER_NEW_PV,t.UPGRADE_AMOUNT,t.UPGRADE_PV,
t.UPGRADE_NEW_PV,t.REPURCHASE_AMOUNT,t.REPURCHASE_PV,t.REPURCHASE_NEW_PV,t.HI_FUN_AMOUNT,t.HI_FUN_PV,t.HI_FUN_NEW_PV,t.MALL_AMOUNT, t.UPGRADE_NEW_PV,t.REPURCHASE_AMOUNT,t.REPURCHASE_PV,t.REPURCHASE_NEW_PV,t.HI_FUN_AMOUNT,t.HI_FUN_PV,t.HI_FUN_NEW_PV,t.MALL_AMOUNT,
t.MALL_PV ,t.MALL_NEW_PV,t.MIN_ACHIEVE,t.ROUND,t.SECOND, t.MALL_PV ,t.MALL_NEW_PV,t.MIN_ACHIEVE,t.ROUND,t.SECOND,
level,cm.PK_AWARDS,cm.PK_PLACE_PARENT,cm.PK_PARENT ,cm.PLACE_DEPT ,cm.MEMBER_NAME, cm.MEMBER_CODE,cm.PK_ID PK_MEMBER,cm.PK_COUNTRY,cm.PK_SETTLE_COUNTRY,cme.MEMBER_CODE parentMemberCode level,cm.PK_AWARDS,cm.PK_PLACE_PARENT,cm.PK_PARENT ,cm.PLACE_DEPT ,cm.MEMBER_NAME, cm.MEMBER_CODE,cm.PK_ID
PK_MEMBER,cm.PK_COUNTRY,cm.PK_SETTLE_COUNTRY,cme.MEMBER_CODE parentMemberCode
from ${tableName} t from ${tableName} t
left join CU_MEMBER cm on cm.PK_ID = t.PK_MEMBER left join CU_MEMBER cm on cm.PK_ID = t.PK_MEMBER
left join CU_MEMBER cme on cme.PK_ID = cm.PK_PLACE_PARENT left join CU_MEMBER cme on cme.PK_ID = cm.PK_PLACE_PARENT
@ -2056,8 +2109,10 @@
on cme.PK_ID = cm.PK_PARENT on cme.PK_ID = cm.PK_PARENT
</select> </select>
<select id="queryByMemberParentAndMemberSettleCount" resultType="com.hzs.bonus.achieve.param.MemberParentCountParam"> <select id="queryByMemberParentAndMemberSettleCount"
select count(cr.PK_MEMBER) parentMemberCount,cr.PK_PARENT pkMember from cu_member_settle981 cr where cr.PK_PARENT in resultType="com.hzs.bonus.achieve.param.MemberParentCountParam">
select count(cr.PK_MEMBER) parentMemberCount,cr.PK_PARENT pkMember from cu_member_settle981 cr where
cr.PK_PARENT in
<trim suffixOverrides=" OR PK_ID IN()"> <!-- 表示删除最后一个条件 --> <trim suffixOverrides=" OR PK_ID IN()"> <!-- 表示删除最后一个条件 -->
<foreach collection="memberIds" item="Id" index="index" open="(" close=")"> <foreach collection="memberIds" item="Id" index="index" open="(" close=")">
<if test="index != 0"> <if test="index != 0">
@ -2073,7 +2128,8 @@
</select> </select>
<select id="queryByMemberParentSettleSumPv" resultType="com.hzs.bonus.achieve.param.MemberParentCountParam"> <select id="queryByMemberParentSettleSumPv" resultType="com.hzs.bonus.achieve.param.MemberParentCountParam">
select sum(cr.REGISTER_PV + cr.UPGRADE_PV + cr.REPURCHASE_PV + cr.HI_FUN_PV + cr.MALL_PV) parentMemberSumPv,cr.PK_PARENT pkMember from ${tableName} cr select sum(cr.REGISTER_PV + cr.UPGRADE_PV + cr.REPURCHASE_PV + cr.HI_FUN_PV + cr.MALL_PV)
parentMemberSumPv,cr.PK_PARENT pkMember from ${tableName} cr
where cr.PK_PARENT in where cr.PK_PARENT in
<foreach collection="memberIds" item="item" open="(" close=")" separator=","> <foreach collection="memberIds" item="item" open="(" close=")" separator=",">
@ -2089,7 +2145,13 @@
</select> </select>
<select id="queryMemberSettleByAwards" resultType="com.hzs.common.domain.member.ext.CuMemberSettleExt"> <select id="queryMemberSettleByAwards" resultType="com.hzs.common.domain.member.ext.CuMemberSettleExt">
select a.pk_settle_country, a.income_status, a.pk_member, a.expire_status, a.purchase_status, ba.abonus_ratio, c.real_income_total select a.pk_settle_country,
a.income_status,
a.pk_member,
a.expire_status,
a.purchase_status,
ba.abonus_ratio,
c.real_income_total
from ${settleTableName} a from ${settleTableName} a
inner join bd_awards ba inner join bd_awards ba
on a.pk_awards = ba.pk_id on a.pk_awards = ba.pk_id
@ -2106,7 +2168,13 @@
and ba.abonus_ratio > 0 and ba.abonus_ratio > 0
and a.pk_settle_country = 1 and a.pk_settle_country = 1
union union
select a.pk_settle_country, a.income_status, a.pk_member, 1 expire_status, a.purchase_status, ba.abonus_ratio, c.real_income_total select a.pk_settle_country,
a.income_status,
a.pk_member,
1 expire_status,
a.purchase_status,
ba.abonus_ratio,
c.real_income_total
from ${rangeTableName} a from ${rangeTableName} a
inner join bd_awards ba inner join bd_awards ba
on a.pk_benefit_awards = ba.pk_id on a.pk_benefit_awards = ba.pk_id

View File

@ -44,13 +44,16 @@ public class AcPickMemberLogServiceImpl extends ServiceImpl<AcPickMemberLogMappe
@Override @Override
public List<AcPickMemberLog> queryPickMemberLog(List<SaOrderExt> saOrderExtList) { public List<AcPickMemberLog> queryPickMemberLog(List<SaOrderExt> saOrderExtList) {
LambdaQueryWrapper<AcPickMemberLog> queryWrapper = new LambdaQueryWrapper<>(); List<AcPickMemberLog> retPickMemberLogList = new ArrayList<>();
Set<String> orderCodeSet = saOrderExtList.stream().distinct().map(SaOrderExt::getOrderCode).collect(Collectors.toSet());
queryWrapper.in(AcPickMemberLog::getPickOrder, orderCodeSet);
Set<String> orderKey = new HashSet<>(); Set<String> orderKey = new HashSet<>();
saOrderExtList.forEach(saOrderExt -> orderKey.add(saOrderExt.getOrderCode() + saOrderExt.getPkMember())); saOrderExtList.forEach(saOrderExt -> orderKey.add(saOrderExt.getOrderCode() + saOrderExt.getPkMember()));
List<AcPickMemberLog> retPickMemberLogList = new ArrayList<>();
Set<String> orderCodeSet = saOrderExtList.stream().distinct().map(SaOrderExt::getOrderCode).collect(Collectors.toSet());
LambdaQueryWrapper<AcPickMemberLog> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.in(AcPickMemberLog::getPickOrder, orderCodeSet);
List<AcPickMemberLog> acPickMemberLogList = baseMapper.selectList(queryWrapper); List<AcPickMemberLog> acPickMemberLogList = baseMapper.selectList(queryWrapper);
for (AcPickMemberLog acPickMemberLog : acPickMemberLogList) { for (AcPickMemberLog acPickMemberLog : acPickMemberLogList) {
if (!orderKey.contains(acPickMemberLog.getPickOrder() + acPickMemberLog.getPkMember())) { if (!orderKey.contains(acPickMemberLog.getPickOrder() + acPickMemberLog.getPkMember())) {
retPickMemberLogList.add(acPickMemberLog); retPickMemberLogList.add(acPickMemberLog);

View File

@ -242,7 +242,8 @@
st.is_maker_gift, st.is_maker_gift,
0 channel, 0 channel,
sb.pk_order pk_bonus_order, sb.pk_order pk_bonus_order,
bt.bonus_value pk_bonus_items,bw.wares_code,nvl(bet.maker_income,0) maker_income bt.bonus_value pk_bonus_items,
bw.wares_code
from sa_order so from sa_order so
inner join sa_order_items st inner join sa_order_items st
on so.pk_id = st.pk_order on so.pk_id = st.pk_order
@ -252,10 +253,6 @@
on bt.pk_id = sb.pk_bonus_items and bt.del_flag=0 on bt.pk_id = sb.pk_bonus_items and bt.del_flag=0
left join bd_wares bw left join bd_wares bw
on bw.pk_id=st.pk_wares and bw.del_flag=0 on bw.pk_id=st.pk_wares and bw.del_flag=0
left join bd_wares_extend bet
on bet.pk_wares=bw.pk_id and bet.del_flag=0
left join sa_cabin_card_detail sd
on sd.pk_order=so.pk_id and sd.del_flag=0
where so.order_status = 1 where so.order_status = 1
<if test="orderCode != null and orderCode != ''"> <if test="orderCode != null and orderCode != ''">
and so.order_code=#{orderCode} and so.order_code=#{orderCode}