From a7330f8d7e303da172c6fb53657a3abbbc43179d Mon Sep 17 00:00:00 2001 From: cabbage <281119120@qq.com> Date: Mon, 13 Oct 2025 10:49:47 +0800 Subject: [PATCH] =?UTF-8?q?##=20=E6=8B=A8=E6=AF=94=E5=A4=84=E7=90=86?= =?UTF-8?q?=EF=BC=9B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../CuBonusVertexStatisController.java | 4 +- .../CuBonusVertexStatisTotalController.java | 163 +++++-------- .../statis/vo/CuBonusVertexStatisTotalVO.java | 204 ++++++++-------- .../statis/vo/CuBonusVertexStatisVO.java | 4 +- .../statis/CuBonusVertexStatisMapper.xml | 219 ++++-------------- 5 files changed, 194 insertions(+), 400 deletions(-) diff --git a/bd-business/bd-business-member/src/main/java/com/hzs/member/statis/controller/manager/CuBonusVertexStatisController.java b/bd-business/bd-business-member/src/main/java/com/hzs/member/statis/controller/manager/CuBonusVertexStatisController.java index f6de9855..df5513c6 100644 --- a/bd-business/bd-business-member/src/main/java/com/hzs/member/statis/controller/manager/CuBonusVertexStatisController.java +++ b/bd-business/bd-business-member/src/main/java/com/hzs/member/statis/controller/manager/CuBonusVertexStatisController.java @@ -166,9 +166,9 @@ public class CuBonusVertexStatisController extends BaseController { // 阶段收益 vo.setStoreIncomeRate(vo.getStoreIncome().divide(vo.getMainRegAmount(), 4, RoundingMode.HALF_UP).multiply(rate)); // 精品级差 - vo.setRangeIncome41(vo.getRangeIncome41().divide(vo.getMainRegAmount(), 4, RoundingMode.HALF_UP).multiply(rate)); + vo.setRangeIncome41Rate(vo.getRangeIncome41().divide(vo.getMainRegAmount(), 4, RoundingMode.HALF_UP).multiply(rate)); // 精品平级 - vo.setSameLevelIncome41(vo.getSameLevelIncome41().divide(vo.getMainRegAmount(), 4, RoundingMode.HALF_UP).multiply(rate)); + vo.setSameLevelIncome41Rate(vo.getSameLevelIncome41().divide(vo.getMainRegAmount(), 4, RoundingMode.HALF_UP).multiply(rate)); } if (vo.getMainRepurAmount().compareTo(BigDecimal.ZERO) > 0) { // 见点收益 diff --git a/bd-business/bd-business-member/src/main/java/com/hzs/member/statis/controller/manager/CuBonusVertexStatisTotalController.java b/bd-business/bd-business-member/src/main/java/com/hzs/member/statis/controller/manager/CuBonusVertexStatisTotalController.java index ca16b4cd..c2f5f55b 100644 --- a/bd-business/bd-business-member/src/main/java/com/hzs/member/statis/controller/manager/CuBonusVertexStatisTotalController.java +++ b/bd-business/bd-business-member/src/main/java/com/hzs/member/statis/controller/manager/CuBonusVertexStatisTotalController.java @@ -1,10 +1,8 @@ package com.hzs.member.statis.controller.manager; -import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.collection.CollectionUtil; import com.hzs.common.core.annotation.AccessPermissions; import com.hzs.common.core.annotation.Log; -import com.hzs.common.core.domain.R; import com.hzs.common.core.enums.EOperationBusiness; import com.hzs.common.core.enums.EOperationMethod; import com.hzs.common.core.enums.EOperationModule; @@ -16,11 +14,7 @@ import com.hzs.common.core.web.page.TableDataInfo; import com.hzs.common.security.utils.SecurityUtils; import com.hzs.member.statis.service.ICuBonusVertexStatisService; import com.hzs.member.statis.vo.CuBonusVertexStatisTotalVO; -import com.hzs.member.statis.vo.CuBonusVertexStatisVO; -import com.hzs.system.base.ICurrencyServiceApi; -import com.hzs.system.base.dto.CurrencyDTO; import lombok.extern.slf4j.Slf4j; -import org.apache.dubbo.config.annotation.DubboReference; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PostMapping; @@ -45,9 +39,6 @@ public class CuBonusVertexStatisTotalController extends BaseController { @Autowired private ICuBonusVertexStatisService iCuBonusVertexStatisService; - @DubboReference - ICurrencyServiceApi iCurrencyServiceApi; - /** * 奖金拨比列表 **/ @@ -55,66 +46,32 @@ public class CuBonusVertexStatisTotalController extends BaseController { @GetMapping("/list") @Log(module = EOperationModule.BONUS_DIAL_RATIO, business = EOperationBusiness.BONUS_DIAL_VERTEX_RATIO_TOTAL, method = EOperationMethod.SELECT) public TableDataInfo list(CuBonusVertexStatisTotalVO cuBonusVertexStatisTotalVO) { - Integer pkCountry = SecurityUtils.getPkCountry(); - R currency = iCurrencyServiceApi.getCurrency(pkCountry); - BigDecimal exchangeRate = currency.getData().getInExchangeRate() == null ? BigDecimal.ONE : currency.getData().getInExchangeRate(); + cuBonusVertexStatisTotalVO.setPkCountry(SecurityUtils.getPkCountry()); - BigDecimal cent = new BigDecimal(100); - cuBonusVertexStatisTotalVO.setRate(exchangeRate); - cuBonusVertexStatisTotalVO.setPerCent(exchangeRate.multiply(cent)); - cuBonusVertexStatisTotalVO.setPkCountry(pkCountry); //默认查询当前日期的前一天 - Date date = DateUtils.currentDate(); - if (StringUtils.isEmpty(cuBonusVertexStatisTotalVO.getStartDate()) || - StringUtils.isEmpty(cuBonusVertexStatisTotalVO.getEndDate())) { + if (StringUtils.isEmpty(cuBonusVertexStatisTotalVO.getStartDate()) || StringUtils.isEmpty(cuBonusVertexStatisTotalVO.getEndDate())) { + Date date = DateUtils.currentDate(); cuBonusVertexStatisTotalVO.setStartDate(DateUtils.beforeDateStr(1, ChronoUnit.DAYS, DateUtils.YYYY_MM_DD, date)); cuBonusVertexStatisTotalVO.setEndDate(DateUtils.beforeDateStr(1, ChronoUnit.DAYS, DateUtils.YYYY_MM_DD, date)); } - //查询分红比例配置 - cuBonusVertexStatisTotalVO.setDividendRatio(BigDecimal.ZERO); - //查询顶点会员 - List vertexList = iCuBonusVertexStatisService.queryCuBonusVertex(cuBonusVertexStatisTotalVO); - - CuBonusVertexStatisVO cvs = BeanUtil.copyProperties(cuBonusVertexStatisTotalVO, CuBonusVertexStatisVO.class); - for (CuBonusVertexStatisTotalVO ve : vertexList) { - cvs.setPkVertex(ve.getPkVertex()); - } startPage(); //查询顶点奖金拨比汇总 List slList = iCuBonusVertexStatisService.queryCuBonusStatisTotal(cuBonusVertexStatisTotalVO); if (CollectionUtil.isNotEmpty(slList)) { - slList.forEach(itm -> { - //重新算首购拨比 - if (itm.getFirstPurchaseAll().compareTo(BigDecimal.ZERO) > 0) { - BigDecimal mainBonusRate = cent.multiply((itm.getMainBonus()).multiply(currency.getData().getInExchangeRate())); - mainBonusRate = mainBonusRate.divide(itm.getFirstPurchaseAll(), 4, RoundingMode.HALF_UP); - itm.setMainBonusRate(mainBonusRate); - itm.setIntroduceBonusRate(itm.getIntroduceBonus().multiply(cuBonusVertexStatisTotalVO.getPerCent()).divide(itm.getFirstPurchaseAll(), 4, RoundingMode.HALF_UP)); - itm.setOrgBonusRate(itm.getOrgBonus().multiply(cuBonusVertexStatisTotalVO.getPerCent()).divide(itm.getFirstPurchaseAll(), 4, RoundingMode.HALF_UP)); - itm.setServiceBonusRate(itm.getServiceBonus().multiply(cuBonusVertexStatisTotalVO.getPerCent()).divide(itm.getFirstPurchaseAll(), 4, RoundingMode.HALF_UP)); - } - //首购拨出金额 - itm.setMainBonus((itm.getMainBonus()).multiply(currency.getData().getInExchangeRate())); - itm.setRepurBonus(itm.getRepurBonus().multiply(currency.getData().getInExchangeRate())); - cuBonusVertexStatisTotalVO.setFirstPurchaseAllSum(cuBonusVertexStatisTotalVO.getFirstPurchaseAllSum().add(itm.getFirstPurchaseAll())); + BigDecimal rate = new BigDecimal(100); + slList.forEach(vo -> { + this.handleStatisVO(vo, rate); }); - } - //计算占比 - slList.forEach(itm -> { - if (cuBonusVertexStatisTotalVO.getFirstPurchaseAllSum().compareTo(BigDecimal.ZERO) > 0) { - itm.setFirstPurchaseRatio(cent.multiply(itm.getFirstPurchaseAll()).divide(cuBonusVertexStatisTotalVO.getFirstPurchaseAllSum(), 4, RoundingMode.HALF_UP)); - } - }); - //查询顶点奖金拨比汇总总和(最后一行) - CuBonusVertexStatisTotalVO cuBonusVertexStatisSum = iCuBonusVertexStatisService.queryCuBonusStatisSum(cuBonusVertexStatisTotalVO); - if (null != cuBonusVertexStatisSum) { - cuBonusVertexStatisSum.setMainBonus((cuBonusVertexStatisSum.getMainBonus()).multiply(currency.getData().getInExchangeRate())); - cuBonusVertexStatisSum.setRepurBonus(cuBonusVertexStatisSum.getRepurBonus().multiply(currency.getData().getInExchangeRate())); - cuBonusVertexStatisSum.setMemberName("汇总"); + //查询顶点奖金拨比汇总总和(最后一行) + CuBonusVertexStatisTotalVO voSum = iCuBonusVertexStatisService.queryCuBonusStatisSum(cuBonusVertexStatisTotalVO); + if (null != voSum) { + this.handleStatisVO(voSum, rate); + voSum.setMemberName("汇总"); + slList.add(voSum); + } } - slList.add(cuBonusVertexStatisSum); return getDataTable(slList); } @@ -124,65 +81,63 @@ public class CuBonusVertexStatisTotalController extends BaseController { @Log(module = EOperationModule.BONUS_DIAL_RATIO, business = EOperationBusiness.BONUS_DIAL_VERTEX_RATIO_TOTAL, method = EOperationMethod.EXPORT) @PostMapping("/export") public void export(HttpServletResponse response, CuBonusVertexStatisTotalVO cuBonusVertexStatisTotalVO) { - Integer pkCountry = SecurityUtils.getPkCountry(); - List slList; - R currency = iCurrencyServiceApi.getCurrency(pkCountry); - BigDecimal exchangeRate = currency.getData().getInExchangeRate() == null ? BigDecimal.ONE : currency.getData().getInExchangeRate(); - cuBonusVertexStatisTotalVO.setRate(exchangeRate); - BigDecimal cent = new BigDecimal(100); - cuBonusVertexStatisTotalVO.setPerCent(exchangeRate.multiply(cent)); - cuBonusVertexStatisTotalVO.setPkCountry(pkCountry); + cuBonusVertexStatisTotalVO.setPkCountry(SecurityUtils.getPkCountry()); + //默认查询当前日期的前一天 - Date date = DateUtils.currentDate(); - if (StringUtils.isEmpty(cuBonusVertexStatisTotalVO.getStartDate()) - || StringUtils.isEmpty(cuBonusVertexStatisTotalVO.getEndDate())) { + if (StringUtils.isEmpty(cuBonusVertexStatisTotalVO.getStartDate()) || StringUtils.isEmpty(cuBonusVertexStatisTotalVO.getEndDate())) { + Date date = DateUtils.currentDate(); cuBonusVertexStatisTotalVO.setStartDate(DateUtils.beforeDateStr(1, ChronoUnit.DAYS, DateUtils.YYYY_MM_DD, date)); cuBonusVertexStatisTotalVO.setEndDate(DateUtils.beforeDateStr(1, ChronoUnit.DAYS, DateUtils.YYYY_MM_DD, date)); } - //查询分红比例配置 - cuBonusVertexStatisTotalVO.setDividendRatio(BigDecimal.ZERO); - //查询顶点会员 - List vertexList = iCuBonusVertexStatisService.queryCuBonusVertex(cuBonusVertexStatisTotalVO); - CuBonusVertexStatisVO cvs = BeanUtil.copyProperties(cuBonusVertexStatisTotalVO, CuBonusVertexStatisVO.class); - for (CuBonusVertexStatisTotalVO ve : vertexList) { - cvs.setPkVertex(ve.getPkVertex()); - } - - startPage(); //查询顶点奖金拨比汇总 - slList = iCuBonusVertexStatisService.queryCuBonusStatisTotal(cuBonusVertexStatisTotalVO); - //查询顶点奖金拨比汇总总和(最后一行) - CuBonusVertexStatisTotalVO cuBonusVertexStatisSum = iCuBonusVertexStatisService.queryCuBonusStatisSum(cuBonusVertexStatisTotalVO); - cuBonusVertexStatisSum.setMainBonus((cuBonusVertexStatisSum.getMainBonus()).multiply(currency.getData().getInExchangeRate())); - cuBonusVertexStatisSum.setRepurBonus(cuBonusVertexStatisSum.getRepurBonus().multiply(currency.getData().getInExchangeRate())); + List slList = iCuBonusVertexStatisService.queryCuBonusStatisTotal(cuBonusVertexStatisTotalVO); if (CollectionUtil.isNotEmpty(slList)) { - slList.forEach(itm -> { - //重新算首购拨比 - if (itm.getFirstPurchaseAll().compareTo(BigDecimal.ZERO) > 0) { - BigDecimal mainBonusRate = cent.multiply((itm.getMainBonus()).multiply(currency.getData().getInExchangeRate())); - mainBonusRate = mainBonusRate.divide(itm.getFirstPurchaseAll(), 4, RoundingMode.HALF_UP); - itm.setMainBonusRate(mainBonusRate); - itm.setIntroduceBonusRate(itm.getIntroduceBonus().multiply(cuBonusVertexStatisTotalVO.getPerCent()).divide(itm.getFirstPurchaseAll(), 4, RoundingMode.HALF_UP)); - itm.setOrgBonusRate(itm.getOrgBonus().multiply(cuBonusVertexStatisTotalVO.getPerCent()).divide(itm.getFirstPurchaseAll(), 4, RoundingMode.HALF_UP)); - itm.setServiceBonusRate(itm.getServiceBonus().multiply(cuBonusVertexStatisTotalVO.getPerCent()).divide(itm.getFirstPurchaseAll(), 4, RoundingMode.HALF_UP)); - } - //首购拨出金额 - itm.setMainBonus((itm.getMainBonus()).multiply(currency.getData().getInExchangeRate())); - itm.setRepurBonus(itm.getRepurBonus().multiply(currency.getData().getInExchangeRate())); - cuBonusVertexStatisTotalVO.setFirstPurchaseAllSum(cuBonusVertexStatisTotalVO.getFirstPurchaseAllSum().add(itm.getFirstPurchaseAll())); + BigDecimal rate = new BigDecimal(100); + slList.forEach(vo -> { + this.handleStatisVO(vo, rate); }); - } - //计算占比 - slList.forEach(itm -> { - if (cuBonusVertexStatisTotalVO.getFirstPurchaseAllSum().compareTo(BigDecimal.ZERO) > 0) { - itm.setFirstPurchaseRatio(cent.multiply(itm.getFirstPurchaseAll()).divide(cuBonusVertexStatisTotalVO.getFirstPurchaseAllSum(), 4, RoundingMode.HALF_UP)); + + //查询顶点奖金拨比汇总总和(最后一行) + CuBonusVertexStatisTotalVO voSum = iCuBonusVertexStatisService.queryCuBonusStatisSum(cuBonusVertexStatisTotalVO); + if (null != voSum) { + this.handleStatisVO(voSum, rate); + voSum.setMemberName("汇总"); + slList.add(voSum); } - }); - cuBonusVertexStatisSum.setMemberName("汇总"); - slList.add(cuBonusVertexStatisSum); + } ExcelUtil util = new ExcelUtil<>(CuBonusVertexStatisTotalVO.class); util.exportExcel(response, slList, "拨比列表"); } + + /** + * 处理统计返回VO + */ + private void handleStatisVO(CuBonusVertexStatisTotalVO vo, BigDecimal rate) { + // 精品专区金额 = 精品 + 甄选 + vo.setMainRegAmount(vo.getMainRegAmount().add(vo.getMainUpAmount())); + // 精品专区奖金 + vo.setMainBonus(vo.getIntroduceBonus().add(vo.getStoreIncome()).add(vo.getRangeIncome41()).add(vo.getSameLevelIncome41())); + // 精品专区拨比 + vo.setMainBonusRate(vo.getMainBonus().divide(vo.getMainRegAmount(), 4, RoundingMode.HALF_UP).multiply(rate)); + + // 商城专区奖金 + vo.setMainRepurBonus(vo.getGlobalPoints().add(vo.getRangeIncome43()).add(vo.getSameLevelIncome43())); + // 商城专区拨比 + vo.setMainRepurBonusRate(vo.getMainRepurBonus().divide(vo.getMainRepurAmount(), 4, RoundingMode.HALF_UP).multiply(rate)); + + // 五折专区奖金 + vo.setRetailConsumeBonus(vo.getRangeIncome47()); + // 五折专区拨比 + vo.setRetailConsumeBonusRate(vo.getRetailConsumeBonus().divide(vo.getRetailConsumeAmount(), 4, RoundingMode.HALF_UP).multiply(rate)); + + // 总金额 + vo.setTotalAmount(vo.getMainRegAmount().add(vo.getMainRepurAmount().add(vo.getRetailConsumeAmount()))); + // 总拨出金额 + vo.setTotalBonus(vo.getIntroduceBonus().add(vo.getStoreIncome()).add(vo.getRetailRangeIncome()).add(vo.getRetailSameLevelIncome()).add(vo.getGlobalPoints())); + // 总拨出比例 + vo.setTotalBonusRate(vo.getTotalBonus().divide(vo.getTotalAmount(), 4, RoundingMode.HALF_UP).multiply(rate)); + } + } diff --git a/bd-business/bd-business-member/src/main/java/com/hzs/member/statis/vo/CuBonusVertexStatisTotalVO.java b/bd-business/bd-business-member/src/main/java/com/hzs/member/statis/vo/CuBonusVertexStatisTotalVO.java index bcc76525..d584e1c6 100644 --- a/bd-business/bd-business-member/src/main/java/com/hzs/member/statis/vo/CuBonusVertexStatisTotalVO.java +++ b/bd-business/bd-business-member/src/main/java/com/hzs/member/statis/vo/CuBonusVertexStatisTotalVO.java @@ -1,5 +1,6 @@ package com.hzs.member.statis.vo; +import com.fasterxml.jackson.annotation.JsonIgnore; import com.hzs.common.core.annotation.BigDecimalFormat; import com.hzs.common.core.annotation.Excel; import lombok.Data; @@ -37,171 +38,156 @@ public class CuBonusVertexStatisTotalVO { private String memberName; /** - * 首购总金额(¥) 注册金额+升级金额+礼包订单(1万礼包) + * 精品专区金额 */ - @Excel(name = "首购金额(¥)", scale = 2) + @Excel(name = "精品专区", scale = 2) @BigDecimalFormat - private BigDecimal firstPurchaseAll = BigDecimal.ZERO; - - @BigDecimalFormat - private BigDecimal firstPurchaseAllSum = BigDecimal.ZERO; - + private BigDecimal mainRegAmount = BigDecimal.ZERO; /** - * 首购金额占比 + * 甄选专区金额 */ - @Excel(name = "首购金额占比", scale = 2) - @BigDecimalFormat - private BigDecimal firstPurchaseRatio = BigDecimal.ZERO; - + private BigDecimal mainUpAmount = BigDecimal.ZERO; /** - * (直推收益+拓展收益+辅导收益+分红收益+报单收益(服务补贴))*0.8=实际拨出之和。 + * 精品专区金额 */ - @Excel(name = "首购奖金(¥)", scale = 2) + @Excel(name = "精品专区奖金", scale = 2) @BigDecimalFormat private BigDecimal mainBonus = BigDecimal.ZERO; /** - * 首购相关奖金拨比(%)=首购总奖金(推荐奖净值+拓展奖净值+领导奖净值+服务费净值+分红奖净值)/首购总金额 + * 精品专区金额 */ - @Excel(name = "首购金额拨出比例(%)", scale = 2) + @Excel(name = "精品专区拨比(%)", scale = 2) @BigDecimalFormat private BigDecimal mainBonusRate = BigDecimal.ZERO; /** - * 首购PV拨出比例(%)=首购拨出金额/首购PV值 + * 商城专区金额 */ - @Excel(name = "首购PV拨出比例(%)", scale = 2) + @Excel(name = "商城专区", scale = 2) @BigDecimalFormat - private BigDecimal mainBonusPvRate = BigDecimal.ZERO; - + private BigDecimal mainRepurAmount = BigDecimal.ZERO; + /** + * 商城专区金额 + */ + @Excel(name = "商城专区奖金", scale = 2) + @BigDecimalFormat + private BigDecimal mainRepurBonus = BigDecimal.ZERO; + /** + * 商城专区金额 + */ + @Excel(name = "商城专区拨比(%)", scale = 2) + @BigDecimalFormat + private BigDecimal mainRepurBonusRate = BigDecimal.ZERO; /** - * 直推拨比(%) + * 五折专区金额 */ - @Excel(name = "直推拨比(%)", scale = 2) + @Excel(name = "五折专区", scale = 2) @BigDecimalFormat - private BigDecimal introduceBonusRate = BigDecimal.ZERO; + private BigDecimal retailConsumeAmount = BigDecimal.ZERO; /** - * 直推收益(¥) + * 五折专区金额 */ + @Excel(name = "五折专区奖金", scale = 2) @BigDecimalFormat - private BigDecimal introduceBonus = BigDecimal.ZERO; + private BigDecimal retailConsumeBonus = BigDecimal.ZERO; /** - * 拓展收益(¥) + * 五折专区金额 */ + @Excel(name = "五折专区拨比(%)", scale = 2) @BigDecimalFormat - private BigDecimal orgBonus = BigDecimal.ZERO; - /** - * 服务补贴(¥) - */ - @BigDecimalFormat - private BigDecimal serviceBonus = BigDecimal.ZERO; + private BigDecimal retailConsumeBonusRate = BigDecimal.ZERO; /** - * 拓展拨比(%) + * 直推收益 */ - @Excel(name = "拓展拨比(%)", scale = 2) - @BigDecimalFormat - private BigDecimal orgBonusRate = BigDecimal.ZERO; + @JsonIgnore + private BigDecimal introduceBonus; + /** + * 阶段收益 + */ + @JsonIgnore + private BigDecimal storeIncome = BigDecimal.ZERO; + /** + * 精品专区领导奖级差(统计波比使用) + */ + @JsonIgnore + private BigDecimal rangeIncome41 = BigDecimal.ZERO; + /** + * 精品专区平级(统计波比使用) + */ + @JsonIgnore + private BigDecimal sameLevelIncome41 = BigDecimal.ZERO; + /** + * 见点收益 + */ + @JsonIgnore + private BigDecimal globalPoints = BigDecimal.ZERO; + /** + * 商城专区领导奖级差(统计波比使用) + */ + @JsonIgnore + private BigDecimal rangeIncome43 = BigDecimal.ZERO; + /** + * 商城专区平级(统计波比使用) + */ + @JsonIgnore + private BigDecimal sameLevelIncome43 = BigDecimal.ZERO; + /** + * 五折专区领导奖级差(统计波比使用) + */ + @JsonIgnore + private BigDecimal rangeIncome47 = BigDecimal.ZERO; + /** + * 领导奖级差收益 + */ + @JsonIgnore + private BigDecimal retailRangeIncome = BigDecimal.ZERO; + /** + * 领导奖平级收益 + */ + @JsonIgnore + private BigDecimal retailSameLevelIncome = BigDecimal.ZERO; /** - * 服务补贴拨比(%) + * 合计金额 */ - @Excel(name = "服务补贴拨比(%)", scale = 2) + @Excel(name = "合计金额", scale = 2) @BigDecimalFormat - private BigDecimal serviceBonusRate = BigDecimal.ZERO; - + private BigDecimal totalAmount = BigDecimal.ZERO; /** - * 复购总金额 复购订单 + * 总拨出金额 */ - @Excel(name = "复购金额(¥)", scale = 2) + @Excel(name = "总拨出金额", scale = 2) @BigDecimalFormat - private BigDecimal repurchaseAllAmount = BigDecimal.ZERO; - + private BigDecimal totalBonus = BigDecimal.ZERO; /** - * (复购直推收益+复购级差收益+复购拓展收益)*80% - * (复购级差+复购拓展 ) *0.8 + * 总拨出比例(%) */ - @Excel(name = "复购拨出金额(¥)", scale = 2) + @Excel(name = "总拨出比例(%)", scale = 2) @BigDecimalFormat - private BigDecimal repurBonus = BigDecimal.ZERO; + private BigDecimal totalBonusRate = BigDecimal.ZERO; - /** - * (复购级差+复购拓展 ) *0.8 - * 复购拨出比例(%) = (((复购直推收益+复购级差收益+复购拓展收益)*80%))/复购总奖金(复购订单) - */ - @Excel(name = "复购拨出比例(%)", scale = 2) - @BigDecimalFormat - private BigDecimal repurBonusRate = BigDecimal.ZERO; - - /** - * 复购PV拨出比例(%) = 复购拨出金额/复购PV值 - */ - @Excel(name = "复购PV拨出比例(%)", scale = 2) - @BigDecimalFormat - private BigDecimal repurBonusPvRate = BigDecimal.ZERO; + ///////////////////////////////////////////////////// /** * 体系ID 统计体系 */ private Integer pkVertex; - /** - * 注册新增PV MAIN_REG_PV - */ - private BigDecimal mainRegPv; - /** - * 升级新增PV MAIN_UP_PV - */ - private BigDecimal mainUpPv; - /** - * 虚拟订单PV FICTITIOUS_PV - */ - private BigDecimal fictitiousPv; /** * 订单金额 */ private BigDecimal orderAmount = BigDecimal.ZERO; - /** - * 复购新增PV MAIN_REPUR_PV - */ - private BigDecimal mainRepurPv; - - /** - * 直播订单PV MALL_PV - */ - private BigDecimal mallPv; - /** - * 合作订单PV COOPERATE_PV - */ - private BigDecimal cooperatePv; - /** - * 福利专区PV WELFARE_ORDER_PV - */ - private BigDecimal welfareOrderPv; - - /** * 国家 */ private Integer pkCountry; - /** - * 币种展示 当地币 本币 - */ - private Integer currency; - /** - * 团队集合 - */ - private String pkTeamCodeStr; /** * 体系集合 */ private String pkBdVertexStr; - - /** - * 团队集合 - */ - private List pkTeamCodeList; /** * 体系集合 */ @@ -225,7 +211,6 @@ public class CuBonusVertexStatisTotalVO { */ private BigDecimal rate = BigDecimal.ZERO; - private Date payTime; private String payTimeStr; private String modifiedTimeStr; @@ -243,11 +228,6 @@ public class CuBonusVertexStatisTotalVO { */ @BigDecimalFormat private BigDecimal backRatio = BigDecimal.ZERO; - /** - * 分红比例% - */ - @BigDecimalFormat - private BigDecimal dividendRatio = BigDecimal.ZERO; /** * 本月会员网体表 diff --git a/bd-business/bd-business-member/src/main/java/com/hzs/member/statis/vo/CuBonusVertexStatisVO.java b/bd-business/bd-business-member/src/main/java/com/hzs/member/statis/vo/CuBonusVertexStatisVO.java index f09b744e..cf98b639 100644 --- a/bd-business/bd-business-member/src/main/java/com/hzs/member/statis/vo/CuBonusVertexStatisVO.java +++ b/bd-business/bd-business-member/src/main/java/com/hzs/member/statis/vo/CuBonusVertexStatisVO.java @@ -231,11 +231,11 @@ public class CuBonusVertexStatisVO { /** * 领导奖级差收益 */ - private BigDecimal retailRangeIncome; + private BigDecimal retailRangeIncome = BigDecimal.ZERO; /** * 领导奖级差收益拨比 */ - private BigDecimal retailRangeIncomeRate; + private BigDecimal retailRangeIncomeRate = BigDecimal.ZERO; /** * 领导奖级差收益合计 */ diff --git a/bd-business/bd-business-member/src/main/resources/mapper/member/statis/CuBonusVertexStatisMapper.xml b/bd-business/bd-business-member/src/main/resources/mapper/member/statis/CuBonusVertexStatisMapper.xml index 57d6aa51..7228980e 100644 --- a/bd-business/bd-business-member/src/main/resources/mapper/member/statis/CuBonusVertexStatisMapper.xml +++ b/bd-business/bd-business-member/src/main/resources/mapper/member/statis/CuBonusVertexStatisMapper.xml @@ -189,96 +189,31 @@ select * from( SELECT cbs.PK_BD_VERTEX pkVertex, - cm.MEMBER_CODE as memberCode, - cm.MEMBER_NAME as memberName, - sum (cbs.MAIN_REG_AMOUNT) mainRegAmount, - sum (cbs.MAIN_UP_AMOUNT) mainUpAmount, - sum (cbs.MAIN_REPUR_AMOUNT) mainRepurAmount, - sum (cbs.INTRODUCE_BONUS) introduceBonus, - sum (cbs.ORG_BONUS) orgBonus, - sum (cbs.LEADER_BONUS) leaderBonus, - sum (cbs.SERVICE_BONUS) serviceBonus, - CASE WHEN - sum(cbs.MAIN_REG_AMOUNT+cbs.MAIN_UP_AMOUNT+cbs.FICTITIOUS_AMOUNT) - = 0 - THEN 0 ELSE ROUND(((#{perCent}*sum(cbs.SERVICE_BONUS))) - /(sum(cbs.MAIN_REG_AMOUNT+cbs.MAIN_UP_AMOUNT+cbs.FICTITIOUS_AMOUNT)),4) - end AS serviceBonusRate, - sum (cbs.REPUR_RANGE_BONUS) repurRangeBonus, - sum (cbs.REPUR_ORG_BONUS) repurOrgBonus, - ((sum(cbs.MAIN_REG_AMOUNT + - cbs.MAIN_UP_AMOUNT+cbs.FICTITIOUS_AMOUNT))) AS - firstPurchaseAll, - ( sum(cbs.MAIN_REPUR_AMOUNT + - cbs.CLOUD_COLLEGE_AMOUNT+cbs.MALL_AMOUNT - +cbs.COOPERATE_AMOUNT - +cbs.WELFARE_ORDER) ) AS repurchaseAllAmount, - sum(cbs.INTRODUCE_BONUS+cbs.ORG_BONUS+cbs.LEADER_BONUS+cbs.SERVICE_BONUS - ) AS mainBonus, - CASE WHEN - sum(cbs.MAIN_REG_AMOUNT+cbs.MAIN_UP_AMOUNT+cbs.FICTITIOUS_AMOUNT) - = 0 - THEN 0 ELSE ROUND(((#{perCent}*sum(cbs.INTRODUCE_BONUS+cbs.ORG_BONUS+cbs.LEADER_BONUS+cbs.SERVICE_BONUS - ))) - /(sum(cbs.MAIN_REG_AMOUNT+cbs.MAIN_UP_AMOUNT+cbs.FICTITIOUS_AMOUNT)),4) - end AS mainBonusRate, + cm.MEMBER_CODE, + cm.MEMBER_NAME, + sum (cbs.MAIN_REG_AMOUNT) MAIN_REG_AMOUNT, + sum (cbs.MAIN_UP_AMOUNT) MAIN_UP_AMOUNT, + sum (cbs.MAIN_REPUR_AMOUNT) MAIN_REPUR_AMOUNT, + sum (cbs.RETAIL_CONSUME_AMOUNT) RETAIL_CONSUME_AMOUNT, - CASE WHEN - sum(cbs.MAIN_REG_PV+cbs.MAIN_UP_PV+cbs.FICTITIOUS_PV) - = 0 - THEN 0 ELSE ROUND(((#{perCent}*sum(cbs.INTRODUCE_BONUS+cbs.ORG_BONUS+cbs.LEADER_BONUS+cbs.SERVICE_BONUS - ))) - /#{rate}/sum(cbs.MAIN_REG_PV+cbs.MAIN_UP_PV+cbs.FICTITIOUS_PV),4) - end AS mainBonusPvRate, - sum(cbs.REPUR_RANGE_BONUS+cbs.REPUR_ORG_BONUS+cbs.REPUR_PUSH_INCOME - ) AS repurBonus, + sum (cbs.REAL_INCOME_TOTAL) REAL_INCOME_TOTAL, + sum (cbs.INTRODUCE_BONUS) INTRODUCE_BONUS, + sum (cbs.STORE_INCOME) STORE_INCOME, + sum (cbs.GLOBAL_POINTS) GLOBAL_POINTS, + sum (cbs.RETAIL_RANGE_INCOME) RETAIL_RANGE_INCOME, + sum (cbs.RETAIL_SAME_LEVEL_INCOME) RETAIL_SAME_LEVEL_INCOME, - CASE WHEN - sum(cbs.MAIN_REPUR_AMOUNT+cbs.CLOUD_COLLEGE_AMOUNT+cbs.MALL_AMOUNT - +cbs.COOPERATE_AMOUNT - +cbs.WELFARE_ORDER)=0 THEN 0 - ELSE ROUND(#{perCent}*sum(((cbs.REPUR_RANGE_BONUS+cbs.REPUR_ORG_BONUS+cbs.REPUR_PUSH_INCOME))) - / - sum(cbs.MAIN_REPUR_AMOUNT+cbs.CLOUD_COLLEGE_AMOUNT+cbs.MALL_AMOUNT - +cbs.COOPERATE_AMOUNT - +cbs.WELFARE_ORDER),4) end AS repurBonusRate, + sum (cbs.RANGE_INCOME_41) RANGE_INCOME_41, + sum (cbs.RANGE_INCOME_43) RANGE_INCOME_43, + sum (cbs.RANGE_INCOME_47) RANGE_INCOME_47, + sum (cbs.SAME_LEVEL_INCOME_41) SAME_LEVEL_INCOME_41, + sum (cbs.SAME_LEVEL_INCOME_43) SAME_LEVEL_INCOME_43 - CASE WHEN - sum(cbs.MAIN_REPUR_PV+cbs.CLOUD_COLLEGE_PV+cbs.MALL_PV - +cbs.COOPERATE_PV - +cbs.WELFARE_ORDER_PV)=0 THEN 0 - ELSE ROUND(#{perCent}*sum(((cbs.REPUR_RANGE_BONUS+cbs.REPUR_ORG_BONUS+cbs.REPUR_PUSH_INCOME))) - /#{rate}/ - sum(cbs.MAIN_REPUR_PV+cbs.CLOUD_COLLEGE_PV+cbs.MALL_PV - +cbs.COOPERATE_PV - +cbs.WELFARE_ORDER_PV),4) end AS repurBonusPvRate, - - sum(cbs.INTRODUCE_BONUS+cbs.ORG_BONUS+cbs.LEADER_BONUS+cbs.SERVICE_BONUS+ - cbs.REPUR_RANGE_BONUS+cbs.REPUR_ORG_BONUS+cbs.REPUR_PUSH_INCOME - ) AS totalBonus, - CASE WHEN - sum(cbs.MAIN_REG_AMOUNT+cbs.MAIN_UP_AMOUNT+cbs.FICTITIOUS_AMOUNT+ - cbs.MAIN_REPUR_AMOUNT+cbs.CLOUD_COLLEGE_AMOUNT+cbs.MALL_AMOUNT - +cbs.COOPERATE_AMOUNT - +cbs.WELFARE_ORDER)=0 THEN 0 - ELSE ROUND ((#{perCent}*sum(cbs.INTRODUCE_BONUS+cbs.ORG_BONUS+cbs.LEADER_BONUS+cbs.SERVICE_BONUS - + - cbs.REPUR_RANGE_BONUS+cbs.REPUR_ORG_BONUS+cbs.REPUR_PUSH_INCOME)) - / - (sum(cbs.MAIN_REG_AMOUNT+cbs.MAIN_UP_AMOUNT+cbs.FICTITIOUS_AMOUNT+ - cbs.MAIN_REPUR_AMOUNT+cbs.CLOUD_COLLEGE_AMOUNT+cbs.MALL_AMOUNT - +cbs.COOPERATE_AMOUNT - +cbs.WELFARE_ORDER)),4) end AS totalBonusRate - FROM - CU_BONUS_VERTEX_STATIS cbs + FROM CU_BONUS_VERTEX_STATIS cbs LEFT JOIN CU_MEMBER cm ON cm.PK_ID = cbs.PK_BD_VERTEX WHERE 1=1 - - and cbs.PK_COUNTRY=#{pkCountry} - - - and cbs.PK_BD_VERTEX =#{pkVertex} + and cbs.PK_BD_VERTEX = #{pkVertex} and cbs.CREATION_TIME >= to_date(#{startDate}, 'yyyy-mm-dd') @@ -288,115 +223,39 @@ GROUP BY cbs.PK_BD_VERTEX,cm.MEMBER_CODE,cm.MEMBER_NAME ) - ORDER BY firstPurchaseAll desc,repurchaseAllAmount desc + ORDER BY MEMBER_CODE