Compare commits

..

5 Commits

11 changed files with 379 additions and 357 deletions

View File

@ -163,43 +163,43 @@ public abstract class BonusSettleHandle {
.pkRate(pkRate)
.incomeStatus(incomeStatus)
.directIncome(BigDecimal.ZERO)
// .expandIncome(BigDecimal.ZERO)
// .expandNoCapping(BigDecimal.ZERO)
// .expandCapping(BigDecimal.ZERO)
// .coachIncome(BigDecimal.ZERO)
// .shareIncome(BigDecimal.ZERO)
// .serviceIncome(BigDecimal.ZERO)
// .backPoints(BigDecimal.ZERO)
// .serviceSpend(BigDecimal.ZERO)
// .purRealSubtotal(BigDecimal.ZERO)
// .repurPushIncome(BigDecimal.ZERO)
// .repurRangeIncome(BigDecimal.ZERO)
// .repurExpandIncome(BigDecimal.ZERO)
// .repurRealSubtotal(BigDecimal.ZERO)
// .cloudDirectIncome(BigDecimal.ZERO)
// .cloudPurIncome(BigDecimal.ZERO)
// .cloudRepurIncome(BigDecimal.ZERO)
// .cloudRealSubtotal(BigDecimal.ZERO)
// .repurCoupon(BigDecimal.ZERO)
// .repurCouponShare(BigDecimal.ZERO)
// .repurCouponSubtotal(BigDecimal.ZERO)
.expandIncome(BigDecimal.ZERO)
.expandNoCapping(BigDecimal.ZERO)
.expandCapping(BigDecimal.ZERO)
.coachIncome(BigDecimal.ZERO)
.shareIncome(BigDecimal.ZERO)
.serviceIncome(BigDecimal.ZERO)
.backPoints(BigDecimal.ZERO)
.serviceSpend(BigDecimal.ZERO)
.purRealSubtotal(BigDecimal.ZERO)
.repurPushIncome(BigDecimal.ZERO)
.repurRangeIncome(BigDecimal.ZERO)
.repurExpandIncome(BigDecimal.ZERO)
.repurRealSubtotal(BigDecimal.ZERO)
.cloudDirectIncome(BigDecimal.ZERO)
.cloudPurIncome(BigDecimal.ZERO)
.cloudRepurIncome(BigDecimal.ZERO)
.cloudRealSubtotal(BigDecimal.ZERO)
.repurCoupon(BigDecimal.ZERO)
.repurCouponShare(BigDecimal.ZERO)
.repurCouponSubtotal(BigDecimal.ZERO)
.globalPoints(BigDecimal.ZERO)
// .carAwardPoints(BigDecimal.ZERO)
// .hiFunIncome(BigDecimal.ZERO)
// .haiFunIncome(BigDecimal.ZERO)
.carAwardPoints(BigDecimal.ZERO)
.hiFunIncome(BigDecimal.ZERO)
.haiFunIncome(BigDecimal.ZERO)
.storeIncome(BigDecimal.ZERO)
// .makerDirectIncome(BigDecimal.ZERO)
// .makerShareIncome(BigDecimal.ZERO)
// .makerRealSubtotal(BigDecimal.ZERO)
.makerDirectIncome(BigDecimal.ZERO)
.makerShareIncome(BigDecimal.ZERO)
.makerRealSubtotal(BigDecimal.ZERO)
.realIncomeTotal(BigDecimal.ZERO)
// .retailRangeIncome(BigDecimal.ZERO)
// .retailSameLevelIncome(BigDecimal.ZERO)
// .retailAreaIncome(BigDecimal.ZERO)
// .retailBenefitRangeIncome(BigDecimal.ZERO)
// .retailMonthRepurchaseIncome(BigDecimal.ZERO)
// .retailBenefitAvgIncome(BigDecimal.ZERO)
// .retailBenefitIncome(BigDecimal.ZERO)
// .retailRealSubtotal(BigDecimal.ZERO)
.retailRangeIncome(BigDecimal.ZERO)
.retailSameLevelIncome(BigDecimal.ZERO)
.retailAreaIncome(BigDecimal.ZERO)
.retailBenefitRangeIncome(BigDecimal.ZERO)
.retailMonthRepurchaseIncome(BigDecimal.ZERO)
.retailBenefitAvgIncome(BigDecimal.ZERO)
.retailBenefitIncome(BigDecimal.ZERO)
.retailRealSubtotal(BigDecimal.ZERO)
.build();
cuMemberBonus.setPkCreator(MagicNumberConstants.PK_ADMIN);
cuMemberBonus.setPkCountry(pkCountry);
@ -223,8 +223,8 @@ public abstract class BonusSettleHandle {
backRatio = bdBonusDeduct.getBackRatio();
platformRatio = bdBonusDeduct.getPlatformRatio();
}
// cuMemberBonus.setBackPoints(ComputeUtil.computeAdd(cuMemberBonus.getBackPoints(), ComputeUtil.computeBonusMultiply(pretaxIncome, backRatio)));
// cuMemberBonus.setServiceSpend(ComputeUtil.computeAdd(cuMemberBonus.getServiceSpend(), ComputeUtil.computeBonusMultiply(pretaxIncome, platformRatio)));
cuMemberBonus.setBackPoints(ComputeUtil.computeAdd(cuMemberBonus.getBackPoints(), ComputeUtil.computeBonusMultiply(pretaxIncome, backRatio)));
cuMemberBonus.setServiceSpend(ComputeUtil.computeAdd(cuMemberBonus.getServiceSpend(), ComputeUtil.computeBonusMultiply(pretaxIncome, platformRatio)));
}
/**
@ -233,7 +233,7 @@ public abstract class BonusSettleHandle {
protected void setRetailTotal(BdBonusDeduct bdBonusDeduct, CuMemberBonus cuMemberBonus, Object bonusDetail) {
setBonusDeduct(bdBonusDeduct, cuMemberBonus, bonusDetail);
BigDecimal realIncome = ReflectUtils.invokeGetter(bonusDetail, BonusFieldConstants.REAL_INCOME);
// cuMemberBonus.setRetailRealSubtotal(ComputeUtil.computeAdd(cuMemberBonus.getRetailRealSubtotal(), realIncome));
cuMemberBonus.setRetailRealSubtotal(ComputeUtil.computeAdd(cuMemberBonus.getRetailRealSubtotal(), realIncome));
cuMemberBonus.setRealIncomeTotal(ComputeUtil.computeAdd(cuMemberBonus.getRealIncomeTotal(), realIncome));
}

View File

@ -366,9 +366,9 @@ public class BonusSettleRangeHandle extends BonusSettleHandle {
// TODO 处理升三阶段点位
if (CollectionUtil.isNotEmpty(stageList)) {
List<Long> stageMemberList = stageList.stream().map(CuMemberRetailDetail::getPkMember).collect(Collectors.toList());
// 查询血缘会员明细数据
// 查询血缘会员明细数据
iCuMemberRetailDetailService.listMemberRetailDetail(rangeDetailTableName, memberRangeExtMap, EBonusStage.THREE, stageMemberList);
// 阶段收益
// 阶段收益
this.calculateStageIncomeTwoThree(cuMemberBonusStageList, cuMemberBonusMap, bonusConfigDTO, period,
memberRangeExtMap, settleStartDate, rangeTableName, rangeDetailTableName, EBonusStage.THREE, stageList);
}
@ -1003,6 +1003,9 @@ public class BonusSettleRangeHandle extends BonusSettleHandle {
.pointType(EBonusStageType.NORMAL.getValue())
.pointGift(0)
.creationTime(settleDate)
.thirdBonus1(0)
.thirdBonus2(0)
.thirdBonus3(0)
.updateBool(0)
.build();
detailList.put(newRetailDetail.getChildNode(), newRetailDetail);
@ -1028,7 +1031,7 @@ public class BonusSettleRangeHandle extends BonusSettleHandle {
// 订单会员
CuMemberRetailRangeExt sourceMember = memberRangeExtMap.get(memberRetailDetail.getPkMember());
if (null == sourceMember) {
log.error("阶段收益处理失败,{}会员不存在. pkMember: {}", eBonusStage.getLabel(), memberRetailDetail.getPkMember());
log.error("阶段收益处理失败,{} 会员不存在. pkMember: {}", eBonusStage.getLabel(), memberRetailDetail.getPkMember());
return returnRetailDetailList;
}
@ -1135,7 +1138,7 @@ public class BonusSettleRangeHandle extends BonusSettleHandle {
targetMember.getThreeDetailMap().put(threeRetailDetail.getChildNode(), threeRetailDetail);
returnRetailDetailList.add(threeRetailDetail);
} else if (EBonusStage.THREE.getValue() == bonusStageData.getStage()) {
// TODO 三阶段需要赠送点位
// TODO 三阶段填充满判断是否需要赠送点位
}
}

View File

@ -308,6 +308,9 @@ public class CuMemberBonusStageServiceImpl extends ServiceImpl<CuMemberBonusStag
.pointType(targetRetailDetail.getPointType())
.pointGift(targetRetailDetail.getPointGift())
.creationTime(settleDate)
.thirdBonus1(0)
.thirdBonus2(0)
.thirdBonus3(0)
.updateBool(0)
.build());
bonusStageDataList.add(bonusStageData);
@ -330,6 +333,9 @@ public class CuMemberBonusStageServiceImpl extends ServiceImpl<CuMemberBonusStag
.pointType(targetRetailDetail.getPointType())
.pointGift(targetRetailDetail.getPointGift())
.creationTime(settleDate)
.thirdBonus1(0)
.thirdBonus2(0)
.thirdBonus3(0)
.updateBool(0)
.build());
bonusStageDataList.add(bonusStageData);
@ -339,12 +345,94 @@ public class CuMemberBonusStageServiceImpl extends ServiceImpl<CuMemberBonusStag
break;
}
} else {
// TODO 三阶段发放特殊处理
// TODO 三阶段填充满判断是否需要赠送点位
// 三阶段发放特殊处理
switch (point) {
case BonusConstants.POINT_11:
case BonusConstants.POINT_12:
// 一阶段填满就给奖金
if (targetRetailDetail.getThirdBonus1() < 1) {
if (null != ReflectUtil.getFieldValue(targetRetailDetail, BonusConstants.POINT_MEMBER_FIELD_NAME + BonusConstants.POINT_11)
&& null != ReflectUtil.getFieldValue(targetRetailDetail, BonusConstants.POINT_MEMBER_FIELD_NAME + BonusConstants.POINT_12)
) {
// 第一层满需要发放奖金
BonusStageData bonusStageData = BonusStageData.builder()
.bonusIncome(BonusConstants.THREE_BONUS_1)
.targetPkMember(targetRetailDetail.getPkMember())
.targetChildNode(targetRetailDetail.getChildNode())
.stage(eBonusStage.getValue())
.stageNum(2)
.build();
bonusStageDataList.add(bonusStageData);
// 第一层发放过1次
targetRetailDetail.setThirdBonus1(1);
}
}
break;
case BonusConstants.POINT_21:
case BonusConstants.POINT_22:
case BonusConstants.POINT_23:
case BonusConstants.POINT_24:
// 二阶段填满就给奖金
if (targetRetailDetail.getThirdBonus2() < 1) {
if (null != ReflectUtil.getFieldValue(targetRetailDetail, BonusConstants.POINT_MEMBER_FIELD_NAME + BonusConstants.POINT_21)
&& null != ReflectUtil.getFieldValue(targetRetailDetail, BonusConstants.POINT_MEMBER_FIELD_NAME + BonusConstants.POINT_22)
&& null != ReflectUtil.getFieldValue(targetRetailDetail, BonusConstants.POINT_MEMBER_FIELD_NAME + BonusConstants.POINT_23)
&& null != ReflectUtil.getFieldValue(targetRetailDetail, BonusConstants.POINT_MEMBER_FIELD_NAME + BonusConstants.POINT_24)
) {
// 第二层满需要发放奖金
BonusStageData bonusStageData = BonusStageData.builder()
.bonusIncome(BonusConstants.THREE_BONUS_2)
.targetPkMember(targetRetailDetail.getPkMember())
.targetChildNode(targetRetailDetail.getChildNode())
.stage(eBonusStage.getValue())
.stageNum(4)
.build();
bonusStageDataList.add(bonusStageData);
// 第二层发放过1次
targetRetailDetail.setThirdBonus2(1);
}
}
break;
case BonusConstants.POINT_31:
case BonusConstants.POINT_32:
case BonusConstants.POINT_33:
case BonusConstants.POINT_34:
case BonusConstants.POINT_35:
case BonusConstants.POINT_36:
case BonusConstants.POINT_37:
case BonusConstants.POINT_38:
// 三阶段填每个点位都给奖金8个全满给的多
if (targetRetailDetail.getThirdBonus3() < 8) {
int tmpInt = 0;
for (String suffix : BonusConstants.THREE_FIELD_LIST) {
if (null != ReflectUtil.getFieldValue(targetRetailDetail, BonusConstants.POINT_MEMBER_FIELD_NAME + suffix)) {
tmpInt += 1;
}
}
if (tmpInt - targetRetailDetail.getThirdBonus3() == 1) {
// 默认第三层前7个点位奖金
BigDecimal bonus = BonusConstants.THREE_BONUS_3;
if (tmpInt == 8) {
// 第三层第8个点位
bonus = BonusConstants.THREE_BONUS_38;
// 三层全满
targetRetailDetail.setStageStatus(EBonusStageStatus.YES.getValue());
targetRetailDetail.setStageDate(settleDate);
// TODO 三阶段填充满判断是否需要赠送点位
}
BonusStageData bonusStageData = BonusStageData.builder()
.bonusIncome(bonus)
.targetPkMember(targetRetailDetail.getPkMember())
.targetChildNode(targetRetailDetail.getChildNode())
.stage(eBonusStage.getValue())
.stageNum(tmpInt)
.build();
bonusStageDataList.add(bonusStageData);
targetRetailDetail.setThirdBonus3(tmpInt);
}
}
break;
}
}
@ -550,8 +638,8 @@ public class CuMemberBonusStageServiceImpl extends ServiceImpl<CuMemberBonusStag
if (null != secondMemberRetail) {
CuMemberRetailDetail memberDetail = this.getRetailDetailMap(secondMemberRetail, eBonusStage).get(downSecondPoint);
if (null != memberDetail) {
newRetailDetail.setPointMemberSecond(newParentRetailDetail.getPkMember());
newRetailDetail.setPointSecond(newParentRetailDetail.getChildNode());
newRetailDetail.setPointMemberSecond(memberDetail.getPkMember());
newRetailDetail.setPointSecond(memberDetail.getChildNode());
this.fillDownTargetRetailDetail(memberDetail, newRetailDetail, newNode, 2, settleDate, eBonusStage,
bonusStageDataList);
}
@ -562,8 +650,8 @@ public class CuMemberBonusStageServiceImpl extends ServiceImpl<CuMemberBonusStag
if (null != firstMemberRetail) {
CuMemberRetailDetail memberDetail = this.getRetailDetailMap(firstMemberRetail, eBonusStage).get(downFirstPoint);
if (null != memberDetail) {
newRetailDetail.setPointMemberFirst(newParentRetailDetail.getPkMember());
newRetailDetail.setPointFirst(newParentRetailDetail.getChildNode());
newRetailDetail.setPointMemberFirst(memberDetail.getPkMember());
newRetailDetail.setPointFirst(memberDetail.getChildNode());
this.fillDownTargetRetailDetail(memberDetail, newRetailDetail, newNode, 1, settleDate, eBonusStage,
bonusStageDataList);
}

View File

@ -38,293 +38,28 @@ public class BonusTotalVO implements Serializable {
*/
private Integer pkCountry;
/**
* 新零售直推收益
* 注册直推收益-众康
*/
@Excel(name = "直推收益", scale = 2)
private BigDecimal retailRangeIncome;
private BigDecimal directIncome;
/**
* 新零售平级收益
* 阶段收益-众康
*/
@Excel(name = "平级收益", scale = 2)
private BigDecimal retailSameLevelIncome;
@Excel(name = "阶段收益", scale = 2)
private BigDecimal storeIncome;
/**
* 新零售区域分红
* 复购见点收益-众康
*/
@Excel(name = "区域分红", scale = 2)
private BigDecimal retailAreaIncome;
/**
* 新零售福利级差收益
*/
@Excel(name = "月度福利级差收益", scale = 2)
private BigDecimal retailBenefitRangeIncome;
/**
* 新零售复购级差收益
*/
@Excel(name = "月度复购级差收益", scale = 2)
private BigDecimal retailMonthRepurchaseIncome;
/**
* 培育津贴
*/
@Excel(name = "培育津贴", scale = 2)
private BigDecimal coachIncome;
/**
* 福利分红平均收益
*/
@Excel(name = "福利分红平均收益", scale = 2)
private BigDecimal retailBenefitAvgIncome;
/**
* 福利分红加权收益
*/
@Excel(name = "福利分红加权收益", scale = 2)
private BigDecimal retailBenefitIncome;
/**
* 复购级差收益
*/
@Excel(name = "复购级差收益", scale = 2)
private BigDecimal repurRangeIncome;
/**
* 重消收益
*/
@Excel(name = "重消收益", scale = 2)
private BigDecimal backPoints;
@Excel(name = "见点收益", scale = 2)
private BigDecimal globalPoints;
/**
* 实发收益总计
*/
@Excel(name = "实发收益总计", scale = 2)
private BigDecimal realIncomeTotal;
/**
* 直推收益
*/
private BigDecimal directIncomeOri;
/**
* 拓展收益
*/
private BigDecimal expandIncomeOri;
/**
* 拓展无封 (拓展收益按等级正常比例结算 拓展收益按等级正常比例结算 无封顶)
*/
private BigDecimal expandNoCappingOri;
/**
* 拓展封顶 (拓展收益按等级正常比例结算不按4-N结算根据配置的封顶值限制最大收益)
*/
private BigDecimal expandCappingOri;
/**
* 辅导收益
*/
private BigDecimal coachIncomeOri;
/**
* 分红收益
*/
private BigDecimal shareIncomeOri;
/**
* 报单收益
*/
private BigDecimal serviceIncomeOri;
/**
* 云代直推收益
*/
private BigDecimal cloudDirectIncomeOri;
/**
* 云代首购收益
*/
private BigDecimal cloudPurIncomeOri;
/**
* 云代复购收益
*/
private BigDecimal cloudRepurIncomeOri;
private BigDecimal repurPushIncomeOri;
/**
* 复购拓展收益
*/
private BigDecimal repurExpandIncomeOri;
/**
* 复购券
*/
private BigDecimal repurCouponOri;
/**
* 复购券均分收益
*/
private BigDecimal repurCouponShareOri;
/**
* 平台服务费
*/
private BigDecimal serviceSpendOri;
/**
* 环球积分
*/
private BigDecimal globalPointsOri;
/**
* 车奖积分
*/
private BigDecimal carAwardPointsOri;
/**
* 店铺收益
*/
private BigDecimal storeIncomeOri;
/**
* 嗨粉推荐收益
*/
private BigDecimal hiFunIncomeOri;
/**
* 首购实发小计
*/
private BigDecimal purRealSubtotalOri;
/**
* 云代实发小计
*/
private BigDecimal cloudRealSubtotalOri;
/**
* 复购实发小计
*/
private BigDecimal repurRealSubtotalOri;
/**
* 复购券小计
*/
private BigDecimal repurCouponSubtotalOri;
/**
* 直推收益
*/
private BigDecimal directIncome;
/**
* 拓展收益
*/
private BigDecimal expandIncome;
/**
* 拓展无封 (拓展收益按等级正常比例结算 拓展收益按等级正常比例结算 无封顶)
*/
private BigDecimal expandNoCapping;
/**
* 拓展封顶 (拓展收益按等级正常比例结算不按4-N结算根据配置的封顶值限制最大收益)
*/
private BigDecimal expandCapping;
/**
* 分红收益
*/
private BigDecimal shareIncome;
/**
* 报单收益
*/
private BigDecimal serviceIncome;
/**
* 云代直推收益
*/
private BigDecimal cloudDirectIncome;
/**
* 云代首购收益
*/
private BigDecimal cloudPurIncome;
/**
* 云代复购收益
*/
private BigDecimal cloudRepurIncome;
private BigDecimal repurPushIncome;
/**
* 复购拓展收益
*/
private BigDecimal repurExpandIncome;
/**
* 复购券
*/
private BigDecimal repurCoupon;
/**
* 复购券均分收益
*/
private BigDecimal repurCouponShare;
/**
* 平台服务费
*/
private BigDecimal serviceSpend;
/**
* 环球积分
*/
private BigDecimal globalPoints;
/**
* 车奖积分
*/
private BigDecimal carAwardPoints;
/**
* 店铺收益
*/
private BigDecimal storeIncome;
/**
* 嗨粉推荐收益
*/
private BigDecimal hiFunIncome;
/**
* 首购实发小计
*/
private BigDecimal purRealSubtotal;
/**
* 云代实发小计
*/
private BigDecimal cloudRealSubtotal;
/**
* 复购实发小计
*/
private BigDecimal repurRealSubtotal;
/**
* 复购券小计
*/
private BigDecimal repurCouponSubtotal;
private BigDecimal realIncomeTotalOri;
}

View File

@ -52,8 +52,11 @@ public class BonusConstants {
public static final String POINT_37 = "37";
public static final String POINT_38 = "38";
// 全部字段
public static final List<String> FIELD_LIST = Arrays.asList(POINT_11, POINT_12, POINT_21, POINT_22, POINT_23, POINT_24,
POINT_31, POINT_32, POINT_33, POINT_34, POINT_35, POINT_36, POINT_37, POINT_38);
// 第三层字段
public static final List<String> THREE_FIELD_LIST = Arrays.asList(POINT_31, POINT_32, POINT_33, POINT_34, POINT_35, POINT_36, POINT_37, POINT_38);
// 会员ID字段
public static final String POINT_MEMBER_FIELD_NAME = "pointMember";

View File

@ -183,7 +183,7 @@
left join cu_member cm
on cm.pk_id = x.pk_member
) b
on (a.pk_member = b.pk_member and a.child_node = b.child_node)
on (a.pk_member = b.pk_member and a.child_node = b.child_node and a.stage = b.stage)
when not matched then
insert (pk_member,
child_node,
@ -280,7 +280,6 @@
when matched then
update set
a.pk_parent = b.pk_parent,
a.stage = b.stage,
a.stage_status = b.stage_status,
a.stage_date = b.stage_date,
a.point_11 = b.point_11,
@ -385,11 +384,14 @@
#{item.creationTime, jdbcType=TIMESTAMP} creation_time,
#{item.pointFirst, jdbcType=NUMERIC} point_first, #{item.pointMemberFirst, jdbcType=NUMERIC} point_member_first,
#{item.pointSecond, jdbcType=NUMERIC} point_second, #{item.pointMemberSecond, jdbcType=NUMERIC} point_member_second,
#{item.pointThird, jdbcType=NUMERIC} point_third, #{item.pointMemberThird, jdbcType=NUMERIC} point_member_third
#{item.pointThird, jdbcType=NUMERIC} point_third, #{item.pointMemberThird, jdbcType=NUMERIC} point_member_third,
#{item.thirdBonus1, jdbcType=NUMERIC} third_bonus_1,
#{item.thirdBonus2, jdbcType=NUMERIC} third_bonus_2,
#{item.thirdBonus3, jdbcType=NUMERIC} third_bonus_3
from dual
</foreach>
) b
on (a.pk_member = b.pk_member and a.child_node = b.child_node)
on (a.pk_member = b.pk_member and a.child_node = b.child_node and a.stage = b.stage)
when not matched then
insert (pk_member, child_node, pk_parent,
stage, stage_status, stage_date,
@ -411,7 +413,8 @@
creation_time,
point_first, point_member_first,
point_second, point_member_second,
point_third, point_member_third)
point_third, point_member_third,
third_bonus_1, third_bonus_2, third_bonus_3)
values (b.pk_member, b.child_node, b.pk_parent,
b.stage, b.stage_status, b.stage_date,
b.point_11, b.point_12,
@ -432,10 +435,11 @@
b.creation_time,
b.point_first, b.point_member_first,
b.point_second, b.point_member_second,
b.point_third, b.point_member_third)
b.point_third, b.point_member_third,
b.third_bonus_1, b.third_bonus_2, b.third_bonus_3)
when matched then
update set
a.stage = b.stage, a.stage_status = b.stage_status, a.stage_date = b.stage_date,
a.stage_status = b.stage_status, a.stage_date = b.stage_date,
a.point_11 = b.point_11, a.point_12 = b.point_12,
a.point_21 = b.point_21, a.point_22 = b.point_22,
a.point_23 = b.point_23, a.point_24 = b.point_24,
@ -454,7 +458,8 @@
a.creation_time = b.creation_time,
a.point_first = b.point_first, a.point_member_first = b.point_member_first,
a.point_second = b.point_second, a.point_member_second = b.point_member_second,
a.point_third = b.point_third, a.point_member_third = b.point_member_third
a.point_third = b.point_third, a.point_member_third = b.point_member_third,
a.third_bonus_1 = b.third_bonus_1, a.third_bonus_2 = b.third_bonus_2, a.third_bonus_3 = b.third_bonus_3
</update>
<!-- 当前网体更新极差秒接表 -->

View File

@ -335,9 +335,9 @@
point_second NUMBER(8),
point_member_third NUMBER(20),
point_third NUMBER(8),
third_bonus_1 NUMBER(8),
third_bonus_2 NUMBER(8),
third_bonus_3 NUMBER(8)
third_bonus_1 NUMBER(8) default 0 not null,
third_bonus_2 NUMBER(8) default 0 not null,
third_bonus_3 NUMBER(8) default 0 not null
)
</update>

View File

@ -375,6 +375,7 @@
nvl( sum( cb.direct_income ), 0 ) direct_income,
nvl( sum( cb.store_income ), 0 ) store_income,
nvl( sum( cb.global_points ), 0 ) global_points,
sum(cb.real_income_total) real_income_total,
bc.out_exchange_rate
from cu_member_bonus cb
inner join cu_member cm
@ -446,26 +447,10 @@
<select id="queryBonusTotalVoByConditionForServer" resultMap="CuMemberBonus">
select cb.period,cp.settle_date,
nvl(min(bc.out_exchange_rate),1) out_exchange_rate,sum(cb.direct_income) direct_income,
sum(cb.expand_income) expand_income, sum(cb.expand_no_capping) expand_no_capping,
sum(cb.expand_capping) expand_capping,sum(cb.coach_income) coach_income,
sum(cb.share_income) share_income, sum(cb.service_spend) service_spend,
sum(cb.service_income) service_income, sum(cb.back_points) back_points,
sum(cb.pur_real_subtotal) pur_real_subtotal,
sum(cb.repur_push_income) repur_push_income,
sum(cb.repur_expand_income) repur_expand_income, sum(cb.repur_real_subtotal) repur_real_subtotal,
sum(cb.repur_coupon) repur_coupon, sum(repur_coupon_share) repur_coupon_share,
sum(cb.repur_coupon_subtotal) repur_coupon_subtotal,
sum(cb.global_points) global_points, sum(cb.car_award_points) car_award_points,
sum(cb.repur_range_income) repur_range_income,
sum(cb.retail_range_income) retail_range_income,
sum(cb.retail_same_level_income) retail_same_level_income,
sum(cb.retail_area_income) retail_area_income,
sum(cb.retail_benefit_range_income) retail_benefit_range_income,
sum(cb.retail_month_repurchase_income) retail_month_repurchase_income,
sum(cb.retail_benefit_avg_income) retail_benefit_avg_income,
sum(cb.retail_benefit_income) retail_benefit_income,
sum(cb.retail_real_subtotal) retail_real_subtotal,
nvl(min(bc.out_exchange_rate),1) out_exchange_rate,
sum(cb.direct_income) direct_income,
sum(cb.global_points) global_points,
sum(cb.STORE_INCOME) STORE_INCOME,
sum(cb.real_income_total) real_income_total
from cu_member_bonus cb
inner join cu_member_settle_period cp

View File

@ -64,7 +64,7 @@ public class ICumemberRetailDetailServiceImpl extends ServiceImpl<CuMemberRetail
// 构建node
List<Map<String, Object>> nodeList = new ArrayList<>();
nodeList.add(makeNode(EMemberChildNodeType.ROOT.getId(), EMemberChildNodeType.ROOT.getParentId(), EMemberChildNodeType.ROOT.getLabel(), null,cuMemberRetailDetail.getPkMember(), memberMap));
nodeList.add(makeNode(EMemberChildNodeType.ROOT.getId(), EMemberChildNodeType.ROOT.getParentId(), EMemberChildNodeType.ROOT.getLabel(), cuMemberRetailDetail.getChildNode(),cuMemberRetailDetail.getPkMember(), memberMap));
nodeList.add(makeNode(EMemberChildNodeType.NODE1.getId(), EMemberChildNodeType.NODE1.getParentId(), EMemberChildNodeType.NODE1.getLabel(), cuMemberRetailDetail.getPoint11(), cuMemberRetailDetail.getPointMember11(), memberMap));
nodeList.add(makeNode(EMemberChildNodeType.NODE2.getId(), EMemberChildNodeType.NODE2.getParentId(), EMemberChildNodeType.NODE2.getLabel(), cuMemberRetailDetail.getPoint12(),cuMemberRetailDetail.getPointMember12(), memberMap));

View File

@ -268,9 +268,10 @@ public class MemberStructureController extends BaseController {
log.error("当前表名不存在{}",settleTableName);
return AjaxResult.error("当前日结信息表不存在",settleTableName);
}
startPage();
// 查询当前会员所有子点位信息
List<CuMemberThreeFrameworkVO> cuMemberThreeFrameworkVOS = iCumemberRetailDetailService.getCuMemberRetailDetailList(settleTableName,memberCode,stage,stageStatus);
return AjaxResult.success(cuMemberThreeFrameworkVOS);
return AjaxResult.success(getDataTable(cuMemberThreeFrameworkVOS));
}
/**

View File

@ -56,10 +56,124 @@ public class CuMemberBonus extends BaseEntity {
private BigDecimal directIncome;
/**
* 阶段收益-众康
* 拓展收益
*/
@TableField("STORE_INCOME")
private BigDecimal storeIncome;
@TableField("EXPAND_INCOME")
private BigDecimal expandIncome;
/**
* 拓展无封 (拓展收益按等级正常比例结算 拓展收益按等级正常比例结算 无封顶)
*/
@TableField("EXPAND_NO_CAPPING")
private BigDecimal expandNoCapping;
/**
* 拓展封顶 (拓展收益按等级正常比例结算不按4-N结算根据配置的封顶值限制最大收益)
*/
@TableField("EXPAND_CAPPING")
private BigDecimal expandCapping;
/**
* 培育津贴
*/
@TableField("COACH_INCOME")
private BigDecimal coachIncome;
/**
* 分红收益
*/
@TableField("SHARE_INCOME")
private BigDecimal shareIncome;
/**
* 报单收益
*/
@TableField("SERVICE_INCOME")
private BigDecimal serviceIncome;
/**
* 商城重消
*/
@TableField("BACK_POINTS")
private BigDecimal backPoints;
/**
* 平台服务费
*/
@TableField("SERVICE_SPEND")
private BigDecimal serviceSpend;
/**
* 首购实发小计
*/
@TableField("PUR_REAL_SUBTOTAL")
private BigDecimal purRealSubtotal;
/**
* 复购推荐收益 修改为互助收益 cu_member_bonus_push
*/
@TableField("REPUR_PUSH_INCOME")
private BigDecimal repurPushIncome;
/**
* 复购级差收益
*/
@TableField("REPUR_RANGE_INCOME")
private BigDecimal repurRangeIncome;
/**
* 复购拓展收益
*/
@TableField("REPUR_EXPAND_INCOME")
private BigDecimal repurExpandIncome;
/**
* 复购实发小计
*/
@TableField("REPUR_REAL_SUBTOTAL")
private BigDecimal repurRealSubtotal;
/**
* 云代直推收益 修改为幸运收益 cu_member_bonus_coach
*/
@TableField("CLOUD_DIRECT_INCOME")
private BigDecimal cloudDirectIncome;
/**
* 云代首购收益 修改为极差收益 cu_member_bonus_range
*/
@TableField("CLOUD_PUR_INCOME")
private BigDecimal cloudPurIncome;
/**
* 云代复购收益 修改为平级收益 cu_member_bonus_range
*/
@TableField("CLOUD_REPUR_INCOME")
private BigDecimal cloudRepurIncome;
/**
* 云代实发小计 修改为 极差小计
*/
@TableField("CLOUD_REAL_SUBTOTAL")
private BigDecimal cloudRealSubtotal;
/**
* 复购券
*/
@TableField("REPUR_COUPON")
private BigDecimal repurCoupon;
/**
* 复购券均分收益
*/
@TableField("REPUR_COUPON_SHARE")
private BigDecimal repurCouponShare;
/**
* 复购券小计
*/
@TableField("REPUR_COUPON_SUBTOTAL")
private BigDecimal repurCouponSubtotal;
/**
* 复购见点收益-众康
@ -67,7 +181,95 @@ public class CuMemberBonus extends BaseEntity {
@TableField("GLOBAL_POINTS")
private BigDecimal globalPoints;
/**
* 车奖积分
*/
@TableField("CAR_AWARD_POINTS")
private BigDecimal carAwardPoints;
/**
* 阶段收益-众康
*/
@TableField("STORE_INCOME")
private BigDecimal storeIncome;
/**
* 嗨粉推荐收益
*/
@TableField("HI_FUN_INCOME")
private BigDecimal hiFunIncome;
/**
* 海粉推荐收益
*/
@TableField("HAI_FUN_INCOME")
private BigDecimal haiFunIncome;
/**
* 创客空间直推收益
*/
@TableField("MAKER_DIRECT_INCOME")
private BigDecimal makerDirectIncome;
/**
* 创客共享收益
*/
@TableField("MAKER_SHARE_INCOME")
private BigDecimal makerShareIncome;
/**
* 创客空间收益小计
*/
@TableField("MAKER_REAL_SUBTOTAL")
private BigDecimal makerRealSubtotal;
/**
* 新零售直推收益
*/
@TableField("RETAIL_RANGE_INCOME")
private BigDecimal retailRangeIncome;
/**
* 新零售平级收益
*/
@TableField("RETAIL_SAME_LEVEL_INCOME")
private BigDecimal retailSameLevelIncome;
/**
* 新零售区域分红
*/
@TableField("RETAIL_AREA_INCOME")
private BigDecimal retailAreaIncome;
/**
* 新零售福利级差收益
*/
@TableField("RETAIL_BENEFIT_RANGE_INCOME")
private BigDecimal retailBenefitRangeIncome;
/**
* 新零售复购级差收益
*/
@TableField("RETAIL_MONTH_REPURCHASE_INCOME")
private BigDecimal retailMonthRepurchaseIncome;
/**
* 福利分红平均收益
*/
@TableField("RETAIL_BENEFIT_AVG_INCOME")
private BigDecimal retailBenefitAvgIncome;
/**
* 福利分红加权收益
*/
@TableField("RETAIL_BENEFIT_INCOME")
private BigDecimal retailBenefitIncome;
/**
* 新零售收益小计
*/
@TableField("RETAIL_REAL_SUBTOTAL")
private BigDecimal retailRealSubtotal;
/**
* 实发收益总计