Compare commits

...

3 Commits

21 changed files with 763 additions and 828 deletions

View File

@ -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(bonusParam.getStartDate()==null||bonusParam.getEndDate()==null){ if (null == bonusParam.getStartDate() || null == bonusParam.getEndDate()) {
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, "奖金来源导出");
} }

View File

@ -45,11 +45,11 @@ import java.util.*;
public abstract class BonusSettleHandle { public abstract class BonusSettleHandle {
@DubboReference @DubboReference
protected ISaOrderServiceApi saOrderServiceApi; ISaOrderServiceApi saOrderServiceApi;
@DubboReference @DubboReference
protected IBonusItemsServiceApi bonusItemsServiceApi; IBonusItemsServiceApi bonusItemsServiceApi;
@DubboReference @DubboReference
private ICurrencyServiceApi currencyServiceApi; ICurrencyServiceApi currencyServiceApi;
protected ICuMemberTreeService cuMemberTreeService; protected ICuMemberTreeService cuMemberTreeService;
@ -655,33 +655,12 @@ 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) {
@ -710,32 +689,13 @@ 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(),

View File

@ -77,8 +77,6 @@ public class BonusSettleRangeHandle extends BonusSettleHandle {
// 会员结算mapkey会员IDvalue结算扩展 // 会员结算mapkey会员IDvalue结算扩展
Map<Long, CuMemberRetailRangeExt> memberRangeExtMap = new HashMap<>(); Map<Long, CuMemberRetailRangeExt> memberRangeExtMap = new HashMap<>();
// 购买升级等级mapkey:等级值value:等级对象
Map<Integer, BdGrade> retaiBuyGradeMap = new TreeMap<>();
// 团队升级等级mapkey:等级值value:等级对象 // 团队升级等级mapkey:等级值value:等级对象
Map<Integer, BdGrade> retailTeamGradeMap = new TreeMap<>(); Map<Integer, BdGrade> retailTeamGradeMap = new TreeMap<>();
// 等级mapkey:等级值value:等级对象 // 等级mapkey:等级值value:等级对象
@ -86,9 +84,6 @@ 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);
} }
@ -102,28 +97,6 @@ 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);
} }
} }
@ -159,7 +132,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()
@ -171,11 +144,8 @@ 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() // 注册升级 并且有盒数商品算激活
|| EOrderType.RETAIL_UPGRADE.getValue() == saOrderExt.getOrderType()) { sourceMemberRangeExt.setEnableStatus(EYesNo.YES.getIntValue());
// 注册升级计算是否激活
sourceMemberRangeExt.setEnableStatus(EYesNo.YES.getIntValue());
}
} }
} }
} }
@ -396,6 +366,7 @@ 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,
@ -444,6 +415,7 @@ public class BonusSettleRangeHandle extends BonusSettleHandle {
Map<Integer, BdGrade> retaiBuyGradeMap = new TreeMap<>(); Map<Integer, BdGrade> retaiBuyGradeMap = new TreeMap<>();
// 团队升级等级mapkey:等级值value:等级对象 // 团队升级等级mapkey:等级值value:等级对象
Map<Integer, BdGrade> retailTeamGradeMap = new TreeMap<>(); Map<Integer, BdGrade> retailTeamGradeMap = new TreeMap<>();
// 等级mapkey:等级值value:等级对象
Map<Integer, BdGrade> gradeMap = new HashMap<>(); Map<Integer, BdGrade> gradeMap = new HashMap<>();
// 等级mapkey:等级IDvalue:等级对象 // 等级mapkey:等级IDvalue:等级对象
Map<Integer, BdGrade> gradeIdMap = new HashMap<>(); Map<Integer, BdGrade> gradeIdMap = new HashMap<>();
@ -470,21 +442,11 @@ 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;
} }
} }
@ -541,8 +503,6 @@ 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())
@ -1308,20 +1268,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();
// 商品数量 // 商品数量
Integer waresQuantity = saOrderItems.getWaresQuantity(); BigDecimal waresQuantityBig = new BigDecimal(saOrderItems.getWaresQuantity());
// 商品价格
BigDecimal beginBuyPrice = saOrderItems.getWaresPrice();
BigDecimal comBuyPrice = saOrderItems.getWaresPrice();
// 开始计算等级值
int beginGradeValue = sourceMemberRangeExt.getGradeValue();
// 直推级差收益
BigDecimal calBonusIncome = BigDecimal.ZERO;
// 前一个会员等级 // 前一个会员等级
int beforeGradeValue = 0; int beforeGradeValue = 0;
// 前一个会员等级的平级收益人数 // 前一个会员等级的平级收益人数
@ -1348,6 +1308,8 @@ public class BonusSettleRangeHandle extends BonusSettleHandle {
} }
// 当前会员等级值 // 当前会员等级值
int calGradeValue = targetMemberRangeExt.getGradeValue(); int calGradeValue = targetMemberRangeExt.getGradeValue();
// 当前会员等级
BdGrade bdGrade = gradeMap.get(calGradeValue);
// 直推级差税前收益 // 直推级差税前收益
BigDecimal rangeBonusIncome = null; BigDecimal rangeBonusIncome = null;
@ -1358,19 +1320,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; rangeBonusIncome = RetailConstants.RANGE_BONUS.multiply(waresQuantityBig);
} 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(new BigDecimal("2")); rangeBonusIncome = RetailConstants.RANGE_BONUS.multiply(waresQuantityBig).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(new BigDecimal("3")); rangeBonusIncome = RetailConstants.RANGE_BONUS.multiply(waresQuantityBig).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(new BigDecimal("4")); rangeBonusIncome = RetailConstants.RANGE_BONUS.multiply(waresQuantityBig).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(new BigDecimal("5")); rangeBonusIncome = RetailConstants.RANGE_BONUS.multiply(waresQuantityBig).multiply(new BigDecimal("5"));
} }
// 赋值前一个会员等级 // 赋值前一个会员等级
beforeGradeValue = calGradeValue; beforeGradeValue = calGradeValue;
@ -1380,8 +1342,12 @@ public class BonusSettleRangeHandle extends BonusSettleHandle {
// V1 没有平级收益 // V1 没有平级收益
continue; continue;
} }
if (beforeSameAlgebra >= RetailConstants.SAME_ALGEBRA) { if (beforeSameAlgebra >= bdGrade.getAlgebra()) {
// 平级收益已经满10代不继续处理平级收益 // 平级收益已经满10代不继续处理平级收益
if (EGrade.S_VIP.getValue() == beforeGradeValue) {
// 平级处理等级为最高级V5则结束处理
break;
}
continue; continue;
} }
// 平级收益商品价格 * 千分之五 -- 2位小数四舍五入 // 平级收益商品价格 * 千分之五 -- 2位小数四舍五入
@ -1395,7 +1361,7 @@ public class BonusSettleRangeHandle extends BonusSettleHandle {
int tmpGradeVal = (calGradeValue - beforeGradeValue) / 10; int tmpGradeVal = (calGradeValue - beforeGradeValue) / 10;
// 新等级的直推级差收益 // 新等级的直推级差收益
rangeBonusIncome = RetailConstants.RANGE_BONUS.multiply(new BigDecimal(tmpGradeVal)); rangeBonusIncome = RetailConstants.RANGE_BONUS.multiply(waresQuantityBig).multiply(new BigDecimal(tmpGradeVal));
// 直推级差收益 = 新等级的直推级差收益 - 上一等级的平级收益 // 直推级差收益 = 新等级的直推级差收益 - 上一等级的平级收益
rangeBonusIncome = rangeBonusIncome.subtract(beforeSameBonus); rangeBonusIncome = rangeBonusIncome.subtract(beforeSameBonus);
@ -1416,7 +1382,8 @@ 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.setPretaxIncome(rangeBonusIncome.multiply(new BigDecimal(waresQuantity))); cuMemberBonusRange.setCalAchieve(waresPrice);
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());
@ -1434,8 +1401,9 @@ 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(BigDecimal.valueOf(2)); oriMemberBonusRange.setCalValue(RetailConstants.SAME_RATIO);
oriMemberBonusRange.setPretaxIncome(sameBonusIncome.multiply(new BigDecimal(waresQuantity))); oriMemberBonusRange.setCalAchieve(waresPrice);
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());
@ -1448,135 +1416,127 @@ public class BonusSettleRangeHandle extends BonusSettleHandle {
memberBonusRangeList.add(oriMemberBonusRange); memberBonusRangeList.add(oriMemberBonusRange);
} }
/////////////////////////////////////////////////////////////// // // 如果价格是209代表是第一单激活只有平级收益只有V5有平级收益
// if (beginBuyPrice.equals(BigDecimal.valueOf(209))) {
// calGradeValue = EGrade.S_VIP.getValue();
// 如果价格是209代表是第一单激活只有平级收益只有V5有平级收益 // if (beginGradeValue < EGrade.S_VIP.getValue()) {
if (beginBuyPrice.equals(BigDecimal.valueOf(209))) { // beginGradeValue = EGrade.S_VIP.getValue();
calGradeValue = EGrade.S_VIP.getValue(); // }
if (beginGradeValue < EGrade.S_VIP.getValue()) { // }
beginGradeValue = EGrade.S_VIP.getValue(); // BdGrade bdGrade = gradeMap.get(calGradeValue);
} // BigDecimal buyPrice = bdGrade.getBuyPrice();
} // boolean isRange = Boolean.FALSE;
BdGrade bdGrade = gradeMap.get(calGradeValue); // // 有极差或者有平级
BigDecimal buyPrice = bdGrade.getBuyPrice(); // if (ComputeUtil.compareGreaterThan(beginBuyPrice, buyPrice)) {
boolean isRange = Boolean.FALSE; // // 计算极差
// 有极差或者有平级 // CuMemberBonus cuMemberBonus = getCuMemberBonus(period, cuMemberBonusMap, targetMemberRangeExt.getPkMember(),
if (ComputeUtil.compareGreaterThan(beginBuyPrice, buyPrice)) { // targetMemberRangeExt.getIncomeStatus(), targetMemberRangeExt.getPkSettleCountry(), targetMemberRangeExt.getPkRate() == null ? saOrderExt.getPkRate() : targetMemberRangeExt.getPkRate());
// 计算极差 // int pkBonusItems = getPkBonusItems(bonusConfigDTO, targetMemberRangeExt.getPkSettleCountry(), EBonusItems.RETAIL_RANGE_INCOME.getValue());
// CuMemberBonusRange cuMemberBonusRange = getCuMemberRetailBonusRange(saOrderExt, targetMemberRangeExt, cuMemberBonus, pkBonusItems);
CuMemberBonus cuMemberBonus = getCuMemberBonus(period, cuMemberBonusMap, targetMemberRangeExt.getPkMember(), // cuMemberBonusRange.setCalValue(BigDecimal.ZERO);
targetMemberRangeExt.getIncomeStatus(), targetMemberRangeExt.getPkSettleCountry(), targetMemberRangeExt.getPkRate() == null ? saOrderExt.getPkRate() : targetMemberRangeExt.getPkRate()); // cuMemberBonusRange.setPretaxIncome(ComputeUtil.computeDivide(ComputeUtil.computeMultiply(ComputeUtil.computeSubtract(ComputeUtil.computeSubtract(beginBuyPrice, buyPrice), calBonusIncome), saOrderItems.getWaresQuantity()), BigDecimal.ONE));
int pkBonusItems = getPkBonusItems(bonusConfigDTO, targetMemberRangeExt.getPkSettleCountry(), EBonusItems.RETAIL_RANGE_INCOME.getValue()); // cuMemberBonusRange.setPkRange(targetMemberRangeExt.getPkGrade());
CuMemberBonusRange cuMemberBonusRange = getCuMemberRetailBonusRange(saOrderExt, targetMemberRangeExt, cuMemberBonus, pkBonusItems); // cuMemberBonusRange.setPkBeforeRange(sourceMemberRangeExt.getPkGrade());
cuMemberBonusRange.setCalValue(BigDecimal.ZERO); // cuMemberBonusRange.setPkOrderItems(saOrderItems.getPkId());
cuMemberBonusRange.setPretaxIncome(ComputeUtil.computeDivide(ComputeUtil.computeMultiply(ComputeUtil.computeSubtract(ComputeUtil.computeSubtract(beginBuyPrice, buyPrice), calBonusIncome), saOrderItems.getWaresQuantity()), BigDecimal.ONE)); // rangeRetailRemark(saOrderExt, cuMemberBonusRange, sourceMemberRangeExt, targetMemberRangeExt);
cuMemberBonusRange.setPkRange(targetMemberRangeExt.getPkGrade()); // BdBonusDeduct bdBonusDeduct = setBonusDetailDeduct(bonusConfigDTO, cuMemberBonusRange, saOrderExt.getOrderAmount(), saOrderExt.getInExchangeRate());
cuMemberBonusRange.setPkBeforeRange(sourceMemberRangeExt.getPkGrade()); // if (EBonusIncomeStatus.NORMAL.getValue() == cuMemberBonusRange.getIncomeStatus()) {
cuMemberBonusRange.setPkOrderItems(saOrderItems.getPkId()); // cuMemberBonus.setRetailRangeIncome(ComputeUtil.computeAdd(cuMemberBonus.getRetailRangeIncome(), cuMemberBonusRange.getPretaxIncome()));
rangeRetailRemark(saOrderExt, cuMemberBonusRange, sourceMemberRangeExt, targetMemberRangeExt); // setRetailTotal(bdBonusDeduct, cuMemberBonus, cuMemberBonusRange);
BdBonusDeduct bdBonusDeduct = setBonusDetailDeduct(bonusConfigDTO, cuMemberBonusRange, saOrderExt.getOrderAmount(), saOrderExt.getInExchangeRate()); // }
if (EBonusIncomeStatus.NORMAL.getValue() == cuMemberBonusRange.getIncomeStatus()) { // memberBonusRangeList.add(cuMemberBonusRange);
cuMemberBonus.setRetailRangeIncome(ComputeUtil.computeAdd(cuMemberBonus.getRetailRangeIncome(), cuMemberBonusRange.getPretaxIncome())); //
setRetailTotal(bdBonusDeduct, cuMemberBonus, cuMemberBonusRange); // beginBuyPrice = buyPrice;
} // comBuyPrice = buyPrice;
memberBonusRangeList.add(cuMemberBonusRange); // beginGradeValue = calGradeValue;
// sourceMemberRangeExt = targetMemberRangeExt;
beginBuyPrice = buyPrice; // calBonusIncome = BigDecimal.ZERO;
comBuyPrice = buyPrice; // } else {
beginGradeValue = calGradeValue; // isRange = Boolean.TRUE;
sourceMemberRangeExt = targetMemberRangeExt; // pkParent = targetMemberRangeExt.getPkMember();
calBonusIncome = BigDecimal.ZERO; // }
} else { // if (saOrderExt.getOrderType().equals(EOrderType.RETAIL_CONSUME.getValue())) {
isRange = Boolean.TRUE; // if (isRange) {
pkParent = targetMemberRangeExt.getPkMember(); // pkParent = targetMemberRangeExt.getPkParent();
} // }
if (saOrderExt.getOrderType().equals(EOrderType.RETAIL_CONSUME.getValue())) { // continue;
if (isRange) { // }
pkParent = targetMemberRangeExt.getPkParent(); // if (bdGrade.getAlgebra() > 0) {
} // Long lastPkParent = pkParent;
continue; // for (int j = 0; j < bdGrade.getAlgebra(); j++) {
} // targetMemberRangeExt = memberRangeExtMap.get(lastPkParent);
if (bdGrade.getAlgebra() > 0) { // if (targetMemberRangeExt == null) {
Long lastPkParent = pkParent; // if (memberRangeExtMap.get(pkParent) == null) {
for (int j = 0; j < bdGrade.getAlgebra(); j++) { // break;
targetMemberRangeExt = memberRangeExtMap.get(lastPkParent); // }
if (targetMemberRangeExt == null) { // pkParent = memberRangeExtMap.get(pkParent).getPkParent();
if (memberRangeExtMap.get(pkParent) == null) { // break;
break; // }
} // calGradeValue = targetMemberRangeExt.getGradeValue();
pkParent = memberRangeExtMap.get(pkParent).getPkParent(); // BigDecimal sameBuyPrice = gradeMap.get(calGradeValue).getBuyPrice();
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;
} // }
lastPkParent = targetMemberRangeExt.getPkParent(); // if (ComputeUtil.compareGreaterThan(beginBuyPrice, sameBuyPrice)) {
if (EAccountStatus.STOP_INCOME.getValue() == targetMemberRangeExt.getAccountStatus() || // pkParent = lastPkParent;
ECategory.NORMAL.getValue() != targetMemberRangeExt.getCategory() || // break;
targetMemberRangeExt.getEnableStatus() == EYesNo.NO.getIntValue() || // }
EIncomeStatus.STOP_INCOME.getValue() == targetMemberRangeExt.getIncomeStatus()) { // lastPkParent = targetMemberRangeExt.getPkParent();
j--; // if (EAccountStatus.STOP_INCOME.getValue() == targetMemberRangeExt.getAccountStatus() ||
continue; // ECategory.NORMAL.getValue() != targetMemberRangeExt.getCategory() ||
} // targetMemberRangeExt.getEnableStatus() == EYesNo.NO.getIntValue() ||
BigDecimal bonusIncome = BigDecimal.ZERO; // EIncomeStatus.STOP_INCOME.getValue() == targetMemberRangeExt.getIncomeStatus()) {
if (j == 0) { // j--;
bonusIncome = bdGrade.getFirstAlgebra(); // continue;
} else if (j == 1) { // }
bonusIncome = bdGrade.getSecondAlgebra(); // BigDecimal bonusIncome = BigDecimal.ZERO;
} else if (j == 2) { // if (j == 0) {
bonusIncome = bdGrade.getThirdAlgebra(); // bonusIncome = bdGrade.getFirstAlgebra();
} // } else if (j == 1) {
if (ComputeUtil.compareEqual(beginBuyPrice, sameBuyPrice)) { // bonusIncome = bdGrade.getSecondAlgebra();
CuMemberBonus cuMemberBonus = getCuMemberBonus(period, cuMemberBonusMap, targetMemberRangeExt.getPkMember(), // } else if (j == 2) {
targetMemberRangeExt.getIncomeStatus(), targetMemberRangeExt.getPkSettleCountry(), targetMemberRangeExt.getPkRate() == null ? saOrderExt.getPkRate() : targetMemberRangeExt.getPkRate()); // bonusIncome = bdGrade.getThirdAlgebra();
int pkBonusItems = getPkBonusItems(bonusConfigDTO, targetMemberRangeExt.getPkSettleCountry(), EBonusItems.RETAIL_SAME_LEVEL_INCOME.getValue()); // }
CuMemberBonusRange oriMemberBonusRange = getCuMemberRetailBonusRange(saOrderExt, targetMemberRangeExt, cuMemberBonus, pkBonusItems); // if (ComputeUtil.compareEqual(beginBuyPrice, sameBuyPrice)) {
oriMemberBonusRange.setCalValue(BigDecimal.valueOf(10)); // CuMemberBonus cuMemberBonus = getCuMemberBonus(period, cuMemberBonusMap, targetMemberRangeExt.getPkMember(),
oriMemberBonusRange.setPretaxIncome(ComputeUtil.computeDivide(ComputeUtil.computeMultiply(bonusIncome, saOrderItems.getWaresQuantity()), BigDecimal.ONE)); // targetMemberRangeExt.getIncomeStatus(), targetMemberRangeExt.getPkSettleCountry(), targetMemberRangeExt.getPkRate() == null ? saOrderExt.getPkRate() : targetMemberRangeExt.getPkRate());
oriMemberBonusRange.setPkRange(targetMemberRangeExt.getPkGrade()); // int pkBonusItems = getPkBonusItems(bonusConfigDTO, targetMemberRangeExt.getPkSettleCountry(), EBonusItems.RETAIL_SAME_LEVEL_INCOME.getValue());
oriMemberBonusRange.setPkBeforeRange(sourceMemberRangeExt.getPkGrade()); // CuMemberBonusRange oriMemberBonusRange = getCuMemberRetailBonusRange(saOrderExt, targetMemberRangeExt, cuMemberBonus, pkBonusItems);
oriMemberBonusRange.setPkOrderItems(saOrderItems.getPkId()); // oriMemberBonusRange.setCalValue(BigDecimal.valueOf(10));
oriRetailRangeRemark(saOrderExt, oriMemberBonusRange, sourceMemberRangeExt, targetMemberRangeExt); // oriMemberBonusRange.setPretaxIncome(ComputeUtil.computeDivide(ComputeUtil.computeMultiply(bonusIncome, saOrderItems.getWaresQuantity()), BigDecimal.ONE));
BdBonusDeduct bdBonusDeduct = setBonusDetailDeduct(bonusConfigDTO, oriMemberBonusRange, saOrderExt.getOrderAmount(), saOrderExt.getInExchangeRate()); // oriMemberBonusRange.setPkRange(targetMemberRangeExt.getPkGrade());
if (EBonusIncomeStatus.NORMAL.getValue() == oriMemberBonusRange.getIncomeStatus()) { // oriMemberBonusRange.setPkBeforeRange(sourceMemberRangeExt.getPkGrade());
cuMemberBonus.setRetailSameLevelIncome(ComputeUtil.computeAdd(cuMemberBonus.getRetailSameLevelIncome(), oriMemberBonusRange.getPretaxIncome())); // oriMemberBonusRange.setPkOrderItems(saOrderItems.getPkId());
setRetailTotal(bdBonusDeduct, cuMemberBonus, oriMemberBonusRange); // oriRetailRangeRemark(saOrderExt, oriMemberBonusRange, sourceMemberRangeExt, targetMemberRangeExt);
} // BdBonusDeduct bdBonusDeduct = setBonusDetailDeduct(bonusConfigDTO, oriMemberBonusRange, saOrderExt.getOrderAmount(), saOrderExt.getInExchangeRate());
memberBonusRangeList.add(oriMemberBonusRange); // if (EBonusIncomeStatus.NORMAL.getValue() == oriMemberBonusRange.getIncomeStatus()) {
calBonusIncome = ComputeUtil.computeAdd(calBonusIncome, bonusIncome); // cuMemberBonus.setRetailSameLevelIncome(ComputeUtil.computeAdd(cuMemberBonus.getRetailSameLevelIncome(), oriMemberBonusRange.getPretaxIncome()));
pkParent = lastPkParent; // setRetailTotal(bdBonusDeduct, cuMemberBonus, oriMemberBonusRange);
} else { // }
j--; // memberBonusRangeList.add(oriMemberBonusRange);
} // calBonusIncome = ComputeUtil.computeAdd(calBonusIncome, bonusIncome);
if (j == bdGrade.getAlgebra() - 1) { // pkParent = lastPkParent;
beginGradeValue += 1; // } else {
comBuyPrice = ComputeUtil.computeSubtract(comBuyPrice, BigDecimal.ONE); // j--;
break; // }
} // if (j == bdGrade.getAlgebra() - 1) {
} // beginGradeValue += 1;
} else { // comBuyPrice = ComputeUtil.computeSubtract(comBuyPrice, BigDecimal.ONE);
if (isRange) { // break;
pkParent = targetMemberRangeExt.getPkParent(); // }
} // }
} // } else {
if (beginGradeValue > EGrade.S_VIP.getValue()) { // if (isRange) {
break; // pkParent = targetMemberRangeExt.getPkParent();
} // }
// }
// if (beginGradeValue > EGrade.S_VIP.getValue()) {
// break;
// }
} }
return memberBonusRangeList; return memberBonusRangeList;
} }

View File

@ -9,27 +9,11 @@ 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"};
/** /**
* 主键 * 主键
*/ */
@ -102,185 +86,60 @@ public class CuMemberBonusVO implements Serializable {
*/ */
private Integer grantStatus; private Integer grantStatus;
// /** /**
// * 直推收益 * 需要转换人民币的
// */ */
// @Excel(name = "直推收益", scale = 2) public static final String[] INCOME_ARRAY = new String[]{
// private BigDecimal directIncomeOri; "backPoints", "retailRangeIncome", "retailSameLevelIncome", "retailAreaIncome",
// "retailBenefitRangeIncome", "retailBenefitAvgIncome",
// /** "retailBenefitIncome", "retailRealSubtotal", "realIncomeTotal"};
// * 直推收益
// */
// @Excel(name = "直推收益($)", scale = 2) private BigDecimal retailRangeIncome;
// private BigDecimal directIncome; /**
// * 直推收益
// /** */
// * 拓展收益 @Excel(name = "直推收益", scale = 2)
// */ private BigDecimal retailRangeIncomeOri;
// @Excel(name = "拓展收益", scale = 2)
// private BigDecimal expandIncomeOri; private BigDecimal retailSameLevelIncome;
// /**
// /** * 平级收益
// * 拓展收益 */
// */ @Excel(name = "平级收益", scale = 2)
// @Excel(name = "拓展收益($)", scale = 2) private BigDecimal retailSameLevelIncomeOri;
// private BigDecimal expandIncome;
// private BigDecimal retailAreaIncome;
// /** /**
// * 拓展无封 (拓展收益按等级正常比例结算 拓展收益按等级正常比例结算 无封顶) * 区域分红
// */ */
// private BigDecimal expandNoCapping; @Excel(name = "区域分红", scale = 2)
// private BigDecimal retailAreaIncomeOri;
// /**
// * 拓展封顶 (拓展收益按等级正常比例结算不按4-N结算根据配置的封顶值限制最大收益) /**
// */ * 新零售福利极差收益
// private BigDecimal expandCapping; */
// private BigDecimal retailBenefitRangeIncome;
//
// /** @Excel(name = " 福利极差收益", scale = 2)
// * 拓展无封 (拓展收益按等级正常比例结算 拓展收益按等级正常比例结算 无封顶) private BigDecimal retailBenefitRangeIncomeOri;
// */
// private BigDecimal expandNoCappingOri; /**
// * 新零售福利平均收益
// /** */
// * 拓展封顶 (拓展收益按等级正常比例结算不按4-N结算根据配置的封顶值限制最大收益) private BigDecimal retailBenefitAvgIncome;
// */
// private BigDecimal expandCappingOri; @Excel(name = " 福利平均收益", scale = 2)
// private BigDecimal retailBenefitAvgIncomeOri;
// /**
// * 辅导收益 /**
// */ * 新零售福利加权收益
// @Excel(name = "辅导收益", scale = 2) */
// private BigDecimal coachIncomeOri; private BigDecimal retailBenefitIncome;
//
// /** @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;
//
/** /**
* 商城重消 * 商城重消
*/ */
@ -290,184 +149,11 @@ 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)
@ -479,10 +165,8 @@ 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;
} }

View File

@ -111,28 +111,29 @@
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.enableStatus} enable_status #{item.recommendNum} recommend_num, #{item.teamNum} team_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_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>
<!-- 当前网体更新极差秒接表 --> <!-- 当前网体更新极差秒接表 -->
@ -190,18 +191,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.newConsumePv} new_consume_pv, #{item.teamNewAmount} team_new_amount, #{item.newBoxNum} new_box_num, #{item.newConsumePv} new_consume_pv,
#{item.teamNewPv} team_new_pv, #{item.teamNewBoxNum} team_new_box_num, #{item.teamNewBoxNum} team_new_box_num, #{item.teamNewPv} team_new_pv,
#{item.newBoxNum} new_box_num, #{item.enableStatus} enable_status #{item.teamNewAmount} team_new_amount, #{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_consume_pv = b.new_consume_pv, a.team_new_amount = b.team_new_amount, a.new_box_num = b.new_box_num, a.new_consume_pv = b.new_consume_pv,
a.team_new_pv = b.team_new_pv, a.team_new_box_num = b.team_new_box_num, a.team_new_box_num = b.team_new_box_num,a.team_new_pv = b.team_new_pv,
a.new_box_num = b.new_box_num, a.enable_status = b.enable_status a.team_new_amount = b.team_new_amount,a.enable_status = b.enable_status
</update> </update>
<update id="mergeMemberRetailGradeByMember"> <update id="mergeMemberRetailGradeByMember">

View File

@ -298,8 +298,11 @@
</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,cm.pk_settle_grade,cm.pk_awards,bv.vertex_name,ct.team_name, select cm.member_code, cm.member_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,
@ -311,9 +314,7 @@
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.pk_vertex, cm.service_code, cm.nick_name
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
@ -325,7 +326,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}

View File

@ -5,14 +5,13 @@ 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;
/** /**
@ -44,7 +43,13 @@ 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();
return AjaxResult.success(retailAchieveService.selectMemberSmallBox(pkMember, pkCountry, systemType)); CuMemberRetailDataStatisticsResultVO result = retailAchieveService.getRetailDataStatisticsDetail(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));
} }
/** /**

View File

@ -3,6 +3,7 @@ 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;
@ -166,6 +167,13 @@ public interface CuMemberRetailRangeMapper extends BaseMapper<CuMemberRetailRang
*/ */
List<CuMemberRetailAchieveVO> selectMemberSumAchieve(CuMemberRetailAchieveVO cuMemberAchieveVO); List<CuMemberRetailAchieveVO> selectMemberSumAchieve(CuMemberRetailAchieveVO cuMemberAchieveVO);
/**
* 获取会员结算明细
* @param cuMemberAchieveVO
* @return
*/
List<CuMemberRetailDataStatisticsDetailVO> getRetailDataStatisticsDetail(CuMemberRetailAchieveVO cuMemberAchieveVO);
/** /**
* 查询当天自己新增盒数 * 查询当天自己新增盒数
* *

View File

@ -3,8 +3,11 @@ 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> {
@ -100,4 +103,12 @@ 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);
} }

View File

@ -1,19 +1,26 @@
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;
@ -388,9 +395,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();
//查询自己业绩 //查询自己业绩
@ -486,8 +493,12 @@ public class CuMemberRetailAchieveServiceImpl extends ServiceImpl<CuMemberRetail
* @return String * @return String
*/ */
private String getAchieveAndBoxTableName(String date) { private String getAchieveAndBoxTableName(String date) {
int period = iCuMemberSettlePeriodService.getCuMemberSettlePeriodByDate(date).getPkId(); CuMemberSettlePeriod cuMemberSettlePeriod = iCuMemberSettlePeriodService.getCuMemberSettlePeriodByDate(date);
return TableNameConstants.CU_MEMBER_AMOUNT_BOX + period; if(ObjectUtil.isNotEmpty(cuMemberSettlePeriod)){
int period = cuMemberSettlePeriod.getPkId();
return TableNameConstants.CU_MEMBER_AMOUNT_BOX + period;
}
return "";
} }
@Override @Override
@ -546,6 +557,25 @@ 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;
}
/** /**
* 查询会员是否激活 * 查询会员是否激活
* *

View File

@ -0,0 +1,156 @@
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);
}
}

View File

@ -0,0 +1,104 @@
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;
}

View File

@ -0,0 +1,58 @@
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;
}

View File

@ -836,4 +836,39 @@
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>

View File

@ -1,13 +1,11 @@
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.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
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;
@ -19,10 +17,8 @@ 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.*;
@ -32,12 +28,7 @@ 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")
@ -45,79 +36,63 @@ public class BdBonusItemsController extends BaseController {
@Autowired @Autowired
private IBdBonusItemsService bonusItemsService; private IBdBonusItemsService bonusItemsService;
@DubboReference @Autowired
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) {
startPage();
QueryWrapper<BdBonusItems> queryWrapper = new QueryWrapper();
queryWrapper.eq("PK_COUNTRY", SecurityUtils.getPkCountry());
if(StringUtils.isNotNull(bonusItems.getBonusName())){
queryWrapper.eq("BONUS_NAME",bonusItems.getBonusName());
}
queryWrapper.orderByAsc("PK_ID");
List<BdBonusItemsExt> listExt = new ArrayList<>(); List<BdBonusItemsExt> listExt = new ArrayList<>();
startPage();
LambdaQueryWrapper<BdBonusItems> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.eq(BdBonusItems::getPkCountry, SecurityUtils.getPkCountry());
if (StringUtils.isNotNull(bonusItems.getBonusName())) {
queryWrapper.eq(BdBonusItems::getBonusName, bonusItems.getBonusName());
}
queryWrapper.orderByAsc(BdBonusItems::getPkId);
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) {
QueryWrapper<BdBonusItems> queryWrapper = new QueryWrapper(); LambdaQueryWrapper<BdBonusItems> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.eq("PK_COUNTRY", SecurityUtils.getPkCountry()); queryWrapper.eq(BdBonusItems::getPkCountry, SecurityUtils.getPkCountry());
if(StringUtils.isNotNull(bonusItems.getBonusName())){ if (StringUtils.isNotNull(bonusItems.getBonusName())) {
queryWrapper.eq("BONUS_NAME",bonusItems.getBonusName()); queryWrapper.eq(BdBonusItems::getBonusName, bonusItems.getBonusName());
} }
queryWrapper.orderByAsc("PK_ID"); queryWrapper.orderByAsc(BdBonusItems::getPkId);
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) {
QueryWrapper<BdBonusItems> queryWrapper = new QueryWrapper(); LambdaQueryWrapper<BdBonusItems> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.eq("PK_COUNTRY", SecurityUtils.getPkCountry()); queryWrapper.eq(BdBonusItems::getPkCountry, SecurityUtils.getPkCountry());
if(StringUtils.isNotNull(bonusItems.getBonusName())){ if (StringUtils.isNotNull(bonusItems.getBonusName())) {
queryWrapper.eq("BONUS_NAME",bonusItems.getBonusName()); queryWrapper.eq(BdBonusItems::getBonusName, bonusItems.getBonusName());
} }
queryWrapper.orderByAsc("PK_ID"); queryWrapper.orderByAsc(BdBonusItems::getPkId);
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)));
@ -125,112 +100,71 @@ 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) {
UpdateWrapper<BdBonusItems> updateWrapper = new UpdateWrapper<>(); LambdaUpdateWrapper<BdBonusItems> updateWrapper = new LambdaUpdateWrapper<>();
updateWrapper.eq("PK_ID", pkId); updateWrapper.eq(BdBonusItems::getPkId, pkId);
updateWrapper.set("DEL_FLAG", EDelFlag.DELETE.getValue()); updateWrapper.set(BdBonusItems::getDelFlag, EDelFlag.DELETE.getValue());
updateWrapper.set("PK_MODIFIED", SecurityUtils.getUserId()); updateWrapper.set(BdBonusItems::getPkModified, SecurityUtils.getUserId());
updateWrapper.set("MODIFIED_TIME", new Date()); updateWrapper.set(BdBonusItems::getModifiedTime, 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));
} }
} }

View File

@ -17,15 +17,6 @@ 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");
/** /**
* 盒数产品列表 * 盒数产品列表

View File

@ -52,7 +52,10 @@ 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。";
@ -110,10 +113,16 @@ 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。";

View File

@ -5,18 +5,14 @@ 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"),

View File

@ -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;

View File

@ -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;

View File

@ -6,12 +6,7 @@ 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)
@ -22,28 +17,25 @@ 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;
} }