Compare commits
No commits in common. "fe382acca8ce20d3bcf0d785089427062696a21d" and "564fb2bf12a7feee844d0c60bb35c7ae860d8343" have entirely different histories.
fe382acca8
...
564fb2bf12
|
|
@ -76,11 +76,11 @@ public class CuMemberBonusController extends BaseController {
|
||||||
*/
|
*/
|
||||||
@AccessPermissions("totalBonus")
|
@AccessPermissions("totalBonus")
|
||||||
@PostMapping("/query-bonus-total")
|
@PostMapping("/query-bonus-total")
|
||||||
@Log(module = EOperationModule.BONUS_TOTAL, business = EOperationBusiness.BONUS_TOTAL, method = EOperationMethod.SELECT)
|
@Log(module = EOperationModule.BONUS_TOTAL,business = EOperationBusiness.BONUS_TOTAL , method = EOperationMethod.SELECT)
|
||||||
@ColumnAuthority(perms = "totalBonus")
|
@ColumnAuthority(perms = "totalBonus")
|
||||||
public TableDataInfo listBonusTotal(@RequestBody BonusParam bonusParam) {
|
public TableDataInfo listBonusTotal(@RequestBody BonusParam bonusParam){
|
||||||
List<Integer> pkVertex = new ArrayList<>();
|
List<Integer> pkVertex=new ArrayList<>();
|
||||||
if (StringUtils.isNotEmpty(bonusParam.getPkBdVertexStr())) {
|
if(StringUtils.isNotEmpty(bonusParam.getPkBdVertexStr())){
|
||||||
pkVertex = Arrays.stream(bonusParam.getPkBdVertexStr().split(","))
|
pkVertex = Arrays.stream(bonusParam.getPkBdVertexStr().split(","))
|
||||||
.map(Integer::parseInt)
|
.map(Integer::parseInt)
|
||||||
.collect(Collectors.toList());
|
.collect(Collectors.toList());
|
||||||
|
|
@ -99,10 +99,10 @@ public class CuMemberBonusController extends BaseController {
|
||||||
* 分页查询会员某个时间段内的奖金汇总
|
* 分页查询会员某个时间段内的奖金汇总
|
||||||
*/
|
*/
|
||||||
@PostMapping("/export-bonus-total")
|
@PostMapping("/export-bonus-total")
|
||||||
@Log(module = EOperationModule.BONUS_TOTAL, business = EOperationBusiness.BONUS_TOTAL, method = EOperationMethod.EXPORT)
|
@Log(module = EOperationModule.BONUS_TOTAL,business = EOperationBusiness.BONUS_TOTAL , method = EOperationMethod.EXPORT)
|
||||||
public void exportBonusTotal(HttpServletResponse response, BonusParam bonusParam) {
|
public void exportBonusTotal(HttpServletResponse response, BonusParam bonusParam){
|
||||||
List<Integer> pkVertex = new ArrayList<>();
|
List<Integer> pkVertex=new ArrayList<>();
|
||||||
if (StringUtils.isNotEmpty(bonusParam.getPkBdVertexStr())) {
|
if(StringUtils.isNotEmpty(bonusParam.getPkBdVertexStr())){
|
||||||
pkVertex = Arrays.stream(bonusParam.getPkBdVertexStr().split(","))
|
pkVertex = Arrays.stream(bonusParam.getPkBdVertexStr().split(","))
|
||||||
.map(Integer::parseInt)
|
.map(Integer::parseInt)
|
||||||
.collect(Collectors.toList());
|
.collect(Collectors.toList());
|
||||||
|
|
@ -121,7 +121,7 @@ public class CuMemberBonusController extends BaseController {
|
||||||
List<BonusTotalVO> totalVoList = new ArrayList<>();
|
List<BonusTotalVO> totalVoList = new ArrayList<>();
|
||||||
cuMemberBonusList.forEach(cuMemberBonus -> {
|
cuMemberBonusList.forEach(cuMemberBonus -> {
|
||||||
BonusTotalVO bonusTotalVO = BeanUtil.copyProperties(cuMemberBonus, BonusTotalVO.class);
|
BonusTotalVO bonusTotalVO = BeanUtil.copyProperties(cuMemberBonus, BonusTotalVO.class);
|
||||||
for (String key : CuMemberBonusVO.INCOME_ARRAY) {
|
for(String key : CuMemberBonusVO.INCOME_ARRAY){
|
||||||
ReflectUtils.invokeSetter(bonusTotalVO, key + BonusFieldConstants.INCOME_SUFFIX, ComputeUtil.computeMultiply(ReflectUtils.invokeGetter(cuMemberBonus, key), cuMemberBonus.getOutExchangeRate()));
|
ReflectUtils.invokeSetter(bonusTotalVO, key + BonusFieldConstants.INCOME_SUFFIX, ComputeUtil.computeMultiply(ReflectUtils.invokeGetter(cuMemberBonus, key), cuMemberBonus.getOutExchangeRate()));
|
||||||
}
|
}
|
||||||
totalVoList.add(bonusTotalVO);
|
totalVoList.add(bonusTotalVO);
|
||||||
|
|
@ -135,9 +135,9 @@ public class CuMemberBonusController extends BaseController {
|
||||||
@AccessPermissions("BonusDetail")
|
@AccessPermissions("BonusDetail")
|
||||||
@PostMapping("/query-bonus-detail")
|
@PostMapping("/query-bonus-detail")
|
||||||
@Log(module = EOperationModule.BONUS_DETAIL, method = EOperationMethod.SELECT)
|
@Log(module = EOperationModule.BONUS_DETAIL, method = EOperationMethod.SELECT)
|
||||||
public TableDataInfo listBonus(@RequestBody BonusParam bonusParam) {
|
public TableDataInfo listBonus(@RequestBody BonusParam bonusParam){
|
||||||
List<Integer> pkVertex = new ArrayList<>();
|
List<Integer> pkVertex=new ArrayList<>();
|
||||||
if (StringUtils.isNotEmpty(bonusParam.getPkBdVertexStr())) {
|
if(StringUtils.isNotEmpty(bonusParam.getPkBdVertexStr())){
|
||||||
pkVertex = Arrays.stream(bonusParam.getPkBdVertexStr().split(","))
|
pkVertex = Arrays.stream(bonusParam.getPkBdVertexStr().split(","))
|
||||||
.map(Integer::parseInt)
|
.map(Integer::parseInt)
|
||||||
.collect(Collectors.toList());
|
.collect(Collectors.toList());
|
||||||
|
|
@ -145,16 +145,16 @@ public class CuMemberBonusController extends BaseController {
|
||||||
bonusParam.setPkVertexList(pkVertex);
|
bonusParam.setPkVertexList(pkVertex);
|
||||||
bonusParam.setPkCountry(SecurityUtils.getPkCountry());
|
bonusParam.setPkCountry(SecurityUtils.getPkCountry());
|
||||||
//获取管理员权限《角色地区范围、 体系列表、团队列表)
|
//获取管理员权限《角色地区范围、 体系列表、团队列表)
|
||||||
Date date = DateUtils.currentDate();
|
Date date=DateUtils.currentDate();
|
||||||
if (null == bonusParam.getStartDate() || null == bonusParam.getEndDate()) {
|
if(bonusParam.getStartDate()==null||bonusParam.getEndDate()==null){
|
||||||
bonusParam.setStartDate(DateUtils.currentMonthFirstDate());
|
bonusParam.setStartDate(DateUtils.currentMonthFirstDate());
|
||||||
bonusParam.setEndDate(DateUtils.beforeDate(1, ChronoUnit.DAYS, date));
|
bonusParam.setEndDate(DateUtils.beforeDate(1, ChronoUnit.DAYS,date));
|
||||||
}
|
}
|
||||||
packageBonusParam(bonusParam);
|
packageBonusParam(bonusParam);
|
||||||
startPage();
|
startPage();
|
||||||
List<CuMemberBonusExt> cuMemberBonusExtList = cuMemberBonusService.queryMemberBonusVoByConditionForServer(bonusParam);
|
List<CuMemberBonusExt> cuMemberBonusExtList = cuMemberBonusService.queryMemberBonusVoByConditionForServer(bonusParam);
|
||||||
CuMemberBonusExt cmb = cuMemberBonusService.queryMemberBonusByConditionForServerSum(bonusParam);
|
CuMemberBonusExt cmb =cuMemberBonusService.queryMemberBonusByConditionForServerSum(bonusParam);
|
||||||
if (cmb != null) {
|
if(cmb!=null){
|
||||||
cmb.setMemberCode("合计");
|
cmb.setMemberCode("合计");
|
||||||
cuMemberBonusExtList.add(cmb);
|
cuMemberBonusExtList.add(cmb);
|
||||||
}
|
}
|
||||||
|
|
@ -169,9 +169,9 @@ public class CuMemberBonusController extends BaseController {
|
||||||
*/
|
*/
|
||||||
@PostMapping("/export-bonus-detail")
|
@PostMapping("/export-bonus-detail")
|
||||||
@Log(module = EOperationModule.BONUS_DETAIL, method = EOperationMethod.SELECT)
|
@Log(module = EOperationModule.BONUS_DETAIL, method = EOperationMethod.SELECT)
|
||||||
public void exportBonusDetail(HttpServletResponse response, BonusParam bonusParam) {
|
public void exportBonusDetail(HttpServletResponse response, BonusParam bonusParam){
|
||||||
List<Integer> pkVertex = new ArrayList<>();
|
List<Integer> pkVertex=new ArrayList<>();
|
||||||
if (StringUtils.isNotEmpty(bonusParam.getPkBdVertexStr())) {
|
if(StringUtils.isNotEmpty(bonusParam.getPkBdVertexStr())){
|
||||||
pkVertex = Arrays.stream(bonusParam.getPkBdVertexStr().split(","))
|
pkVertex = Arrays.stream(bonusParam.getPkBdVertexStr().split(","))
|
||||||
.map(Integer::parseInt)
|
.map(Integer::parseInt)
|
||||||
.collect(Collectors.toList());
|
.collect(Collectors.toList());
|
||||||
|
|
@ -182,20 +182,20 @@ public class CuMemberBonusController extends BaseController {
|
||||||
List<CuMemberBonusExt> cuMemberBonusExtList = cuMemberBonusService.queryMemberBonusVoByConditionForServer(bonusParam);
|
List<CuMemberBonusExt> cuMemberBonusExtList = cuMemberBonusService.queryMemberBonusVoByConditionForServer(bonusParam);
|
||||||
CuMemberBonusExt cuMemberBonusExt = cuMemberBonusService.initCuMemberBonus();
|
CuMemberBonusExt cuMemberBonusExt = cuMemberBonusService.initCuMemberBonus();
|
||||||
cuMemberBonusExt.setMemberCode("小计:");
|
cuMemberBonusExt.setMemberCode("小计:");
|
||||||
if (CollectionUtil.isNotEmpty(cuMemberBonusExtList)) {
|
if(CollectionUtil.isNotEmpty(cuMemberBonusExtList)) {
|
||||||
cuMemberBonusExt.setOutExchangeRate(cuMemberBonusExtList.get(0).getOutExchangeRate());
|
cuMemberBonusExt.setOutExchangeRate(cuMemberBonusExtList.get(0).getOutExchangeRate());
|
||||||
for (CuMemberBonusExt memberBonusExt : cuMemberBonusExtList) {
|
for (CuMemberBonusExt memberBonusExt : cuMemberBonusExtList) {
|
||||||
cuMemberBonusService.calculateBonusTotal(cuMemberBonusExt, memberBonusExt);
|
cuMemberBonusService.calculateBonusTotal(cuMemberBonusExt, memberBonusExt);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
cuMemberBonusExtList.add(cuMemberBonusExt);
|
cuMemberBonusExtList.add(cuMemberBonusExt);
|
||||||
List<CuMemberBonusVO> cuMemberBonusVoList = getBonusDetail(cuMemberBonusExtList);
|
List<CuMemberBonusVO> cuMemberBonusVoList = getBonusDetail(cuMemberBonusExtList);
|
||||||
Map<String, Integer> bonusDetail = menuColumnServiceApi.queryMenuColumn("BonusDetail", SecurityUtils.getUserId()).getData();
|
Map<String, Integer> bonusDetail = menuColumnServiceApi.queryMenuColumn("BonusDetail", SecurityUtils.getUserId()).getData();
|
||||||
ExcelUtil<CuMemberBonusVO> util = new ExcelUtil<>(CuMemberBonusVO.class, bonusDetail);
|
ExcelUtil<CuMemberBonusVO> util = new ExcelUtil<>(CuMemberBonusVO.class,bonusDetail);
|
||||||
util.exportExcel(response, cuMemberBonusVoList, "奖金明细导出");
|
util.exportExcel(response, cuMemberBonusVoList, "奖金明细导出");
|
||||||
}
|
}
|
||||||
|
|
||||||
private List<CuMemberBonusVO> getBonusDetail(List<CuMemberBonusExt> cuMemberBonusExtList) {
|
private List<CuMemberBonusVO> getBonusDetail(List<CuMemberBonusExt> cuMemberBonusExtList) {
|
||||||
List<CuMemberBonusVO> cuMemberBonusVoList = new ArrayList<>(cuMemberBonusExtList.size());
|
List<CuMemberBonusVO> cuMemberBonusVoList = new ArrayList<>(cuMemberBonusExtList.size());
|
||||||
for (CuMemberBonusExt cuMemberBonusExt : cuMemberBonusExtList) {
|
for (CuMemberBonusExt cuMemberBonusExt : cuMemberBonusExtList) {
|
||||||
CuMemberBonusVO cuMemberBonusVO = BeanUtil.copyProperties(cuMemberBonusExt, CuMemberBonusVO.class);
|
CuMemberBonusVO cuMemberBonusVO = BeanUtil.copyProperties(cuMemberBonusExt, CuMemberBonusVO.class);
|
||||||
|
|
@ -203,7 +203,7 @@ public class CuMemberBonusController extends BaseController {
|
||||||
cuMemberBonusVO.setMemberCode(cuMemberBonusExt.getMemberCode());
|
cuMemberBonusVO.setMemberCode(cuMemberBonusExt.getMemberCode());
|
||||||
cuMemberBonusVO.setMemberName(cuMemberBonusExt.getMemberName());
|
cuMemberBonusVO.setMemberName(cuMemberBonusExt.getMemberName());
|
||||||
|
|
||||||
for (String key : CuMemberBonusVO.INCOME_ARRAY) {
|
for(String key :CuMemberBonusVO.INCOME_ARRAY){
|
||||||
ReflectUtils.invokeSetter(cuMemberBonusVO, key + BonusFieldConstants.INCOME_SUFFIX, ComputeUtil.computeMultiply(ReflectUtils.invokeGetter(cuMemberBonusExt, key), cuMemberBonusExt.getOutExchangeRate()));
|
ReflectUtils.invokeSetter(cuMemberBonusVO, key + BonusFieldConstants.INCOME_SUFFIX, ComputeUtil.computeMultiply(ReflectUtils.invokeGetter(cuMemberBonusExt, key), cuMemberBonusExt.getOutExchangeRate()));
|
||||||
}
|
}
|
||||||
cuMemberBonusVoList.add(cuMemberBonusVO);
|
cuMemberBonusVoList.add(cuMemberBonusVO);
|
||||||
|
|
@ -217,7 +217,7 @@ public class CuMemberBonusController extends BaseController {
|
||||||
@AccessPermissions("sourceBonus")
|
@AccessPermissions("sourceBonus")
|
||||||
@PostMapping("/query-bonus-source")
|
@PostMapping("/query-bonus-source")
|
||||||
@Log(module = EOperationModule.BONUS_SOURCE, business = EOperationBusiness.BONUS_SOURCE, method = EOperationMethod.SELECT)
|
@Log(module = EOperationModule.BONUS_SOURCE, business = EOperationBusiness.BONUS_SOURCE, method = EOperationMethod.SELECT)
|
||||||
public TableDataInfo listBonusSource(@RequestBody BonusParam bonusParam) {
|
public TableDataInfo listBonusSource(@RequestBody BonusParam bonusParam){
|
||||||
bonusParam.setPkCountry(SecurityUtils.getPkCountry());
|
bonusParam.setPkCountry(SecurityUtils.getPkCountry());
|
||||||
packageBonusParam(bonusParam);
|
packageBonusParam(bonusParam);
|
||||||
startPage();
|
startPage();
|
||||||
|
|
@ -230,7 +230,7 @@ public class CuMemberBonusController extends BaseController {
|
||||||
*/
|
*/
|
||||||
@PostMapping("/export-bonus-source")
|
@PostMapping("/export-bonus-source")
|
||||||
@Log(module = EOperationModule.BONUS_SOURCE, business = EOperationBusiness.BONUS_SOURCE, method = EOperationMethod.EXPORT)
|
@Log(module = EOperationModule.BONUS_SOURCE, business = EOperationBusiness.BONUS_SOURCE, method = EOperationMethod.EXPORT)
|
||||||
public void exportBonusSource(HttpServletResponse response, BonusParam bonusParam) {
|
public void exportBonusSource(HttpServletResponse response, BonusParam bonusParam){
|
||||||
bonusParam.setPkCountry(SecurityUtils.getPkCountry());
|
bonusParam.setPkCountry(SecurityUtils.getPkCountry());
|
||||||
packageBonusParam(bonusParam);
|
packageBonusParam(bonusParam);
|
||||||
TableDataInfo tableDataInfo = cuMemberBonusService.queryMemberBonusDetailSerVoByCondition(bonusParam);
|
TableDataInfo tableDataInfo = cuMemberBonusService.queryMemberBonusDetailSerVoByCondition(bonusParam);
|
||||||
|
|
@ -239,20 +239,20 @@ public class CuMemberBonusController extends BaseController {
|
||||||
Map<String, String> transactionMap = transactionCommonService.exportEnumTransaction(EOrderType.values(), EBonusIncomeStatus.values());
|
Map<String, String> transactionMap = transactionCommonService.exportEnumTransaction(EOrderType.values(), EBonusIncomeStatus.values());
|
||||||
Map<Integer, String> transactionLongMap = transactionCommonService.exportEnumTransactionByDB(EnumsPrefixConstants.KEY_GRADE, EnumsPrefixConstants.KEY_AWARD);
|
Map<Integer, String> transactionLongMap = transactionCommonService.exportEnumTransactionByDB(EnumsPrefixConstants.KEY_GRADE, EnumsPrefixConstants.KEY_AWARD);
|
||||||
for (MemberBonusDetailSerVO memberBonusDetailSerVO : memberBonusDetailSerVOList) {
|
for (MemberBonusDetailSerVO memberBonusDetailSerVO : memberBonusDetailSerVOList) {
|
||||||
if (transactionMap.containsKey(EnumsPrefixConstants.ORDER_TYPE + memberBonusDetailSerVO.getOrderType().toString())) {
|
if(transactionMap.containsKey(EnumsPrefixConstants.ORDER_TYPE + memberBonusDetailSerVO.getOrderType().toString())) {
|
||||||
memberBonusDetailSerVO.setOrderTypeVal(transactionMap.get(EnumsPrefixConstants.ORDER_TYPE + memberBonusDetailSerVO.getOrderType()));
|
memberBonusDetailSerVO.setOrderTypeVal(transactionMap.get(EnumsPrefixConstants.ORDER_TYPE + memberBonusDetailSerVO.getOrderType()));
|
||||||
}
|
}
|
||||||
if (transactionMap.containsKey(EnumsPrefixConstants.BONUS_INCOME_STATUS + memberBonusDetailSerVO.getIncomeStatus())) {
|
if(transactionMap.containsKey(EnumsPrefixConstants.BONUS_INCOME_STATUS + memberBonusDetailSerVO.getIncomeStatus())){
|
||||||
memberBonusDetailSerVO.setIncomeStatusVal(transactionMap.get(EnumsPrefixConstants.BONUS_INCOME_STATUS + memberBonusDetailSerVO.getIncomeStatus()));
|
memberBonusDetailSerVO.setIncomeStatusVal(transactionMap.get(EnumsPrefixConstants.BONUS_INCOME_STATUS + memberBonusDetailSerVO.getIncomeStatus()));
|
||||||
}
|
}
|
||||||
if (transactionLongMap.containsKey(memberBonusDetailSerVO.getPkSettleGrade())) {
|
if(transactionLongMap.containsKey(memberBonusDetailSerVO.getPkSettleGrade())){
|
||||||
memberBonusDetailSerVO.setPkSettleGradeVal(transactionLongMap.get(memberBonusDetailSerVO.getPkSettleGrade()));
|
memberBonusDetailSerVO.setPkSettleGradeVal(transactionLongMap.get(memberBonusDetailSerVO.getPkSettleGrade()));
|
||||||
}
|
}
|
||||||
if (transactionLongMap.containsKey(memberBonusDetailSerVO.getPkAwards())) {
|
if(transactionLongMap.containsKey(memberBonusDetailSerVO.getPkAwards())){
|
||||||
memberBonusDetailSerVO.setPkAwardsVal(transactionLongMap.get(memberBonusDetailSerVO.getPkAwards()));
|
memberBonusDetailSerVO.setPkAwardsVal(transactionLongMap.get(memberBonusDetailSerVO.getPkAwards()));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
ExcelUtil<MemberBonusDetailSerVO> util = new ExcelUtil<>(MemberBonusDetailSerVO.class, menuColumnServiceApi.queryMenuColumn("sourceBonus", SecurityUtils.getUserId()).getData());
|
ExcelUtil<MemberBonusDetailSerVO> util = new ExcelUtil<>(MemberBonusDetailSerVO.class,menuColumnServiceApi.queryMenuColumn("sourceBonus", SecurityUtils.getUserId()).getData());
|
||||||
util.exportExcel(response, memberBonusDetailSerVOList, "奖金来源导出");
|
util.exportExcel(response, memberBonusDetailSerVOList, "奖金来源导出");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -45,11 +45,11 @@ import java.util.*;
|
||||||
public abstract class BonusSettleHandle {
|
public abstract class BonusSettleHandle {
|
||||||
|
|
||||||
@DubboReference
|
@DubboReference
|
||||||
ISaOrderServiceApi saOrderServiceApi;
|
protected ISaOrderServiceApi saOrderServiceApi;
|
||||||
@DubboReference
|
@DubboReference
|
||||||
IBonusItemsServiceApi bonusItemsServiceApi;
|
protected IBonusItemsServiceApi bonusItemsServiceApi;
|
||||||
@DubboReference
|
@DubboReference
|
||||||
ICurrencyServiceApi currencyServiceApi;
|
private ICurrencyServiceApi currencyServiceApi;
|
||||||
|
|
||||||
protected ICuMemberTreeService cuMemberTreeService;
|
protected ICuMemberTreeService cuMemberTreeService;
|
||||||
|
|
||||||
|
|
@ -655,12 +655,33 @@ public abstract class BonusSettleHandle {
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 获得 直推级差收益的备注
|
|
||||||
*
|
|
||||||
* @param saOrderExt 订单编号
|
* @param saOrderExt 订单编号
|
||||||
* @param cuMemberBonusRange 报单服务费
|
* @param cuMemberBonusRange 报单服务费
|
||||||
* @param sourceMemberRangeExt 提供奖金的人
|
* @param sourceMemberRangeExt 提供奖金的人
|
||||||
* @param targetMemberRangeExt 获得奖金的人
|
* @param targetMemberRangeExt 获得奖金的人
|
||||||
|
* @Description: 获得 报单服务费收益的备注
|
||||||
|
* @return: String
|
||||||
|
* @Author: sui q
|
||||||
|
* @Date: 2022/11/17 11:22
|
||||||
|
*/
|
||||||
|
protected void rangeRemark(SaOrderExt saOrderExt, CuMemberBonusRange cuMemberBonusRange, CuMemberRangeExt sourceMemberRangeExt,
|
||||||
|
CuMemberRangeExt targetMemberRangeExt) {
|
||||||
|
String remark = String.format(BonusMsgConstants.RANGE, saOrderExt.getOrderCode(),
|
||||||
|
sourceMemberRangeExt.getMemberCode() + sourceMemberRangeExt.getMemberName(),
|
||||||
|
targetMemberRangeExt.getMemberCode() + targetMemberRangeExt.getMemberName(),
|
||||||
|
cuMemberBonusRange.getCalAchieve(), sourceMemberRangeExt.getRangeAwardsValue(), targetMemberRangeExt.getRangeAwardsValue());
|
||||||
|
cuMemberBonusRange.setRemark(remark);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param saOrderExt 订单编号
|
||||||
|
* @param cuMemberBonusRange 报单服务费
|
||||||
|
* @param sourceMemberRangeExt 提供奖金的人
|
||||||
|
* @param targetMemberRangeExt 获得奖金的人
|
||||||
|
* @Description: 获得 报单服务费收益的备注
|
||||||
|
* @return: String
|
||||||
|
* @Author: sui q
|
||||||
|
* @Date: 2022/11/17 11:22
|
||||||
*/
|
*/
|
||||||
protected void rangeRetailRemark(SaOrderExt saOrderExt, CuMemberBonusRange cuMemberBonusRange, CuMemberRetailRangeExt sourceMemberRangeExt,
|
protected void rangeRetailRemark(SaOrderExt saOrderExt, CuMemberBonusRange cuMemberBonusRange, CuMemberRetailRangeExt sourceMemberRangeExt,
|
||||||
CuMemberRetailRangeExt targetMemberRangeExt) {
|
CuMemberRetailRangeExt targetMemberRangeExt) {
|
||||||
|
|
@ -689,13 +710,32 @@ public abstract class BonusSettleHandle {
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 获得 平级收益的备注
|
* 获得 报单服务费收益的备注
|
||||||
*
|
*
|
||||||
* @param saOrderExt 订单编号
|
* @param saOrderExt 订单编号
|
||||||
* @param cuMemberBonusRange 报单服务费
|
* @param cuMemberBonusRange 报单服务费
|
||||||
* @param sourceMemberRangeExt 提供奖金的人
|
* @param sourceMemberRangeExt 提供奖金的人
|
||||||
* @param targetMemberRangeExt 获得奖金的人
|
* @param targetMemberRangeExt 获得奖金的人
|
||||||
*/
|
*/
|
||||||
|
protected void oriRangeRemark(SaOrderExt saOrderExt, CuMemberBonusRange cuMemberBonusRange, CuMemberRangeExt sourceMemberRangeExt,
|
||||||
|
CuMemberRangeExt targetMemberRangeExt) {
|
||||||
|
String remark = String.format(BonusMsgConstants.ORI_RANGE, saOrderExt.getOrderCode(),
|
||||||
|
sourceMemberRangeExt.getMemberCode() + sourceMemberRangeExt.getMemberName(),
|
||||||
|
targetMemberRangeExt.getMemberCode() + targetMemberRangeExt.getMemberName(),
|
||||||
|
cuMemberBonusRange.getCalAchieve(), targetMemberRangeExt.getRangeAwardsValue());
|
||||||
|
cuMemberBonusRange.setRemark(remark);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param saOrderExt 订单编号
|
||||||
|
* @param cuMemberBonusRange 报单服务费
|
||||||
|
* @param sourceMemberRangeExt 提供奖金的人
|
||||||
|
* @param targetMemberRangeExt 获得奖金的人
|
||||||
|
* @Description: 获得 报单服务费收益的备注
|
||||||
|
* @return: String
|
||||||
|
* @Author: sui q
|
||||||
|
* @Date: 2022/11/17 11:22
|
||||||
|
*/
|
||||||
protected void oriRetailRangeRemark(SaOrderExt saOrderExt, CuMemberBonusRange cuMemberBonusRange, CuMemberRetailRangeExt sourceMemberRangeExt,
|
protected void oriRetailRangeRemark(SaOrderExt saOrderExt, CuMemberBonusRange cuMemberBonusRange, CuMemberRetailRangeExt sourceMemberRangeExt,
|
||||||
CuMemberRetailRangeExt targetMemberRangeExt) {
|
CuMemberRetailRangeExt targetMemberRangeExt) {
|
||||||
String remark = String.format(BonusMsgConstants.ORI_RANGE, saOrderExt.getOrderCode(),
|
String remark = String.format(BonusMsgConstants.ORI_RANGE, saOrderExt.getOrderCode(),
|
||||||
|
|
|
||||||
|
|
@ -77,6 +77,8 @@ public class BonusSettleRangeHandle extends BonusSettleHandle {
|
||||||
// 会员结算map(key:会员ID,value:结算扩展)
|
// 会员结算map(key:会员ID,value:结算扩展)
|
||||||
Map<Long, CuMemberRetailRangeExt> memberRangeExtMap = new HashMap<>();
|
Map<Long, CuMemberRetailRangeExt> memberRangeExtMap = new HashMap<>();
|
||||||
|
|
||||||
|
// 购买升级等级map(key:等级值,value:等级对象)
|
||||||
|
Map<Integer, BdGrade> retaiBuyGradeMap = new TreeMap<>();
|
||||||
// 团队升级等级map(key:等级值,value:等级对象)
|
// 团队升级等级map(key:等级值,value:等级对象)
|
||||||
Map<Integer, BdGrade> retailTeamGradeMap = new TreeMap<>();
|
Map<Integer, BdGrade> retailTeamGradeMap = new TreeMap<>();
|
||||||
// 等级map(key:等级值,value:等级对象)
|
// 等级map(key:等级值,value:等级对象)
|
||||||
|
|
@ -84,6 +86,9 @@ public class BonusSettleRangeHandle extends BonusSettleHandle {
|
||||||
// 等级列表
|
// 等级列表
|
||||||
List<BdGrade> retaiGradeList = bonusConfigDTO.getRetaiGradeList();
|
List<BdGrade> retaiGradeList = bonusConfigDTO.getRetaiGradeList();
|
||||||
for (BdGrade bdGrade : retaiGradeList) {
|
for (BdGrade bdGrade : retaiGradeList) {
|
||||||
|
if (bdGrade.getBoxNumber() > 0) {
|
||||||
|
retaiBuyGradeMap.put(bdGrade.getGradeValue(), bdGrade);
|
||||||
|
}
|
||||||
if (bdGrade.getBoxTotal() > 0) {
|
if (bdGrade.getBoxTotal() > 0) {
|
||||||
retailTeamGradeMap.put(bdGrade.getGradeValue(), bdGrade);
|
retailTeamGradeMap.put(bdGrade.getGradeValue(), bdGrade);
|
||||||
}
|
}
|
||||||
|
|
@ -97,6 +102,28 @@ public class BonusSettleRangeHandle extends BonusSettleHandle {
|
||||||
|
|
||||||
for (CuMemberRetailRangeExt cuMemberRetailRangeExt : memberRetailRangeExtList) {
|
for (CuMemberRetailRangeExt cuMemberRetailRangeExt : memberRetailRangeExtList) {
|
||||||
if (!memberRangeExtMap.containsKey(cuMemberRetailRangeExt.getPkMember())) {
|
if (!memberRangeExtMap.containsKey(cuMemberRetailRangeExt.getPkMember())) {
|
||||||
|
// 会员结算map不存在这个会员,则为新会员没处理过,需要处理
|
||||||
|
cuMemberRetailRangeExt.setBuyNum(0);
|
||||||
|
// TODO new 目前一次性补差升级,不需要校验是不是当天了
|
||||||
|
cuMemberRetailRangeExt.setSameDate(EYesNo.NO.getIntValue());
|
||||||
|
// if (cuMemberRetailRangeExt.getPayTime() != null && DateUtils.compareDateEqual(DateUtils.parseStringToDate(settleDate), cuMemberRetailRangeExt.getPayTime())) {
|
||||||
|
// cuMemberRetailRangeExt.setSameDate(EYesNo.YES.getIntValue());
|
||||||
|
// } else {
|
||||||
|
// cuMemberRetailRangeExt.setSameDate(EYesNo.NO.getIntValue());
|
||||||
|
// }
|
||||||
|
for (Integer gradeValue : retaiBuyGradeMap.keySet()) {
|
||||||
|
BdGrade bdGrade = retaiBuyGradeMap.get(gradeValue);
|
||||||
|
if (bdGrade.getBoxNumber() > 0 && cuMemberRetailRangeExt.getGradeValue().equals(gradeValue)) {
|
||||||
|
// TODO new 一次性补差,需要下个等级的盒数 - 当前等级盒数???
|
||||||
|
cuMemberRetailRangeExt.setBuyNum(bdGrade.getBoxNumber());
|
||||||
|
// if (cuMemberRetailRangeExt.getSameDate().equals(EYesNo.YES.getIntValue())) {
|
||||||
|
// cuMemberRetailRangeExt.setBuyNum(cuMemberRetailRangeExt.getNewBoxNum());
|
||||||
|
// } else {
|
||||||
|
// cuMemberRetailRangeExt.setBuyNum(bdGrade.getBoxNumber());
|
||||||
|
// }
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
memberRangeExtMap.put(cuMemberRetailRangeExt.getPkMember(), cuMemberRetailRangeExt);
|
memberRangeExtMap.put(cuMemberRetailRangeExt.getPkMember(), cuMemberRetailRangeExt);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -132,7 +159,7 @@ public class BonusSettleRangeHandle extends BonusSettleHandle {
|
||||||
// 计算团队业绩、盒数,计算等级、奖衔
|
// 计算团队业绩、盒数,计算等级、奖衔
|
||||||
cuMemberAwardsList.addAll(calculateRetailRangeGradeAwards(currentPeriod, memberRangeExtMap, rangeTableName, saOrderExt, retailTeamGradeMap, retailAwardsMap, secondRangeTableName, boxNum, cuMemberGradeList));
|
cuMemberAwardsList.addAll(calculateRetailRangeGradeAwards(currentPeriod, memberRangeExtMap, rangeTableName, saOrderExt, retailTeamGradeMap, retailAwardsMap, secondRangeTableName, boxNum, cuMemberGradeList));
|
||||||
|
|
||||||
// 奖金处理
|
// TODO new 奖金处理
|
||||||
List<CuMemberBonusRange> cuMemberBonusRangeList = new ArrayList<>();
|
List<CuMemberBonusRange> cuMemberBonusRangeList = new ArrayList<>();
|
||||||
if (EOrderType.RETAIL_REGISTER.getValue() == saOrderExt.getOrderType()
|
if (EOrderType.RETAIL_REGISTER.getValue() == saOrderExt.getOrderType()
|
||||||
|| EOrderType.RETAIL_UPGRADE.getValue() == saOrderExt.getOrderType()
|
|| EOrderType.RETAIL_UPGRADE.getValue() == saOrderExt.getOrderType()
|
||||||
|
|
@ -144,8 +171,11 @@ public class BonusSettleRangeHandle extends BonusSettleHandle {
|
||||||
// 计算直推级差收益 + 平级收益
|
// 计算直推级差收益 + 平级收益
|
||||||
cuMemberBonusRangeList.addAll(calculateRetailRangeBonus(memberRangeExtMap, cuMemberBonusMap, gradeMap, bonusConfigDTO, currentPeriod, saOrderItems, saOrderExt));
|
cuMemberBonusRangeList.addAll(calculateRetailRangeBonus(memberRangeExtMap, cuMemberBonusMap, gradeMap, bonusConfigDTO, currentPeriod, saOrderItems, saOrderExt));
|
||||||
|
|
||||||
// 注册、升级 并且有盒数商品,算激活
|
if (EOrderType.RETAIL_REGISTER.getValue() == saOrderExt.getOrderType()
|
||||||
sourceMemberRangeExt.setEnableStatus(EYesNo.YES.getIntValue());
|
|| EOrderType.RETAIL_UPGRADE.getValue() == saOrderExt.getOrderType()) {
|
||||||
|
// 注册、升级,计算是否激活
|
||||||
|
sourceMemberRangeExt.setEnableStatus(EYesNo.YES.getIntValue());
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -366,7 +396,6 @@ public class BonusSettleRangeHandle extends BonusSettleHandle {
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 日结:
|
|
||||||
* 计算新零售团队的奖金,极差、平级、福利、福利分红、区域
|
* 计算新零售团队的奖金,极差、平级、福利、福利分红、区域
|
||||||
*/
|
*/
|
||||||
void calculateRetailBonusByDay(String settleDate, Map<Long, CuMemberBonus> cuMemberBonusMap, BonusConfigDTO bonusConfigDTO, BonusRecordDetailVO bonusRecordDetailVO,
|
void calculateRetailBonusByDay(String settleDate, Map<Long, CuMemberBonus> cuMemberBonusMap, BonusConfigDTO bonusConfigDTO, BonusRecordDetailVO bonusRecordDetailVO,
|
||||||
|
|
@ -415,7 +444,6 @@ public class BonusSettleRangeHandle extends BonusSettleHandle {
|
||||||
Map<Integer, BdGrade> retaiBuyGradeMap = new TreeMap<>();
|
Map<Integer, BdGrade> retaiBuyGradeMap = new TreeMap<>();
|
||||||
// 团队升级等级map(key:等级值,value:等级对象)
|
// 团队升级等级map(key:等级值,value:等级对象)
|
||||||
Map<Integer, BdGrade> retailTeamGradeMap = new TreeMap<>();
|
Map<Integer, BdGrade> retailTeamGradeMap = new TreeMap<>();
|
||||||
// 等级map(key:等级值,value:等级对象)
|
|
||||||
Map<Integer, BdGrade> gradeMap = new HashMap<>();
|
Map<Integer, BdGrade> gradeMap = new HashMap<>();
|
||||||
// 等级map(key:等级ID,value:等级对象)
|
// 等级map(key:等级ID,value:等级对象)
|
||||||
Map<Integer, BdGrade> gradeIdMap = new HashMap<>();
|
Map<Integer, BdGrade> gradeIdMap = new HashMap<>();
|
||||||
|
|
@ -442,11 +470,21 @@ public class BonusSettleRangeHandle extends BonusSettleHandle {
|
||||||
cuMemberRetailRangeExt.setBuyNum(0);
|
cuMemberRetailRangeExt.setBuyNum(0);
|
||||||
// TODO new 目前一次性补差升级,不需要校验是不是当天了
|
// TODO new 目前一次性补差升级,不需要校验是不是当天了
|
||||||
cuMemberRetailRangeExt.setSameDate(EYesNo.NO.getIntValue());
|
cuMemberRetailRangeExt.setSameDate(EYesNo.NO.getIntValue());
|
||||||
|
// if (cuMemberRetailRangeExt.getPayTime() != null && DateUtils.compareDateEqual(DateUtils.parseStringToDate(settleDate), cuMemberRetailRangeExt.getPayTime())) {
|
||||||
|
// cuMemberRetailRangeExt.setSameDate(EYesNo.YES.getIntValue());
|
||||||
|
// } else {
|
||||||
|
// cuMemberRetailRangeExt.setSameDate(EYesNo.NO.getIntValue());
|
||||||
|
// }
|
||||||
for (Integer gradeValue : retaiBuyGradeMap.keySet()) {
|
for (Integer gradeValue : retaiBuyGradeMap.keySet()) {
|
||||||
BdGrade bdGrade = retaiBuyGradeMap.get(gradeValue);
|
BdGrade bdGrade = retaiBuyGradeMap.get(gradeValue);
|
||||||
if (bdGrade.getBoxNumber() > 0 && cuMemberRetailRangeExt.getGradeValue().equals(gradeValue)) {
|
if (bdGrade.getBoxNumber() > 0 && cuMemberRetailRangeExt.getGradeValue().equals(gradeValue)) {
|
||||||
// TODO new 一次性补差,需要下个等级的盒数 - 当前等级盒数???
|
// TODO new 一次性补差,需要下个等级的盒数 - 当前等级盒数???
|
||||||
cuMemberRetailRangeExt.setBuyNum(bdGrade.getBoxNumber());
|
cuMemberRetailRangeExt.setBuyNum(bdGrade.getBoxNumber());
|
||||||
|
// if (cuMemberRetailRangeExt.getSameDate().equals(EYesNo.YES.getIntValue())) {
|
||||||
|
// cuMemberRetailRangeExt.setBuyNum(cuMemberRetailRangeExt.getNewBoxNum());
|
||||||
|
// } else {
|
||||||
|
// cuMemberRetailRangeExt.setBuyNum(bdGrade.getBoxNumber());
|
||||||
|
// }
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -503,6 +541,8 @@ public class BonusSettleRangeHandle extends BonusSettleHandle {
|
||||||
// 计算团队业绩、盒数,计算等级、奖衔
|
// 计算团队业绩、盒数,计算等级、奖衔
|
||||||
cuMemberAwardsList.addAll(calculateRetailRangeGradeAwards(period, memberRangeExtMap, rangeTableName, saOrderExt, retailTeamGradeMap, retailAwardsMap, null, boxNum, cuMemberGradeList));
|
cuMemberAwardsList.addAll(calculateRetailRangeGradeAwards(period, memberRangeExtMap, rangeTableName, saOrderExt, retailTeamGradeMap, retailAwardsMap, null, boxNum, cuMemberGradeList));
|
||||||
|
|
||||||
|
|
||||||
|
// TODO new 奖金处理
|
||||||
// 计算奖金 直推级差 + 平级收益
|
// 计算奖金 直推级差 + 平级收益
|
||||||
if ((EOrderType.RETAIL_REGISTER.getValue() == saOrderExt.getOrderType()
|
if ((EOrderType.RETAIL_REGISTER.getValue() == saOrderExt.getOrderType()
|
||||||
|| EOrderType.RETAIL_UPGRADE.getValue() == saOrderExt.getOrderType())
|
|| EOrderType.RETAIL_UPGRADE.getValue() == saOrderExt.getOrderType())
|
||||||
|
|
@ -1268,20 +1308,20 @@ public class BonusSettleRangeHandle extends BonusSettleHandle {
|
||||||
CuMemberRetailRangeExt sourceMemberRangeExt = memberRangeExtMap.get(saOrderExt.getPkMember());
|
CuMemberRetailRangeExt sourceMemberRangeExt = memberRangeExtMap.get(saOrderExt.getPkMember());
|
||||||
// 推荐人
|
// 推荐人
|
||||||
long pkParent = sourceMemberRangeExt.getPkParent();
|
long pkParent = sourceMemberRangeExt.getPkParent();
|
||||||
|
// 商品价格(没有乘商品数量)
|
||||||
// // 商品价格
|
|
||||||
// BigDecimal beginBuyPrice = saOrderItems.getWaresPrice();
|
|
||||||
// BigDecimal comBuyPrice = saOrderItems.getWaresPrice();
|
|
||||||
//
|
|
||||||
// // 开始计算等级值
|
|
||||||
// int beginGradeValue = sourceMemberRangeExt.getGradeValue();
|
|
||||||
// // 直推级差收益
|
|
||||||
// BigDecimal calBonusIncome = BigDecimal.ZERO;
|
|
||||||
|
|
||||||
// 商品最终价格
|
|
||||||
BigDecimal waresPrice = saOrderItems.getWaresPrice();
|
BigDecimal waresPrice = saOrderItems.getWaresPrice();
|
||||||
// 商品数量
|
// 商品数量
|
||||||
BigDecimal waresQuantityBig = new BigDecimal(saOrderItems.getWaresQuantity());
|
Integer waresQuantity = saOrderItems.getWaresQuantity();
|
||||||
|
|
||||||
|
// 商品价格
|
||||||
|
BigDecimal beginBuyPrice = saOrderItems.getWaresPrice();
|
||||||
|
BigDecimal comBuyPrice = saOrderItems.getWaresPrice();
|
||||||
|
|
||||||
|
// 开始计算等级值
|
||||||
|
int beginGradeValue = sourceMemberRangeExt.getGradeValue();
|
||||||
|
// 直推级差收益
|
||||||
|
BigDecimal calBonusIncome = BigDecimal.ZERO;
|
||||||
|
|
||||||
// 前一个会员等级
|
// 前一个会员等级
|
||||||
int beforeGradeValue = 0;
|
int beforeGradeValue = 0;
|
||||||
// 前一个会员等级的平级收益人数
|
// 前一个会员等级的平级收益人数
|
||||||
|
|
@ -1308,8 +1348,6 @@ public class BonusSettleRangeHandle extends BonusSettleHandle {
|
||||||
}
|
}
|
||||||
// 当前会员等级值
|
// 当前会员等级值
|
||||||
int calGradeValue = targetMemberRangeExt.getGradeValue();
|
int calGradeValue = targetMemberRangeExt.getGradeValue();
|
||||||
// 当前会员等级
|
|
||||||
BdGrade bdGrade = gradeMap.get(calGradeValue);
|
|
||||||
|
|
||||||
// 直推级差税前收益
|
// 直推级差税前收益
|
||||||
BigDecimal rangeBonusIncome = null;
|
BigDecimal rangeBonusIncome = null;
|
||||||
|
|
@ -1320,19 +1358,19 @@ public class BonusSettleRangeHandle extends BonusSettleHandle {
|
||||||
// 前一个会员等级为0,肯定为第一次处理,直接处理直推级差收益
|
// 前一个会员等级为0,肯定为第一次处理,直接处理直推级差收益
|
||||||
if (EGrade.HAI_FAN.getValue() == calGradeValue) {
|
if (EGrade.HAI_FAN.getValue() == calGradeValue) {
|
||||||
// VIP,拿1份40
|
// VIP,拿1份40
|
||||||
rangeBonusIncome = RetailConstants.RANGE_BONUS.multiply(waresQuantityBig);
|
rangeBonusIncome = RetailConstants.RANGE_BONUS;
|
||||||
} else if (EGrade.YOU_KE.getValue() == calGradeValue) {
|
} else if (EGrade.YOU_KE.getValue() == calGradeValue) {
|
||||||
// SVIP,拿2份40
|
// SVIP,拿2份40
|
||||||
rangeBonusIncome = RetailConstants.RANGE_BONUS.multiply(waresQuantityBig).multiply(new BigDecimal("2"));
|
rangeBonusIncome = RetailConstants.RANGE_BONUS.multiply(new BigDecimal("2"));
|
||||||
} else if (EGrade.MAKER.getValue() == calGradeValue) {
|
} else if (EGrade.MAKER.getValue() == calGradeValue) {
|
||||||
// 卓越,拿3份40
|
// 卓越,拿3份40
|
||||||
rangeBonusIncome = RetailConstants.RANGE_BONUS.multiply(waresQuantityBig).multiply(new BigDecimal("3"));
|
rangeBonusIncome = RetailConstants.RANGE_BONUS.multiply(new BigDecimal("3"));
|
||||||
} else if (EGrade.VIP.getValue() == calGradeValue) {
|
} else if (EGrade.VIP.getValue() == calGradeValue) {
|
||||||
// 首席,拿4份40
|
// 首席,拿4份40
|
||||||
rangeBonusIncome = RetailConstants.RANGE_BONUS.multiply(waresQuantityBig).multiply(new BigDecimal("4"));
|
rangeBonusIncome = RetailConstants.RANGE_BONUS.multiply(new BigDecimal("4"));
|
||||||
} else if (EGrade.S_VIP.getValue() == calGradeValue) {
|
} else if (EGrade.S_VIP.getValue() == calGradeValue) {
|
||||||
// 合伙人,拿5份40
|
// 合伙人,拿5份40
|
||||||
rangeBonusIncome = RetailConstants.RANGE_BONUS.multiply(waresQuantityBig).multiply(new BigDecimal("5"));
|
rangeBonusIncome = RetailConstants.RANGE_BONUS.multiply(new BigDecimal("5"));
|
||||||
}
|
}
|
||||||
// 赋值前一个会员等级
|
// 赋值前一个会员等级
|
||||||
beforeGradeValue = calGradeValue;
|
beforeGradeValue = calGradeValue;
|
||||||
|
|
@ -1342,12 +1380,8 @@ public class BonusSettleRangeHandle extends BonusSettleHandle {
|
||||||
// V1 没有平级收益
|
// V1 没有平级收益
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
if (beforeSameAlgebra >= bdGrade.getAlgebra()) {
|
if (beforeSameAlgebra >= RetailConstants.SAME_ALGEBRA) {
|
||||||
// 平级收益已经满10代,不继续处理平级收益
|
// 平级收益已经满10代,不继续处理平级收益
|
||||||
if (EGrade.S_VIP.getValue() == beforeGradeValue) {
|
|
||||||
// 平级处理等级为最高级V5,则结束处理
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
// 平级收益(商品价格 * 千分之五) -- 2位小数,四舍五入
|
// 平级收益(商品价格 * 千分之五) -- 2位小数,四舍五入
|
||||||
|
|
@ -1361,7 +1395,7 @@ public class BonusSettleRangeHandle extends BonusSettleHandle {
|
||||||
int tmpGradeVal = (calGradeValue - beforeGradeValue) / 10;
|
int tmpGradeVal = (calGradeValue - beforeGradeValue) / 10;
|
||||||
|
|
||||||
// 新等级的直推级差收益
|
// 新等级的直推级差收益
|
||||||
rangeBonusIncome = RetailConstants.RANGE_BONUS.multiply(waresQuantityBig).multiply(new BigDecimal(tmpGradeVal));
|
rangeBonusIncome = RetailConstants.RANGE_BONUS.multiply(new BigDecimal(tmpGradeVal));
|
||||||
// 直推级差收益 = 新等级的直推级差收益 - 上一等级的平级收益
|
// 直推级差收益 = 新等级的直推级差收益 - 上一等级的平级收益
|
||||||
rangeBonusIncome = rangeBonusIncome.subtract(beforeSameBonus);
|
rangeBonusIncome = rangeBonusIncome.subtract(beforeSameBonus);
|
||||||
|
|
||||||
|
|
@ -1382,8 +1416,7 @@ public class BonusSettleRangeHandle extends BonusSettleHandle {
|
||||||
int pkBonusItems = getPkBonusItems(bonusConfigDTO, targetMemberRangeExt.getPkSettleCountry(), EBonusItems.RETAIL_RANGE_INCOME.getValue());
|
int pkBonusItems = getPkBonusItems(bonusConfigDTO, targetMemberRangeExt.getPkSettleCountry(), EBonusItems.RETAIL_RANGE_INCOME.getValue());
|
||||||
CuMemberBonusRange cuMemberBonusRange = getCuMemberRetailBonusRange(saOrderExt, targetMemberRangeExt, cuMemberBonus, pkBonusItems);
|
CuMemberBonusRange cuMemberBonusRange = getCuMemberRetailBonusRange(saOrderExt, targetMemberRangeExt, cuMemberBonus, pkBonusItems);
|
||||||
cuMemberBonusRange.setCalValue(BigDecimal.ZERO);
|
cuMemberBonusRange.setCalValue(BigDecimal.ZERO);
|
||||||
cuMemberBonusRange.setCalAchieve(waresPrice);
|
cuMemberBonusRange.setPretaxIncome(rangeBonusIncome.multiply(new BigDecimal(waresQuantity)));
|
||||||
cuMemberBonusRange.setPretaxIncome(rangeBonusIncome);
|
|
||||||
cuMemberBonusRange.setPkRange(targetMemberRangeExt.getPkGrade());
|
cuMemberBonusRange.setPkRange(targetMemberRangeExt.getPkGrade());
|
||||||
cuMemberBonusRange.setPkBeforeRange(sourceMemberRangeExt.getPkGrade());
|
cuMemberBonusRange.setPkBeforeRange(sourceMemberRangeExt.getPkGrade());
|
||||||
cuMemberBonusRange.setPkOrderItems(saOrderItems.getPkId());
|
cuMemberBonusRange.setPkOrderItems(saOrderItems.getPkId());
|
||||||
|
|
@ -1401,9 +1434,8 @@ public class BonusSettleRangeHandle extends BonusSettleHandle {
|
||||||
targetMemberRangeExt.getIncomeStatus(), targetMemberRangeExt.getPkSettleCountry(), targetMemberRangeExt.getPkRate() == null ? saOrderExt.getPkRate() : targetMemberRangeExt.getPkRate());
|
targetMemberRangeExt.getIncomeStatus(), targetMemberRangeExt.getPkSettleCountry(), targetMemberRangeExt.getPkRate() == null ? saOrderExt.getPkRate() : targetMemberRangeExt.getPkRate());
|
||||||
int pkBonusItems = getPkBonusItems(bonusConfigDTO, targetMemberRangeExt.getPkSettleCountry(), EBonusItems.RETAIL_SAME_LEVEL_INCOME.getValue());
|
int pkBonusItems = getPkBonusItems(bonusConfigDTO, targetMemberRangeExt.getPkSettleCountry(), EBonusItems.RETAIL_SAME_LEVEL_INCOME.getValue());
|
||||||
CuMemberBonusRange oriMemberBonusRange = getCuMemberRetailBonusRange(saOrderExt, targetMemberRangeExt, cuMemberBonus, pkBonusItems);
|
CuMemberBonusRange oriMemberBonusRange = getCuMemberRetailBonusRange(saOrderExt, targetMemberRangeExt, cuMemberBonus, pkBonusItems);
|
||||||
oriMemberBonusRange.setCalValue(RetailConstants.SAME_RATIO);
|
oriMemberBonusRange.setCalValue(BigDecimal.valueOf(2));
|
||||||
oriMemberBonusRange.setCalAchieve(waresPrice);
|
oriMemberBonusRange.setPretaxIncome(sameBonusIncome.multiply(new BigDecimal(waresQuantity)));
|
||||||
oriMemberBonusRange.setPretaxIncome(sameBonusIncome);
|
|
||||||
oriMemberBonusRange.setPkRange(targetMemberRangeExt.getPkGrade());
|
oriMemberBonusRange.setPkRange(targetMemberRangeExt.getPkGrade());
|
||||||
oriMemberBonusRange.setPkBeforeRange(sourceMemberRangeExt.getPkGrade());
|
oriMemberBonusRange.setPkBeforeRange(sourceMemberRangeExt.getPkGrade());
|
||||||
oriMemberBonusRange.setPkOrderItems(saOrderItems.getPkId());
|
oriMemberBonusRange.setPkOrderItems(saOrderItems.getPkId());
|
||||||
|
|
@ -1416,127 +1448,135 @@ public class BonusSettleRangeHandle extends BonusSettleHandle {
|
||||||
memberBonusRangeList.add(oriMemberBonusRange);
|
memberBonusRangeList.add(oriMemberBonusRange);
|
||||||
}
|
}
|
||||||
|
|
||||||
// // 如果价格是209,代表是第一单激活,只有平级收益,只有V5有平级收益
|
///////////////////////////////////////////////////////////////
|
||||||
// if (beginBuyPrice.equals(BigDecimal.valueOf(209))) {
|
|
||||||
// calGradeValue = EGrade.S_VIP.getValue();
|
|
||||||
// if (beginGradeValue < EGrade.S_VIP.getValue()) {
|
// 如果价格是209,代表是第一单激活,只有平级收益,只有V5有平级收益
|
||||||
// beginGradeValue = EGrade.S_VIP.getValue();
|
if (beginBuyPrice.equals(BigDecimal.valueOf(209))) {
|
||||||
// }
|
calGradeValue = EGrade.S_VIP.getValue();
|
||||||
// }
|
if (beginGradeValue < EGrade.S_VIP.getValue()) {
|
||||||
// BdGrade bdGrade = gradeMap.get(calGradeValue);
|
beginGradeValue = EGrade.S_VIP.getValue();
|
||||||
// BigDecimal buyPrice = bdGrade.getBuyPrice();
|
}
|
||||||
// boolean isRange = Boolean.FALSE;
|
}
|
||||||
// // 有极差或者有平级
|
BdGrade bdGrade = gradeMap.get(calGradeValue);
|
||||||
// if (ComputeUtil.compareGreaterThan(beginBuyPrice, buyPrice)) {
|
BigDecimal buyPrice = bdGrade.getBuyPrice();
|
||||||
// // 计算极差
|
boolean isRange = Boolean.FALSE;
|
||||||
// CuMemberBonus cuMemberBonus = getCuMemberBonus(period, cuMemberBonusMap, targetMemberRangeExt.getPkMember(),
|
// 有极差或者有平级
|
||||||
// targetMemberRangeExt.getIncomeStatus(), targetMemberRangeExt.getPkSettleCountry(), targetMemberRangeExt.getPkRate() == null ? saOrderExt.getPkRate() : targetMemberRangeExt.getPkRate());
|
if (ComputeUtil.compareGreaterThan(beginBuyPrice, buyPrice)) {
|
||||||
// int pkBonusItems = getPkBonusItems(bonusConfigDTO, targetMemberRangeExt.getPkSettleCountry(), EBonusItems.RETAIL_RANGE_INCOME.getValue());
|
// 计算极差
|
||||||
// CuMemberBonusRange cuMemberBonusRange = getCuMemberRetailBonusRange(saOrderExt, targetMemberRangeExt, cuMemberBonus, pkBonusItems);
|
|
||||||
// cuMemberBonusRange.setCalValue(BigDecimal.ZERO);
|
CuMemberBonus cuMemberBonus = getCuMemberBonus(period, cuMemberBonusMap, targetMemberRangeExt.getPkMember(),
|
||||||
// cuMemberBonusRange.setPretaxIncome(ComputeUtil.computeDivide(ComputeUtil.computeMultiply(ComputeUtil.computeSubtract(ComputeUtil.computeSubtract(beginBuyPrice, buyPrice), calBonusIncome), saOrderItems.getWaresQuantity()), BigDecimal.ONE));
|
targetMemberRangeExt.getIncomeStatus(), targetMemberRangeExt.getPkSettleCountry(), targetMemberRangeExt.getPkRate() == null ? saOrderExt.getPkRate() : targetMemberRangeExt.getPkRate());
|
||||||
// cuMemberBonusRange.setPkRange(targetMemberRangeExt.getPkGrade());
|
int pkBonusItems = getPkBonusItems(bonusConfigDTO, targetMemberRangeExt.getPkSettleCountry(), EBonusItems.RETAIL_RANGE_INCOME.getValue());
|
||||||
// cuMemberBonusRange.setPkBeforeRange(sourceMemberRangeExt.getPkGrade());
|
CuMemberBonusRange cuMemberBonusRange = getCuMemberRetailBonusRange(saOrderExt, targetMemberRangeExt, cuMemberBonus, pkBonusItems);
|
||||||
// cuMemberBonusRange.setPkOrderItems(saOrderItems.getPkId());
|
cuMemberBonusRange.setCalValue(BigDecimal.ZERO);
|
||||||
// rangeRetailRemark(saOrderExt, cuMemberBonusRange, sourceMemberRangeExt, targetMemberRangeExt);
|
cuMemberBonusRange.setPretaxIncome(ComputeUtil.computeDivide(ComputeUtil.computeMultiply(ComputeUtil.computeSubtract(ComputeUtil.computeSubtract(beginBuyPrice, buyPrice), calBonusIncome), saOrderItems.getWaresQuantity()), BigDecimal.ONE));
|
||||||
// BdBonusDeduct bdBonusDeduct = setBonusDetailDeduct(bonusConfigDTO, cuMemberBonusRange, saOrderExt.getOrderAmount(), saOrderExt.getInExchangeRate());
|
cuMemberBonusRange.setPkRange(targetMemberRangeExt.getPkGrade());
|
||||||
// if (EBonusIncomeStatus.NORMAL.getValue() == cuMemberBonusRange.getIncomeStatus()) {
|
cuMemberBonusRange.setPkBeforeRange(sourceMemberRangeExt.getPkGrade());
|
||||||
// cuMemberBonus.setRetailRangeIncome(ComputeUtil.computeAdd(cuMemberBonus.getRetailRangeIncome(), cuMemberBonusRange.getPretaxIncome()));
|
cuMemberBonusRange.setPkOrderItems(saOrderItems.getPkId());
|
||||||
// setRetailTotal(bdBonusDeduct, cuMemberBonus, cuMemberBonusRange);
|
rangeRetailRemark(saOrderExt, cuMemberBonusRange, sourceMemberRangeExt, targetMemberRangeExt);
|
||||||
// }
|
BdBonusDeduct bdBonusDeduct = setBonusDetailDeduct(bonusConfigDTO, cuMemberBonusRange, saOrderExt.getOrderAmount(), saOrderExt.getInExchangeRate());
|
||||||
// memberBonusRangeList.add(cuMemberBonusRange);
|
if (EBonusIncomeStatus.NORMAL.getValue() == cuMemberBonusRange.getIncomeStatus()) {
|
||||||
//
|
cuMemberBonus.setRetailRangeIncome(ComputeUtil.computeAdd(cuMemberBonus.getRetailRangeIncome(), cuMemberBonusRange.getPretaxIncome()));
|
||||||
// beginBuyPrice = buyPrice;
|
setRetailTotal(bdBonusDeduct, cuMemberBonus, cuMemberBonusRange);
|
||||||
// comBuyPrice = buyPrice;
|
}
|
||||||
// beginGradeValue = calGradeValue;
|
memberBonusRangeList.add(cuMemberBonusRange);
|
||||||
// sourceMemberRangeExt = targetMemberRangeExt;
|
|
||||||
// calBonusIncome = BigDecimal.ZERO;
|
beginBuyPrice = buyPrice;
|
||||||
// } else {
|
comBuyPrice = buyPrice;
|
||||||
// isRange = Boolean.TRUE;
|
beginGradeValue = calGradeValue;
|
||||||
// pkParent = targetMemberRangeExt.getPkMember();
|
sourceMemberRangeExt = targetMemberRangeExt;
|
||||||
// }
|
calBonusIncome = BigDecimal.ZERO;
|
||||||
// if (saOrderExt.getOrderType().equals(EOrderType.RETAIL_CONSUME.getValue())) {
|
} else {
|
||||||
// if (isRange) {
|
isRange = Boolean.TRUE;
|
||||||
// pkParent = targetMemberRangeExt.getPkParent();
|
pkParent = targetMemberRangeExt.getPkMember();
|
||||||
// }
|
}
|
||||||
// continue;
|
if (saOrderExt.getOrderType().equals(EOrderType.RETAIL_CONSUME.getValue())) {
|
||||||
// }
|
if (isRange) {
|
||||||
// if (bdGrade.getAlgebra() > 0) {
|
pkParent = targetMemberRangeExt.getPkParent();
|
||||||
// Long lastPkParent = pkParent;
|
}
|
||||||
// for (int j = 0; j < bdGrade.getAlgebra(); j++) {
|
continue;
|
||||||
// targetMemberRangeExt = memberRangeExtMap.get(lastPkParent);
|
}
|
||||||
// if (targetMemberRangeExt == null) {
|
if (bdGrade.getAlgebra() > 0) {
|
||||||
// if (memberRangeExtMap.get(pkParent) == null) {
|
Long lastPkParent = pkParent;
|
||||||
// break;
|
for (int j = 0; j < bdGrade.getAlgebra(); j++) {
|
||||||
// }
|
targetMemberRangeExt = memberRangeExtMap.get(lastPkParent);
|
||||||
// pkParent = memberRangeExtMap.get(pkParent).getPkParent();
|
if (targetMemberRangeExt == null) {
|
||||||
// break;
|
if (memberRangeExtMap.get(pkParent) == null) {
|
||||||
// }
|
break;
|
||||||
// calGradeValue = targetMemberRangeExt.getGradeValue();
|
}
|
||||||
// BigDecimal sameBuyPrice = gradeMap.get(calGradeValue).getBuyPrice();
|
pkParent = memberRangeExtMap.get(pkParent).getPkParent();
|
||||||
// // 有平级
|
break;
|
||||||
// if (ComputeUtil.compareGreaterThan(sameBuyPrice, comBuyPrice)) {
|
}
|
||||||
|
calGradeValue = targetMemberRangeExt.getGradeValue();
|
||||||
|
BigDecimal sameBuyPrice = gradeMap.get(calGradeValue).getBuyPrice();
|
||||||
|
// 有平级
|
||||||
|
// if (calGradeValue < beginGradeValue) {
|
||||||
|
if (ComputeUtil.compareGreaterThan(sameBuyPrice, comBuyPrice)) {
|
||||||
|
lastPkParent = targetMemberRangeExt.getPkParent();
|
||||||
|
pkParent = targetMemberRangeExt.getPkParent();
|
||||||
|
j--;
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
if (ComputeUtil.compareGreaterThan(beginBuyPrice, sameBuyPrice)) {
|
||||||
|
pkParent = lastPkParent;
|
||||||
|
break;
|
||||||
// lastPkParent = targetMemberRangeExt.getPkParent();
|
// lastPkParent = targetMemberRangeExt.getPkParent();
|
||||||
// pkParent = targetMemberRangeExt.getPkParent();
|
|
||||||
// j--;
|
// j--;
|
||||||
// continue;
|
// continue;
|
||||||
// }
|
}
|
||||||
// if (ComputeUtil.compareGreaterThan(beginBuyPrice, sameBuyPrice)) {
|
lastPkParent = targetMemberRangeExt.getPkParent();
|
||||||
// pkParent = lastPkParent;
|
if (EAccountStatus.STOP_INCOME.getValue() == targetMemberRangeExt.getAccountStatus() ||
|
||||||
// break;
|
ECategory.NORMAL.getValue() != targetMemberRangeExt.getCategory() ||
|
||||||
// }
|
targetMemberRangeExt.getEnableStatus() == EYesNo.NO.getIntValue() ||
|
||||||
// lastPkParent = targetMemberRangeExt.getPkParent();
|
EIncomeStatus.STOP_INCOME.getValue() == targetMemberRangeExt.getIncomeStatus()) {
|
||||||
// if (EAccountStatus.STOP_INCOME.getValue() == targetMemberRangeExt.getAccountStatus() ||
|
j--;
|
||||||
// ECategory.NORMAL.getValue() != targetMemberRangeExt.getCategory() ||
|
continue;
|
||||||
// targetMemberRangeExt.getEnableStatus() == EYesNo.NO.getIntValue() ||
|
}
|
||||||
// EIncomeStatus.STOP_INCOME.getValue() == targetMemberRangeExt.getIncomeStatus()) {
|
BigDecimal bonusIncome = BigDecimal.ZERO;
|
||||||
// j--;
|
if (j == 0) {
|
||||||
// continue;
|
bonusIncome = bdGrade.getFirstAlgebra();
|
||||||
// }
|
} else if (j == 1) {
|
||||||
// BigDecimal bonusIncome = BigDecimal.ZERO;
|
bonusIncome = bdGrade.getSecondAlgebra();
|
||||||
// if (j == 0) {
|
} else if (j == 2) {
|
||||||
// bonusIncome = bdGrade.getFirstAlgebra();
|
bonusIncome = bdGrade.getThirdAlgebra();
|
||||||
// } else if (j == 1) {
|
}
|
||||||
// bonusIncome = bdGrade.getSecondAlgebra();
|
if (ComputeUtil.compareEqual(beginBuyPrice, sameBuyPrice)) {
|
||||||
// } else if (j == 2) {
|
CuMemberBonus cuMemberBonus = getCuMemberBonus(period, cuMemberBonusMap, targetMemberRangeExt.getPkMember(),
|
||||||
// bonusIncome = bdGrade.getThirdAlgebra();
|
targetMemberRangeExt.getIncomeStatus(), targetMemberRangeExt.getPkSettleCountry(), targetMemberRangeExt.getPkRate() == null ? saOrderExt.getPkRate() : targetMemberRangeExt.getPkRate());
|
||||||
// }
|
int pkBonusItems = getPkBonusItems(bonusConfigDTO, targetMemberRangeExt.getPkSettleCountry(), EBonusItems.RETAIL_SAME_LEVEL_INCOME.getValue());
|
||||||
// if (ComputeUtil.compareEqual(beginBuyPrice, sameBuyPrice)) {
|
CuMemberBonusRange oriMemberBonusRange = getCuMemberRetailBonusRange(saOrderExt, targetMemberRangeExt, cuMemberBonus, pkBonusItems);
|
||||||
// CuMemberBonus cuMemberBonus = getCuMemberBonus(period, cuMemberBonusMap, targetMemberRangeExt.getPkMember(),
|
oriMemberBonusRange.setCalValue(BigDecimal.valueOf(10));
|
||||||
// targetMemberRangeExt.getIncomeStatus(), targetMemberRangeExt.getPkSettleCountry(), targetMemberRangeExt.getPkRate() == null ? saOrderExt.getPkRate() : targetMemberRangeExt.getPkRate());
|
oriMemberBonusRange.setPretaxIncome(ComputeUtil.computeDivide(ComputeUtil.computeMultiply(bonusIncome, saOrderItems.getWaresQuantity()), BigDecimal.ONE));
|
||||||
// int pkBonusItems = getPkBonusItems(bonusConfigDTO, targetMemberRangeExt.getPkSettleCountry(), EBonusItems.RETAIL_SAME_LEVEL_INCOME.getValue());
|
oriMemberBonusRange.setPkRange(targetMemberRangeExt.getPkGrade());
|
||||||
// CuMemberBonusRange oriMemberBonusRange = getCuMemberRetailBonusRange(saOrderExt, targetMemberRangeExt, cuMemberBonus, pkBonusItems);
|
oriMemberBonusRange.setPkBeforeRange(sourceMemberRangeExt.getPkGrade());
|
||||||
// oriMemberBonusRange.setCalValue(BigDecimal.valueOf(10));
|
oriMemberBonusRange.setPkOrderItems(saOrderItems.getPkId());
|
||||||
// oriMemberBonusRange.setPretaxIncome(ComputeUtil.computeDivide(ComputeUtil.computeMultiply(bonusIncome, saOrderItems.getWaresQuantity()), BigDecimal.ONE));
|
oriRetailRangeRemark(saOrderExt, oriMemberBonusRange, sourceMemberRangeExt, targetMemberRangeExt);
|
||||||
// oriMemberBonusRange.setPkRange(targetMemberRangeExt.getPkGrade());
|
BdBonusDeduct bdBonusDeduct = setBonusDetailDeduct(bonusConfigDTO, oriMemberBonusRange, saOrderExt.getOrderAmount(), saOrderExt.getInExchangeRate());
|
||||||
// oriMemberBonusRange.setPkBeforeRange(sourceMemberRangeExt.getPkGrade());
|
if (EBonusIncomeStatus.NORMAL.getValue() == oriMemberBonusRange.getIncomeStatus()) {
|
||||||
// oriMemberBonusRange.setPkOrderItems(saOrderItems.getPkId());
|
cuMemberBonus.setRetailSameLevelIncome(ComputeUtil.computeAdd(cuMemberBonus.getRetailSameLevelIncome(), oriMemberBonusRange.getPretaxIncome()));
|
||||||
// oriRetailRangeRemark(saOrderExt, oriMemberBonusRange, sourceMemberRangeExt, targetMemberRangeExt);
|
setRetailTotal(bdBonusDeduct, cuMemberBonus, oriMemberBonusRange);
|
||||||
// BdBonusDeduct bdBonusDeduct = setBonusDetailDeduct(bonusConfigDTO, oriMemberBonusRange, saOrderExt.getOrderAmount(), saOrderExt.getInExchangeRate());
|
}
|
||||||
// if (EBonusIncomeStatus.NORMAL.getValue() == oriMemberBonusRange.getIncomeStatus()) {
|
memberBonusRangeList.add(oriMemberBonusRange);
|
||||||
// cuMemberBonus.setRetailSameLevelIncome(ComputeUtil.computeAdd(cuMemberBonus.getRetailSameLevelIncome(), oriMemberBonusRange.getPretaxIncome()));
|
calBonusIncome = ComputeUtil.computeAdd(calBonusIncome, bonusIncome);
|
||||||
// setRetailTotal(bdBonusDeduct, cuMemberBonus, oriMemberBonusRange);
|
pkParent = lastPkParent;
|
||||||
// }
|
} else {
|
||||||
// memberBonusRangeList.add(oriMemberBonusRange);
|
j--;
|
||||||
// calBonusIncome = ComputeUtil.computeAdd(calBonusIncome, bonusIncome);
|
}
|
||||||
// pkParent = lastPkParent;
|
if (j == bdGrade.getAlgebra() - 1) {
|
||||||
// } else {
|
beginGradeValue += 1;
|
||||||
// j--;
|
comBuyPrice = ComputeUtil.computeSubtract(comBuyPrice, BigDecimal.ONE);
|
||||||
// }
|
break;
|
||||||
// if (j == bdGrade.getAlgebra() - 1) {
|
}
|
||||||
// beginGradeValue += 1;
|
}
|
||||||
// comBuyPrice = ComputeUtil.computeSubtract(comBuyPrice, BigDecimal.ONE);
|
} else {
|
||||||
// break;
|
if (isRange) {
|
||||||
// }
|
pkParent = targetMemberRangeExt.getPkParent();
|
||||||
// }
|
}
|
||||||
// } else {
|
}
|
||||||
// if (isRange) {
|
if (beginGradeValue > EGrade.S_VIP.getValue()) {
|
||||||
// pkParent = targetMemberRangeExt.getPkParent();
|
break;
|
||||||
// }
|
}
|
||||||
// }
|
|
||||||
// if (beginGradeValue > EGrade.S_VIP.getValue()) {
|
|
||||||
// break;
|
|
||||||
// }
|
|
||||||
}
|
}
|
||||||
return memberBonusRangeList;
|
return memberBonusRangeList;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -9,11 +9,27 @@ import java.math.BigDecimal;
|
||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 奖金明细表
|
* @description: 奖金明细表
|
||||||
|
* @author: sui q
|
||||||
|
* @time: 2023/5/20 15:31
|
||||||
|
* @classname: CuMemberBonusVO
|
||||||
|
* @package_name: com.hzs.member.bonus.vo
|
||||||
|
* version 1.0.0
|
||||||
*/
|
*/
|
||||||
@Data
|
@Data
|
||||||
public class CuMemberBonusVO implements Serializable {
|
public class CuMemberBonusVO implements Serializable {
|
||||||
|
|
||||||
|
// /**
|
||||||
|
// * 需要转换人民币的
|
||||||
|
// */
|
||||||
|
// public static final String[] INCOME_ARRAY = new String[]{
|
||||||
|
// "directIncome", "expandIncome", "expandNoCapping", "expandCapping",
|
||||||
|
// "coachIncome", "shareIncome", "serviceIncome", "cloudDirectIncome",
|
||||||
|
// "cloudPurIncome", "cloudRepurIncome", "repurPushIncome", "repurRangeIncome", "repurExpandIncome",
|
||||||
|
// "repurCoupon", "repurCouponShare", "backPoints", "serviceSpend",
|
||||||
|
// "globalPoints", "carAwardPoints", "storeIncome", "hiFunIncome",
|
||||||
|
// "makerDirectIncome", "makerShareIncome", "makerRealSubtotal", "purRealSubtotal",
|
||||||
|
// "cloudRealSubtotal", "repurRealSubtotal", "repurCouponSubtotal", "realIncomeTotal"};
|
||||||
/**
|
/**
|
||||||
* 主键
|
* 主键
|
||||||
*/
|
*/
|
||||||
|
|
@ -86,60 +102,185 @@ public class CuMemberBonusVO implements Serializable {
|
||||||
*/
|
*/
|
||||||
private Integer grantStatus;
|
private Integer grantStatus;
|
||||||
|
|
||||||
/**
|
// /**
|
||||||
* 需要转换人民币的
|
// * 直推收益
|
||||||
*/
|
// */
|
||||||
public static final String[] INCOME_ARRAY = new String[]{
|
// @Excel(name = "直推收益", scale = 2)
|
||||||
"backPoints", "retailRangeIncome", "retailSameLevelIncome", "retailAreaIncome",
|
// private BigDecimal directIncomeOri;
|
||||||
"retailBenefitRangeIncome", "retailBenefitAvgIncome",
|
//
|
||||||
"retailBenefitIncome", "retailRealSubtotal", "realIncomeTotal"};
|
// /**
|
||||||
|
// * 直推收益
|
||||||
|
// */
|
||||||
private BigDecimal retailRangeIncome;
|
// @Excel(name = "直推收益($)", scale = 2)
|
||||||
/**
|
// private BigDecimal directIncome;
|
||||||
* 直推收益
|
//
|
||||||
*/
|
// /**
|
||||||
@Excel(name = "直推收益", scale = 2)
|
// * 拓展收益
|
||||||
private BigDecimal retailRangeIncomeOri;
|
// */
|
||||||
|
// @Excel(name = "拓展收益", scale = 2)
|
||||||
private BigDecimal retailSameLevelIncome;
|
// private BigDecimal expandIncomeOri;
|
||||||
/**
|
//
|
||||||
* 平级收益
|
// /**
|
||||||
*/
|
// * 拓展收益
|
||||||
@Excel(name = "平级收益", scale = 2)
|
// */
|
||||||
private BigDecimal retailSameLevelIncomeOri;
|
// @Excel(name = "拓展收益($)", scale = 2)
|
||||||
|
// private BigDecimal expandIncome;
|
||||||
private BigDecimal retailAreaIncome;
|
//
|
||||||
/**
|
// /**
|
||||||
* 区域分红
|
// * 拓展无封 (拓展收益按等级正常比例结算,并 拓展收益按等级正常比例结算 无封顶)
|
||||||
*/
|
// */
|
||||||
@Excel(name = "区域分红", scale = 2)
|
// private BigDecimal expandNoCapping;
|
||||||
private BigDecimal retailAreaIncomeOri;
|
//
|
||||||
|
// /**
|
||||||
/**
|
// * 拓展封顶 (拓展收益按等级正常比例结算,不按4-N结算,根据配置的封顶值限制最大收益)
|
||||||
* 新零售福利极差收益
|
// */
|
||||||
*/
|
// private BigDecimal expandCapping;
|
||||||
private BigDecimal retailBenefitRangeIncome;
|
//
|
||||||
|
//
|
||||||
@Excel(name = " 福利极差收益", scale = 2)
|
// /**
|
||||||
private BigDecimal retailBenefitRangeIncomeOri;
|
// * 拓展无封 (拓展收益按等级正常比例结算,并 拓展收益按等级正常比例结算 无封顶)
|
||||||
|
// */
|
||||||
/**
|
// private BigDecimal expandNoCappingOri;
|
||||||
* 新零售福利平均收益
|
//
|
||||||
*/
|
// /**
|
||||||
private BigDecimal retailBenefitAvgIncome;
|
// * 拓展封顶 (拓展收益按等级正常比例结算,不按4-N结算,根据配置的封顶值限制最大收益)
|
||||||
|
// */
|
||||||
@Excel(name = " 福利平均收益", scale = 2)
|
// private BigDecimal expandCappingOri;
|
||||||
private BigDecimal retailBenefitAvgIncomeOri;
|
//
|
||||||
|
// /**
|
||||||
/**
|
// * 辅导收益
|
||||||
* 新零售福利加权收益
|
// */
|
||||||
*/
|
// @Excel(name = "辅导收益", scale = 2)
|
||||||
private BigDecimal retailBenefitIncome;
|
// private BigDecimal coachIncomeOri;
|
||||||
|
//
|
||||||
@Excel(name = " 福利加权收益", scale = 2)
|
// /**
|
||||||
private BigDecimal retailBenefitIncomeOri;
|
// * 辅导收益
|
||||||
|
// */
|
||||||
|
// @Excel(name = "辅导收益($)", scale = 2)
|
||||||
|
// private BigDecimal coachIncome;
|
||||||
|
//
|
||||||
|
// /**
|
||||||
|
// * 分红收益
|
||||||
|
// */
|
||||||
|
// @Excel(name = "分红收益", scale = 2)
|
||||||
|
// private BigDecimal shareIncomeOri;
|
||||||
|
//
|
||||||
|
// /**
|
||||||
|
// * 分红收益
|
||||||
|
// */
|
||||||
|
// @Excel(name = "分红收益($)", scale = 2)
|
||||||
|
// private BigDecimal shareIncome;
|
||||||
|
//
|
||||||
|
// /**
|
||||||
|
// * 报单收益
|
||||||
|
// */
|
||||||
|
// @Excel(name = "报单收益", scale = 2)
|
||||||
|
// private BigDecimal serviceIncomeOri;
|
||||||
|
//
|
||||||
|
// /**
|
||||||
|
// * 报单收益
|
||||||
|
// */
|
||||||
|
// @Excel(name = "服务收益($)", scale = 2)
|
||||||
|
// private BigDecimal serviceIncome;
|
||||||
|
//
|
||||||
|
//
|
||||||
|
// /**
|
||||||
|
// * 云代直推收益
|
||||||
|
// */
|
||||||
|
// @Excel(name = "云代直推收益", scale = 2)
|
||||||
|
// private BigDecimal cloudDirectIncomeOri;
|
||||||
|
//
|
||||||
|
// /**
|
||||||
|
// * 云代直推收益
|
||||||
|
// */
|
||||||
|
// @Excel(name = "云代直推收益($)", scale = 2)
|
||||||
|
// private BigDecimal cloudDirectIncome;
|
||||||
|
//
|
||||||
|
// /**
|
||||||
|
// * 云代首购收益
|
||||||
|
// */
|
||||||
|
// @Excel(name = "云代首购收益", scale = 2)
|
||||||
|
// private BigDecimal cloudPurIncomeOri;
|
||||||
|
//
|
||||||
|
// /**
|
||||||
|
// * 云代首购收益
|
||||||
|
// */
|
||||||
|
// @Excel(name = "云代首购收益($)", scale = 2)
|
||||||
|
// private BigDecimal cloudPurIncome;
|
||||||
|
//
|
||||||
|
// /**
|
||||||
|
// * 云代复购收益
|
||||||
|
// */
|
||||||
|
// @Excel(name = "云代复购收益", scale = 2)
|
||||||
|
// private BigDecimal cloudRepurIncomeOri;
|
||||||
|
//
|
||||||
|
// /**
|
||||||
|
// * 云代复购收益
|
||||||
|
// */
|
||||||
|
// @Excel(name = "云代复购收益($)", scale = 2)
|
||||||
|
// private BigDecimal cloudRepurIncome;
|
||||||
|
//
|
||||||
|
// /**
|
||||||
|
// * 复购级差收益
|
||||||
|
// */
|
||||||
|
// @Excel(name = "复购推荐收益", scale = 2)
|
||||||
|
// private BigDecimal repurPushIncomeOri;
|
||||||
|
//
|
||||||
|
// /**
|
||||||
|
// * 复购级差收益
|
||||||
|
// */
|
||||||
|
// @Excel(name = "复购推荐收益", scale = 2)
|
||||||
|
// private BigDecimal repurPushIncome;
|
||||||
|
//
|
||||||
|
// /**
|
||||||
|
// * 复购级差收益
|
||||||
|
// */
|
||||||
|
// @Excel(name = "复购级差收益", scale = 2)
|
||||||
|
// private BigDecimal repurRangeIncomeOri;
|
||||||
|
//
|
||||||
|
// /**
|
||||||
|
// * 复购级差收益
|
||||||
|
// */
|
||||||
|
// @Excel(name = "复购级差收益($)", scale = 2)
|
||||||
|
// private BigDecimal repurRangeIncome;
|
||||||
|
//
|
||||||
|
//
|
||||||
|
// /**
|
||||||
|
// * 复购拓展收益
|
||||||
|
// */
|
||||||
|
// @Excel(name = "复购拓展收益", scale = 2)
|
||||||
|
// private BigDecimal repurExpandIncomeOri;
|
||||||
|
//
|
||||||
|
// /**
|
||||||
|
// * 复购拓展收益
|
||||||
|
// */
|
||||||
|
// @Excel(name = "复购拓展收益($)", scale = 2)
|
||||||
|
// private BigDecimal repurExpandIncome;
|
||||||
|
//
|
||||||
|
// /**
|
||||||
|
// * 复购卷
|
||||||
|
// */
|
||||||
|
// @Excel(name = "复购卷", scale = 2)
|
||||||
|
// private BigDecimal repurCouponOri;
|
||||||
|
//
|
||||||
|
// /**
|
||||||
|
// * 复购卷
|
||||||
|
// */
|
||||||
|
// @Excel(name = "复购卷($)", scale = 2)
|
||||||
|
// private BigDecimal repurCoupon;
|
||||||
|
//
|
||||||
|
// /**
|
||||||
|
// * 复购券均分收益
|
||||||
|
// */
|
||||||
|
// @Excel(name = "复购券均分", scale = 2)
|
||||||
|
// private BigDecimal repurCouponShareOri;
|
||||||
|
//
|
||||||
|
// /**
|
||||||
|
// * 复购券均分收益
|
||||||
|
// */
|
||||||
|
// @Excel(name = "复购券均分($)", scale = 2)
|
||||||
|
// private BigDecimal repurCouponShare;
|
||||||
|
//
|
||||||
/**
|
/**
|
||||||
* 商城重消
|
* 商城重消
|
||||||
*/
|
*/
|
||||||
|
|
@ -149,11 +290,184 @@ public class CuMemberBonusVO implements Serializable {
|
||||||
/**
|
/**
|
||||||
* 商城重消
|
* 商城重消
|
||||||
*/
|
*/
|
||||||
|
@Excel(name = "商城重消($)", scale = 2)
|
||||||
private BigDecimal backPoints;
|
private BigDecimal backPoints;
|
||||||
|
//
|
||||||
|
// /**
|
||||||
|
// * 平台服务费
|
||||||
|
// */
|
||||||
|
// @Excel(name = "平台服务费", scale = 2)
|
||||||
|
// private BigDecimal serviceSpendOri;
|
||||||
|
//
|
||||||
|
// /**
|
||||||
|
// * 平台服务费
|
||||||
|
// */
|
||||||
|
// @Excel(name = "平台服务费($)", scale = 2)
|
||||||
|
// private BigDecimal serviceSpend;
|
||||||
|
//
|
||||||
|
// /**
|
||||||
|
// * 环球积分
|
||||||
|
// */
|
||||||
|
// @Excel(name = "直推极差", scale = 2)
|
||||||
|
// private BigDecimal globalPointsOri;
|
||||||
|
//
|
||||||
|
// /**
|
||||||
|
// * 环球积分
|
||||||
|
// */
|
||||||
|
// @Excel(name = "直推极差($)", scale = 2)
|
||||||
|
// private BigDecimal globalPoints;
|
||||||
|
//
|
||||||
|
// /**
|
||||||
|
// * 车奖积分
|
||||||
|
// */
|
||||||
|
// @Excel(name = "车奖积分", scale = 2)
|
||||||
|
// private BigDecimal carAwardPointsOri;
|
||||||
|
//
|
||||||
|
//
|
||||||
|
// /**
|
||||||
|
// * 车奖积分
|
||||||
|
// */
|
||||||
|
// @Excel(name = "车奖积分($)", scale = 2)
|
||||||
|
// private BigDecimal carAwardPoints;
|
||||||
|
//
|
||||||
|
// /**
|
||||||
|
// * 店铺收益
|
||||||
|
// */
|
||||||
|
// @Excel(name = "店铺收益", scale = 2)
|
||||||
|
// private BigDecimal storeIncomeOri;
|
||||||
|
//
|
||||||
|
// /**
|
||||||
|
// * 店铺收益
|
||||||
|
// */
|
||||||
|
// @Excel(name = "店铺收益($)", scale = 2)
|
||||||
|
// private BigDecimal storeIncome;
|
||||||
|
//
|
||||||
|
// /**
|
||||||
|
// * 嗨粉推荐收益
|
||||||
|
// */
|
||||||
|
// @Excel(name = "嗨粉推荐收益", scale = 2)
|
||||||
|
// private BigDecimal hiFunIncomeOri;
|
||||||
|
//
|
||||||
|
// /**
|
||||||
|
// * 嗨粉推荐收益
|
||||||
|
// */
|
||||||
|
// @Excel(name = "嗨粉推荐收益($)", scale = 2)
|
||||||
|
// private BigDecimal hiFunIncome;
|
||||||
|
//
|
||||||
|
// /**
|
||||||
|
// * 首购实发小计
|
||||||
|
// */
|
||||||
|
// @Excel(name = "首购实发小计", scale = 2)
|
||||||
|
// private BigDecimal purRealSubtotalOri;
|
||||||
|
//
|
||||||
|
// /**
|
||||||
|
// * 首购实发小计
|
||||||
|
// */
|
||||||
|
// @Excel(name = "首购实发小计($)", scale = 2)
|
||||||
|
// private BigDecimal purRealSubtotal;
|
||||||
|
//
|
||||||
|
// /**
|
||||||
|
// * 云代实发小计
|
||||||
|
// */
|
||||||
|
// @Excel(name = "云代实发小计", scale = 2)
|
||||||
|
// private BigDecimal cloudRealSubtotalOri;
|
||||||
|
//
|
||||||
|
// /**
|
||||||
|
// * 云代实发小计
|
||||||
|
// */
|
||||||
|
// @Excel(name = "云代实发小计($)", scale = 2)
|
||||||
|
// private BigDecimal cloudRealSubtotal;
|
||||||
|
//
|
||||||
|
// /**
|
||||||
|
// * 复购实发小计
|
||||||
|
// */
|
||||||
|
// @Excel(name = "复购实发小计", scale = 2)
|
||||||
|
// private BigDecimal repurRealSubtotalOri;
|
||||||
|
//
|
||||||
|
// /**
|
||||||
|
// * 复购实发小计
|
||||||
|
// */
|
||||||
|
// @Excel(name = "复购实发小计($)", scale = 2)
|
||||||
|
// private BigDecimal repurRealSubtotal;
|
||||||
|
//
|
||||||
|
// /**
|
||||||
|
// * 复购券小计
|
||||||
|
// */
|
||||||
|
// @Excel(name = "复购券实发小计", scale = 2)
|
||||||
|
// private BigDecimal repurCouponSubtotalOri;
|
||||||
|
//
|
||||||
|
// /**
|
||||||
|
// * 复购券小计
|
||||||
|
// */
|
||||||
|
// @Excel(name = "复购券实发小计($)", scale = 2)
|
||||||
|
// private BigDecimal repurCouponSubtotal;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 需要转换人民币的
|
||||||
|
*/
|
||||||
|
public static final String[] INCOME_ARRAY = new String[]{
|
||||||
|
"backPoints","retailRangeIncome", "retailSameLevelIncome", "retailAreaIncome",
|
||||||
|
"retailBenefitRangeIncome","retailBenefitAvgIncome",
|
||||||
|
"retailBenefitIncome","retailRealSubtotal","realIncomeTotal"};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 新零售极差收益
|
||||||
|
*/
|
||||||
|
@Excel(name = "新零售极差收益($)", scale = 2)
|
||||||
|
private BigDecimal retailRangeIncome;
|
||||||
|
|
||||||
|
@Excel(name = " 新零售极差收益", scale = 2)
|
||||||
|
private BigDecimal retailRangeIncomeOri;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 新零售平级收益
|
||||||
|
*/
|
||||||
|
@Excel(name = "平级收益($)", scale = 2)
|
||||||
|
private BigDecimal retailSameLevelIncome;
|
||||||
|
|
||||||
|
@Excel(name = " 平级收益", scale = 2)
|
||||||
|
private BigDecimal retailSameLevelIncomeOri;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 新零售区域收益
|
||||||
|
*/
|
||||||
|
@Excel(name = "区域收益($)", scale = 2)
|
||||||
|
private BigDecimal retailAreaIncome;
|
||||||
|
|
||||||
|
@Excel(name = " 区域收益", scale = 2)
|
||||||
|
private BigDecimal retailAreaIncomeOri;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 新零售福利极差收益
|
||||||
|
*/
|
||||||
|
@Excel(name = "福利极差收益($)", scale = 2)
|
||||||
|
private BigDecimal retailBenefitRangeIncome;
|
||||||
|
|
||||||
|
@Excel(name = " 福利极差收益", scale = 2)
|
||||||
|
private BigDecimal retailBenefitRangeIncomeOri;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 新零售福利平均收益
|
||||||
|
*/
|
||||||
|
@Excel(name = "福利平均收益($)", scale = 2)
|
||||||
|
private BigDecimal retailBenefitAvgIncome;
|
||||||
|
|
||||||
|
@Excel(name = " 福利平均收益", scale = 2)
|
||||||
|
private BigDecimal retailBenefitAvgIncomeOri;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 新零售福利加权收益
|
||||||
|
*/
|
||||||
|
@Excel(name = "福利加权收益($)", scale = 2)
|
||||||
|
private BigDecimal retailBenefitIncome;
|
||||||
|
|
||||||
|
@Excel(name = " 福利加权收益", scale = 2)
|
||||||
|
private BigDecimal retailBenefitIncomeOri;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 新零售收益小计
|
* 新零售收益小计
|
||||||
*/
|
*/
|
||||||
|
@Excel(name = "收益小计($)", scale = 2)
|
||||||
private BigDecimal retailRealSubtotal;
|
private BigDecimal retailRealSubtotal;
|
||||||
|
|
||||||
@Excel(name = " 收益小计", scale = 2)
|
@Excel(name = " 收益小计", scale = 2)
|
||||||
|
|
@ -165,8 +479,10 @@ public class CuMemberBonusVO implements Serializable {
|
||||||
@Excel(name = "实发收益总计", scale = 2)
|
@Excel(name = "实发收益总计", scale = 2)
|
||||||
private BigDecimal realIncomeTotalOri;
|
private BigDecimal realIncomeTotalOri;
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 实发收益总计
|
* 实发收益总计
|
||||||
*/
|
*/
|
||||||
|
@Excel(name = "实发收益总计($)", scale = 2)
|
||||||
private BigDecimal realIncomeTotal;
|
private BigDecimal realIncomeTotal;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -111,29 +111,28 @@
|
||||||
merge into ${rangeTableName} a
|
merge into ${rangeTableName} a
|
||||||
using (
|
using (
|
||||||
<foreach collection="cuMemberRangeExtList" item="item" open=" " close=" " separator="union">
|
<foreach collection="cuMemberRangeExtList" item="item" open=" " close=" " separator="union">
|
||||||
select #{item.pkMember} pk_member, #{item.pkAwards} pk_awards, #{item.pkGrade} pk_grade,
|
select #{item.pkMember} pk_member,#{item.pkAwards} pk_awards,#{item.pkGrade} pk_grade,
|
||||||
#{item.consumeBoxNum} consume_box_num, #{item.newBoxNum} new_bosx_num, #{item.pkShareAwards} pk_share_awards,
|
#{item.consumeBoxNum} consume_box_num,#{item.newBoxNum} new_bosx_num,#{item.pkShareAwards} pk_share_awards,
|
||||||
#{item.teamBoxNum} team_box_num, #{item.monthBoxNum} month_box_num, #{item.teamNewBoxNum} team_new_box_num,
|
#{item.teamBoxNum} team_box_num,#{item.monthBoxNum} month_box_num,#{item.teamNewBoxNum} team_new_box_num,
|
||||||
#{item.consumePv} consume_pv, #{item.monthConsumePv} month_consume_pv,
|
#{item.consumePv} consume_pv,#{item.monthConsumePv} month_consume_pv,
|
||||||
#{item.newConsumePv} new_consume_pv, #{item.teamConsumeAmount} team_consume_amount,
|
#{item.newConsumePv} new_consume_pv,#{item.teamConsumeAmount} team_consume_amount,
|
||||||
#{item.teamMonthAmount} team_month_amount, #{item.teamMonthPv} team_month_pv,
|
#{item.teamMonthAmount} team_month_amount,#{item.teamMonthPv} team_month_pv,
|
||||||
#{item.teamNewPv} team_new_pv, #{item.teamNewAmount} team_new_amount,
|
#{item.teamNewPv} team_new_pv,#{item.teamNewAmount} team_new_amount,
|
||||||
#{item.teamConsumePv} team_consume_pv, #{item.newBoxNum} new_box_num,
|
#{item.teamConsumePv} team_consume_pv,#{item.newBoxNum} new_box_num,
|
||||||
#{item.recommendNum} recommend_num, #{item.teamNum} team_num,
|
#{item.recommendNum} recommend_num,#{item.teamNum} team_num,#{item.enableStatus} enable_status
|
||||||
#{item.enableStatus} enable_status
|
|
||||||
from dual
|
from dual
|
||||||
</foreach>
|
</foreach>
|
||||||
) b
|
) b
|
||||||
on (a.pk_member=b.pk_member)
|
on (a.pk_member=b.pk_member)
|
||||||
when matched then
|
when matched then
|
||||||
update set a.pk_awards = b.pk_awards, a.pk_grade = b.pk_grade, a.pk_share_awards = b.pk_share_awards,
|
update set a.pk_awards=b.pk_awards,a.pk_grade=b.pk_grade,a.pk_share_awards=b.pk_share_awards,
|
||||||
a.consume_box_num = b.consume_box_num, a.new_box_num = b.new_box_num, a.team_box_num = b.team_box_num,
|
a.consume_box_num=b.consume_box_num,a.new_box_num=b.new_box_num,a.team_box_num=b.team_box_num,
|
||||||
a.month_box_num = b.month_box_num, a.team_new_box_num = b.team_new_box_num,
|
a.month_box_num=b.month_box_num,a.team_new_box_num=b.team_new_box_num,
|
||||||
a.consume_pv = b.consume_pv, a.month_consume_pv = b.month_consume_pv, a.new_consume_pv = b.new_consume_pv,
|
a.consume_pv=b.consume_pv,a.month_consume_pv=b.month_consume_pv,a.new_consume_pv=b.new_consume_pv,
|
||||||
a.team_consume_amount = b.team_consume_amount, a.team_consume_pv = b.team_consume_pv,
|
a.team_consume_amount=b.team_consume_amount,a.team_consume_pv=b.team_consume_pv,
|
||||||
a.team_month_amount = b.team_month_amount, a.team_month_pv = b.team_month_pv,
|
a.team_month_amount=b.team_month_amount,a.team_month_pv=b.team_month_pv,
|
||||||
a.team_new_amount = b.team_new_amount, a.team_new_pv = b.team_new_pv,
|
a.team_new_amount=b.team_new_amount,a.team_new_pv=b.team_new_pv,
|
||||||
a.recommend_num = b.recommend_num, a.team_num = b.team_num, a.enable_status = b.enable_status
|
a.recommend_num=b.recommend_num,a.team_num=b.team_num,a.enable_status=b.enable_status
|
||||||
</update>
|
</update>
|
||||||
|
|
||||||
<!-- 当前网体更新极差秒接表 -->
|
<!-- 当前网体更新极差秒接表 -->
|
||||||
|
|
@ -191,18 +190,18 @@
|
||||||
using (
|
using (
|
||||||
<foreach collection="cuMemberRangeExtList" item="item" open=" " close=" " separator="union">
|
<foreach collection="cuMemberRangeExtList" item="item" open=" " close=" " separator="union">
|
||||||
select #{item.pkMember} pk_member, #{item.pkGrade} pk_grade, #{item.pkAwards} pk_awards,
|
select #{item.pkMember} pk_member, #{item.pkGrade} pk_grade, #{item.pkAwards} pk_awards,
|
||||||
#{item.newBoxNum} new_box_num, #{item.newConsumePv} new_consume_pv,
|
#{item.newConsumePv} new_consume_pv, #{item.teamNewAmount} team_new_amount,
|
||||||
#{item.teamNewBoxNum} team_new_box_num, #{item.teamNewPv} team_new_pv,
|
#{item.teamNewPv} team_new_pv, #{item.teamNewBoxNum} team_new_box_num,
|
||||||
#{item.teamNewAmount} team_new_amount, #{item.enableStatus} enable_status
|
#{item.newBoxNum} new_box_num, #{item.enableStatus} enable_status
|
||||||
from dual
|
from dual
|
||||||
</foreach>
|
</foreach>
|
||||||
) b
|
) b
|
||||||
on (a.pk_member = b.pk_member)
|
on (a.pk_member = b.pk_member)
|
||||||
when matched then
|
when matched then
|
||||||
update set a.pk_grade = b.pk_grade, a.pk_awards = b.pk_awards,
|
update set a.pk_grade = b.pk_grade, a.pk_awards = b.pk_awards,
|
||||||
a.new_box_num = b.new_box_num, a.new_consume_pv = b.new_consume_pv,
|
a.new_consume_pv = b.new_consume_pv, a.team_new_amount = b.team_new_amount,
|
||||||
a.team_new_box_num = b.team_new_box_num,a.team_new_pv = b.team_new_pv,
|
a.team_new_pv = b.team_new_pv, a.team_new_box_num = b.team_new_box_num,
|
||||||
a.team_new_amount = b.team_new_amount,a.enable_status = b.enable_status
|
a.new_box_num = b.new_box_num, a.enable_status = b.enable_status
|
||||||
</update>
|
</update>
|
||||||
|
|
||||||
<update id="mergeMemberRetailGradeByMember">
|
<update id="mergeMemberRetailGradeByMember">
|
||||||
|
|
|
||||||
|
|
@ -298,11 +298,8 @@
|
||||||
</if>
|
</if>
|
||||||
order by cp.settle_date desc
|
order by cp.settle_date desc
|
||||||
</select>
|
</select>
|
||||||
|
|
||||||
<select id="queryMemberBonusByConditionForServer" resultMap="CuMemberBonus">
|
<select id="queryMemberBonusByConditionForServer" resultMap="CuMemberBonus">
|
||||||
select cm.member_code, cm.member_name,
|
select cm.member_code,cm.member_name,cm.pk_settle_grade,cm.pk_awards,bv.vertex_name,ct.team_name,
|
||||||
cm.pk_settle_grade, cm.pk_awards,
|
|
||||||
bv.vertex_name, ct.team_name,
|
|
||||||
cb.period,cp.settle_date,cb.direct_income,cb.expand_income,cb.expand_no_capping,
|
cb.period,cp.settle_date,cb.direct_income,cb.expand_income,cb.expand_no_capping,
|
||||||
cb.expand_capping,cb.coach_income,cb.share_income,cb.service_income,cb.back_points,cb.service_spend,
|
cb.expand_capping,cb.coach_income,cb.share_income,cb.service_income,cb.back_points,cb.service_spend,
|
||||||
cb.pur_real_subtotal,cb.repur_push_income,cb.repur_range_income,cb.repur_expand_income,cb.repur_real_subtotal,
|
cb.pur_real_subtotal,cb.repur_push_income,cb.repur_range_income,cb.repur_expand_income,cb.repur_real_subtotal,
|
||||||
|
|
@ -314,7 +311,9 @@
|
||||||
cb.retail_benefit_range_income,cb.retail_benefit_avg_income,
|
cb.retail_benefit_range_income,cb.retail_benefit_avg_income,
|
||||||
cb.retail_benefit_income,cb.retail_real_subtotal,
|
cb.retail_benefit_income,cb.retail_real_subtotal,
|
||||||
cb.real_income_total,
|
cb.real_income_total,
|
||||||
cm.pk_vertex, cm.service_code, cm.nick_name
|
cm.pk_vertex,
|
||||||
|
cm.service_code,
|
||||||
|
cm.nick_name
|
||||||
from cu_member_bonus cb
|
from cu_member_bonus cb
|
||||||
inner join cu_member cm
|
inner join cu_member cm
|
||||||
on cb.pk_member = cm.pk_id
|
on cb.pk_member = cm.pk_id
|
||||||
|
|
@ -326,7 +325,7 @@
|
||||||
on ct.pk_id = cm.pk_team_code
|
on ct.pk_id = cm.pk_team_code
|
||||||
left join bd_currency bc
|
left join bd_currency bc
|
||||||
on bc.pk_country = cb.pk_country
|
on bc.pk_country = cb.pk_country
|
||||||
where cb.del_flag = 0 and cm.del_flag = 0
|
where cb.del_flag=0 and cm.del_flag=0
|
||||||
and cp.del_flag=0
|
and cp.del_flag=0
|
||||||
<if test="bonusParam.pkCountry != null">
|
<if test="bonusParam.pkCountry != null">
|
||||||
and cm.pk_settle_country = #{bonusParam.pkCountry}
|
and cm.pk_settle_country = #{bonusParam.pkCountry}
|
||||||
|
|
|
||||||
|
|
@ -5,13 +5,14 @@ import com.hzs.common.core.web.controller.BaseController;
|
||||||
import com.hzs.common.core.web.domain.AjaxResult;
|
import com.hzs.common.core.web.domain.AjaxResult;
|
||||||
import com.hzs.common.core.web.page.TableDataInfo;
|
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.retail.member.service.ICuMemberRetailAchieveService;
|
import com.hzs.retail.member.service.ICuMemberRetailAchieveService;
|
||||||
import com.hzs.retail.member.vo.CuMemberRetailAchieveVO;
|
import com.hzs.retail.member.vo.CuMemberRetailAchieveVO;
|
||||||
import com.hzs.retail.member.vo.CuMemberRetailDataStatisticsResultVO;
|
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.web.bind.annotation.*;
|
import org.springframework.web.bind.annotation.*;
|
||||||
|
|
||||||
|
import java.math.BigDecimal;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
@ -43,13 +44,7 @@ public class ApiRetailHomePageController extends BaseController {
|
||||||
Long pkMember = SecurityUtils.getUserId();
|
Long pkMember = SecurityUtils.getUserId();
|
||||||
Integer pkCountry = SecurityUtils.getPkCountry();
|
Integer pkCountry = SecurityUtils.getPkCountry();
|
||||||
Integer systemType = SecurityUtils.getSystemType();
|
Integer systemType = SecurityUtils.getSystemType();
|
||||||
CuMemberRetailDataStatisticsResultVO result = retailAchieveService.getRetailDataStatisticsDetail(pkMember, pkCountry, systemType);
|
return AjaxResult.success(retailAchieveService.selectMemberSmallBox(pkMember, pkCountry, systemType));
|
||||||
CuMemberRetailAchieveVO vo = CuMemberRetailAchieveVO.builder()
|
|
||||||
.totalBox(result.getTotalBoxNum())
|
|
||||||
.smallAreaBox(result.getSmallRangeTotalBoxNum())
|
|
||||||
.build();
|
|
||||||
return AjaxResult.success(vo);
|
|
||||||
// return AjaxResult.success(retailAchieveService.selectMemberSmallBox(pkMember, pkCountry, systemType));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
||||||
|
|
@ -3,7 +3,6 @@ package com.hzs.retail.member.mapper;
|
||||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||||
import com.hzs.common.domain.member.achieve.CuMemberRetailRange;
|
import com.hzs.common.domain.member.achieve.CuMemberRetailRange;
|
||||||
import com.hzs.retail.member.vo.CuMemberRetailAchieveVO;
|
import com.hzs.retail.member.vo.CuMemberRetailAchieveVO;
|
||||||
import com.hzs.retail.member.vo.CuMemberRetailDataStatisticsDetailVO;
|
|
||||||
import org.apache.ibatis.annotations.Param;
|
import org.apache.ibatis.annotations.Param;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
@ -167,13 +166,6 @@ public interface CuMemberRetailRangeMapper extends BaseMapper<CuMemberRetailRang
|
||||||
*/
|
*/
|
||||||
List<CuMemberRetailAchieveVO> selectMemberSumAchieve(CuMemberRetailAchieveVO cuMemberAchieveVO);
|
List<CuMemberRetailAchieveVO> selectMemberSumAchieve(CuMemberRetailAchieveVO cuMemberAchieveVO);
|
||||||
|
|
||||||
/**
|
|
||||||
* 获取会员结算明细
|
|
||||||
* @param cuMemberAchieveVO
|
|
||||||
* @return
|
|
||||||
*/
|
|
||||||
List<CuMemberRetailDataStatisticsDetailVO> getRetailDataStatisticsDetail(CuMemberRetailAchieveVO cuMemberAchieveVO);
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 查询当天自己新增盒数
|
* 查询当天自己新增盒数
|
||||||
*
|
*
|
||||||
|
|
|
||||||
|
|
@ -3,11 +3,8 @@ package com.hzs.retail.member.service;
|
||||||
import com.baomidou.mybatisplus.extension.service.IService;
|
import com.baomidou.mybatisplus.extension.service.IService;
|
||||||
import com.hzs.common.domain.member.achieve.CuMemberRetailRange;
|
import com.hzs.common.domain.member.achieve.CuMemberRetailRange;
|
||||||
import com.hzs.retail.member.vo.CuMemberRetailAchieveVO;
|
import com.hzs.retail.member.vo.CuMemberRetailAchieveVO;
|
||||||
import com.hzs.retail.member.vo.CuMemberRetailDataStatisticsDetailVO;
|
|
||||||
import com.hzs.retail.member.vo.CuMemberRetailDataStatisticsResultVO;
|
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
|
||||||
|
|
||||||
public interface ICuMemberRetailAchieveService extends IService<CuMemberRetailRange> {
|
public interface ICuMemberRetailAchieveService extends IService<CuMemberRetailRange> {
|
||||||
|
|
||||||
|
|
@ -103,12 +100,4 @@ public interface ICuMemberRetailAchieveService extends IService<CuMemberRetailRa
|
||||||
*/
|
*/
|
||||||
List<CuMemberRetailAchieveVO> selectMemberSmallBoxList(CuMemberRetailAchieveVO param);
|
List<CuMemberRetailAchieveVO> selectMemberSmallBoxList(CuMemberRetailAchieveVO param);
|
||||||
|
|
||||||
/**
|
|
||||||
* 获取会员结算明细
|
|
||||||
* @param pkMember
|
|
||||||
* @param pkCountry
|
|
||||||
* @param systemType
|
|
||||||
* @return
|
|
||||||
*/
|
|
||||||
CuMemberRetailDataStatisticsResultVO getRetailDataStatisticsDetail(Long pkMember, Integer pkCountry, Integer systemType);
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,26 +1,19 @@
|
||||||
package com.hzs.retail.member.service.impl;
|
package com.hzs.retail.member.service.impl;
|
||||||
|
|
||||||
import cn.hutool.core.collection.CollUtil;
|
import cn.hutool.core.collection.CollUtil;
|
||||||
import cn.hutool.core.util.ObjectUtil;
|
|
||||||
import cn.hutool.json.JSONUtil;
|
|
||||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||||
import com.hzs.common.core.constant.TableNameConstants;
|
import com.hzs.common.core.constant.TableNameConstants;
|
||||||
import com.hzs.common.core.enums.EGrade;
|
import com.hzs.common.core.enums.EGrade;
|
||||||
import com.hzs.common.core.enums.EYesNo;
|
import com.hzs.common.core.enums.EYesNo;
|
||||||
import com.hzs.common.core.utils.DateUtils;
|
import com.hzs.common.core.utils.DateUtils;
|
||||||
import com.hzs.common.domain.member.achieve.CuMemberRetailRange;
|
import com.hzs.common.domain.member.achieve.CuMemberRetailRange;
|
||||||
import com.hzs.common.domain.member.achieve.CuMemberSettlePeriod;
|
|
||||||
import com.hzs.common.domain.member.base.CuMember;
|
import com.hzs.common.domain.member.base.CuMember;
|
||||||
import com.hzs.common.security.utils.SecurityUtils;
|
|
||||||
import com.hzs.member.account.service.ICuMemberBaseService;
|
import com.hzs.member.account.service.ICuMemberBaseService;
|
||||||
import com.hzs.member.achieve.service.ICuMemberSettlePeriodService;
|
import com.hzs.member.achieve.service.ICuMemberSettlePeriodService;
|
||||||
import com.hzs.member.base.service.ICuMemberService;
|
import com.hzs.member.base.service.ICuMemberService;
|
||||||
import com.hzs.retail.member.mapper.CuMemberRetailRangeMapper;
|
import com.hzs.retail.member.mapper.CuMemberRetailRangeMapper;
|
||||||
import com.hzs.retail.member.service.ICuMemberRetailAchieveService;
|
import com.hzs.retail.member.service.ICuMemberRetailAchieveService;
|
||||||
import com.hzs.retail.member.utils.DataStatisticsUtil;
|
|
||||||
import com.hzs.retail.member.vo.CuMemberRetailAchieveVO;
|
import com.hzs.retail.member.vo.CuMemberRetailAchieveVO;
|
||||||
import com.hzs.retail.member.vo.CuMemberRetailDataStatisticsDetailVO;
|
|
||||||
import com.hzs.retail.member.vo.CuMemberRetailDataStatisticsResultVO;
|
|
||||||
import com.hzs.system.config.IGradeServiceApi;
|
import com.hzs.system.config.IGradeServiceApi;
|
||||||
import com.hzs.system.config.dto.GradeDTO;
|
import com.hzs.system.config.dto.GradeDTO;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
|
|
@ -395,9 +388,9 @@ public class CuMemberRetailAchieveServiceImpl extends ServiceImpl<CuMemberRetail
|
||||||
String memberRetailTable = getTableName();
|
String memberRetailTable = getTableName();
|
||||||
String memberSecondTable = getDayTableName();
|
String memberSecondTable = getDayTableName();
|
||||||
//查询直推会员
|
//查询直推会员
|
||||||
List<Long> pkMemberList = baseMapper.selectDirectPushByPkMember(pkMember, systemType);
|
// List<Long> pkMemberList = baseMapper.selectDirectPushByPkMember(pkMember, systemType);
|
||||||
// 2025年6月11日 取伞下 + 自己的ID
|
// 2025年6月11日 取伞下 + 自己的ID
|
||||||
// List<Long> pkMemberList = baseMapper.selectSubMemberIdByRootMember(pkMember, systemType);
|
List<Long> pkMemberList = baseMapper.selectSubMemberIdByRootMember(pkMember, systemType);
|
||||||
//根据国家查汇率
|
//根据国家查汇率
|
||||||
BigDecimal rate = iCuMemberBaseService.getCurrency(pkCountry).getInExchangeRate();
|
BigDecimal rate = iCuMemberBaseService.getCurrency(pkCountry).getInExchangeRate();
|
||||||
//查询自己业绩
|
//查询自己业绩
|
||||||
|
|
@ -493,12 +486,8 @@ public class CuMemberRetailAchieveServiceImpl extends ServiceImpl<CuMemberRetail
|
||||||
* @return String
|
* @return String
|
||||||
*/
|
*/
|
||||||
private String getAchieveAndBoxTableName(String date) {
|
private String getAchieveAndBoxTableName(String date) {
|
||||||
CuMemberSettlePeriod cuMemberSettlePeriod = iCuMemberSettlePeriodService.getCuMemberSettlePeriodByDate(date);
|
int period = iCuMemberSettlePeriodService.getCuMemberSettlePeriodByDate(date).getPkId();
|
||||||
if(ObjectUtil.isNotEmpty(cuMemberSettlePeriod)){
|
return TableNameConstants.CU_MEMBER_AMOUNT_BOX + period;
|
||||||
int period = cuMemberSettlePeriod.getPkId();
|
|
||||||
return TableNameConstants.CU_MEMBER_AMOUNT_BOX + period;
|
|
||||||
}
|
|
||||||
return "";
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
@ -557,25 +546,6 @@ public class CuMemberRetailAchieveServiceImpl extends ServiceImpl<CuMemberRetail
|
||||||
return new ArrayList<>();
|
return new ArrayList<>();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
public CuMemberRetailDataStatisticsResultVO getRetailDataStatisticsDetail(Long pkMember, Integer pkCountry, Integer systemType) {
|
|
||||||
Long userId = SecurityUtils.getUserId();
|
|
||||||
String memberRetailTable = getTableName();
|
|
||||||
String memberSecondTable = getDayTableName();
|
|
||||||
//查询直推会员
|
|
||||||
List<Long> pkMemberList = baseMapper.selectDirectPushByPkMember(pkMember, systemType);
|
|
||||||
pkMemberList.add(userId);
|
|
||||||
CuMemberRetailAchieveVO memberAchieveVO = CuMemberRetailAchieveVO.builder()
|
|
||||||
.memberRetailTable(memberRetailTable)
|
|
||||||
.memberRetailSTable(memberSecondTable)
|
|
||||||
.pkMemberList(pkMemberList).systemType(systemType).build();
|
|
||||||
List<CuMemberRetailDataStatisticsDetailVO> statisticsDetailVOList = baseMapper.getRetailDataStatisticsDetail(memberAchieveVO);
|
|
||||||
CuMemberRetailDataStatisticsResultVO result = DataStatisticsUtil.getCalcMap(statisticsDetailVOList, userId);
|
|
||||||
log.info("statisticsDetailVOList: {}", JSONUtil.toJsonStr(statisticsDetailVOList));
|
|
||||||
log.info("calcMap -> {}", JSONUtil.toJsonStr(result));
|
|
||||||
return result;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 查询会员是否激活
|
* 查询会员是否激活
|
||||||
*
|
*
|
||||||
|
|
|
||||||
|
|
@ -1,156 +0,0 @@
|
||||||
package com.hzs.retail.member.utils;
|
|
||||||
|
|
||||||
import cn.hutool.core.util.ObjectUtil;
|
|
||||||
import com.hzs.retail.member.vo.CuMemberRetailDataStatisticsDetailVO;
|
|
||||||
import com.hzs.retail.member.vo.CuMemberRetailDataStatisticsResultVO;
|
|
||||||
|
|
||||||
import java.math.BigDecimal;
|
|
||||||
import java.util.*;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 用户统计数据工具
|
|
||||||
* 主要用户统计用户的业绩/盒数/明细等
|
|
||||||
* 主要处理的类为
|
|
||||||
* @link com.hzs.retail.member.vo.CuMemberRetailDataStatisticsDetailVO
|
|
||||||
*/
|
|
||||||
public class DataStatisticsUtil {
|
|
||||||
private static final Long SELF_VIRTUAL_ID = -1000L;
|
|
||||||
private static final Long BIG_RANGE_VIRTUAL_ID = -2000L;
|
|
||||||
private static final Long SMALL_RANGE_VIRTUAL_ID = -3000L;
|
|
||||||
private static final String SELF_VIRTUAL_NAME = "个人消费虚拟分支";
|
|
||||||
private static final String BIG_RANGE_VIRTUAL_NAME = "注水大区虚拟分支";
|
|
||||||
private static final String SMALL_RANGE_VIRTUAL_NAME = "注水小区虚拟分支";
|
|
||||||
|
|
||||||
public static CuMemberRetailDataStatisticsResultVO getCalcMap(List<CuMemberRetailDataStatisticsDetailVO> detailVOList, Long pkId){
|
|
||||||
calcDetailVOTotalField(detailVOList);
|
|
||||||
addVirtualBranch(detailVOList, pkId);
|
|
||||||
CuMemberRetailDataStatisticsDetailVO total = getDetailVOByPKID(detailVOList, pkId);
|
|
||||||
CuMemberRetailDataStatisticsDetailVO bigRange = getBigRangeDetailVO(detailVOList, pkId);
|
|
||||||
return CuMemberRetailDataStatisticsResultVO.builder()
|
|
||||||
.totalBoxNum(total.getTotalBoxNum())
|
|
||||||
.totalPv(total.getTotalPv())
|
|
||||||
.bigRangeTotalBoxNum(bigRange.getTotalBoxNum())
|
|
||||||
.bigRangeTotalPv(bigRange.getTotalPv())
|
|
||||||
.smallRangeTotalBoxNum(total.getTotalBoxNum() - bigRange.getTotalBoxNum())
|
|
||||||
.smallRangeTotalPv(total.getTotalPv().subtract(bigRange.getTotalPv()))
|
|
||||||
.build();
|
|
||||||
}
|
|
||||||
/**
|
|
||||||
* 计算集合内数据总数
|
|
||||||
* @param detailVOList
|
|
||||||
*/
|
|
||||||
public static void calcDetailVOTotalField(List<CuMemberRetailDataStatisticsDetailVO> detailVOList){
|
|
||||||
detailVOList.parallelStream().forEach(detailVO -> {
|
|
||||||
detailVO.setTotalBoxNum(
|
|
||||||
detailVO.getConsumeBoxNum() // 个人累计消费盒数(日结)
|
|
||||||
+ detailVO.getNewBoxNum() // 个人新增盒数(日结)
|
|
||||||
+ detailVO.getTeamBoxNum() // 团队累计消费盒数(日结)
|
|
||||||
+ detailVO.getTeamNewBoxNum() // 团队新增盒数(日结)
|
|
||||||
+ detailVO.getSNewBoxNum() // 个人新增消费盒数(秒结)
|
|
||||||
+ detailVO.getSTeamNewBoxNum() // 团队新增盒数(秒结)
|
|
||||||
// - detailVO.getBigBoxNum() // 个人注水大区盒数(日结)
|
|
||||||
// - detailVO.getSmallBoxNum() // 个人注水小区盒数(日结)
|
|
||||||
);
|
|
||||||
detailVO.setTotalPv(detailVO.getConsumePv()
|
|
||||||
.add(detailVO.getNewConsumePv())
|
|
||||||
.add(detailVO.getTeamConsumePv())
|
|
||||||
.add(detailVO.getTeamNewPv())
|
|
||||||
.add(detailVO.getSNewConsumePv())
|
|
||||||
.add(detailVO.getSTeamNewPv())
|
|
||||||
);
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 增加虚拟分支 主要为
|
|
||||||
* 1.自己的消费总数
|
|
||||||
* 2.注水的大小区
|
|
||||||
*
|
|
||||||
* @param detailVOList
|
|
||||||
*/
|
|
||||||
public static void addVirtualBranch(List<CuMemberRetailDataStatisticsDetailVO> detailVOList, Long pkId){
|
|
||||||
CuMemberRetailDataStatisticsDetailVO detailVO = getDetailVOByPKID(detailVOList, pkId);
|
|
||||||
if(ObjectUtil.isNotEmpty(detailVO)){
|
|
||||||
CuMemberRetailDataStatisticsDetailVO selfVirtualDetailVO = getCuMemberRetailDataStatisticsDetailVO(detailVO);
|
|
||||||
detailVOList.add(selfVirtualDetailVO);
|
|
||||||
if(detailVO.getBigBoxNum() >0 || detailVO.getSmallBoxNum() > 0){
|
|
||||||
CuMemberRetailDataStatisticsDetailVO bigRangeVirtualDetailVO = CuMemberRetailDataStatisticsDetailVO.builder()
|
|
||||||
.pkId(BIG_RANGE_VIRTUAL_ID)
|
|
||||||
.memberCode(BIG_RANGE_VIRTUAL_NAME)
|
|
||||||
.totalBoxNum(detailVO.getBigBoxNum())
|
|
||||||
.totalPv(BigDecimal.ZERO)
|
|
||||||
.build();
|
|
||||||
CuMemberRetailDataStatisticsDetailVO smallRangeVirtualDetailVO = CuMemberRetailDataStatisticsDetailVO.builder()
|
|
||||||
.pkId(SMALL_RANGE_VIRTUAL_ID)
|
|
||||||
.memberCode(SMALL_RANGE_VIRTUAL_NAME)
|
|
||||||
.totalBoxNum(detailVO.getBigBoxNum())
|
|
||||||
.totalPv(BigDecimal.ZERO)
|
|
||||||
.build();
|
|
||||||
detailVOList.add(bigRangeVirtualDetailVO);
|
|
||||||
detailVOList.add(smallRangeVirtualDetailVO);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
private static CuMemberRetailDataStatisticsDetailVO getCuMemberRetailDataStatisticsDetailVO(CuMemberRetailDataStatisticsDetailVO detailVO) {
|
|
||||||
return CuMemberRetailDataStatisticsDetailVO.builder()
|
|
||||||
.pkId(SELF_VIRTUAL_ID)
|
|
||||||
.memberCode(SELF_VIRTUAL_NAME)
|
|
||||||
.totalBoxNum(
|
|
||||||
detailVO.getConsumeBoxNum()
|
|
||||||
+ detailVO.getNewBoxNum()
|
|
||||||
+ detailVO.getSNewBoxNum()
|
|
||||||
)
|
|
||||||
.totalPv(
|
|
||||||
detailVO.getConsumePv()
|
|
||||||
.add(detailVO.getNewConsumePv())
|
|
||||||
.add(detailVO.getSNewConsumePv())
|
|
||||||
)
|
|
||||||
.build();
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 移除总数Top1
|
|
||||||
* @param detailVOList
|
|
||||||
*/
|
|
||||||
public static List<CuMemberRetailDataStatisticsDetailVO> getSmallRangeList(List<CuMemberRetailDataStatisticsDetailVO> detailVOList){
|
|
||||||
List<CuMemberRetailDataStatisticsDetailVO> result = new ArrayList<>();
|
|
||||||
Integer maxTotalBoxNum = getMaxTotalBoxNum(detailVOList);
|
|
||||||
if (maxTotalBoxNum == null) {
|
|
||||||
return new ArrayList<>(detailVOList);
|
|
||||||
}
|
|
||||||
boolean removed = false;
|
|
||||||
for (CuMemberRetailDataStatisticsDetailVO vo : detailVOList) {
|
|
||||||
if (!removed && Objects.equals(vo.getTotalBoxNum(), maxTotalBoxNum)) {
|
|
||||||
removed = true;
|
|
||||||
} else {
|
|
||||||
result.add(vo);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return result;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 根据ID获取对应数据
|
|
||||||
* @param detailVOList
|
|
||||||
* @return
|
|
||||||
*/
|
|
||||||
public static CuMemberRetailDataStatisticsDetailVO getDetailVOByPKID(List<CuMemberRetailDataStatisticsDetailVO> detailVOList, Long pkId){
|
|
||||||
return detailVOList.stream().filter(o -> o.getPkId().equals(pkId)).findFirst().orElse(null);
|
|
||||||
}
|
|
||||||
|
|
||||||
private static Integer getMaxTotalBoxNum(List<CuMemberRetailDataStatisticsDetailVO> detailVOList) {
|
|
||||||
return detailVOList.stream()
|
|
||||||
.map(CuMemberRetailDataStatisticsDetailVO::getTotalBoxNum)
|
|
||||||
.filter(Objects::nonNull)
|
|
||||||
.max(Integer::compare)
|
|
||||||
.orElse(null);
|
|
||||||
}
|
|
||||||
private static CuMemberRetailDataStatisticsDetailVO getBigRangeDetailVO(List<CuMemberRetailDataStatisticsDetailVO> detailVOList, Long pkId){
|
|
||||||
return detailVOList.stream()
|
|
||||||
.filter(vo -> vo.getTotalBoxNum() != null && !vo.getPkId().equals(pkId))
|
|
||||||
.max(Comparator.comparingInt(CuMemberRetailDataStatisticsDetailVO::getTotalBoxNum))
|
|
||||||
.orElse(null);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
@ -1,104 +0,0 @@
|
||||||
package com.hzs.retail.member.vo;
|
|
||||||
|
|
||||||
import lombok.AllArgsConstructor;
|
|
||||||
import lombok.Builder;
|
|
||||||
import lombok.Data;
|
|
||||||
import lombok.NoArgsConstructor;
|
|
||||||
|
|
||||||
import java.io.Serializable;
|
|
||||||
import java.math.BigDecimal;
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 会员数据统计
|
|
||||||
*/
|
|
||||||
@Data
|
|
||||||
@Builder
|
|
||||||
@AllArgsConstructor
|
|
||||||
@NoArgsConstructor
|
|
||||||
public class CuMemberRetailDataStatisticsDetailVO implements Serializable {
|
|
||||||
|
|
||||||
private static final long serialVersionUID = 4225390345989552207L;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 用户主键
|
|
||||||
*/
|
|
||||||
private Long pkId;
|
|
||||||
/**
|
|
||||||
* 用户编号
|
|
||||||
*/
|
|
||||||
private String memberCode;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 日结表-个人累计消费pv
|
|
||||||
*/
|
|
||||||
private BigDecimal consumePv;
|
|
||||||
/**
|
|
||||||
* 日结表-个人当日新消费PV
|
|
||||||
*/
|
|
||||||
private BigDecimal newConsumePv;
|
|
||||||
/**
|
|
||||||
* 日结表-个人伞下累计消费pv
|
|
||||||
*/
|
|
||||||
private BigDecimal teamConsumePv;
|
|
||||||
/**
|
|
||||||
* 日结表-个人伞下新消费pv
|
|
||||||
*/
|
|
||||||
private BigDecimal teamNewPv;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 日结表-个人累计消费盒数
|
|
||||||
*/
|
|
||||||
private Integer consumeBoxNum;
|
|
||||||
/**
|
|
||||||
* 日结表-个人当日新消费盒数
|
|
||||||
*/
|
|
||||||
private Integer newBoxNum;
|
|
||||||
/**
|
|
||||||
* 日结表-个人伞下累计消费盒数
|
|
||||||
*/
|
|
||||||
private Integer teamBoxNum;
|
|
||||||
/**
|
|
||||||
* 日结表-个人伞下新消费盒数
|
|
||||||
*/
|
|
||||||
private Integer teamNewBoxNum;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 秒结表-个人新消费盒数
|
|
||||||
*/
|
|
||||||
private Integer sNewBoxNum;
|
|
||||||
/**
|
|
||||||
* 秒结表-团队新消费盒数
|
|
||||||
*/
|
|
||||||
private Integer sTeamNewBoxNum;
|
|
||||||
/**
|
|
||||||
* 秒结表-个人新消费pv
|
|
||||||
*/
|
|
||||||
private BigDecimal sNewConsumePv;
|
|
||||||
/**
|
|
||||||
* 秒结表-团队新消费pv
|
|
||||||
*/
|
|
||||||
private BigDecimal sTeamNewPv;
|
|
||||||
|
|
||||||
private Integer sTeamBoxNum;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 个人总业绩
|
|
||||||
*/
|
|
||||||
private BigDecimal totalPv;
|
|
||||||
/**
|
|
||||||
* 个人总盒数
|
|
||||||
*/
|
|
||||||
private Integer totalBoxNum;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 注水大区
|
|
||||||
*/
|
|
||||||
private Integer bigBoxNum;
|
|
||||||
/**
|
|
||||||
* 注水小区
|
|
||||||
*/
|
|
||||||
private Integer smallBoxNum;
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
@ -1,58 +0,0 @@
|
||||||
package com.hzs.retail.member.vo;
|
|
||||||
|
|
||||||
import lombok.AllArgsConstructor;
|
|
||||||
import lombok.Builder;
|
|
||||||
import lombok.Data;
|
|
||||||
import lombok.NoArgsConstructor;
|
|
||||||
|
|
||||||
import java.io.Serializable;
|
|
||||||
import java.math.BigDecimal;
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 会员数据统计
|
|
||||||
*/
|
|
||||||
@Data
|
|
||||||
@Builder
|
|
||||||
@AllArgsConstructor
|
|
||||||
@NoArgsConstructor
|
|
||||||
public class CuMemberRetailDataStatisticsResultVO implements Serializable {
|
|
||||||
|
|
||||||
private static final long serialVersionUID = 747472786422852424L;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 用户主键
|
|
||||||
*/
|
|
||||||
private Long pkId;
|
|
||||||
/**
|
|
||||||
* 用户编号
|
|
||||||
*/
|
|
||||||
private String memberCode;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 总盒数
|
|
||||||
*/
|
|
||||||
private Integer totalBoxNum;
|
|
||||||
/**
|
|
||||||
* 大区盒数
|
|
||||||
*/
|
|
||||||
private Integer bigRangeTotalBoxNum;
|
|
||||||
/**
|
|
||||||
* 小区盒数
|
|
||||||
*/
|
|
||||||
private Integer smallRangeTotalBoxNum;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 总业绩
|
|
||||||
*/
|
|
||||||
private BigDecimal totalPv;
|
|
||||||
/**
|
|
||||||
* 大区业绩
|
|
||||||
*/
|
|
||||||
private BigDecimal bigRangeTotalPv;
|
|
||||||
/**
|
|
||||||
* 小区业绩
|
|
||||||
*/
|
|
||||||
private BigDecimal smallRangeTotalPv;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
@ -836,39 +836,4 @@
|
||||||
connect by prior cm.pk_id = cm.pk_parent
|
connect by prior cm.pk_id = cm.pk_parent
|
||||||
order by level
|
order by level
|
||||||
</select>
|
</select>
|
||||||
<select id="getRetailDataStatisticsDetail"
|
|
||||||
resultType="com.hzs.retail.member.vo.CuMemberRetailDataStatisticsDetailVO">
|
|
||||||
SELECT
|
|
||||||
cu.pk_id,
|
|
||||||
cu.MEMBER_CODE,
|
|
||||||
NVL( mr.CONSUME_PV, 0 ) consumePv,
|
|
||||||
NVL( mr.NEW_CONSUME_PV, 0 ) newConsumePv,
|
|
||||||
NVL( mr.TEAM_CONSUME_PV, 0 ) teamConsumePv,
|
|
||||||
NVL( mr.TEAM_NEW_PV, 0 ) teamNewPv,
|
|
||||||
|
|
||||||
NVL( mr.CONSUME_BOX_NUM, 0 ) consumeBoxNum,
|
|
||||||
NVL( mr.NEW_BOX_NUM, 0 ) newBoxNum,
|
|
||||||
NVL( mr.TEAM_BOX_NUM, 0 ) teamBoxNum,
|
|
||||||
NVL( mr.TEAM_NEW_BOX_NUM, 0 ) teamNewBoxNum,
|
|
||||||
NVL( mr.BIG_BOX_NUM, 0 ) bigBoxNum,
|
|
||||||
NVL( mr.SMALL_BOX_NUM, 0 ) smallBoxNum,
|
|
||||||
|
|
||||||
|
|
||||||
NVL( mrs.NEW_BOX_NUM, 0 ) sNewBoxNum,
|
|
||||||
NVL( mrs.TEAM_NEW_BOX_NUM, 0 ) sTeamNewBoxNum,
|
|
||||||
NVL( mrs.NEW_CONSUME_PV, 0 ) sNewConsumePv,
|
|
||||||
NVL( mrs.TEAM_NEW_PV, 0 ) sTeamNewPv
|
|
||||||
FROM
|
|
||||||
cu_member cu
|
|
||||||
left join ${memberRetailTable} mr on cu.PK_ID = mr.PK_MEMBER and mr.CATEGORY = 0
|
|
||||||
left JOIN ${memberRetailSTable} mrs on cu.PK_ID = mrs.PK_MEMBER
|
|
||||||
<where>
|
|
||||||
<if test="pkMemberList != null and pkMemberList.size > 0">
|
|
||||||
cu.pk_id in
|
|
||||||
<foreach collection="pkMemberList" item="pkMember" separator="," open="(" close=")">
|
|
||||||
#{pkMember}
|
|
||||||
</foreach>
|
|
||||||
</if>
|
|
||||||
</where>
|
|
||||||
</select>
|
|
||||||
</mapper>
|
</mapper>
|
||||||
|
|
|
||||||
|
|
@ -1,11 +1,13 @@
|
||||||
package com.hzs.system.config.controller.manage;
|
package com.hzs.system.config.controller.manage;
|
||||||
|
|
||||||
|
|
||||||
import cn.hutool.core.bean.BeanUtil;
|
import cn.hutool.core.bean.BeanUtil;
|
||||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||||
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
|
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
|
||||||
import com.hzs.common.core.annotation.Log;
|
import com.hzs.common.core.annotation.Log;
|
||||||
import com.hzs.common.core.constant.CacheConstants;
|
import com.hzs.common.core.constant.CacheConstants;
|
||||||
import com.hzs.common.core.constant.msg.ConfigMsgConstants;
|
import com.hzs.common.core.constant.msg.ConfigMsgConstants;
|
||||||
|
import com.hzs.common.core.domain.R;
|
||||||
import com.hzs.common.core.enums.*;
|
import com.hzs.common.core.enums.*;
|
||||||
import com.hzs.common.core.service.RedisService;
|
import com.hzs.common.core.service.RedisService;
|
||||||
import com.hzs.common.core.utils.StringUtils;
|
import com.hzs.common.core.utils.StringUtils;
|
||||||
|
|
@ -17,8 +19,10 @@ import com.hzs.common.domain.system.config.BdBonusItems;
|
||||||
import com.hzs.common.domain.system.config.ext.BdBonusItemsExt;
|
import com.hzs.common.domain.system.config.ext.BdBonusItemsExt;
|
||||||
import com.hzs.common.security.utils.SecurityUtils;
|
import com.hzs.common.security.utils.SecurityUtils;
|
||||||
import com.hzs.common.util.TransactionUtils;
|
import com.hzs.common.util.TransactionUtils;
|
||||||
|
import com.hzs.system.base.ITransactionServiceApi;
|
||||||
import com.hzs.system.config.service.IBdBonusItemsService;
|
import com.hzs.system.config.service.IBdBonusItemsService;
|
||||||
import com.hzs.system.config.vo.ApiBdBonusItemsVO;
|
import com.hzs.system.config.vo.ApiBdBonusItemsVO;
|
||||||
|
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.*;
|
import org.springframework.web.bind.annotation.*;
|
||||||
|
|
||||||
|
|
@ -28,7 +32,12 @@ import java.util.Date;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
* <p>
|
||||||
* 奖项配置 前端控制器
|
* 奖项配置 前端控制器
|
||||||
|
* </p>
|
||||||
|
*
|
||||||
|
* @author zhangjing
|
||||||
|
* @since 2022-11-09
|
||||||
*/
|
*/
|
||||||
@RestController
|
@RestController
|
||||||
@RequestMapping("/manage/bd-bonus-items")
|
@RequestMapping("/manage/bd-bonus-items")
|
||||||
|
|
@ -36,63 +45,79 @@ public class BdBonusItemsController extends BaseController {
|
||||||
|
|
||||||
@Autowired
|
@Autowired
|
||||||
private IBdBonusItemsService bonusItemsService;
|
private IBdBonusItemsService bonusItemsService;
|
||||||
@Autowired
|
@DubboReference
|
||||||
|
private ITransactionServiceApi iTransactionServiceApi;
|
||||||
private RedisService redisService;
|
private RedisService redisService;
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
public void setRedisService(RedisService redisService) {
|
||||||
|
this.redisService = redisService;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 查询奖项配置列表
|
* @description: 查询奖项配置列表
|
||||||
|
* @author: zhang jing
|
||||||
|
* @date: 2022/8/30 10:20
|
||||||
|
* @param: [bonusItems]
|
||||||
|
* @return: com.hzs.common.core.web.page.TableDataInfo
|
||||||
**/
|
**/
|
||||||
@Log(module = EOperationModule.BONUS_CONFIG, business = EOperationBusiness.BONUS_ITEMS, method = EOperationMethod.SELECT)
|
@Log(module = EOperationModule.BONUS_CONFIG, business=EOperationBusiness.BONUS_ITEMS, method = EOperationMethod.SELECT)
|
||||||
@GetMapping("/list")
|
@GetMapping("/list")
|
||||||
public TableDataInfo list(BdBonusItems bonusItems) {
|
public TableDataInfo list(BdBonusItems bonusItems) {
|
||||||
List<BdBonusItemsExt> listExt = new ArrayList<>();
|
|
||||||
|
|
||||||
startPage();
|
startPage();
|
||||||
LambdaQueryWrapper<BdBonusItems> queryWrapper = new LambdaQueryWrapper<>();
|
QueryWrapper<BdBonusItems> queryWrapper = new QueryWrapper();
|
||||||
queryWrapper.eq(BdBonusItems::getPkCountry, SecurityUtils.getPkCountry());
|
queryWrapper.eq("PK_COUNTRY", SecurityUtils.getPkCountry());
|
||||||
if (StringUtils.isNotNull(bonusItems.getBonusName())) {
|
if(StringUtils.isNotNull(bonusItems.getBonusName())){
|
||||||
queryWrapper.eq(BdBonusItems::getBonusName, bonusItems.getBonusName());
|
queryWrapper.eq("BONUS_NAME",bonusItems.getBonusName());
|
||||||
}
|
}
|
||||||
queryWrapper.orderByAsc(BdBonusItems::getPkId);
|
queryWrapper.orderByAsc("PK_ID");
|
||||||
|
List<BdBonusItemsExt> listExt = new ArrayList<>();
|
||||||
List<BdBonusItems> list = bonusItemsService.list(queryWrapper);
|
List<BdBonusItems> list = bonusItemsService.list(queryWrapper);
|
||||||
list.forEach(item -> listExt.add(BeanUtil.copyProperties(item, BdBonusItemsExt.class)));
|
list.forEach(item -> listExt.add(BeanUtil.copyProperties(item, BdBonusItemsExt.class)));
|
||||||
|
|
||||||
TableDataInfo tableDataInfo = getDataTable(list);
|
TableDataInfo tableDataInfo = getDataTable(list);
|
||||||
tableDataInfo.setRows(listExt);
|
tableDataInfo.setRows(listExt);
|
||||||
return tableDataInfo;
|
return tableDataInfo;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 导出
|
* @description: 导出
|
||||||
|
* @author: zhang jing
|
||||||
|
* @date: 2023/4/4 9:56
|
||||||
|
* @param: [response, bonusItems]
|
||||||
|
* @return: void
|
||||||
**/
|
**/
|
||||||
@Log(module = EOperationModule.BONUS_CONFIG, business = EOperationBusiness.BONUS_ITEMS, method = EOperationMethod.EXPORT)
|
@Log(module = EOperationModule.BONUS_CONFIG, business=EOperationBusiness.BONUS_ITEMS, method = EOperationMethod.EXPORT)
|
||||||
@PostMapping("/export")
|
@PostMapping("/export")
|
||||||
public void export(HttpServletResponse response, BdBonusItems bonusItems) {
|
public void export(HttpServletResponse response, BdBonusItems bonusItems) {
|
||||||
LambdaQueryWrapper<BdBonusItems> queryWrapper = new LambdaQueryWrapper<>();
|
QueryWrapper<BdBonusItems> queryWrapper = new QueryWrapper();
|
||||||
queryWrapper.eq(BdBonusItems::getPkCountry, SecurityUtils.getPkCountry());
|
queryWrapper.eq("PK_COUNTRY", SecurityUtils.getPkCountry());
|
||||||
if (StringUtils.isNotNull(bonusItems.getBonusName())) {
|
if(StringUtils.isNotNull(bonusItems.getBonusName())){
|
||||||
queryWrapper.eq(BdBonusItems::getBonusName, bonusItems.getBonusName());
|
queryWrapper.eq("BONUS_NAME",bonusItems.getBonusName());
|
||||||
}
|
}
|
||||||
queryWrapper.orderByAsc(BdBonusItems::getPkId);
|
queryWrapper.orderByAsc("PK_ID");
|
||||||
List<BdBonusItemsExt> listExt = new ArrayList<>();
|
List<BdBonusItemsExt> listExt = new ArrayList<>();
|
||||||
List<BdBonusItems> list = bonusItemsService.list(queryWrapper);
|
List<BdBonusItems> list = bonusItemsService.list(queryWrapper);
|
||||||
list.forEach(item -> listExt.add(BeanUtil.copyProperties(item, BdBonusItemsExt.class)));
|
list.forEach(item -> listExt.add(BeanUtil.copyProperties(item, BdBonusItemsExt.class)));
|
||||||
ExcelUtil<BdBonusItemsExt> util = new ExcelUtil<>(BdBonusItemsExt.class);
|
ExcelUtil<BdBonusItemsExt> util = new ExcelUtil<>(BdBonusItemsExt.class);
|
||||||
util.exportExcel(response, listExt, "奖项配置");
|
util.exportExcel(response, listExt, "奖项配置");
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 查询奖项配置列表(下拉选)
|
* @description: 查询奖项配置列表(下拉选)
|
||||||
|
* @author: zhang jing
|
||||||
|
* @date: 2022/8/30 10:20
|
||||||
|
* @param: [bonusItems]
|
||||||
|
* @return: com.hzs.common.core.web.page.TableDataInfo
|
||||||
**/
|
**/
|
||||||
@Log(module = EOperationModule.BONUS_CONFIG, business = EOperationBusiness.BONUS_ITEMS, method = EOperationMethod.SELECT)
|
@Log(module = EOperationModule.BONUS_CONFIG, business=EOperationBusiness.BONUS_ITEMS, method = EOperationMethod.SELECT)
|
||||||
@GetMapping("/listNoPage")
|
@GetMapping("/listNoPage")
|
||||||
public TableDataInfo listNoPage(BdBonusItems bonusItems) {
|
public TableDataInfo listNoPage(BdBonusItems bonusItems) {
|
||||||
LambdaQueryWrapper<BdBonusItems> queryWrapper = new LambdaQueryWrapper<>();
|
QueryWrapper<BdBonusItems> queryWrapper = new QueryWrapper();
|
||||||
queryWrapper.eq(BdBonusItems::getPkCountry, SecurityUtils.getPkCountry());
|
queryWrapper.eq("PK_COUNTRY", SecurityUtils.getPkCountry());
|
||||||
if (StringUtils.isNotNull(bonusItems.getBonusName())) {
|
if(StringUtils.isNotNull(bonusItems.getBonusName())){
|
||||||
queryWrapper.eq(BdBonusItems::getBonusName, bonusItems.getBonusName());
|
queryWrapper.eq("BONUS_NAME",bonusItems.getBonusName());
|
||||||
}
|
}
|
||||||
queryWrapper.orderByAsc(BdBonusItems::getPkId);
|
queryWrapper.orderByAsc("PK_ID");
|
||||||
List<ApiBdBonusItemsVO> listVO = new ArrayList<>();
|
List<ApiBdBonusItemsVO> listVO = new ArrayList<>();
|
||||||
List<BdBonusItems> list = bonusItemsService.list(queryWrapper);
|
List<BdBonusItems> list = bonusItemsService.list(queryWrapper);
|
||||||
list.forEach(item -> listVO.add(BeanUtil.copyProperties(item, ApiBdBonusItemsVO.class)));
|
list.forEach(item -> listVO.add(BeanUtil.copyProperties(item, ApiBdBonusItemsVO.class)));
|
||||||
|
|
@ -100,71 +125,112 @@ public class BdBonusItemsController extends BaseController {
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 生成奖项
|
* @description: 生成奖项
|
||||||
|
* @author: zhang jing
|
||||||
|
* @date: 2022/10/22 9:54
|
||||||
|
* @param: [grade]
|
||||||
|
* @return: com.hzs.common.core.web.domain.AjaxResult
|
||||||
**/
|
**/
|
||||||
@Log(module = EOperationModule.BONUS_CONFIG, business = EOperationBusiness.BONUS_ITEMS, method = EOperationMethod.INSERT)
|
@Log(module = EOperationModule.BONUS_CONFIG, business=EOperationBusiness.BONUS_ITEMS, method = EOperationMethod.INSERT)
|
||||||
@PostMapping("/generate")
|
@PostMapping("/generate")
|
||||||
public AjaxResult generate(@RequestBody BdBonusItems bonusItems) {
|
public AjaxResult generate(@RequestBody BdBonusItems bonusItems) {
|
||||||
return AjaxResult.success(bonusItemsService.generate(bonusItems));
|
return AjaxResult.success(bonusItemsService.generate(bonusItems));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 修改奖项配置
|
* @description: 修改奖项配置
|
||||||
|
* @author: zhang jing
|
||||||
|
* @date: 2022/8/30 10:21
|
||||||
|
* @param: [bonusItems]
|
||||||
|
* @return: com.hzs.common.core.web.domain.AjaxResult
|
||||||
**/
|
**/
|
||||||
@Log(module = EOperationModule.BONUS_CONFIG, business = EOperationBusiness.BONUS_ITEMS, method = EOperationMethod.UPDATE)
|
@Log(module = EOperationModule.BONUS_CONFIG, business=EOperationBusiness.BONUS_ITEMS, method = EOperationMethod.UPDATE)
|
||||||
@PostMapping("/update")
|
@PostMapping("/update")
|
||||||
public AjaxResult update(@RequestBody BdBonusItems bonusItems) {
|
public AjaxResult update(@RequestBody BdBonusItems bonusItems) {
|
||||||
Integer pkCountry = SecurityUtils.getPkCountry();
|
Integer pkCountry=SecurityUtils.getPkCountry();
|
||||||
if (StringUtils.isEmpty(bonusItems.getBonusName())) {
|
if(StringUtils.isEmpty(bonusItems.getBonusName())){
|
||||||
return AjaxResult.error(TransactionUtils.getContent(ConfigMsgConstants.BONUS_NAME_NOT_NULL));
|
return AjaxResult.error(TransactionUtils.getContent(ConfigMsgConstants.BONUS_NAME_NOT_NULL));
|
||||||
}
|
}
|
||||||
if (StringUtils.isNull(bonusItems.getEnableState())) {
|
if(StringUtils.isNull(bonusItems.getEnableState())){
|
||||||
return AjaxResult.error(TransactionUtils.getContent(ConfigMsgConstants.ENABLE_STATE_NOT_NULL));
|
return AjaxResult.error(TransactionUtils.getContent(ConfigMsgConstants.ENABLE_STATE_NOT_NULL));
|
||||||
}
|
}
|
||||||
if (StringUtils.isNull(bonusItems.getSettleType())) {
|
if(StringUtils.isNull(bonusItems.getSettleType())){
|
||||||
return AjaxResult.error(TransactionUtils.getContent(ConfigMsgConstants.SETTLE_TYPE_NOT_NULL));
|
return AjaxResult.error(TransactionUtils.getContent(ConfigMsgConstants.SETTLE_TYPE_NOT_NULL));
|
||||||
}
|
}
|
||||||
if (StringUtils.isNull(bonusItems.getPublishTime())) {
|
if(StringUtils.isNull(bonusItems.getPublishTime())){
|
||||||
return AjaxResult.error(TransactionUtils.getContent(ConfigMsgConstants.PUBLISH_TIME_NOT_NULL));
|
return AjaxResult.error(TransactionUtils.getContent(ConfigMsgConstants.PUBLISH_TIME_NOT_NULL));
|
||||||
}
|
}
|
||||||
if (StringUtils.isNull(bonusItems.getPublishDate())) {
|
if(StringUtils.isNull(bonusItems.getPublishDate())){
|
||||||
return AjaxResult.error(TransactionUtils.getContent(ConfigMsgConstants.PUBLISH_DATE_NOT_NULL));
|
return AjaxResult.error(TransactionUtils.getContent(ConfigMsgConstants.PUBLISH_DATE_NOT_NULL));
|
||||||
}
|
}
|
||||||
if (StringUtils.isNull(bonusItems.getGrantDate())) {
|
if(StringUtils.isNull(bonusItems.getGrantDate())){
|
||||||
return AjaxResult.error(TransactionUtils.getContent(ConfigMsgConstants.GRANT_DATE_NOT_NULL));
|
return AjaxResult.error(TransactionUtils.getContent(ConfigMsgConstants.GRANT_DATE_NOT_NULL));
|
||||||
}
|
}
|
||||||
if (StringUtils.isNull(bonusItems.getWithdrawalDate())) {
|
if(StringUtils.isNull(bonusItems.getWithdrawalDate())){
|
||||||
return AjaxResult.error(TransactionUtils.getContent(ConfigMsgConstants.WITHDRAWAL_DATE_NOT_NULL));
|
return AjaxResult.error(TransactionUtils.getContent(ConfigMsgConstants.WITHDRAWAL_DATE_NOT_NULL));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
//字段翻译保存到数据库
|
||||||
|
if(null!=bonusItems.getPkTransaction()){
|
||||||
|
R<Boolean> b = iTransactionServiceApi.updateTransaction(pkCountry,
|
||||||
|
bonusItems.getBonusName(),bonusItems.getPkTransaction(), true);
|
||||||
|
}else{
|
||||||
|
//字段翻译保存到数据库
|
||||||
|
R<Integer> pkTransaction= iTransactionServiceApi.createTransaction(pkCountry, ETransactionKey.BD_BONUS_ITEMS,
|
||||||
|
bonusItems.getBonusName(), EYesNo.YES, EYesNo.NO);
|
||||||
|
bonusItems.setPkTransaction(pkTransaction.getData());
|
||||||
|
}
|
||||||
bonusItems.setPkModified(SecurityUtils.getUserId());
|
bonusItems.setPkModified(SecurityUtils.getUserId());
|
||||||
bonusItems.setModifiedTime(new Date());
|
bonusItems.setModifiedTime(new Date());
|
||||||
redisService.deleteObject(CacheConstants.BD_BONUS_ITEMS + pkCountry);
|
redisService.deleteObject(CacheConstants.BD_BONUS_ITEMS + pkCountry);
|
||||||
return toAjax(bonusItemsService.updateById(bonusItems));
|
return toAjax(bonusItemsService.updateById(bonusItems));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 查询单条奖项配置
|
* @description: 查询单条奖项配置
|
||||||
|
* @author: zhang jing
|
||||||
|
* @date: 2022/8/30 10:21
|
||||||
|
* @param: [pkId]
|
||||||
|
* @return: com.hzs.common.core.web.domain.AjaxResult
|
||||||
**/
|
**/
|
||||||
@Log(module = EOperationModule.BONUS_CONFIG, business = EOperationBusiness.BONUS_ITEMS, method = EOperationMethod.SELECT)
|
@Log(module = EOperationModule.BONUS_CONFIG, business=EOperationBusiness.BONUS_ITEMS, method = EOperationMethod.SELECT)
|
||||||
@GetMapping("/getOne/{pkId}")
|
@GetMapping("/getOne/{pkId}")
|
||||||
public AjaxResult getOne(@PathVariable Long pkId) {
|
public AjaxResult getOne(@PathVariable Long pkId) {
|
||||||
BdBonusItems bonusItems = bonusItemsService.getById(pkId);
|
BdBonusItems bonusItems = bonusItemsService.getById(pkId);
|
||||||
BdBonusItemsExt bonusItemsExt = BeanUtil.copyProperties(bonusItems, BdBonusItemsExt.class);
|
BdBonusItemsExt bonusItemsExt=BeanUtil.copyProperties(bonusItems, BdBonusItemsExt.class);
|
||||||
return AjaxResult.success(bonusItemsExt);
|
return AjaxResult.success(bonusItemsExt);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 删除奖项配置
|
* @description: 删除奖项配置
|
||||||
|
* @author: zhang jing
|
||||||
|
* @date: 2022/8/30 10:21
|
||||||
|
* @param: [pkId]
|
||||||
|
* @return: com.hzs.common.core.web.domain.AjaxResult
|
||||||
**/
|
**/
|
||||||
@Log(module = EOperationModule.BONUS_CONFIG, business = EOperationBusiness.BONUS_ITEMS, method = EOperationMethod.DELETE)
|
@Log(module = EOperationModule.BONUS_CONFIG, business=EOperationBusiness.BONUS_ITEMS, method = EOperationMethod.DELETE)
|
||||||
@DeleteMapping("/{pkId}")
|
@DeleteMapping("/{pkId}")
|
||||||
public AjaxResult delete(@PathVariable Long pkId) {
|
public AjaxResult delete(@PathVariable Long pkId) {
|
||||||
LambdaUpdateWrapper<BdBonusItems> updateWrapper = new LambdaUpdateWrapper<>();
|
UpdateWrapper<BdBonusItems> updateWrapper = new UpdateWrapper<>();
|
||||||
updateWrapper.eq(BdBonusItems::getPkId, pkId);
|
updateWrapper.eq("PK_ID", pkId);
|
||||||
updateWrapper.set(BdBonusItems::getDelFlag, EDelFlag.DELETE.getValue());
|
updateWrapper.set("DEL_FLAG", EDelFlag.DELETE.getValue());
|
||||||
updateWrapper.set(BdBonusItems::getPkModified, SecurityUtils.getUserId());
|
updateWrapper.set("PK_MODIFIED", SecurityUtils.getUserId());
|
||||||
updateWrapper.set(BdBonusItems::getModifiedTime, new Date());
|
updateWrapper.set("MODIFIED_TIME", new Date());
|
||||||
redisService.deleteObject(CacheConstants.BD_BONUS_ITEMS + SecurityUtils.getPkCountry());
|
redisService.deleteObject(CacheConstants.BD_BONUS_ITEMS + SecurityUtils.getPkCountry());
|
||||||
|
//删除翻译
|
||||||
|
BdBonusItems bdBonusItems=bonusItemsService.getById(pkId);
|
||||||
|
List<Long> pkIdList=new ArrayList<>();
|
||||||
|
if(null!=bdBonusItems.getPkTransaction()){
|
||||||
|
pkIdList.add(bdBonusItems.getPkTransaction().longValue());
|
||||||
|
R<Boolean> b=iTransactionServiceApi.removeTransactionByPkId(pkIdList);
|
||||||
|
}
|
||||||
return toAjax(bonusItemsService.update(updateWrapper));
|
return toAjax(bonusItemsService.update(updateWrapper));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -17,6 +17,15 @@ public class RetailConstants {
|
||||||
* 直推平级收益比例(每代拿商品价格的千分之五)
|
* 直推平级收益比例(每代拿商品价格的千分之五)
|
||||||
*/
|
*/
|
||||||
public static final BigDecimal SAME_RATIO = new BigDecimal("0.005");
|
public static final BigDecimal SAME_RATIO = new BigDecimal("0.005");
|
||||||
|
/**
|
||||||
|
* 直推平缓收益代数(每级都是10代)
|
||||||
|
*/
|
||||||
|
public static final Integer SAME_ALGEBRA = 10;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 区域分红,每盒2元
|
||||||
|
*/
|
||||||
|
public static final BigDecimal AREA_BOX_BONUS = new BigDecimal("2");
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 盒数产品列表
|
* 盒数产品列表
|
||||||
|
|
|
||||||
|
|
@ -52,10 +52,7 @@ public class BonusMsgConstants {
|
||||||
|
|
||||||
public static String RETAIL_BENEFIT_AVG_INCOME = "获得%f月福利平均收益,结算月%s。";
|
public static String RETAIL_BENEFIT_AVG_INCOME = "获得%f月福利平均收益,结算月%s。";
|
||||||
|
|
||||||
/**
|
public static String RETAIL_AREA_INCOME = "订单编号%s,%s为%s贡献了区域收益,区域收益%f,收益县%s。";
|
||||||
* 区域分红说明
|
|
||||||
*/
|
|
||||||
public static String RETAIL_AREA_INCOME = "订单编号%s,%s为%s贡献了区域分红,区域分红%f,收益县%s。";
|
|
||||||
|
|
||||||
public static String RETAIL_BENEFIT_INCOME = "获得%f月福利加权收益,结算月%s。";
|
public static String RETAIL_BENEFIT_INCOME = "获得%f月福利加权收益,结算月%s。";
|
||||||
|
|
||||||
|
|
@ -113,16 +110,10 @@ public class BonusMsgConstants {
|
||||||
// public static String SHARE_RANGE = "MSG_BONUS_017";
|
// public static String SHARE_RANGE = "MSG_BONUS_017";
|
||||||
public static String SHARE_RANGE = "订单编号%s,%s为%s贡献了复购极差收益,计算业绩%f,前一极差等级名称%s,当前极差等级名称%s。";
|
public static String SHARE_RANGE = "订单编号%s,%s为%s贡献了复购极差收益,计算业绩%f,前一极差等级名称%s,当前极差等级名称%s。";
|
||||||
|
|
||||||
|
public static String RANGE = "订单编号%s,%s为%s贡献了极差收益,计算业绩%f,前一极差等级名称%s,当前极差等级名称%s。";
|
||||||
|
|
||||||
public static String RETAIL_RANGE = "订单编号%s,%s为%s贡献了福利极差收益,计算业绩%f,前一极差等级名称%s,当前极差等级名称%s。";
|
public static String RETAIL_RANGE = "订单编号%s,%s为%s贡献了福利极差收益,计算业绩%f,前一极差等级名称%s,当前极差等级名称%s。";
|
||||||
|
|
||||||
/**
|
|
||||||
* 直推级差收益说明
|
|
||||||
*/
|
|
||||||
public static String RANGE = "订单编号%s,%s为%s贡献了直推级差收益,计算金额%f,前一级差等级名称%s,当前级差等级名称%s。";
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 平级收益
|
|
||||||
*/
|
|
||||||
public static String ORI_RANGE = "订单编号%s,%s为%s贡献了平级收益,计算业绩%f,等级名称%s。";
|
public static String ORI_RANGE = "订单编号%s,%s为%s贡献了平级收益,计算业绩%f,等级名称%s。";
|
||||||
|
|
||||||
public static String LE_SHARE_RANGE = "订单编号%s,%s为%s贡献了复购极差收益,收益%f。";
|
public static String LE_SHARE_RANGE = "订单编号%s,%s为%s贡献了复购极差收益,收益%f。";
|
||||||
|
|
|
||||||
|
|
@ -5,14 +5,18 @@ import lombok.AllArgsConstructor;
|
||||||
import lombok.Getter;
|
import lombok.Getter;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 奖金收益状态 奖金明细表
|
* @Description: 奖金收益状态 奖金明细表
|
||||||
|
* @Author: sui q
|
||||||
|
* @Time: 2022/11/10 16:03
|
||||||
|
* @Classname: EBonusIncomeStatus
|
||||||
|
* @PackageName: com.hzs.common.core.enums
|
||||||
*/
|
*/
|
||||||
@AllArgsConstructor
|
@AllArgsConstructor
|
||||||
@Getter
|
@Getter
|
||||||
public enum EBonusIncomeStatus {
|
public enum EBonusIncomeStatus {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 正常
|
*正常
|
||||||
*/
|
*/
|
||||||
NORMAL(0, "正常", 0, EnumsPrefixConstants.BONUS_INCOME_STATUS + "0"),
|
NORMAL(0, "正常", 0, EnumsPrefixConstants.BONUS_INCOME_STATUS + "0"),
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -224,7 +224,7 @@ public class CuMemberBonus extends BaseEntity {
|
||||||
private BigDecimal makerRealSubtotal;
|
private BigDecimal makerRealSubtotal;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 新零售直推收益
|
* 新零售极差收益
|
||||||
*/
|
*/
|
||||||
@TableField("RETAIL_RANGE_INCOME")
|
@TableField("RETAIL_RANGE_INCOME")
|
||||||
private BigDecimal retailRangeIncome;
|
private BigDecimal retailRangeIncome;
|
||||||
|
|
@ -236,7 +236,7 @@ public class CuMemberBonus extends BaseEntity {
|
||||||
private BigDecimal retailSameLevelIncome;
|
private BigDecimal retailSameLevelIncome;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 新零售区域分红
|
* 新零售区域收益
|
||||||
*/
|
*/
|
||||||
@TableField("RETAIL_AREA_INCOME")
|
@TableField("RETAIL_AREA_INCOME")
|
||||||
private BigDecimal retailAreaIncome;
|
private BigDecimal retailAreaIncome;
|
||||||
|
|
|
||||||
|
|
@ -381,7 +381,7 @@ public class CuBonusVertexStatis extends BaseEntity {
|
||||||
private BigDecimal retailConsumePv;
|
private BigDecimal retailConsumePv;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 新零售直推收益
|
* 新零售极差收益
|
||||||
*/
|
*/
|
||||||
@TableField("RETAIL_RANGE_INCOME")
|
@TableField("RETAIL_RANGE_INCOME")
|
||||||
private BigDecimal retailRangeIncome;
|
private BigDecimal retailRangeIncome;
|
||||||
|
|
|
||||||
|
|
@ -6,7 +6,12 @@ import lombok.Data;
|
||||||
import lombok.EqualsAndHashCode;
|
import lombok.EqualsAndHashCode;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
* <p>
|
||||||
* 奖项配置
|
* 奖项配置
|
||||||
|
* </p>
|
||||||
|
*
|
||||||
|
* @author zhangjing
|
||||||
|
* @since 2022-11-09
|
||||||
*/
|
*/
|
||||||
@Data
|
@Data
|
||||||
@EqualsAndHashCode(callSuper = true)
|
@EqualsAndHashCode(callSuper = true)
|
||||||
|
|
@ -17,25 +22,28 @@ public class BdBonusItemsExt extends BdBonusItems {
|
||||||
/**
|
/**
|
||||||
* 结算周期
|
* 结算周期
|
||||||
*/
|
*/
|
||||||
@Excel(name = "结算周期", sort = 2)
|
@Excel(name = "结算周期",sort=2)
|
||||||
private String settleTypeVal;
|
private String settleTypeVal;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 公布日期
|
* 公布日期
|
||||||
*/
|
*/
|
||||||
@Excel(name = "公布日期", sort = 4)
|
@Excel(name = "公布日期",sort=4)
|
||||||
private String publishDateVal;
|
private String publishDateVal;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 发布日期
|
* 发布日期
|
||||||
*/
|
*/
|
||||||
@Excel(name = "公布日期", sort = 5)
|
@Excel(name = "公布日期",sort=5)
|
||||||
private String grantDateVal;
|
private String grantDateVal;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 可提现日期
|
* 可提现日期
|
||||||
*/
|
*/
|
||||||
@Excel(name = "可提现日期", sort = 6)
|
@Excel(name = "可提现日期",sort=6)
|
||||||
private String withdrawalDateVal;
|
private String withdrawalDateVal;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue