diff --git a/bd-business/bd-business-member/src/main/java/com/hzs/member/statis/controller/manager/CuBonusStatisController.java b/bd-business/bd-business-member/src/main/java/com/hzs/member/statis/controller/manager/CuBonusStatisController.java index cd625bfb..83af01ba 100644 --- a/bd-business/bd-business-member/src/main/java/com/hzs/member/statis/controller/manager/CuBonusStatisController.java +++ b/bd-business/bd-business-member/src/main/java/com/hzs/member/statis/controller/manager/CuBonusStatisController.java @@ -61,12 +61,12 @@ public class CuBonusStatisController extends BaseController { public TableDataInfo list(CuBonusStatisVO cuBonusStatisVO) { int pkCountry = SecurityUtils.getPkCountry(); R currency = iCurrencyServiceApi.getCurrency(pkCountry); - BigDecimal exchangeRate = currency.getData().getInExchangeRate() == null ? BigDecimal.ONE : currency.getData().getInExchangeRate(); - BigDecimal cent = new BigDecimal("100"); + BigDecimal exchangeRate = currency.getData().getInExchangeRate() == null ? BigDecimal.ONE : currency.getData().getInExchangeRate(); cuBonusStatisVO.setRate(exchangeRate); cuBonusStatisVO.setPerCent(exchangeRate.multiply(cent)); cuBonusStatisVO.setPkCountry(pkCountry); + // 默认查询当前日期的前一天 Date date = DateUtils.currentDate(); if (StringUtils.isEmpty(cuBonusStatisVO.getStartDate()) @@ -80,92 +80,131 @@ public class CuBonusStatisController extends BaseController { final List pkBdVertexList = pkBdVertexStr.stream().map(Integer::valueOf).collect(Collectors.toList()); cuBonusStatisVO.setPkBdVertexList(pkBdVertexList); } - if (StringUtils.isNotEmpty(cuBonusStatisVO.getPkTeamCodeStr())) { - String[] split = cuBonusStatisVO.getPkTeamCodeStr().split(","); - List pkTeamCodeStr = Arrays.asList(split); - final List pkTeamCodeList = pkTeamCodeStr.stream().map(Integer::valueOf).collect(Collectors.toList()); - cuBonusStatisVO.setPkTeamCodeList(pkTeamCodeList); - } - - //查询订单业绩,查询分红配置每月10号分红 - BigDecimal dividendRatio = BigDecimal.ZERO; - //查询奖金扣项配置参数 0.8 - List bonus = iCuBonusStatisService.bonusDeductlist(cuBonusStatisVO); - if (CollectionUtil.isNotEmpty(bonus)) { - cuBonusStatisVO.setBackRatio(BigDecimal.ONE.subtract(bonus.get(0).getBackRatio())); - } else { - cuBonusStatisVO.setBackRatio(BigDecimal.ONE); - } - - List orderTypeList = new ArrayList<>(); - orderTypeList.add(EOrderType.REGISTER_ORDER.getValue()); - orderTypeList.add(EOrderType.UPGRADE_ORDER.getValue()); - orderTypeList.add(EOrderType.SPECIAL_REGISTER_ORDER.getValue()); - orderTypeList.add(EOrderType.SPECIAL_UPGRADE_ORDER.getValue()); - cuBonusStatisVO.setOrderTypeList(orderTypeList); - - List bdr = iCuBonusStatisService.bonusDividendRatiolist(cuBonusStatisVO); - if (CollectionUtil.isNotEmpty(bdr)) { - BigDecimal ratio = new BigDecimal("0.01"); - for (CuBonusStatisVO cs : bdr) { - dividendRatio = dividendRatio.add(cs.getDividendRatio()); - } - dividendRatio = dividendRatio.multiply(ratio).multiply(cuBonusStatisVO.getBackRatio()); - cuBonusStatisVO.setDividendRatio(dividendRatio); - } else { - cuBonusStatisVO.setDividendRatio(BigDecimal.ZERO); - } startPage(); - // 查询中国奖金拨比列表 List slList = iCuBonusStatisService.queryCuBonusStatis(cuBonusStatisVO); - if (CollectionUtil.isNotEmpty(slList)) { - slList.forEach(itm -> { - if (itm.getIntroduceBonus().compareTo(BigDecimal.ZERO) > 0) { - itm.setIntroduceBonus(itm.getIntroduceBonus().multiply(currency.getData().getInExchangeRate())); - } - if (itm.getOrgBonus().compareTo(BigDecimal.ZERO) > 0) { - itm.setOrgBonus(itm.getOrgBonus().multiply(currency.getData().getInExchangeRate())); - } - if (itm.getLeaderBonus().compareTo(BigDecimal.ZERO) > 0) { - itm.setLeaderBonus(itm.getLeaderBonus().multiply(currency.getData().getInExchangeRate())); - } - // 重新算首购拨比 - 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.setMainBonusPvRate(itm.getMainBonusPvRate().divide(itm.getFirstPurchaseAll(), 4, RoundingMode.HALF_UP)); - } - // 重新算总拨比 - if (itm.getFirstPurchaseAll().compareTo(BigDecimal.ZERO) > 0 - || itm.getRepurchaseAllAmount().compareTo(BigDecimal.ZERO) > 0) { - BigDecimal totalBonusRate = cent.multiply((itm.getTotalBonus()).multiply(currency.getData().getInExchangeRate())); - totalBonusRate = totalBonusRate.divide(itm.getFirstPurchaseAll().add(itm.getRepurchaseAllAmount()), 4, RoundingMode.HALF_UP); - itm.setTotalBonusRate(totalBonusRate); - } - // 首购拨出金额 - itm.setMainBonus(itm.getMainBonus().multiply(currency.getData().getInExchangeRate())); - itm.setTotalBonus(itm.getTotalBonus().multiply(currency.getData().getInExchangeRate())); - if (itm.getServiceBonus().compareTo(BigDecimal.ZERO) > 0) { - itm.setServiceBonus(itm.getServiceBonus().multiply(currency.getData().getInExchangeRate())); - } - if (itm.getHiFunIncome().compareTo(BigDecimal.ZERO) > 0) { - itm.setHiFunIncome(itm.getHiFunIncome().multiply(currency.getData().getInExchangeRate())); - } - if (itm.getRepurRangeBonus().compareTo(BigDecimal.ZERO) > 0) { - itm.setRepurRangeBonus(itm.getRepurRangeBonus().multiply(currency.getData().getInExchangeRate())); - } - if (itm.getRepurOrgBonus().compareTo(BigDecimal.ZERO) > 0) { - itm.setRepurOrgBonus(itm.getRepurOrgBonus().multiply(currency.getData().getInExchangeRate())); - } - itm.setRepurBonus(itm.getRepurBonus().multiply(currency.getData().getInExchangeRate())); + slList.forEach(item -> { + item.setMainRegAmount(item.getMainRegAmount().add(item.getSpecialRegisterAmount())); + item.setMainUpAmount(item.getMainUpAmount().add(item.getSpecialUpgradeAmount())); + item.setMainRepurAmount(item.getMainRepurAmount().add(item.getSpecialRepurchaseAmount())); }); } return getDataTable(slList); } + /** + * 奖金拨比列表合计 + **/ + @AccessPermissions("performanceList") + @GetMapping("/subtotal") + @Log(module = EOperationModule.BONUS_DIAL_RATIO, business = EOperationBusiness.BONUS_DIAL_RATIO_LIST, method = EOperationMethod.SELECT) + public AjaxResult subtotal(CuBonusStatisVO cuBonusStatisVO) { + int pkCountry = SecurityUtils.getPkCountry(); + R currency = iCurrencyServiceApi.getCurrency(pkCountry); + BigDecimal exchangeRate = currency.getData().getInExchangeRate() == null ? BigDecimal.ONE : currency.getData().getInExchangeRate(); + + BigDecimal cent = new BigDecimal("100"); + cuBonusStatisVO.setRate(exchangeRate); + cuBonusStatisVO.setPerCent(exchangeRate.multiply(cent)); + cuBonusStatisVO.setPkCountry(pkCountry); + + Date date = DateUtils.currentDate(); + //默认查询当前日期的前一天 + if (StringUtils.isEmpty(cuBonusStatisVO.getStartDate()) || + StringUtils.isEmpty(cuBonusStatisVO.getEndDate())) { + cuBonusStatisVO.setStartDate(DateUtils.beforeDateStr(1, ChronoUnit.DAYS, DateUtils.YYYY_MM_DD, date)); + cuBonusStatisVO.setEndDate(DateUtils.beforeDateStr(1, ChronoUnit.DAYS, DateUtils.YYYY_MM_DD, date)); + } + if (StringUtils.isNotEmpty(cuBonusStatisVO.getPkBdVertexStr())) { + String[] split = cuBonusStatisVO.getPkBdVertexStr().split(","); + List pkBdVertexStr = Arrays.asList(split); + final List pkBdVertexList = pkBdVertexStr.stream().map(Integer::valueOf).collect(Collectors.toList()); + cuBonusStatisVO.setPkBdVertexList(pkBdVertexList); + } + + CuBonusStatisVO subtotal = iCuBonusStatisService.queryCuBonusSumStatis(cuBonusStatisVO); + if (null != subtotal) { + subtotal.setMainRegAmountSum(subtotal.getMainRegAmountSum().add(subtotal.getSpecialRegisterAmountSum())); + subtotal.setMainUpAmountSum(subtotal.getMainUpAmountSum().add(subtotal.getSpecialUpgradeAmountSum())); + subtotal.setMainRepurAmountSum(subtotal.getMainRepurAmountSum().add(subtotal.getSpecialRepurchaseAmountSum())); + } + + return AjaxResult.success(subtotal); + } + + /** + * 导出奖金拨比列表 + **/ + @Log(module = EOperationModule.BONUS_DIAL_RATIO, business = EOperationBusiness.BONUS_DIAL_RATIO_LIST, method = EOperationMethod.EXPORT) + @PostMapping("/export") + public void export(HttpServletResponse response, CuBonusStatisVO cuBonusStatisVO) { + Integer pkCountry = SecurityUtils.getPkCountry(); + R currency = iCurrencyServiceApi.getCurrency(pkCountry); + BigDecimal exchangeRate = currency.getData().getInExchangeRate() == null ? BigDecimal.ONE : currency.getData().getInExchangeRate(); + + BigDecimal cent = new BigDecimal("100"); + cuBonusStatisVO.setRate(exchangeRate); + cuBonusStatisVO.setPerCent(exchangeRate.multiply(cent)); + cuBonusStatisVO.setPkCountry(pkCountry); + + //默认查询当前日期的前一天 + Date date = DateUtils.currentDate(); + if (StringUtils.isEmpty(cuBonusStatisVO.getStartDate()) || + StringUtils.isEmpty(cuBonusStatisVO.getEndDate())) { + cuBonusStatisVO.setStartDate(DateUtils.beforeDateStr(1, ChronoUnit.DAYS, DateUtils.YYYY_MM_DD, date)); + cuBonusStatisVO.setEndDate(DateUtils.beforeDateStr(1, ChronoUnit.DAYS, DateUtils.YYYY_MM_DD, date)); + } + if (StringUtils.isNotEmpty(cuBonusStatisVO.getPkBdVertexStr())) { + String[] split = cuBonusStatisVO.getPkBdVertexStr().split(","); + List pkBdVertexStr = Arrays.asList(split); + final List pkBdVertexList = pkBdVertexStr.stream().map(Integer::valueOf).collect(Collectors.toList()); + cuBonusStatisVO.setPkBdVertexList(pkBdVertexList); + } + + List slList = iCuBonusStatisService.queryCuBonusStatis(cuBonusStatisVO); + if (CollectionUtil.isNotEmpty(slList)) { + slList.forEach(item -> { + item.setMainRegAmount(item.getMainRegAmount().add(item.getSpecialRegisterAmount())); + item.setMainUpAmount(item.getMainUpAmount().add(item.getSpecialUpgradeAmount())); + item.setMainRepurAmount(item.getMainRepurAmount().add(item.getSpecialRepurchaseAmount())); + }); + } + + //合计 + CuBonusStatisVO subtotal = iCuBonusStatisService.queryCuBonusSumStatis(cuBonusStatisVO); + if (null != subtotal) { + subtotal.setVertexName("合计"); + subtotal.setMainBonusPvRate(subtotal.getMainBonusPvRateSum()); + subtotal.setRepurBonusPvRate(subtotal.getRepurBonusPvRateSum()); + subtotal.setMainRegAmount(subtotal.getMainRegAmountSum().add(subtotal.getSpecialRegisterAmountSum())); + subtotal.setMainUpAmount(subtotal.getMainUpAmountSum().add(subtotal.getSpecialUpgradeAmountSum())); + subtotal.setFirstPurchaseAll(subtotal.getFirstPurchaseAllSum()); + subtotal.setIntroduceBonus(subtotal.getIntroduceBonusSum()); + subtotal.setOrgBonus(subtotal.getOrgBonusSum()); + subtotal.setLeaderBonus(subtotal.getLeaderBonusSum()); + subtotal.setServiceBonus(subtotal.getServiceBonusSum()); + subtotal.setMainRepurAmount(subtotal.getMainRepurAmountSum().add(subtotal.getSpecialRepurchaseAmountSum())); + subtotal.setRepurchaseAllAmount(subtotal.getRepurchaseAllAmountSum()); + subtotal.setRepurRangeBonus(subtotal.getRepurRangeBonusSum()); + subtotal.setRepurOrgBonus(subtotal.getRepurOrgBonusSum()); + subtotal.setRepurLeaderBonus(subtotal.getRepurLeaderBonusSum()); + subtotal.setMainBonus(subtotal.getMainBonusSum()); + subtotal.setMainBonusRate(subtotal.getMainBonusRateSum()); + subtotal.setRepurBonus(subtotal.getRepurBonusSum()); + subtotal.setRepurBonusRate(subtotal.getRepurBonusRateSum()); + subtotal.setTotalBonus(subtotal.getTotalBonusSum()); + subtotal.setTotalBonusRate(subtotal.getTotalBonusRateSum()); + } + slList.add(subtotal); + + ExcelUtil util = new ExcelUtil<>(CuBonusStatisVO.class); + util.exportExcel(response, slList, "拨比列表"); + } + + ////////////////////////////////////////////////////////////////////////////////////////////////// + + /** * 查询单个人奖金拨比列表 **/ @@ -323,90 +362,6 @@ public class CuBonusStatisController extends BaseController { util.exportExcel(response, cspsList, "个人拨比列表"); } - /** - * 奖金拨比列表合计 - **/ - @AccessPermissions("performanceList") - @GetMapping("/subtotal") - @Log(module = EOperationModule.BONUS_DIAL_RATIO, business = EOperationBusiness.BONUS_DIAL_RATIO_LIST, method = EOperationMethod.SELECT) - public AjaxResult subtotal(CuBonusStatisVO cuBonusStatisVO) { - int pkCountry = SecurityUtils.getPkCountry(); - R currency = iCurrencyServiceApi.getCurrency(pkCountry); - BigDecimal exchangeRate = currency.getData().getInExchangeRate() == null ? BigDecimal.ONE : currency.getData().getInExchangeRate(); - - BigDecimal cent = new BigDecimal("100"); - cuBonusStatisVO.setRate(exchangeRate); - cuBonusStatisVO.setPerCent(exchangeRate.multiply(cent)); - cuBonusStatisVO.setPkCountry(pkCountry); - - Date date = DateUtils.currentDate(); - //默认查询当前日期的前一天 - if (StringUtils.isEmpty(cuBonusStatisVO.getStartDate()) || - StringUtils.isEmpty(cuBonusStatisVO.getEndDate())) { - cuBonusStatisVO.setStartDate(DateUtils.beforeDateStr(1, ChronoUnit.DAYS, DateUtils.YYYY_MM_DD, date)); - cuBonusStatisVO.setEndDate(DateUtils.beforeDateStr(1, ChronoUnit.DAYS, DateUtils.YYYY_MM_DD, date)); - } - if (StringUtils.isNotEmpty(cuBonusStatisVO.getPkBdVertexStr())) { - String[] split = cuBonusStatisVO.getPkBdVertexStr().split(","); - List pkBdVertexStr = Arrays.asList(split); - final List pkBdVertexList = pkBdVertexStr.stream().map(Integer::valueOf).collect(Collectors.toList()); - cuBonusStatisVO.setPkBdVertexList(pkBdVertexList); - } - if (StringUtils.isNotEmpty(cuBonusStatisVO.getPkTeamCodeStr())) { - String[] split = cuBonusStatisVO.getPkTeamCodeStr().split(","); - List pkTeamCodeStr = Arrays.asList(split); - final List pkTeamCodeList = pkTeamCodeStr.stream().map(Integer::valueOf).collect(Collectors.toList()); - cuBonusStatisVO.setPkTeamCodeList(pkTeamCodeList); - } - - // 查询奖金扣项配置参数 0.8 - List bonus = iCuBonusStatisService.bonusDeductlist(cuBonusStatisVO); - if (CollectionUtil.isNotEmpty(bonus)) { - cuBonusStatisVO.setBackRatio(BigDecimal.ONE.subtract(bonus.get(0).getBackRatio())); - } else { - cuBonusStatisVO.setBackRatio(BigDecimal.ONE); - } - - List orderTypeList = new ArrayList<>(); - orderTypeList.add(EOrderType.REGISTER_ORDER.getValue()); - orderTypeList.add(EOrderType.UPGRADE_ORDER.getValue()); - orderTypeList.add(EOrderType.SPECIAL_REGISTER_ORDER.getValue()); - orderTypeList.add(EOrderType.SPECIAL_UPGRADE_ORDER.getValue()); - cuBonusStatisVO.setOrderTypeList(orderTypeList); - cuBonusStatisVO.setDividendRatio(BigDecimal.ZERO); - - startPage(); - CuBonusStatisVO subtotal = iCuBonusStatisService.queryCuBonusSumStatis(cuBonusStatisVO); - if (subtotal != null) { - if (subtotal.getIntroduceBonusSum().compareTo(BigDecimal.ZERO) > 0) { - subtotal.setIntroduceBonusSum(subtotal.getIntroduceBonusSum().multiply(currency.getData().getInExchangeRate())); - } - if (subtotal.getOrgBonusSum().compareTo(BigDecimal.ZERO) > 0) { - subtotal.setOrgBonusSum(subtotal.getOrgBonusSum().multiply(currency.getData().getInExchangeRate())); - } - if (subtotal.getLeaderBonusSum().compareTo(BigDecimal.ZERO) > 0) { - subtotal.setLeaderBonusSum(subtotal.getLeaderBonusSum().multiply(currency.getData().getInExchangeRate())); - } - if (cuBonusStatisVO.getOrderAchieve().compareTo(BigDecimal.ZERO) > 0) { - subtotal.setShareBonusSum(cuBonusStatisVO.getOrderAchieve().multiply(currency.getData().getInExchangeRate())); - } - if (subtotal.getServiceBonusSum().compareTo(BigDecimal.ZERO) > 0) { - subtotal.setServiceBonusSum(subtotal.getServiceBonusSum().multiply(currency.getData().getInExchangeRate())); - } - if (subtotal.getRepurRangeBonusSum().compareTo(BigDecimal.ZERO) > 0) { - subtotal.setRepurRangeBonusSum(subtotal.getRepurRangeBonusSum().multiply(currency.getData().getInExchangeRate())); - } - if (subtotal.getRepurOrgBonusSum().compareTo(BigDecimal.ZERO) > 0) { - subtotal.setRepurOrgBonusSum(subtotal.getRepurOrgBonusSum().multiply(currency.getData().getInExchangeRate())); - } - subtotal.setMainBonusSum(subtotal.getMainBonusSum().multiply(currency.getData().getInExchangeRate())); - subtotal.setRepurBonusSum(subtotal.getRepurBonusSum().multiply(currency.getData().getInExchangeRate())); - subtotal.setTotalBonusSum(subtotal.getTotalBonusSum().multiply(currency.getData().getInExchangeRate())); - } - return AjaxResult.success(subtotal); - } - - /** * 奖金拨比图表统计 **/ @@ -625,137 +580,6 @@ public class CuBonusStatisController extends BaseController { return AjaxResult.success(sumChart); } - /** - * 导出奖金拨比列表 - **/ - @Log(module = EOperationModule.BONUS_DIAL_RATIO, business = EOperationBusiness.BONUS_DIAL_RATIO_LIST, method = EOperationMethod.EXPORT) - @PostMapping("/export") - public void export(HttpServletResponse response, CuBonusStatisVO cuBonusStatisVO) { - Integer pkCountry = SecurityUtils.getPkCountry(); - - R currency = iCurrencyServiceApi.getCurrency(pkCountry); - BigDecimal exchangeRate = currency.getData().getInExchangeRate() == null ? BigDecimal.ONE : currency.getData().getInExchangeRate(); - - BigDecimal cent = new BigDecimal("100"); - cuBonusStatisVO.setRate(exchangeRate); - cuBonusStatisVO.setPerCent(exchangeRate.multiply(cent)); - cuBonusStatisVO.setPkCountry(pkCountry); - - //默认查询当前日期的前一天 - Date date = DateUtils.currentDate(); - if (StringUtils.isEmpty(cuBonusStatisVO.getStartDate()) || - StringUtils.isEmpty(cuBonusStatisVO.getEndDate())) { - cuBonusStatisVO.setStartDate(DateUtils.beforeDateStr(1, ChronoUnit.DAYS, DateUtils.YYYY_MM_DD, date)); - cuBonusStatisVO.setEndDate(DateUtils.beforeDateStr(1, ChronoUnit.DAYS, DateUtils.YYYY_MM_DD, date)); - } - if (StringUtils.isNotEmpty(cuBonusStatisVO.getPkBdVertexStr())) { - String[] split = cuBonusStatisVO.getPkBdVertexStr().split(","); - List pkBdVertexStr = Arrays.asList(split); - final List pkBdVertexList = pkBdVertexStr.stream().map(Integer::valueOf).collect(Collectors.toList()); - cuBonusStatisVO.setPkBdVertexList(pkBdVertexList); - } - if (StringUtils.isNotEmpty(cuBonusStatisVO.getPkTeamCodeStr())) { - String[] split = cuBonusStatisVO.getPkTeamCodeStr().split(","); - List pkTeamCodeStr = Arrays.asList(split); - final List pkTeamCodeList = pkTeamCodeStr.stream().map(Integer::valueOf).collect(Collectors.toList()); - cuBonusStatisVO.setPkTeamCodeList(pkTeamCodeList); - } - //查询奖金扣项配置参数 0.8 - List bonus = iCuBonusStatisService.bonusDeductlist(cuBonusStatisVO); - if (CollectionUtil.isNotEmpty(bonus)) { - cuBonusStatisVO.setBackRatio(BigDecimal.ONE.subtract(bonus.get(0).getBackRatio())); - } else { - cuBonusStatisVO.setBackRatio(BigDecimal.ONE); - } - - List orderTypeList = new ArrayList<>(); - orderTypeList.add(EOrderType.REGISTER_ORDER.getValue()); - orderTypeList.add(EOrderType.UPGRADE_ORDER.getValue()); - orderTypeList.add(EOrderType.SPECIAL_REGISTER_ORDER.getValue()); - orderTypeList.add(EOrderType.SPECIAL_UPGRADE_ORDER.getValue()); - cuBonusStatisVO.setOrderTypeList(orderTypeList); - cuBonusStatisVO.setDividendRatio(BigDecimal.ZERO); - - startPage(); - List slList = iCuBonusStatisService.queryCuBonusStatis(cuBonusStatisVO); - //合计 - CuBonusStatisVO subtotal = iCuBonusStatisService.queryCuBonusSumStatis(cuBonusStatisVO); - - if (CollectionUtil.isNotEmpty(slList)) { - slList.forEach(itm -> { - if (itm.getIntroduceBonus().compareTo(BigDecimal.ZERO) > 0) { - itm.setIntroduceBonus(itm.getIntroduceBonus().multiply(currency.getData().getInExchangeRate())); - } - if (itm.getOrgBonus().compareTo(BigDecimal.ZERO) > 0) { - itm.setOrgBonus(itm.getOrgBonus().multiply(currency.getData().getInExchangeRate())); - } - if (itm.getLeaderBonus().compareTo(BigDecimal.ZERO) > 0) { - itm.setLeaderBonus(itm.getLeaderBonus().multiply(currency.getData().getInExchangeRate())); - } - //重新算首购拨比 - 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); - } - //重新算总拨比 - if (itm.getFirstPurchaseAll().compareTo(BigDecimal.ZERO) > 0 || - itm.getRepurchaseAllAmount().compareTo(BigDecimal.ZERO) > 0) { - BigDecimal totalBonusRate = cent.multiply((itm.getTotalBonus()).multiply(currency.getData().getInExchangeRate())); - totalBonusRate = totalBonusRate.divide(itm.getFirstPurchaseAll().add(itm.getRepurchaseAllAmount()), 4, RoundingMode.HALF_UP); - itm.setTotalBonusRate(totalBonusRate); - } - //首购拨出金额 - itm.setMainBonus(itm.getMainBonus().multiply(currency.getData().getInExchangeRate())); - itm.setTotalBonus((itm.getTotalBonus()).multiply(currency.getData().getInExchangeRate())); - - if (itm.getServiceBonus().compareTo(BigDecimal.ZERO) > 0) { - itm.setServiceBonus(itm.getServiceBonus().multiply(currency.getData().getInExchangeRate())); - } - if (itm.getHiFunIncome().compareTo(BigDecimal.ZERO) > 0) { - itm.setHiFunIncome(itm.getHiFunIncome().multiply(currency.getData().getInExchangeRate())); - } - if (itm.getRepurRangeBonus().compareTo(BigDecimal.ZERO) > 0) { - itm.setRepurRangeBonus(itm.getRepurRangeBonus().multiply(currency.getData().getInExchangeRate())); - } - if (itm.getRepurOrgBonus().compareTo(BigDecimal.ZERO) > 0) { - itm.setRepurOrgBonus(itm.getRepurOrgBonus().multiply(currency.getData().getInExchangeRate())); - } - if (itm.getRepurBonus().compareTo(BigDecimal.ZERO) > 0) { - itm.setRepurBonus(itm.getRepurBonus().multiply(currency.getData().getInExchangeRate())); - } - }); - } - - //合计 - subtotal.setVertexName("合计"); - subtotal.setMainBonusRate(subtotal.getMainBonusRateSum()); - subtotal.setRepurBonusRate(subtotal.getRepurBonusRateSum()); - subtotal.setIntroduceBonus(subtotal.getIntroduceBonusSum().multiply(currency.getData().getInExchangeRate())); - subtotal.setOrgBonus(subtotal.getOrgBonusSum().multiply(currency.getData().getInExchangeRate())); - subtotal.setLeaderBonus(subtotal.getLeaderBonusSum().multiply(currency.getData().getInExchangeRate())); - subtotal.setShareBonus(subtotal.getShareBonusSum().multiply(currency.getData().getInExchangeRate())); - subtotal.setServiceBonus(subtotal.getServiceBonusSum().multiply(currency.getData().getInExchangeRate())); - subtotal.setRepurRangeBonus(subtotal.getRepurRangeBonusSum().multiply(currency.getData().getInExchangeRate())); - subtotal.setRepurOrgBonus(subtotal.getRepurOrgBonusSum().multiply(currency.getData().getInExchangeRate())); - subtotal.setMainBonus(subtotal.getMainBonusSum().multiply(currency.getData().getInExchangeRate())); - subtotal.setRepurBonus(subtotal.getRepurBonusSum().multiply(currency.getData().getInExchangeRate())); - subtotal.setTotalBonus((subtotal.getTotalBonusSum()).multiply(currency.getData().getInExchangeRate())); - subtotal.setMainRegAmount(subtotal.getMainRegAmountSum()); - subtotal.setMainUpAmount(subtotal.getMainUpAmountSum()); - subtotal.setFirstPurchaseAll(subtotal.getFirstPurchaseAllSum()); - subtotal.setMainRepurAmount(subtotal.getMainRepurAmountSum()); - subtotal.setHifansRegAmount(subtotal.getHifansRegAmountSum()); - subtotal.setRepurchaseAllAmount(subtotal.getRepurchaseAllAmountSum()); - subtotal.setTotalBonusRate(subtotal.getTotalBonusRateSum()); - subtotal.setMainBonusPvRate(subtotal.getMainBonusPvRateSum()); - subtotal.setRepurBonusPvRate(subtotal.getRepurBonusPvRateSum()); - - slList.add(subtotal); - ExcelUtil util = new ExcelUtil<>(CuBonusStatisVO.class); - util.exportExcel(response, slList, "拨比列表"); - } - /** * 导出奖金图表 **/ 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 3091bed9..c8274d12 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 @@ -1,6 +1,6 @@ package com.hzs.member.statis.controller.manager; - import cn.hutool.core.collection.CollectionUtil; +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.constant.msg.FinanceMsgConstants; @@ -128,7 +128,29 @@ public class CuBonusVertexStatisController extends BaseController { // 合计 CuBonusVertexStatisVO subtotal = iCuBonusVertexStatisService.queryCuBonusSumStatis(cuBonusVertexStatisVO); - subtotal.setMemberCode("合计"); + if (null != subtotal) { + subtotal.setMemberCode("合计"); + subtotal.setMainBonusPvRate(subtotal.getMainBonusPvRateSum()); + subtotal.setRepurBonusPvRate(subtotal.getRepurBonusPvRateSum()); + subtotal.setMainRegAmount(subtotal.getMainRegAmountSum().add(subtotal.getSpecialRegisterAmountSum())); + subtotal.setMainUpAmount(subtotal.getMainUpAmountSum().add(subtotal.getSpecialUpgradeAmountSum())); + subtotal.setFirstPurchaseAll(subtotal.getFirstPurchaseAllSum()); + subtotal.setIntroduceBonus(subtotal.getIntroduceBonusSum()); + subtotal.setOrgBonus(subtotal.getOrgBonusSum()); + subtotal.setLeaderBonus(subtotal.getLeaderBonusSum()); + subtotal.setServiceBonus(subtotal.getServiceBonusSum()); + subtotal.setMainRepurAmount(subtotal.getMainRepurAmountSum().add(subtotal.getSpecialRepurchaseAmountSum())); + subtotal.setRepurchaseAllAmount(subtotal.getRepurchaseAllAmountSum()); + subtotal.setRepurRangeBonus(subtotal.getRepurRangeBonusSum()); + subtotal.setRepurOrgBonus(subtotal.getRepurOrgBonusSum()); + subtotal.setRepurLeaderBonus(subtotal.getRepurLeaderBonusSum()); + subtotal.setMainBonus(subtotal.getMainBonusSum()); + subtotal.setMainBonusRate(subtotal.getMainBonusRateSum()); + subtotal.setRepurBonus(subtotal.getRepurBonusSum()); + subtotal.setRepurBonusRate(subtotal.getRepurBonusRateSum()); + subtotal.setTotalBonus(subtotal.getTotalBonusSum()); + subtotal.setTotalBonusRate(subtotal.getTotalBonusRateSum()); + } slList.add(subtotal); ExcelUtil util = new ExcelUtil<>(CuBonusVertexStatisVO.class); @@ -160,6 +182,11 @@ public class CuBonusVertexStatisController extends BaseController { //查询合计 CuBonusVertexStatisVO subtotal = iCuBonusVertexStatisService.queryCuBonusSumStatis(cuBonusVertexStatisVO); + if (null != subtotal) { + subtotal.setMainRegAmountSum(subtotal.getMainRegAmountSum().add(subtotal.getSpecialRegisterAmountSum())); + subtotal.setMainUpAmountSum(subtotal.getMainUpAmountSum().add(subtotal.getSpecialUpgradeAmountSum())); + subtotal.setMainRepurAmountSum(subtotal.getMainRepurAmountSum().add(subtotal.getSpecialRepurchaseAmountSum())); + } return AjaxResult.success(subtotal); } 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 957070ab..88bd3a6d 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 @@ -4,12 +4,10 @@ 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.constant.CountryConstants; 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; -import com.hzs.common.core.enums.EOrderType; import com.hzs.common.core.utils.DateUtils; import com.hzs.common.core.utils.StringUtils; import com.hzs.common.core.utils.poi.ExcelUtil; @@ -17,7 +15,7 @@ import com.hzs.common.core.web.controller.BaseController; 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.CuBonusVertexStaticTotalVO; import com.hzs.member.statis.vo.CuBonusVertexStatisVO; import com.hzs.system.base.ICurrencyServiceApi; import com.hzs.system.base.dto.CurrencyDTO; @@ -33,9 +31,7 @@ import javax.servlet.http.HttpServletResponse; import java.math.BigDecimal; import java.math.RoundingMode; import java.time.temporal.ChronoUnit; -import java.util.ArrayList; -import java.util.Date; -import java.util.List; +import java.util.*; /** * 奖金拨比零线汇总统计 前端控制器 @@ -56,74 +52,67 @@ public class CuBonusVertexStatisTotalController extends BaseController { @AccessPermissions("TopPerformanceTotal") @GetMapping("/list") @Log(module = EOperationModule.BONUS_DIAL_RATIO, business = EOperationBusiness.BONUS_DIAL_VERTEX_RATIO_TOTAL, method = EOperationMethod.SELECT) - public TableDataInfo list(CuBonusVertexStatisTotalVO cuBonusVertexStatisTotalVO) { + public TableDataInfo list(CuBonusVertexStaticTotalVO cuBonusVertexStaticTotalVO) { 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); + BigDecimal exchangeRate = currency.getData().getInExchangeRate() == null ? BigDecimal.ONE : currency.getData().getInExchangeRate(); + cuBonusVertexStaticTotalVO.setRate(exchangeRate); + cuBonusVertexStaticTotalVO.setPerCent(exchangeRate.multiply(cent)); + cuBonusVertexStaticTotalVO.setPkCountry(pkCountry); //默认查询当前日期的前一天 Date date = DateUtils.currentDate(); - if (StringUtils.isEmpty(cuBonusVertexStatisTotalVO.getStartDate()) || - StringUtils.isEmpty(cuBonusVertexStatisTotalVO.getEndDate())) { - cuBonusVertexStatisTotalVO.setStartDate(DateUtils.beforeDateStr(1, ChronoUnit.DAYS, DateUtils.YYYY_MM_DD, date)); - cuBonusVertexStatisTotalVO.setEndDate(DateUtils.beforeDateStr(1, ChronoUnit.DAYS, DateUtils.YYYY_MM_DD, date)); + if (StringUtils.isEmpty(cuBonusVertexStaticTotalVO.getStartDate()) + || StringUtils.isEmpty(cuBonusVertexStaticTotalVO.getEndDate())) { + cuBonusVertexStaticTotalVO.setStartDate(DateUtils.beforeDateStr(1, ChronoUnit.DAYS, DateUtils.YYYY_MM_DD, date)); + cuBonusVertexStaticTotalVO.setEndDate(DateUtils.beforeDateStr(1, ChronoUnit.DAYS, DateUtils.YYYY_MM_DD, date)); } - List orderTypeList = new ArrayList<>(); - orderTypeList.add(EOrderType.REGISTER_ORDER.getValue()); - orderTypeList.add(EOrderType.UPGRADE_ORDER.getValue()); - orderTypeList.add(EOrderType.SPECIAL_REGISTER_ORDER.getValue()); - orderTypeList.add(EOrderType.SPECIAL_UPGRADE_ORDER.getValue()); - cuBonusVertexStatisTotalVO.setOrderTypeList(orderTypeList); - //查询分红比例配置 - cuBonusVertexStatisTotalVO.setDividendRatio(BigDecimal.ZERO); - //查询顶点会员 - List vertexList = iCuBonusVertexStatisService.queryCuBonusVertex(cuBonusVertexStatisTotalVO); - CuBonusVertexStatisVO cvs = BeanUtil.copyProperties(cuBonusVertexStatisTotalVO, CuBonusVertexStatisVO.class); - for (CuBonusVertexStatisTotalVO ve : vertexList) { + Map touchMap = new HashMap<>(); + //查询顶点会员 + List vertexList = iCuBonusVertexStatisService.queryCuBonusVertex(cuBonusVertexStaticTotalVO); + CuBonusVertexStatisVO cvs = BeanUtil.copyProperties(cuBonusVertexStaticTotalVO, CuBonusVertexStatisVO.class); + for (CuBonusVertexStaticTotalVO ve : vertexList) { cvs.setPkVertex(ve.getPkVertex()); + //查询顶点拓展平均碰次和拓展最高碰次 + CuBonusVertexStaticTotalVO touch = iCuBonusVertexStatisService.queryTouch(cvs); + if (touch != null) { + touchMap.put(ve.getPkVertex(), touch); + } } + startPage(); //查询顶点奖金拨比汇总 - slList = iCuBonusVertexStatisService.queryCuBonusStatisTotal(cuBonusVertexStatisTotalVO); - //查询顶点奖金拨比汇总总和(最后一行) - CuBonusVertexStatisTotalVO cuBonusVertexStatisSum = iCuBonusVertexStatisService.queryCuBonusStatisSum(cuBonusVertexStatisTotalVO); - if (null != cuBonusVertexStatisSum) { - cuBonusVertexStatisSum.setMainBonus((cuBonusVertexStatisSum.getMainBonus()).multiply(currency.getData().getInExchangeRate())); - cuBonusVertexStatisSum.setRepurBonus(cuBonusVertexStatisSum.getRepurBonus().multiply(currency.getData().getInExchangeRate())); - if (CollectionUtil.isNotEmpty(slList)) { - slList.forEach(itm -> { - if (pkCountry.equals(CountryConstants.CHINA_COUNTRY)) { - //重新算首购拨比 - 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())); - } - }); - } - //计算占比 + List slList = iCuBonusVertexStatisService.queryCuBonusStatisTotal(cuBonusVertexStaticTotalVO); + if (CollectionUtil.isNotEmpty(slList)) { slList.forEach(itm -> { - if (cuBonusVertexStatisTotalVO.getFirstPurchaseAllSum().compareTo(BigDecimal.ZERO) > 0) { - itm.setFirstPurchaseRatio(cent.multiply(itm.getFirstPurchaseAll()).divide(cuBonusVertexStatisTotalVO.getFirstPurchaseAllSum(), 4, RoundingMode.HALF_UP)); + CuBonusVertexStaticTotalVO tmpTotalVO = touchMap.get(itm.getPkVertex()); + if (null != tmpTotalVO) { + itm.setOrgTopNumber(tmpTotalVO.getOrgTopNumber()); + itm.setOrgAvTouch(tmpTotalVO.getOrgAvTouch()); + itm.setOrgMaxTouch(tmpTotalVO.getOrgMaxTouch()); + } + if (itm.getFirstPurchaseAll().compareTo(BigDecimal.ZERO) > 0) { + itm.setIntroduceBonusRate(itm.getIntroduceBonus().multiply(cuBonusVertexStaticTotalVO.getPerCent()).divide(itm.getFirstPurchaseAll(), 4, RoundingMode.HALF_UP)); + itm.setOrgBonusRate(itm.getOrgBonus().multiply(cuBonusVertexStaticTotalVO.getPerCent()).divide(itm.getFirstPurchaseAll(), 4, RoundingMode.HALF_UP)); + itm.setLeaderBonusRate(itm.getLeaderBonus().multiply(cuBonusVertexStaticTotalVO.getPerCent()).divide(itm.getFirstPurchaseAll(), 4, RoundingMode.HALF_UP)); + itm.setServiceBonusRate(itm.getServiceBonus().multiply(cuBonusVertexStaticTotalVO.getPerCent()).divide(itm.getFirstPurchaseAll(), 4, RoundingMode.HALF_UP)); + } + if (itm.getRepurchaseAllAmount().compareTo(BigDecimal.ZERO) > 0) { + itm.setRepurRangeBonusRate(itm.getRepurRangeBonus().multiply(cuBonusVertexStaticTotalVO.getPerCent()).divide(itm.getRepurchaseAllAmount(), 4, RoundingMode.HALF_UP)); + itm.setRepurOrgBonusRate(itm.getRepurOrgBonus().multiply(cuBonusVertexStaticTotalVO.getPerCent()).divide(itm.getRepurchaseAllAmount(), 4, RoundingMode.HALF_UP)); + itm.setRepurLeaderBonusRate(itm.getRepurLeaderBonus().multiply(cuBonusVertexStaticTotalVO.getPerCent()).divide(itm.getRepurchaseAllAmount(), 4, RoundingMode.HALF_UP)); } }); - cuBonusVertexStatisSum.setMemberName("汇总"); - slList.add(cuBonusVertexStatisSum); + } + + //查询顶点奖金拨比汇总总和(最后一行) + CuBonusVertexStaticTotalVO cuBonusVertexStaticSum = iCuBonusVertexStatisService.queryCuBonusStatisSum(cuBonusVertexStaticTotalVO); + if (null != cuBonusVertexStaticSum) { + cuBonusVertexStaticSum.setMemberName("汇总"); + slList.add(cuBonusVertexStaticSum); } else { - slList.add(new CuBonusVertexStatisTotalVO()); + slList.add(new CuBonusVertexStaticTotalVO()); } return getDataTable(slList); } @@ -133,72 +122,69 @@ 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) { + public void export(HttpServletResponse response, CuBonusVertexStaticTotalVO cuBonusVertexStaticTotalVO) { 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); + BigDecimal exchangeRate = currency.getData().getInExchangeRate() == null ? BigDecimal.ONE : currency.getData().getInExchangeRate(); + cuBonusVertexStaticTotalVO.setRate(exchangeRate); + cuBonusVertexStaticTotalVO.setPerCent(exchangeRate.multiply(cent)); + cuBonusVertexStaticTotalVO.setPkCountry(pkCountry); //默认查询当前日期的前一天 Date date = DateUtils.currentDate(); - if (StringUtils.isEmpty(cuBonusVertexStatisTotalVO.getStartDate()) || - StringUtils.isEmpty(cuBonusVertexStatisTotalVO.getEndDate())) { - cuBonusVertexStatisTotalVO.setStartDate(DateUtils.beforeDateStr(1, ChronoUnit.DAYS, DateUtils.YYYY_MM_DD, date)); - cuBonusVertexStatisTotalVO.setEndDate(DateUtils.beforeDateStr(1, ChronoUnit.DAYS, DateUtils.YYYY_MM_DD, date)); + if (StringUtils.isEmpty(cuBonusVertexStaticTotalVO.getStartDate()) || + StringUtils.isEmpty(cuBonusVertexStaticTotalVO.getEndDate())) { + cuBonusVertexStaticTotalVO.setStartDate(DateUtils.beforeDateStr(1, ChronoUnit.DAYS, DateUtils.YYYY_MM_DD, date)); + cuBonusVertexStaticTotalVO.setEndDate(DateUtils.beforeDateStr(1, ChronoUnit.DAYS, DateUtils.YYYY_MM_DD, date)); } - List orderTypeList = new ArrayList<>(); - orderTypeList.add(EOrderType.REGISTER_ORDER.getValue()); - orderTypeList.add(EOrderType.UPGRADE_ORDER.getValue()); - orderTypeList.add(EOrderType.SPECIAL_REGISTER_ORDER.getValue()); - orderTypeList.add(EOrderType.SPECIAL_UPGRADE_ORDER.getValue()); - cuBonusVertexStatisTotalVO.setOrderTypeList(orderTypeList); - //查询分红比例配置 - cuBonusVertexStatisTotalVO.setDividendRatio(BigDecimal.ZERO); - //查询顶点会员 - List vertexList = iCuBonusVertexStatisService.queryCuBonusVertex(cuBonusVertexStatisTotalVO); - CuBonusVertexStatisVO cvs = BeanUtil.copyProperties(cuBonusVertexStatisTotalVO, CuBonusVertexStatisVO.class); - for (CuBonusVertexStatisTotalVO ve : vertexList) { + Map touchMap = new HashMap<>(); + //查询顶点会员 + List vertexList = iCuBonusVertexStatisService.queryCuBonusVertex(cuBonusVertexStaticTotalVO); + CuBonusVertexStatisVO cvs = BeanUtil.copyProperties(cuBonusVertexStaticTotalVO, CuBonusVertexStatisVO.class); + for (CuBonusVertexStaticTotalVO ve : vertexList) { cvs.setPkVertex(ve.getPkVertex()); + //查询顶点拓展平均碰次和拓展最高碰次 + CuBonusVertexStaticTotalVO touch = iCuBonusVertexStatisService.queryTouch(cvs); + if (touch != null) { + touchMap.put(ve.getPkVertex(), touch); + } } - 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(cuBonusVertexStaticTotalVO); if (CollectionUtil.isNotEmpty(slList)) { slList.forEach(itm -> { - if (pkCountry.equals(CountryConstants.CHINA_COUNTRY)) { - //重新算首购拨比 - 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())); + CuBonusVertexStaticTotalVO tmpTotalVO = touchMap.get(itm.getPkVertex()); + if (null != tmpTotalVO) { + itm.setOrgTopNumber(tmpTotalVO.getOrgTopNumber()); + itm.setOrgAvTouch(tmpTotalVO.getOrgAvTouch()); + itm.setOrgMaxTouch(tmpTotalVO.getOrgMaxTouch()); + } + //重新算首购拨比 + if (itm.getFirstPurchaseAll().compareTo(BigDecimal.ZERO) > 0) { + itm.setIntroduceBonusRate(itm.getIntroduceBonus().multiply(cuBonusVertexStaticTotalVO.getPerCent()).divide(itm.getFirstPurchaseAll(), 4, RoundingMode.HALF_UP)); + itm.setOrgBonusRate(itm.getOrgBonus().multiply(cuBonusVertexStaticTotalVO.getPerCent()).divide(itm.getFirstPurchaseAll(), 4, RoundingMode.HALF_UP)); + itm.setLeaderBonusRate(itm.getLeaderBonus().multiply(cuBonusVertexStaticTotalVO.getPerCent()).divide(itm.getFirstPurchaseAll(), 4, RoundingMode.HALF_UP)); + itm.setServiceBonusRate(itm.getServiceBonus().multiply(cuBonusVertexStaticTotalVO.getPerCent()).divide(itm.getFirstPurchaseAll(), 4, RoundingMode.HALF_UP)); + } + if (itm.getRepurchaseAllAmount().compareTo(BigDecimal.ZERO) > 0) { + itm.setRepurRangeBonusRate(itm.getRepurRangeBonus().multiply(cuBonusVertexStaticTotalVO.getPerCent()).divide(itm.getRepurchaseAllAmount(), 4, RoundingMode.HALF_UP)); + itm.setRepurOrgBonusRate(itm.getRepurOrgBonus().multiply(cuBonusVertexStaticTotalVO.getPerCent()).divide(itm.getRepurchaseAllAmount(), 4, RoundingMode.HALF_UP)); + itm.setRepurLeaderBonusRate(itm.getRepurLeaderBonus().multiply(cuBonusVertexStaticTotalVO.getPerCent()).divide(itm.getRepurchaseAllAmount(), 4, RoundingMode.HALF_UP)); } }); } - //计算占比 - slList.forEach(itm -> { - if (cuBonusVertexStatisTotalVO.getFirstPurchaseAllSum().compareTo(BigDecimal.ZERO) > 0) { - itm.setFirstPurchaseRatio(cent.multiply(itm.getFirstPurchaseAll()).divide(cuBonusVertexStatisTotalVO.getFirstPurchaseAllSum(), 4, RoundingMode.HALF_UP)); - } - }); - cuBonusVertexStatisSum.setMemberName("汇总"); - slList.add(cuBonusVertexStatisSum); - ExcelUtil util = new ExcelUtil<>(CuBonusVertexStatisTotalVO.class); + + //查询顶点奖金拨比汇总总和(最后一行) + CuBonusVertexStaticTotalVO cuBonusVertexStaticSum = iCuBonusVertexStatisService.queryCuBonusStatisSum(cuBonusVertexStaticTotalVO); + if (null != cuBonusVertexStaticSum) { + cuBonusVertexStaticSum.setMemberName("汇总"); + slList.add(cuBonusVertexStaticSum); + } else { + slList.add(new CuBonusVertexStaticTotalVO()); + } + ExcelUtil util = new ExcelUtil<>(CuBonusVertexStaticTotalVO.class); util.exportExcel(response, slList, "拨比列表"); } diff --git a/bd-business/bd-business-member/src/main/java/com/hzs/member/statis/mapper/CuBonusVertexStatisMapper.java b/bd-business/bd-business-member/src/main/java/com/hzs/member/statis/mapper/CuBonusVertexStatisMapper.java index ddc47dc6..2d266340 100644 --- a/bd-business/bd-business-member/src/main/java/com/hzs/member/statis/mapper/CuBonusVertexStatisMapper.java +++ b/bd-business/bd-business-member/src/main/java/com/hzs/member/statis/mapper/CuBonusVertexStatisMapper.java @@ -20,17 +20,27 @@ public interface CuBonusVertexStatisMapper extends BaseMapper queryCuBonusStatisTotal(CuBonusVertexStatisTotalVO cuBonusVertexStatisTotalVO); + List queryCuBonusStatisTotal(CuBonusVertexStaticTotalVO cuBonusVertexStaticTotalVO); /** * @description: 顶点奖金拨比汇总查询总和 **/ - CuBonusVertexStatisTotalVO queryCuBonusStatisSum(CuBonusVertexStatisTotalVO cuBonusVertexStatisTotalVO); + CuBonusVertexStaticTotalVO queryCuBonusStatisSum(CuBonusVertexStaticTotalVO cuBonusVertexStaticTotalVO); /** * @description: 查询时间内奖金拨比顶点会员 **/ - List queryCuBonusVertex(CuBonusVertexStatisTotalVO cuBonusVertexStatisTotalVO); + List queryCuBonusVertex(CuBonusVertexStaticTotalVO cuBonusVertexStaticTotalVO); + + /** + * 查询顶点拓展封顶人数 + **/ + CuBonusVertexStaticTotalVO queryOrgTopNumber(CuBonusVertexStatisVO cuBonusVertexStatisVO); + + /** + * 查询顶点拓展平均碰次和拓展最高碰次 + **/ + CuBonusVertexStaticTotalVO queryTouch(CuBonusVertexStatisVO cuBonusVertexStatisVO); /** * @description: 奖金拨比列表统计小计(最后一行) diff --git a/bd-business/bd-business-member/src/main/java/com/hzs/member/statis/service/ICuBonusStatisService.java b/bd-business/bd-business-member/src/main/java/com/hzs/member/statis/service/ICuBonusStatisService.java index 997d898b..36f38a17 100644 --- a/bd-business/bd-business-member/src/main/java/com/hzs/member/statis/service/ICuBonusStatisService.java +++ b/bd-business/bd-business-member/src/main/java/com/hzs/member/statis/service/ICuBonusStatisService.java @@ -12,72 +12,72 @@ import java.util.List; public interface ICuBonusStatisService extends IService { /** - * @description: 奖金拨比列表 + * 奖金拨比列表 **/ List queryCuBonusStatis(CuBonusStatisVO cuBonusStatisVO); /** - * @description: 查询体系合计的订单业绩 + * 查询体系合计的订单业绩 **/ CuBonusStatisVO queryOrderAchieveSum(CuBonusStatisVO cuBonusStatisVO); /** - * @description: 奖金拨比列表统计小计(最后一行) + * 奖金拨比列表统计小计(最后一行) **/ CuBonusStatisVO queryCuBonusSumStatis(CuBonusStatisVO cuBonusStatisVO); /** - * @description: 查询个人奖金拨比 + * 查询个人奖金拨比 **/ CuBonusSinglePersonStatisVO bonusSingleSum(CuBonusSinglePersonStatisVO csps); /** - * @description: 奖金拨比图表 + * 奖金拨比图表 **/ List queryCuBonusStatisChart(CuBonusStatisChartVO chartVO); /** - * @description: 奖金拨比图表合计 + * 奖金拨比图表合计 **/ CuBonusStatisChartVO queryCuBonusSumStatisChart(CuBonusStatisChartVO chartVO); /** - * @description: 查询奖金拨比图形数据-柱形图 + * 查询奖金拨比图形数据-柱形图 **/ CuBonusStatisColumnarVO pillarRatio(CuBonusStatisColumnarVO columnarVO); /** - * @description: 查询一年注册、升级、复购、嗨粉合计 + * 查询一年注册、升级、复购、嗨粉合计 **/ CuBonusStatisColumnarVO queryYearData(CuBonusStatisColumnarVO columnarVO); /** - * @description: 查询奖金拨比(饼状图) + * 查询奖金拨比(饼状图) **/ CuBonusStatisRoundVO queryDiallingRatio(CuBonusStatisRoundVO roundVO); /** - * @description: 统计历史奖金拨比数据 + * 统计历史奖金拨比数据 **/ Boolean statisHistoryBonus(String startDate, String endDate); /** - * @description: 删除奖金拨比统计表数据 + * 删除奖金拨比统计表数据 **/ Boolean delStatis(String startDate, String endDate); /** - * @description: 查询奖金扣项配置参数 + * 查询奖金扣项配置参数 **/ List bonusDeductlist(CuBonusStatisVO cuBonusStatisVO); /** - * @description: 查询分红比例配置 + * 查询分红比例配置 **/ List bonusDividendRatiolist(CuBonusStatisVO cuBonusStatisVO); /** - * @description: 查询所有体系 + * 查询所有体系 **/ List vertexList(); diff --git a/bd-business/bd-business-member/src/main/java/com/hzs/member/statis/service/ICuBonusVertexStatisService.java b/bd-business/bd-business-member/src/main/java/com/hzs/member/statis/service/ICuBonusVertexStatisService.java index 23bb7427..e2d08818 100644 --- a/bd-business/bd-business-member/src/main/java/com/hzs/member/statis/service/ICuBonusVertexStatisService.java +++ b/bd-business/bd-business-member/src/main/java/com/hzs/member/statis/service/ICuBonusVertexStatisService.java @@ -2,7 +2,7 @@ package com.hzs.member.statis.service; import com.baomidou.mybatisplus.extension.service.IService; import com.hzs.common.domain.member.statis.CuBonusVertexStatis; -import com.hzs.member.statis.vo.CuBonusVertexStatisTotalVO; +import com.hzs.member.statis.vo.CuBonusVertexStaticTotalVO; import com.hzs.member.statis.vo.CuBonusVertexStatisVO; import java.util.List; @@ -20,17 +20,27 @@ public interface ICuBonusVertexStatisService extends IService queryCuBonusStatisTotal(CuBonusVertexStatisTotalVO cuBonusVertexStatisTotalVO); + List queryCuBonusStatisTotal(CuBonusVertexStaticTotalVO cuBonusVertexStaticTotalVO); /** * 查询顶点奖金拨比汇总总和(最后一行) **/ - CuBonusVertexStatisTotalVO queryCuBonusStatisSum(CuBonusVertexStatisTotalVO cuBonusVertexStatisTotalVO); + CuBonusVertexStaticTotalVO queryCuBonusStatisSum(CuBonusVertexStaticTotalVO cuBonusVertexStaticTotalVO); /** * 查询时间内奖金拨比顶点会员 **/ - List queryCuBonusVertex(CuBonusVertexStatisTotalVO cuBonusVertexStatisTotalVO); + List queryCuBonusVertex(CuBonusVertexStaticTotalVO cuBonusVertexStaticTotalVO); + + /** + * 查询顶点拓展封顶人数 + **/ + CuBonusVertexStaticTotalVO queryOrgTopNumber(CuBonusVertexStatisVO cuBonusVertexStatisVO); + + /** + * 查询顶点拓展平均碰次和拓展最高碰次 + **/ + CuBonusVertexStaticTotalVO queryTouch(CuBonusVertexStatisVO cuBonusVertexStatisVO); /** * 奖金拨比列表统计小计(最后一行) diff --git a/bd-business/bd-business-member/src/main/java/com/hzs/member/statis/service/impl/CuBonusStatisServiceImpl.java b/bd-business/bd-business-member/src/main/java/com/hzs/member/statis/service/impl/CuBonusStatisServiceImpl.java index 94426186..d9771640 100644 --- a/bd-business/bd-business-member/src/main/java/com/hzs/member/statis/service/impl/CuBonusStatisServiceImpl.java +++ b/bd-business/bd-business-member/src/main/java/com/hzs/member/statis/service/impl/CuBonusStatisServiceImpl.java @@ -28,7 +28,7 @@ import java.util.stream.Collectors; public class CuBonusStatisServiceImpl extends ServiceImpl implements ICuBonusStatisService { /** - * @description: 保存奖金拨比订单数据 + * 保存奖金拨比订单数据 **/ private void saveBonusStatis(List soList) { for (CuBonusStatisVO so : soList) { @@ -95,7 +95,7 @@ public class CuBonusStatisServiceImpl extends ServiceImpl orachList, int type) { for (CuBonusStatisVO newSo : orachList) { @@ -212,7 +212,7 @@ public class CuBonusStatisServiceImpl extends ServiceImpl cblist) { for (CuBonusStatisVO cb : cblist) { @@ -273,7 +273,7 @@ public class CuBonusStatisServiceImpl extends ServiceImpl queryCuBonusStatis(CuBonusStatisVO cuBonusStatisVO) { @@ -281,7 +281,7 @@ public class CuBonusStatisServiceImpl extends ServiceImpl queryCuBonusStatisChart(CuBonusStatisChartVO chartVO) { @@ -313,7 +313,7 @@ public class CuBonusStatisServiceImpl extends ServiceImpl getCuBonusStatis(CuBonusStatis cuBonusStatis) { return baseMapper.getCuBonusStatis(cuBonusStatis); diff --git a/bd-business/bd-business-member/src/main/java/com/hzs/member/statis/service/impl/CuBonusVertexStatisServiceImpl.java b/bd-business/bd-business-member/src/main/java/com/hzs/member/statis/service/impl/CuBonusVertexStatisServiceImpl.java index 7efb8b3b..4238a3ea 100644 --- a/bd-business/bd-business-member/src/main/java/com/hzs/member/statis/service/impl/CuBonusVertexStatisServiceImpl.java +++ b/bd-business/bd-business-member/src/main/java/com/hzs/member/statis/service/impl/CuBonusVertexStatisServiceImpl.java @@ -12,7 +12,7 @@ import com.hzs.common.domain.member.statis.CuBonusVertexStatis; import com.hzs.member.achieve.service.ICuMemberSettlePeriodService; import com.hzs.member.statis.mapper.CuBonusVertexStatisMapper; import com.hzs.member.statis.service.ICuBonusVertexStatisService; -import com.hzs.member.statis.vo.CuBonusVertexStatisTotalVO; +import com.hzs.member.statis.vo.CuBonusVertexStaticTotalVO; import com.hzs.member.statis.vo.CuBonusVertexStatisVO; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @@ -143,18 +143,28 @@ public class CuBonusVertexStatisServiceImpl extends ServiceImpl queryCuBonusStatisTotal(CuBonusVertexStatisTotalVO cuBonusVertexStatisTotalVO) { - return baseMapper.queryCuBonusStatisTotal(cuBonusVertexStatisTotalVO); + public List queryCuBonusStatisTotal(CuBonusVertexStaticTotalVO cuBonusVertexStaticTotalVO) { + return baseMapper.queryCuBonusStatisTotal(cuBonusVertexStaticTotalVO); } @Override - public CuBonusVertexStatisTotalVO queryCuBonusStatisSum(CuBonusVertexStatisTotalVO cuBonusVertexStatisTotalVO) { - return baseMapper.queryCuBonusStatisSum(cuBonusVertexStatisTotalVO); + public CuBonusVertexStaticTotalVO queryCuBonusStatisSum(CuBonusVertexStaticTotalVO cuBonusVertexStaticTotalVO) { + return baseMapper.queryCuBonusStatisSum(cuBonusVertexStaticTotalVO); } @Override - public List queryCuBonusVertex(CuBonusVertexStatisTotalVO cuBonusVertexStatisTotalVO) { - return baseMapper.queryCuBonusVertex(cuBonusVertexStatisTotalVO); + public List queryCuBonusVertex(CuBonusVertexStaticTotalVO cuBonusVertexStaticTotalVO) { + return baseMapper.queryCuBonusVertex(cuBonusVertexStaticTotalVO); + } + + @Override + public CuBonusVertexStaticTotalVO queryOrgTopNumber(CuBonusVertexStatisVO cuBonusVertexStatisVO) { + return baseMapper.queryOrgTopNumber(cuBonusVertexStatisVO); + } + + @Override + public CuBonusVertexStaticTotalVO queryTouch(CuBonusVertexStatisVO cuBonusVertexStatisVO) { + return baseMapper.queryTouch(cuBonusVertexStatisVO); } @Override diff --git a/bd-business/bd-business-member/src/main/java/com/hzs/member/statis/vo/CuBonusStatisVO.java b/bd-business/bd-business-member/src/main/java/com/hzs/member/statis/vo/CuBonusStatisVO.java index 1916a129..35c969d8 100644 --- a/bd-business/bd-business-member/src/main/java/com/hzs/member/statis/vo/CuBonusStatisVO.java +++ b/bd-business/bd-business-member/src/main/java/com/hzs/member/statis/vo/CuBonusStatisVO.java @@ -81,11 +81,23 @@ public class CuBonusStatisVO implements Serializable { */ @BigDecimalFormat private BigDecimal specialRegisterAmount = BigDecimal.ZERO; + + /** + * 特殊注册新增金额(¥)小计 + */ + @BigDecimalFormat + private BigDecimal specialRegisterAmountSum = BigDecimal.ZERO; + /** * 特殊升级 */ @BigDecimalFormat private BigDecimal specialUpgradeAmount = BigDecimal.ZERO; + /** + * 特殊升级新增金额(¥)小计 + */ + @BigDecimalFormat + private BigDecimal specialUpgradeAmountSum = BigDecimal.ZERO; /** * 虚拟订单金额(¥) */ @@ -120,7 +132,6 @@ public class CuBonusStatisVO implements Serializable { /** * 分红收益(¥) */ - @Excel(name = "分红收益(¥)", scale = 2) @BigDecimalFormat private BigDecimal shareBonus = BigDecimal.ZERO; /** @@ -159,6 +170,11 @@ public class CuBonusStatisVO implements Serializable { */ @BigDecimalFormat private BigDecimal specialRepurchaseAmount = BigDecimal.ZERO; + /** + * 特殊复购新增金额小计(¥)(复购专区) + */ + @BigDecimalFormat + private BigDecimal specialRepurchaseAmountSum = BigDecimal.ZERO; /** * 福利订单 @@ -170,7 +186,6 @@ public class CuBonusStatisVO implements Serializable { /** * 海粉注册金额(¥) */ - @Excel(name = "海粉专区(¥)", scale = 2) @BigDecimalFormat private BigDecimal hifansRegAmount = BigDecimal.ZERO; /** @@ -346,6 +361,11 @@ public class CuBonusStatisVO implements Serializable { */ @BigDecimalFormat private BigDecimal repurOrgBonusSum = BigDecimal.ZERO; + /** + * 复购辅导收益 + */ + @BigDecimalFormat + private BigDecimal repurLeaderBonusSum = BigDecimal.ZERO; /** * 首购拨出金额合计 @@ -457,6 +477,10 @@ public class CuBonusStatisVO implements Serializable { */ @BigDecimalFormat private BigDecimal repurOrgBonusRate = BigDecimal.ZERO; + /** + * 复购辅导收益拨比 + */ + private BigDecimal repurLeaderBonusRate = BigDecimal.ZERO; /** 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/CuBonusVertexStaticTotalVO.java similarity index 82% rename from bd-business/bd-business-member/src/main/java/com/hzs/member/statis/vo/CuBonusVertexStatisTotalVO.java rename to bd-business/bd-business-member/src/main/java/com/hzs/member/statis/vo/CuBonusVertexStaticTotalVO.java index f09f23fb..b36557fd 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/CuBonusVertexStaticTotalVO.java @@ -15,7 +15,7 @@ import java.util.List; * 数据来自 订单表奖金明细表 */ @Data -public class CuBonusVertexStatisTotalVO implements Serializable { +public class CuBonusVertexStaticTotalVO implements Serializable { private static final long serialVersionUID = 1L; @@ -50,7 +50,6 @@ public class CuBonusVertexStatisTotalVO implements Serializable { /** * 首购金额占比 */ - @Excel(name = "首购金额占比", scale = 2) @BigDecimalFormat private BigDecimal firstPurchaseRatio = BigDecimal.ZERO; @@ -86,24 +85,28 @@ public class CuBonusVertexStatisTotalVO implements Serializable { */ @BigDecimalFormat private BigDecimal introduceBonus = BigDecimal.ZERO; - /** - * 拓展收益(¥) - */ - @BigDecimalFormat - private BigDecimal orgBonus = BigDecimal.ZERO; - /** - * 服务补贴(¥) - */ - @BigDecimalFormat - private BigDecimal serviceBonus = BigDecimal.ZERO; - /** * 拓展拨比(%) */ @Excel(name = "拓展拨比(%)", scale = 2) @BigDecimalFormat private BigDecimal orgBonusRate = BigDecimal.ZERO; - + /** + * 拓展收益(¥) + */ + @BigDecimalFormat + private BigDecimal orgBonus = BigDecimal.ZERO; + /** + * 辅导收益拨比(%) + */ + @Excel(name = "拓展拨比(%)", scale = 2) + @BigDecimalFormat + private BigDecimal leaderBonusRate = BigDecimal.ZERO; + /** + * 辅导收益(¥) + */ + @BigDecimalFormat + private BigDecimal leaderBonus = BigDecimal.ZERO; /** * 服务补贴拨比(%) */ @@ -111,6 +114,13 @@ public class CuBonusVertexStatisTotalVO implements Serializable { @BigDecimalFormat private BigDecimal serviceBonusRate = BigDecimal.ZERO; + /** + * 服务补贴(¥) + */ + @BigDecimalFormat + private BigDecimal serviceBonus = BigDecimal.ZERO; + + /** * 复购总金额 复购订单+海粉订单+海粉复购订单 */ @@ -140,6 +150,41 @@ public class CuBonusVertexStatisTotalVO implements Serializable { @Excel(name = "复购PV拨出比例(%)", scale = 2) @BigDecimalFormat private BigDecimal repurBonusPvRate = BigDecimal.ZERO; + + /** + * 复购级差拨比(%) + */ + @Excel(name = "复购级差拨比(%)", scale = 2) + @BigDecimalFormat + private BigDecimal repurRangeBonusRate = BigDecimal.ZERO; + /** + * 复购级差收益(¥) + */ + @BigDecimalFormat + private BigDecimal repurRangeBonus = BigDecimal.ZERO; + /** + * 复购拓展拨比(%) + */ + @Excel(name = "复购拓展拨比(%)", scale = 2) + @BigDecimalFormat + private BigDecimal repurOrgBonusRate = BigDecimal.ZERO; + /** + * 复购拓展收益(¥) + */ + @BigDecimalFormat + private BigDecimal repurOrgBonus = BigDecimal.ZERO; + /** + * 复购辅导拨比(%) + */ + @Excel(name = "复购辅导拨比(%)", scale = 2) + @BigDecimalFormat + private BigDecimal repurLeaderBonusRate = BigDecimal.ZERO; + /** + * 复购辅导收益(¥) + */ + @BigDecimalFormat + private BigDecimal repurLeaderBonus = BigDecimal.ZERO; + /** * 拓展平均碰次 */ @@ -159,19 +204,17 @@ public class CuBonusVertexStatisTotalVO implements Serializable { @Excel(name = "拓展封顶人数") private Integer orgTopNumber = 0; - @BigDecimalFormat - private BigDecimal makerDirectSum = BigDecimal.ZERO; - - @BigDecimalFormat - private BigDecimal makerShareSum = BigDecimal.ZERO; - +// @BigDecimalFormat +// private BigDecimal makerDirectSum = BigDecimal.ZERO; +// +// @BigDecimalFormat +// private BigDecimal makerShareSum = BigDecimal.ZERO; /** - * 体系ID 统计体系,1原体系,2六合体系,3六合二,101非洲体系 + * 体系ID 统计体系 */ private Integer pkVertex; - /** * 注册新增PV MAIN_REG_PV */ @@ -304,7 +347,7 @@ public class CuBonusVertexStatisTotalVO implements Serializable { /** * 按照体系(中国)和国家分组合并订单 */ - List mergeList; + List mergeList; List orderTypeList; 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 a8e90025..3435f9e8 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 @@ -147,13 +147,14 @@ public class CuBonusVertexStatisVO implements Serializable { @Excel(name = "服务补贴(¥)", scale = 2) @BigDecimalFormat private BigDecimal serviceBonus = BigDecimal.ZERO; + + /** * 复购新增金额(¥)(复购专区) */ @Excel(name = "复购专区(¥)", scale = 2) @BigDecimalFormat private BigDecimal mainRepurAmount = BigDecimal.ZERO; - /** * 复购直推收益 */ diff --git a/bd-business/bd-business-member/src/main/resources/mapper/member/statis/CuBonusStatisMapper.xml b/bd-business/bd-business-member/src/main/resources/mapper/member/statis/CuBonusStatisMapper.xml index d907d674..6aa89497 100644 --- a/bd-business/bd-business-member/src/main/resources/mapper/member/statis/CuBonusStatisMapper.xml +++ b/bd-business/bd-business-member/src/main/resources/mapper/member/statis/CuBonusStatisMapper.xml @@ -23,157 +23,103 @@ SELECT - sum (cbs.MAIN_REG_AMOUNT) mainRegAmountSum, - sum (cbs.MAIN_UP_AMOUNT) mainUpAmountSum, - sum (cbs.MAIN_REPUR_AMOUNT) mainRepurAmountSum, - sum (cbs.AGENT_UP_AMOUNT) agentUpAmountSum, - sum (cbs.AGENT_REPUR_AMOUNT) agentRepurAmountSum, - sum (cbs.HIFANS_REG_AMOUNT) hifansRegAmountSum, + + sum (cbs.main_reg_amount) mainRegAmountSum, + sum (cbs.main_up_amount) mainUpAmountSum, + sum (cbs.main_repur_amount) mainRepurAmountSum, + sum (cbs.special_register_amount) specialRegisterAmountSum, + sum (cbs.special_upgrade_amount) specialUpgradeAmountSum, + sum (cbs.special_repurchase_amount) specialRepurchaseAmountSum, + sum (cbs.INTRODUCE_BONUS) introduceBonusSum, sum (cbs.ORG_BONUS) orgBonusSum, sum (cbs.LEADER_BONUS) leaderBonusSum, - #{orderAchieve} shareBonusSum, sum (cbs.SERVICE_BONUS) serviceBonusSum, - sum (cbs.HI_FUN_INCOME) hiFunIncomeSum, sum (cbs.REPUR_RANGE_BONUS) repurRangeBonusSum, - sum (cbs.SEABEAN_REPUR_RANGE) seabeanRepurRangeSum, sum (cbs.REPUR_ORG_BONUS) repurOrgBonusSum, - sum (cbs.AGENT_INTRODUCE_BONUS) agentIntroduceBonusSum, - sum (cbs.AGENT_AREA_BONUS) agentAreaBonusSum, - sum (cbs.AGENT_REG_AMOUNT) agentRegAmountSum, - sum (cbs.MAKER_DIRECT) makerDirectSum, - sum (cbs.MAKER_SHARE) makerShareSum, - CASE WHEN (sum(cbs.MAIN_REG_AMOUNT+cbs.MAIN_UP_AMOUNT))=0 THEN 0 ELSE - ROUND(sum(#{perCent}*cbs.INTRODUCE_BONUS)/(sum(cbs.MAIN_REG_AMOUNT+cbs.MAIN_UP_AMOUNT)),4) end as - introduceBonusRateSum, - CASE WHEN (sum(cbs.MAIN_REG_AMOUNT+cbs.MAIN_UP_AMOUNT))=0 THEN 0 ELSE - ROUND(sum(#{perCent}*cbs.ORG_BONUS)/(sum(cbs.MAIN_REG_AMOUNT+cbs.MAIN_UP_AMOUNT)),4) end as orgBonusRateSum, - CASE WHEN (sum(cbs.MAIN_REG_AMOUNT+cbs.MAIN_UP_AMOUNT))=0 THEN 0 ELSE - ROUND(sum(#{perCent}*cbs.LEADER_BONUS)/(sum(cbs.MAIN_REG_AMOUNT+cbs.MAIN_UP_AMOUNT)),4) end leaderBonusRateSum, - CASE WHEN (sum(cbs.MAIN_REG_AMOUNT+cbs.MAIN_UP_AMOUNT))=0 THEN 0 ELSE - ROUND(sum(#{perCent}*cbs.SHARE_BONUS)/(sum(cbs.MAIN_REG_AMOUNT+cbs.MAIN_UP_AMOUNT)),4) end shareBonusRateSum, - CASE WHEN (sum(cbs.MAIN_REG_AMOUNT+cbs.MAIN_UP_AMOUNT))=0 THEN 0 ELSE - ROUND(sum(#{perCent}*cbs.SERVICE_BONUS)/(sum(cbs.MAIN_REG_AMOUNT+cbs.MAIN_UP_AMOUNT)),4) end - serviceBonusRateSum, - CASE WHEN (sum(cbs.AGENT_REG_AMOUNT + cbs.AGENT_UP_AMOUNT))=0 THEN 0 ELSE - ROUND(sum(#{perCent}*cbs.AGENT_INTRODUCE_BONUS)/(sum(cbs.AGENT_REG_AMOUNT + cbs.AGENT_UP_AMOUNT)),4) end as - agentIntroduceBonusRateSum, - CASE WHEN (sum(cbs.AGENT_REG_AMOUNT + cbs.AGENT_UP_AMOUNT+cbs.AGENT_REPUR_AMOUNT))=0 THEN 0 ELSE - ROUND(sum(#{perCent}*cbs.AGENT_REG_AMOUNT)/(sum(cbs.AGENT_REG_AMOUNT + - cbs.AGENT_UP_AMOUNT+cbs.AGENT_REPUR_AMOUNT)),4) end as agentFirstAmountRateSum, - CASE WHEN (sum(cbs.AGENT_REG_AMOUNT + cbs.AGENT_UP_AMOUNT+cbs.AGENT_REPUR_AMOUNT))=0 THEN 0 ELSE - ROUND(sum(#{perCent}*AGENT_REPUR_AMOUNT)/(sum(cbs.AGENT_REG_AMOUNT + - cbs.AGENT_UP_AMOUNT+cbs.AGENT_REPUR_AMOUNT)),4) end as agentRepurAmountRateSum, - ((sum(cbs.MAIN_REG_AMOUNT + - cbs.MAIN_UP_AMOUNT+cbs.SPECIAL_REGISTER_AMOUNT+cbs.SPECIAL_UPGRADE_AMOUNT+cbs.FICTITIOUS_AMOUNT))) - AS - firstPurchaseAllSum, - ( sum(cbs.MAIN_REPUR_AMOUNT + - cbs.HIFANS_REG_AMOUNT+cbs.HAI_FUN_UPGRADE_AMOUNT+cbs.CLOUD_COLLEGE_AMOUNT+cbs.MALL_AMOUNT - +cbs.EMPOWERMENT_GIFT_AMOUNT+cbs.COOPERATE_AMOUNT+cbs.SPECIAL_REPURCHASE_AMOUNT - +cbs.MAKER_ORDER+cbs.MAKER_GIFT_AMOUNT+cbs.WELFARE_ORDER) ) AS repurchaseAllAmountSum, - ( sum(cbs.AGENT_REG_AMOUNT + cbs.AGENT_UP_AMOUNT) ) AS agentFirstAmountSum, - - sum(cbs.INTRODUCE_BONUS+cbs.ORG_BONUS+cbs.LEADER_BONUS+cbs.SERVICE_BONUS - +cbs.MAKER_DIRECT+cbs.MAKER_SHARE) AS mainBonusSum, - - CASE WHEN - sum(cbs.MAIN_REG_AMOUNT+cbs.MAIN_UP_AMOUNT+cbs.SPECIAL_REGISTER_AMOUNT+cbs.SPECIAL_UPGRADE_AMOUNT+cbs.FICTITIOUS_AMOUNT) - = 0 - THEN 0 ELSE ROUND(((#{perCent}*sum(cbs.INTRODUCE_BONUS+cbs.ORG_BONUS+cbs.LEADER_BONUS+cbs.SERVICE_BONUS - +cbs.MAKER_DIRECT+cbs.MAKER_SHARE))) - /(sum(cbs.MAIN_REG_AMOUNT+cbs.MAIN_UP_AMOUNT+cbs.SPECIAL_REGISTER_AMOUNT+cbs.SPECIAL_UPGRADE_AMOUNT+cbs.FICTITIOUS_AMOUNT)),4) + sum (cbs.REPUR_LEADER_BONUS) repurLeaderBonusSum, + sum (cbs.MAIN_REG_AMOUNT + cbs.MAIN_UP_AMOUNT + cbs.SPECIAL_REGISTER_AMOUNT + cbs.SPECIAL_UPGRADE_AMOUNT + cbs.FICTITIOUS_AMOUNT) + AS firstPurchaseAllSum, + sum (cbs.MAIN_REPUR_AMOUNT + cbs.MALL_AMOUNT + cbs.COOPERATE_AMOUNT + cbs.SPECIAL_REPURCHASE_AMOUNT + cbs.WELFARE_ORDER) + AS repurchaseAllAmountSum, + sum (cbs.INTRODUCE_BONUS + cbs.ORG_BONUS + cbs.LEADER_BONUS + cbs.SERVICE_BONUS) + AS mainBonusSum, + case + WHEN sum(cbs.MAIN_REG_AMOUNT + cbs.MAIN_UP_AMOUNT + cbs.SPECIAL_REGISTER_AMOUNT + cbs.SPECIAL_UPGRADE_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.SPECIAL_REGISTER_AMOUNT + cbs.SPECIAL_UPGRADE_AMOUNT + cbs.FICTITIOUS_AMOUNT), 4) end AS mainBonusRateSum, - - CASE WHEN - sum(cbs.MAIN_REG_PV+cbs.MAIN_UP_PV+cbs.SPECIAL_REGISTER_PV+cbs.SPECIAL_UPGRADE_PV+cbs.FICTITIOUS_PV) - = 0 - THEN 0 ELSE ROUND(((#{perCent}*sum(cbs.INTRODUCE_BONUS+cbs.ORG_BONUS+cbs.LEADER_BONUS+cbs.SERVICE_BONUS - +cbs.MAKER_DIRECT+cbs.MAKER_SHARE))) - /#{rate}/sum(cbs.MAIN_REG_PV+cbs.MAIN_UP_PV+cbs.SPECIAL_REGISTER_PV+cbs.SPECIAL_UPGRADE_PV+cbs.FICTITIOUS_PV),4) + case + WHEN sum(cbs.MAIN_REG_PV + cbs.MAIN_UP_PV + cbs.SPECIAL_REGISTER_PV + cbs.SPECIAL_UPGRADE_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.SPECIAL_REGISTER_PV + cbs.SPECIAL_UPGRADE_PV + cbs.FICTITIOUS_PV), 4) end AS mainBonusPvRateSum, - - sum(cbs.REPUR_RANGE_BONUS+cbs.REPUR_ORG_BONUS+cbs.REPUR_PUSH_INCOME - +cbs.HI_FUN_INCOME) AS repurBonusSum, - - CASE WHEN - sum(cbs.MAIN_REPUR_AMOUNT+cbs.HIFANS_REG_AMOUNT+cbs.HAI_FUN_UPGRADE_AMOUNT+cbs.CLOUD_COLLEGE_AMOUNT+cbs.MALL_AMOUNT - +cbs.EMPOWERMENT_GIFT_AMOUNT+cbs.COOPERATE_AMOUNT+cbs.SPECIAL_REPURCHASE_AMOUNT - +cbs.MAKER_ORDER+cbs.MAKER_GIFT_AMOUNT+cbs.WELFARE_ORDER)=0 THEN 0 - ELSE ROUND(#{perCent}*sum(((cbs.REPUR_RANGE_BONUS+cbs.REPUR_ORG_BONUS+cbs.REPUR_PUSH_INCOME))+cbs.HI_FUN_INCOME) - / - sum(cbs.MAIN_REPUR_AMOUNT+cbs.HIFANS_REG_AMOUNT+cbs.HAI_FUN_UPGRADE_AMOUNT+cbs.CLOUD_COLLEGE_AMOUNT+cbs.MALL_AMOUNT - +cbs.EMPOWERMENT_GIFT_AMOUNT+cbs.COOPERATE_AMOUNT+cbs.SPECIAL_REPURCHASE_AMOUNT - +cbs.MAKER_ORDER+cbs.MAKER_GIFT_AMOUNT+cbs.WELFARE_ORDER),4) end AS repurBonusRateSum, - - CASE WHEN - sum(cbs.MAIN_REPUR_PV+cbs.HIFANS_REG_PV+cbs.HAI_FUN_UPGRADE_PV+cbs.CLOUD_COLLEGE_PV+cbs.MALL_PV - +cbs.EMPOWERMENT_GIFT_PV+cbs.COOPERATE_PV+cbs.SPECIAL_REPURCHASE_PV - +cbs.MAKER_ORDER_PV+cbs.MAKER_GIFT_PV+cbs.WELFARE_ORDER_PV)=0 THEN 0 - ELSE ROUND(#{perCent}*sum(((cbs.REPUR_RANGE_BONUS+cbs.REPUR_ORG_BONUS+cbs.REPUR_PUSH_INCOME))+cbs.HI_FUN_INCOME) - /#{rate}/ - sum(cbs.MAIN_REPUR_PV+cbs.HIFANS_REG_PV+cbs.HAI_FUN_UPGRADE_PV+cbs.CLOUD_COLLEGE_PV+cbs.MALL_PV - +cbs.EMPOWERMENT_GIFT_PV+cbs.COOPERATE_PV+cbs.SPECIAL_REPURCHASE_PV - +cbs.MAKER_ORDER_PV+cbs.MAKER_GIFT_PV+cbs.WELFARE_ORDER_PV),4) end AS repurBonusPvRateSum, - - sum(cbs.INTRODUCE_BONUS+cbs.ORG_BONUS+cbs.LEADER_BONUS+cbs.SERVICE_BONUS+ - cbs.MAKER_DIRECT+cbs.MAKER_SHARE+ - cbs.REPUR_RANGE_BONUS+cbs.REPUR_ORG_BONUS+cbs.REPUR_PUSH_INCOME - +cbs.HI_FUN_INCOME) AS totalBonusSum, - CASE WHEN - sum(cbs.MAIN_REG_AMOUNT+cbs.MAIN_UP_AMOUNT+cbs.SPECIAL_REGISTER_AMOUNT+cbs.SPECIAL_UPGRADE_AMOUNT+cbs.FICTITIOUS_AMOUNT+ - cbs.MAIN_REPUR_AMOUNT+cbs.HIFANS_REG_AMOUNT+cbs.HAI_FUN_UPGRADE_AMOUNT+cbs.CLOUD_COLLEGE_AMOUNT+cbs.MALL_AMOUNT - +cbs.EMPOWERMENT_GIFT_AMOUNT+cbs.COOPERATE_AMOUNT+cbs.SPECIAL_REPURCHASE_AMOUNT - +cbs.MAKER_ORDER+cbs.MAKER_GIFT_AMOUNT+cbs.WELFARE_ORDER)=0 THEN 0 - ELSE ROUND ((#{perCent}*sum(cbs.INTRODUCE_BONUS+cbs.ORG_BONUS+cbs.LEADER_BONUS+cbs.SERVICE_BONUS - +cbs.MAKER_DIRECT+cbs.MAKER_SHARE+ - cbs.REPUR_RANGE_BONUS+cbs.REPUR_ORG_BONUS+cbs.REPUR_PUSH_INCOME+cbs.HI_FUN_INCOME)) - / - (sum(cbs.MAIN_REG_AMOUNT+cbs.MAIN_UP_AMOUNT+cbs.SPECIAL_REGISTER_AMOUNT+cbs.SPECIAL_UPGRADE_AMOUNT+cbs.FICTITIOUS_AMOUNT+ - cbs.MAIN_REPUR_AMOUNT+cbs.HIFANS_REG_AMOUNT+cbs.HAI_FUN_UPGRADE_AMOUNT+cbs.CLOUD_COLLEGE_AMOUNT+cbs.MALL_AMOUNT - +cbs.EMPOWERMENT_GIFT_AMOUNT+cbs.COOPERATE_AMOUNT+cbs.SPECIAL_REPURCHASE_AMOUNT - +cbs.MAKER_ORDER+cbs.MAKER_GIFT_AMOUNT+cbs.WELFARE_ORDER)),4) end AS totalBonusRateSum - FROM - CU_BONUS_STATIS cbs + sum(cbs.REPUR_RANGE_BONUS + cbs.REPUR_ORG_BONUS + cbs.REPUR_PUSH_INCOME + cbs.REPUR_LEADER_BONUS) AS repurBonusSum, + case + WHEN sum(cbs.MAIN_REPUR_AMOUNT + cbs.MALL_AMOUNT + cbs.COOPERATE_AMOUNT + cbs.SPECIAL_REPURCHASE_AMOUNT + cbs.WELFARE_ORDER) = 0 + THEN 0 + ELSE ROUND(#{perCent} * sum(cbs.REPUR_RANGE_BONUS + cbs.REPUR_ORG_BONUS + cbs.REPUR_PUSH_INCOME + cbs.REPUR_LEADER_BONUS) + / sum(cbs.MAIN_REPUR_AMOUNT + cbs.MALL_AMOUNT + cbs.COOPERATE_AMOUNT + cbs.SPECIAL_REPURCHASE_AMOUNT + cbs.WELFARE_ORDER), 4) + end AS repurBonusRateSum, + case + WHEN sum(cbs.MAIN_REPUR_PV + cbs.MALL_PV + cbs.COOPERATE_PV + cbs.SPECIAL_REPURCHASE_PV + cbs.WELFARE_ORDER_PV) = 0 + THEN 0 + ELSE ROUND(#{perCent} * sum(cbs.REPUR_RANGE_BONUS + cbs.REPUR_ORG_BONUS + cbs.REPUR_PUSH_INCOME + cbs.REPUR_LEADER_BONUS) + / #{rate} / sum(cbs.MAIN_REPUR_PV + cbs.MALL_PV +cbs.COOPERATE_PV + cbs.SPECIAL_REPURCHASE_PV + cbs.WELFARE_ORDER_PV), 4) + end AS repurBonusPvRateSum, + 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 + cbs.REPUR_LEADER_BONUS) + AS totalBonusSum, + CASE + WHEN sum(cbs.MAIN_REG_AMOUNT + cbs.MAIN_UP_AMOUNT + cbs.SPECIAL_REGISTER_AMOUNT + cbs.SPECIAL_UPGRADE_AMOUNT + cbs.FICTITIOUS_AMOUNT + + cbs.MAIN_REPUR_AMOUNT + cbs.MALL_AMOUNT + cbs.COOPERATE_AMOUNT + cbs.SPECIAL_REPURCHASE_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 + cbs.REPUR_LEADER_BONUS) + / sum(cbs.MAIN_REG_AMOUNT + cbs.MAIN_UP_AMOUNT + cbs.SPECIAL_REGISTER_AMOUNT + cbs.SPECIAL_UPGRADE_AMOUNT + cbs.FICTITIOUS_AMOUNT + + cbs.MAIN_REPUR_AMOUNT + cbs.MALL_AMOUNT + cbs.COOPERATE_AMOUNT + cbs.SPECIAL_REPURCHASE_AMOUNT + cbs.WELFARE_ORDER), 4) + end AS totalBonusRateSum + FROM CU_BONUS_STATIS cbs left join bd_vertex ver on cbs.pk_bd_vertex = ver.pk_id - LEFT JOIN cu_member_team ct ON ct.pk_id = cbs.pk_team_code - WHERE 1=1 - - and ver.DEL_FLAG=0 - + WHERE ver.DEL_FLAG = 0 - and cbs.PK_COUNTRY=#{pkCountry} - - - and cbs.PK_TEAM_CODE in - - #{item} - + and cbs.PK_COUNTRY = #{pkCountry} and cbs.PK_BD_VERTEX in @@ -365,7 +247,6 @@ #{item} - and cbs.CREATION_TIME >= to_date(#{startDate}, 'yyyy-mm-dd') 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 61587bcf..b1577a1d 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 @@ -61,7 +61,8 @@ (cbs.MAIN_REPUR_AMOUNT + cbs.MALL_AMOUNT + cbs.COOPERATE_AMOUNT + cbs.SPECIAL_REPURCHASE_AMOUNT + cbs.WELFARE_ORDER) AS repurchaseAllAmount, - (cbs.INTRODUCE_BONUS + cbs.ORG_BONUS + cbs.LEADER_BONUS + cbs.SERVICE_BONUS) AS mainBonus, + (cbs.INTRODUCE_BONUS + cbs.ORG_BONUS + cbs.LEADER_BONUS + cbs.SERVICE_BONUS) + AS mainBonus, case WHEN (cbs.MAIN_REG_AMOUNT + cbs.MAIN_UP_AMOUNT + cbs.SPECIAL_REGISTER_AMOUNT + cbs.SPECIAL_UPGRADE_AMOUNT + cbs.FICTITIOUS_AMOUNT) = 0 @@ -77,7 +78,8 @@ / #{rate} / (cbs.MAIN_REG_PV + cbs.MAIN_UP_PV + cbs.SPECIAL_REGISTER_PV + cbs.SPECIAL_UPGRADE_PV + cbs.FICTITIOUS_PV), 4) end AS mainBonusPvRate, - (cbs.REPUR_RANGE_BONUS + cbs.REPUR_ORG_BONUS + cbs.REPUR_PUSH_INCOME + cbs.REPUR_LEADER_BONUS) AS repurBonus, + (cbs.REPUR_RANGE_BONUS + cbs.REPUR_ORG_BONUS + cbs.REPUR_PUSH_INCOME + cbs.REPUR_LEADER_BONUS) + AS repurBonus, case WHEN (cbs.MAIN_REPUR_AMOUNT + cbs.MALL_AMOUNT + cbs.COOPERATE_AMOUNT + cbs.SPECIAL_REPURCHASE_AMOUNT + cbs.WELFARE_ORDER) = 0 @@ -124,6 +126,72 @@ ORDER BY cbs.CREATION_TIME asc + + + + + + + - 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.HIFANS_REG_AMOUNT) hifansRegAmount, 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.SPECIAL_REGISTER_AMOUNT+cbs.SPECIAL_UPGRADE_AMOUNT+cbs.FICTITIOUS_AMOUNT) - = 0 - THEN 0 ELSE ROUND(((#{perCent}*sum(cbs.SERVICE_BONUS))) - /(sum(cbs.MAIN_REG_AMOUNT+cbs.MAIN_UP_AMOUNT+cbs.SPECIAL_REGISTER_AMOUNT+cbs.SPECIAL_UPGRADE_AMOUNT+cbs.FICTITIOUS_AMOUNT)),4) - end AS serviceBonusRate, - sum (cbs.HI_FUN_INCOME) hiFunIncome, sum (cbs.REPUR_RANGE_BONUS) repurRangeBonus, sum (cbs.REPUR_ORG_BONUS) repurOrgBonus, - sum (cbs.MAKER_DIRECT) makerDirect, - sum (cbs.MAKER_SHARE) makerShare, - CASE WHEN - sum(cbs.MAIN_REG_AMOUNT+cbs.MAIN_UP_AMOUNT+cbs.SPECIAL_REGISTER_AMOUNT+cbs.SPECIAL_UPGRADE_AMOUNT+cbs.FICTITIOUS_AMOUNT) - = 0 - THEN 0 ELSE ROUND(((#{perCent}*sum(cbs.MAKER_DIRECT+cbs.MAKER_SHARE))) - /(sum(cbs.MAIN_REG_AMOUNT+cbs.MAIN_UP_AMOUNT+cbs.SPECIAL_REGISTER_AMOUNT+cbs.SPECIAL_UPGRADE_AMOUNT+cbs.FICTITIOUS_AMOUNT)),4) - end AS makerRate, - ((sum(cbs.MAIN_REG_AMOUNT + - cbs.MAIN_UP_AMOUNT+cbs.SPECIAL_REGISTER_AMOUNT+cbs.SPECIAL_UPGRADE_AMOUNT+cbs.FICTITIOUS_AMOUNT))) AS - firstPurchaseAll, - ( sum(cbs.MAIN_REPUR_AMOUNT + - cbs.HIFANS_REG_AMOUNT+cbs.HAI_FUN_UPGRADE_AMOUNT+cbs.CLOUD_COLLEGE_AMOUNT+cbs.MALL_AMOUNT - +cbs.EMPOWERMENT_GIFT_AMOUNT+cbs.COOPERATE_AMOUNT+cbs.SPECIAL_REPURCHASE_AMOUNT - +cbs.MAKER_ORDER+cbs.MAKER_GIFT_AMOUNT+cbs.WELFARE_ORDER) ) AS repurchaseAllAmount, - sum(cbs.INTRODUCE_BONUS+cbs.ORG_BONUS+cbs.LEADER_BONUS+cbs.SERVICE_BONUS - +cbs.MAKER_DIRECT+cbs.MAKER_SHARE) AS mainBonus, - CASE WHEN - sum(cbs.MAIN_REG_AMOUNT+cbs.MAIN_UP_AMOUNT+cbs.SPECIAL_REGISTER_AMOUNT+cbs.SPECIAL_UPGRADE_AMOUNT+cbs.FICTITIOUS_AMOUNT) - = 0 - THEN 0 ELSE ROUND(((#{perCent}*sum(cbs.INTRODUCE_BONUS+cbs.ORG_BONUS+cbs.LEADER_BONUS+cbs.SERVICE_BONUS - +cbs.MAKER_DIRECT+cbs.MAKER_SHARE))) - /(sum(cbs.MAIN_REG_AMOUNT+cbs.MAIN_UP_AMOUNT+cbs.SPECIAL_REGISTER_AMOUNT+cbs.SPECIAL_UPGRADE_AMOUNT+cbs.FICTITIOUS_AMOUNT)),4) + sum (cbs.REPUR_LEADER_BONUS) repurLeaderBonus, + + sum(cbs.MAIN_REG_AMOUNT + cbs.MAIN_UP_AMOUNT + cbs.SPECIAL_REGISTER_AMOUNT + cbs.SPECIAL_UPGRADE_AMOUNT + cbs.FICTITIOUS_AMOUNT) + AS firstPurchaseAll, + 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.SPECIAL_REGISTER_AMOUNT + cbs.SPECIAL_UPGRADE_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.SPECIAL_REGISTER_AMOUNT + cbs.SPECIAL_UPGRADE_AMOUNT + cbs.FICTITIOUS_AMOUNT), 4) end AS mainBonusRate, - - CASE WHEN - sum(cbs.MAIN_REG_PV+cbs.MAIN_UP_PV+cbs.SPECIAL_REGISTER_PV+cbs.SPECIAL_UPGRADE_PV+cbs.FICTITIOUS_PV) - = 0 - THEN 0 ELSE ROUND(((#{perCent}*sum(cbs.INTRODUCE_BONUS+cbs.ORG_BONUS+cbs.LEADER_BONUS+cbs.SERVICE_BONUS - +cbs.MAKER_DIRECT+cbs.MAKER_SHARE))) - /#{rate}/sum(cbs.MAIN_REG_PV+cbs.MAIN_UP_PV+cbs.SPECIAL_REGISTER_PV+cbs.SPECIAL_UPGRADE_PV+cbs.FICTITIOUS_PV),4) + case + WHEN sum(cbs.MAIN_REG_PV + cbs.MAIN_UP_PV + cbs.SPECIAL_REGISTER_PV + cbs.SPECIAL_UPGRADE_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.SPECIAL_REGISTER_PV + cbs.SPECIAL_UPGRADE_PV + cbs.FICTITIOUS_PV), 4) end AS mainBonusPvRate, - sum(cbs.REPUR_RANGE_BONUS+cbs.REPUR_ORG_BONUS+cbs.REPUR_PUSH_INCOME - +cbs.HI_FUN_INCOME) AS repurBonus, - - CASE WHEN - sum(cbs.MAIN_REPUR_AMOUNT+cbs.HIFANS_REG_AMOUNT+cbs.HAI_FUN_UPGRADE_AMOUNT+cbs.CLOUD_COLLEGE_AMOUNT+cbs.MALL_AMOUNT - +cbs.EMPOWERMENT_GIFT_AMOUNT+cbs.COOPERATE_AMOUNT+cbs.SPECIAL_REPURCHASE_AMOUNT - +cbs.MAKER_ORDER+cbs.MAKER_GIFT_AMOUNT+cbs.WELFARE_ORDER)=0 THEN 0 - ELSE ROUND(#{perCent}*sum(((cbs.REPUR_RANGE_BONUS+cbs.REPUR_ORG_BONUS+cbs.REPUR_PUSH_INCOME))+cbs.HI_FUN_INCOME) - / - sum(cbs.MAIN_REPUR_AMOUNT+cbs.HIFANS_REG_AMOUNT+cbs.HAI_FUN_UPGRADE_AMOUNT+cbs.CLOUD_COLLEGE_AMOUNT+cbs.MALL_AMOUNT - +cbs.EMPOWERMENT_GIFT_AMOUNT+cbs.COOPERATE_AMOUNT+cbs.SPECIAL_REPURCHASE_AMOUNT - +cbs.MAKER_ORDER+cbs.MAKER_GIFT_AMOUNT+cbs.WELFARE_ORDER),4) end AS repurBonusRate, - - CASE WHEN - sum(cbs.MAIN_REPUR_PV+cbs.HIFANS_REG_PV+cbs.HAI_FUN_UPGRADE_PV+cbs.CLOUD_COLLEGE_PV+cbs.MALL_PV - +cbs.EMPOWERMENT_GIFT_PV+cbs.COOPERATE_PV+cbs.SPECIAL_REPURCHASE_PV - +cbs.MAKER_ORDER_PV+cbs.MAKER_GIFT_PV+cbs.WELFARE_ORDER_PV)=0 THEN 0 - ELSE ROUND(#{perCent}*sum(((cbs.REPUR_RANGE_BONUS+cbs.REPUR_ORG_BONUS+cbs.REPUR_PUSH_INCOME))+cbs.HI_FUN_INCOME) - /#{rate}/ - sum(cbs.MAIN_REPUR_PV+cbs.HIFANS_REG_PV+cbs.HAI_FUN_UPGRADE_PV+cbs.CLOUD_COLLEGE_PV+cbs.MALL_PV - +cbs.EMPOWERMENT_GIFT_PV+cbs.COOPERATE_PV+cbs.SPECIAL_REPURCHASE_PV - +cbs.MAKER_ORDER_PV+cbs.MAKER_GIFT_PV+cbs.WELFARE_ORDER_PV),4) end AS repurBonusPvRate, - - sum(cbs.INTRODUCE_BONUS+cbs.ORG_BONUS+cbs.LEADER_BONUS+cbs.SERVICE_BONUS+ - cbs.MAKER_DIRECT+cbs.MAKER_SHARE+ - cbs.REPUR_RANGE_BONUS+cbs.REPUR_ORG_BONUS+cbs.REPUR_PUSH_INCOME - +cbs.HI_FUN_INCOME) AS totalBonus, - CASE WHEN - sum(cbs.MAIN_REG_AMOUNT+cbs.MAIN_UP_AMOUNT+cbs.SPECIAL_REGISTER_AMOUNT+cbs.SPECIAL_UPGRADE_AMOUNT+cbs.FICTITIOUS_AMOUNT+ - cbs.MAIN_REPUR_AMOUNT+cbs.HIFANS_REG_AMOUNT+cbs.HAI_FUN_UPGRADE_AMOUNT+cbs.CLOUD_COLLEGE_AMOUNT+cbs.MALL_AMOUNT - +cbs.EMPOWERMENT_GIFT_AMOUNT+cbs.COOPERATE_AMOUNT+cbs.SPECIAL_REPURCHASE_AMOUNT - +cbs.MAKER_ORDER+cbs.MAKER_GIFT_AMOUNT+cbs.WELFARE_ORDER)=0 THEN 0 - ELSE ROUND ((#{perCent}*sum(cbs.INTRODUCE_BONUS+cbs.ORG_BONUS+cbs.LEADER_BONUS+cbs.SERVICE_BONUS - +cbs.MAKER_DIRECT+cbs.MAKER_SHARE+ - cbs.REPUR_RANGE_BONUS+cbs.REPUR_ORG_BONUS+cbs.REPUR_PUSH_INCOME+cbs.HI_FUN_INCOME)) - / - (sum(cbs.MAIN_REG_AMOUNT+cbs.MAIN_UP_AMOUNT+cbs.SPECIAL_REGISTER_AMOUNT+cbs.SPECIAL_UPGRADE_AMOUNT+cbs.FICTITIOUS_AMOUNT+ - cbs.MAIN_REPUR_AMOUNT+cbs.HIFANS_REG_AMOUNT+cbs.HAI_FUN_UPGRADE_AMOUNT+cbs.CLOUD_COLLEGE_AMOUNT+cbs.MALL_AMOUNT - +cbs.EMPOWERMENT_GIFT_AMOUNT+cbs.COOPERATE_AMOUNT+cbs.SPECIAL_REPURCHASE_AMOUNT - +cbs.MAKER_ORDER+cbs.MAKER_GIFT_AMOUNT+cbs.WELFARE_ORDER)),4) end AS totalBonusRate - FROM - CU_BONUS_VERTEX_STATIS cbs - LEFT JOIN CU_MEMBER cm ON cm.PK_ID = cbs.PK_BD_VERTEX - WHERE 1=1 + + sum(cbs.MAIN_REPUR_AMOUNT + cbs.MALL_AMOUNT + cbs.COOPERATE_AMOUNT + cbs.SPECIAL_REPURCHASE_AMOUNT + cbs.WELFARE_ORDER) + AS repurchaseAllAmount, + sum(cbs.REPUR_RANGE_BONUS + cbs.REPUR_ORG_BONUS + cbs.REPUR_PUSH_INCOME + cbs.REPUR_LEADER_BONUS) + AS repurBonus, + case + WHEN sum(cbs.MAIN_REPUR_AMOUNT + cbs.MALL_AMOUNT + cbs.COOPERATE_AMOUNT + cbs.SPECIAL_REPURCHASE_AMOUNT + cbs.WELFARE_ORDER) = 0 + THEN 0 + ELSE ROUND(#{perCent} * sum(cbs.REPUR_RANGE_BONUS + cbs.REPUR_ORG_BONUS + cbs.REPUR_PUSH_INCOME + cbs.REPUR_LEADER_BONUS) + / sum(cbs.MAIN_REPUR_AMOUNT + cbs.MALL_AMOUNT + cbs.COOPERATE_AMOUNT + cbs.SPECIAL_REPURCHASE_AMOUNT + cbs.WELFARE_ORDER), 4) + end AS repurBonusRate, + case + WHEN sum(cbs.MAIN_REPUR_PV + cbs.MALL_PV + cbs.COOPERATE_PV + cbs.SPECIAL_REPURCHASE_PV + cbs.WELFARE_ORDER_PV) = 0 + THEN 0 + ELSE ROUND(#{perCent} * sum(cbs.REPUR_RANGE_BONUS + cbs.REPUR_ORG_BONUS + cbs.REPUR_PUSH_INCOME + cbs.REPUR_LEADER_BONUS) + / #{rate} / sum(cbs.MAIN_REPUR_PV + cbs.MALL_PV + cbs.COOPERATE_PV + cbs.SPECIAL_REPURCHASE_PV + cbs.WELFARE_ORDER_PV), 4) + end AS repurBonusPvRate + FROM CU_BONUS_VERTEX_STATIS cbs + LEFT JOIN CU_MEMBER cm ON cm.PK_ID = cbs.PK_BD_VERTEX and cm.del_flag = 0 + WHERE 1 = 1 - and cbs.PK_COUNTRY=#{pkCountry} + 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') @@ -329,131 +347,109 @@ and cbs.CREATION_TIME <= to_date(#{endDate} || ' 23:59:59', 'yyyy-mm-dd hh24:mi:ss') - GROUP BY cbs.PK_BD_VERTEX,cm.MEMBER_CODE,cm.MEMBER_NAME + GROUP BY cbs.PK_BD_VERTEX, cm.MEMBER_CODE, cm.MEMBER_NAME ) - ORDER BY firstPurchaseAll desc,repurchaseAllAmount desc - - + ORDER BY firstPurchaseAll desc, repurchaseAllAmount desc - SELECT - sum (cbs.MAIN_REG_AMOUNT) mainRegAmount, - sum (cbs.MAIN_UP_AMOUNT) mainUpAmount, - sum (cbs.MAIN_REPUR_AMOUNT) mainRepurAmount, - sum (cbs.HIFANS_REG_AMOUNT) hifansRegAmount, sum (cbs.INTRODUCE_BONUS) introduceBonus, - CASE WHEN - sum(cbs.MAIN_REG_AMOUNT+cbs.MAIN_UP_AMOUNT+cbs.SPECIAL_REGISTER_AMOUNT+cbs.SPECIAL_UPGRADE_AMOUNT+cbs.FICTITIOUS_AMOUNT) - = 0 - THEN 0 ELSE ROUND(((#{perCent}*sum(cbs.INTRODUCE_BONUS))) - /(sum(cbs.MAIN_REG_AMOUNT+cbs.MAIN_UP_AMOUNT+cbs.SPECIAL_REGISTER_AMOUNT+cbs.SPECIAL_UPGRADE_AMOUNT+cbs.FICTITIOUS_AMOUNT)),4) - end AS introduceBonusRate, sum (cbs.ORG_BONUS) orgBonus, - CASE WHEN - sum(cbs.MAIN_REG_AMOUNT+cbs.MAIN_UP_AMOUNT+cbs.SPECIAL_REGISTER_AMOUNT+cbs.SPECIAL_UPGRADE_AMOUNT+cbs.FICTITIOUS_AMOUNT) - = 0 - THEN 0 ELSE ROUND(((#{perCent}*sum(cbs.ORG_BONUS))) - /(sum(cbs.MAIN_REG_AMOUNT+cbs.MAIN_UP_AMOUNT+cbs.SPECIAL_REGISTER_AMOUNT+cbs.SPECIAL_UPGRADE_AMOUNT+cbs.FICTITIOUS_AMOUNT)),4) - end AS orgBonusRate, - sum (cbs.LEADER_BONUS) leaderBonus, sum (cbs.SERVICE_BONUS) serviceBonus, - CASE WHEN - sum(cbs.MAIN_REG_AMOUNT+cbs.MAIN_UP_AMOUNT+cbs.SPECIAL_REGISTER_AMOUNT+cbs.SPECIAL_UPGRADE_AMOUNT+cbs.FICTITIOUS_AMOUNT) - = 0 - THEN 0 ELSE ROUND(((#{perCent}*sum(cbs.SERVICE_BONUS))) - /(sum(cbs.MAIN_REG_AMOUNT+cbs.MAIN_UP_AMOUNT+cbs.SPECIAL_REGISTER_AMOUNT+cbs.SPECIAL_UPGRADE_AMOUNT+cbs.FICTITIOUS_AMOUNT)),4) - end AS serviceBonusRate, - sum (cbs.HI_FUN_INCOME) hiFunIncome, sum (cbs.REPUR_RANGE_BONUS) repurRangeBonus, sum (cbs.REPUR_ORG_BONUS) repurOrgBonus, - sum (cbs.MAKER_DIRECT) makerDirect, - sum (cbs.MAKER_SHARE) makerShare, - CASE WHEN - sum(cbs.MAIN_REG_AMOUNT+cbs.MAIN_UP_AMOUNT+cbs.SPECIAL_REGISTER_AMOUNT+cbs.SPECIAL_UPGRADE_AMOUNT+cbs.FICTITIOUS_AMOUNT) - = 0 - THEN 0 ELSE ROUND(((#{perCent}*sum(cbs.MAKER_DIRECT+cbs.MAKER_SHARE))) - /(sum(cbs.MAIN_REG_AMOUNT+cbs.MAIN_UP_AMOUNT+cbs.SPECIAL_REGISTER_AMOUNT+cbs.SPECIAL_UPGRADE_AMOUNT+cbs.FICTITIOUS_AMOUNT)),4) - end AS makerRate, - ((sum(cbs.MAIN_REG_AMOUNT + - cbs.MAIN_UP_AMOUNT+cbs.SPECIAL_REGISTER_AMOUNT+cbs.SPECIAL_UPGRADE_AMOUNT+cbs.FICTITIOUS_AMOUNT))) - AS - firstPurchaseAll, - ( sum(cbs.MAIN_REPUR_AMOUNT + - cbs.HIFANS_REG_AMOUNT+cbs.HAI_FUN_UPGRADE_AMOUNT+cbs.CLOUD_COLLEGE_AMOUNT+cbs.MALL_AMOUNT - +cbs.EMPOWERMENT_GIFT_AMOUNT+cbs.COOPERATE_AMOUNT+cbs.SPECIAL_REPURCHASE_AMOUNT - +cbs.MAKER_ORDER+cbs.MAKER_GIFT_AMOUNT+cbs.WELFARE_ORDER) ) AS repurchaseAllAmount, - sum(cbs.INTRODUCE_BONUS+cbs.ORG_BONUS+cbs.LEADER_BONUS+cbs.SERVICE_BONUS - +cbs.MAKER_DIRECT+cbs.MAKER_SHARE) AS mainBonus, - CASE WHEN - sum(cbs.MAIN_REG_AMOUNT+cbs.MAIN_UP_AMOUNT+cbs.SPECIAL_REGISTER_AMOUNT+cbs.SPECIAL_UPGRADE_AMOUNT+cbs.FICTITIOUS_AMOUNT) - = 0 - THEN 0 ELSE ROUND(((#{perCent}*sum(cbs.INTRODUCE_BONUS+cbs.ORG_BONUS+cbs.LEADER_BONUS+cbs.SERVICE_BONUS - +cbs.MAKER_DIRECT+cbs.MAKER_SHARE))) - /(sum(cbs.MAIN_REG_AMOUNT+cbs.MAIN_UP_AMOUNT+cbs.SPECIAL_REGISTER_AMOUNT+cbs.SPECIAL_UPGRADE_AMOUNT+cbs.FICTITIOUS_AMOUNT)),4) + sum (cbs.REPUR_LEADER_BONUS) repurLeaderBonus, + + sum(cbs.MAIN_REG_AMOUNT + cbs.MAIN_UP_AMOUNT + cbs.SPECIAL_REGISTER_AMOUNT + cbs.SPECIAL_UPGRADE_AMOUNT + cbs.FICTITIOUS_AMOUNT) + AS firstPurchaseAll, + 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.SPECIAL_REGISTER_AMOUNT + cbs.SPECIAL_UPGRADE_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.SPECIAL_REGISTER_AMOUNT + cbs.SPECIAL_UPGRADE_AMOUNT + cbs.FICTITIOUS_AMOUNT), 4) end AS mainBonusRate, - - CASE WHEN - sum(cbs.MAIN_REG_PV+cbs.MAIN_UP_PV+cbs.SPECIAL_REGISTER_PV+cbs.SPECIAL_UPGRADE_PV+cbs.FICTITIOUS_PV) - = 0 - THEN 0 ELSE ROUND(((#{perCent}*sum(cbs.INTRODUCE_BONUS+cbs.ORG_BONUS+cbs.LEADER_BONUS+cbs.SERVICE_BONUS - +cbs.MAKER_DIRECT+cbs.MAKER_SHARE))) - /#{rate}/sum(cbs.MAIN_REG_PV+cbs.MAIN_UP_PV+cbs.SPECIAL_REGISTER_PV+cbs.SPECIAL_UPGRADE_PV+cbs.FICTITIOUS_PV),4) + case + WHEN sum(cbs.MAIN_REG_PV + cbs.MAIN_UP_PV + cbs.SPECIAL_REGISTER_PV + cbs.SPECIAL_UPGRADE_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.SPECIAL_REGISTER_PV + cbs.SPECIAL_UPGRADE_PV + cbs.FICTITIOUS_PV), 4) end AS mainBonusPvRate, - - sum(cbs.REPUR_RANGE_BONUS+cbs.REPUR_ORG_BONUS+cbs.REPUR_PUSH_INCOME - +cbs.HI_FUN_INCOME) AS repurBonus, - - CASE WHEN - sum(cbs.MAIN_REPUR_AMOUNT+cbs.HIFANS_REG_AMOUNT+cbs.HAI_FUN_UPGRADE_AMOUNT+cbs.CLOUD_COLLEGE_AMOUNT+cbs.MALL_AMOUNT - +cbs.EMPOWERMENT_GIFT_AMOUNT+cbs.COOPERATE_AMOUNT+cbs.SPECIAL_REPURCHASE_AMOUNT - +cbs.MAKER_ORDER+cbs.MAKER_GIFT_AMOUNT+cbs.WELFARE_ORDER)=0 THEN 0 - ELSE ROUND(#{perCent}*sum(((cbs.REPUR_RANGE_BONUS+cbs.REPUR_ORG_BONUS+cbs.REPUR_PUSH_INCOME))+cbs.HI_FUN_INCOME) - / - sum(cbs.MAIN_REPUR_AMOUNT+cbs.HIFANS_REG_AMOUNT+cbs.HAI_FUN_UPGRADE_AMOUNT+cbs.CLOUD_COLLEGE_AMOUNT+cbs.MALL_AMOUNT - +cbs.EMPOWERMENT_GIFT_AMOUNT+cbs.COOPERATE_AMOUNT+cbs.SPECIAL_REPURCHASE_AMOUNT - +cbs.MAKER_ORDER+cbs.MAKER_GIFT_AMOUNT+cbs.WELFARE_ORDER),4) end AS repurBonusRate, - - CASE WHEN - sum(cbs.MAIN_REPUR_PV+cbs.HIFANS_REG_PV+cbs.HAI_FUN_UPGRADE_PV+cbs.CLOUD_COLLEGE_PV+cbs.MALL_PV - +cbs.EMPOWERMENT_GIFT_PV+cbs.COOPERATE_PV+cbs.SPECIAL_REPURCHASE_PV - +cbs.MAKER_ORDER_PV+cbs.MAKER_GIFT_PV+cbs.WELFARE_ORDER_PV)=0 THEN 0 - ELSE ROUND(#{perCent}*sum(((cbs.REPUR_RANGE_BONUS+cbs.REPUR_ORG_BONUS+cbs.REPUR_PUSH_INCOME))+cbs.HI_FUN_INCOME) - /#{rate}/ - sum(cbs.MAIN_REPUR_PV+cbs.HIFANS_REG_PV+cbs.HAI_FUN_UPGRADE_PV+cbs.CLOUD_COLLEGE_PV+cbs.MALL_PV - +cbs.EMPOWERMENT_GIFT_PV+cbs.COOPERATE_PV+cbs.SPECIAL_REPURCHASE_PV - +cbs.MAKER_ORDER_PV+cbs.MAKER_GIFT_PV+cbs.WELFARE_ORDER_PV),4) end AS repurBonusPvRate, - - sum(cbs.INTRODUCE_BONUS+cbs.ORG_BONUS+cbs.LEADER_BONUS+cbs.SERVICE_BONUS+ - cbs.MAKER_DIRECT+cbs.MAKER_SHARE+ - cbs.REPUR_RANGE_BONUS+cbs.REPUR_ORG_BONUS+cbs.REPUR_PUSH_INCOME - +cbs.HI_FUN_INCOME) AS totalBonus, - CASE WHEN - sum(cbs.MAIN_REG_AMOUNT+cbs.MAIN_UP_AMOUNT+cbs.SPECIAL_REGISTER_AMOUNT+cbs.SPECIAL_UPGRADE_AMOUNT+cbs.FICTITIOUS_AMOUNT+ - cbs.MAIN_REPUR_AMOUNT+cbs.HIFANS_REG_AMOUNT+cbs.HAI_FUN_UPGRADE_AMOUNT+cbs.CLOUD_COLLEGE_AMOUNT+cbs.MALL_AMOUNT - +cbs.EMPOWERMENT_GIFT_AMOUNT+cbs.COOPERATE_AMOUNT+cbs.SPECIAL_REPURCHASE_AMOUNT - +cbs.MAKER_ORDER+cbs.MAKER_GIFT_AMOUNT+cbs.WELFARE_ORDER)=0 THEN 0 - ELSE ROUND ((#{perCent}*sum(cbs.INTRODUCE_BONUS+cbs.ORG_BONUS+cbs.LEADER_BONUS+cbs.SERVICE_BONUS - +cbs.MAKER_DIRECT+cbs.MAKER_SHARE+ - cbs.REPUR_RANGE_BONUS+cbs.REPUR_ORG_BONUS+cbs.REPUR_PUSH_INCOME+cbs.HI_FUN_INCOME)) - / - (sum(cbs.MAIN_REG_AMOUNT+cbs.MAIN_UP_AMOUNT+cbs.SPECIAL_REGISTER_AMOUNT+cbs.SPECIAL_UPGRADE_AMOUNT+cbs.FICTITIOUS_AMOUNT+ - cbs.MAIN_REPUR_AMOUNT+cbs.HIFANS_REG_AMOUNT+cbs.HAI_FUN_UPGRADE_AMOUNT+cbs.CLOUD_COLLEGE_AMOUNT+cbs.MALL_AMOUNT - +cbs.EMPOWERMENT_GIFT_AMOUNT+cbs.COOPERATE_AMOUNT+cbs.SPECIAL_REPURCHASE_AMOUNT - +cbs.MAKER_ORDER+cbs.MAKER_GIFT_AMOUNT+cbs.WELFARE_ORDER)),4) end AS totalBonusRate - FROM - CU_BONUS_VERTEX_STATIS cbs - LEFT JOIN CU_MEMBER cm ON cm.PK_ID = cbs.PK_BD_VERTEX - WHERE 1=1 + + sum(cbs.MAIN_REPUR_AMOUNT + cbs.MALL_AMOUNT + cbs.COOPERATE_AMOUNT + cbs.SPECIAL_REPURCHASE_AMOUNT + cbs.WELFARE_ORDER) + AS repurchaseAllAmount, + sum(cbs.REPUR_RANGE_BONUS + cbs.REPUR_ORG_BONUS + cbs.REPUR_PUSH_INCOME + cbs.REPUR_LEADER_BONUS) + AS repurBonus, + case + WHEN sum(cbs.MAIN_REPUR_AMOUNT + cbs.MALL_AMOUNT + cbs.COOPERATE_AMOUNT + cbs.SPECIAL_REPURCHASE_AMOUNT + cbs.WELFARE_ORDER) = 0 + THEN 0 + ELSE ROUND(#{perCent} * sum(cbs.REPUR_RANGE_BONUS + cbs.REPUR_ORG_BONUS + cbs.REPUR_PUSH_INCOME + cbs.REPUR_LEADER_BONUS) + / sum(cbs.MAIN_REPUR_AMOUNT + cbs.MALL_AMOUNT + cbs.COOPERATE_AMOUNT + cbs.SPECIAL_REPURCHASE_AMOUNT + cbs.WELFARE_ORDER), 4) + end AS repurBonusRate, + case + WHEN sum(cbs.MAIN_REPUR_PV + cbs.MALL_PV + cbs.COOPERATE_PV + cbs.SPECIAL_REPURCHASE_PV + cbs.WELFARE_ORDER_PV) = 0 + THEN 0 + ELSE ROUND(#{perCent} * sum(cbs.REPUR_RANGE_BONUS + cbs.REPUR_ORG_BONUS + cbs.REPUR_PUSH_INCOME + cbs.REPUR_LEADER_BONUS) + / #{rate} / sum(cbs.MAIN_REPUR_PV + cbs.MALL_PV + cbs.COOPERATE_PV + cbs.SPECIAL_REPURCHASE_PV + cbs.WELFARE_ORDER_PV), 4) + end AS repurBonusPvRate, + + case + WHEN sum(cbs.MAIN_REG_AMOUNT + cbs.MAIN_UP_AMOUNT + cbs.SPECIAL_REGISTER_AMOUNT + cbs.SPECIAL_UPGRADE_AMOUNT + cbs.FICTITIOUS_AMOUNT) = 0 + THEN 0 + ELSE ROUND(#{perCent} * sum(cbs.INTRODUCE_BONUS) + / sum(cbs.MAIN_REG_AMOUNT + cbs.MAIN_UP_AMOUNT + cbs.SPECIAL_REGISTER_AMOUNT + cbs.SPECIAL_UPGRADE_AMOUNT + cbs.FICTITIOUS_AMOUNT), 4) + end AS introduceBonusRate, + case + WHEN sum(cbs.MAIN_REG_AMOUNT + cbs.MAIN_UP_AMOUNT + cbs.SPECIAL_REGISTER_AMOUNT + cbs.SPECIAL_UPGRADE_AMOUNT + cbs.FICTITIOUS_AMOUNT) = 0 + THEN 0 + ELSE ROUND(#{perCent} * sum(cbs.ORG_BONUS) + / sum(cbs.MAIN_REG_AMOUNT + cbs.MAIN_UP_AMOUNT + cbs.SPECIAL_REGISTER_AMOUNT + cbs.SPECIAL_UPGRADE_AMOUNT + cbs.FICTITIOUS_AMOUNT), 4) + end AS orgBonusRate, + case + WHEN sum(cbs.MAIN_REG_AMOUNT + cbs.MAIN_UP_AMOUNT + cbs.SPECIAL_REGISTER_AMOUNT + cbs.SPECIAL_UPGRADE_AMOUNT + cbs.FICTITIOUS_AMOUNT) = 0 + THEN 0 + ELSE ROUND(#{perCent} * sum(cbs.LEADER_BONUS) + / sum(cbs.MAIN_REG_AMOUNT + cbs.MAIN_UP_AMOUNT + cbs.SPECIAL_REGISTER_AMOUNT + cbs.SPECIAL_UPGRADE_AMOUNT + cbs.FICTITIOUS_AMOUNT), 4) + end AS leaderBonusRate, + case + WHEN sum(cbs.MAIN_REG_AMOUNT + cbs.MAIN_UP_AMOUNT + cbs.SPECIAL_REGISTER_AMOUNT + cbs.SPECIAL_UPGRADE_AMOUNT + cbs.FICTITIOUS_AMOUNT) = 0 + THEN 0 + ELSE ROUND(#{perCent} * sum(cbs.SERVICE_BONUS) + / sum(cbs.MAIN_REG_AMOUNT + cbs.MAIN_UP_AMOUNT + cbs.SPECIAL_REGISTER_AMOUNT + cbs.SPECIAL_UPGRADE_AMOUNT + cbs.FICTITIOUS_AMOUNT), 4) + end AS serviceBonusRate, + + case + WHEN sum(cbs.MAIN_REPUR_AMOUNT + cbs.MALL_AMOUNT + cbs.COOPERATE_AMOUNT + cbs.SPECIAL_REPURCHASE_AMOUNT + cbs.WELFARE_ORDER) = 0 + THEN 0 + ELSE ROUND(#{perCent} * sum(cbs.REPUR_RANGE_BONUS) + / sum(cbs.MAIN_REPUR_AMOUNT + cbs.MALL_AMOUNT + cbs.COOPERATE_AMOUNT + cbs.SPECIAL_REPURCHASE_AMOUNT + cbs.WELFARE_ORDER), 4) + end AS repurRangeBonusRate, + case + WHEN sum(cbs.MAIN_REPUR_AMOUNT + cbs.MALL_AMOUNT + cbs.COOPERATE_AMOUNT + cbs.SPECIAL_REPURCHASE_AMOUNT + cbs.WELFARE_ORDER) = 0 + THEN 0 + ELSE ROUND(#{perCent} * sum(cbs.REPUR_ORG_BONUS) + / sum(cbs.MAIN_REPUR_AMOUNT + cbs.MALL_AMOUNT + cbs.COOPERATE_AMOUNT + cbs.SPECIAL_REPURCHASE_AMOUNT + cbs.WELFARE_ORDER), 4) + end AS repurOrgBonusRate, + case + WHEN sum(cbs.MAIN_REPUR_AMOUNT + cbs.MALL_AMOUNT + cbs.COOPERATE_AMOUNT + cbs.SPECIAL_REPURCHASE_AMOUNT + cbs.WELFARE_ORDER) = 0 + THEN 0 + ELSE ROUND(#{perCent} * sum(cbs.REPUR_LEADER_BONUS) + / sum(cbs.MAIN_REPUR_AMOUNT + cbs.MALL_AMOUNT + cbs.COOPERATE_AMOUNT + cbs.SPECIAL_REPURCHASE_AMOUNT + cbs.WELFARE_ORDER), 4) + end AS repurLeaderBonusRate + FROM CU_BONUS_VERTEX_STATIS cbs + LEFT JOIN CU_MEMBER cm ON cm.PK_ID = cbs.PK_BD_VERTEX and cm.del_flag = 0 + WHERE 1 = 1 - and cbs.PK_COUNTRY=#{pkCountry} + 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') @@ -462,9 +458,10 @@ and cbs.CREATION_TIME <= to_date(#{endDate} || ' 23:59:59', 'yyyy-mm-dd hh24:mi:ss') + - select cbs.PK_BD_VERTEX pkVertex from CU_BONUS_VERTEX_STATIS cbs where 1=1