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