From bb6eb8bf5f6de1db395e9dbee31c113accb8b178 Mon Sep 17 00:00:00 2001 From: cabbage <281119120@qq.com> Date: Sat, 19 Apr 2025 15:18:05 +0800 Subject: [PATCH] =?UTF-8?q?##=20=E5=A4=8D=E8=B4=AD=E8=BE=85=E5=AF=BC?= =?UTF-8?q?=E6=94=B6=E7=9B=8A=EF=BC=9B=E5=A5=96=E9=87=91=E6=98=8E=E7=BB=86?= =?UTF-8?q?=E3=80=81=E5=A5=96=E9=87=91=E6=B1=87=E6=80=BB=E6=B7=BB=E5=8A=A0?= =?UTF-8?q?=E6=96=B0=E5=AD=97=E6=AE=B5=EF=BC=9B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../achieve/mapper/CuMemberTreeMapper.java | 2 - .../achieve/service/ICuMemberTreeService.java | 2 +- .../service/impl/CuMemberTreeServiceImpl.java | 4 +- .../api/ApiCuMemberBonusController.java | 12 +- .../manage/CuMemberBonusController.java | 106 +++++------ .../mapper/CuMemberBonusCoachMapper.java | 18 +- .../bonus/mapper/CuMemberBonusMapper.java | 37 +--- .../mapper/CuMemberRepeatBonusMapper.java | 1 + .../service/ICuMemberBonusCoachService.java | 10 +- .../bonus/service/ICuMemberBonusService.java | 45 ----- .../impl/BonusSettleFirstPurchaseHandle.java | 58 ++++-- .../bonus/service/impl/BonusSettleHandle.java | 8 +- .../impl/BonusSettlePurchaseHandle.java | 6 +- .../service/impl/BonusSettleServiceImpl.java | 81 +++++--- .../impl/CuMemberBonusCoachServiceImpl.java | 11 +- .../impl/CuMemberBonusServiceImpl.java | 21 +-- .../hzs/bonus/bonus/vo/CuMemberBonusVO.java | 13 +- .../bonus/vo/MemberBonusDetailCalVO.java | 5 + .../member/achieve/CuMemberTreeMapper.xml | 11 +- .../member/bonus/CuMemberBonusCoachMapper.xml | 42 +++-- .../member/bonus/CuMemberBonusMapper.xml | 175 +++++++++--------- .../bonus/CuMemberRepeatBonusMapper.xml | 20 +- .../member/bonus/CuMemberBonusMapper.xml | 1 + .../order/service/impl/SaOrderHandle.java | 10 +- .../service/impl/BdWaresRangeServiceImpl.java | 12 +- .../manage/BdBonusItemsController.java | 125 ++++++------- .../core/constant/msg/BonusMsgConstants.java | 1 + .../hzs/common/core/enums/EBonusItems.java | 5 + .../common/domain/bonus/BdBonusDeduct.java | 2 - .../domain/member/bonus/CuMemberBonus.java | 6 + 30 files changed, 408 insertions(+), 442 deletions(-) diff --git a/hzs-business/hzs-business-bonus/src/main/java/com/hzs/bonus/achieve/mapper/CuMemberTreeMapper.java b/hzs-business/hzs-business-bonus/src/main/java/com/hzs/bonus/achieve/mapper/CuMemberTreeMapper.java index aa6e9336..6d6c1eff 100644 --- a/hzs-business/hzs-business-bonus/src/main/java/com/hzs/bonus/achieve/mapper/CuMemberTreeMapper.java +++ b/hzs-business/hzs-business-bonus/src/main/java/com/hzs/bonus/achieve/mapper/CuMemberTreeMapper.java @@ -355,12 +355,10 @@ public interface CuMemberTreeMapper extends BaseMapper { * * @param settleTableName 结算表 * @param period - * @param yesterdayPeriod * @param firPurchaseOrderList 首单列表 */ List batchQueryCuMemberSettlePlaceParent(@Param("settleTableName") String settleTableName, @Param("period") Integer period, - @Param("yesterdayPeriod") Integer yesterdayPeriod, @Param("firPurchaseOrderList") List firPurchaseOrderList); /** diff --git a/hzs-business/hzs-business-bonus/src/main/java/com/hzs/bonus/achieve/service/ICuMemberTreeService.java b/hzs-business/hzs-business-bonus/src/main/java/com/hzs/bonus/achieve/service/ICuMemberTreeService.java index 60ba6e0d..687b030a 100644 --- a/hzs-business/hzs-business-bonus/src/main/java/com/hzs/bonus/achieve/service/ICuMemberTreeService.java +++ b/hzs-business/hzs-business-bonus/src/main/java/com/hzs/bonus/achieve/service/ICuMemberTreeService.java @@ -284,7 +284,7 @@ public interface ICuMemberTreeService extends IService { * @param period * @param firPurchaseOrderList 首单列表 */ - Map> batchQueryCuMemberSettlePlaceParent(String settleTableName, Integer period, Integer yesterdayPeriod, List firPurchaseOrderList); + Map> batchQueryCuMemberSettlePlaceParent(String settleTableName, Integer period, List firPurchaseOrderList); /** * 批量根据量奖信息查询会员结算表中的父级血缘数据 diff --git a/hzs-business/hzs-business-bonus/src/main/java/com/hzs/bonus/achieve/service/impl/CuMemberTreeServiceImpl.java b/hzs-business/hzs-business-bonus/src/main/java/com/hzs/bonus/achieve/service/impl/CuMemberTreeServiceImpl.java index 34251603..cfad84a5 100644 --- a/hzs-business/hzs-business-bonus/src/main/java/com/hzs/bonus/achieve/service/impl/CuMemberTreeServiceImpl.java +++ b/hzs-business/hzs-business-bonus/src/main/java/com/hzs/bonus/achieve/service/impl/CuMemberTreeServiceImpl.java @@ -382,12 +382,12 @@ public class CuMemberTreeServiceImpl extends ServiceImpl> batchQueryCuMemberSettlePlaceParent(String settleTableName, Integer period, Integer yesterdayPeriod, List firPurchaseOrderList) { + public Map> batchQueryCuMemberSettlePlaceParent(String settleTableName, Integer period, List firPurchaseOrderList) { // 查询出所有父级安置人 List cuMemberSettleExtList = new ArrayList<>(); List> listList = cuMemberBonusSettle.handleCutList(firPurchaseOrderList, MagicNumberConstants.DELETE_DATA_BATCH_UPDATE_NUM); listList.forEach(list -> - cuMemberSettleExtList.addAll(baseMapper.batchQueryCuMemberSettlePlaceParent(settleTableName, period, yesterdayPeriod, list))); + cuMemberSettleExtList.addAll(baseMapper.batchQueryCuMemberSettlePlaceParent(settleTableName, period, list))); // key:订单ID,value:订单向上找安置人列表 Map> memberSettleMap = new HashMap<>(ComputeUtil.mapInitCapacity(firPurchaseOrderList.size())); cuMemberSettleExtList.forEach(cuMemberSettleExt -> { diff --git a/hzs-business/hzs-business-bonus/src/main/java/com/hzs/bonus/bonus/controller/api/ApiCuMemberBonusController.java b/hzs-business/hzs-business-bonus/src/main/java/com/hzs/bonus/bonus/controller/api/ApiCuMemberBonusController.java index 6781e1af..ea3f9cb5 100644 --- a/hzs-business/hzs-business-bonus/src/main/java/com/hzs/bonus/bonus/controller/api/ApiCuMemberBonusController.java +++ b/hzs-business/hzs-business-bonus/src/main/java/com/hzs/bonus/bonus/controller/api/ApiCuMemberBonusController.java @@ -38,12 +38,8 @@ import java.util.List; @Slf4j public class ApiCuMemberBonusController extends BaseController { - private ICuMemberBonusService cuMemberBonusService; - @Autowired - public void setCuMemberBonusService(ICuMemberBonusService cuMemberBonusService) { - this.cuMemberBonusService = cuMemberBonusService; - } + private ICuMemberBonusService cuMemberBonusService; // /** // * 查询会员某个时间段内的奖金,默认查询15天内,查询直推 @@ -115,7 +111,8 @@ public class ApiCuMemberBonusController extends BaseController { memberBonusFirstPurchaseVO.setServiceSpend(cuMemberBonus.getServiceSpend()); // 拓展收益 = 首购拓展 + 复购拓展 + 复购推荐 - memberBonusFirstPurchaseVO.setExpandIncome(ComputeUtil.computeAddNum(memberBonusFirstPurchaseVO.getExpandIncome(), memberBonusFirstPurchaseVO.getRepurExpandIncome(), memberBonusFirstPurchaseVO.getRepurPushIncome())); + memberBonusFirstPurchaseVO.setExpandIncome(ComputeUtil.computeAddNum(memberBonusFirstPurchaseVO.getExpandIncome(), + memberBonusFirstPurchaseVO.getRepurExpandIncome(), memberBonusFirstPurchaseVO.getRepurPushIncome())); // 首购实发小计 = 首购实发小计 + 复购实发小计 memberBonusFirstPurchaseVO.setPurRealSubtotal(ComputeUtil.computeAdd(memberBonusFirstPurchaseVO.getPurRealSubtotal(), memberBonusFirstPurchaseVO.getRepurRealSubtotal())); @@ -178,7 +175,8 @@ public class ApiCuMemberBonusController extends BaseController { memberBonusVO.setSettleDate(DateUtils.currentDate()); BigDecimal serviceSpend = ComputeUtil.computeSubtract(ComputeUtil.computeAddNum(cuMemberBonus.getDirectIncome(), cuMemberBonus.getExpandIncome(), cuMemberBonus.getCoachIncome(), cuMemberBonus.getServiceIncome(), cuMemberBonus.getShareIncome(), - cuMemberBonus.getRepurExpandIncome(), cuMemberBonus.getRepurRangeIncome(), cuMemberBonus.getRepurPushIncome()), + cuMemberBonus.getRepurExpandIncome(), cuMemberBonus.getRepurCoachIncome(), cuMemberBonus.getRepurRangeIncome(), + cuMemberBonus.getRepurPushIncome()), ComputeUtil.computeAdd(cuMemberBonus.getPurRealSubtotal(), cuMemberBonus.getRepurRealSubtotal())); memberBonusVO.setBackPoints(ComputeUtil.computeMultiplyHalf(serviceSpend)); memberBonusVO.setServiceSpend(ComputeUtil.computeMultiplyHalf(serviceSpend)); diff --git a/hzs-business/hzs-business-bonus/src/main/java/com/hzs/bonus/bonus/controller/manage/CuMemberBonusController.java b/hzs-business/hzs-business-bonus/src/main/java/com/hzs/bonus/bonus/controller/manage/CuMemberBonusController.java index 9ec61716..b6889ca9 100644 --- a/hzs-business/hzs-business-bonus/src/main/java/com/hzs/bonus/bonus/controller/manage/CuMemberBonusController.java +++ b/hzs-business/hzs-business-bonus/src/main/java/com/hzs/bonus/bonus/controller/manage/CuMemberBonusController.java @@ -49,36 +49,26 @@ import java.util.stream.Collectors; @RequestMapping("/manage/bonus") public class CuMemberBonusController extends BaseController { - private ICuMemberBonusService cuMemberBonusService; - - private ITransactionCommonService transactionCommonService; + @Autowired + private ICuMemberBonusService iCuMemberBonusService; + @Autowired + private ITransactionCommonService iTransactionCommonService; @DubboReference - private IUserServiceApi userServiceApi; - + IUserServiceApi userServiceApi; @DubboReference - private IMenuColumnServiceApi menuColumnServiceApi; - - @Autowired - public void setTransactionCommonService(ITransactionCommonService transactionCommonService) { - this.transactionCommonService = transactionCommonService; - } - - @Autowired - public void setCuMemberBonusService(ICuMemberBonusService cuMemberBonusService) { - this.cuMemberBonusService = cuMemberBonusService; - } + IMenuColumnServiceApi menuColumnServiceApi; /** * 分页查询会员某个时间段内的奖金汇总 */ @AccessPermissions("totalBonus") @PostMapping("/query-bonus-total") - @Log(module = EOperationModule.BONUS_TOTAL,business = EOperationBusiness.BONUS_TOTAL , method = EOperationMethod.SELECT) + @Log(module = EOperationModule.BONUS_TOTAL, business = EOperationBusiness.BONUS_TOTAL, method = EOperationMethod.SELECT) @ColumnAuthority(perms = "totalBonus") - public TableDataInfo listBonusTotal(@RequestBody BonusParam bonusParam){ - List pkVertex=new ArrayList<>(); - if(StringUtils.isNotEmpty(bonusParam.getPkBdVertexStr())){ + public TableDataInfo listBonusTotal(@RequestBody BonusParam bonusParam) { + List pkVertex = new ArrayList<>(); + if (StringUtils.isNotEmpty(bonusParam.getPkBdVertexStr())) { pkVertex = Arrays.stream(bonusParam.getPkBdVertexStr().split(",")) .map(Integer::parseInt) .collect(Collectors.toList()); @@ -87,7 +77,7 @@ public class CuMemberBonusController extends BaseController { bonusParam.setPkCountry(SecurityUtils.getPkCountry()); packageBonusParam(bonusParam); startPage(); - List cuMemberBonusList = cuMemberBonusService.queryBonusTotalVoByConditionForServer(bonusParam); + List cuMemberBonusList = iCuMemberBonusService.queryBonusTotalVoByConditionForServer(bonusParam); TableDataInfo dataTable = getDataTable(cuMemberBonusList); dataTable.setRows(getBonusTotalVoS(cuMemberBonusList)); return dataTable; @@ -97,10 +87,10 @@ public class CuMemberBonusController extends BaseController { * 分页查询会员某个时间段内的奖金汇总 */ @PostMapping("/export-bonus-total") - @Log(module = EOperationModule.BONUS_TOTAL,business = EOperationBusiness.BONUS_TOTAL , method = EOperationMethod.EXPORT) - public void exportBonusTotal(HttpServletResponse response, BonusParam bonusParam){ - List pkVertex=new ArrayList<>(); - if(StringUtils.isNotEmpty(bonusParam.getPkBdVertexStr())){ + @Log(module = EOperationModule.BONUS_TOTAL, business = EOperationBusiness.BONUS_TOTAL, method = EOperationMethod.EXPORT) + public void exportBonusTotal(HttpServletResponse response, BonusParam bonusParam) { + List pkVertex = new ArrayList<>(); + if (StringUtils.isNotEmpty(bonusParam.getPkBdVertexStr())) { pkVertex = Arrays.stream(bonusParam.getPkBdVertexStr().split(",")) .map(Integer::parseInt) .collect(Collectors.toList()); @@ -108,7 +98,7 @@ public class CuMemberBonusController extends BaseController { bonusParam.setPkVertexList(pkVertex); bonusParam.setPkCountry(SecurityUtils.getPkCountry()); packageBonusParam(bonusParam); - List cuMemberBonusList = cuMemberBonusService.queryBonusTotalVoByConditionForServer(bonusParam); + List cuMemberBonusList = iCuMemberBonusService.queryBonusTotalVoByConditionForServer(bonusParam); List bonusTotalVoList = getBonusTotalVoS(cuMemberBonusList); Map sourceBonusList = menuColumnServiceApi.queryMenuColumn("totalBonus", SecurityUtils.getUserId()).getData(); ExcelUtil util = new ExcelUtil<>(BonusTotalVO.class, sourceBonusList); @@ -119,7 +109,7 @@ public class CuMemberBonusController extends BaseController { List totalVoList = new ArrayList<>(); cuMemberBonusList.forEach(cuMemberBonus -> { BonusTotalVO bonusTotalVO = BeanUtil.copyProperties(cuMemberBonus, BonusTotalVO.class); - for(String key : CuMemberBonusVO.INCOME_ARRAY){ + for (String key : CuMemberBonusVO.INCOME_ARRAY) { ReflectUtils.invokeSetter(bonusTotalVO, key + BonusFieldConstants.INCOME_SUFFIX, ComputeUtil.computeMultiply(ReflectUtils.invokeGetter(cuMemberBonus, key), cuMemberBonus.getOutExchangeRate())); } totalVoList.add(bonusTotalVO); @@ -133,9 +123,9 @@ public class CuMemberBonusController extends BaseController { @AccessPermissions("BonusDetail") @PostMapping("/query-bonus-detail") @Log(module = EOperationModule.BONUS_DETAIL, method = EOperationMethod.SELECT) - public TableDataInfo listBonus(@RequestBody BonusParam bonusParam){ - List pkVertex=new ArrayList<>(); - if(StringUtils.isNotEmpty(bonusParam.getPkBdVertexStr())){ + public TableDataInfo listBonus(@RequestBody BonusParam bonusParam) { + List pkVertex = new ArrayList<>(); + if (StringUtils.isNotEmpty(bonusParam.getPkBdVertexStr())) { pkVertex = Arrays.stream(bonusParam.getPkBdVertexStr().split(",")) .map(Integer::parseInt) .collect(Collectors.toList()); @@ -143,16 +133,16 @@ public class CuMemberBonusController extends BaseController { bonusParam.setPkVertexList(pkVertex); bonusParam.setPkCountry(SecurityUtils.getPkCountry()); //获取管理员权限《角色地区范围、 体系列表、团队列表) - Date date=DateUtils.currentDate(); - if(bonusParam.getStartDate()==null||bonusParam.getEndDate()==null){ + Date date = DateUtils.currentDate(); + if (bonusParam.getStartDate() == null || bonusParam.getEndDate() == null) { bonusParam.setStartDate(DateUtils.currentMonthFirstDate()); - bonusParam.setEndDate(DateUtils.beforeDate(1, ChronoUnit.DAYS,date)); + bonusParam.setEndDate(DateUtils.beforeDate(1, ChronoUnit.DAYS, date)); } packageBonusParam(bonusParam); startPage(); - List cuMemberBonusExtList = cuMemberBonusService.queryMemberBonusVoByConditionForServer(bonusParam); - CuMemberBonusExt cmb =cuMemberBonusService.queryMemberBonusByConditionForServerSum(bonusParam); - if(cmb!=null){ + List cuMemberBonusExtList = iCuMemberBonusService.queryMemberBonusVoByConditionForServer(bonusParam); + CuMemberBonusExt cmb = iCuMemberBonusService.queryMemberBonusByConditionForServerSum(bonusParam); + if (cmb != null) { cmb.setMemberCode("合计"); cuMemberBonusExtList.add(cmb); } @@ -167,9 +157,9 @@ public class CuMemberBonusController extends BaseController { */ @PostMapping("/export-bonus-detail") @Log(module = EOperationModule.BONUS_DETAIL, method = EOperationMethod.SELECT) - public void exportBonusDetail(HttpServletResponse response, BonusParam bonusParam){ - List pkVertex=new ArrayList<>(); - if(StringUtils.isNotEmpty(bonusParam.getPkBdVertexStr())){ + public void exportBonusDetail(HttpServletResponse response, BonusParam bonusParam) { + List pkVertex = new ArrayList<>(); + if (StringUtils.isNotEmpty(bonusParam.getPkBdVertexStr())) { pkVertex = Arrays.stream(bonusParam.getPkBdVertexStr().split(",")) .map(Integer::parseInt) .collect(Collectors.toList()); @@ -177,23 +167,23 @@ public class CuMemberBonusController extends BaseController { bonusParam.setPkVertexList(pkVertex); bonusParam.setPkCountry(SecurityUtils.getPkCountry()); packageBonusParam(bonusParam); - List cuMemberBonusExtList = cuMemberBonusService.queryMemberBonusVoByConditionForServer(bonusParam); - CuMemberBonusExt cuMemberBonusExt = cuMemberBonusService.initCuMemberBonus(); + List cuMemberBonusExtList = iCuMemberBonusService.queryMemberBonusVoByConditionForServer(bonusParam); + CuMemberBonusExt cuMemberBonusExt = iCuMemberBonusService.initCuMemberBonus(); cuMemberBonusExt.setMemberCode("小计:"); - if(CollectionUtil.isNotEmpty(cuMemberBonusExtList)) { + if (CollectionUtil.isNotEmpty(cuMemberBonusExtList)) { cuMemberBonusExt.setOutExchangeRate(cuMemberBonusExtList.get(0).getOutExchangeRate()); for (CuMemberBonusExt memberBonusExt : cuMemberBonusExtList) { - cuMemberBonusService.calculateBonusTotal(cuMemberBonusExt, memberBonusExt); + iCuMemberBonusService.calculateBonusTotal(cuMemberBonusExt, memberBonusExt); } } cuMemberBonusExtList.add(cuMemberBonusExt); - List cuMemberBonusVoList = getBonusDetail(cuMemberBonusExtList); + List cuMemberBonusVoList = getBonusDetail(cuMemberBonusExtList); Map bonusDetail = menuColumnServiceApi.queryMenuColumn("BonusDetail", SecurityUtils.getUserId()).getData(); - ExcelUtil util = new ExcelUtil<>(CuMemberBonusVO.class,bonusDetail); + ExcelUtil util = new ExcelUtil<>(CuMemberBonusVO.class, bonusDetail); util.exportExcel(response, cuMemberBonusVoList, "奖金明细导出"); } - private List getBonusDetail(List cuMemberBonusExtList) { + private List getBonusDetail(List cuMemberBonusExtList) { List cuMemberBonusVoList = new ArrayList<>(cuMemberBonusExtList.size()); for (CuMemberBonusExt cuMemberBonusExt : cuMemberBonusExtList) { CuMemberBonusVO cuMemberBonusVO = BeanUtil.copyProperties(cuMemberBonusExt, CuMemberBonusVO.class); @@ -201,7 +191,7 @@ public class CuMemberBonusController extends BaseController { cuMemberBonusVO.setMemberCode(CommonUtil.getMemberCode(cuMemberBonusExt.getMemberCode(), cuMemberBonusExt.getServiceCode())); cuMemberBonusVO.setMemberName(CommonUtil.getMemberName(cuMemberBonusExt.getPkVertex(), cuMemberBonusExt.getMemberName(), cuMemberBonusExt.getNickName())); - for(String key :CuMemberBonusVO.INCOME_ARRAY){ + for (String key : CuMemberBonusVO.INCOME_ARRAY) { ReflectUtils.invokeSetter(cuMemberBonusVO, key + BonusFieldConstants.INCOME_SUFFIX, ComputeUtil.computeMultiply(ReflectUtils.invokeGetter(cuMemberBonusExt, key), cuMemberBonusExt.getOutExchangeRate())); } cuMemberBonusVoList.add(cuMemberBonusVO); @@ -215,11 +205,11 @@ public class CuMemberBonusController extends BaseController { @AccessPermissions("sourceBonus") @PostMapping("/query-bonus-source") @Log(module = EOperationModule.BONUS_SOURCE, business = EOperationBusiness.BONUS_SOURCE, method = EOperationMethod.SELECT) - public TableDataInfo listBonusSource(@RequestBody BonusParam bonusParam){ + public TableDataInfo listBonusSource(@RequestBody BonusParam bonusParam) { bonusParam.setPkCountry(SecurityUtils.getPkCountry()); packageBonusParam(bonusParam); startPage(); - return cuMemberBonusService.queryMemberBonusDetailSerVoByCondition(bonusParam); + return iCuMemberBonusService.queryMemberBonusDetailSerVoByCondition(bonusParam); } @@ -228,29 +218,29 @@ public class CuMemberBonusController extends BaseController { */ @PostMapping("/export-bonus-source") @Log(module = EOperationModule.BONUS_SOURCE, business = EOperationBusiness.BONUS_SOURCE, method = EOperationMethod.EXPORT) - public void exportBonusSource(HttpServletResponse response, BonusParam bonusParam){ + public void exportBonusSource(HttpServletResponse response, BonusParam bonusParam) { bonusParam.setPkCountry(SecurityUtils.getPkCountry()); packageBonusParam(bonusParam); - TableDataInfo tableDataInfo = cuMemberBonusService.queryMemberBonusDetailSerVoByCondition(bonusParam); + TableDataInfo tableDataInfo = iCuMemberBonusService.queryMemberBonusDetailSerVoByCondition(bonusParam); List memberBonusDetailSerVOList = (List) tableDataInfo.getRows(); // 获取需要翻译的枚举翻译 - Map transactionMap = transactionCommonService.exportEnumTransaction(EOrderType.values(), EBonusIncomeStatus.values()); - Map transactionLongMap = transactionCommonService.exportEnumTransactionByDB(EnumsPrefixConstants.KEY_GRADE, EnumsPrefixConstants.KEY_AWARD); + Map transactionMap = iTransactionCommonService.exportEnumTransaction(EOrderType.values(), EBonusIncomeStatus.values()); + Map transactionLongMap = iTransactionCommonService.exportEnumTransactionByDB(EnumsPrefixConstants.KEY_GRADE, EnumsPrefixConstants.KEY_AWARD); for (MemberBonusDetailSerVO memberBonusDetailSerVO : memberBonusDetailSerVOList) { - if(transactionMap.containsKey(EnumsPrefixConstants.ORDER_TYPE + memberBonusDetailSerVO.getOrderType().toString())) { + if (transactionMap.containsKey(EnumsPrefixConstants.ORDER_TYPE + memberBonusDetailSerVO.getOrderType().toString())) { memberBonusDetailSerVO.setOrderTypeVal(transactionMap.get(EnumsPrefixConstants.ORDER_TYPE + memberBonusDetailSerVO.getOrderType())); } - if(transactionMap.containsKey(EnumsPrefixConstants.BONUS_INCOME_STATUS + memberBonusDetailSerVO.getIncomeStatus())){ + if (transactionMap.containsKey(EnumsPrefixConstants.BONUS_INCOME_STATUS + memberBonusDetailSerVO.getIncomeStatus())) { memberBonusDetailSerVO.setIncomeStatusVal(transactionMap.get(EnumsPrefixConstants.BONUS_INCOME_STATUS + memberBonusDetailSerVO.getIncomeStatus())); } - if(transactionLongMap.containsKey(memberBonusDetailSerVO.getPkSettleGrade())){ + if (transactionLongMap.containsKey(memberBonusDetailSerVO.getPkSettleGrade())) { memberBonusDetailSerVO.setPkSettleGradeVal(transactionLongMap.get(memberBonusDetailSerVO.getPkSettleGrade())); } - if(transactionLongMap.containsKey(memberBonusDetailSerVO.getPkAwards())){ + if (transactionLongMap.containsKey(memberBonusDetailSerVO.getPkAwards())) { memberBonusDetailSerVO.setPkAwardsVal(transactionLongMap.get(memberBonusDetailSerVO.getPkAwards())); } } - ExcelUtil util = new ExcelUtil<>(MemberBonusDetailSerVO.class,menuColumnServiceApi.queryMenuColumn("sourceBonus", SecurityUtils.getUserId()).getData()); + ExcelUtil util = new ExcelUtil<>(MemberBonusDetailSerVO.class, menuColumnServiceApi.queryMenuColumn("sourceBonus", SecurityUtils.getUserId()).getData()); util.exportExcel(response, memberBonusDetailSerVOList, "奖金来源导出"); } diff --git a/hzs-business/hzs-business-bonus/src/main/java/com/hzs/bonus/bonus/mapper/CuMemberBonusCoachMapper.java b/hzs-business/hzs-business-bonus/src/main/java/com/hzs/bonus/bonus/mapper/CuMemberBonusCoachMapper.java index cf604fad..eeefe99e 100644 --- a/hzs-business/hzs-business-bonus/src/main/java/com/hzs/bonus/bonus/mapper/CuMemberBonusCoachMapper.java +++ b/hzs-business/hzs-business-bonus/src/main/java/com/hzs/bonus/bonus/mapper/CuMemberBonusCoachMapper.java @@ -9,9 +9,7 @@ import org.apache.ibatis.annotations.Param; import java.util.List; /** - *

* 会员奖金-辅导收益明细表 Mapper 接口 - *

* * @author hzs * @since 2022-11-15 @@ -20,37 +18,29 @@ public interface CuMemberBonusCoachMapper extends BaseMapper /** * 删除会员奖金汇总表 + * * @param period 结算期间 - * @return: void - * @Author: sui q - * @Date: 2022/12/13 11:54 */ void deleteCuMemberBonusCoach(Integer period); /** * 批量插入会员奖金主表 + * * @param cuMemberBonusCoachList 会员奖金 - * @return: void - * @Author: sui q - * @Date: 2022/12/13 13:56 */ void batchInsertCuMemberBonusCoach(@Param("cuMemberBonusCoachList") List cuMemberBonusCoachList); /** * 根据查询条件查询固定的奖金明细 + * * @param bonusParam 查询条件 - * @return: List - * @Author: sui q - * @Date: 2023/1/14 11:18 */ List queryMemberBonusCoachByBonusItems(BonusParam bonusParam); /** * 根据查询条件查询固定的奖金明细 + * * @param bonusParam 查询条件 - * @return: List - * @Author: sui q - * @Date: 2023/1/14 11:18 */ List queryMemberBonusCoachByBonusItemsForServer(@Param("bonusParam") BonusParam bonusParam); } diff --git a/hzs-business/hzs-business-bonus/src/main/java/com/hzs/bonus/bonus/mapper/CuMemberBonusMapper.java b/hzs-business/hzs-business-bonus/src/main/java/com/hzs/bonus/bonus/mapper/CuMemberBonusMapper.java index 3fc67f5e..e3d52ea9 100644 --- a/hzs-business/hzs-business-bonus/src/main/java/com/hzs/bonus/bonus/mapper/CuMemberBonusMapper.java +++ b/hzs-business/hzs-business-bonus/src/main/java/com/hzs/bonus/bonus/mapper/CuMemberBonusMapper.java @@ -9,9 +9,7 @@ import org.apache.ibatis.annotations.Param; import java.util.List; /** - *

* 会员奖金-会员奖金汇总表 Mapper 接口 - *

* * @author hzs * @since 2022-11-11 @@ -22,9 +20,6 @@ public interface CuMemberBonusMapper extends BaseMapper { * 批量获取cuMemberBonus主键 * * @param rowNum 数量 - * @return: List - * @Author: sui q - * @Date: 2022/12/13 13:47 */ List batchQueryCuMemberBonusSeq(Integer rowNum); @@ -32,9 +27,6 @@ public interface CuMemberBonusMapper extends BaseMapper { * 根据查询条件查询会员奖金 * * @param bonusParam 查询条件 - * @return: List - * @Author: sui q - * @Date: 2023/1/13 11:27 */ List queryMemberBonusTotalByCondition(BonusParam bonusParam); @@ -42,9 +34,6 @@ public interface CuMemberBonusMapper extends BaseMapper { * 根据查询条件查询会员奖金 * * @param bonusParam 查询条件 - * @return: List - * @Author: sui q - * @Date: 2023/1/13 11:27 */ List queryMemberBonusByCondition(BonusParam bonusParam); @@ -52,9 +41,6 @@ public interface CuMemberBonusMapper extends BaseMapper { * 根据查询条件查询会员奖金 * * @param bonusParam 查询条件 - * @return: List - * @Author: sui q - * @Date: 2023/1/13 11:27 */ List queryMemberBonusByConditionForServer(@Param("bonusParam") BonusParam bonusParam); @@ -67,15 +53,10 @@ public interface CuMemberBonusMapper extends BaseMapper { **/ CuMemberBonusExt queryMemberBonusByConditionForServerSum(@Param("bonusParam") BonusParam bonusParam); - - /** * 根据查询条件查询会员奖金 * * @param bonusParam 查询条件 - * @return: List - * @Author: sui q - * @Date: 2023/1/13 11:27 */ List queryBonusTotalVoByConditionForServer(@Param("bonusParam") BonusParam bonusParam); @@ -83,9 +64,6 @@ public interface CuMemberBonusMapper extends BaseMapper { * 删除会员奖金汇总表 * * @param period 结算期间 - * @return: void - * @Author: sui q - * @Date: 2022/12/13 11:54 */ void deleteCuMemberBonus(Integer period); @@ -93,9 +71,6 @@ public interface CuMemberBonusMapper extends BaseMapper { * 批量插入会员奖金主表 * * @param cuMemberBonusList 会员奖金 - * @return: void - * @Author: sui q - * @Date: 2022/12/13 13:56 */ void batchInsertCuMemberBonus(@Param("cuMemberBonusList") List cuMemberBonusList); @@ -103,9 +78,6 @@ public interface CuMemberBonusMapper extends BaseMapper { * 批量插入会员奖金主表 * * @param cuMemberBonusList 会员奖金 - * @return: void - * @Author: sui q - * @Date: 2022/12/13 13:56 */ void insertOrUpdateCuMemberBonus(@Param("cuMemberBonusList") List cuMemberBonusList); @@ -114,19 +86,14 @@ public interface CuMemberBonusMapper extends BaseMapper { * * @param grantStatus 发放状态 * @param oldGrantStatus 原来的发放状态 - * @return: Boolean - * @Author: sui q - * @Date: 2023/3/20 17:21 */ Integer updateCuMemberBonusStatus(@Param("pkCountry") Integer pkCountry, @Param("grantStatus") Integer grantStatus, @Param("oldGrantStatus") Integer oldGrantStatus, @Param("startPeriod") Integer startPeriod, @Param("endPeriod") Integer endPeriod); /* - * @description: 查询会员一周周期的拓展累计,复购拓展累计 - * @author: sui q - * @date: 2023/7/15 14:26 - * @param: null null + * 查询会员一周周期的拓展累计,复购拓展累计 **/ List queryWeekMemberBonus(@Param("startPeriod") int startPeriod, @Param("endPeriod") int endPeriod); + } diff --git a/hzs-business/hzs-business-bonus/src/main/java/com/hzs/bonus/bonus/mapper/CuMemberRepeatBonusMapper.java b/hzs-business/hzs-business-bonus/src/main/java/com/hzs/bonus/bonus/mapper/CuMemberRepeatBonusMapper.java index 63c3b141..bb8acad4 100644 --- a/hzs-business/hzs-business-bonus/src/main/java/com/hzs/bonus/bonus/mapper/CuMemberRepeatBonusMapper.java +++ b/hzs-business/hzs-business-bonus/src/main/java/com/hzs/bonus/bonus/mapper/CuMemberRepeatBonusMapper.java @@ -21,4 +21,5 @@ public interface CuMemberRepeatBonusMapper extends BaseMapper cuMemberRepeatBonusList); + } diff --git a/hzs-business/hzs-business-bonus/src/main/java/com/hzs/bonus/bonus/service/ICuMemberBonusCoachService.java b/hzs-business/hzs-business-bonus/src/main/java/com/hzs/bonus/bonus/service/ICuMemberBonusCoachService.java index 241fcf7c..408990f3 100644 --- a/hzs-business/hzs-business-bonus/src/main/java/com/hzs/bonus/bonus/service/ICuMemberBonusCoachService.java +++ b/hzs-business/hzs-business-bonus/src/main/java/com/hzs/bonus/bonus/service/ICuMemberBonusCoachService.java @@ -7,9 +7,7 @@ import java.util.List; import java.util.Set; /** - *

* 会员奖金-辅导收益明细表 服务类 - *

* * @author hzs * @since 2022-11-15 @@ -18,19 +16,15 @@ public interface ICuMemberBonusCoachService extends IService /** * 删除会员奖金汇总表 + * * @param period 结算期间 - * @return: void - * @Author: sui q - * @Date: 2022/12/13 11:54 */ void deleteCuMemberBonusCoach(Integer period); /** * 批量插入会员奖金主表 + * * @param cuMemberBonusCoachList 会员奖金 - * @return: void - * @Author: sui q - * @Date: 2022/12/13 13:56 */ void batchInsertCuMemberBonusCoach(List cuMemberBonusCoachList, Set memberIdSet); } diff --git a/hzs-business/hzs-business-bonus/src/main/java/com/hzs/bonus/bonus/service/ICuMemberBonusService.java b/hzs-business/hzs-business-bonus/src/main/java/com/hzs/bonus/bonus/service/ICuMemberBonusService.java index ae8b2f84..daa7f382 100644 --- a/hzs-business/hzs-business-bonus/src/main/java/com/hzs/bonus/bonus/service/ICuMemberBonusService.java +++ b/hzs-business/hzs-business-bonus/src/main/java/com/hzs/bonus/bonus/service/ICuMemberBonusService.java @@ -24,9 +24,6 @@ public interface ICuMemberBonusService extends IService { * 批量获取cuMemberBonus主键 * * @param rowNum 数量 - * @return: List - * @Author: sui q - * @Date: 2022/12/13 13:47 */ List batchQueryCuMemberBonusSeq(Integer rowNum); @@ -34,9 +31,6 @@ public interface ICuMemberBonusService extends IService { * 根据查询条件查询会员奖金 * * @param bonusParam 查询条件 - * @return: List - * @Author: sui q - * @Date: 2023/1/13 11:27 */ List queryMemberBonusVoByCondition(BonusParam bonusParam); @@ -44,9 +38,6 @@ public interface ICuMemberBonusService extends IService { * 根据查询条件查询会员秒接奖金 * * @param bonusParam 查询条件 - * @return: List - * @Author: sui q - * @Date: 2023/1/13 11:27 */ List queryMemberSecondBonusVoByCondition(BonusParam bonusParam); @@ -54,9 +45,6 @@ public interface ICuMemberBonusService extends IService { * 根据查询条件查询会员奖金 * * @param bonusParam 查询条件 - * @return: List - * @Author: sui q - * @Date: 2023/1/13 11:27 */ List queryMemberBonusTotalByCondition(BonusParam bonusParam); @@ -64,9 +52,6 @@ public interface ICuMemberBonusService extends IService { * 根据查询条件查询会员奖金 * * @param bonusParam 查询条件 - * @return: List - * @Author: sui q - * @Date: 2023/1/13 11:27 */ List queryMemberBonusVoByConditionForServer(BonusParam bonusParam); @@ -83,9 +68,6 @@ public interface ICuMemberBonusService extends IService { * 根据条件查询查询每天奖金汇总 * * @param bonusParam 查询条件 - * @return: List - * @Author: sui q - * @Date: 2023/3/6 9:26 */ List queryBonusTotalVoByConditionForServer(BonusParam bonusParam); @@ -93,17 +75,11 @@ public interface ICuMemberBonusService extends IService { * 根据查询条件查询会员明细奖金 * * @param bonusParam 查询条件 - * @return: List - * @Author: sui q - * @Date: 2023/1/13 17:27 */ TableDataInfo queryMemberBonusDetailVoByCondition(BonusParam bonusParam); /* * @description: 查询创客空间奖金来源 - * @author: sui q - * @date: 2024/7/12 10:36 - * @param: null null **/ List queryMemberMarkBonusDetailSource(BonusParam bonusParam); @@ -111,9 +87,6 @@ public interface ICuMemberBonusService extends IService { * 后台根据查询条件查询会员奖金明细 * * @param bonusParam 查询条件 - * @return: List - * @Author: sui q - * @Date: 2023/1/23 14:41 */ TableDataInfo queryMemberBonusDetailSerVoByCondition(BonusParam bonusParam); @@ -121,9 +94,6 @@ public interface ICuMemberBonusService extends IService { * 删除会员奖金汇总表 * * @param period 结算期间 - * @return: void - * @Author: sui q - * @Date: 2022/12/13 11:54 */ void deleteCuMemberBonus(Integer period); @@ -131,9 +101,6 @@ public interface ICuMemberBonusService extends IService { * 批量插入会员奖金主表 * * @param cuMemberBonusList 会员奖金 - * @return: void - * @Author: sui q - * @Date: 2022/12/13 13:56 */ void batchInsertCuMemberBonus(List cuMemberBonusList); @@ -141,17 +108,11 @@ public interface ICuMemberBonusService extends IService { * 批量插入会员奖金主表 * * @param cuMemberBonusList 会员奖金 - * @return: void - * @Author: sui q - * @Date: 2022/12/13 13:56 */ void insertOrUpdateCuMemberBonus(List cuMemberBonusList); /* * @description: 查询会员奖金 - * @author: sui q - * @date: 2023/8/8 11:52 - * @param: null null **/ List queryCuMemberBonus(int period, List cuMemberBonusList); @@ -161,9 +122,6 @@ public interface ICuMemberBonusService extends IService { * @param grantStatus 发放状态 * @param oldGrantStatus 原来的发放状态 * @param startPeriod 期间 - * @return: Boolean - * @Author: sui q - * @Date: 2023/3/20 17:21 */ Boolean updateCuMemberBonusStatus(Integer pkCountry, Integer grantStatus, Integer oldGrantStatus, Integer startPeriod, Integer endPeriod); @@ -173,9 +131,6 @@ public interface ICuMemberBonusService extends IService { * @param grantStatus 发放状态 * @param startPeriod 期间 * @param endPeriod 期间 - * @return: List - * @Author: sui q - * @Date: 2023/3/21 9:44 */ List queryCuMemberBonusByCondition(Integer pkCountry, Integer grantStatus, Integer startPeriod, Integer endPeriod); diff --git a/hzs-business/hzs-business-bonus/src/main/java/com/hzs/bonus/bonus/service/impl/BonusSettleFirstPurchaseHandle.java b/hzs-business/hzs-business-bonus/src/main/java/com/hzs/bonus/bonus/service/impl/BonusSettleFirstPurchaseHandle.java index 86eb2f62..4213c2e8 100644 --- a/hzs-business/hzs-business-bonus/src/main/java/com/hzs/bonus/bonus/service/impl/BonusSettleFirstPurchaseHandle.java +++ b/hzs-business/hzs-business-bonus/src/main/java/com/hzs/bonus/bonus/service/impl/BonusSettleFirstPurchaseHandle.java @@ -408,20 +408,19 @@ public class BonusSettleFirstPurchaseHandle extends BonusSettleHandle { * * @param settleTableName 结算表 * @param period 期间 - * @param yesterdayPeriod 昨日期间 * @param bonusConfigDTO 参数 * @param firPurchaseOrderList 首单 * @param cuMemberBonusMap 所有计算出来的奖金汇总 */ List calculateExpandBonus(Map cuMemberSettleExtMap, String settleDate, String settleTableName, BonusConfigDTO bonusConfigDTO, Map systemConfigMap, List firPurchaseOrderList, - Integer period, Integer yesterdayPeriod, Map weekMemberBonusMap, Map cuMemberBonusMap, + Integer period, Map weekMemberBonusMap, Map cuMemberBonusMap, Map riskControlMap, Map cuBonusExpandExtMap) { // 根据开始期间、结束期间查询 List cuMemberBonusExpandList = new ArrayList<>(); // 获取所有订单的上级,根据订单往上一步步计算 // key:订单ID,value:订单向上找安置人列表 - Map> memberSettleMap = iCuMemberTreeService.batchQueryCuMemberSettlePlaceParent(settleTableName, period, yesterdayPeriod, firPurchaseOrderList); + Map> memberSettleMap = iCuMemberTreeService.batchQueryCuMemberSettlePlaceParent(settleTableName, period, firPurchaseOrderList); // 获取复购考核结果 List queryMemberList = new ArrayList<>(); @@ -672,12 +671,12 @@ public class BonusSettleFirstPurchaseHandle extends BonusSettleHandle { */ List calculateCoachBonus(Map cuMemberSettleExtMap, String settleTableName, String settleDateStr, BonusConfigDTO bonusConfigDTO, List firPurchaseOrderList, List cuMemberBonusExpandList, Integer period, Map cuMemberBonusMap, - Map cuAwardsControlMap, Map riskControlMap, List awardsList) { + Map cuAwardsControlMap, Map riskControlMap, List awardsList, boolean firstBool) { Map saOrderExtMap = new HashMap<>(ComputeUtil.mapInitCapacity(firPurchaseOrderList.size())); firPurchaseOrderList.forEach(saOrderExt -> saOrderExtMap.put(saOrderExt.getPkId(), saOrderExt)); return calculateCoachBonusOne(cuMemberSettleExtMap, settleTableName, settleDateStr, bonusConfigDTO, cuMemberBonusExpandList, period, - cuMemberBonusMap, saOrderExtMap, cuAwardsControlMap, riskControlMap, awardsList); + cuMemberBonusMap, saOrderExtMap, cuAwardsControlMap, riskControlMap, awardsList, firstBool); } /** @@ -686,7 +685,7 @@ public class BonusSettleFirstPurchaseHandle extends BonusSettleHandle { List calculateCoachBonusOne(Map cuMemberSettleExtMap, String settleTableName, String settleDateStr, BonusConfigDTO bonusConfigDTO, List cuMemberBonusExpandList, Integer period, Map cuMemberBonusMap, Map saOrderExtMap, Map cuAwardsControlMap, Map riskControlMap, - List awardsList) { + List awardsList, boolean firstBool) { // 领导奖数据列表 List cuMemberBonusCoachList = new ArrayList<>(); @@ -718,7 +717,7 @@ public class BonusSettleFirstPurchaseHandle extends BonusSettleHandle { // } List coachBonusList = calculateBonusCoach(cuMemberSettleExtMap, bonusConfigDTO, period, cuMemberBonusMap, saOrderExtMap, cuMemberAssessMap, bonusIdSettleMap, cuMemberBonusExpand, cuAwardsControlMap, - riskControlMap, cuMemberBonusNumMap, awardsList); + riskControlMap, cuMemberBonusNumMap, awardsList, firstBool); if (coachBonusList.size() > 0) { cuMemberBonusCoachList.addAll(coachBonusList); } @@ -733,7 +732,7 @@ public class BonusSettleFirstPurchaseHandle extends BonusSettleHandle { private List calculateBonusCoach(Map cuMemberSettleExtMap, BonusConfigDTO bonusConfigDTO, Integer period, Map cuMemberBonusMap, Map saOrderExtMap, Map cuMemberAssessMap, Map bonusIdSettleMap, CuMemberBonusExpand cuMemberBonusExpand, Map cuAwardsControlMap, - Map riskControlMap, Map cuMemberBonusNumMap, List awardsList) { + Map riskControlMap, Map cuMemberBonusNumMap, List awardsList, boolean firstBool) { // 目前这个会员只用来处理备注会员信息使用 CuMemberSettleExt sourceMemberSettleExt = bonusIdSettleMap.get(cuMemberBonusExpand.getPkBonus()); // 用于回写血缘总共多少代 @@ -761,13 +760,23 @@ public class BonusSettleFirstPurchaseHandle extends BonusSettleHandle { // 会员状态不正常 或者 停算收益 直接跳过 continue; } - if (validatePkBonusItems(bonusConfigDTO, targetMemberSettleExt.getPkSettleCountry(), EBonusItems.COACHING_INCOME.getValue())) { - // 校验当前国家是否有该奖项 - continue; + if (firstBool) { + if (validatePkBonusItems(bonusConfigDTO, targetMemberSettleExt.getPkSettleCountry(), EBonusItems.COACHING_INCOME.getValue())) { + // 校验当前国家是否有该奖项 + continue; + } + } else { + if (validatePkBonusItems(bonusConfigDTO, targetMemberSettleExt.getPkSettleCountry(), EBonusItems.COACHING_INCOME.getValue())) { + // 校验当前国家是否有该奖项 + continue; + } } + SaOrderExt saOrderExt = saOrderExtMap.get(cuMemberBonusExpand.getPkOrder()); - if (null == saOrderExt || !validateSecondOrderExistBonus(saOrderExt, EBonusItems.COACHING_INCOME.getValue())) { - // 订单为空 或者 判断二次发货是否有辅导收益 + if (null == saOrderExt +// || !validateSecondOrderExistBonus(saOrderExt, EBonusItems.COACHING_INCOME.getValue()) + ) { + // 订单为空 或者 判断二次发货是否有辅导收益 -- 原二次发货判断去掉 continue; } @@ -793,7 +802,7 @@ public class BonusSettleFirstPurchaseHandle extends BonusSettleHandle { awardCalRadio = coachAward.getCoachRatio(); } // 生成辅导收益明细 - CuMemberBonusCoach cuMemberBonusCoach = getCuMemberBonusCoach(bonusConfigDTO, cuMemberBonusExpand, i, targetMemberSettleExt, awardCalRadio); + CuMemberBonusCoach cuMemberBonusCoach = getCuMemberBonusCoach(bonusConfigDTO, cuMemberBonusExpand, i, targetMemberSettleExt, awardCalRadio, firstBool); // TODO new 如果拓展收益是延缓发放,那么辅导收益也需要延缓发放 if (EBonusIncomeStatus.DELAY_GRANT.getValue() == cuMemberBonusExpand.getIncomeStatus()) { cuMemberBonusCoach.setIncomeStatus(EBonusIncomeStatus.DELAY_GRANT.getValue()); @@ -823,11 +832,18 @@ public class BonusSettleFirstPurchaseHandle extends BonusSettleHandle { // 收益占比 BdBonusDeduct bdBonusDeduct = setBonusDetailDeduct(bonusConfigDTO, cuMemberBonusCoach, saOrderExt.getOrderAmount(), saOrderExt.getInExchangeRate()); - coachRemark(saOrderExt, cuMemberBonusCoach, sourceMemberSettleExt, targetMemberSettleExt); + coachRemark(saOrderExt, cuMemberBonusCoach, sourceMemberSettleExt, targetMemberSettleExt, firstBool); if (EBonusIncomeStatus.NORMAL.getValue() == cuMemberBonusCoach.getIncomeStatus()) { - cuMemberBonus.setCoachIncome(ComputeUtil.computeAdd(cuMemberBonus.getCoachIncome(), cuMemberBonusCoach.getPretaxIncome())); - setFirstPurchaseTotal(bdBonusDeduct, cuMemberBonus, cuMemberBonusCoach); + if (firstBool) { + // 首购处理 + cuMemberBonus.setCoachIncome(ComputeUtil.computeAdd(cuMemberBonus.getCoachIncome(), cuMemberBonusCoach.getPretaxIncome())); + setFirstPurchaseTotal(bdBonusDeduct, cuMemberBonus, cuMemberBonusCoach); + } else { + // 复购处理 + cuMemberBonus.setRepurCoachIncome(ComputeUtil.computeAdd(cuMemberBonus.getRepurCoachIncome(), cuMemberBonusCoach.getPretaxIncome())); + setPurchaseTotal(bdBonusDeduct, cuMemberBonus, cuMemberBonusCoach); + } } backMemberBonusCoachList.add(cuMemberBonusCoach); @@ -867,13 +883,15 @@ public class BonusSettleFirstPurchaseHandle extends BonusSettleHandle { } private CuMemberBonusCoach getCuMemberBonusCoach(BonusConfigDTO bonusConfigDTO, CuMemberBonusExpand cuMemberBonusExpand, - int i, CuMemberSettleExt targetMemberSettleExt, BigDecimal awardCalRadio) { + int i, CuMemberSettleExt targetMemberSettleExt, BigDecimal awardCalRadio, boolean firstBool) { + // 奖金项(首购、复购判断) + Integer bonusItems = firstBool ? EBonusItems.COACHING_INCOME.getValue() : EBonusItems.REPURCHASE_COACHING_INCOME.getValue(); CuMemberBonusCoach cuMemberBonusCoach = CuMemberBonusCoach.builder() .pkBonus(targetMemberSettleExt.getPkMember()) .pkOrder(cuMemberBonusExpand.getPkOrder()) - .pkBonusItems(getPkBonusItems(bonusConfigDTO, targetMemberSettleExt.getPkSettleCountry(), EBonusItems.COACHING_INCOME.getValue())) - .calType(ECalType.RATIO.getValue()) + .pkBonusItems(getPkBonusItems(bonusConfigDTO, targetMemberSettleExt.getPkSettleCountry(), bonusItems)) .incomeStatus(cuMemberBonusExpand.getIncomeStatus()) + .calType(ECalType.RATIO.getValue()) .calAchieve(cuMemberBonusExpand.getPretaxIncome()) .currentGeneration(i) // 计算比例 diff --git a/hzs-business/hzs-business-bonus/src/main/java/com/hzs/bonus/bonus/service/impl/BonusSettleHandle.java b/hzs-business/hzs-business-bonus/src/main/java/com/hzs/bonus/bonus/service/impl/BonusSettleHandle.java index 4048659c..2945a7f9 100644 --- a/hzs-business/hzs-business-bonus/src/main/java/com/hzs/bonus/bonus/service/impl/BonusSettleHandle.java +++ b/hzs-business/hzs-business-bonus/src/main/java/com/hzs/bonus/bonus/service/impl/BonusSettleHandle.java @@ -516,8 +516,9 @@ public abstract class BonusSettleHandle { * @Date: 2022/11/17 11:22 */ protected void coachRemark(SaOrderExt saOrderExt, CuMemberBonusCoach cuMemberBonusCoach, - CuMemberSettleExt sourceCuMemberSettleExt, CuMemberSettleExt targetCuMemberSettleExt) { - String remark = String.format(BonusMsgConstants.COACH, cuMemberBonusCoach.getCurrentGeneration(), saOrderExt.getOrderCode(), + CuMemberSettleExt sourceCuMemberSettleExt, CuMemberSettleExt targetCuMemberSettleExt, boolean firstBool) { + String remark = String.format(firstBool ? BonusMsgConstants.COACH : BonusMsgConstants.REPURCHASE_COACH, + cuMemberBonusCoach.getCurrentGeneration(), saOrderExt.getOrderCode(), sourceCuMemberSettleExt.getMemberCode() + sourceCuMemberSettleExt.getMemberName(), targetCuMemberSettleExt.getMemberCode() + targetCuMemberSettleExt.getMemberName(), cuMemberBonusCoach.getCalAchieve(), cuMemberBonusCoach.getCalValue()); @@ -837,6 +838,7 @@ public abstract class BonusSettleHandle { .repurPushIncome(BigDecimal.ZERO) .repurRangeIncome(BigDecimal.ZERO) .repurExpandIncome(BigDecimal.ZERO) + .repurCoachIncome(BigDecimal.ZERO) .repurRealSubtotal(BigDecimal.ZERO) .cloudDirectIncome(BigDecimal.ZERO) .cloudPurIncome(BigDecimal.ZERO) @@ -1080,7 +1082,9 @@ public abstract class BonusSettleHandle { // 处理扣项 setBonusDeduct(bdBonusDeduct, cuMemberBonus, bonusDetail); BigDecimal realIncome = ReflectUtils.invokeGetter(bonusDetail, BonusFieldConstants.REAL_INCOME); + // 复购实发小计 cuMemberBonus.setRepurRealSubtotal(ComputeUtil.computeAdd(cuMemberBonus.getRepurRealSubtotal(), realIncome)); + // 实发收益总计 cuMemberBonus.setRealIncomeTotal(ComputeUtil.computeAdd(cuMemberBonus.getRealIncomeTotal(), realIncome)); } diff --git a/hzs-business/hzs-business-bonus/src/main/java/com/hzs/bonus/bonus/service/impl/BonusSettlePurchaseHandle.java b/hzs-business/hzs-business-bonus/src/main/java/com/hzs/bonus/bonus/service/impl/BonusSettlePurchaseHandle.java index 9f4f8317..76e12c4a 100644 --- a/hzs-business/hzs-business-bonus/src/main/java/com/hzs/bonus/bonus/service/impl/BonusSettlePurchaseHandle.java +++ b/hzs-business/hzs-business-bonus/src/main/java/com/hzs/bonus/bonus/service/impl/BonusSettlePurchaseHandle.java @@ -139,12 +139,12 @@ public class BonusSettlePurchaseHandle extends BonusSettleHandle { * @param cuMemberBonusMap 所有计算出来的奖金汇总 */ List calculateRepurchaseExpandBonus(Map riskControlMap, Map cuMemberSettleExtMap, String settleTableName, String settleDateStr, - BonusConfigDTO bonusConfigDTO, Map systemConfigMap, List purchaseOrderList, Integer period, Integer yesterdayPeriod, + BonusConfigDTO bonusConfigDTO, Map systemConfigMap, List purchaseOrderList, Integer period, Map weekMemberBonusMap, Map cuMemberBonusMap, Map cuBonusExpandExtMap) { List cuMemberBonusExpandList = new ArrayList<>(); // 获取所有订单的上级,根据订单往上一步步计算 // key:订单ID,value:订单向上找安置人列表 - Map> memberSettleMap = iCuMemberTreeService.batchQueryCuMemberSettlePlaceParent(settleTableName, period, yesterdayPeriod, purchaseOrderList); + Map> memberSettleMap = iCuMemberTreeService.batchQueryCuMemberSettlePlaceParent(settleTableName, period, purchaseOrderList); // 订单安置上找所有会员列表 List memberSettleExtList = new ArrayList<>(); @@ -1032,7 +1032,7 @@ public class BonusSettlePurchaseHandle extends BonusSettleHandle { BigDecimal maxIncome = ComputeUtil.computeBonusMultiply(cuMemberBonusExpand.getCalAchieve(), gradeExpandRatio); // actualIncome = 业绩 * 等级扩展比例 BigDecimal actualIncome = ComputeUtil.computeBonusMultiply(cuMemberBonusExpand.getCalAchieve(), countryExpandRatio); - log.info("复购. maxIncome: {}, actualIncome: {}", maxIncome, actualIncome); + log.info("复购. maxIncome: {}, gradeExpandRatio: {}; actualIncome: {}, countryExpandRatio: {}", maxIncome, gradeExpandRatio, actualIncome, countryExpandRatio); // 获取等级对应的封顶值(累计复购扩展 + 当前等级对应订单的最大收益) BigDecimal expandIncome = ComputeUtil.computeAdd(ComputeUtil.computeAdd(cuMemberBonus.getRepurExpandIncome(), actualIncome), weekRepExpandIncome); diff --git a/hzs-business/hzs-business-bonus/src/main/java/com/hzs/bonus/bonus/service/impl/BonusSettleServiceImpl.java b/hzs-business/hzs-business-bonus/src/main/java/com/hzs/bonus/bonus/service/impl/BonusSettleServiceImpl.java index eed82063..a021dcdb 100644 --- a/hzs-business/hzs-business-bonus/src/main/java/com/hzs/bonus/bonus/service/impl/BonusSettleServiceImpl.java +++ b/hzs-business/hzs-business-bonus/src/main/java/com/hzs/bonus/bonus/service/impl/BonusSettleServiceImpl.java @@ -236,7 +236,13 @@ public class BonusSettleServiceImpl implements IBonusSettleService { // 计算领导奖 Map saOrderExtMap = new HashMap<>(1); saOrderExtMap.put(saOrderExt.getPkId(), saOrderExt); - List cuMemberBonusCoachList = bonusSettleFirstPurchaseHandle.calculateCoachBonusOne(cuMemberSettleExtMap, settleTableName, settleDate, bonusConfigDTO, cuMemberBonusExpandList, period, cuMemberBonusMap, saOrderExtMap, cuAwardsControlMap, riskControlMap, awardsList); + + // 领导奖现在首购、复购都有,此处需要传入参数区分 + boolean firstFlag = EOrderType.SPECIAL_REGISTER_ORDER.getValue() == saOrderExt.getOrderType() + || EOrderType.SPECIAL_UPGRADE_ORDER.getValue() == saOrderExt.getOrderType(); + // 领导奖处理 + List cuMemberBonusCoachList = bonusSettleFirstPurchaseHandle.calculateCoachBonusOne(cuMemberSettleExtMap, settleTableName, settleDate, bonusConfigDTO, cuMemberBonusExpandList, period, cuMemberBonusMap, saOrderExtMap, cuAwardsControlMap, riskControlMap, awardsList, firstFlag); + // 计算报单服务费 CuMemberBonusDetail cuMemberBonusDetail = bonusSettleFirstPurchaseHandle.calculateServiceBonusOne(settleDate, cuMemberAssessMap, cuMemberSettleExtMap, bonusConfigDTO, period, cuMemberBonusMap, saOrderExt); // 复购券 @@ -248,9 +254,11 @@ public class BonusSettleServiceImpl implements IBonusSettleService { cuMemberBonusExpandList.forEach(cuMemberBonusExpand -> cuMemberBonusExpand.setPkBonus(cuMemberBonusMap.get(cuMemberBonusExpand.getPkBonus()).getPkId())); iCuMemberBonusExpandService.batchInsertCuMemberBonusExpand(cuMemberBonusExpandList, memberIdSet); + cuMemberBonusCoachList.forEach(cuMemberBonusCoach -> cuMemberBonusCoach.setPkBonus(cuMemberBonusMap.get(cuMemberBonusCoach.getPkBonus()).getPkId())); iCuMemberBonusCoachService.batchInsertCuMemberBonusCoach(cuMemberBonusCoachList, memberIdSet); + List cuMemberBonusDetailList = new ArrayList<>(); if (cuMemberBonusDetail != null) { cuMemberBonusDetailList.add(cuMemberBonusDetail); @@ -678,7 +686,7 @@ public class BonusSettleServiceImpl implements IBonusSettleService { cuBonusExpandExtList.forEach(cuBonusExpandExt -> cuBonusExpandExtMap.put(cuBonusExpandExt.getPkMember(), cuBonusExpandExt)); if (firPurchaseOrderList.size() > 0) { calculateFirPurchaseOrder(riskControlMap, cuMemberSettleExtMap, currentSettleTableName, settleDate, systemConfigMap, bonusConfigDTO, - firPurchaseOrderList, period, yesterdayPeriod, weekMemberBonusMap, cuMemberBonusMap, recordDetailVO, awardsMap, awardsList, cuAwardsControlMap, cuBonusExpandExtMap); + firPurchaseOrderList, period, weekMemberBonusMap, cuMemberBonusMap, recordDetailVO, awardsMap, awardsList, cuAwardsControlMap, cuBonusExpandExtMap); } List cuMemberBonusList = new ArrayList<>(); for (CuMemberBonus cuMemberBonus : cuMemberBonusMap.values()) { @@ -827,12 +835,12 @@ public class BonusSettleServiceImpl implements IBonusSettleService { // 计算复购 if (repurchaseOrderList.size() > 0) { leXueRangeParam = calculatePurchaseOrder(riskControlMap, cuMemberSettleExtMap, currentSettleTableName, settleDate, systemConfigMap, bonusConfigDTO, - repurchaseOrderList, period, yesterdayPeriod, weekMemberBonusMap, cuMemberBonusMap, recordDetailVO, awardsMap, cuAwardsControlMap, cuBonusExpandExtMap, rangeDtoMap); + repurchaseOrderList, period, weekMemberBonusMap, cuMemberBonusMap, recordDetailVO, awardsMap, awardsList, cuAwardsControlMap, cuBonusExpandExtMap, rangeDtoMap); } // 计算首购 if (firPurchaseOrderList.size() > 0) { calculateFirPurchaseOrder(riskControlMap, cuMemberSettleExtMap, currentSettleTableName, settleDate, systemConfigMap, bonusConfigDTO, - firPurchaseOrderList, period, yesterdayPeriod, weekMemberBonusMap, cuMemberBonusMap, recordDetailVO, awardsMap, awardsList, cuAwardsControlMap, cuBonusExpandExtMap); + firPurchaseOrderList, period, weekMemberBonusMap, cuMemberBonusMap, recordDetailVO, awardsMap, awardsList, cuAwardsControlMap, cuBonusExpandExtMap); } // 计算商城业绩 if (mallOrderList.size() > 0) { @@ -870,9 +878,6 @@ public class BonusSettleServiceImpl implements IBonusSettleService { * * @param cuMemberBonusMap 奖金主表 * @param bonusRecordDetailVO 奖金明细表 - * @return: void - * @Author: sui q - * @Date: 2022/12/13 11:52 */ void insertCuMemberBonus(String settleDate, Integer period, Map cuMemberBonusMap, BonusRecordDetailVO bonusRecordDetailVO) { // 删除 直推收益明细表 @@ -885,9 +890,9 @@ public class BonusSettleServiceImpl implements IBonusSettleService { iCuMemberBonusDetailService.deleteCuMemberBonusDetail(period); // 删除 奖金收益明细表(复购极差) iCuMemberBonusRangeService.deleteCuMemberBonusRange(period); - // TODO new 删除拓展收益延缓主表 + // new 删除拓展收益延缓主表 iCuMemberBonusDelayService.deleteCuMemberBonusDelay(period); - // TODO new 删除拓展收益延缓明细表 + // new 删除拓展收益延缓明细表 iCuMemberBonusDelayDetailService.deleteCuMemberBonusDelayDetail(period); // 删除 会员奖金汇总表 iCuMemberBonusService.deleteCuMemberBonus(period); @@ -979,14 +984,12 @@ public class BonusSettleServiceImpl implements IBonusSettleService { } /** + * 根据订单类型封装为不同订单列表 + * * @param firPurchaseOrderList 首购 * @param repurchaseOrderList 复购 * @param mallOrderList 商城 * @param saOrderExt 来源订单 - * @Description: 根据订单类型封装为不同订单列表 - * @return: void - * @Author: sui q - * @Date: 2023/2/13 15:08 */ private void packageSaOrderListByType(List firPurchaseOrderList, List repurchaseOrderList, List mallOrderList, SaOrderExt saOrderExt) { @@ -1018,7 +1021,7 @@ public class BonusSettleServiceImpl implements IBonusSettleService { * @param firPurchaseOrderList 首购订单 */ private void calculateFirPurchaseOrder(Map riskControlMap, Map cuMemberSettleExtMap, String settleTableName, String settleDate, - Map systemConfigMap, BonusConfigDTO bonusConfigDTO, List firPurchaseOrderList, Integer period, Integer yesterdayPeriod, + Map systemConfigMap, BonusConfigDTO bonusConfigDTO, List firPurchaseOrderList, Integer period, Map weekMemberBonusMap, Map cuMemberBonusMap, BonusRecordDetailVO bonusRecordDetailVO, Map awardsMap, List awardsList, Map cuAwardsControlMap, Map cuBonusExpandExtMap) { // 获得国家是三单循环还是四单循环 @@ -1031,7 +1034,7 @@ public class BonusSettleServiceImpl implements IBonusSettleService { //****************************计算量奖(拓展收益)*****************************/ List cuMemberBonusExpandList = bonusSettleFirstPurchaseHandle.calculateExpandBonus(cuMemberSettleExtMap, settleDate, settleTableName, bonusConfigDTO, systemConfigMap, - firPurchaseOrderList, period, yesterdayPeriod, weekMemberBonusMap, cuMemberBonusMap, riskControlMap, cuBonusExpandExtMap); + firPurchaseOrderList, period, weekMemberBonusMap, cuMemberBonusMap, riskControlMap, cuBonusExpandExtMap); if (cuMemberBonusExpandList.size() > 0) { if (null == bonusRecordDetailVO.getCuMemberBonusExpandList()) { bonusRecordDetailVO.setCuMemberBonusExpandList(cuMemberBonusExpandList); @@ -1043,10 +1046,10 @@ public class BonusSettleServiceImpl implements IBonusSettleService { bonusSettlePurchaseHandle.handleFirExpandDelay(cuMemberBonusExpandList, period, bonusRecordDetailVO); } - //*********************************计算领导奖(辅导收益)************************/ + //*********************************计算领导奖(首购辅导收益)************************/ // 判断是否有量奖,有量奖有辅导奖 List cuMemberBonusCoachList = bonusSettleFirstPurchaseHandle.calculateCoachBonus(cuMemberSettleExtMap, settleTableName, settleDate, bonusConfigDTO, firPurchaseOrderList, - cuMemberBonusExpandList, period, cuMemberBonusMap, cuAwardsControlMap, riskControlMap, awardsList); + cuMemberBonusExpandList, period, cuMemberBonusMap, cuAwardsControlMap, riskControlMap, awardsList, true); bonusRecordDetailVO.setCuMemberBonusCoachList(cuMemberBonusCoachList); //*********************************计算服务奖************************/ @@ -1062,10 +1065,10 @@ public class BonusSettleServiceImpl implements IBonusSettleService { MemberBonusDetailCalVO memberBonusDetailCalVO = calculateOrderRatio(memberBonusDetailCalVoMap, cuMemberBonusExpand); memberBonusDetailCalVO.setExpandIncome(ComputeUtil.computeAdd(memberBonusDetailCalVO.getExpandIncome(), cuMemberBonusExpand.getRealIncome())); }); -// cuMemberBonusCoachList.forEach(cuMemberBonusCoach -> { -// MemberBonusDetailCalVO memberBonusDetailCalVO = calculateOrderRatio(memberBonusDetailCalVoMap, cuMemberBonusCoach); -// memberBonusDetailCalVO.setCoachIncome(ComputeUtil.computeAdd(memberBonusDetailCalVO.getCoachIncome(), cuMemberBonusCoach.getRealIncome())); -// }); + cuMemberBonusCoachList.forEach(cuMemberBonusCoach -> { + MemberBonusDetailCalVO memberBonusDetailCalVO = calculateOrderRatio(memberBonusDetailCalVoMap, cuMemberBonusCoach); + memberBonusDetailCalVO.setCoachIncome(ComputeUtil.computeAdd(memberBonusDetailCalVO.getCoachIncome(), cuMemberBonusCoach.getRealIncome())); + }); cuMemberBonusDetailList.forEach(cuMemberBonusDetail -> { MemberBonusDetailCalVO memberBonusDetailCalVO = calculateOrderRatio(memberBonusDetailCalVoMap, cuMemberBonusDetail); memberBonusDetailCalVO.setServiceIncome(ComputeUtil.computeAdd(memberBonusDetailCalVO.getServiceIncome(), cuMemberBonusDetail.getRealIncome())); @@ -1088,12 +1091,12 @@ public class BonusSettleServiceImpl implements IBonusSettleService { cuMemberBonusExpand.setOrderDialRatio(ComputeUtil.computeDivide(memberBonusDetailCalVO.getRealIncome(), saOrderExt.getOrderAmount())); }); // 辅导收益 -// cuMemberBonusCoachList.forEach(cuMemberBonusCoach -> { -// MemberBonusDetailCalVO memberBonusDetailCalVO = memberBonusDetailCalVoMap.get(cuMemberBonusCoach.getPkOrder()); -// SaOrderExt saOrderExt = saOrderExtMap.get(memberBonusDetailCalVO.getPkOrder()); -// cuMemberBonusCoach.setIncomeDialRatio(ComputeUtil.computeDivide(memberBonusDetailCalVO.getCoachIncome(), memberBonusDetailCalVO.getRealIncome())); -// cuMemberBonusCoach.setOrderDialRatio(ComputeUtil.computeDivide(memberBonusDetailCalVO.getRealIncome(), saOrderExt.getOrderAmount())); -// }); + cuMemberBonusCoachList.forEach(cuMemberBonusCoach -> { + MemberBonusDetailCalVO memberBonusDetailCalVO = memberBonusDetailCalVoMap.get(cuMemberBonusCoach.getPkOrder()); + SaOrderExt saOrderExt = saOrderExtMap.get(memberBonusDetailCalVO.getPkOrder()); + cuMemberBonusCoach.setIncomeDialRatio(ComputeUtil.computeDivide(memberBonusDetailCalVO.getCoachIncome(), memberBonusDetailCalVO.getRealIncome())); + cuMemberBonusCoach.setOrderDialRatio(ComputeUtil.computeDivide(memberBonusDetailCalVO.getRealIncome(), saOrderExt.getOrderAmount())); + }); // 报单服务费 cuMemberBonusDetailList.forEach(cuMemberBonusDetail -> { MemberBonusDetailCalVO memberBonusDetailCalVO = memberBonusDetailCalVoMap.get(cuMemberBonusDetail.getPkOrder()); @@ -1140,9 +1143,9 @@ public class BonusSettleServiceImpl implements IBonusSettleService { * @param rangeDtoMap 乐学奖金使用的汇率map */ private LeXueRangeParam calculatePurchaseOrder(Map riskControlMap, Map cuMemberSettleExtMap, String settleTableName, String settleDate, - Map systemConfigMap, BonusConfigDTO bonusConfigDTO, List purchaseOrderList, Integer period, Integer yesterdayPeriod, + Map systemConfigMap, BonusConfigDTO bonusConfigDTO, List purchaseOrderList, Integer period, Map weekMemberBonusMap, Map cuMemberBonusMap, BonusRecordDetailVO bonusRecordDetailVO, - Map awardsMap, Map cuAwardsControlMap, Map cuBonusExpandExtMap, Map rangeDtoMap) { + Map awardsMap, List awardsList, Map cuAwardsControlMap, Map cuBonusExpandExtMap, Map rangeDtoMap) { //****************************复购直推***************************** // 查找10代血缘,验证复购考核,考核通过的给与奖金 紧缩 // List cuMemberBonusPushList = bonusSettlePurchaseHandle.calculateRepurchasePushBonus(cuMemberSettleExtMap, settleTableName, settleDate, bonusConfigDTO, purchaseOrderList, period, cuMemberBonusMap); @@ -1155,7 +1158,7 @@ public class BonusSettleServiceImpl implements IBonusSettleService { // } //****************************计算量奖(拓展收益)*****************************/ List cuMemberBonusExpandList = bonusSettlePurchaseHandle.calculateRepurchaseExpandBonus(riskControlMap, cuMemberSettleExtMap, settleTableName, settleDate, - bonusConfigDTO, systemConfigMap, purchaseOrderList, period, yesterdayPeriod, weekMemberBonusMap, cuMemberBonusMap, cuBonusExpandExtMap); + bonusConfigDTO, systemConfigMap, purchaseOrderList, period, weekMemberBonusMap, cuMemberBonusMap, cuBonusExpandExtMap); if (cuMemberBonusExpandList.size() > 0) { if (null == bonusRecordDetailVO.getCuMemberBonusExpandList()) { bonusRecordDetailVO.setCuMemberBonusExpandList(cuMemberBonusExpandList); @@ -1167,6 +1170,12 @@ public class BonusSettleServiceImpl implements IBonusSettleService { bonusSettlePurchaseHandle.handleRepExpandDelay(cuMemberBonusExpandList, period, bonusRecordDetailVO); } + //*********************************计算领导奖(复购辅导收益)************************/ + // 判断是否有量奖,有量奖有辅导奖 + List cuMemberBonusCoachList = bonusSettleFirstPurchaseHandle.calculateCoachBonus(cuMemberSettleExtMap, settleTableName, settleDate, bonusConfigDTO, purchaseOrderList, + cuMemberBonusExpandList, period, cuMemberBonusMap, cuAwardsControlMap, riskControlMap, awardsList, false); + bonusRecordDetailVO.setCuMemberBonusCoachList(cuMemberBonusCoachList); + //****************************乐学极差(复购)*****************************/ LeXueRangeParam leXueRangeParam = new LeXueRangeParam(); List cuMemberBonusRangeList = bonusSettlePurchaseHandle.calculateRepurchaseRangeBonus(cuMemberSettleExtMap, settleTableName, settleDate, rangeDtoMap, awardsMap, @@ -1178,6 +1187,10 @@ public class BonusSettleServiceImpl implements IBonusSettleService { MemberBonusDetailCalVO memberBonusDetailCalVO = calculateOrderRatio(memberBonusDetailCalVoMap, cuMemberBonusExpand); memberBonusDetailCalVO.setRepExpandIncome(ComputeUtil.computeAdd(memberBonusDetailCalVO.getRepExpandIncome(), cuMemberBonusExpand.getRealIncome())); }); + cuMemberBonusCoachList.forEach(cuMemberBonusCoach -> { + MemberBonusDetailCalVO memberBonusDetailCalVO = calculateOrderRatio(memberBonusDetailCalVoMap, cuMemberBonusCoach); + memberBonusDetailCalVO.setRepCoachIncome(ComputeUtil.computeAdd(memberBonusDetailCalVO.getRepCoachIncome(), cuMemberBonusCoach.getRealIncome())); + }); cuMemberBonusRangeList.forEach(cuMemberBonusRange -> { MemberBonusDetailCalVO memberBonusDetailCalVO = calculateOrderRatio(memberBonusDetailCalVoMap, cuMemberBonusRange); memberBonusDetailCalVO.setRepRangeIncome(ComputeUtil.computeAdd(memberBonusDetailCalVO.getRepRangeIncome(), cuMemberBonusRange.getRealIncome())); @@ -1193,6 +1206,13 @@ public class BonusSettleServiceImpl implements IBonusSettleService { cuMemberBonusExpand.setIncomeDialRatio(ComputeUtil.computeDivide(memberBonusDetailCalVO.getRepExpandIncome(), memberBonusDetailCalVO.getRealIncome())); cuMemberBonusExpand.setOrderDialRatio(ComputeUtil.computeDivide(memberBonusDetailCalVO.getRealIncome(), saOrderExt.getOrderAmount())); }); + // 辅导收益 + cuMemberBonusCoachList.forEach(cuMemberBonusCoach -> { + MemberBonusDetailCalVO memberBonusDetailCalVO = memberBonusDetailCalVoMap.get(cuMemberBonusCoach.getPkOrder()); + SaOrderExt saOrderExt = saOrderExtMap.get(memberBonusDetailCalVO.getPkOrder()); + cuMemberBonusCoach.setIncomeDialRatio(ComputeUtil.computeDivide(memberBonusDetailCalVO.getRepCoachIncome(), memberBonusDetailCalVO.getRealIncome())); + cuMemberBonusCoach.setOrderDialRatio(ComputeUtil.computeDivide(memberBonusDetailCalVO.getRealIncome(), saOrderExt.getOrderAmount())); + }); // 复购极差 cuMemberBonusRangeList.forEach(cuMemberBonusRange -> { MemberBonusDetailCalVO memberBonusDetailCalVO = memberBonusDetailCalVoMap.get(cuMemberBonusRange.getPkOrder()); @@ -1324,6 +1344,7 @@ public class BonusSettleServiceImpl implements IBonusSettleService { .coachIncome(BigDecimal.ZERO) .serviceIncome(BigDecimal.ZERO) .repExpandIncome(BigDecimal.ZERO) + .repCoachIncome(BigDecimal.ZERO) .repRangeIncome(BigDecimal.ZERO) .hiFunIncome(BigDecimal.ZERO) .haiFunIncome(BigDecimal.ZERO) diff --git a/hzs-business/hzs-business-bonus/src/main/java/com/hzs/bonus/bonus/service/impl/CuMemberBonusCoachServiceImpl.java b/hzs-business/hzs-business-bonus/src/main/java/com/hzs/bonus/bonus/service/impl/CuMemberBonusCoachServiceImpl.java index fbfcc117..2c2e599d 100644 --- a/hzs-business/hzs-business-bonus/src/main/java/com/hzs/bonus/bonus/service/impl/CuMemberBonusCoachServiceImpl.java +++ b/hzs-business/hzs-business-bonus/src/main/java/com/hzs/bonus/bonus/service/impl/CuMemberBonusCoachServiceImpl.java @@ -13,9 +13,7 @@ import java.util.List; import java.util.Set; /** - *

* 会员奖金-辅导收益明细表 服务实现类 - *

* * @author hzs * @since 2022-11-15 @@ -37,20 +35,19 @@ public class CuMemberBonusCoachServiceImpl extends ServiceImpl cuMemberBonusCoachList, Set memberIdSet) { - if(cuMemberBonusCoachList.size() == 0){ + if (cuMemberBonusCoachList.size() == 0) { return; } List cuMemberBonusCoaches = new ArrayList<>(); for (CuMemberBonusCoach cuMemberBonusCoach : cuMemberBonusCoachList) { - if(memberIdSet.contains(cuMemberBonusCoach.getPkBonus())){ + if (memberIdSet.contains(cuMemberBonusCoach.getPkBonus())) { cuMemberBonusCoaches.add(cuMemberBonusCoach); } } - if(cuMemberBonusCoaches.size()==0){ + if (cuMemberBonusCoaches.size() == 0) { return; } List> lists = cuMemberBonusSettle.handleCutList(cuMemberBonusCoaches); - lists.forEach(list -> - baseMapper.batchInsertCuMemberBonusCoach(list)); + lists.forEach(list -> baseMapper.batchInsertCuMemberBonusCoach(list)); } } diff --git a/hzs-business/hzs-business-bonus/src/main/java/com/hzs/bonus/bonus/service/impl/CuMemberBonusServiceImpl.java b/hzs-business/hzs-business-bonus/src/main/java/com/hzs/bonus/bonus/service/impl/CuMemberBonusServiceImpl.java index 5393fecb..acd6892c 100644 --- a/hzs-business/hzs-business-bonus/src/main/java/com/hzs/bonus/bonus/service/impl/CuMemberBonusServiceImpl.java +++ b/hzs-business/hzs-business-bonus/src/main/java/com/hzs/bonus/bonus/service/impl/CuMemberBonusServiceImpl.java @@ -592,8 +592,7 @@ public class CuMemberBonusServiceImpl extends ServiceImpl> lists = cuMemberBonusSettle.handleCutList(cuMemberBonusList); - lists.forEach(list -> - baseMapper.batchInsertCuMemberBonus(list)); + lists.forEach(list -> baseMapper.batchInsertCuMemberBonus(list)); } @Override @@ -618,15 +617,15 @@ public class CuMemberBonusServiceImpl extends ServiceImpl queryCuMemberBonusByCondition(Integer pkCountry, Integer grantStatus, Integer startPeriod, Integer endPeriod) { QueryWrapper queryWrapper = new QueryWrapper<>(); - queryWrapper.select("pk_member,pk_rate,pk_country,sum(direct_income) direct_income,sum(expand_income) expand_income,sum(expand_no_capping) expand_no_capping," + - "sum(expand_capping) expand_capping,sum(coach_income) coach_income,sum(share_income) share_income," + - "sum(service_income) service_income,sum(back_points) back_points,sum(service_spend) service_spend," + - "sum(pur_real_subtotal) pur_real_subtotal,sum(repur_range_income) repur_range_income,sum(repur_expand_income) repur_expand_income," + - "sum(repur_real_subtotal) repur_real_subtotal,sum(cloud_direct_income) cloud_direct_income,sum(cloud_pur_income) cloud_pur_income," + - "sum(cloud_repur_income) cloud_repur_income,sum(cloud_real_subtotal) cloud_real_subtotal,sum(repur_coupon) repur_coupon," + - "sum(REPUR_COUPON_SHARE) REPUR_COUPON_SHARE,sum(REPUR_COUPON_SUBTOTAL) REPUR_COUPON_SUBTOTAL," + - "sum(global_points) global_points,sum(car_award_points) car_award_points,sum(hi_fun_income) hi_fun_income," + - "sum(real_income_total) real_income_total"); + queryWrapper.select("pk_member, pk_rate, pk_country, sum(direct_income) direct_income, " + + "sum(expand_income) expand_income, sum(expand_no_capping) expand_no_capping, sum(expand_capping) expand_capping, sum(coach_income) coach_income, " + + "sum(share_income) share_income, sum(service_income) service_income, sum(back_points) back_points, sum(service_spend) service_spend, " + + "sum(pur_real_subtotal) pur_real_subtotal, sum(repur_range_income) repur_range_income, sum(repur_expand_income) repur_expand_income, sum(repur_coach_income) repur_coach_income, " + + "sum(repur_real_subtotal) repur_real_subtotal, sum(cloud_direct_income) cloud_direct_income, sum(cloud_pur_income) cloud_pur_income, " + + "sum(cloud_repur_income) cloud_repur_income, sum(cloud_real_subtotal) cloud_real_subtotal, sum(repur_coupon) repur_coupon, " + + "sum(REPUR_COUPON_SHARE) REPUR_COUPON_SHARE, sum(REPUR_COUPON_SUBTOTAL) REPUR_COUPON_SUBTOTAL, " + + "sum(global_points) global_points, sum(car_award_points) car_award_points, sum(hi_fun_income) hi_fun_income, " + + "sum(real_income_total) real_income_total "); queryWrapper.eq(SystemFieldConstants.PK_COUNTRY, pkCountry); queryWrapper.eq(MemberBonusFieldConstants.GRANT_STATUS, grantStatus); queryWrapper.eq(MemberBonusFieldConstants.INCOME_STATUS, ENormalDisable.NORMAL.getValue()); diff --git a/hzs-business/hzs-business-bonus/src/main/java/com/hzs/bonus/bonus/vo/CuMemberBonusVO.java b/hzs-business/hzs-business-bonus/src/main/java/com/hzs/bonus/bonus/vo/CuMemberBonusVO.java index f668dd0e..7d1cb3be 100644 --- a/hzs-business/hzs-business-bonus/src/main/java/com/hzs/bonus/bonus/vo/CuMemberBonusVO.java +++ b/hzs-business/hzs-business-bonus/src/main/java/com/hzs/bonus/bonus/vo/CuMemberBonusVO.java @@ -26,7 +26,7 @@ public class CuMemberBonusVO implements Serializable { "directIncome", "expandIncome", "expandNoCapping", "expandCapping", "coachIncome", "shareIncome", "serviceIncome", "cloudDirectIncome", "cloudPurIncome", "cloudRepurIncome", "repurPushIncome", "repurRangeIncome", "repurExpandIncome", - "repurCoupon", "repurCouponShare", "backPoints", "serviceSpend", + "repurCoachIncome", "repurCoupon", "repurCouponShare", "backPoints", "serviceSpend", "globalPoints", "carAwardPoints", "storeIncome", "hiFunIncome", "makerDirectIncome", "makerShareIncome", "makerRealSubtotal", "purRealSubtotal", "cloudRealSubtotal", "repurRealSubtotal", "repurCouponSubtotal", "realIncomeTotal"}; @@ -257,6 +257,17 @@ public class CuMemberBonusVO implements Serializable { @Excel(name = "复购拓展收益($)", scale = 2) private BigDecimal repurExpandIncome; + /** + * 复购拓展收益 + */ + @Excel(name = "复购拓展收益", scale = 2) + private BigDecimal repurCoachIncomeOri; + /** + * 复购拓展收益 + */ + @Excel(name = "复购拓展收益($)", scale = 2) + private BigDecimal repurCoachIncome; + /** * 复购卷 */ diff --git a/hzs-business/hzs-business-bonus/src/main/java/com/hzs/bonus/bonus/vo/MemberBonusDetailCalVO.java b/hzs-business/hzs-business-bonus/src/main/java/com/hzs/bonus/bonus/vo/MemberBonusDetailCalVO.java index c1a7a940..c07df5ff 100644 --- a/hzs-business/hzs-business-bonus/src/main/java/com/hzs/bonus/bonus/vo/MemberBonusDetailCalVO.java +++ b/hzs-business/hzs-business-bonus/src/main/java/com/hzs/bonus/bonus/vo/MemberBonusDetailCalVO.java @@ -80,6 +80,11 @@ public class MemberBonusDetailCalVO implements Serializable { */ private BigDecimal repExpandIncome; + /** + * 复购辅导收益 + */ + private BigDecimal repCoachIncome; + /** * 复购极差收益 */ diff --git a/hzs-business/hzs-business-bonus/src/main/resources/mapper/member/achieve/CuMemberTreeMapper.xml b/hzs-business/hzs-business-bonus/src/main/resources/mapper/member/achieve/CuMemberTreeMapper.xml index 35fb703a..5da155d0 100644 --- a/hzs-business/hzs-business-bonus/src/main/resources/mapper/member/achieve/CuMemberTreeMapper.xml +++ b/hzs-business/hzs-business-bonus/src/main/resources/mapper/member/achieve/CuMemberTreeMapper.xml @@ -1370,11 +1370,16 @@ left join ( select cmbd.pk_member, cmbd.after_grant_income from CU_MEMBER_BONUS_DELAY cmbd + where exists (select 1 + from (select cmbd.pk_member, max(cmbd.period) period + from cu_member_bonus_delay cmbd where cmbd.del_flag = 0 - and cmbd.period = #{yesterdayPeriod} + group by cmbd.pk_member) t + where t.pk_member = cmbd.pk_member + and t.period = cmbd.period) ) cmb on cmb.pk_member = a.pk_member - order by a.pk_order,a.sort + order by a.pk_order, a.sort select b.period,cp.settle_date,so.order_code,so.order_type,bt.short_name source_country_name, - cu.member_code source_member_code,cu.member_name source_member_name,so.pk_rate,so.pk_country pk_source_country,bc.out_exchange_rate,so.order_amount, + cu.member_code source_member_code,cu.member_name source_member_name,so.pk_rate,so.pk_country + pk_source_country,bc.out_exchange_rate,so.order_amount, so.order_achieve,b.pk_country,b.pk_bonus_items,b.pretax_income,b.income_tax,b.real_income,b.income_status, tar.member_code,tar.member_name,bg.pk_transaction pk_settle_grade,ba.pk_transaction pk_awards,bv.vertex_name,ct.team_name, b.remark,b.income_ratio,b.income_dial_ratio,b.order_dial_ratio,b.current_generation,b.coach_generation, @@ -99,7 +104,8 @@ cu.nick_name from sa_order so inner join ( - select cb.pk_member,cc.pk_order,cb.period,cb.pk_country,cc.pk_bonus_items,cc.income_status,cc.CAL_ACHIEVE,cc.pretax_income,cc.income_tax,cc.real_income, + select + cb.pk_member,cc.pk_order,cb.period,cb.pk_country,cc.pk_bonus_items,cc.income_status,cc.CAL_ACHIEVE,cc.pretax_income,cc.income_tax,cc.real_income, cc.remark,cc.income_ratio,cc.income_dial_ratio,cc.order_dial_ratio,cc.current_generation,cc.coach_generation,cc.coach_no_capping, cc.coach_capping,cc.coach_normal_half,cc.coach_normal_real from cu_member_bonus cb @@ -153,6 +159,7 @@ order by b.period,b.pk_bonus_items,b.real_income desc + +