From 45030e2077a0c4dd9a385a8b3a4414377638f112 Mon Sep 17 00:00:00 2001 From: cabbage <281119120@qq.com> Date: Wed, 13 Aug 2025 17:36:15 +0800 Subject: [PATCH] =?UTF-8?q?##=20=E5=A4=8D=E8=B4=AD=E9=85=8D=E9=80=81?= =?UTF-8?q?=E6=94=B6=E7=9B=8A=EF=BC=9B=E5=A4=8D=E8=B4=AD=E5=88=86=E5=85=AC?= =?UTF-8?q?=E5=8F=B8=E7=BA=A7=E5=B7=AE=E6=94=B6=E7=9B=8A=EF=BC=9B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../hzs/member/base/IMemberServiceApi.java | 10 + .../manage/CuMemberBonusController.java | 59 ++---- .../bonus/service/impl/BonusSettleHandle.java | 18 +- .../service/impl/BonusSettleRangeHandle.java | 190 ++++++++++++++++-- .../impl/CuMemberBonusServiceImpl.java | 2 + .../bonus/bonus/vo/BonusRecordDetailVO.java | 2 +- .../com/hzs/bonus/bonus/vo/BonusTotalVO.java | 136 +------------ .../hzs/bonus/bonus/vo/CuMemberBonusVO.java | 50 +---- .../bonus/vo/MemberBonusFirstPurchaseVO.java | 12 +- .../bonus/bonus/CuMemberBonusMapper.xml | 46 +++-- .../mapper/bonus/order/BonusOrderMapper.xml | 61 ++++++ .../base/provider/MemberServiceProvider.java | 21 ++ .../mapper/CuMemberRetailRegionMapper.java | 27 ++- .../service/ICuMemberRetailRegionService.java | 19 +- .../impl/CuMemberRetailRegionServiceImpl.java | 11 +- .../member/CuMemberRetailRegionMapper.xml | 33 +-- .../controller/api/ApiOrderController.java | 2 +- .../enums/controller/EnumsInitController.java | 4 - .../core/constant/BonusFieldConstants.java | 5 - .../common/core/constant/RetailConstants.java | 11 + .../core/constant/msg/BonusMsgConstants.java | 5 + .../common/core/enums/EBonusIncomeStatus.java | 24 ++- .../hzs/common/core/enums/EBonusItems.java | 9 +- .../com/hzs/common/core/enums/ECalType.java | 6 - .../com/hzs/common/core/enums/EOrderType.java | 16 +- .../domain/member/bonus/CuMemberBonus.java | 2 +- 26 files changed, 437 insertions(+), 344 deletions(-) diff --git a/bd-api/bd-api-member/src/main/java/com/hzs/member/base/IMemberServiceApi.java b/bd-api/bd-api-member/src/main/java/com/hzs/member/base/IMemberServiceApi.java index 8c73f2c0..eacd699b 100644 --- a/bd-api/bd-api-member/src/main/java/com/hzs/member/base/IMemberServiceApi.java +++ b/bd-api/bd-api-member/src/main/java/com/hzs/member/base/IMemberServiceApi.java @@ -5,6 +5,7 @@ import com.hzs.common.domain.member.base.CuMember; import com.hzs.common.domain.member.base.CuMemberRegister; import com.hzs.common.domain.member.ext.CuMemberAccountExt; import com.hzs.common.domain.member.ext.CuMemberExt; +import com.hzs.common.domain.retail.member.CuMemberRetailRegion; import com.hzs.common.domain.sale.ext.SaOrderExt; import com.hzs.common.domain.sale.order.SaOrder; import com.hzs.member.account.dto.BusinessCommissionDTO; @@ -14,6 +15,7 @@ import com.hzs.member.base.dto.ZeroElementRevokeDTO; import com.hzs.member.handlebusiness.dto.AnalysisBusinessAppealParam; import java.math.BigDecimal; +import java.util.Date; import java.util.List; import java.util.Map; @@ -381,4 +383,12 @@ public interface IMemberServiceApi { */ R otherRetailMember(CuMember cuMember, SaOrderExt saOrder, CuMemberAccountExt cuMemberAccountExt, Boolean activateFlag); + /** + * 有效区域列表 + * + * @param queryDate + * @return + */ + R> listEffectiveRegion(Date queryDate); + } diff --git a/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/controller/manage/CuMemberBonusController.java b/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/controller/manage/CuMemberBonusController.java index e8aaa639..aa7cf83a 100644 --- a/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/controller/manage/CuMemberBonusController.java +++ b/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/controller/manage/CuMemberBonusController.java @@ -10,14 +10,11 @@ import com.hzs.bonus.bonus.vo.MemberBonusDetailSerVO; import com.hzs.common.core.annotation.AccessPermissions; import com.hzs.common.core.annotation.ColumnAuthority; import com.hzs.common.core.annotation.Log; -import com.hzs.common.core.constant.BonusFieldConstants; import com.hzs.common.core.constant.EnumsPrefixConstants; import com.hzs.common.core.enums.*; -import com.hzs.common.core.utils.ComputeUtil; import com.hzs.common.core.utils.DateUtils; import com.hzs.common.core.utils.StringUtils; import com.hzs.common.core.utils.poi.ExcelUtil; -import com.hzs.common.core.utils.reflect.ReflectUtils; import com.hzs.common.core.web.controller.BaseController; import com.hzs.common.core.web.page.TableDataInfo; import com.hzs.common.domain.member.ext.CuMemberBonusExt; @@ -46,14 +43,14 @@ import java.util.stream.Collectors; public class CuMemberBonusController extends BaseController { @Autowired - private ICuMemberBonusService cuMemberBonusService; + private ICuMemberBonusService iCuMemberBonusService; @Autowired - private ITransactionCommonService transactionCommonService; + private ITransactionCommonService iTransactionCommonService; @DubboReference - IUserServiceApi userServiceApi; + IUserServiceApi iUserServiceApi; @DubboReference - IMenuColumnServiceApi menuColumnServiceApi; + IMenuColumnServiceApi iMenuColumnServiceApi; /** * 分页查询会员某个时间段内的奖金汇总 @@ -73,7 +70,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; @@ -94,9 +91,9 @@ 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(); + Map sourceBonusList = iMenuColumnServiceApi.queryMenuColumn("totalBonus", SecurityUtils.getUserId()).getData(); ExcelUtil util = new ExcelUtil<>(BonusTotalVO.class, sourceBonusList); util.exportExcel(response, bonusTotalVoList, "奖金汇总导出"); } @@ -105,9 +102,6 @@ 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) { - ReflectUtils.invokeSetter(bonusTotalVO, key + BonusFieldConstants.INCOME_SUFFIX, ComputeUtil.computeMultiply(ReflectUtils.invokeGetter(cuMemberBonus, key), cuMemberBonus.getOutExchangeRate())); - } totalVoList.add(bonusTotalVO); }); return totalVoList; @@ -136,8 +130,8 @@ public class CuMemberBonusController extends BaseController { } packageBonusParam(bonusParam); startPage(); - List cuMemberBonusExtList = cuMemberBonusService.queryMemberBonusVoByConditionForServer(bonusParam); - CuMemberBonusExt cmb = cuMemberBonusService.queryMemberBonusByConditionForServerSum(bonusParam); + List cuMemberBonusExtList = iCuMemberBonusService.queryMemberBonusVoByConditionForServer(bonusParam); + CuMemberBonusExt cmb = iCuMemberBonusService.queryMemberBonusByConditionForServerSum(bonusParam); if (cmb != null) { cmb.setMemberCode("合计"); cuMemberBonusExtList.add(cmb); @@ -163,18 +157,18 @@ public class CuMemberBonusController extends BaseController { bonusParam.setPkVertexList(pkVertex); bonusParam.setPkCountry(SecurityUtils.getPkCountry()); packageBonusParam(bonusParam); - List cuMemberBonusExtList = cuMemberBonusService.queryMemberBonusVoByConditionForServer(bonusParam); - CuMemberBonusExt cuMemberBonusExt = cuMemberBonusService.initCuMemberBonus(); - cuMemberBonusExt.setMemberCode("小计:"); + List cuMemberBonusExtList = iCuMemberBonusService.queryMemberBonusVoByConditionForServer(bonusParam); + CuMemberBonusExt cuMemberBonusExt = iCuMemberBonusService.initCuMemberBonus(); + cuMemberBonusExt.setMemberCode("合计:"); 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); - Map bonusDetail = menuColumnServiceApi.queryMenuColumn("BonusDetail", SecurityUtils.getUserId()).getData(); + Map bonusDetail = iMenuColumnServiceApi.queryMenuColumn("BonusDetail", SecurityUtils.getUserId()).getData(); ExcelUtil util = new ExcelUtil<>(CuMemberBonusVO.class, bonusDetail); util.exportExcel(response, cuMemberBonusVoList, "奖金明细导出"); } @@ -183,13 +177,8 @@ public class CuMemberBonusController extends BaseController { List cuMemberBonusVoList = new ArrayList<>(cuMemberBonusExtList.size()); for (CuMemberBonusExt cuMemberBonusExt : cuMemberBonusExtList) { CuMemberBonusVO cuMemberBonusVO = BeanUtil.copyProperties(cuMemberBonusExt, CuMemberBonusVO.class); - cuMemberBonusVO.setMemberCode(cuMemberBonusExt.getMemberCode()); cuMemberBonusVO.setMemberName(cuMemberBonusExt.getMemberName()); - - for (String key : CuMemberBonusVO.INCOME_ARRAY) { - ReflectUtils.invokeSetter(cuMemberBonusVO, key + BonusFieldConstants.INCOME_SUFFIX, ComputeUtil.computeMultiply(ReflectUtils.invokeGetter(cuMemberBonusExt, key), cuMemberBonusExt.getOutExchangeRate())); - } cuMemberBonusVoList.add(cuMemberBonusVO); } return cuMemberBonusVoList; @@ -205,7 +194,7 @@ public class CuMemberBonusController extends BaseController { bonusParam.setPkCountry(SecurityUtils.getPkCountry()); packageBonusParam(bonusParam); startPage(); - return cuMemberBonusService.queryMemberBonusDetailSerVoByCondition(bonusParam); + return iCuMemberBonusService.queryMemberBonusDetailSerVoByCondition(bonusParam); } @@ -217,18 +206,14 @@ public class CuMemberBonusController extends BaseController { 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 transactionLongMap = iTransactionCommonService.exportEnumTransactionByDB(EnumsPrefixConstants.KEY_GRADE, EnumsPrefixConstants.KEY_AWARD); for (MemberBonusDetailSerVO memberBonusDetailSerVO : memberBonusDetailSerVOList) { - 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())) { - memberBonusDetailSerVO.setIncomeStatusVal(transactionMap.get(EnumsPrefixConstants.BONUS_INCOME_STATUS + memberBonusDetailSerVO.getIncomeStatus())); - } + memberBonusDetailSerVO.setOrderTypeVal(EOrderType.getLabelByValue(memberBonusDetailSerVO.getOrderType())); + memberBonusDetailSerVO.setIncomeStatusVal(EBonusIncomeStatus.getLabelByValue(memberBonusDetailSerVO.getIncomeStatus())); + if (transactionLongMap.containsKey(memberBonusDetailSerVO.getPkSettleGrade())) { memberBonusDetailSerVO.setPkSettleGradeVal(transactionLongMap.get(memberBonusDetailSerVO.getPkSettleGrade())); } @@ -236,12 +221,12 @@ public class CuMemberBonusController extends BaseController { memberBonusDetailSerVO.setPkAwardsVal(transactionLongMap.get(memberBonusDetailSerVO.getPkAwards())); } } - ExcelUtil util = new ExcelUtil<>(MemberBonusDetailSerVO.class, menuColumnServiceApi.queryMenuColumn("sourceBonus", SecurityUtils.getUserId()).getData()); + ExcelUtil util = new ExcelUtil<>(MemberBonusDetailSerVO.class, iMenuColumnServiceApi.queryMenuColumn("sourceBonus", SecurityUtils.getUserId()).getData()); util.exportExcel(response, memberBonusDetailSerVOList, "奖金来源导出"); } private void packageBonusParam(BonusParam bonusParam) { - UserAuthorityDTO userAuthorityDto = userServiceApi.getUserAuthority(SecurityUtils.getUserId()).getData(); + UserAuthorityDTO userAuthorityDto = iUserServiceApi.getUserAuthority(SecurityUtils.getUserId()).getData(); bonusParam.setVertexList(userAuthorityDto.getUserVertexList()); bonusParam.setTeamList(userAuthorityDto.getUserTeamList()); bonusParam.setSystemType(SecurityUtils.getSystemType()); diff --git a/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/service/impl/BonusSettleHandle.java b/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/service/impl/BonusSettleHandle.java index 15135c09..b6b5bdea 100644 --- a/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/service/impl/BonusSettleHandle.java +++ b/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/service/impl/BonusSettleHandle.java @@ -57,7 +57,7 @@ public abstract class BonusSettleHandle { * 获得 复购级差收益的备注 * * @param saOrderExt 订单编号 - * @param cuMemberBonusRange 报单服务费 + * @param cuMemberBonusRange * @param sourceMemberRangeExt 提供奖金的人 * @param targetMemberRangeExt 获得奖金的人 */ @@ -70,6 +70,22 @@ public abstract class BonusSettleHandle { cuMemberBonusRange.setRemark(remark); } + /** + * 获得 复购配送收益的备注 + * + * @param saOrderExt 订单编号 + * @param cuMemberBonusDetail + * @param sourceMemberRangeExt 提供奖金的人 + * @param targetMemberRangeExt 获得奖金的人 + */ + protected void regionRepurRetailRemark(SaOrderExt saOrderExt, CuMemberBonusDetail cuMemberBonusDetail, CuMemberRetailRangeExt sourceMemberRangeExt, + CuMemberRetailRangeExt targetMemberRangeExt) { + String remark = String.format(BonusMsgConstants.REPUR_REGION, saOrderExt.getOrderCode(), + sourceMemberRangeExt.getMemberCode() + sourceMemberRangeExt.getMemberName(), + targetMemberRangeExt.getMemberCode() + targetMemberRangeExt.getMemberName()); + cuMemberBonusDetail.setRemark(remark); + } + protected CuMemberBonus getCuMemberBonus(Integer period, Map cuMemberBonusMap, Long pkMember, Integer incomeStatus, Integer pkCountry, Integer pkRate) { if (cuMemberBonusMap.containsKey(pkMember)) { diff --git a/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/service/impl/BonusSettleRangeHandle.java b/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/service/impl/BonusSettleRangeHandle.java index 1294b643..7bb7f0a1 100644 --- a/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/service/impl/BonusSettleRangeHandle.java +++ b/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/service/impl/BonusSettleRangeHandle.java @@ -15,9 +15,12 @@ import com.hzs.common.domain.member.achieve.ext.CuMemberRetailRangeExt; import com.hzs.common.domain.member.bonus.*; import com.hzs.common.domain.member.detail.CuMemberLevel; import com.hzs.common.domain.member.detail.CuMemberServiceLog; +import com.hzs.common.domain.retail.member.CuMemberRetailRegion; import com.hzs.common.domain.sale.ext.SaOrderExt; +import com.hzs.common.domain.sale.ext.SaOrderWaresExt; import com.hzs.common.domain.sale.order.SaOrder; import com.hzs.common.domain.system.config.BdGrade; +import com.hzs.member.base.IMemberServiceApi; import com.hzs.member.detail.ICuMemberServiceLogServiceApi; import com.hzs.system.config.dto.BonusConfigDTO; import lombok.extern.slf4j.Slf4j; @@ -46,6 +49,8 @@ public class BonusSettleRangeHandle extends BonusSettleHandle { @DubboReference ICuMemberServiceLogServiceApi iCuMemberServiceLogServiceApi; + @DubboReference + IMemberServiceApi iMemberServiceApi; /** * 日结: @@ -94,18 +99,10 @@ public class BonusSettleRangeHandle extends BonusSettleHandle { List autoLevelList = iCuMemberGradeService.listAutoLevel(settleStartDate, settleEndDate); autoLevelList.forEach(tmpLevel -> autoLevelMap.put(tmpLevel.getPkOrder(), tmpLevel)); - // 按照血缘,查询该会员所有伞上会员 - List memberRetailRangeExtList = iCuMemberRetailRangeService.queryCuMemberRetailRangeParent(rangeTableName, retailOrderList); - // 会员结算map(key:会员ID,value:结算扩展) Map memberRangeExtMap = new HashMap<>(); - // 等级map(key:等级ID,value:等级对象) - Map gradeIdMap = new HashMap<>(); - // 等级列表 - List retaiGradeList = bonusConfigDTO.getRetaiGradeList(); - for (BdGrade bdGrade : retaiGradeList) { - gradeIdMap.put(bdGrade.getPkId(), bdGrade); - } + // 按照血缘,查询该会员所有伞上会员 + List memberRetailRangeExtList = iCuMemberRetailRangeService.queryCuMemberRetailRangeParent(rangeTableName, retailOrderList); // 结算会员map处理 for (CuMemberRetailRangeExt cuMemberRetailRangeExt : memberRetailRangeExtList) { if (!memberRangeExtMap.containsKey(cuMemberRetailRangeExt.getPkMember())) { @@ -113,8 +110,21 @@ public class BonusSettleRangeHandle extends BonusSettleHandle { } } - // 级差收益 + // 等级map(key:等级ID,value:等级对象) + Map gradeIdMap = new HashMap<>(); + // 等级列表 + List retaiGradeList = bonusConfigDTO.getRetaiGradeList(); + for (BdGrade bdGrade : retaiGradeList) { + gradeIdMap.put(bdGrade.getPkId(), bdGrade); + } + // 配送收益配置 + Map regionMap = iMemberServiceApi.listEffectiveRegion(settleStartDate).getData(); + + + // 直推、复购级差收益 List cuMemberBonusRangeList = new ArrayList<>(); + // 复购配送收益 + List cuMemberBonusDetailList = new ArrayList<>(); // 上面更新网体,按会员表是否激活进行处理 for (SaOrderExt saOrderExt : retailOrderList) { @@ -181,10 +191,18 @@ public class BonusSettleRangeHandle extends BonusSettleHandle { tmpMemberRetailRange.setGradeName(bdGrade.getGradeName()); } } - } else if (EOrderType.RETAIL_REPURCHASE.getValue() == saOrderExt.getOrderType() - && boxNum > 0) { - // 复购订单,计算复购级差 - cuMemberBonusRangeList.addAll(calculateRetailRepurRangeBonus(memberRangeExtMap, cuMemberBonusMap, bonusConfigDTO, period, saOrderExt)); + } else if (EOrderType.RETAIL_REPURCHASE.getValue() == saOrderExt.getOrderType()) { + // 复购订单 + if (boxNum > 0) { + // 存在盒数商品,计算复购级差 + cuMemberBonusRangeList.addAll(calculateRetailRepurRangeBonus(memberRangeExtMap, cuMemberBonusMap, + bonusConfigDTO, period, saOrderExt)); + } + // 计算配送收益 + if (regionMap.size() != 0) { + cuMemberBonusDetailList.addAll(calculateRetailRepurRegionBonus(memberRangeExtMap, cuMemberBonusMap, + bonusConfigDTO, period, saOrderExt, regionMap)); + } } } if (cuMemberBonusRangeList.size() > 0) { @@ -194,6 +212,13 @@ public class BonusSettleRangeHandle extends BonusSettleHandle { bonusRecordDetailVO.getCuMemberBonusRangeList().addAll(cuMemberBonusRangeList); } } + if (cuMemberBonusDetailList.size() > 0) { + if (bonusRecordDetailVO.getCuMemberBonusDetailList() == null) { + bonusRecordDetailVO.setCuMemberBonusDetailList(cuMemberBonusDetailList); + } else { + bonusRecordDetailVO.getCuMemberBonusDetailList().addAll(cuMemberBonusDetailList); + } + } // 更新网体 iCuMemberRetailRangeService.updateCuMemberRetailRange(rangeTableName, memberRangeExtMap); } @@ -563,6 +588,9 @@ public class BonusSettleRangeHandle extends BonusSettleHandle { // 商品盒数 BigDecimal boxNum = new BigDecimal(saOrderExt.getBoxNum()); + // 2025.08.13 添加分公司级差收益,每1盒(4个产品)第一分公司4元,第二分公司4元,公司6元,总拨出14元 + int branch = 0; + // 前一个会员等级 int beforeGradeValue = 0; // 前面累计奖金 @@ -678,21 +706,72 @@ public class BonusSettleRangeHandle extends BonusSettleHandle { } memberBonusRangeList.add(cuMemberBonusRange); } + + // 2025.08.13 添加分公司级差收益,每1盒(4个产品)第一分公司4元,第二分公司4元,公司6元,总拨出14元 + if (EGrade.BRANCH_COMPANY.getValue() == targetMemberRangeExt.getGradeValue() && branch < 2) { + // 等级是分公司 并且 发放次数小于2 + this.calculateRetailRepurCompanyRangeBonus(sourceMemberRangeExt, targetMemberRangeExt, cuMemberBonusMap, bonusConfigDTO, + period, saOrderExt, boxNum, memberBonusRangeList, branch); + branch++; + } else if (EGrade.COMPANY.getValue() == targetGradeValue && branch != 3) { + // 等级是总公司 + this.calculateRetailRepurCompanyRangeBonus(sourceMemberRangeExt, targetMemberRangeExt, cuMemberBonusMap, bonusConfigDTO, + period, saOrderExt, boxNum, memberBonusRangeList, branch); + branch = 3; + } } return memberBonusRangeList; } + private void calculateRetailRepurCompanyRangeBonus(CuMemberRetailRangeExt sourceMemberRangeExt, CuMemberRetailRangeExt targetMemberRangeExt, + Map cuMemberBonusMap, BonusConfigDTO bonusConfigDTO, Integer period, + SaOrderExt saOrderExt, BigDecimal boxNum, List memberBonusRangeList, + int branch) { + // 2025.08.13 二级分公司,一级总公司复购级差 + BigDecimal calValue = BigDecimal.ZERO; + if (EGrade.BRANCH_COMPANY.getValue() == targetMemberRangeExt.getGradeValue()) { + // 分公司奖金 + calValue = RetailConstants.BRANCH; + } else if (EGrade.COMPANY.getValue() == targetMemberRangeExt.getGradeValue()) { + // 总公司奖金 = 总拨出奖金 - (分公司奖金 * 分公司数量) + calValue = RetailConstants.COMPANY_TOTAL.subtract(RetailConstants.BRANCH.multiply(new BigDecimal(branch))); + } + BigDecimal bonusIncome = calValue.multiply(boxNum); + + CuMemberBonus cuMemberBonus = getCuMemberBonus(period, cuMemberBonusMap, targetMemberRangeExt.getPkMember(), + targetMemberRangeExt.getIncomeStatus(), targetMemberRangeExt.getPkSettleCountry(), targetMemberRangeExt.getPkRate() == null ? saOrderExt.getPkRate() : targetMemberRangeExt.getPkRate()); + int pkBonusItems = getPkBonusItems(bonusConfigDTO, targetMemberRangeExt.getPkSettleCountry(), EBonusItems.RETAIL_REPURCHASE_INCOME.getValue()); + // 会员级差 + CuMemberBonusRange cuMemberBonusRange = getCuMemberRetailBonusRange(saOrderExt, targetMemberRangeExt, cuMemberBonus, pkBonusItems); + cuMemberBonusRange.setCalAchieve(saOrderExt.getOrderAmount()); + cuMemberBonusRange.setCalValue(calValue); + cuMemberBonusRange.setPretaxIncome(bonusIncome); + cuMemberBonusRange.setPkRange(targetMemberRangeExt.getPkGrade()); + cuMemberBonusRange.setPkBeforeRange(sourceMemberRangeExt.getPkGrade()); + cuMemberBonusRange.setPkOrder(saOrderExt.getPkId()); + cuMemberBonusRange.setPkOrderItems(0L); + rangeRepurRetailRemark(saOrderExt, cuMemberBonusRange, sourceMemberRangeExt, targetMemberRangeExt); + BdBonusDeduct bdBonusDeduct = setBonusDetailDeduct(bonusConfigDTO, cuMemberBonusRange, saOrderExt.getOrderAmount(), saOrderExt.getInExchangeRate()); + if (EBonusIncomeStatus.NORMAL.getValue() == cuMemberBonusRange.getIncomeStatus()) { + cuMemberBonus.setRepurRangeIncome(ComputeUtil.computeAdd(cuMemberBonus.getRepurRangeIncome(), cuMemberBonusRange.getPretaxIncome())); + setRetailTotal(bdBonusDeduct, cuMemberBonus, cuMemberBonusRange); + } + memberBonusRangeList.add(cuMemberBonusRange); + } + private CuMemberBonusRange getCuMemberRetailBonusRange(SaOrder saOrderExt, CuMemberRetailRangeExt targetMemberRangeExt, CuMemberBonus cuMemberBonus, Integer pkBonusItems) { CuMemberBonusRange cuMemberBonusRange = CuMemberBonusRange.builder() - .incomeStatus(targetMemberRangeExt.getIncomeStatus()) .pkOrder(saOrderExt.getPkId()) .pkBonusItems(pkBonusItems) .pkBonus(cuMemberBonus.getPkId()) - // 正常还是烧伤 + .incomeStatus(targetMemberRangeExt.getIncomeStatus()) .calAchieve(saOrderExt.getOrderAchieve()) .calType(ECalType.VALUE.getValue()) .calValue(BigDecimal.ZERO) + .pretaxIncome(BigDecimal.ZERO) + .incomeTax(BigDecimal.ZERO) + .realIncome(BigDecimal.ZERO) .incomeRatio(BigDecimal.ZERO) .incomeDialRatio(BigDecimal.ZERO) .orderDialRatio(BigDecimal.ZERO) @@ -702,6 +781,83 @@ public class BonusSettleRangeHandle extends BonusSettleHandle { return cuMemberBonusRange; } + + /** + * 计算复购配送区域收益 + */ + List calculateRetailRepurRegionBonus(Map memberRangeExtMap, Map cuMemberBonusMap, + BonusConfigDTO bonusConfigDTO, Integer period, SaOrderExt saOrderExt, Map regionMap) { + // 复购配送区域返回数据 + List memberBonusDetailList = new ArrayList<>(); + + // 订单下单人自己 + CuMemberRetailRangeExt sourceMemberRangeExt = memberRangeExtMap.get(saOrderExt.getPkMember()); + + // 配送区域配置 + CuMemberRetailRegion retailRegion = regionMap.get(saOrderExt.getRecCounty()); + if (null != retailRegion) { + CuMemberRetailRangeExt targetMemberRangeExt = memberRangeExtMap.get(retailRegion.getPkMember()); + // 复购配送区域收益 + BigDecimal bonusIncome = BigDecimal.ZERO; + + List pkWaresList = new ArrayList<>(); + for (SaOrderWaresExt saOrderWaresExt : saOrderExt.getOrderWaresExtList()) { + if (!pkWaresList.contains(saOrderWaresExt.getPkWares())) { + // 商品没有处理过,则进行处理 + pkWaresList.add(saOrderWaresExt.getPkWares()); + // 复购区分收益 * 商品数量 + bonusIncome = bonusIncome.add(saOrderWaresExt.getAreaIncome().multiply(new BigDecimal(saOrderWaresExt.getWaresQuantity()))); + } + } + + if (bonusIncome.compareTo(BigDecimal.ZERO) > 0) { + // 处理复购级差收益 + // 会员奖金 + CuMemberBonus cuMemberBonus = getCuMemberBonus(period, cuMemberBonusMap, targetMemberRangeExt.getPkMember(), + targetMemberRangeExt.getIncomeStatus(), targetMemberRangeExt.getPkSettleCountry(), targetMemberRangeExt.getPkRate() == null ? saOrderExt.getPkRate() : targetMemberRangeExt.getPkRate()); + int pkBonusItems = getPkBonusItems(bonusConfigDTO, targetMemberRangeExt.getPkSettleCountry(), EBonusItems.RETAIL_REPURCHASE_DELIVERY_INCOME.getValue()); + // 会员配送区域收益 + CuMemberBonusDetail cuMemberBonusDetail = getCuMemberBonusDetail(saOrderExt, targetMemberRangeExt, cuMemberBonus, pkBonusItems); + cuMemberBonusDetail.setCalValue(BigDecimal.ZERO); + cuMemberBonusDetail.setCalAchieve(BigDecimal.ZERO); + cuMemberBonusDetail.setPretaxIncome(bonusIncome); + cuMemberBonusDetail.setPkOrder(saOrderExt.getPkId()); + // 备注 + regionRepurRetailRemark(saOrderExt, cuMemberBonusDetail, sourceMemberRangeExt, targetMemberRangeExt); + BdBonusDeduct bdBonusDeduct = setBonusDetailDeduct(bonusConfigDTO, cuMemberBonusDetail, saOrderExt.getOrderAmount(), saOrderExt.getInExchangeRate()); + if (EBonusIncomeStatus.NORMAL.getValue() == cuMemberBonusDetail.getIncomeStatus()) { + cuMemberBonus.setRetailAreaIncome(ComputeUtil.computeAdd(cuMemberBonus.getRetailAreaIncome(), cuMemberBonusDetail.getPretaxIncome())); + setRetailTotal(bdBonusDeduct, cuMemberBonus, cuMemberBonusDetail); + } + memberBonusDetailList.add(cuMemberBonusDetail); + } + } + return memberBonusDetailList; + } + + private CuMemberBonusDetail getCuMemberBonusDetail(SaOrder saOrderExt, CuMemberRetailRangeExt targetMemberRangeExt, + CuMemberBonus cuMemberBonus, Integer pkBonusItems) { + CuMemberBonusDetail cuMemberBonusDetail = CuMemberBonusDetail.builder() + .pkOrder(saOrderExt.getPkId()) + .pkBonusItems(pkBonusItems) + .pkBonus(cuMemberBonus.getPkId()) + .incomeStatus(targetMemberRangeExt.getIncomeStatus()) + .calAchieve(saOrderExt.getOrderAchieve()) + .calType(ECalType.VALUE.getValue()) + .calValue(BigDecimal.ZERO) + .pretaxIncome(BigDecimal.ZERO) + .incomeTax(BigDecimal.ZERO) + .realIncome(BigDecimal.ZERO) + .incomeRatio(BigDecimal.ZERO) + .incomeDialRatio(BigDecimal.ZERO) + .orderDialRatio(BigDecimal.ZERO) + .build(); + cuMemberBonusDetail.setPkCountry(targetMemberRangeExt.getPkSettleCountry()); + cuMemberBonusDetail.setPkCreator(MagicNumberConstants.PK_ADMIN); + return cuMemberBonusDetail; + } + + /** * 获取手动激活map * diff --git a/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/service/impl/CuMemberBonusServiceImpl.java b/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/service/impl/CuMemberBonusServiceImpl.java index b2619511..19c7e8ec 100644 --- a/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/service/impl/CuMemberBonusServiceImpl.java +++ b/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/service/impl/CuMemberBonusServiceImpl.java @@ -140,6 +140,7 @@ public class CuMemberBonusServiceImpl extends ServiceImpl cuMemberBonusCoachList; /** - * 服务奖 嗨粉推荐奖金 创客空间直推 创客空间分享 + * 服务奖 */ private List cuMemberBonusDetailList; diff --git a/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/vo/BonusTotalVO.java b/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/vo/BonusTotalVO.java index 84571138..da4926f7 100644 --- a/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/vo/BonusTotalVO.java +++ b/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/vo/BonusTotalVO.java @@ -31,149 +31,29 @@ public class BonusTotalVO implements Serializable { */ private Integer pkCountry; - /** - * 直推收益 - */ - 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 retailRangeIncome; /** * 直推级差收益 */ @Excel(name = "直推级差收益", scale = 2) - private BigDecimal retailRangeIncomeOri; + private BigDecimal retailRangeIncome; - /** - * 复购级差收益 - */ - private BigDecimal repurRangeIncome; /** * 复购级差收益 */ @Excel(name = "复购级差收益", scale = 2) - private BigDecimal repurRangeIncomeOri; + private BigDecimal repurRangeIncome; /** - * 复购拓展收益 + * 复购配送收益 */ - private BigDecimal repurExpandIncomeOri; - - /** - * 复购券 - */ - private BigDecimal repurCouponOri; - - /** - * 复购券均分收益 - */ - private BigDecimal repurCouponShareOri; - - /** - * 商城重消 - */ - private BigDecimal backPointsOri; - - /** - * 平台服务费 - */ - 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; + @Excel(name = "复购配送收益", scale = 2) + private BigDecimal retailAreaIncome; /** * 实发收益总计 */ @Excel(name = "实发收益总计", scale = 2) - private BigDecimal realIncomeTotalOri; + private BigDecimal realIncomeTotal; /** * 直推收益 @@ -293,10 +173,6 @@ public class BonusTotalVO implements Serializable { */ private BigDecimal repurCouponSubtotal; - /** - * 实发收益总计 - */ - private BigDecimal realIncomeTotal; /** * 结算日期 diff --git a/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/vo/CuMemberBonusVO.java b/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/vo/CuMemberBonusVO.java index d9d8533d..df792c14 100644 --- a/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/vo/CuMemberBonusVO.java +++ b/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/vo/CuMemberBonusVO.java @@ -86,67 +86,41 @@ public class CuMemberBonusVO implements Serializable { */ private Integer grantStatus; - /** - * 需要转换人民币的 - */ - public static final String[] INCOME_ARRAY = new String[]{ - "backPoints", "retailRangeIncome", "retailSameLevelIncome", "retailAreaIncome", - "retailBenefitRangeIncome", "retailBenefitAvgIncome", "repurRangeIncome", - "retailBenefitIncome", "retailRealSubtotal", "realIncomeTotal"}; - /** * 直推级差收益 */ - private BigDecimal retailRangeIncome; @Excel(name = "直推级差收益", scale = 2) - private BigDecimal retailRangeIncomeOri; + private BigDecimal retailRangeIncome; /** * 复购级差收益 */ - private BigDecimal repurRangeIncome; @Excel(name = "复购级差收益", scale = 2) - private BigDecimal repurRangeIncomeOri; + private BigDecimal repurRangeIncome; + + /** + * 复购配送收益 + */ + @Excel(name = "复购配送收益", scale = 2) + private BigDecimal retailAreaIncome; private BigDecimal retailSameLevelIncome; - /** - * 平级收益 - */ - private BigDecimal retailSameLevelIncomeOri; - - private BigDecimal retailAreaIncome; - /** - * 区域分红 - */ - private BigDecimal retailAreaIncomeOri; - /** * 新零售福利极差收益 */ private BigDecimal retailBenefitRangeIncome; - private BigDecimal retailBenefitRangeIncomeOri; - /** * 新零售福利平均收益 */ private BigDecimal retailBenefitAvgIncome; - private BigDecimal retailBenefitAvgIncomeOri; - /** * 新零售福利加权收益 */ private BigDecimal retailBenefitIncome; - private BigDecimal retailBenefitIncomeOri; - - /** - * 商城重消 - */ - private BigDecimal backPointsOri; - /** * 商城重消 */ @@ -157,16 +131,10 @@ public class CuMemberBonusVO implements Serializable { */ private BigDecimal retailRealSubtotal; - private BigDecimal retailRealSubtotalOri; - /** * 实发收益总计 */ @Excel(name = "实发收益总计", scale = 2) - private BigDecimal realIncomeTotalOri; - - /** - * 实发收益总计 - */ private BigDecimal realIncomeTotal; + } diff --git a/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/vo/MemberBonusFirstPurchaseVO.java b/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/vo/MemberBonusFirstPurchaseVO.java index 17481b7a..d8ce2493 100644 --- a/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/vo/MemberBonusFirstPurchaseVO.java +++ b/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/vo/MemberBonusFirstPurchaseVO.java @@ -83,12 +83,12 @@ public class MemberBonusFirstPurchaseVO extends PubMemberBonusVO { // */ // @BigDecimalFormat // private BigDecimal retailSameLevelIncome; -// -// /** -// * 新零售区域分红 -// */ -// @BigDecimalFormat -// private BigDecimal retailAreaIncome; + + /** + * 复购配送收益 + */ + @BigDecimalFormat + private BigDecimal retailAreaIncome; /** * 新零售收益小计 diff --git a/bd-business/bd-business-bonus/src/main/resources/mapper/bonus/bonus/CuMemberBonusMapper.xml b/bd-business/bd-business-bonus/src/main/resources/mapper/bonus/bonus/CuMemberBonusMapper.xml index c7fb62ee..ba3ea360 100644 --- a/bd-business/bd-business-bonus/src/main/resources/mapper/bonus/bonus/CuMemberBonusMapper.xml +++ b/bd-business/bd-business-bonus/src/main/resources/mapper/bonus/bonus/CuMemberBonusMapper.xml @@ -61,6 +61,9 @@ + + + @@ -83,7 +86,7 @@ merge into cu_member_bonus cb - using( + using ( select pk_id,pk_member,period,pk_rate,direct_income,expand_income,expand_no_capping, expand_capping,coach_income,share_income,service_income,back_points,service_spend, pur_real_subtotal,repur_push_income,repur_range_income,repur_expand_income,repur_real_subtotal, @@ -92,8 +95,10 @@ car_award_points,store_income,hi_fun_income,hai_fun_income, maker_direct_income,maker_share_income,maker_real_subtotal,real_income_total, pk_country,pk_creator,grant_status,income_status,retail_range_income,retail_same_level_income, - retail_area_income,retail_benefit_range_income,retail_benefit_avg_income,retail_benefit_income, - retail_real_subtotal from( + retail_area_income, + retail_benefit_range_income,retail_benefit_avg_income,retail_benefit_income, + retail_real_subtotal + from ( select #{item.pkId} pk_id,#{item.pkMember} pk_member,#{item.period} period,#{item.pkRate,jdbcType=INTEGER} pk_rate, #{item.directIncome} direct_income,#{item.expandIncome} expand_income,#{item.expandNoCapping} expand_no_capping, @@ -110,13 +115,14 @@ #{item.makerShareIncome} maker_share_income,#{item.makerRealSubtotal} maker_real_subtotal,#{item.realIncomeTotal} real_income_total, #{item.pkCountry} pk_country,#{item.pkCreator} pk_creator,#{item.grantStatus} grant_status,#{item.incomeStatus} income_status, #{item.retailRangeIncome} retail_range_income,#{item.retailSameLevelIncome} retail_same_level_income, - #{item.retailAreaIncome} retail_area_income,#{item.retailBenefitRangeIncome} retail_benefit_range_income, + #{item.retailAreaIncome} retail_area_income, + #{item.retailBenefitRangeIncome} retail_benefit_range_income, #{item.retailBenefitAvgIncome} retail_benefit_avg_income,#{item.retailBenefitIncome} retail_benefit_income, #{item.retailRealSubtotal} retail_real_subtotal from dual ) )b on (cb.pk_member=b.pk_member and cb.period=b.period) WHEN NOT MATCHED THEN - insert(pk_id,pk_member,period,pk_rate,direct_income,expand_income,expand_no_capping, + insert (pk_id,pk_member,period,pk_rate,direct_income,expand_income,expand_no_capping, expand_capping,coach_income,share_income,service_income,back_points,service_spend, pur_real_subtotal,repur_push_income,repur_range_income,repur_expand_income,repur_real_subtotal, cloud_direct_income,cloud_pur_income,cloud_repur_income,cloud_real_subtotal, @@ -124,9 +130,10 @@ car_award_points,store_income,hi_fun_income,hai_fun_income, maker_direct_income,maker_share_income,maker_real_subtotal,real_income_total, pk_country,pk_creator,grant_status,income_status,retail_range_income,retail_same_level_income, - retail_area_income,retail_benefit_range_income,retail_benefit_avg_income,retail_benefit_income, + retail_area_income, + retail_benefit_range_income,retail_benefit_avg_income,retail_benefit_income, retail_real_subtotal) - values(b.pk_id,b.pk_member,b.period,b.pk_rate,b.direct_income,b.expand_income,b.expand_no_capping, + values (b.pk_id,b.pk_member,b.period,b.pk_rate,b.direct_income,b.expand_income,b.expand_no_capping, b.expand_capping,b.coach_income,b.share_income,b.service_income,b.back_points,b.service_spend, b.pur_real_subtotal,b.repur_push_income,b.repur_range_income,b.repur_expand_income,b.repur_real_subtotal, b.cloud_direct_income,b.cloud_pur_income,b.cloud_repur_income,b.cloud_real_subtotal, @@ -134,7 +141,8 @@ b.car_award_points,b.store_income,b.hi_fun_income,b.hai_fun_income, b.maker_direct_income,b.maker_share_income,b.maker_real_subtotal,b.real_income_total, b.pk_country,b.pk_creator,b.grant_status,b.income_status,b.retail_range_income,b.retail_same_level_income, - b.retail_area_income,b.retail_benefit_range_income,b.retail_benefit_avg_income,b.retail_benefit_income, + b.retail_area_income, + b.retail_benefit_range_income,b.retail_benefit_avg_income,b.retail_benefit_income, b.retail_real_subtotal) @@ -190,6 +198,7 @@ select tmp.settle_date, sum(tmp.repur_range_income) repur_range_income, sum(tmp.retail_range_income) retail_range_income, + sum(tmp.retail_area_income) retail_area_income, sum(tmp.retail_real_subtotal) retail_real_subtotal, sum(tmp.real_income_total) real_income_total from (select case @@ -202,6 +211,7 @@ end settle_date, cb.repur_range_income, cb.retail_range_income, + cb.retail_area_income, cb.retail_real_subtotal, cb.real_income_total from CU_MEMBER_BONUS cb @@ -230,12 +240,16 @@ bv.vertex_name, ct.team_name, cb.period,cp.settle_date,cb.direct_income,cb.expand_income,cb.expand_no_capping, cb.expand_capping,cb.coach_income,cb.share_income,cb.service_income,cb.back_points,cb.service_spend, - cb.pur_real_subtotal,cb.repur_push_income,cb.repur_range_income,cb.repur_expand_income,cb.repur_real_subtotal, + cb.pur_real_subtotal,cb.repur_push_income, + cb.repur_range_income, + cb.repur_expand_income,cb.repur_real_subtotal, cb.cloud_direct_income,cb.cloud_pur_income,cb.cloud_repur_income,cb.cloud_real_subtotal, cb.repur_coupon,cb.repur_coupon_share,cb.repur_coupon_subtotal,cb.store_income, cb.maker_direct_income,cb.maker_share_income,cb.maker_real_subtotal,cb.hai_fun_income, cb.global_points,cb.car_award_points,cb.hi_fun_income,cb.pk_rate,bc.out_exchange_rate, - cb.retail_range_income,cb.retail_same_level_income,cb.retail_area_income, + cb.retail_range_income, + cb.retail_area_income, + cb.retail_same_level_income, cb.retail_benefit_range_income,cb.retail_benefit_avg_income, cb.retail_benefit_income,cb.retail_real_subtotal, cb.real_income_total, @@ -324,7 +338,6 @@ nvl(sum(cb.service_spend),0) service_spend, nvl(sum(cb.pur_real_subtotal),0) pur_real_subtotal, nvl(sum(cb.repur_push_income),0) repur_push_income, - nvl(sum(cb.repur_range_income),0) repur_range_income, nvl(sum(cb.repur_expand_income),0) repur_expand_income, nvl(sum(cb.repur_real_subtotal),0) repur_real_subtotal, nvl(sum(cb.cloud_direct_income),0) cloud_direct_income, @@ -342,7 +355,9 @@ nvl(sum(cb.global_points),0) global_points, nvl(sum(cb.car_award_points),0) car_award_points, nvl(sum(cb.hi_fun_income),0) hi_fun_income, + nvl(sum(cb.repur_range_income),0) repur_range_income, nvl(sum(cb.retail_range_income),0) retail_range_income, + nvl(sum(cb.retail_area_income),0) retail_area_income, bc.out_exchange_rate, nvl(sum(cb.real_income_total),0) real_income_total from cu_member_bonus cb @@ -419,17 +434,18 @@ 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_income) service_income,sum(cb.back_points) back_points, sum(cb.service_spend) service_spend,sum(cb.pur_real_subtotal) pur_real_subtotal, - sum(cb.repur_push_income) repur_push_income,sum(cb.repur_range_income) repur_range_income, - sum(cb.repur_expand_income) repur_expand_income,sum(cb.repur_real_subtotal) repur_real_subtotal,sum(cb.cloud_direct_income) - cloud_direct_income, + sum(cb.repur_push_income) repur_push_income, + sum(cb.repur_range_income) repur_range_income, + sum(cb.repur_expand_income) repur_expand_income,sum(cb.repur_real_subtotal) repur_real_subtotal,sum(cb.cloud_direct_income) cloud_direct_income, sum(cb.cloud_pur_income) cloud_pur_income,sum(cb.cloud_repur_income) cloud_repur_income,sum(cb.cloud_real_subtotal) cloud_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.hi_fun_income) hi_fun_income, sum(store_income) store_income,sum(cb.maker_direct_income) maker_direct_income, sum(cb.maker_share_income) maker_share_income,sum(cb.maker_real_subtotal) maker_real_subtotal, - sum(cb.retail_range_income) retail_range_income,sum(cb.retail_same_level_income) retail_same_level_income, + sum(cb.retail_range_income) retail_range_income, sum(cb.retail_area_income) retail_area_income, + sum(cb.retail_same_level_income) retail_same_level_income, sum(cb.retail_benefit_range_income) retail_benefit_range_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, sum(cb.real_income_total) real_income_total from cu_member_bonus cb diff --git a/bd-business/bd-business-bonus/src/main/resources/mapper/bonus/order/BonusOrderMapper.xml b/bd-business/bd-business-bonus/src/main/resources/mapper/bonus/order/BonusOrderMapper.xml index 90290135..60b57dd8 100644 --- a/bd-business/bd-business-bonus/src/main/resources/mapper/bonus/order/BonusOrderMapper.xml +++ b/bd-business/bd-business-bonus/src/main/resources/mapper/bonus/order/BonusOrderMapper.xml @@ -124,6 +124,67 @@ left join bd_wares bw on bw.pk_id = st.pk_wares and bw.del_flag = 0 where so.order_status = 1 + and so.order_type in (41, 42) + + and so.order_code=#{orderCode} + + and so.pay_time >= #{startDate} + and so.pay_time < #{endDate} + union + select so.pk_id, + so.pk_member, + so.order_code, + so.order_type, + so.pk_rate, + so.rec_province, + so.rec_city, + so.rec_county, + so.order_amount, + so.order_achieve, + so.order_ass_achieve, + so.upload_achieve, + so.pk_reference, + so.pk_vertex, + so.pk_country, + so.del_flag, + so.pay_time, + so.pk_creator, + so.consume_amount, + so.box_num, + 0 pk_grade, + soi.items_id, + soi.pk_order, + soi.pk_wares, + soi.wares_price, + nvl(bw.wares_code, '~') wares_code, + soi.wares_quantity, + nvl(bw.area_income, 0) area_income + from sa_order so + left join ( + select max(soi.pk_id) items_id, + nvl(soi.pk_order, 0) pk_order, + nvl(soi.pk_wares, 0) pk_wares, + sum(soi.achievement * soi.quantity) wares_price, + max(soi.wares_quantity) wares_quantity + from sa_order so + left join sa_order_items soi + on soi.pk_order = so.pk_id + and soi.is_gift = 1 + where so.order_status = 1 + and so.order_type in (43) + + and so.order_code=#{orderCode} + + and so.pay_time >= #{startDate} + and so.pay_time < #{endDate} + group by soi.pk_order, soi.pk_wares + ) soi + on soi.pk_order = so.pk_id + left join bd_wares bw + on bw.pk_id = soi.pk_wares + and bw.del_flag = 0 + where so.order_status = 1 + and so.order_type in (43) and so.order_code=#{orderCode} diff --git a/bd-business/bd-business-member/src/main/java/com/hzs/member/base/provider/MemberServiceProvider.java b/bd-business/bd-business-member/src/main/java/com/hzs/member/base/provider/MemberServiceProvider.java index 23fc9763..4ba53ee8 100644 --- a/bd-business/bd-business-member/src/main/java/com/hzs/member/base/provider/MemberServiceProvider.java +++ b/bd-business/bd-business-member/src/main/java/com/hzs/member/base/provider/MemberServiceProvider.java @@ -1,5 +1,6 @@ package com.hzs.member.base.provider; +import cn.hutool.core.collection.CollectionUtil; import com.hzs.common.core.domain.R; import com.hzs.common.core.enums.ELoginType; import com.hzs.common.core.utils.StringUtils; @@ -7,6 +8,7 @@ import com.hzs.common.domain.member.base.CuMember; import com.hzs.common.domain.member.base.CuMemberRegister; import com.hzs.common.domain.member.ext.CuMemberAccountExt; import com.hzs.common.domain.member.ext.CuMemberExt; +import com.hzs.common.domain.retail.member.CuMemberRetailRegion; import com.hzs.common.domain.sale.ext.SaOrderExt; import com.hzs.common.domain.sale.order.SaOrder; import com.hzs.member.account.dto.BusinessCommissionDTO; @@ -17,11 +19,14 @@ import com.hzs.member.base.service.*; import com.hzs.member.base.IMemberServiceApi; import com.hzs.member.empty.service.ICuMemberEmptyCodeService; import com.hzs.member.handlebusiness.dto.AnalysisBusinessAppealParam; +import com.hzs.retail.member.service.ICuMemberRetailRegionService; import lombok.extern.slf4j.Slf4j; import org.apache.dubbo.config.annotation.DubboService; import org.springframework.beans.factory.annotation.Autowired; import java.math.BigDecimal; +import java.util.Date; +import java.util.HashMap; import java.util.List; import java.util.Map; @@ -40,6 +45,8 @@ public class MemberServiceProvider implements IMemberServiceApi { private ICuMemberRegisterService iCuMemberRegisterService; @Autowired private ICuMemberEmptyCodeService iCuMemberEmptyCodeService; + @Autowired + private ICuMemberRetailRegionService iCuMemberRetailRegionService; @Override public R getMemberInfo(String memberCode) { @@ -362,4 +369,18 @@ public class MemberServiceProvider implements IMemberServiceApi { } } + @Override + public R> listEffectiveRegion(Date queryDate) { + Map regionMap = new HashMap<>(); + + List retailRegionList = iCuMemberRetailRegionService.listEffectiveRegion(queryDate); + if (CollectionUtil.isNotEmpty(retailRegionList)) { + for (CuMemberRetailRegion retailRegion : retailRegionList) { + regionMap.put(retailRegion.getCounty(), retailRegion); + } + } + + return R.ok(regionMap); + } + } diff --git a/bd-business/bd-business-member/src/main/java/com/hzs/retail/member/mapper/CuMemberRetailRegionMapper.java b/bd-business/bd-business-member/src/main/java/com/hzs/retail/member/mapper/CuMemberRetailRegionMapper.java index b74ddead..05461576 100644 --- a/bd-business/bd-business-member/src/main/java/com/hzs/retail/member/mapper/CuMemberRetailRegionMapper.java +++ b/bd-business/bd-business-member/src/main/java/com/hzs/retail/member/mapper/CuMemberRetailRegionMapper.java @@ -7,6 +7,7 @@ import com.hzs.common.domain.system.base.BdArea; import com.hzs.retail.member.vo.UnboundAreaVO; import org.apache.ibatis.annotations.Param; +import java.util.Date; import java.util.List; /** @@ -25,9 +26,11 @@ public interface CuMemberRetailRegionMapper extends BaseMapper getRegionByMemberList(@Param("pkMember") Long pkMember, - @Param("gradeValue") Integer gradeValue, - @Param("systemType") Integer systemType); + @Param("gradeValue") Integer gradeValue, + @Param("systemType") Integer systemType); + /** * 插入收益区域 * @@ -47,18 +50,6 @@ public interface CuMemberRetailRegionMapper extends BaseMapper memberretailRegList(CuMemberRetailRegionExt mrrExt); - /** - * 会员购买订单数量 - * - * @param pkMember 会员ID - * @param systemType 系统类型 - * @param waresCodeList 商品列表 - * @return - */ - int getOrderCount(@Param("pkMember") Long pkMember, - @Param("systemType") Integer systemType, - @Param("waresCodeList") List waresCodeList); - List getRegionTreeList(@Param("queryType") String queryType, @Param("userId") Long userId); /** @@ -69,4 +60,12 @@ public interface CuMemberRetailRegionMapper extends BaseMapper listEffectiveRegion(@Param("queryDate") Date queryDate); + } diff --git a/bd-business/bd-business-member/src/main/java/com/hzs/retail/member/service/ICuMemberRetailRegionService.java b/bd-business/bd-business-member/src/main/java/com/hzs/retail/member/service/ICuMemberRetailRegionService.java index 76dfb8cf..982145e7 100644 --- a/bd-business/bd-business-member/src/main/java/com/hzs/retail/member/service/ICuMemberRetailRegionService.java +++ b/bd-business/bd-business-member/src/main/java/com/hzs/retail/member/service/ICuMemberRetailRegionService.java @@ -8,6 +8,7 @@ import com.hzs.common.domain.system.base.BdArea; import com.hzs.retail.member.param.RetailMemberRegionParam; import com.hzs.retail.member.vo.UnboundAreaVO; +import java.util.Date; import java.util.List; /** @@ -44,16 +45,6 @@ public interface ICuMemberRetailRegionService extends IService memberretailRegList(CuMemberRetailRegionExt mrrExt); - /** - * 会员购买订单数量 - * - * @param pkMember 会员ID - * @param systemType 系统类型 - * @param waresCodeList 商品列表 - * @return - */ - int getOrderCount(Long pkMember, Integer systemType, List waresCodeList); - /** * 查询可选收益区域树结构 入参常量为 RetailRegionTreeQueryConstants * @@ -72,4 +63,12 @@ public interface ICuMemberRetailRegionService extends IService listEffectiveRegion(Date queryDate); + } diff --git a/bd-business/bd-business-member/src/main/java/com/hzs/retail/member/service/impl/CuMemberRetailRegionServiceImpl.java b/bd-business/bd-business-member/src/main/java/com/hzs/retail/member/service/impl/CuMemberRetailRegionServiceImpl.java index ff14e84e..d834f836 100644 --- a/bd-business/bd-business-member/src/main/java/com/hzs/retail/member/service/impl/CuMemberRetailRegionServiceImpl.java +++ b/bd-business/bd-business-member/src/main/java/com/hzs/retail/member/service/impl/CuMemberRetailRegionServiceImpl.java @@ -22,7 +22,6 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; -import java.util.Collections; import java.util.Date; import java.util.List; @@ -97,11 +96,6 @@ public class CuMemberRetailRegionServiceImpl extends ServiceImpl waresCodeList) { - return baseMapper.getOrderCount(pkMember, systemType, waresCodeList); - } - @Override public List> getRegionTreeList(String queryType, Long pkMember) { List areaList = baseMapper.getRegionTreeList(queryType, pkMember); @@ -173,4 +167,9 @@ public class CuMemberRetailRegionServiceImpl extends ServiceImpl listEffectiveRegion(Date queryDate) { + return baseMapper.listEffectiveRegion(queryDate); + } + } diff --git a/bd-business/bd-business-member/src/main/resources/mapper/retail/member/CuMemberRetailRegionMapper.xml b/bd-business/bd-business-member/src/main/resources/mapper/retail/member/CuMemberRetailRegionMapper.xml index 1716d7ae..2c652413 100644 --- a/bd-business/bd-business-member/src/main/resources/mapper/retail/member/CuMemberRetailRegionMapper.xml +++ b/bd-business/bd-business-member/src/main/resources/mapper/retail/member/CuMemberRetailRegionMapper.xml @@ -175,29 +175,6 @@ order by CRR.CREATION_TIME desc - - - + select cmrr.* + from CU_MEMBER_RETAIL_REGION cmrr + where cmrr.del_flag = 0 + and cmrr.effective = 0 + and cmrr.business_type = 2 + and cmrr.effective_end_date >= #{queryDate} + + diff --git a/bd-business/bd-business-sale/src/main/java/com/hzs/sale/order/controller/api/ApiOrderController.java b/bd-business/bd-business-sale/src/main/java/com/hzs/sale/order/controller/api/ApiOrderController.java index 44bc2863..3794ee0e 100644 --- a/bd-business/bd-business-sale/src/main/java/com/hzs/sale/order/controller/api/ApiOrderController.java +++ b/bd-business/bd-business-sale/src/main/java/com/hzs/sale/order/controller/api/ApiOrderController.java @@ -665,7 +665,7 @@ public class ApiOrderController extends BaseController { myOrder.setRecCounty(recCounty); } myOrder.setAddress(saOrder.getRecAddress()); - myOrder.setOrderTypeVal(EOrderType.getEnumLabelByValue(myOrder.getOrderType())); + myOrder.setOrderTypeVal(EOrderType.getLabelByValue(myOrder.getOrderType())); myOrder.setOrderStatusVal(EOrderStatus.getLabelByValue(saOrderItems.getOrderStatus())); // 处理订单明细 diff --git a/bd-business/bd-business-system/src/main/java/com/hzs/system/enums/controller/EnumsInitController.java b/bd-business/bd-business-system/src/main/java/com/hzs/system/enums/controller/EnumsInitController.java index 4afde1da..fd619647 100644 --- a/bd-business/bd-business-system/src/main/java/com/hzs/system/enums/controller/EnumsInitController.java +++ b/bd-business/bd-business-system/src/main/java/com/hzs/system/enums/controller/EnumsInitController.java @@ -561,10 +561,6 @@ public class EnumsInitController { initList.add(this.createData(value.getKey(), value.getLabel())); } - for (EBonusIncomeStatus value : EBonusIncomeStatus.values()) { - initList.add(this.createData(value.getKey(), value.getLabel())); - } - // 数据类型(推荐) for (ERecommendDadaType value : ERecommendDadaType.values()) { initList.add(this.createData(value.getKey(), value.getLabel())); diff --git a/bd-common/bd-common-core/src/main/java/com/hzs/common/core/constant/BonusFieldConstants.java b/bd-common/bd-common-core/src/main/java/com/hzs/common/core/constant/BonusFieldConstants.java index 23250484..4e745f30 100644 --- a/bd-common/bd-common-core/src/main/java/com/hzs/common/core/constant/BonusFieldConstants.java +++ b/bd-common/bd-common-core/src/main/java/com/hzs/common/core/constant/BonusFieldConstants.java @@ -44,9 +44,4 @@ public class BonusFieldConstants { public static final String IS_WITHDRAWAL = "IS_WITHDRAWAL"; - /** - * 人民币收益后缀 - */ - public static final String INCOME_SUFFIX = "Ori"; - } diff --git a/bd-common/bd-common-core/src/main/java/com/hzs/common/core/constant/RetailConstants.java b/bd-common/bd-common-core/src/main/java/com/hzs/common/core/constant/RetailConstants.java index 02abeee3..bc6847d0 100644 --- a/bd-common/bd-common-core/src/main/java/com/hzs/common/core/constant/RetailConstants.java +++ b/bd-common/bd-common-core/src/main/java/com/hzs/common/core/constant/RetailConstants.java @@ -14,6 +14,17 @@ public class RetailConstants { */ public static final Integer PICK_BASE = 4; + /** + * 2025.08.13 添加分公司级差收益,每1盒(4个产品) + * 第一分公司4元 + * 第二分公司4元 + * 公司6元 + * 总拨出14元 + */ + public static final BigDecimal BRANCH = new BigDecimal("4"); + public static final BigDecimal COMPANY_TOTAL = new BigDecimal("14"); + + /** * 会员 推 会员 60 * VIP 推 会员 80 diff --git a/bd-common/bd-common-core/src/main/java/com/hzs/common/core/constant/msg/BonusMsgConstants.java b/bd-common/bd-common-core/src/main/java/com/hzs/common/core/constant/msg/BonusMsgConstants.java index 5e07e5f6..5b5c01d2 100644 --- a/bd-common/bd-common-core/src/main/java/com/hzs/common/core/constant/msg/BonusMsgConstants.java +++ b/bd-common/bd-common-core/src/main/java/com/hzs/common/core/constant/msg/BonusMsgConstants.java @@ -20,6 +20,11 @@ public class BonusMsgConstants { */ public static String REPUR_RANGE = "订单编号%s,%s为%s贡献了复购级差收益,计算金额%f,前一级差等级名称%s,当前级差等级名称%s。"; + /** + * 复购配送收益说明 + */ + public static String REPUR_REGION = "订单编号%s,%s为%s贡献了复购配送收益。"; + /** * 奖金重算 -- 只能重算7天内的奖金! */ diff --git a/bd-common/bd-common-core/src/main/java/com/hzs/common/core/enums/EBonusIncomeStatus.java b/bd-common/bd-common-core/src/main/java/com/hzs/common/core/enums/EBonusIncomeStatus.java index 35a3c3ce..d9e6cfda 100644 --- a/bd-common/bd-common-core/src/main/java/com/hzs/common/core/enums/EBonusIncomeStatus.java +++ b/bd-common/bd-common-core/src/main/java/com/hzs/common/core/enums/EBonusIncomeStatus.java @@ -1,6 +1,5 @@ package com.hzs.common.core.enums; -import com.hzs.common.core.constant.EnumsPrefixConstants; import lombok.AllArgsConstructor; import lombok.Getter; @@ -14,17 +13,17 @@ public enum EBonusIncomeStatus { /** * 正常 */ - NORMAL(0, "正常", 0, EnumsPrefixConstants.BONUS_INCOME_STATUS + "0"), + NORMAL(0, "正常", 0), /** * 停收 */ - STOP_INCOME(1, "停收", 0, EnumsPrefixConstants.BONUS_INCOME_STATUS + "1"), + STOP_INCOME(1, "停收", 0), /** * 烧伤 */ - FIRE_BURN(2, "烧伤", 0, EnumsPrefixConstants.BONUS_INCOME_STATUS + "2"), + FIRE_BURN(2, "烧伤", 0), ; @@ -40,8 +39,17 @@ public enum EBonusIncomeStatus { * 是否启用(0=是,1=否) -- 来源EYesNo */ private final int enable; - /** - * 国际化翻译key值 - */ - private final String key; + + public static String getLabelByValue(Integer value) { + if (null == value) { + return ""; + } + for (EOrderType enums : EOrderType.values()) { + if (enums.getValue() == value) { + return enums.getLabel(); + } + } + return ""; + } + } diff --git a/bd-common/bd-common-core/src/main/java/com/hzs/common/core/enums/EBonusItems.java b/bd-common/bd-common-core/src/main/java/com/hzs/common/core/enums/EBonusItems.java index dcceb06f..a8d60f24 100644 --- a/bd-common/bd-common-core/src/main/java/com/hzs/common/core/enums/EBonusItems.java +++ b/bd-common/bd-common-core/src/main/java/com/hzs/common/core/enums/EBonusItems.java @@ -1,6 +1,5 @@ package com.hzs.common.core.enums; -import com.hzs.common.core.constant.EnumsPrefixConstants; import lombok.AllArgsConstructor; import lombok.Getter; @@ -59,13 +58,17 @@ public enum EBonusItems { ////////////////////////////////////////////////// 新奖项 ////////////////////////////////////////////////// /** - * 直推级差收益 -- 秒结,日奖 + * 直推级差收益 -- 日奖 */ RETAIL_RANGE_INCOME(25, "直推级差收益", 0), /** - * 复购级差收益 -- 秒结,日奖 + * 复购级差收益 -- 日奖 */ RETAIL_REPURCHASE_INCOME(35, "复购级差收益", 0), + /** + * 复购配送收益 -- 日奖 + */ + RETAIL_REPURCHASE_DELIVERY_INCOME(36, "复购配送收益", 0), ; diff --git a/bd-common/bd-common-core/src/main/java/com/hzs/common/core/enums/ECalType.java b/bd-common/bd-common-core/src/main/java/com/hzs/common/core/enums/ECalType.java index 2a7a043a..c41a516c 100644 --- a/bd-common/bd-common-core/src/main/java/com/hzs/common/core/enums/ECalType.java +++ b/bd-common/bd-common-core/src/main/java/com/hzs/common/core/enums/ECalType.java @@ -6,12 +6,6 @@ import lombok.Getter; /** * 计算类型 - * - * @author: sui q - * @time: 2022/8/25 15:09 - * @description: - * @classname: ECalType - * @package_name: com.hzs.common.core.enums */ @AllArgsConstructor @Getter diff --git a/bd-common/bd-common-core/src/main/java/com/hzs/common/core/enums/EOrderType.java b/bd-common/bd-common-core/src/main/java/com/hzs/common/core/enums/EOrderType.java index 1ce17245..32e62fa2 100644 --- a/bd-common/bd-common-core/src/main/java/com/hzs/common/core/enums/EOrderType.java +++ b/bd-common/bd-common-core/src/main/java/com/hzs/common/core/enums/EOrderType.java @@ -104,21 +104,6 @@ public enum EOrderType { return null; } - /** - * 根据值返回显示 - * - * @param value - * @return - */ - public static String getEnumLabelByValue(int value) { - for (EOrderType eOrderType : EOrderType.values()) { - if (eOrderType.getValue() == value) { - return eOrderType.getLabel(); - } - } - return ""; - } - public static List getOrderTypeSpecial() { List resultList = new ArrayList<>(); resultList.add(EOrderType.REGISTER_ORDER); @@ -126,6 +111,7 @@ public enum EOrderType { resultList.add(EOrderType.REPURCHASE_ORDER); return resultList; } + public static String getLabelByValue(Integer value) { if (null == value) { return ""; diff --git a/bd-common/bd-common-domain/src/main/java/com/hzs/common/domain/member/bonus/CuMemberBonus.java b/bd-common/bd-common-domain/src/main/java/com/hzs/common/domain/member/bonus/CuMemberBonus.java index 4b6e41f0..61428d45 100644 --- a/bd-common/bd-common-domain/src/main/java/com/hzs/common/domain/member/bonus/CuMemberBonus.java +++ b/bd-common/bd-common-domain/src/main/java/com/hzs/common/domain/member/bonus/CuMemberBonus.java @@ -236,7 +236,7 @@ public class CuMemberBonus extends BaseEntity { private BigDecimal retailSameLevelIncome; /** - * 新零售区域分红 + * 复购配送收益 */ @TableField("RETAIL_AREA_INCOME") private BigDecimal retailAreaIncome;