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