## 延缓收益发放添加会员收益状态判断;

This commit is contained in:
cabbage 2025-04-23 09:56:50 +08:00
parent 68dd3cca99
commit c906010ebf
6 changed files with 65 additions and 70 deletions

View File

@ -1372,31 +1372,19 @@ public class BonusSettleFirstPurchaseHandle extends BonusSettleHandle {
// 获取拓展收益奖项 // 获取拓展收益奖项
Integer pkBonusItems = getPkBonusItems(bonusConfigDTO, cuMemberBonusDelayAddDetail.getPkCountry(), EBonusItems.EXPANSION_INCOME.getValue()); Integer pkBonusItems = getPkBonusItems(bonusConfigDTO, cuMemberBonusDelayAddDetail.getPkCountry(), EBonusItems.EXPANSION_INCOME.getValue());
BdGrade bdGrade = gradeMap.get(cuMemberSettleExt.getPkGrade());
// 创建一条拓展收益明细 // 创建一条拓展收益明细
CuMemberBonusExpand cuMemberBonusExpand = CuMemberBonusExpand.builder() CuMemberBonusExpand cuMemberBonusExpand = this.getCuMemberBonusExpandDelay(cuMemberSettleExt, cuMemberBonus, bdGrade.getExpandRatio(),
.pkBonus(pkMember) pkBonusItems, bdGrade);
.pkBonusItems(pkBonusItems) cuMemberBonusExpand.setCalType(null != cuMemberBonusDelayAddDetail.getFirCalType() ? cuMemberBonusDelayAddDetail.getFirCalType() : cuMemberBonusDelayAddDetail.getRepCalType());
.incomeStatus(EBonusIncomeStatus.NORMAL.getValue()) cuMemberBonusExpand.setCalValue(null != cuMemberBonusDelayAddDetail.getFirCalValue() ? cuMemberBonusDelayAddDetail.getFirCalValue() : cuMemberBonusDelayAddDetail.getRepCalValue());
.pkOrder(0L) cuMemberBonusExpand.setPretaxIncome(pretaxIncome);
.calType(null != cuMemberBonusDelayAddDetail.getFirCalType() ? cuMemberBonusDelayAddDetail.getFirCalType() : cuMemberBonusDelayAddDetail.getRepCalType()) cuMemberBonusExpand.setExpandNoCapping(pretaxIncome);
.calValue(null != cuMemberBonusDelayAddDetail.getFirCalValue() ? cuMemberBonusDelayAddDetail.getFirCalValue() : cuMemberBonusDelayAddDetail.getRepCalValue()) cuMemberBonusExpand.setExpandCapping(cuMemberBonusDelayAddDetail.getExpandCapping());
.calAchieve(BigDecimal.ZERO) cuMemberBonusExpand.setExpandNormalHalf(ComputeUtil.computeMultiplyHalf(cuMemberBonusDelayAddDetail.getExpandCapping()));
.pretaxIncome(pretaxIncome) cuMemberBonusExpand.setExpandNormalReal(ComputeUtil.computeMultiplyHalf(pretaxIncome));
.expandNoCapping(pretaxIncome) cuMemberBonusExpand.setRemark(String.format(BonusMsgConstants.BONUS_EXPAND_DELAY, cuMemberSettleExt.getMemberCode() + cuMemberSettleExt.getMemberName()));
.expandCapping(cuMemberBonusDelayAddDetail.getExpandCapping())
.expandNormalHalf(ComputeUtil.computeMultiplyHalf(cuMemberBonusDelayAddDetail.getExpandCapping()))
.expandNormalReal(ComputeUtil.computeMultiplyHalf(pretaxIncome))
.remark(String.format(BonusMsgConstants.BONUS_EXPAND_DELAY, cuMemberSettleExt.getMemberCode() + cuMemberSettleExt.getMemberName()))
.currentTouch(0)
.expandTouch(0)
.addTouch(BigDecimal.ZERO)
.incomeRatio(BigDecimal.ZERO)
.incomeDialRatio(BigDecimal.ZERO)
.orderDialRatio(BigDecimal.ZERO)
.build();
cuMemberBonusExpand.setPkCreator(cuMemberBonusDelayAddDetail.getPkCreator());
cuMemberBonusExpand.setPkCountry(cuMemberBonusDelayAddDetail.getPkCountry());
cuMemberBonusExpand.setPkModified(pkMember);
// 处理扣项计算最终收益 // 处理扣项计算最终收益
BdBonusDeduct bdBonusDeduct = setDeplyBonusDetailDeduct(bonusConfigDTO, cuMemberBonusExpand); BdBonusDeduct bdBonusDeduct = setDeplyBonusDetailDeduct(bonusConfigDTO, cuMemberBonusExpand);
// 处理实发小计实发收益总计 // 处理实发小计实发收益总计
@ -1509,7 +1497,6 @@ public class BonusSettleFirstPurchaseHandle extends BonusSettleHandle {
// 结算会员信息 // 结算会员信息
getMemberSettle(cuMemberSettleExtMap, cuMemberSettleExt); getMemberSettle(cuMemberSettleExtMap, cuMemberSettleExt);
// TODO new 生成一条拓展收益明细并且添加收益奖金
// 追加会员奖金收益 // 追加会员奖金收益
CuMemberBonus cuMemberBonus = this.getCuMemberBonus(period, cuMemberBonusMap, pkMember, CuMemberBonus cuMemberBonus = this.getCuMemberBonus(period, cuMemberBonusMap, pkMember,
cuMemberSettleExt.getIncomeStatus(), cuMemberSettleExt.getPkSettleCountry(), cuMemberSettleExt.getPkRate()); cuMemberSettleExt.getIncomeStatus(), cuMemberSettleExt.getPkSettleCountry(), cuMemberSettleExt.getPkRate());
@ -1520,30 +1507,14 @@ public class BonusSettleFirstPurchaseHandle extends BonusSettleHandle {
// 获取拓展收益奖项 // 获取拓展收益奖项
Integer pkBonusItems = getPkBonusItems(bonusConfigDTO, cuMemberSettleExt.getPkSettleCountry(), EBonusItems.EXPANSION_INCOME.getValue()); Integer pkBonusItems = getPkBonusItems(bonusConfigDTO, cuMemberSettleExt.getPkSettleCountry(), EBonusItems.EXPANSION_INCOME.getValue());
// 创建一条拓展收益明细 // 创建一条拓展收益明细
CuMemberBonusExpand cuMemberBonusExpand = CuMemberBonusExpand.builder() CuMemberBonusExpand cuMemberBonusExpand = this.getCuMemberBonusExpandDelay(cuMemberSettleExt, cuMemberBonus, bdGrade.getExpandRatio(),
.pkBonus(pkMember) pkBonusItems, bdGrade);
.pkBonusItems(pkBonusItems) cuMemberBonusExpand.setPretaxIncome(pretaxIncome);
.incomeStatus(EBonusIncomeStatus.NORMAL.getValue()) cuMemberBonusExpand.setExpandNoCapping(pretaxIncome);
.pkOrder(0L) cuMemberBonusExpand.setExpandCapping(expandCapping);
.calType(ECalType.RATIO.getValue()) cuMemberBonusExpand.setExpandNormalHalf(ComputeUtil.computeMultiplyHalf(expandCapping));
.calValue(bdGrade.getExpandRatio()) cuMemberBonusExpand.setExpandNormalReal(ComputeUtil.computeMultiplyHalf(pretaxIncome));
.calAchieve(BigDecimal.ZERO) cuMemberBonusExpand.setRemark(String.format(BonusMsgConstants.BONUS_EXPAND_DELAY, cuMemberSettleExt.getMemberCode() + cuMemberSettleExt.getMemberName()));
.pretaxIncome(pretaxIncome)
.expandNoCapping(pretaxIncome)
.expandCapping(expandCapping)
.expandNormalHalf(ComputeUtil.computeMultiplyHalf(expandCapping))
.expandNormalReal(ComputeUtil.computeMultiplyHalf(pretaxIncome))
.remark(String.format(BonusMsgConstants.BONUS_EXPAND_DELAY, cuMemberSettleExt.getMemberCode() + cuMemberSettleExt.getMemberName()))
.currentTouch(0)
.expandTouch(0)
.addTouch(BigDecimal.ZERO)
.incomeRatio(BigDecimal.ZERO)
.incomeDialRatio(BigDecimal.ZERO)
.orderDialRatio(BigDecimal.ZERO)
.build();
cuMemberBonusExpand.setPkCreator(MagicNumberConstants.PK_ADMIN);
cuMemberBonusExpand.setPkCountry(cuMemberSettleExt.getPkCountry());
cuMemberBonusExpand.setPkModified(pkMember);
// 处理扣项计算最终收益 // 处理扣项计算最终收益
BdBonusDeduct bdBonusDeduct = setDeplyBonusDetailDeduct(bonusConfigDTO, cuMemberBonusExpand); BdBonusDeduct bdBonusDeduct = setDeplyBonusDetailDeduct(bonusConfigDTO, cuMemberBonusExpand);
// 处理实发小计实发收益总计 // 处理实发小计实发收益总计

View File

@ -840,6 +840,9 @@ public abstract class BonusSettleHandle {
} }
} }
/**
* 获取会员拓展收益明细
*/
protected CuMemberBonusExpand getCuMemberBonusExpand(SaOrderExt saOrderExt, int touchNum, int i, CuMemberSettleExt targetMemberSettleExt, BigDecimal countryExpandRatio, protected CuMemberBonusExpand getCuMemberBonusExpand(SaOrderExt saOrderExt, int touchNum, int i, CuMemberSettleExt targetMemberSettleExt, BigDecimal countryExpandRatio,
CuMemberBonus cuMemberBonus, BigDecimal calAchieve, Integer pkBonusItems, BigDecimal addTouch, BdGrade bdGrade) { CuMemberBonus cuMemberBonus, BigDecimal calAchieve, Integer pkBonusItems, BigDecimal addTouch, BdGrade bdGrade) {
CuMemberBonusExpand cuMemberBonusExpand = CuMemberBonusExpand.builder() CuMemberBonusExpand cuMemberBonusExpand = CuMemberBonusExpand.builder()
@ -865,6 +868,7 @@ public abstract class BonusSettleHandle {
.build(); .build();
cuMemberBonusExpand.setPkCountry(targetMemberSettleExt.getPkSettleCountry()); cuMemberBonusExpand.setPkCountry(targetMemberSettleExt.getPkSettleCountry());
cuMemberBonusExpand.setPkCreator(MagicNumberConstants.PK_ADMIN); cuMemberBonusExpand.setPkCreator(MagicNumberConstants.PK_ADMIN);
cuMemberBonusExpand.setPkModified(targetMemberSettleExt.getPkMember());
if (EAccountStatus.STOP_PROFIT.getValue() == targetMemberSettleExt.getAccountStatus()) { if (EAccountStatus.STOP_PROFIT.getValue() == targetMemberSettleExt.getAccountStatus()) {
cuMemberBonusExpand.setIncomeStatus(EBonusIncomeStatus.STOP_INCOME.getValue()); cuMemberBonusExpand.setIncomeStatus(EBonusIncomeStatus.STOP_INCOME.getValue());
} }
@ -878,7 +882,44 @@ public abstract class BonusSettleHandle {
cuMemberBonusExpand.setIncomeStatus(EBonusIncomeStatus.DELAY_GRANT.getValue()); cuMemberBonusExpand.setIncomeStatus(EBonusIncomeStatus.DELAY_GRANT.getValue());
} }
} }
return cuMemberBonusExpand;
}
/**
* 获取会员拓展收益延缓明细
*/
protected CuMemberBonusExpand getCuMemberBonusExpandDelay(CuMemberSettleExt targetMemberSettleExt, CuMemberBonus cuMemberBonus,
BigDecimal expandRatio, Integer pkBonusItems, BdGrade bdGrade) {
CuMemberBonusExpand cuMemberBonusExpand = CuMemberBonusExpand.builder()
.pkBonus(cuMemberBonus.getPkId())
.pkBonusItems(pkBonusItems)
.incomeStatus(targetMemberSettleExt.getIncomeStatus())
.pkOrder(0L)
.calType(ECalType.RATIO.getValue())
.calValue(expandRatio)
.calAchieve(BigDecimal.ZERO)
.currentTouch(0)
.expandTouch(0)
.addTouch(BigDecimal.ZERO)
.pretaxIncome(BigDecimal.ZERO)
.incomeRatio(BigDecimal.ZERO)
.incomeDialRatio(BigDecimal.ZERO)
.orderDialRatio(BigDecimal.ZERO)
.incomeTax(BigDecimal.ZERO)
.realIncome(BigDecimal.ZERO)
.pkMember(targetMemberSettleExt.getPkMember())
.delayExpandCapping(bdGrade.getExpandCapping())
.unGrantIncome(null != targetMemberSettleExt.getUnGrantIncome() ? targetMemberSettleExt.getUnGrantIncome() : BigDecimal.ZERO)
.build();
cuMemberBonusExpand.setPkCountry(targetMemberSettleExt.getPkSettleCountry());
cuMemberBonusExpand.setPkCreator(MagicNumberConstants.PK_ADMIN);
cuMemberBonusExpand.setPkModified(targetMemberSettleExt.getPkMember());
if (EAccountStatus.STOP_PROFIT.getValue() == targetMemberSettleExt.getAccountStatus()) {
cuMemberBonusExpand.setIncomeStatus(EBonusIncomeStatus.STOP_INCOME.getValue());
}
if (EExpireStatus.TERMINATED.getValue() == targetMemberSettleExt.getExpireStatus()) {
cuMemberBonusExpand.setIncomeStatus(EBonusIncomeStatus.FIRE_BURN.getValue());
}
return cuMemberBonusExpand; return cuMemberBonusExpand;
} }

View File

@ -5,11 +5,7 @@ import lombok.AllArgsConstructor;
import lombok.Getter; import lombok.Getter;
/** /**
* @Description: 奖金收益状态 奖金明细表 * @Description: 奖金收益状态 奖金明细表cu_member_bonus_XX
* @Author: sui q
* @Time: 2022/11/10 16:03
* @Classname: EBonusIncomeStatus
* @PackageName: com.hzs.common.core.enums
*/ */
@AllArgsConstructor @AllArgsConstructor
@Getter @Getter

View File

@ -5,10 +5,6 @@ import lombok.Getter;
/** /**
* @Description: 会员有效状态 * @Description: 会员有效状态
* @Author: jiang chao
* @Time: 2024/6/4 11:07
* @Classname: EExpireStatus
* @PackageName: com.hzs.common.core.enums
*/ */
@AllArgsConstructor @AllArgsConstructor
@Getter @Getter

View File

@ -5,17 +5,13 @@ import lombok.AllArgsConstructor;
import lombok.Getter; import lombok.Getter;
/** /**
* @Description: 会员收益状态 会员表会员网体表奖金汇总表 * @Description: 会员收益状态 会员表cu_member会员网体表cu_member_tree奖金汇总表cu_member_bonus
* @Author: sui q
* @Time: 2022/11/4 11:03
* @Classname: EIncomeStatus
* @PackageName: com.hzs.common.core.enums
*/ */
@AllArgsConstructor @AllArgsConstructor
@Getter @Getter
public enum EIncomeStatus { public enum EIncomeStatus {
/** /**
*正常 * 正常
*/ */
NORMAL(0, "正常", 0, EnumsPrefixConstants.INCOME_STATUS + "0"), NORMAL(0, "正常", 0, EnumsPrefixConstants.INCOME_STATUS + "0"),

View File

@ -5,11 +5,7 @@ import lombok.AllArgsConstructor;
import lombok.Getter; import lombok.Getter;
/** /**
* Description: 修改收益状态枚举 * Description: 修改收益状态枚举 -- 办理业务使用
* Author: zhangjing
* Time: 2022/9/1 9:06
* Classname: EProfitState
* PackageName: com.hzs.common.core.enums
*/ */
@AllArgsConstructor @AllArgsConstructor
@Getter @Getter
@ -25,7 +21,6 @@ public enum EProfitState {
PROHIBIT(1, "禁止收益", 0, EnumsPrefixConstants.EPROFIT_STATE + "1"), PROHIBIT(1, "禁止收益", 0, EnumsPrefixConstants.EPROFIT_STATE + "1"),
; ;
/** /**