## 特殊体系复购级差奖项;
This commit is contained in:
parent
e8d9cab955
commit
0dbc58f58b
|
@ -44,7 +44,7 @@ public class CuMemberRetailRangeServiceImpl extends ServiceImpl<CuMemberRetailRa
|
||||||
for (SaOrderExt saOrderExt : saOrderExtList) {
|
for (SaOrderExt saOrderExt : saOrderExtList) {
|
||||||
orderIdSet.add(saOrderExt.getPkMember());
|
orderIdSet.add(saOrderExt.getPkMember());
|
||||||
}
|
}
|
||||||
List<List<?>> cutOrderList = cuMemberBonusSettle.handleCutList(orderIdSet, MagicNumberConstants.DELETE_DATA_BATCH_UPDATE_NUM);
|
List<List<?>> cutOrderList = cuMemberBonusSettle.handleCutList(orderIdSet, MagicNumberConstants.BATCH_QUERY_NUM);
|
||||||
cutOrderList.forEach(orderList -> {
|
cutOrderList.forEach(orderList -> {
|
||||||
List<CuMemberRetailRangeExt> rangeExtList = baseMapper.queryCuMemberRetailRangeParent(tableName, orderList);
|
List<CuMemberRetailRangeExt> rangeExtList = baseMapper.queryCuMemberRetailRangeParent(tableName, orderList);
|
||||||
if (rangeExtList.size() > 0) {
|
if (rangeExtList.size() > 0) {
|
||||||
|
|
|
@ -0,0 +1,11 @@
|
||||||
|
package com.hzs.bonus.base.mapper;
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||||
|
import com.hzs.common.domain.vertex.BdVertexBonus;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 体系奖金配置(记录哪个体系走特殊奖金) Mapper 接口
|
||||||
|
*/
|
||||||
|
public interface BdVertexBonusMapper extends BaseMapper<BdVertexBonus> {
|
||||||
|
|
||||||
|
}
|
|
@ -5,6 +5,7 @@ import com.hzs.common.domain.member.base.CuMember;
|
||||||
import com.hzs.common.domain.member.detail.CuMemberAwards;
|
import com.hzs.common.domain.member.detail.CuMemberAwards;
|
||||||
import com.hzs.common.domain.member.detail.CuMemberGrade;
|
import com.hzs.common.domain.member.detail.CuMemberGrade;
|
||||||
import com.hzs.common.domain.member.ext.CuMemberExt;
|
import com.hzs.common.domain.member.ext.CuMemberExt;
|
||||||
|
import com.hzs.common.domain.vertex.BdVertexBonus;
|
||||||
import org.apache.ibatis.annotations.Param;
|
import org.apache.ibatis.annotations.Param;
|
||||||
|
|
||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
|
@ -94,4 +95,12 @@ public interface CuMemberMapper extends BaseMapper<CuMember> {
|
||||||
*/
|
*/
|
||||||
List<CuMember> queryCuMemberShareTotal(Integer pkCountry);
|
List<CuMember> queryCuMemberShareTotal(Integer pkCountry);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 查询体系奖项列表
|
||||||
|
*
|
||||||
|
* @param pkMember
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
List<BdVertexBonus> listVertexBonus(@Param("pkMember") Long pkMember);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -0,0 +1,21 @@
|
||||||
|
package com.hzs.bonus.base.service;
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.extension.service.IService;
|
||||||
|
import com.hzs.common.domain.vertex.BdVertexBonus;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 体系奖金配置(记录哪个体系走特殊奖金) 服务类
|
||||||
|
*/
|
||||||
|
public interface IBdVertexBonusService extends IService<BdVertexBonus> {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 查询体系奖金map
|
||||||
|
*
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
Map<Long, List<Integer>> queryVertexBonus();
|
||||||
|
|
||||||
|
}
|
|
@ -5,6 +5,7 @@ import com.hzs.common.domain.member.base.CuMember;
|
||||||
import com.hzs.common.domain.member.detail.CuMemberAwards;
|
import com.hzs.common.domain.member.detail.CuMemberAwards;
|
||||||
import com.hzs.common.domain.member.detail.CuMemberGrade;
|
import com.hzs.common.domain.member.detail.CuMemberGrade;
|
||||||
import com.hzs.common.domain.member.ext.CuMemberExt;
|
import com.hzs.common.domain.member.ext.CuMemberExt;
|
||||||
|
import com.hzs.common.domain.vertex.BdVertexBonus;
|
||||||
|
|
||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
@ -82,4 +83,13 @@ public interface ICuMemberService extends IService<CuMember> {
|
||||||
* 查询可以获得分红的会员人数
|
* 查询可以获得分红的会员人数
|
||||||
*/
|
*/
|
||||||
List<CuMember> queryCuMemberShareTotal(Integer pkCountry);
|
List<CuMember> queryCuMemberShareTotal(Integer pkCountry);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 查询体系奖项列表
|
||||||
|
*
|
||||||
|
* @param pkMember
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
List<BdVertexBonus> listVertexBonus(Long pkMember);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -0,0 +1,41 @@
|
||||||
|
package com.hzs.bonus.base.service.impl;
|
||||||
|
|
||||||
|
import cn.hutool.core.collection.CollectionUtil;
|
||||||
|
import com.hzs.bonus.base.mapper.BdVertexBonusMapper;
|
||||||
|
import com.hzs.bonus.base.service.IBdVertexBonusService;
|
||||||
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||||
|
import com.hzs.common.domain.vertex.BdVertexBonus;
|
||||||
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.HashMap;
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 体系奖金配置(记录哪个体系走特殊奖金) 服务实现类
|
||||||
|
*/
|
||||||
|
@Service
|
||||||
|
public class BdVertexBonusServiceImpl extends ServiceImpl<BdVertexBonusMapper, BdVertexBonus> implements IBdVertexBonusService {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Map<Long, List<Integer>> queryVertexBonus() {
|
||||||
|
HashMap<Long, List<Integer>> resultMap = new HashMap<>();
|
||||||
|
|
||||||
|
List<BdVertexBonus> vertexBonusList = this.list();
|
||||||
|
if (CollectionUtil.isNotEmpty(vertexBonusList)) {
|
||||||
|
for (BdVertexBonus bdVertexBonus : vertexBonusList) {
|
||||||
|
if (resultMap.containsKey(bdVertexBonus.getPkVertex())) {
|
||||||
|
resultMap.get(bdVertexBonus.getPkVertex()).add(bdVertexBonus.getBonusItems());
|
||||||
|
} else {
|
||||||
|
List<Integer> tmpList = new ArrayList<>();
|
||||||
|
tmpList.add(bdVertexBonus.getBonusItems());
|
||||||
|
resultMap.put(bdVertexBonus.getPkVertex(), tmpList);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return resultMap;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -9,6 +9,7 @@ import com.hzs.common.domain.member.detail.CuMemberAwards;
|
||||||
import com.hzs.common.domain.member.detail.CuMemberGrade;
|
import com.hzs.common.domain.member.detail.CuMemberGrade;
|
||||||
import com.hzs.common.domain.member.ext.CuMemberExt;
|
import com.hzs.common.domain.member.ext.CuMemberExt;
|
||||||
import com.hzs.bonus.base.mapper.CuMemberMapper;
|
import com.hzs.bonus.base.mapper.CuMemberMapper;
|
||||||
|
import com.hzs.common.domain.vertex.BdVertexBonus;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
|
@ -87,4 +88,8 @@ public class CuMemberServiceImpl extends ServiceImpl<CuMemberMapper, CuMember> i
|
||||||
return baseMapper.queryCuMemberShareTotal(pkCountry);
|
return baseMapper.queryCuMemberShareTotal(pkCountry);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public List<BdVertexBonus> listVertexBonus(Long pkMember) {
|
||||||
|
return baseMapper.listVertexBonus(pkMember);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -2,15 +2,18 @@ package com.hzs.bonus.bonus.controller.api;
|
||||||
|
|
||||||
import cn.hutool.core.bean.BeanUtil;
|
import cn.hutool.core.bean.BeanUtil;
|
||||||
import cn.hutool.core.collection.CollectionUtil;
|
import cn.hutool.core.collection.CollectionUtil;
|
||||||
|
import com.hzs.bonus.base.service.ICuMemberService;
|
||||||
import com.hzs.bonus.bonus.param.BonusParam;
|
import com.hzs.bonus.bonus.param.BonusParam;
|
||||||
import com.hzs.bonus.bonus.service.ICuMemberBonusService;
|
import com.hzs.bonus.bonus.service.ICuMemberBonusService;
|
||||||
import com.hzs.bonus.bonus.vo.*;
|
import com.hzs.bonus.bonus.vo.*;
|
||||||
|
import com.hzs.common.core.enums.EBonusItems;
|
||||||
import com.hzs.common.core.enums.EGrantStatus;
|
import com.hzs.common.core.enums.EGrantStatus;
|
||||||
import com.hzs.common.core.utils.ComputeUtil;
|
import com.hzs.common.core.utils.ComputeUtil;
|
||||||
import com.hzs.common.core.utils.DateUtils;
|
import com.hzs.common.core.utils.DateUtils;
|
||||||
import com.hzs.common.core.web.controller.BaseController;
|
import com.hzs.common.core.web.controller.BaseController;
|
||||||
import com.hzs.common.core.web.page.TableDataInfo;
|
import com.hzs.common.core.web.page.TableDataInfo;
|
||||||
import com.hzs.common.domain.member.ext.CuMemberBonusExt;
|
import com.hzs.common.domain.member.ext.CuMemberBonusExt;
|
||||||
|
import com.hzs.common.domain.vertex.BdVertexBonus;
|
||||||
import com.hzs.common.security.utils.SecurityUtils;
|
import com.hzs.common.security.utils.SecurityUtils;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
|
@ -21,10 +24,7 @@ import org.springframework.web.bind.annotation.RestController;
|
||||||
|
|
||||||
import java.math.BigDecimal;
|
import java.math.BigDecimal;
|
||||||
import java.time.temporal.ChronoUnit;
|
import java.time.temporal.ChronoUnit;
|
||||||
import java.util.ArrayList;
|
import java.util.*;
|
||||||
import java.util.Collections;
|
|
||||||
import java.util.Date;
|
|
||||||
import java.util.List;
|
|
||||||
|
|
||||||
@RestController
|
@RestController
|
||||||
@RequestMapping("/api/bonus")
|
@RequestMapping("/api/bonus")
|
||||||
|
@ -33,6 +33,8 @@ public class ApiCuMemberBonusController extends BaseController {
|
||||||
|
|
||||||
@Autowired
|
@Autowired
|
||||||
private ICuMemberBonusService iCuMemberBonusService;
|
private ICuMemberBonusService iCuMemberBonusService;
|
||||||
|
@Autowired
|
||||||
|
private ICuMemberService iCuMemberService;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 新零售实时奖金:查询会员实时奖金,当日的奖金
|
* 新零售实时奖金:查询会员实时奖金,当日的奖金
|
||||||
|
@ -45,6 +47,9 @@ public class ApiCuMemberBonusController extends BaseController {
|
||||||
bonusParam.setEndDate(DateUtils.afterDate(1, ChronoUnit.DAYS, DateUtils.currentDate()));
|
bonusParam.setEndDate(DateUtils.afterDate(1, ChronoUnit.DAYS, DateUtils.currentDate()));
|
||||||
bonusParam.setGrantStatus(EGrantStatus.SETTLED.getValue());
|
bonusParam.setGrantStatus(EGrantStatus.SETTLED.getValue());
|
||||||
|
|
||||||
|
// 控制复购级差收益的返回
|
||||||
|
final boolean rangeIncomeFlag = this.checkRangeIncome();
|
||||||
|
|
||||||
List<CuMemberBonusExt> cuMemberBonusList = iCuMemberBonusService.queryMemberSecondBonusVoByCondition(bonusParam);
|
List<CuMemberBonusExt> cuMemberBonusList = iCuMemberBonusService.queryMemberSecondBonusVoByCondition(bonusParam);
|
||||||
List<MemberBonusVO> memberBonusVOList = new ArrayList<>();
|
List<MemberBonusVO> memberBonusVOList = new ArrayList<>();
|
||||||
cuMemberBonusList.forEach(cuMemberBonus -> {
|
cuMemberBonusList.forEach(cuMemberBonus -> {
|
||||||
|
@ -52,10 +57,17 @@ public class ApiCuMemberBonusController extends BaseController {
|
||||||
MemberBonusVO memberBonusVO = BeanUtil.copyProperties(cuMemberBonus, MemberBonusVO.class, "settleDate");
|
MemberBonusVO memberBonusVO = BeanUtil.copyProperties(cuMemberBonus, MemberBonusVO.class, "settleDate");
|
||||||
memberBonusVO.setServiceSpend(BigDecimal.ZERO);
|
memberBonusVO.setServiceSpend(BigDecimal.ZERO);
|
||||||
memberBonusVO.setSettleDate(DateUtils.currentDate());
|
memberBonusVO.setSettleDate(DateUtils.currentDate());
|
||||||
BigDecimal serviceSpend = ComputeUtil.computeSubtract(ComputeUtil.computeAddNum(cuMemberBonus.getRetailRangeIncome(), cuMemberBonus.getRetailSameLevelIncome(),
|
BigDecimal serviceSpend = ComputeUtil.computeSubtract(
|
||||||
cuMemberBonus.getRetailAreaIncome()),
|
ComputeUtil.computeAddNum(cuMemberBonus.getRetailRangeIncome(), cuMemberBonus.getRetailSameLevelIncome(),
|
||||||
cuMemberBonus.getRetailRealSubtotal());
|
cuMemberBonus.getRetailAreaIncome()), cuMemberBonus.getRetailRealSubtotal()
|
||||||
|
);
|
||||||
memberBonusVO.setBackPoints(serviceSpend);
|
memberBonusVO.setBackPoints(serviceSpend);
|
||||||
|
|
||||||
|
if (!rangeIncomeFlag) {
|
||||||
|
// 没有复购级差
|
||||||
|
memberBonusVO.setRepurRangeIncome(null);
|
||||||
|
}
|
||||||
|
|
||||||
memberBonusVOList.add(memberBonusVO);
|
memberBonusVOList.add(memberBonusVO);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
@ -63,7 +75,7 @@ public class ApiCuMemberBonusController extends BaseController {
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 新零售实时奖金:查询会员奖金列表
|
* 新零售日结奖金:查询会员奖金列表
|
||||||
*/
|
*/
|
||||||
@PostMapping("/query-bonus-first")
|
@PostMapping("/query-bonus-first")
|
||||||
public TableDataInfo listFirstRepurchaseBonus(@RequestBody BonusParam bonusParam) {
|
public TableDataInfo listFirstRepurchaseBonus(@RequestBody BonusParam bonusParam) {
|
||||||
|
@ -71,17 +83,24 @@ public class ApiCuMemberBonusController extends BaseController {
|
||||||
|
|
||||||
List<CuMemberBonusExt> cuMemberBonusList = iCuMemberBonusService.queryMemberBonusVoByCondition(bonusParam);
|
List<CuMemberBonusExt> cuMemberBonusList = iCuMemberBonusService.queryMemberBonusVoByCondition(bonusParam);
|
||||||
|
|
||||||
|
// 控制复购级差收益的返回
|
||||||
|
final boolean rangeIncomeFlag = this.checkRangeIncome();
|
||||||
|
|
||||||
List<MemberBonusFirstPurchaseVO> firstPurchaseVOList = new ArrayList<>();
|
List<MemberBonusFirstPurchaseVO> firstPurchaseVOList = new ArrayList<>();
|
||||||
cuMemberBonusList.forEach(cuMemberBonus -> {
|
cuMemberBonusList.forEach(cuMemberBonus -> {
|
||||||
MemberBonusFirstPurchaseVO memberBonusFirstPurchaseVO = BeanUtil.copyProperties(cuMemberBonus, MemberBonusFirstPurchaseVO.class, "settleDate");
|
MemberBonusFirstPurchaseVO memberBonusFirstPurchaseVO = BeanUtil.copyProperties(cuMemberBonus, MemberBonusFirstPurchaseVO.class, "settleDate");
|
||||||
packageSettleDate(cuMemberBonus, memberBonusFirstPurchaseVO);
|
packageSettleDate(cuMemberBonus, memberBonusFirstPurchaseVO);
|
||||||
|
if (!rangeIncomeFlag) {
|
||||||
|
// 没有复购级差
|
||||||
|
memberBonusFirstPurchaseVO.setRepurRangeIncome(null);
|
||||||
|
}
|
||||||
firstPurchaseVOList.add(memberBonusFirstPurchaseVO);
|
firstPurchaseVOList.add(memberBonusFirstPurchaseVO);
|
||||||
});
|
});
|
||||||
return getDataTable(firstPurchaseVOList);
|
return getDataTable(firstPurchaseVOList);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 新零售实时奖金:查询会员昨日奖金汇总
|
* 新零售日结奖金:查询会员昨日奖金汇总
|
||||||
*/
|
*/
|
||||||
@PostMapping("/query-bonus-total")
|
@PostMapping("/query-bonus-total")
|
||||||
public TableDataInfo lisBonusTotal(@RequestBody BonusParam bonusParam) {
|
public TableDataInfo lisBonusTotal(@RequestBody BonusParam bonusParam) {
|
||||||
|
@ -158,8 +177,24 @@ public class ApiCuMemberBonusController extends BaseController {
|
||||||
public TableDataInfo listBonusSource(@RequestBody BonusParam bonusParam) {
|
public TableDataInfo listBonusSource(@RequestBody BonusParam bonusParam) {
|
||||||
setBonusParam(bonusParam);
|
setBonusParam(bonusParam);
|
||||||
startPage();
|
startPage();
|
||||||
TableDataInfo tableDataInfo = iCuMemberBonusService.queryMemberBonusDetailVoByCondition(bonusParam);
|
return iCuMemberBonusService.queryMemberBonusDetailVoByCondition(bonusParam);
|
||||||
return tableDataInfo;
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 校验是否有复购级差
|
||||||
|
*
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
private boolean checkRangeIncome() {
|
||||||
|
List<BdVertexBonus> vertexBonusList = iCuMemberService.listVertexBonus(SecurityUtils.getUserId());
|
||||||
|
if (CollectionUtil.isNotEmpty(vertexBonusList)) {
|
||||||
|
for (BdVertexBonus bdVertexBonus : vertexBonusList) {
|
||||||
|
if (EBonusItems.REPURCHASE_RANGE_INCOME.getValue() == bdVertexBonus.getBonusItems()) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -104,11 +104,7 @@ public class CuMemberBonusController extends BaseController {
|
||||||
private List<BonusTotalVO> getBonusTotalVoS(List<CuMemberBonusExt> cuMemberBonusList) {
|
private List<BonusTotalVO> getBonusTotalVoS(List<CuMemberBonusExt> cuMemberBonusList) {
|
||||||
List<BonusTotalVO> totalVoList = new ArrayList<>();
|
List<BonusTotalVO> totalVoList = new ArrayList<>();
|
||||||
cuMemberBonusList.forEach(cuMemberBonus -> {
|
cuMemberBonusList.forEach(cuMemberBonus -> {
|
||||||
BonusTotalVO bonusTotalVO = BeanUtil.copyProperties(cuMemberBonus, BonusTotalVO.class);
|
totalVoList.add(BeanUtil.copyProperties(cuMemberBonus, BonusTotalVO.class));
|
||||||
for (String key : CuMemberBonusVO.INCOME_ARRAY) {
|
|
||||||
ReflectUtils.invokeSetter(bonusTotalVO, key + BonusFieldConstants.INCOME_SUFFIX, ComputeUtil.computeMultiply(ReflectUtils.invokeGetter(cuMemberBonus, key), cuMemberBonus.getOutExchangeRate()));
|
|
||||||
}
|
|
||||||
totalVoList.add(bonusTotalVO);
|
|
||||||
});
|
});
|
||||||
return totalVoList;
|
return totalVoList;
|
||||||
}
|
}
|
||||||
|
|
|
@ -179,14 +179,9 @@ public class BonusGrantServiceImpl implements IBonusGrantService {
|
||||||
// 奖金币(首购+复购+云代+海粉+嗨粉+店铺)
|
// 奖金币(首购+复购+云代+海粉+嗨粉+店铺)
|
||||||
packAccountTrade(cuMemberTradeList, bdAccountValueMap, EAccount.BONUS.getValue(), currentDateTime, cuMemberBonus, ComputeUtil.computeMultiply(cuMemberBonus.getRealIncomeTotal(), currencyDTO.getOutExchangeRate()), settleDate);
|
packAccountTrade(cuMemberTradeList, bdAccountValueMap, EAccount.BONUS.getValue(), currentDateTime, cuMemberBonus, ComputeUtil.computeMultiply(cuMemberBonus.getRealIncomeTotal(), currencyDTO.getOutExchangeRate()), settleDate);
|
||||||
// 重销币(商城重消+平台服务费)
|
// 重销币(商城重消+平台服务费)
|
||||||
// BigDecimal repeat = ComputeUtil.computeAdd(cuMemberBonus.getBackPoints(), cuMemberBonus.getServiceSpend());
|
|
||||||
packAccountTrade(cuMemberTradeList, bdAccountValueMap, EAccount.REPEAT.getValue(), currentDateTime, cuMemberBonus, ComputeUtil.computeMultiply(cuMemberBonus.getBackPoints(), currencyDTO.getOutExchangeRate()), settleDate);
|
packAccountTrade(cuMemberTradeList, bdAccountValueMap, EAccount.REPEAT.getValue(), currentDateTime, cuMemberBonus, ComputeUtil.computeMultiply(cuMemberBonus.getBackPoints(), currencyDTO.getOutExchangeRate()), settleDate);
|
||||||
// 复购券
|
// 复购券
|
||||||
packAccountTrade(cuMemberTradeList, bdAccountValueMap, EAccount.REPURCHASE.getValue(), currentDateTime, cuMemberBonus, ComputeUtil.computeMultiply(cuMemberBonus.getRepurCouponSubtotal(), currencyDTO.getOutExchangeRate()), settleDate);
|
packAccountTrade(cuMemberTradeList, bdAccountValueMap, EAccount.REPURCHASE.getValue(), currentDateTime, cuMemberBonus, ComputeUtil.computeMultiply(cuMemberBonus.getRepurCouponSubtotal(), currencyDTO.getOutExchangeRate()), settleDate);
|
||||||
// 环球积分
|
|
||||||
// packAccountTrade(cuMemberTradeList, bdAccountValueMap, EAccount.GLOBAL_POINTS.getValue(), currentDateTime, cuMemberBonus, ComputeUtil.computeMultiply(cuMemberBonus.getGlobalPoints(), currencyDTO.getOutExchangeRate()), settleDate);
|
|
||||||
// 车奖积分
|
|
||||||
// packAccountTrade(cuMemberTradeList, bdAccountValueMap, EAccount.CAR_AWARD_POINTS.getValue(), currentDateTime, cuMemberBonus, ComputeUtil.computeMultiply(cuMemberBonus.getCarAwardPoints(), currencyDTO.getOutExchangeRate()), settleDate);
|
|
||||||
});
|
});
|
||||||
List<Long> seqList = iCuMemberTradeService.batchQueryCuMemberTradeSeq(cuMemberTradeList.size());
|
List<Long> seqList = iCuMemberTradeService.batchQueryCuMemberTradeSeq(cuMemberTradeList.size());
|
||||||
// 新增流水明细,记录奖金明细的发放状态、消费明细
|
// 新增流水明细,记录奖金明细的发放状态、消费明细
|
||||||
|
@ -241,7 +236,6 @@ public class BonusGrantServiceImpl implements IBonusGrantService {
|
||||||
// 奖金币(首购+复购+云代+海粉+嗨粉+店铺)
|
// 奖金币(首购+复购+云代+海粉+嗨粉+店铺)
|
||||||
packAccountTrade(cuMemberTradeList, bdAccountValueMap, EAccount.BONUS.getValue(), currentDateTime, cuMemberBonus, ComputeUtil.computeMultiply(cuMemberBonus.getRealIncomeTotal(), currencyDTO.getOutExchangeRate()), settleDate);
|
packAccountTrade(cuMemberTradeList, bdAccountValueMap, EAccount.BONUS.getValue(), currentDateTime, cuMemberBonus, ComputeUtil.computeMultiply(cuMemberBonus.getRealIncomeTotal(), currencyDTO.getOutExchangeRate()), settleDate);
|
||||||
// 重销币(商城重消+平台服务费)
|
// 重销币(商城重消+平台服务费)
|
||||||
// BigDecimal repeat = ComputeUtil.computeAdd(cuMemberBonus.getBackPoints(), cuMemberBonus.getServiceSpend());
|
|
||||||
packAccountTrade(cuMemberTradeList, bdAccountValueMap, EAccount.REPEAT.getValue(), currentDateTime, cuMemberBonus, ComputeUtil.computeMultiply(cuMemberBonus.getBackPoints(), currencyDTO.getOutExchangeRate()), settleDate);
|
packAccountTrade(cuMemberTradeList, bdAccountValueMap, EAccount.REPEAT.getValue(), currentDateTime, cuMemberBonus, ComputeUtil.computeMultiply(cuMemberBonus.getBackPoints(), currencyDTO.getOutExchangeRate()), settleDate);
|
||||||
// 复购券
|
// 复购券
|
||||||
packAccountTrade(cuMemberTradeList, bdAccountValueMap, EAccount.REPURCHASE.getValue(), currentDateTime, cuMemberBonus, ComputeUtil.computeMultiply(cuMemberBonus.getRepurCouponSubtotal(), currencyDTO.getOutExchangeRate()), settleDate);
|
packAccountTrade(cuMemberTradeList, bdAccountValueMap, EAccount.REPURCHASE.getValue(), currentDateTime, cuMemberBonus, ComputeUtil.computeMultiply(cuMemberBonus.getRepurCouponSubtotal(), currencyDTO.getOutExchangeRate()), settleDate);
|
||||||
|
|
|
@ -143,6 +143,23 @@ public abstract class BonusSettleHandle {
|
||||||
cuMemberBonusRange.setRemark(remark);
|
cuMemberBonusRange.setRemark(remark);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获得 复购极差收益 备注
|
||||||
|
*
|
||||||
|
* @param saOrderExt 订单编号
|
||||||
|
* @param cuMemberBonusRange 报单服务费
|
||||||
|
* @param sourceMemberRangeExt 提供奖金的人
|
||||||
|
* @param targetMemberRangeExt 获得奖金的人
|
||||||
|
*/
|
||||||
|
protected void rangeRepurchaseRetailRemark(SaOrder saOrderExt, CuMemberBonusRange cuMemberBonusRange, CuMemberRetailRangeExt sourceMemberRangeExt,
|
||||||
|
CuMemberRetailRangeExt targetMemberRangeExt) {
|
||||||
|
String remark = String.format(BonusMsgConstants.RETAIL_REPURCHASE_INCOME, saOrderExt.getOrderCode(),
|
||||||
|
sourceMemberRangeExt.getMemberCode() + sourceMemberRangeExt.getMemberName(),
|
||||||
|
targetMemberRangeExt.getMemberCode() + targetMemberRangeExt.getMemberName(),
|
||||||
|
cuMemberBonusRange.getCalAchieve(), targetMemberRangeExt.getGradeName());
|
||||||
|
cuMemberBonusRange.setRemark(remark);
|
||||||
|
}
|
||||||
|
|
||||||
protected CuMemberBonus getCuMemberBonus(Integer period, Map<Long, CuMemberBonus> cuMemberBonusMap,
|
protected CuMemberBonus getCuMemberBonus(Integer period, Map<Long, CuMemberBonus> cuMemberBonusMap,
|
||||||
Long pkMember, Integer incomeStatus, Integer pkCountry, Integer pkRate) {
|
Long pkMember, Integer incomeStatus, Integer pkCountry, Integer pkRate) {
|
||||||
if (cuMemberBonusMap.containsKey(pkMember)) {
|
if (cuMemberBonusMap.containsKey(pkMember)) {
|
||||||
|
|
|
@ -3,6 +3,7 @@ package com.hzs.bonus.bonus.service.impl;
|
||||||
import cn.hutool.core.collection.CollectionUtil;
|
import cn.hutool.core.collection.CollectionUtil;
|
||||||
import cn.hutool.core.util.ObjectUtil;
|
import cn.hutool.core.util.ObjectUtil;
|
||||||
import com.hzs.bonus.achieve.service.ICuMemberRetailRangeService;
|
import com.hzs.bonus.achieve.service.ICuMemberRetailRangeService;
|
||||||
|
import com.hzs.bonus.base.service.IBdVertexBonusService;
|
||||||
import com.hzs.bonus.base.service.ICuMemberService;
|
import com.hzs.bonus.base.service.ICuMemberService;
|
||||||
import com.hzs.bonus.bonus.vo.BonusRecordDetailVO;
|
import com.hzs.bonus.bonus.vo.BonusRecordDetailVO;
|
||||||
import com.hzs.bonus.detail.service.ICuMemberAwardsService;
|
import com.hzs.bonus.detail.service.ICuMemberAwardsService;
|
||||||
|
@ -20,13 +21,12 @@ import com.hzs.common.domain.bonus.BdBonusDeduct;
|
||||||
import com.hzs.common.domain.member.achieve.CuMemberSettlePeriod;
|
import com.hzs.common.domain.member.achieve.CuMemberSettlePeriod;
|
||||||
import com.hzs.common.domain.member.achieve.ext.CuMemberRetailRangeExt;
|
import com.hzs.common.domain.member.achieve.ext.CuMemberRetailRangeExt;
|
||||||
import com.hzs.common.domain.member.bonus.*;
|
import com.hzs.common.domain.member.bonus.*;
|
||||||
import com.hzs.common.domain.member.detail.CuMemberAwards;
|
import com.hzs.common.domain.member.detail.*;
|
||||||
import com.hzs.common.domain.member.detail.CuMemberGrade;
|
|
||||||
import com.hzs.common.domain.member.detail.CuMemberLevel;
|
|
||||||
import com.hzs.common.domain.member.detail.CuMemberServiceLog;
|
|
||||||
import com.hzs.common.domain.sale.ext.SaOrderExt;
|
import com.hzs.common.domain.sale.ext.SaOrderExt;
|
||||||
|
import com.hzs.common.domain.sale.ext.SaOrderItemsExt;
|
||||||
import com.hzs.common.domain.sale.ext.SaOrderWaresExt;
|
import com.hzs.common.domain.sale.ext.SaOrderWaresExt;
|
||||||
import com.hzs.common.domain.sale.order.SaOrder;
|
import com.hzs.common.domain.sale.order.SaOrder;
|
||||||
|
import com.hzs.common.domain.sale.wares.ext.WaresRangeTmp;
|
||||||
import com.hzs.common.domain.system.config.BdAwards;
|
import com.hzs.common.domain.system.config.BdAwards;
|
||||||
import com.hzs.common.domain.system.config.BdGrade;
|
import com.hzs.common.domain.system.config.BdGrade;
|
||||||
import com.hzs.member.detail.ICuMemberServiceLogServiceApi;
|
import com.hzs.member.detail.ICuMemberServiceLogServiceApi;
|
||||||
|
@ -59,6 +59,8 @@ public class BonusSettleRangeHandle extends BonusSettleHandle {
|
||||||
private ICuMemberService iCuMemberService;
|
private ICuMemberService iCuMemberService;
|
||||||
@Autowired
|
@Autowired
|
||||||
private IBonusOrderService iBonusOrderService;
|
private IBonusOrderService iBonusOrderService;
|
||||||
|
@Autowired
|
||||||
|
private IBdVertexBonusService iBdVertexBonusService;
|
||||||
|
|
||||||
@DubboReference
|
@DubboReference
|
||||||
ICuMemberServiceLogServiceApi iCuMemberServiceLogServiceApi;
|
ICuMemberServiceLogServiceApi iCuMemberServiceLogServiceApi;
|
||||||
|
@ -110,6 +112,8 @@ public class BonusSettleRangeHandle extends BonusSettleHandle {
|
||||||
|
|
||||||
// 当期的手动激活的记录列表
|
// 当期的手动激活的记录列表
|
||||||
Map<Long, Date> activateMap = this.getActivateMap(saOrderExt.getPayTime());
|
Map<Long, Date> activateMap = this.getActivateMap(saOrderExt.getPayTime());
|
||||||
|
// 查询体系奖项配置
|
||||||
|
Map<Long, List<Integer>> vertexBonusMap = iBdVertexBonusService.queryVertexBonus();
|
||||||
|
|
||||||
// 计算自消费奖衔
|
// 计算自消费奖衔
|
||||||
CuMemberRetailRangeExt sourceMemberRangeExt = memberRangeExtMap.get(saOrderExt.getPkMember());
|
CuMemberRetailRangeExt sourceMemberRangeExt = memberRangeExtMap.get(saOrderExt.getPkMember());
|
||||||
|
@ -176,8 +180,18 @@ public class BonusSettleRangeHandle extends BonusSettleHandle {
|
||||||
cuMemberBonusDetailList.add(cuMemberBonusDetail);
|
cuMemberBonusDetailList.add(cuMemberBonusDetail);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// TODO 2025.07.04 部分体系单独奖项处理
|
||||||
|
if (EOrderType.RETAIL_REPURCHASE.getValue() == saOrderExt.getOrderType()) {
|
||||||
|
// 复购订单级差数据map(key:订单ID,value:订单明细+级差)
|
||||||
|
Map<Long, List<SaOrderItemsExt>> rangeOrderMap = iBonusOrderService.getWaresRange(Collections.singletonList(saOrderExt));
|
||||||
|
// 复购订单
|
||||||
|
cuMemberBonusRangeList.addAll(this.calculateRepurchaseRangeBonus(saOrderExt, memberRangeExtMap, vertexBonusMap, rangeOrderMap,
|
||||||
|
bonusConfigDTO, currentPeriod, cuMemberBonusMap));
|
||||||
|
}
|
||||||
|
|
||||||
// 回退会员等级
|
// 回退会员等级
|
||||||
iCuMemberGradeService.updateCuMemberGrade(secondRangeTableName, saOrderExt.getPkId());
|
iCuMemberGradeService.updateCuMemberGrade(secondRangeTableName, saOrderExt.getPkId());
|
||||||
|
|
||||||
if (cuMemberGradeList.size() > 0) {
|
if (cuMemberGradeList.size() > 0) {
|
||||||
// 插入会员等级升级记录
|
// 插入会员等级升级记录
|
||||||
iCuMemberGradeService.insertCuMemberGrade(cuMemberGradeList);
|
iCuMemberGradeService.insertCuMemberGrade(cuMemberGradeList);
|
||||||
|
@ -423,18 +437,25 @@ public class BonusSettleRangeHandle extends BonusSettleHandle {
|
||||||
* 计算新零售团队的奖金,极差、平级、福利、福利分红、区域
|
* 计算新零售团队的奖金,极差、平级、福利、福利分红、区域
|
||||||
*/
|
*/
|
||||||
void calculateRetailBonusByDay(String settleDate, Map<Long, CuMemberBonus> cuMemberBonusMap, BonusConfigDTO bonusConfigDTO, BonusRecordDetailVO bonusRecordDetailVO,
|
void calculateRetailBonusByDay(String settleDate, Map<Long, CuMemberBonus> cuMemberBonusMap, BonusConfigDTO bonusConfigDTO, BonusRecordDetailVO bonusRecordDetailVO,
|
||||||
Integer period, Integer yesterdayPeriod, Boolean isSameMonth) {
|
Integer period, Integer yesterdayPeriod, Boolean isSameMonth, Map<Long, List<Integer>> vertexBonusMap) {
|
||||||
// 结算期间日期
|
// 结算期间日期
|
||||||
Date settleStartDate = DateUtils.parseStringToDate(settleDate);
|
Date settleStartDate = DateUtils.parseStringToDate(settleDate);
|
||||||
// 结算期间日期后一天
|
// 结算期间日期后一天
|
||||||
Date settleEndDate = DateUtils.afterDate(1, ChronoUnit.DAYS, settleStartDate);
|
Date settleEndDate = DateUtils.afterDate(1, ChronoUnit.DAYS, settleStartDate);
|
||||||
|
|
||||||
|
// 所有有效订单列表
|
||||||
List<SaOrderExt> retailOrderList = new ArrayList<>();
|
List<SaOrderExt> retailOrderList = new ArrayList<>();
|
||||||
|
// 复购订单列表
|
||||||
|
List<SaOrderExt> repurchaseOrderList = new ArrayList<>();
|
||||||
// 新零售订单
|
// 新零售订单
|
||||||
List<SaOrderExt> orderList = iBonusOrderService.queryRetailSaOrderByDay(settleStartDate, settleEndDate, null);
|
List<SaOrderExt> orderList = iBonusOrderService.queryRetailSaOrderByDay(settleStartDate, settleEndDate, null);
|
||||||
for (SaOrderExt saOrderExt : orderList) {
|
for (SaOrderExt saOrderExt : orderList) {
|
||||||
if (saOrderExt.getDelFlag() == EYesNo.YES.getIntValue()) {
|
if (saOrderExt.getDelFlag() == EYesNo.YES.getIntValue()) {
|
||||||
retailOrderList.add(saOrderExt);
|
retailOrderList.add(saOrderExt);
|
||||||
|
if (EOrderType.REPURCHASE_ORDER.getValue() == saOrderExt.getOrderType()) {
|
||||||
|
// 复购订单
|
||||||
|
repurchaseOrderList.add(saOrderExt);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -458,6 +479,12 @@ public class BonusSettleRangeHandle extends BonusSettleHandle {
|
||||||
Map<Long, Date> activateMap = this.getActivateMap(settleStartDate);
|
Map<Long, Date> activateMap = this.getActivateMap(settleStartDate);
|
||||||
|
|
||||||
if (retailOrderList.size() > 0) {
|
if (retailOrderList.size() > 0) {
|
||||||
|
// 复购订单级差数据map(key:订单ID,value:订单明细+级差)
|
||||||
|
Map<Long, List<SaOrderItemsExt>> rangeOrderMap = new HashMap<>();
|
||||||
|
if (CollectionUtil.isNotEmpty(repurchaseOrderList)) {
|
||||||
|
rangeOrderMap = iBonusOrderService.getWaresRange(repurchaseOrderList);
|
||||||
|
}
|
||||||
|
|
||||||
Map<Long, CuMemberLevel> memberLevelMap = new HashMap<>();
|
Map<Long, CuMemberLevel> memberLevelMap = new HashMap<>();
|
||||||
List<CuMemberLevel> memberLevelList = iCuMemberGradeService.calculateCuMemberRetailGradeInit(period, settleStartDate, settleEndDate, rangeTableName);
|
List<CuMemberLevel> memberLevelList = iCuMemberGradeService.calculateCuMemberRetailGradeInit(period, settleStartDate, settleEndDate, rangeTableName);
|
||||||
memberLevelList.forEach(cuMemberLevel -> memberLevelMap.put(cuMemberLevel.getPkOrder(), cuMemberLevel));
|
memberLevelList.forEach(cuMemberLevel -> memberLevelMap.put(cuMemberLevel.getPkOrder(), cuMemberLevel));
|
||||||
|
@ -488,6 +515,7 @@ public class BonusSettleRangeHandle extends BonusSettleHandle {
|
||||||
List<BdAwards> awardsList = bonusConfigDTO.getAwardsList();
|
List<BdAwards> awardsList = bonusConfigDTO.getAwardsList();
|
||||||
awardsList.forEach(bdAwards -> retailAwardsMap.put(bdAwards.getAwardsValue(), bdAwards));
|
awardsList.forEach(bdAwards -> retailAwardsMap.put(bdAwards.getAwardsValue(), bdAwards));
|
||||||
|
|
||||||
|
// 会员转map
|
||||||
for (CuMemberRetailRangeExt cuMemberRetailRangeExt : memberRetailRangeExtList) {
|
for (CuMemberRetailRangeExt cuMemberRetailRangeExt : memberRetailRangeExtList) {
|
||||||
if (!memberRangeExtMap.containsKey(cuMemberRetailRangeExt.getPkMember())) {
|
if (!memberRangeExtMap.containsKey(cuMemberRetailRangeExt.getPkMember())) {
|
||||||
memberRangeExtMap.put(cuMemberRetailRangeExt.getPkMember(), cuMemberRetailRangeExt);
|
memberRangeExtMap.put(cuMemberRetailRangeExt.getPkMember(), cuMemberRetailRangeExt);
|
||||||
|
@ -505,7 +533,7 @@ public class BonusSettleRangeHandle extends BonusSettleHandle {
|
||||||
List<CuMemberGrade> cuMemberGradeList = new ArrayList<>();
|
List<CuMemberGrade> cuMemberGradeList = new ArrayList<>();
|
||||||
// 会员奖衔升级记录
|
// 会员奖衔升级记录
|
||||||
List<CuMemberAwards> cuMemberAwardsList = new ArrayList<>();
|
List<CuMemberAwards> cuMemberAwardsList = new ArrayList<>();
|
||||||
// 平级收益
|
// 平级收益 + 复购级差收益
|
||||||
List<CuMemberBonusRange> cuMemberBonusRangeList = new ArrayList<>();
|
List<CuMemberBonusRange> cuMemberBonusRangeList = new ArrayList<>();
|
||||||
// 会员奖金明细
|
// 会员奖金明细
|
||||||
List<CuMemberBonusDetail> cuMemberBonusDetailList = new ArrayList<>();
|
List<CuMemberBonusDetail> cuMemberBonusDetailList = new ArrayList<>();
|
||||||
|
@ -583,7 +611,15 @@ public class BonusSettleRangeHandle extends BonusSettleHandle {
|
||||||
if (cuMemberBonusDetail != null) {
|
if (cuMemberBonusDetail != null) {
|
||||||
cuMemberBonusDetailList.add(cuMemberBonusDetail);
|
cuMemberBonusDetailList.add(cuMemberBonusDetail);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// TODO 2025.07.04 部分体系单独奖项处理
|
||||||
|
if (EOrderType.RETAIL_REPURCHASE.getValue() == saOrderExt.getOrderType()) {
|
||||||
|
// 复购订单
|
||||||
|
cuMemberBonusRangeList.addAll(this.calculateRepurchaseRangeBonus(saOrderExt, memberRangeExtMap, vertexBonusMap, rangeOrderMap,
|
||||||
|
bonusConfigDTO, period, cuMemberBonusMap));
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if (cuMemberBonusRangeList.size() > 0) {
|
if (cuMemberBonusRangeList.size() > 0) {
|
||||||
if (bonusRecordDetailVO.getCuMemberBonusRangeList() == null) {
|
if (bonusRecordDetailVO.getCuMemberBonusRangeList() == null) {
|
||||||
bonusRecordDetailVO.setCuMemberBonusRangeList(cuMemberBonusRangeList);
|
bonusRecordDetailVO.setCuMemberBonusRangeList(cuMemberBonusRangeList);
|
||||||
|
@ -1447,6 +1483,8 @@ public class BonusSettleRangeHandle extends BonusSettleHandle {
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
* 团队福利、福利分红等奖金 -- 月奖
|
||||||
|
*
|
||||||
* @param settleDateStr 结算日期
|
* @param settleDateStr 结算日期
|
||||||
*/
|
*/
|
||||||
void calculateRetailShareBonus(String settleDateStr, BonusConfigDTO bonusConfigDTO,
|
void calculateRetailShareBonus(String settleDateStr, BonusConfigDTO bonusConfigDTO,
|
||||||
|
@ -2039,4 +2077,111 @@ public class BonusSettleRangeHandle extends BonusSettleHandle {
|
||||||
)
|
)
|
||||||
));
|
));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 处理复购级差
|
||||||
|
*/
|
||||||
|
private List<CuMemberBonusRange> calculateRepurchaseRangeBonus(SaOrderExt saOrderExt, Map<Long, CuMemberRetailRangeExt> memberRangeExtMap,
|
||||||
|
Map<Long, List<Integer>> vertexBonusMap, Map<Long, List<SaOrderItemsExt>> rangeOrderMap,
|
||||||
|
BonusConfigDTO bonusConfigDTO, Integer period, Map<Long, CuMemberBonus> cuMemberBonusMap) {
|
||||||
|
// 直推级差返回数据
|
||||||
|
List<CuMemberBonusRange> memberBonusRangeList = new ArrayList<>();
|
||||||
|
// 订单会员
|
||||||
|
CuMemberRetailRangeExt sourceMemberRangeExt = memberRangeExtMap.get(saOrderExt.getPkMember());
|
||||||
|
|
||||||
|
List<Integer> vertexBonusList = vertexBonusMap.get(sourceMemberRangeExt.getPkVertex());
|
||||||
|
if (CollectionUtil.isNotEmpty(vertexBonusList)) {
|
||||||
|
// 存在体系奖项
|
||||||
|
for (Integer bonusItems : vertexBonusList) {
|
||||||
|
if (EBonusItems.REPURCHASE_RANGE_INCOME.getValue() == bonusItems) {
|
||||||
|
// 复购级差收益(key:会员ID,value:复购级差收益)
|
||||||
|
Map<Long, BigDecimal> bonusIncomeMap = new HashMap<>();
|
||||||
|
|
||||||
|
List<SaOrderItemsExt> saOrderItemsExtList = rangeOrderMap.get(saOrderExt.getPkId());
|
||||||
|
for (SaOrderItemsExt saOrderItemsExt : saOrderItemsExtList) {
|
||||||
|
// 级别值比当前等级高的级差数据列表
|
||||||
|
Map<Integer, BigDecimal> itemsRangePriceMap = saOrderItemsExt.getWaresRangeTmpList().stream()
|
||||||
|
.filter(tmpData -> tmpData.getRangeValue().compareTo(sourceMemberRangeExt.getGradeValue()) > 0)
|
||||||
|
.collect(Collectors.toMap(WaresRangeTmp::getRangeValue, WaresRangeTmp::getRangePrice));
|
||||||
|
|
||||||
|
// 临时价格(跟着每一次变动)
|
||||||
|
BigDecimal tmpPrice = saOrderItemsExt.getPrice();
|
||||||
|
// 推荐人
|
||||||
|
long pkParent = sourceMemberRangeExt.getPkParent();
|
||||||
|
// 计算级差
|
||||||
|
while (true) {
|
||||||
|
// 推荐人
|
||||||
|
CuMemberRetailRangeExt targetMemberRangeExt = memberRangeExtMap.get(pkParent);
|
||||||
|
if (null == targetMemberRangeExt) {
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
// 上一级推荐人
|
||||||
|
pkParent = targetMemberRangeExt.getPkParent();
|
||||||
|
|
||||||
|
if (EAccountStatus.STOP_INCOME.getValue() == targetMemberRangeExt.getAccountStatus()
|
||||||
|
|| ECategory.NORMAL.getValue() != targetMemberRangeExt.getCategory()
|
||||||
|
|| targetMemberRangeExt.getEnableStatus() == EYesNo.NO.getIntValue()
|
||||||
|
|| targetMemberRangeExt.getGradeValue() == EGrade.START_UP.getValue()
|
||||||
|
|| EIncomeStatus.STOP_INCOME.getValue() == targetMemberRangeExt.getIncomeStatus()) {
|
||||||
|
// 停算收益、非正常会员、未激活、等级为顾客、停止收益,直接跳过
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
// 当前会员等级值
|
||||||
|
int calGradeValue = targetMemberRangeExt.getGradeValue();
|
||||||
|
// 当前会员的级差价格
|
||||||
|
BigDecimal targetRangePrice = itemsRangePriceMap.get(calGradeValue);
|
||||||
|
if (targetRangePrice.compareTo(tmpPrice) < 0) {
|
||||||
|
// 当前级差价格比上一次的低
|
||||||
|
// 差价就是级差收益
|
||||||
|
BigDecimal bonusIncome;
|
||||||
|
if (bonusIncomeMap.containsKey(targetMemberRangeExt.getPkMember())) {
|
||||||
|
bonusIncome = bonusIncomeMap.get(targetMemberRangeExt.getPkMember()).add(tmpPrice.subtract(targetRangePrice));
|
||||||
|
} else {
|
||||||
|
bonusIncome = tmpPrice.subtract(targetRangePrice);
|
||||||
|
}
|
||||||
|
bonusIncomeMap.put(targetMemberRangeExt.getPkMember(), bonusIncome);
|
||||||
|
// 临时价格更新
|
||||||
|
tmpPrice = targetRangePrice;
|
||||||
|
}
|
||||||
|
|
||||||
|
// 最高等级则退出
|
||||||
|
if (calGradeValue == EGrade.S_VIP.getValue()) {
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (bonusIncomeMap.size() > 0) {
|
||||||
|
for (Long key : bonusIncomeMap.keySet()) {
|
||||||
|
// 复购级差收益
|
||||||
|
BigDecimal rangeBonusIncome = bonusIncomeMap.get(key);
|
||||||
|
if (rangeBonusIncome.compareTo(BigDecimal.ZERO) > 0) {
|
||||||
|
CuMemberRetailRangeExt targetMemberRangeExt = memberRangeExtMap.get(key);
|
||||||
|
// 处理复购级差收益
|
||||||
|
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.REPURCHASE_RANGE_INCOME.getValue());
|
||||||
|
CuMemberBonusRange cuMemberBonusRange = getCuMemberRetailBonusRange(saOrderExt, targetMemberRangeExt, cuMemberBonus, pkBonusItems);
|
||||||
|
cuMemberBonusRange.setCalValue(BigDecimal.ZERO);
|
||||||
|
cuMemberBonusRange.setCalAchieve(saOrderExt.getOrderAmount());
|
||||||
|
cuMemberBonusRange.setPretaxIncome(rangeBonusIncome);
|
||||||
|
cuMemberBonusRange.setPkRange(targetMemberRangeExt.getPkGrade());
|
||||||
|
cuMemberBonusRange.setPkBeforeRange(sourceMemberRangeExt.getPkGrade());
|
||||||
|
cuMemberBonusRange.setPkOrder(saOrderExt.getPkId());
|
||||||
|
rangeRepurchaseRetailRemark(saOrderExt, cuMemberBonusRange, sourceMemberRangeExt, targetMemberRangeExt);
|
||||||
|
BdBonusDeduct bdBonusDeduct = setBonusDetailDeduct(bonusConfigDTO, cuMemberBonusRange, saOrderExt.getOrderAmount(), saOrderExt.getInExchangeRate());
|
||||||
|
if (EBonusIncomeStatus.NORMAL.getValue() == cuMemberBonusRange.getIncomeStatus()) {
|
||||||
|
cuMemberBonus.setRepurRangeIncome(ComputeUtil.computeAdd(cuMemberBonus.getRepurRangeIncome(), cuMemberBonusRange.getPretaxIncome()));
|
||||||
|
setRetailTotal(bdBonusDeduct, cuMemberBonus, cuMemberBonusRange);
|
||||||
|
}
|
||||||
|
memberBonusRangeList.add(cuMemberBonusRange);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return memberBonusRangeList;
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -2,6 +2,7 @@ package com.hzs.bonus.bonus.service.impl;
|
||||||
|
|
||||||
import cn.hutool.core.collection.CollectionUtil;
|
import cn.hutool.core.collection.CollectionUtil;
|
||||||
import com.hzs.bonus.achieve.service.ICuMemberSettlePeriodService;
|
import com.hzs.bonus.achieve.service.ICuMemberSettlePeriodService;
|
||||||
|
import com.hzs.bonus.base.service.IBdVertexBonusService;
|
||||||
import com.hzs.bonus.bonus.service.*;
|
import com.hzs.bonus.bonus.service.*;
|
||||||
import com.hzs.bonus.bonus.vo.BonusRecordDetailVO;
|
import com.hzs.bonus.bonus.vo.BonusRecordDetailVO;
|
||||||
import com.hzs.bonus.detail.service.ICuRegionAssessService;
|
import com.hzs.bonus.detail.service.ICuRegionAssessService;
|
||||||
|
@ -42,48 +43,21 @@ public class BonusSettleServiceImpl implements IBonusSettleService {
|
||||||
private ICuMemberSettlePeriodService cuMemberSettlePeriodService;
|
private ICuMemberSettlePeriodService cuMemberSettlePeriodService;
|
||||||
@Autowired
|
@Autowired
|
||||||
private BonusSettleRangeHandle bonusSettleRangeHandle;
|
private BonusSettleRangeHandle bonusSettleRangeHandle;
|
||||||
|
@Autowired
|
||||||
private ICuMemberBonusService cuMemberBonusService;
|
private ICuMemberBonusService cuMemberBonusService;
|
||||||
|
@Autowired
|
||||||
private ICuMemberBonusPushService cuMemberBonusPushService;
|
private ICuMemberBonusPushService cuMemberBonusPushService;
|
||||||
|
@Autowired
|
||||||
private ICuMemberBonusExpandService cuMemberBonusExpandService;
|
private ICuMemberBonusExpandService cuMemberBonusExpandService;
|
||||||
|
@Autowired
|
||||||
private ICuMemberBonusCoachService cuMemberBonusCoachService;
|
private ICuMemberBonusCoachService cuMemberBonusCoachService;
|
||||||
|
@Autowired
|
||||||
private ICuMemberBonusDetailService cuMemberBonusDetailService;
|
private ICuMemberBonusDetailService cuMemberBonusDetailService;
|
||||||
|
@Autowired
|
||||||
private ICuMemberBonusRangeService cuMemberBonusRangeService;
|
private ICuMemberBonusRangeService cuMemberBonusRangeService;
|
||||||
|
|
||||||
@Autowired
|
@Autowired
|
||||||
public void setCuMemberBonusPushService(ICuMemberBonusPushService cuMemberBonusPushService) {
|
private IBdVertexBonusService iBdVertexBonusService;
|
||||||
this.cuMemberBonusPushService = cuMemberBonusPushService;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Autowired
|
|
||||||
public void setCuMemberBonusExpandService(ICuMemberBonusExpandService cuMemberBonusExpandService) {
|
|
||||||
this.cuMemberBonusExpandService = cuMemberBonusExpandService;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Autowired
|
|
||||||
public void setCuMemberBonusCoachService(ICuMemberBonusCoachService cuMemberBonusCoachService) {
|
|
||||||
this.cuMemberBonusCoachService = cuMemberBonusCoachService;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Autowired
|
|
||||||
public void setCuMemberBonusDetailService(ICuMemberBonusDetailService cuMemberBonusDetailService) {
|
|
||||||
this.cuMemberBonusDetailService = cuMemberBonusDetailService;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Autowired
|
|
||||||
public void setCuMemberBonusRangeService(ICuMemberBonusRangeService cuMemberBonusRangeService) {
|
|
||||||
this.cuMemberBonusRangeService = cuMemberBonusRangeService;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Autowired
|
|
||||||
public void setCuMemberBonusService(ICuMemberBonusService cuMemberBonusService) {
|
|
||||||
this.cuMemberBonusService = cuMemberBonusService;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 保存会员奖金
|
* 保存会员奖金
|
||||||
|
@ -121,10 +95,12 @@ public class BonusSettleServiceImpl implements IBonusSettleService {
|
||||||
BonusRecordDetailVO recordDetailVO = new BonusRecordDetailVO();
|
BonusRecordDetailVO recordDetailVO = new BonusRecordDetailVO();
|
||||||
// 今天和昨天是否同月
|
// 今天和昨天是否同月
|
||||||
Boolean isSameMonth = DateUtils.getMonth(settleDate).equals(DateUtils.getMonth(yesterday));
|
Boolean isSameMonth = DateUtils.getMonth(settleDate).equals(DateUtils.getMonth(yesterday));
|
||||||
|
// 查询体系奖项配置
|
||||||
|
Map<Long, List<Integer>> vertexBonusMap = iBdVertexBonusService.queryVertexBonus();
|
||||||
|
|
||||||
// 计算新零售团队奖金
|
// 计算新零售团队奖金
|
||||||
bonusSettleRangeHandle.calculateRetailBonusByDay(settleDate, cuMemberBonusMap, bonusConfigDTO, recordDetailVO,
|
bonusSettleRangeHandle.calculateRetailBonusByDay(settleDate, cuMemberBonusMap, bonusConfigDTO, recordDetailVO,
|
||||||
period, yesterdayPeriod, isSameMonth);
|
period, yesterdayPeriod, isSameMonth, vertexBonusMap);
|
||||||
|
|
||||||
// new 每月1号,需要计算4个月奖
|
// new 每月1号,需要计算4个月奖
|
||||||
if (EEnv.TEST.getValue().equals(BdConfig.getEnv())) {
|
if (EEnv.TEST.getValue().equals(BdConfig.getEnv())) {
|
||||||
|
@ -164,7 +140,7 @@ public class BonusSettleServiceImpl implements IBonusSettleService {
|
||||||
|
|
||||||
if (CollectionUtil.isNotEmpty(retailOrderList)) {
|
if (CollectionUtil.isNotEmpty(retailOrderList)) {
|
||||||
// 会员奖金map
|
// 会员奖金map
|
||||||
Map<Long, CuMemberBonus> cuMemberBonusMap = new HashMap<>(MagicNumberConstants.DELETE_DATA_BATCH_UPDATE_NUM);
|
Map<Long, CuMemberBonus> cuMemberBonusMap = new HashMap<>(MagicNumberConstants.BATCH_UPDATE_NUM);
|
||||||
// 订单数据
|
// 订单数据
|
||||||
SaOrderExt saOrderExt = retailOrderList.get(0);
|
SaOrderExt saOrderExt = retailOrderList.get(0);
|
||||||
|
|
||||||
|
|
|
@ -162,7 +162,6 @@ public class CuMemberBonusServiceImpl extends ServiceImpl<CuMemberBonusMapper, C
|
||||||
cuMemberBonusExt.setServiceSpend(BigDecimal.ZERO);
|
cuMemberBonusExt.setServiceSpend(BigDecimal.ZERO);
|
||||||
cuMemberBonusExt.setPurRealSubtotal(BigDecimal.ZERO);
|
cuMemberBonusExt.setPurRealSubtotal(BigDecimal.ZERO);
|
||||||
cuMemberBonusExt.setRepurPushIncome(BigDecimal.ZERO);
|
cuMemberBonusExt.setRepurPushIncome(BigDecimal.ZERO);
|
||||||
cuMemberBonusExt.setRepurRangeIncome(BigDecimal.ZERO);
|
|
||||||
cuMemberBonusExt.setRepurExpandIncome(BigDecimal.ZERO);
|
cuMemberBonusExt.setRepurExpandIncome(BigDecimal.ZERO);
|
||||||
cuMemberBonusExt.setRepurRealSubtotal(BigDecimal.ZERO);
|
cuMemberBonusExt.setRepurRealSubtotal(BigDecimal.ZERO);
|
||||||
cuMemberBonusExt.setRepurCoupon(BigDecimal.ZERO);
|
cuMemberBonusExt.setRepurCoupon(BigDecimal.ZERO);
|
||||||
|
@ -173,6 +172,7 @@ public class CuMemberBonusServiceImpl extends ServiceImpl<CuMemberBonusMapper, C
|
||||||
cuMemberBonusExt.setRealIncomeTotal(BigDecimal.ZERO);
|
cuMemberBonusExt.setRealIncomeTotal(BigDecimal.ZERO);
|
||||||
cuMemberBonusExt.setStoreIncome(BigDecimal.ZERO);
|
cuMemberBonusExt.setStoreIncome(BigDecimal.ZERO);
|
||||||
|
|
||||||
|
cuMemberBonusExt.setRepurRangeIncome(BigDecimal.ZERO);
|
||||||
cuMemberBonusExt.setRetailRangeIncome(BigDecimal.ZERO);
|
cuMemberBonusExt.setRetailRangeIncome(BigDecimal.ZERO);
|
||||||
cuMemberBonusExt.setRetailSameLevelIncome(BigDecimal.ZERO);
|
cuMemberBonusExt.setRetailSameLevelIncome(BigDecimal.ZERO);
|
||||||
cuMemberBonusExt.setRetailAreaIncome(BigDecimal.ZERO);
|
cuMemberBonusExt.setRetailAreaIncome(BigDecimal.ZERO);
|
||||||
|
@ -213,7 +213,6 @@ public class CuMemberBonusServiceImpl extends ServiceImpl<CuMemberBonusMapper, C
|
||||||
cuMemberBonusExt.setServiceSpend(ComputeUtil.computeMultiply(cuMemberBonusExt.getServiceSpend(), inExchangeRate));
|
cuMemberBonusExt.setServiceSpend(ComputeUtil.computeMultiply(cuMemberBonusExt.getServiceSpend(), inExchangeRate));
|
||||||
cuMemberBonusExt.setPurRealSubtotal(ComputeUtil.computeMultiply(cuMemberBonusExt.getPurRealSubtotal(), inExchangeRate));
|
cuMemberBonusExt.setPurRealSubtotal(ComputeUtil.computeMultiply(cuMemberBonusExt.getPurRealSubtotal(), inExchangeRate));
|
||||||
cuMemberBonusExt.setRepurPushIncome(ComputeUtil.computeMultiply(cuMemberBonusExt.getRepurPushIncome(), inExchangeRate));
|
cuMemberBonusExt.setRepurPushIncome(ComputeUtil.computeMultiply(cuMemberBonusExt.getRepurPushIncome(), inExchangeRate));
|
||||||
cuMemberBonusExt.setRepurRangeIncome(ComputeUtil.computeMultiply(cuMemberBonusExt.getRepurRangeIncome(), inExchangeRate));
|
|
||||||
cuMemberBonusExt.setRepurExpandIncome(ComputeUtil.computeMultiply(cuMemberBonusExt.getRepurExpandIncome(), inExchangeRate));
|
cuMemberBonusExt.setRepurExpandIncome(ComputeUtil.computeMultiply(cuMemberBonusExt.getRepurExpandIncome(), inExchangeRate));
|
||||||
cuMemberBonusExt.setRepurRealSubtotal(ComputeUtil.computeMultiply(cuMemberBonusExt.getRepurRealSubtotal(), inExchangeRate));
|
cuMemberBonusExt.setRepurRealSubtotal(ComputeUtil.computeMultiply(cuMemberBonusExt.getRepurRealSubtotal(), inExchangeRate));
|
||||||
cuMemberBonusExt.setRepurCoupon(ComputeUtil.computeMultiply(cuMemberBonusExt.getRepurCoupon(), inExchangeRate));
|
cuMemberBonusExt.setRepurCoupon(ComputeUtil.computeMultiply(cuMemberBonusExt.getRepurCoupon(), inExchangeRate));
|
||||||
|
@ -223,6 +222,8 @@ public class CuMemberBonusServiceImpl extends ServiceImpl<CuMemberBonusMapper, C
|
||||||
cuMemberBonusExt.setCarAwardPoints(ComputeUtil.computeMultiply(cuMemberBonusExt.getCarAwardPoints(), inExchangeRate));
|
cuMemberBonusExt.setCarAwardPoints(ComputeUtil.computeMultiply(cuMemberBonusExt.getCarAwardPoints(), inExchangeRate));
|
||||||
cuMemberBonusExt.setRealIncomeTotal(ComputeUtil.computeMultiply(cuMemberBonusExt.getRealIncomeTotal(), inExchangeRate));
|
cuMemberBonusExt.setRealIncomeTotal(ComputeUtil.computeMultiply(cuMemberBonusExt.getRealIncomeTotal(), inExchangeRate));
|
||||||
cuMemberBonusExt.setStoreIncome(ComputeUtil.computeMultiply(cuMemberBonusExt.getStoreIncome(), inExchangeRate));
|
cuMemberBonusExt.setStoreIncome(ComputeUtil.computeMultiply(cuMemberBonusExt.getStoreIncome(), inExchangeRate));
|
||||||
|
|
||||||
|
cuMemberBonusExt.setRepurRangeIncome(ComputeUtil.computeMultiply(cuMemberBonusExt.getRepurRangeIncome(), inExchangeRate));
|
||||||
cuMemberBonusExt.setRetailRangeIncome(ComputeUtil.computeMultiply(cuMemberBonusExt.getRetailRangeIncome(), inExchangeRate));
|
cuMemberBonusExt.setRetailRangeIncome(ComputeUtil.computeMultiply(cuMemberBonusExt.getRetailRangeIncome(), inExchangeRate));
|
||||||
cuMemberBonusExt.setRetailSameLevelIncome(ComputeUtil.computeMultiply(cuMemberBonusExt.getRetailSameLevelIncome(), inExchangeRate));
|
cuMemberBonusExt.setRetailSameLevelIncome(ComputeUtil.computeMultiply(cuMemberBonusExt.getRetailSameLevelIncome(), inExchangeRate));
|
||||||
cuMemberBonusExt.setRetailAreaIncome(ComputeUtil.computeMultiply(cuMemberBonusExt.getRetailAreaIncome(), inExchangeRate));
|
cuMemberBonusExt.setRetailAreaIncome(ComputeUtil.computeMultiply(cuMemberBonusExt.getRetailAreaIncome(), inExchangeRate));
|
||||||
|
@ -247,7 +248,6 @@ public class CuMemberBonusServiceImpl extends ServiceImpl<CuMemberBonusMapper, C
|
||||||
cuMemberBonusExt.setServiceSpend(ComputeUtil.computeAdd(cuMemberBonusExt.getServiceSpend(), memberBonusExt.getServiceSpend()));
|
cuMemberBonusExt.setServiceSpend(ComputeUtil.computeAdd(cuMemberBonusExt.getServiceSpend(), memberBonusExt.getServiceSpend()));
|
||||||
cuMemberBonusExt.setPurRealSubtotal(ComputeUtil.computeAdd(cuMemberBonusExt.getPurRealSubtotal(), memberBonusExt.getPurRealSubtotal()));
|
cuMemberBonusExt.setPurRealSubtotal(ComputeUtil.computeAdd(cuMemberBonusExt.getPurRealSubtotal(), memberBonusExt.getPurRealSubtotal()));
|
||||||
cuMemberBonusExt.setRepurPushIncome(ComputeUtil.computeAdd(cuMemberBonusExt.getRepurPushIncome(), memberBonusExt.getRepurPushIncome()));
|
cuMemberBonusExt.setRepurPushIncome(ComputeUtil.computeAdd(cuMemberBonusExt.getRepurPushIncome(), memberBonusExt.getRepurPushIncome()));
|
||||||
cuMemberBonusExt.setRepurRangeIncome(ComputeUtil.computeAdd(cuMemberBonusExt.getRepurRangeIncome(), memberBonusExt.getRepurRangeIncome()));
|
|
||||||
cuMemberBonusExt.setRepurExpandIncome(ComputeUtil.computeAdd(cuMemberBonusExt.getRepurExpandIncome(), memberBonusExt.getRepurExpandIncome()));
|
cuMemberBonusExt.setRepurExpandIncome(ComputeUtil.computeAdd(cuMemberBonusExt.getRepurExpandIncome(), memberBonusExt.getRepurExpandIncome()));
|
||||||
cuMemberBonusExt.setRepurRealSubtotal(ComputeUtil.computeAdd(cuMemberBonusExt.getRepurRealSubtotal(), memberBonusExt.getRepurRealSubtotal()));
|
cuMemberBonusExt.setRepurRealSubtotal(ComputeUtil.computeAdd(cuMemberBonusExt.getRepurRealSubtotal(), memberBonusExt.getRepurRealSubtotal()));
|
||||||
cuMemberBonusExt.setRepurCoupon(ComputeUtil.computeAdd(cuMemberBonusExt.getRepurCoupon(), memberBonusExt.getRepurCoupon()));
|
cuMemberBonusExt.setRepurCoupon(ComputeUtil.computeAdd(cuMemberBonusExt.getRepurCoupon(), memberBonusExt.getRepurCoupon()));
|
||||||
|
@ -258,6 +258,7 @@ public class CuMemberBonusServiceImpl extends ServiceImpl<CuMemberBonusMapper, C
|
||||||
cuMemberBonusExt.setRealIncomeTotal(ComputeUtil.computeAdd(cuMemberBonusExt.getRealIncomeTotal(), memberBonusExt.getRealIncomeTotal()));
|
cuMemberBonusExt.setRealIncomeTotal(ComputeUtil.computeAdd(cuMemberBonusExt.getRealIncomeTotal(), memberBonusExt.getRealIncomeTotal()));
|
||||||
cuMemberBonusExt.setStoreIncome(ComputeUtil.computeAdd(cuMemberBonusExt.getStoreIncome(), memberBonusExt.getStoreIncome()));
|
cuMemberBonusExt.setStoreIncome(ComputeUtil.computeAdd(cuMemberBonusExt.getStoreIncome(), memberBonusExt.getStoreIncome()));
|
||||||
|
|
||||||
|
cuMemberBonusExt.setRepurRangeIncome(ComputeUtil.computeAdd(cuMemberBonusExt.getRepurRangeIncome(), memberBonusExt.getRepurRangeIncome()));
|
||||||
cuMemberBonusExt.setRetailRangeIncome(ComputeUtil.computeAdd(cuMemberBonusExt.getRetailRangeIncome(), memberBonusExt.getRetailRangeIncome()));
|
cuMemberBonusExt.setRetailRangeIncome(ComputeUtil.computeAdd(cuMemberBonusExt.getRetailRangeIncome(), memberBonusExt.getRetailRangeIncome()));
|
||||||
cuMemberBonusExt.setRetailSameLevelIncome(ComputeUtil.computeAdd(cuMemberBonusExt.getRetailSameLevelIncome(), memberBonusExt.getRetailSameLevelIncome()));
|
cuMemberBonusExt.setRetailSameLevelIncome(ComputeUtil.computeAdd(cuMemberBonusExt.getRetailSameLevelIncome(), memberBonusExt.getRetailSameLevelIncome()));
|
||||||
cuMemberBonusExt.setRetailAreaIncome(ComputeUtil.computeAdd(cuMemberBonusExt.getRetailAreaIncome(), memberBonusExt.getRetailAreaIncome()));
|
cuMemberBonusExt.setRetailAreaIncome(ComputeUtil.computeAdd(cuMemberBonusExt.getRetailAreaIncome(), memberBonusExt.getRetailAreaIncome()));
|
||||||
|
@ -287,7 +288,6 @@ public class CuMemberBonusServiceImpl extends ServiceImpl<CuMemberBonusMapper, C
|
||||||
cuMemberBonusExt.setServiceSpend(BigDecimal.ZERO);
|
cuMemberBonusExt.setServiceSpend(BigDecimal.ZERO);
|
||||||
cuMemberBonusExt.setPurRealSubtotal(BigDecimal.ZERO);
|
cuMemberBonusExt.setPurRealSubtotal(BigDecimal.ZERO);
|
||||||
cuMemberBonusExt.setRepurPushIncome(BigDecimal.ZERO);
|
cuMemberBonusExt.setRepurPushIncome(BigDecimal.ZERO);
|
||||||
cuMemberBonusExt.setRepurRangeIncome(BigDecimal.ZERO);
|
|
||||||
cuMemberBonusExt.setRepurExpandIncome(BigDecimal.ZERO);
|
cuMemberBonusExt.setRepurExpandIncome(BigDecimal.ZERO);
|
||||||
cuMemberBonusExt.setRepurRealSubtotal(BigDecimal.ZERO);
|
cuMemberBonusExt.setRepurRealSubtotal(BigDecimal.ZERO);
|
||||||
cuMemberBonusExt.setRepurCoupon(BigDecimal.ZERO);
|
cuMemberBonusExt.setRepurCoupon(BigDecimal.ZERO);
|
||||||
|
@ -298,6 +298,7 @@ public class CuMemberBonusServiceImpl extends ServiceImpl<CuMemberBonusMapper, C
|
||||||
cuMemberBonusExt.setCarAwardPoints(BigDecimal.ZERO);
|
cuMemberBonusExt.setCarAwardPoints(BigDecimal.ZERO);
|
||||||
cuMemberBonusExt.setRealIncomeTotal(BigDecimal.ZERO);
|
cuMemberBonusExt.setRealIncomeTotal(BigDecimal.ZERO);
|
||||||
|
|
||||||
|
cuMemberBonusExt.setRepurRangeIncome(BigDecimal.ZERO);
|
||||||
cuMemberBonusExt.setRetailRangeIncome(BigDecimal.ZERO);
|
cuMemberBonusExt.setRetailRangeIncome(BigDecimal.ZERO);
|
||||||
cuMemberBonusExt.setRetailSameLevelIncome(BigDecimal.ZERO);
|
cuMemberBonusExt.setRetailSameLevelIncome(BigDecimal.ZERO);
|
||||||
cuMemberBonusExt.setRetailAreaIncome(BigDecimal.ZERO);
|
cuMemberBonusExt.setRetailAreaIncome(BigDecimal.ZERO);
|
||||||
|
@ -346,9 +347,8 @@ public class CuMemberBonusServiceImpl extends ServiceImpl<CuMemberBonusMapper, C
|
||||||
memberBonusDetailVO.setSourceMemberName(cuMemberBonusDetail.getSourceMemberName());
|
memberBonusDetailVO.setSourceMemberName(cuMemberBonusDetail.getSourceMemberName());
|
||||||
memberBonusDetailVOList.add(memberBonusDetailVO);
|
memberBonusDetailVOList.add(memberBonusDetailVO);
|
||||||
});
|
});
|
||||||
} else if (EBonusItems.BOOT_CARD.getValue() == bonusItemsValue || EBonusItems.DIRECT_INCOME.getValue() == bonusItemsValue ||
|
} else if (EBonusItems.DIRECT_INCOME.getValue() == bonusItemsValue) {
|
||||||
EBonusItems.HELP_EACH_INCOME.getValue() == bonusItemsValue) {
|
// 直推收益
|
||||||
// 启动卡直推 推荐收益
|
|
||||||
List<CuMemberBonusPushExt> cuMemberBonusPushList = cuMemberBonusPushMapper.queryMemberBonusPushByBonusItems(bonusParam);
|
List<CuMemberBonusPushExt> cuMemberBonusPushList = cuMemberBonusPushMapper.queryMemberBonusPushByBonusItems(bonusParam);
|
||||||
dataTable = getDataTable(cuMemberBonusPushList);
|
dataTable = getDataTable(cuMemberBonusPushList);
|
||||||
cuMemberBonusPushList.forEach(cuMemberBonusPush -> {
|
cuMemberBonusPushList.forEach(cuMemberBonusPush -> {
|
||||||
|
@ -381,7 +381,6 @@ public class CuMemberBonusServiceImpl extends ServiceImpl<CuMemberBonusMapper, C
|
||||||
});
|
});
|
||||||
} else if (EBonusItems.REPURCHASE_RANGE_INCOME.getValue() == bonusItemsValue) {
|
} else if (EBonusItems.REPURCHASE_RANGE_INCOME.getValue() == bonusItemsValue) {
|
||||||
// 复购极差
|
// 复购极差
|
||||||
// 拓展收益、复购拓展收益
|
|
||||||
List<CuMemberBonusRangeExt> cuMemberBonusRangeList = cuMemberBonusRangeMapper.queryMemberBonusRangeByBonusItems(bonusParam);
|
List<CuMemberBonusRangeExt> cuMemberBonusRangeList = cuMemberBonusRangeMapper.queryMemberBonusRangeByBonusItems(bonusParam);
|
||||||
dataTable = getDataTable(cuMemberBonusRangeList);
|
dataTable = getDataTable(cuMemberBonusRangeList);
|
||||||
cuMemberBonusRangeList.forEach(cuMemberBonusRange -> {
|
cuMemberBonusRangeList.forEach(cuMemberBonusRange -> {
|
||||||
|
@ -446,9 +445,7 @@ public class CuMemberBonusServiceImpl extends ServiceImpl<CuMemberBonusMapper, C
|
||||||
MemberBonusDetailSerVO memberBonusDetailVO = BeanUtil.copyProperties(cuMemberBonusDetail, MemberBonusDetailSerVO.class);
|
MemberBonusDetailSerVO memberBonusDetailVO = BeanUtil.copyProperties(cuMemberBonusDetail, MemberBonusDetailSerVO.class);
|
||||||
memberBonusDetailSerVoS.add(memberBonusDetailVO);
|
memberBonusDetailSerVoS.add(memberBonusDetailVO);
|
||||||
});
|
});
|
||||||
} else if (EBonusItems.BOOT_CARD.getValue() == bonusItemsValue
|
} else if (EBonusItems.DIRECT_INCOME.getValue() == bonusItemsValue) {
|
||||||
|| EBonusItems.DIRECT_INCOME.getValue() == bonusItemsValue
|
|
||||||
|| EBonusItems.HELP_EACH_INCOME.getValue() == bonusItemsValue) {
|
|
||||||
// 启动卡直推 推荐收益
|
// 启动卡直推 推荐收益
|
||||||
List<CuMemberBonusPushExt> cuMemberBonusPushList = cuMemberBonusPushMapper.queryMemberBonusPushByBonusItemsFoServer(bonusParam);
|
List<CuMemberBonusPushExt> cuMemberBonusPushList = cuMemberBonusPushMapper.queryMemberBonusPushByBonusItemsFoServer(bonusParam);
|
||||||
dataTable = getDataTable(cuMemberBonusPushList);
|
dataTable = getDataTable(cuMemberBonusPushList);
|
||||||
|
@ -619,6 +616,7 @@ public class CuMemberBonusServiceImpl extends ServiceImpl<CuMemberBonusMapper, C
|
||||||
baseMapper.mergeBackRangeBonusIncome(pkOrder, EBonusItems.RETAIL_RANGE_INCOME.getValue());
|
baseMapper.mergeBackRangeBonusIncome(pkOrder, EBonusItems.RETAIL_RANGE_INCOME.getValue());
|
||||||
baseMapper.mergeBackRangeBonusIncome(pkOrder, EBonusItems.RETAIL_SAME_LEVEL_INCOME.getValue());
|
baseMapper.mergeBackRangeBonusIncome(pkOrder, EBonusItems.RETAIL_SAME_LEVEL_INCOME.getValue());
|
||||||
baseMapper.mergeBackRangeBonusIncome(pkOrder, EBonusItems.RETAIL_AREA_INCOME.getValue());
|
baseMapper.mergeBackRangeBonusIncome(pkOrder, EBonusItems.RETAIL_AREA_INCOME.getValue());
|
||||||
|
baseMapper.mergeBackRangeBonusIncome(pkOrder, EBonusItems.REPURCHASE_RANGE_INCOME.getValue());
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
|
@ -38,7 +38,7 @@ public class BonusRecordDetailVO implements Serializable {
|
||||||
private List<CuMemberBonusDetail> cuMemberBonusDetailList;
|
private List<CuMemberBonusDetail> cuMemberBonusDetailList;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 新零售 - 直推收益、平级收益、福利级差、复购级差
|
* 新零售 - 直推收益、平级收益、月度福利级差、月度复购级差、复购级差
|
||||||
*/
|
*/
|
||||||
private List<CuMemberBonusRange> cuMemberBonusRangeList;
|
private List<CuMemberBonusRange> cuMemberBonusRangeList;
|
||||||
}
|
}
|
||||||
|
|
|
@ -60,13 +60,13 @@ public class BonusTotalVO implements Serializable {
|
||||||
/**
|
/**
|
||||||
* 新零售福利级差收益
|
* 新零售福利级差收益
|
||||||
*/
|
*/
|
||||||
@Excel(name = "福利级差收益", scale = 2)
|
@Excel(name = "月度福利级差收益", scale = 2)
|
||||||
private BigDecimal retailBenefitRangeIncome;
|
private BigDecimal retailBenefitRangeIncome;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 新零售复购级差收益
|
* 新零售复购级差收益
|
||||||
*/
|
*/
|
||||||
@Excel(name = "复购级差收益", scale = 2)
|
@Excel(name = "月度复购级差收益", scale = 2)
|
||||||
private BigDecimal retailMonthRepurchaseIncome;
|
private BigDecimal retailMonthRepurchaseIncome;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -87,18 +87,23 @@ public class BonusTotalVO implements Serializable {
|
||||||
@Excel(name = "福利分红加权收益", scale = 2)
|
@Excel(name = "福利分红加权收益", scale = 2)
|
||||||
private BigDecimal retailBenefitIncome;
|
private BigDecimal retailBenefitIncome;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 复购级差收益
|
||||||
|
*/
|
||||||
|
@Excel(name = "复购级差收益", scale = 2)
|
||||||
|
private BigDecimal repurRangeIncome;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 重消收益
|
* 重消收益
|
||||||
*/
|
*/
|
||||||
@Excel(name = "重消收益", scale = 2)
|
@Excel(name = "重消收益", scale = 2)
|
||||||
private BigDecimal backPointsOri;
|
private BigDecimal backPoints;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 实发收益总计
|
* 实发收益总计
|
||||||
*/
|
*/
|
||||||
@Excel(name = "实发收益总计", scale = 2)
|
@Excel(name = "实发收益总计", scale = 2)
|
||||||
private BigDecimal realIncomeTotalOri;
|
private BigDecimal realIncomeTotal;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -154,11 +159,6 @@ public class BonusTotalVO implements Serializable {
|
||||||
|
|
||||||
private BigDecimal repurPushIncomeOri;
|
private BigDecimal repurPushIncomeOri;
|
||||||
|
|
||||||
/**
|
|
||||||
* 复购级差收益
|
|
||||||
*/
|
|
||||||
private BigDecimal repurRangeIncomeOri;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 复购拓展收益
|
* 复购拓展收益
|
||||||
*/
|
*/
|
||||||
|
@ -267,11 +267,6 @@ public class BonusTotalVO implements Serializable {
|
||||||
|
|
||||||
private BigDecimal repurPushIncome;
|
private BigDecimal repurPushIncome;
|
||||||
|
|
||||||
/**
|
|
||||||
* 复购级差收益
|
|
||||||
*/
|
|
||||||
private BigDecimal repurRangeIncome;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 复购拓展收益
|
* 复购拓展收益
|
||||||
*/
|
*/
|
||||||
|
@ -287,11 +282,6 @@ public class BonusTotalVO implements Serializable {
|
||||||
*/
|
*/
|
||||||
private BigDecimal repurCouponShare;
|
private BigDecimal repurCouponShare;
|
||||||
|
|
||||||
/**
|
|
||||||
* 商城重消
|
|
||||||
*/
|
|
||||||
private BigDecimal backPoints;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 平台服务费
|
* 平台服务费
|
||||||
*/
|
*/
|
||||||
|
@ -337,10 +327,4 @@ public class BonusTotalVO implements Serializable {
|
||||||
*/
|
*/
|
||||||
private BigDecimal repurCouponSubtotal;
|
private BigDecimal repurCouponSubtotal;
|
||||||
|
|
||||||
/**
|
|
||||||
* 实发收益总计
|
|
||||||
*/
|
|
||||||
private BigDecimal realIncomeTotal;
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -92,7 +92,7 @@ public class CuMemberBonusVO implements Serializable {
|
||||||
public static final String[] INCOME_ARRAY = new String[]{
|
public static final String[] INCOME_ARRAY = new String[]{
|
||||||
"backPoints", "retailRangeIncome", "retailSameLevelIncome", "retailAreaIncome",
|
"backPoints", "retailRangeIncome", "retailSameLevelIncome", "retailAreaIncome",
|
||||||
"retailBenefitRangeIncome", "retailMonthRepurchaseIncome", "coachIncome", "retailBenefitAvgIncome",
|
"retailBenefitRangeIncome", "retailMonthRepurchaseIncome", "coachIncome", "retailBenefitAvgIncome",
|
||||||
"retailBenefitIncome", "retailRealSubtotal", "realIncomeTotal"};
|
"retailBenefitIncome", "retailRealSubtotal", "realIncomeTotal", "repurRangeIncome"};
|
||||||
|
|
||||||
|
|
||||||
private BigDecimal retailRangeIncome;
|
private BigDecimal retailRangeIncome;
|
||||||
|
@ -120,14 +120,14 @@ public class CuMemberBonusVO implements Serializable {
|
||||||
* 新零售福利级差收益
|
* 新零售福利级差收益
|
||||||
*/
|
*/
|
||||||
private BigDecimal retailBenefitRangeIncome;
|
private BigDecimal retailBenefitRangeIncome;
|
||||||
@Excel(name = " 福利级差收益", scale = 2)
|
@Excel(name = "月度福利级差收益", scale = 2)
|
||||||
private BigDecimal retailBenefitRangeIncomeOri;
|
private BigDecimal retailBenefitRangeIncomeOri;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 新零售复购级差收益
|
* 新零售复购级差收益
|
||||||
*/
|
*/
|
||||||
private BigDecimal retailMonthRepurchaseIncome;
|
private BigDecimal retailMonthRepurchaseIncome;
|
||||||
@Excel(name = "复购级差收益", scale = 2)
|
@Excel(name = "月度复购级差收益", scale = 2)
|
||||||
private BigDecimal retailMonthRepurchaseIncomeOri;
|
private BigDecimal retailMonthRepurchaseIncomeOri;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -151,6 +151,13 @@ public class CuMemberBonusVO implements Serializable {
|
||||||
@Excel(name = " 福利加权收益", scale = 2)
|
@Excel(name = " 福利加权收益", scale = 2)
|
||||||
private BigDecimal retailBenefitIncomeOri;
|
private BigDecimal retailBenefitIncomeOri;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 复购级差收益
|
||||||
|
*/
|
||||||
|
private BigDecimal repurRangeIncome;
|
||||||
|
@Excel(name = "复购级差收益", scale = 2)
|
||||||
|
private BigDecimal repurRangeIncomeOri;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 商城重消
|
* 商城重消
|
||||||
*/
|
*/
|
||||||
|
|
|
@ -55,12 +55,12 @@ public class MemberBonusFirstPurchaseVO extends PubMemberBonusVO {
|
||||||
// * 复购拓展收益
|
// * 复购拓展收益
|
||||||
// */
|
// */
|
||||||
// private BigDecimal repurExpandIncome;
|
// private BigDecimal repurExpandIncome;
|
||||||
//
|
|
||||||
// /**
|
/**
|
||||||
// * 复购级差收益
|
* 复购级差收益
|
||||||
// */
|
*/
|
||||||
// private BigDecimal repurRangeIncome;
|
private BigDecimal repurRangeIncome;
|
||||||
//
|
|
||||||
// /**
|
// /**
|
||||||
// * 复购实发小计
|
// * 复购实发小计
|
||||||
// */
|
// */
|
||||||
|
|
|
@ -160,6 +160,12 @@ public class MemberBonusVO implements Serializable {
|
||||||
*/
|
*/
|
||||||
private BigDecimal retailBenefitIncome;
|
private BigDecimal retailBenefitIncome;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 复购级差收益
|
||||||
|
*/
|
||||||
|
@BigDecimalFormat("#0.0000")
|
||||||
|
private BigDecimal repurRangeIncome;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 新零售收益小计
|
* 新零售收益小计
|
||||||
*/
|
*/
|
||||||
|
|
|
@ -71,7 +71,7 @@ public class CuMemberAssessDetailServiceImpl extends ServiceImpl<CuMemberAssessD
|
||||||
@Override
|
@Override
|
||||||
public void deleteCuMemberAssessDetailByList(List<CuMemberAssessDetail> revokeDetailList) {
|
public void deleteCuMemberAssessDetailByList(List<CuMemberAssessDetail> revokeDetailList) {
|
||||||
List<List<?>> handleCutList = cuMemberBonusSettle.handleCutList(revokeDetailList,
|
List<List<?>> handleCutList = cuMemberBonusSettle.handleCutList(revokeDetailList,
|
||||||
MagicNumberConstants.DELETE_DATA_BATCH_UPDATE_NUM);
|
MagicNumberConstants.BATCH_UPDATE_NUM);
|
||||||
handleCutList.forEach(list -> {
|
handleCutList.forEach(list -> {
|
||||||
baseMapper.updateCuMemberAssessDetailByRevoke(list);
|
baseMapper.updateCuMemberAssessDetailByRevoke(list);
|
||||||
});
|
});
|
||||||
|
|
|
@ -1,6 +1,7 @@
|
||||||
package com.hzs.bonus.order.mapper;
|
package com.hzs.bonus.order.mapper;
|
||||||
|
|
||||||
import com.hzs.common.domain.sale.ext.SaOrderExt;
|
import com.hzs.common.domain.sale.ext.SaOrderExt;
|
||||||
|
import com.hzs.common.domain.sale.ext.SaOrderItemsExt;
|
||||||
import com.hzs.common.domain.sale.order.SaOrder;
|
import com.hzs.common.domain.sale.order.SaOrder;
|
||||||
import org.apache.ibatis.annotations.Param;
|
import org.apache.ibatis.annotations.Param;
|
||||||
|
|
||||||
|
@ -40,4 +41,12 @@ public interface BonusOrderMapper {
|
||||||
@Param("endDate") Date endDate,
|
@Param("endDate") Date endDate,
|
||||||
@Param("orderType") List<Integer> orderType);
|
@Param("orderType") List<Integer> orderType);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 查询订单商品级差数据
|
||||||
|
*
|
||||||
|
* @param orderList 订单列表
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
List<SaOrderItemsExt> listOrderWaresRange(@Param("orderList") List<SaOrderExt> orderList);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,10 +1,12 @@
|
||||||
package com.hzs.bonus.order.service;
|
package com.hzs.bonus.order.service;
|
||||||
|
|
||||||
import com.hzs.common.domain.sale.ext.SaOrderExt;
|
import com.hzs.common.domain.sale.ext.SaOrderExt;
|
||||||
|
import com.hzs.common.domain.sale.ext.SaOrderItemsExt;
|
||||||
import com.hzs.common.domain.sale.order.SaOrder;
|
import com.hzs.common.domain.sale.order.SaOrder;
|
||||||
|
|
||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
public interface IBonusOrderService {
|
public interface IBonusOrderService {
|
||||||
|
|
||||||
|
@ -30,4 +32,12 @@ public interface IBonusOrderService {
|
||||||
*/
|
*/
|
||||||
List<SaOrder> listSaOrderByTime(Date startDate, Date endDate, List<Integer> orderType);
|
List<SaOrder> listSaOrderByTime(Date startDate, Date endDate, List<Integer> orderType);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 查询商品级差数据
|
||||||
|
*
|
||||||
|
* @param orderList
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
Map<Long, List<SaOrderItemsExt>> getWaresRange(List<SaOrderExt> orderList);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,21 +1,26 @@
|
||||||
package com.hzs.bonus.order.service.impl;
|
package com.hzs.bonus.order.service.impl;
|
||||||
|
|
||||||
import cn.hutool.core.collection.CollectionUtil;
|
import cn.hutool.core.collection.CollectionUtil;
|
||||||
|
import com.hzs.bonus.achieve.service.impl.CuMemberBonusSettle;
|
||||||
import com.hzs.bonus.order.mapper.BonusOrderMapper;
|
import com.hzs.bonus.order.mapper.BonusOrderMapper;
|
||||||
import com.hzs.bonus.order.service.IBonusOrderService;
|
import com.hzs.bonus.order.service.IBonusOrderService;
|
||||||
|
import com.hzs.common.core.constant.MagicNumberConstants;
|
||||||
import com.hzs.common.domain.sale.ext.SaOrderExt;
|
import com.hzs.common.domain.sale.ext.SaOrderExt;
|
||||||
|
import com.hzs.common.domain.sale.ext.SaOrderItemsExt;
|
||||||
import com.hzs.common.domain.sale.order.SaOrder;
|
import com.hzs.common.domain.sale.order.SaOrder;
|
||||||
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
import javax.annotation.Resource;
|
import javax.annotation.Resource;
|
||||||
import java.util.Date;
|
import java.util.*;
|
||||||
import java.util.List;
|
|
||||||
|
|
||||||
@Service
|
@Service
|
||||||
public class BonusOrderServiceImpl implements IBonusOrderService {
|
public class BonusOrderServiceImpl implements IBonusOrderService {
|
||||||
|
|
||||||
@Resource
|
@Resource
|
||||||
private BonusOrderMapper bonusOrderMapper;
|
private BonusOrderMapper bonusOrderMapper;
|
||||||
|
@Autowired
|
||||||
|
private CuMemberBonusSettle cuMemberBonusSettle;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public List<SaOrderExt> queryRetailSaOrderByDay(Date startDate, Date endDate, String orderCode) {
|
public List<SaOrderExt> queryRetailSaOrderByDay(Date startDate, Date endDate, String orderCode) {
|
||||||
|
@ -36,4 +41,26 @@ public class BonusOrderServiceImpl implements IBonusOrderService {
|
||||||
return bonusOrderMapper.listSaOrderByTime(startDate, endDate, orderType);
|
return bonusOrderMapper.listSaOrderByTime(startDate, endDate, orderType);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Map<Long, List<SaOrderItemsExt>> getWaresRange(List<SaOrderExt> orderList) {
|
||||||
|
Map<Long, List<SaOrderItemsExt>> resultMap = new HashMap<>();
|
||||||
|
|
||||||
|
List<SaOrderItemsExt> resultList = new ArrayList<>();
|
||||||
|
List<List<?>> handleCutList = cuMemberBonusSettle.handleCutList(orderList, MagicNumberConstants.BATCH_UPDATE_NUM);
|
||||||
|
handleCutList.forEach(list -> {
|
||||||
|
resultList.addAll(bonusOrderMapper.listOrderWaresRange(orderList));
|
||||||
|
});
|
||||||
|
for (SaOrderItemsExt saOrderItemsExt : resultList) {
|
||||||
|
if (resultMap.containsKey(saOrderItemsExt.getPkOrder())) {
|
||||||
|
resultMap.get(saOrderItemsExt.getPkOrder()).add(saOrderItemsExt);
|
||||||
|
} else {
|
||||||
|
List<SaOrderItemsExt> tmpList = new ArrayList<>();
|
||||||
|
tmpList.add(saOrderItemsExt);
|
||||||
|
resultMap.put(saOrderItemsExt.getPkOrder(), tmpList);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return resultMap;
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,28 +1,11 @@
|
||||||
package com.hzs.bonus.swing.mapper;
|
package com.hzs.bonus.swing.mapper;
|
||||||
|
|
||||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||||
import com.hzs.common.domain.member.achieve.ext.CuMemberAchieveExt;
|
|
||||||
import com.hzs.common.domain.member.swing.CuMemberSwingNetLog;
|
import com.hzs.common.domain.member.swing.CuMemberSwingNetLog;
|
||||||
import org.apache.ibatis.annotations.Param;
|
|
||||||
|
|
||||||
import java.util.List;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* <p>
|
|
||||||
* 会员甩网业绩记录 Mapper 接口
|
* 会员甩网业绩记录 Mapper 接口
|
||||||
* </p>
|
|
||||||
*
|
|
||||||
* @author hzs
|
|
||||||
* @since 2024-03-05
|
|
||||||
*/
|
*/
|
||||||
public interface CuMemberSwingNetLogMapper extends BaseMapper<CuMemberSwingNetLog> {
|
public interface CuMemberSwingNetLogMapper extends BaseMapper<CuMemberSwingNetLog> {
|
||||||
|
|
||||||
/*
|
|
||||||
* @description: 更新或修改甩网业绩记录
|
|
||||||
* @author: sui q
|
|
||||||
* @date: 2024/3/5 11:23
|
|
||||||
* @param: null null
|
|
||||||
**/
|
|
||||||
void mergeCuMemberSwingNetLogByAchieve(@Param("cuMemberAchieveExtList") List<CuMemberAchieveExt> cuMemberAchieveExtList,
|
|
||||||
@Param("settleTableName") String settleTableName);
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,26 +1,11 @@
|
||||||
package com.hzs.bonus.swing.service;
|
package com.hzs.bonus.swing.service;
|
||||||
|
|
||||||
import com.baomidou.mybatisplus.extension.service.IService;
|
import com.baomidou.mybatisplus.extension.service.IService;
|
||||||
import com.hzs.common.domain.member.achieve.ext.CuMemberAchieveExt;
|
|
||||||
import com.hzs.common.domain.member.swing.CuMemberSwingNetLog;
|
import com.hzs.common.domain.member.swing.CuMemberSwingNetLog;
|
||||||
|
|
||||||
import java.util.List;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* <p>
|
|
||||||
* 会员甩网业绩记录 服务类
|
* 会员甩网业绩记录 服务类
|
||||||
* </p>
|
|
||||||
*
|
|
||||||
* @author hzs
|
|
||||||
* @since 2024-03-05
|
|
||||||
*/
|
*/
|
||||||
public interface ICuMemberSwingNetLogService extends IService<CuMemberSwingNetLog> {
|
public interface ICuMemberSwingNetLogService extends IService<CuMemberSwingNetLog> {
|
||||||
|
|
||||||
/*
|
|
||||||
* @description: 更新或修改甩网业绩记录
|
|
||||||
* @author: sui q
|
|
||||||
* @date: 2024/3/5 11:23
|
|
||||||
* @param: null null
|
|
||||||
**/
|
|
||||||
void mergeCuMemberSwingNetLogByAchieve(List<CuMemberAchieveExt> cuMemberAchieveExtList, String settleTableName);
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -3,25 +3,13 @@ package com.hzs.bonus.swing.service.impl;
|
||||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||||
import com.hzs.bonus.swing.mapper.CuMemberSwingNetLogMapper;
|
import com.hzs.bonus.swing.mapper.CuMemberSwingNetLogMapper;
|
||||||
import com.hzs.bonus.swing.service.ICuMemberSwingNetLogService;
|
import com.hzs.bonus.swing.service.ICuMemberSwingNetLogService;
|
||||||
import com.hzs.common.domain.member.achieve.ext.CuMemberAchieveExt;
|
|
||||||
import com.hzs.common.domain.member.swing.CuMemberSwingNetLog;
|
import com.hzs.common.domain.member.swing.CuMemberSwingNetLog;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
import java.util.List;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* <p>
|
|
||||||
* 会员甩网业绩记录 服务实现类
|
* 会员甩网业绩记录 服务实现类
|
||||||
* </p>
|
|
||||||
*
|
|
||||||
* @author hzs
|
|
||||||
* @since 2024-03-05
|
|
||||||
*/
|
*/
|
||||||
@Service
|
@Service
|
||||||
public class CuMemberSwingNetLogServiceImpl extends ServiceImpl<CuMemberSwingNetLogMapper, CuMemberSwingNetLog> implements ICuMemberSwingNetLogService {
|
public class CuMemberSwingNetLogServiceImpl extends ServiceImpl<CuMemberSwingNetLogMapper, CuMemberSwingNetLog> implements ICuMemberSwingNetLogService {
|
||||||
|
|
||||||
@Override
|
|
||||||
public void mergeCuMemberSwingNetLogByAchieve(List<CuMemberAchieveExt> cuMemberAchieveExtList, String settleTableName) {
|
|
||||||
baseMapper.mergeCuMemberSwingNetLogByAchieve(cuMemberAchieveExtList, settleTableName);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -398,6 +398,7 @@
|
||||||
bw.benefit_avg_ratio,
|
bw.benefit_avg_ratio,
|
||||||
bw.benefit_share_ratio,
|
bw.benefit_share_ratio,
|
||||||
br.name country_name,
|
br.name country_name,
|
||||||
|
a.pk_vertex,
|
||||||
bv.region_vertex_pk_id
|
bv.region_vertex_pk_id
|
||||||
from (
|
from (
|
||||||
select * from ${tableName}
|
select * from ${tableName}
|
||||||
|
@ -694,6 +695,7 @@
|
||||||
a.pk_share_awards,
|
a.pk_share_awards,
|
||||||
cm.income_status,
|
cm.income_status,
|
||||||
cm.pay_time,
|
cm.pay_time,
|
||||||
|
cm.pk_vertex,
|
||||||
nvl(b.pk_rate, bt.pk_id) pk_rate,
|
nvl(b.pk_rate, bt.pk_id) pk_rate,
|
||||||
nvl(cm.is_activate, a.enable_status) enable_status,
|
nvl(cm.is_activate, a.enable_status) enable_status,
|
||||||
a.new_box_num,
|
a.new_box_num,
|
||||||
|
|
|
@ -0,0 +1,6 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||||
|
<mapper namespace="com.hzs.bonus.base.mapper.BdVertexBonusMapper">
|
||||||
|
|
||||||
|
|
||||||
|
</mapper>
|
|
@ -343,4 +343,14 @@
|
||||||
when matched then
|
when matched then
|
||||||
update set a.pk_settle_grade = b.pk_grade, a.modified_time = sysdate
|
update set a.pk_settle_grade = b.pk_grade, a.modified_time = sysdate
|
||||||
</update>
|
</update>
|
||||||
|
|
||||||
|
<!-- 查询体系奖项列表 -->
|
||||||
|
<select id="listVertexBonus" resultType="com.hzs.common.domain.vertex.BdVertexBonus">
|
||||||
|
select * from cu_member cm
|
||||||
|
left join bd_vertex_bonus bvb
|
||||||
|
on bvb.pk_vertex = cm.pk_vertex
|
||||||
|
where cm.pk_id = #{pkMember}
|
||||||
|
order by cm.pk_id desc
|
||||||
|
</select>
|
||||||
|
|
||||||
</mapper>
|
</mapper>
|
||||||
|
|
|
@ -47,7 +47,6 @@
|
||||||
<result column="SETTLE_COUNTRY" property="settleCountry"/>
|
<result column="SETTLE_COUNTRY" property="settleCountry"/>
|
||||||
<result column="PERIOD" property="period"/>
|
<result column="PERIOD" property="period"/>
|
||||||
<result column="pk_source_country" property="pkSourceCountry"/>
|
<result column="pk_source_country" property="pkSourceCountry"/>
|
||||||
|
|
||||||
<result column="service_code" property="serviceCode"/>
|
<result column="service_code" property="serviceCode"/>
|
||||||
<result column="pk_vertex" property="pkVertex"/>
|
<result column="pk_vertex" property="pkVertex"/>
|
||||||
<result column="nick_name" property="nickName"/>
|
<result column="nick_name" property="nickName"/>
|
||||||
|
|
|
@ -87,21 +87,30 @@
|
||||||
using (
|
using (
|
||||||
select b.* from bd_bonus_items bt
|
select b.* from bd_bonus_items bt
|
||||||
inner join (
|
inner join (
|
||||||
select pk_bonus,pk_bonus_items, sum(pretax_income) pretax_income,
|
select pk_bonus, pk_bonus_items,
|
||||||
sum(income_tax) income_tax, sum(real_income) real_income from
|
sum(pretax_income) pretax_income,
|
||||||
|
sum(income_tax) income_tax,
|
||||||
|
sum(real_income) real_income
|
||||||
|
from
|
||||||
<choose>
|
<choose>
|
||||||
<when test="bonusValue == 27">cu_member_bonus_detail</when>
|
<when test="bonusValue == 27">cu_member_bonus_detail</when>
|
||||||
<otherwise>cu_member_bonus_range</otherwise>
|
<otherwise>cu_member_bonus_range</otherwise>
|
||||||
</choose>
|
</choose>
|
||||||
where del_flag=0 and pk_order= #{pkOrder}
|
where del_flag = 0
|
||||||
group by pk_bonus, pk_bonus_items) b
|
and pk_order= #{pkOrder}
|
||||||
|
group by pk_bonus, pk_bonus_items
|
||||||
|
) b
|
||||||
on bt.pk_id = b.pk_bonus_items
|
on bt.pk_id = b.pk_bonus_items
|
||||||
where bt.bonus_value = #{bonusValue}) b
|
where bt.bonus_value = #{bonusValue}
|
||||||
|
) b
|
||||||
on (a.pk_id = b.pk_bonus)
|
on (a.pk_id = b.pk_bonus)
|
||||||
when matched then
|
when matched then
|
||||||
update set a.retail_real_subtotal = a.retail_real_subtotal - b.real_income,
|
update set a.retail_real_subtotal = a.retail_real_subtotal - b.real_income,
|
||||||
a.back_points = a.back_points - b.income_tax,
|
a.back_points = a.back_points - b.income_tax,
|
||||||
a.real_income_total = a.real_income_total - b.real_income
|
a.real_income_total = a.real_income_total - b.real_income
|
||||||
|
<if test="bonusValue == 8">
|
||||||
|
,a.repur_range_income = a.repur_range_income - b.pretax_income
|
||||||
|
</if>
|
||||||
<if test="bonusValue == 25">
|
<if test="bonusValue == 25">
|
||||||
,a.retail_range_income = a.retail_range_income - b.pretax_income
|
,a.retail_range_income = a.retail_range_income - b.pretax_income
|
||||||
</if>
|
</if>
|
||||||
|
@ -178,21 +187,25 @@
|
||||||
using(
|
using(
|
||||||
select pk_id,pk_member,period,pk_rate,direct_income,expand_income,expand_no_capping,
|
select pk_id,pk_member,period,pk_rate,direct_income,expand_income,expand_no_capping,
|
||||||
expand_capping,coach_income,share_income,service_income,back_points,service_spend,
|
expand_capping,coach_income,share_income,service_income,back_points,service_spend,
|
||||||
pur_real_subtotal,repur_push_income,repur_range_income,repur_expand_income,repur_real_subtotal,
|
pur_real_subtotal,repur_push_income,
|
||||||
|
repur_range_income,
|
||||||
|
repur_expand_income,repur_real_subtotal,
|
||||||
cloud_direct_income,cloud_pur_income,cloud_repur_income,cloud_real_subtotal,
|
cloud_direct_income,cloud_pur_income,cloud_repur_income,cloud_real_subtotal,
|
||||||
repur_coupon,repur_coupon_subtotal,global_points,
|
repur_coupon,repur_coupon_subtotal,global_points,
|
||||||
car_award_points,hi_fun_income,hai_fun_income,retail_range_income,retail_same_level_income,retail_area_income,
|
car_award_points,hi_fun_income,hai_fun_income,
|
||||||
retail_benefit_range_income,retail_benefit_avg_income,
|
retail_range_income, retail_same_level_income, retail_area_income,
|
||||||
retail_benefit_income,retail_real_subtotal,
|
retail_benefit_range_income, retail_benefit_avg_income, retail_benefit_income,
|
||||||
maker_direct_income,maker_share_income,maker_real_subtotal,real_income_total,
|
retail_real_subtotal, maker_direct_income,maker_share_income, maker_real_subtotal, real_income_total,
|
||||||
pk_country,pk_creator,grant_status,income_status from(
|
pk_country, pk_creator, grant_status, income_status
|
||||||
|
from (
|
||||||
<foreach item="item" index="index" collection="cuMemberBonusList" separator=" union ">
|
<foreach item="item" index="index" collection="cuMemberBonusList" separator=" union ">
|
||||||
select #{item.pkId} pk_id,#{item.pkMember} pk_member,#{item.period} period,#{item.pkRate} pk_rate,
|
select #{item.pkId} pk_id,#{item.pkMember} pk_member,#{item.period} period,#{item.pkRate} pk_rate,
|
||||||
#{item.directIncome} direct_income,#{item.expandIncome} expand_income,#{item.expandNoCapping} expand_no_capping,
|
#{item.directIncome} direct_income,#{item.expandIncome} expand_income,#{item.expandNoCapping} expand_no_capping,
|
||||||
#{item.expandCapping} expand_capping,#{item.coachIncome} coach_income,#{item.shareIncome} share_income,
|
#{item.expandCapping} expand_capping,#{item.coachIncome} coach_income,#{item.shareIncome} share_income,
|
||||||
#{item.serviceIncome} service_income,#{item.backPoints} back_points,#{item.serviceSpend} service_spend,
|
#{item.serviceIncome} service_income,#{item.backPoints} back_points,#{item.serviceSpend} service_spend,
|
||||||
#{item.purRealSubtotal} pur_real_subtotal,#{item.repurPushIncome} repur_push_income,
|
#{item.purRealSubtotal} pur_real_subtotal,#{item.repurPushIncome} repur_push_income,
|
||||||
#{item.repurRangeIncome} repur_range_income,#{item.repurExpandIncome} repur_expand_income,
|
#{item.repurRangeIncome} repur_range_income,
|
||||||
|
#{item.repurExpandIncome} repur_expand_income,
|
||||||
#{item.repurRealSubtotal} repur_real_subtotal,#{item.cloudDirectIncome} cloud_direct_income,
|
#{item.repurRealSubtotal} repur_real_subtotal,#{item.cloudDirectIncome} cloud_direct_income,
|
||||||
#{item.cloudPurIncome} cloud_pur_income,#{item.cloudRepurIncome} cloud_repur_income,
|
#{item.cloudPurIncome} cloud_pur_income,#{item.cloudRepurIncome} cloud_repur_income,
|
||||||
#{item.cloudRealSubtotal} cloud_real_subtotal,#{item.repurCoupon} repur_coupon,
|
#{item.cloudRealSubtotal} cloud_real_subtotal,#{item.repurCoupon} repur_coupon,
|
||||||
|
@ -205,7 +218,8 @@
|
||||||
#{item.retailRangeIncome} retail_range_income, #{item.retailSameLevelIncome} retail_same_level_income,
|
#{item.retailRangeIncome} retail_range_income, #{item.retailSameLevelIncome} retail_same_level_income,
|
||||||
#{item.retailAreaIncome} retail_area_income, #{item.retailBenefitRangeIncome} retail_benefit_range_income,
|
#{item.retailAreaIncome} retail_area_income, #{item.retailBenefitRangeIncome} retail_benefit_range_income,
|
||||||
#{item.retailBenefitAvgIncome} retail_benefit_avg_income, #{item.retailBenefitIncome} retail_benefit_income,
|
#{item.retailBenefitAvgIncome} retail_benefit_avg_income, #{item.retailBenefitIncome} retail_benefit_income,
|
||||||
#{item.retailRealSubtotal} retail_real_subtotal from dual
|
#{item.retailRealSubtotal} retail_real_subtotal
|
||||||
|
from dual
|
||||||
</foreach>)
|
</foreach>)
|
||||||
) b
|
) b
|
||||||
on (a.pk_member = b.pk_member and a.period = b.period)
|
on (a.pk_member = b.pk_member and a.period = b.period)
|
||||||
|
@ -216,31 +230,44 @@
|
||||||
a.coach_income=a.coach_income+b.coach_income,a.share_income=a.share_income+b.share_income,
|
a.coach_income=a.coach_income+b.coach_income,a.share_income=a.share_income+b.share_income,
|
||||||
a.service_income=a.service_income+b.service_income,a.back_points=a.back_points+b.back_points,a.service_spend=a.service_spend+b.service_spend,
|
a.service_income=a.service_income+b.service_income,a.back_points=a.back_points+b.back_points,a.service_spend=a.service_spend+b.service_spend,
|
||||||
a.pur_real_subtotal=a.pur_real_subtotal+b.pur_real_subtotal,a.repur_push_income=a.repur_push_income+b.repur_push_income,
|
a.pur_real_subtotal=a.pur_real_subtotal+b.pur_real_subtotal,a.repur_push_income=a.repur_push_income+b.repur_push_income,
|
||||||
a.repur_range_income=a.repur_range_income+b.repur_range_income,a.repur_expand_income=a.repur_expand_income+b.repur_expand_income,
|
a.repur_range_income = a.repur_range_income + b.repur_range_income,
|
||||||
|
a.repur_expand_income=a.repur_expand_income+b.repur_expand_income,
|
||||||
a.repur_real_subtotal=a.repur_real_subtotal+b.repur_real_subtotal,a.cloud_direct_income=a.cloud_direct_income+b.cloud_direct_income,
|
a.repur_real_subtotal=a.repur_real_subtotal+b.repur_real_subtotal,a.cloud_direct_income=a.cloud_direct_income+b.cloud_direct_income,
|
||||||
a.cloud_pur_income=a.cloud_pur_income+b.cloud_pur_income,a.cloud_repur_income=a.cloud_repur_income+b.cloud_repur_income,
|
a.cloud_pur_income=a.cloud_pur_income+b.cloud_pur_income,a.cloud_repur_income=a.cloud_repur_income+b.cloud_repur_income,
|
||||||
a.cloud_real_subtotal=a.cloud_real_subtotal+b.cloud_real_subtotal,a.repur_coupon=a.repur_coupon+b.repur_coupon,
|
a.cloud_real_subtotal=a.cloud_real_subtotal+b.cloud_real_subtotal,a.repur_coupon=a.repur_coupon+b.repur_coupon,
|
||||||
a.global_points=a.global_points+b.global_points,a.car_award_points=a.car_award_points+b.car_award_points,
|
a.global_points=a.global_points+b.global_points,a.car_award_points=a.car_award_points+b.car_award_points,
|
||||||
a.hi_fun_income=a.hi_fun_income+b.hi_fun_income,a.real_income_total=a.real_income_total+b.real_income_total,
|
a.hi_fun_income=a.hi_fun_income+b.hi_fun_income,a.real_income_total=a.real_income_total+b.real_income_total,
|
||||||
a.retail_range_income=a.retail_range_income+b.retail_range_income,a.retail_same_level_income=a.retail_same_level_income+b.retail_same_level_income,
|
a.retail_range_income = a.retail_range_income + b.retail_range_income,
|
||||||
a.retail_area_income=a.retail_area_income+b.retail_area_income,a.retail_benefit_range_income=a.retail_benefit_range_income+b.retail_benefit_range_income,
|
a.retail_same_level_income = a.retail_same_level_income + b.retail_same_level_income,
|
||||||
a.retail_benefit_avg_income=a.retail_benefit_avg_income+b.retail_benefit_avg_income,a.retail_benefit_income=a.retail_benefit_income+b.retail_benefit_income,
|
a.retail_area_income = a.retail_area_income + b.retail_area_income,
|
||||||
|
a.retail_benefit_range_income = a.retail_benefit_range_income + b.retail_benefit_range_income,
|
||||||
|
a.retail_benefit_avg_income = a.retail_benefit_avg_income + b.retail_benefit_avg_income,
|
||||||
|
a.retail_benefit_income = a.retail_benefit_income + b.retail_benefit_income,
|
||||||
a.retail_real_subtotal = a.retail_real_subtotal + b.retail_real_subtotal
|
a.retail_real_subtotal = a.retail_real_subtotal + b.retail_real_subtotal
|
||||||
when not matched then
|
when not matched then
|
||||||
insert (pk_id,pk_member,period,pk_rate,direct_income,expand_income,expand_no_capping,
|
insert (
|
||||||
|
pk_id,pk_member,period,pk_rate,direct_income,expand_income,expand_no_capping,
|
||||||
expand_capping,coach_income,share_income,service_income,back_points,service_spend,
|
expand_capping,coach_income,share_income,service_income,back_points,service_spend,
|
||||||
pur_real_subtotal,repur_push_income,repur_range_income,repur_expand_income,repur_real_subtotal,
|
pur_real_subtotal,repur_push_income,
|
||||||
|
repur_range_income,
|
||||||
|
repur_expand_income,repur_real_subtotal,
|
||||||
cloud_direct_income,cloud_pur_income,cloud_repur_income,cloud_real_subtotal,
|
cloud_direct_income,cloud_pur_income,cloud_repur_income,cloud_real_subtotal,
|
||||||
repur_coupon,global_points,car_award_points,hi_fun_income,real_income_total,
|
repur_coupon,global_points,car_award_points,hi_fun_income,real_income_total,
|
||||||
pk_country,pk_creator,grant_status,income_status,retail_range_income,retail_same_level_income,
|
pk_country,pk_creator,grant_status,income_status,
|
||||||
retail_area_income,retail_benefit_range_income,retail_benefit_avg_income,retail_benefit_income,retail_real_subtotal)
|
retail_range_income, retail_same_level_income, retail_area_income,
|
||||||
values(b.pk_id,b.pk_member,b.period,b.pk_rate,b.direct_income,b.expand_income,b.expand_no_capping,
|
retail_benefit_range_income, retail_benefit_avg_income, retail_benefit_income,
|
||||||
|
retail_real_subtotal)
|
||||||
|
values (
|
||||||
|
b.pk_id,b.pk_member,b.period,b.pk_rate,b.direct_income,b.expand_income,b.expand_no_capping,
|
||||||
b.expand_capping,b.coach_income,b.share_income,b.service_income,b.back_points,b.service_spend,
|
b.expand_capping,b.coach_income,b.share_income,b.service_income,b.back_points,b.service_spend,
|
||||||
b.pur_real_subtotal,b.repur_push_income,b.repur_range_income,b.repur_expand_income,b.repur_real_subtotal,
|
b.pur_real_subtotal,b.repur_push_income,
|
||||||
|
b.repur_range_income,
|
||||||
|
b.repur_expand_income,b.repur_real_subtotal,
|
||||||
b.cloud_direct_income,b.cloud_pur_income,b.cloud_repur_income,b.cloud_real_subtotal,
|
b.cloud_direct_income,b.cloud_pur_income,b.cloud_repur_income,b.cloud_real_subtotal,
|
||||||
b.repur_coupon,b.global_points,b.car_award_points,b.hi_fun_income,b.real_income_total,
|
b.repur_coupon,b.global_points,b.car_award_points,b.hi_fun_income,b.real_income_total,
|
||||||
b.pk_country,b.pk_creator,b.grant_status,b.income_status,b.retail_range_income,b.retail_same_level_income,
|
b.pk_country,b.pk_creator,b.grant_status,b.income_status,
|
||||||
b.retail_area_income,b.retail_benefit_range_income,b.retail_benefit_avg_income,b.retail_benefit_income,
|
b.retail_range_income, b.retail_same_level_income, b.retail_area_income,
|
||||||
|
b.retail_benefit_range_income, b.retail_benefit_avg_income, b.retail_benefit_income,
|
||||||
b.retail_real_subtotal)
|
b.retail_real_subtotal)
|
||||||
</insert>
|
</insert>
|
||||||
|
|
||||||
|
@ -257,15 +284,14 @@
|
||||||
cb.service_spend,
|
cb.service_spend,
|
||||||
cb.pur_real_subtotal,
|
cb.pur_real_subtotal,
|
||||||
cb.repur_push_income,
|
cb.repur_push_income,
|
||||||
cb.repur_range_income,
|
|
||||||
cb.repur_expand_income,
|
cb.repur_expand_income,
|
||||||
cb.repur_real_subtotal,
|
cb.repur_real_subtotal,
|
||||||
cb.repur_coupon,
|
cb.repur_coupon,
|
||||||
cb.repur_coupon_share,
|
cb.repur_coupon_share,
|
||||||
cb.repur_coupon_subtotal,
|
cb.repur_coupon_subtotal,
|
||||||
cb.store_income,
|
cb.store_income,
|
||||||
cb.global_points,
|
cb.global_points, cb.car_award_points,
|
||||||
cb.car_award_points,
|
cb.repur_range_income,
|
||||||
cb.retail_range_income,
|
cb.retail_range_income,
|
||||||
cb.retail_same_level_income,
|
cb.retail_same_level_income,
|
||||||
cb.retail_area_income,
|
cb.retail_area_income,
|
||||||
|
@ -298,10 +324,11 @@
|
||||||
bv.vertex_name, ct.team_name,
|
bv.vertex_name, ct.team_name,
|
||||||
cb.period,cp.settle_date,cb.direct_income,cb.expand_income,cb.expand_no_capping,
|
cb.period,cp.settle_date,cb.direct_income,cb.expand_income,cb.expand_no_capping,
|
||||||
cb.expand_capping,cb.share_income,cb.service_income,cb.back_points,cb.service_spend,
|
cb.expand_capping,cb.share_income,cb.service_income,cb.back_points,cb.service_spend,
|
||||||
cb.pur_real_subtotal,cb.repur_push_income,cb.repur_range_income,cb.repur_expand_income,cb.repur_real_subtotal,
|
cb.pur_real_subtotal,cb.repur_push_income,cb.repur_expand_income,cb.repur_real_subtotal,
|
||||||
cb.repur_coupon,cb.repur_coupon_share,cb.repur_coupon_subtotal,cb.store_income,
|
cb.repur_coupon,cb.repur_coupon_share,cb.repur_coupon_subtotal,cb.store_income,
|
||||||
cb.global_points,cb.car_award_points,cb.pk_rate,bc.out_exchange_rate,
|
cb.global_points,cb.car_award_points,cb.pk_rate,bc.out_exchange_rate,
|
||||||
cb.coach_income,
|
cb.coach_income,
|
||||||
|
cb.repur_range_income,
|
||||||
cb.retail_range_income, cb.retail_same_level_income, cb.retail_area_income,
|
cb.retail_range_income, cb.retail_same_level_income, cb.retail_area_income,
|
||||||
cb.retail_benefit_range_income, cb.retail_month_repurchase_income,
|
cb.retail_benefit_range_income, cb.retail_month_repurchase_income,
|
||||||
cb.retail_benefit_avg_income, cb.retail_benefit_income,cb.retail_real_subtotal,
|
cb.retail_benefit_avg_income, cb.retail_benefit_income,cb.retail_real_subtotal,
|
||||||
|
@ -392,7 +419,6 @@
|
||||||
nvl(sum(cb.service_spend),0) service_spend,
|
nvl(sum(cb.service_spend),0) service_spend,
|
||||||
nvl(sum(cb.pur_real_subtotal),0) pur_real_subtotal,
|
nvl(sum(cb.pur_real_subtotal),0) pur_real_subtotal,
|
||||||
nvl(sum(cb.repur_push_income),0) repur_push_income,
|
nvl(sum(cb.repur_push_income),0) repur_push_income,
|
||||||
nvl(sum(cb.repur_range_income),0) repur_range_income,
|
|
||||||
nvl(sum(cb.repur_expand_income),0) repur_expand_income,
|
nvl(sum(cb.repur_expand_income),0) repur_expand_income,
|
||||||
nvl(sum(cb.repur_real_subtotal),0) repur_real_subtotal,
|
nvl(sum(cb.repur_real_subtotal),0) repur_real_subtotal,
|
||||||
nvl(sum(cb.repur_coupon),0) repur_coupon,
|
nvl(sum(cb.repur_coupon),0) repur_coupon,
|
||||||
|
@ -402,6 +428,7 @@
|
||||||
nvl(sum(cb.global_points),0) global_points,
|
nvl(sum(cb.global_points),0) global_points,
|
||||||
nvl(sum(cb.car_award_points),0) car_award_points,
|
nvl(sum(cb.car_award_points),0) car_award_points,
|
||||||
bc.out_exchange_rate,
|
bc.out_exchange_rate,
|
||||||
|
nvl(sum(cb.repur_range_income),0) repur_range_income,
|
||||||
nvl(sum(cb.retail_range_income),0) retail_range_income,
|
nvl(sum(cb.retail_range_income),0) retail_range_income,
|
||||||
nvl(sum(cb.retail_same_level_income),0) retail_same_level_income,
|
nvl(sum(cb.retail_same_level_income),0) retail_same_level_income,
|
||||||
nvl(sum(cb.retail_area_income),0) retail_area_income,
|
nvl(sum(cb.retail_area_income),0) retail_area_income,
|
||||||
|
@ -487,11 +514,12 @@
|
||||||
sum(cb.share_income) share_income, sum(cb.service_spend) service_spend,
|
sum(cb.share_income) share_income, sum(cb.service_spend) service_spend,
|
||||||
sum(cb.service_income) service_income, sum(cb.back_points) back_points,
|
sum(cb.service_income) service_income, sum(cb.back_points) back_points,
|
||||||
sum(cb.pur_real_subtotal) pur_real_subtotal,
|
sum(cb.pur_real_subtotal) pur_real_subtotal,
|
||||||
sum(cb.repur_push_income) repur_push_income, sum(cb.repur_range_income) repur_range_income,
|
sum(cb.repur_push_income) repur_push_income,
|
||||||
sum(cb.repur_expand_income) repur_expand_income, sum(cb.repur_real_subtotal) repur_real_subtotal,
|
sum(cb.repur_expand_income) repur_expand_income, sum(cb.repur_real_subtotal) repur_real_subtotal,
|
||||||
sum(cb.repur_coupon) repur_coupon, sum(repur_coupon_share) repur_coupon_share,
|
sum(cb.repur_coupon) repur_coupon, sum(repur_coupon_share) repur_coupon_share,
|
||||||
sum(cb.repur_coupon_subtotal) repur_coupon_subtotal,
|
sum(cb.repur_coupon_subtotal) repur_coupon_subtotal,
|
||||||
sum(cb.global_points) global_points, sum(cb.car_award_points) car_award_points,
|
sum(cb.global_points) global_points, sum(cb.car_award_points) car_award_points,
|
||||||
|
sum(cb.repur_range_income) repur_range_income,
|
||||||
sum(cb.retail_range_income) retail_range_income,
|
sum(cb.retail_range_income) retail_range_income,
|
||||||
sum(cb.retail_same_level_income) retail_same_level_income,
|
sum(cb.retail_same_level_income) retail_same_level_income,
|
||||||
sum(cb.retail_area_income) retail_area_income,
|
sum(cb.retail_area_income) retail_area_income,
|
||||||
|
|
|
@ -85,7 +85,6 @@
|
||||||
</collection>
|
</collection>
|
||||||
</resultMap>
|
</resultMap>
|
||||||
|
|
||||||
|
|
||||||
<!-- 订单+详情返回映射 -->
|
<!-- 订单+详情返回映射 -->
|
||||||
<resultMap id="saOrderExtResultMap" type="com.hzs.common.domain.sale.ext.SaOrderExt" extends="SaOrder">
|
<resultMap id="saOrderExtResultMap" type="com.hzs.common.domain.sale.ext.SaOrderExt" extends="SaOrder">
|
||||||
<result column="MEMBER_CODE" property="memberCode"/>
|
<result column="MEMBER_CODE" property="memberCode"/>
|
||||||
|
@ -329,4 +328,69 @@
|
||||||
and #{endDate} > so.pay_time
|
and #{endDate} > so.pay_time
|
||||||
</select>
|
</select>
|
||||||
|
|
||||||
|
<!-- 通用查询映射结果 -->
|
||||||
|
<resultMap id="SaOrderItems" type="com.hzs.common.domain.sale.ext.SaOrderItemsExt">
|
||||||
|
<result column="PK_ORDER" property="pkOrder"/>
|
||||||
|
<result column="PK_ID" property="pkId"/>
|
||||||
|
<result column="PRICE" property="price"/>
|
||||||
|
<result column="PK_WARES" property="pkWares"/>
|
||||||
|
<result column="PK_PRODUCT" property="pkProduct"/>
|
||||||
|
<result column="PK_WARES_DETAIL" property="pkWaresDetail"/>
|
||||||
|
<result column="PK_WARES_SPECS_SKU" property="pkWaresSpecsSku"/>
|
||||||
|
<collection property="waresRangeTmpList" ofType="com.hzs.common.domain.sale.wares.ext.WaresRangeTmp">
|
||||||
|
<result column="RANGE_PRICE" property="rangePrice"/>
|
||||||
|
<result column="RANGE_VALUE" property="rangeValue"/>
|
||||||
|
</collection>
|
||||||
|
</resultMap>
|
||||||
|
|
||||||
|
<!-- 查询商品级差数据 -->
|
||||||
|
<select id="listOrderWaresRange" resultType="com.hzs.common.domain.sale.ext.SaOrderItemsExt">
|
||||||
|
select soi.pk_order,
|
||||||
|
soi.pk_id,
|
||||||
|
soi.price,
|
||||||
|
bwr.pk_wares,
|
||||||
|
bwr.pk_product,
|
||||||
|
bwr.pk_wares_detail,
|
||||||
|
bwr.pk_wares_specs_sku,
|
||||||
|
bwr.price range_price,
|
||||||
|
br.range_value
|
||||||
|
from (select so.pk_id pk_order,
|
||||||
|
soi.pk_id,
|
||||||
|
soi.pk_wares,
|
||||||
|
soi.pk_product,
|
||||||
|
soi.pk_wares_detail,
|
||||||
|
soi.pk_wares_specs_sku,
|
||||||
|
soi.price
|
||||||
|
from sa_order so
|
||||||
|
left join sa_order_items soi
|
||||||
|
on soi.pk_order = so.pk_id
|
||||||
|
where so.del_flag = 0
|
||||||
|
and soi.del_flag = 0
|
||||||
|
and soi.is_gift = 1
|
||||||
|
and so.order_code in
|
||||||
|
<foreach collection="orderList" item="items" open="(" separator="," close=")">
|
||||||
|
#{items.orderCode}
|
||||||
|
</foreach>
|
||||||
|
group by so.pk_id,
|
||||||
|
soi.pk_id,
|
||||||
|
soi.pk_wares,
|
||||||
|
soi.pk_product,
|
||||||
|
soi.pk_wares_detail,
|
||||||
|
soi.pk_wares_specs_sku,
|
||||||
|
soi.price) soi
|
||||||
|
left join bd_wares_range bwr
|
||||||
|
on bwr.pk_wares = soi.pk_wares
|
||||||
|
and bwr.pk_product = soi.pk_product
|
||||||
|
and bwr.pk_wares_detail = soi.pk_wares_detail
|
||||||
|
and bwr.pk_wares_specs_sku = soi.pk_wares_specs_sku
|
||||||
|
left join bd_range br
|
||||||
|
on br.pk_id = bwr.pk_range
|
||||||
|
and br.del_flag = 0
|
||||||
|
order by bwr.pk_wares,
|
||||||
|
bwr.pk_product,
|
||||||
|
bwr.pk_wares_detail,
|
||||||
|
bwr.pk_wares_specs_sku,
|
||||||
|
br.range_value
|
||||||
|
</select>
|
||||||
|
|
||||||
</mapper>
|
</mapper>
|
||||||
|
|
|
@ -2,58 +2,4 @@
|
||||||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||||
<mapper namespace="com.hzs.bonus.swing.mapper.CuMemberSwingNetLogMapper">
|
<mapper namespace="com.hzs.bonus.swing.mapper.CuMemberSwingNetLogMapper">
|
||||||
|
|
||||||
<!-- 通用查询映射结果 -->
|
|
||||||
<resultMap id="CuMemberSwingNetLog" type="com.hzs.common.domain.member.swing.CuMemberSwingNetLog">
|
|
||||||
<id column="PK_ID" property="pkId" />
|
|
||||||
<result column="CREATION_TIME" property="creationTime" />
|
|
||||||
<result column="MODIFIED_TIME" property="modifiedTime" />
|
|
||||||
<result column="DEL_FLAG" property="delFlag" />
|
|
||||||
<result column="PK_CREATOR" property="pkCreator" />
|
|
||||||
<result column="PK_MODIFIED" property="pkModified" />
|
|
||||||
<result column="PK_COUNTRY" property="pkCountry" />
|
|
||||||
<result column="PK_MEMBER" property="pkMember" />
|
|
||||||
<result column="PERIOD" property="period" />
|
|
||||||
<result column="PLACE_DEPT" property="placeDept" />
|
|
||||||
<result column="NET_FIRST_ACHIEVE" property="netFirstAchieve" />
|
|
||||||
<result column="NET_REPURCHASE_ACHIEVE" property="netRepurchaseAchieve" />
|
|
||||||
<result column="NET_REAL_ACHIEVE" property="netRealAchieve" />
|
|
||||||
<result column="A_SUM_PV" property="aSumPv" />
|
|
||||||
<result column="B_SUM_PV" property="bSumPv" />
|
|
||||||
<result column="A_SUM_REAL_PV" property="aSumRealPv" />
|
|
||||||
<result column="B_SUM_REAL_PV" property="bSumRealPv" />
|
|
||||||
<result column="REP_A_SUM_PV" property="repASumPv" />
|
|
||||||
<result column="REP_B_SUM_PV" property="repBSumPv" />
|
|
||||||
</resultMap>
|
|
||||||
<update id="mergeCuMemberSwingNetLogByAchieve">
|
|
||||||
merge into cu_member_swing_net_log a
|
|
||||||
using (
|
|
||||||
select x.*,(x.net_first_achieve+x.net_repurchase_achieve) net_real_achieve,
|
|
||||||
y.a_sum_pv,y.b_sum_pv,y.a_sum_real_pv,y.b_sum_real_pv,y.rep_a_new_pv rep_a_sum_pv,y.rep_b_new_pv rep_b_sum_pv,'100000000' pk_creator from(
|
|
||||||
select pk_member,place_dept,period,pk_country,sum(net_first_achieve) net_first_achieve,
|
|
||||||
sum(net_repurchase_achieve) net_repurchase_achieve from(
|
|
||||||
<foreach collection="cuMemberAchieveExtList" item="item" separator=" union all">
|
|
||||||
select
|
|
||||||
#{item.pkMember} pk_member,#{item.placeDept} place_dept,#{item.period} period,
|
|
||||||
#{item.netFirstAchieve} net_first_achieve,#{item.netRepurchaseAchieve} net_repurchase_achieve,
|
|
||||||
#{item.pkCountry} pk_country from dual
|
|
||||||
</foreach>)
|
|
||||||
group by pk_member,place_dept,period,pk_country) x
|
|
||||||
inner join ${settleTableName} y
|
|
||||||
on x.pk_member=y.pk_member
|
|
||||||
) b
|
|
||||||
on (a.pk_member=b.pk_member and a.period=b.period and a.place_dept=b.place_dept)
|
|
||||||
when matched then
|
|
||||||
update set a.net_first_achieve=b.net_first_achieve,a.net_repurchase_achieve=b.net_repurchase_achieve,
|
|
||||||
a.net_real_achieve=b.net_real_achieve,a.a_sum_pv=b.a_sum_pv,a.b_sum_pv=b.b_sum_pv,
|
|
||||||
a.a_sum_real_pv=b.a_sum_real_pv,a.b_sum_real_pv=b.b_sum_real_pv,
|
|
||||||
a.rep_a_sum_pv=b.rep_a_sum_pv,a.rep_b_sum_pv=b.rep_b_sum_pv,modified_time=sysdate
|
|
||||||
when not matched then
|
|
||||||
insert
|
|
||||||
(PK_ID,pk_member,period,place_dept,net_first_achieve,net_repurchase_achieve,net_real_achieve,
|
|
||||||
a_sum_pv,b_sum_pv,a_sum_real_pv,b_sum_real_pv,rep_a_sum_pv,rep_b_sum_pv,pk_creator,pk_country)
|
|
||||||
values (CU_MEMBER_SWING_NET_LOG_SEQ.NEXTVAL,b.pk_member,b.period,b.place_dept,b.net_first_achieve,
|
|
||||||
b.net_repurchase_achieve,b.net_real_achieve,b.a_sum_pv,b.b_sum_pv,b.a_sum_real_pv,b.b_sum_real_pv,
|
|
||||||
b.rep_a_sum_pv,b.rep_b_sum_pv,b.pk_creator,b.pk_country)
|
|
||||||
</update>
|
|
||||||
|
|
||||||
</mapper>
|
</mapper>
|
||||||
|
|
|
@ -197,23 +197,6 @@ public class CuBonusStatisServiceImpl extends ServiceImpl<CuBonusStatisMapper, C
|
||||||
case REPURCHASE_COUPONS:
|
case REPURCHASE_COUPONS:
|
||||||
oldBon.setRepurCouponSubtotal(addOrInitializeAmount(oldBon.getRepurCouponSubtotal(), newBon.getRealIncome(), 2));
|
oldBon.setRepurCouponSubtotal(addOrInitializeAmount(oldBon.getRepurCouponSubtotal(), newBon.getRealIncome(), 2));
|
||||||
break;
|
break;
|
||||||
case HELP_EACH_INCOME:
|
|
||||||
oldBon.setRepurPushIncome(addOrInitializeAmount(oldBon.getRepurPushIncome(), newBon.getRealIncome(), 2));
|
|
||||||
break;
|
|
||||||
//云代
|
|
||||||
case CLOUD_AGENT_DIRECT_PUSH:
|
|
||||||
oldBon.setAgentIntroduceBonus(addOrInitializeAmount(oldBon.getAgentIntroduceBonus(), newBon.getRealIncome(), 2));
|
|
||||||
break;
|
|
||||||
case CLOUD_AGENT_FIRST_PURCHASE:
|
|
||||||
oldBon.setCloudAgentFirstPurchase(addOrInitializeAmount(oldBon.getCloudAgentFirstPurchase(), newBon.getRealIncome(), 2));
|
|
||||||
break;
|
|
||||||
case CLOUD_AGENT_REPURCHASE:
|
|
||||||
oldBon.setCloudAgentRepurchase(addOrInitializeAmount(oldBon.getCloudAgentRepurchase(), newBon.getRealIncome(), 2));
|
|
||||||
break;
|
|
||||||
//嗨粉直推收益
|
|
||||||
case HI_PINK:
|
|
||||||
oldBon.setHiFunIncome(addOrInitializeAmount(oldBon.getHiFunIncome(), newBon.getRealIncome(), 2));
|
|
||||||
break;
|
|
||||||
}
|
}
|
||||||
return oldBon;
|
return oldBon;
|
||||||
}
|
}
|
||||||
|
|
|
@ -120,6 +120,9 @@ public class ApiRetailWaresController extends BaseController {
|
||||||
param.setPkCountry(SecurityUtils.getPkCountry());
|
param.setPkCountry(SecurityUtils.getPkCountry());
|
||||||
// 商品详情
|
// 商品详情
|
||||||
RetailWaresDetailVO waresDetailVO = iBdWaresSpecsSkuService.queryWaresDetail(param, cuMemberExt.getPkSettleGrade());
|
RetailWaresDetailVO waresDetailVO = iBdWaresSpecsSkuService.queryWaresDetail(param, cuMemberExt.getPkSettleGrade());
|
||||||
|
if (null == waresDetailVO) {
|
||||||
|
return AjaxResult.error("商品数据不存在,请刷新后重试");
|
||||||
|
}
|
||||||
|
|
||||||
// 预计发货时间(秒)
|
// 预计发货时间(秒)
|
||||||
if (waresDetailVO.getArrivalTime() != null && waresDetailVO.getCreationTime() != null) {
|
if (waresDetailVO.getArrivalTime() != null && waresDetailVO.getCreationTime() != null) {
|
||||||
|
|
|
@ -573,6 +573,7 @@ public class BdWaresSpecsSkuServiceImpl extends ServiceImpl<BdWaresSpecsSkuMappe
|
||||||
productList.addAll(productResultList);
|
productList.addAll(productResultList);
|
||||||
|
|
||||||
waresDetailVO.setProductList(productList);
|
waresDetailVO.setProductList(productList);
|
||||||
|
waresDetailVO.setSpecialArea(param.getSpecialArea());
|
||||||
return waresDetailVO;
|
return waresDetailVO;
|
||||||
}
|
}
|
||||||
return null;
|
return null;
|
||||||
|
|
|
@ -31,19 +31,14 @@ public class MagicNumberConstants {
|
||||||
public static final Integer ADDEND = 1;
|
public static final Integer ADDEND = 1;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 更新条数
|
* 更新、删除条数
|
||||||
*/
|
*/
|
||||||
public static final Integer BATCH_UPDATE_NUM = 300;
|
public static final Integer BATCH_UPDATE_NUM = 200;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 更新条数
|
* 查询条数
|
||||||
*/
|
*/
|
||||||
public static final Integer BATCH_QUERY_NUM = 400;
|
public static final Integer BATCH_QUERY_NUM = 300;
|
||||||
|
|
||||||
/**
|
|
||||||
* 数据库批量更新(删除)
|
|
||||||
*/
|
|
||||||
public static final Integer DELETE_DATA_BATCH_UPDATE_NUM = 200;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 系统管理员主键
|
* 系统管理员主键
|
||||||
|
|
|
@ -14,7 +14,6 @@ public class BonusMsgConstants {
|
||||||
* 月度分红平均收益
|
* 月度分红平均收益
|
||||||
*/
|
*/
|
||||||
public static String RETAIL_BENEFIT_AVG_INCOME = "获得 %f 月度分红福利平均收益,结算月%s。";
|
public static String RETAIL_BENEFIT_AVG_INCOME = "获得 %f 月度分红福利平均收益,结算月%s。";
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 月度分红加权收益
|
* 月度分红加权收益
|
||||||
*/
|
*/
|
||||||
|
@ -33,11 +32,11 @@ public class BonusMsgConstants {
|
||||||
/**
|
/**
|
||||||
* 月度福利级差
|
* 月度福利级差
|
||||||
*/
|
*/
|
||||||
public static String RETAIL_RANGE = "订单编号%s,%s为%s贡献了福利级差收益,计算业绩%f,前一级差等级名称%s,当前级差等级名称%s。";
|
public static String RETAIL_RANGE = "订单编号%s,%s为%s贡献了月度福利级差收益,计算业绩%f,前一级差等级名称%s,当前级差等级名称%s。";
|
||||||
/**
|
/**
|
||||||
* 月度复购级差
|
* 月度复购级差
|
||||||
*/
|
*/
|
||||||
public static String RETAIL_MONTH_REPURCHASE_INCOME = "订单编号%s,%s为%s贡献了复购级差收益,计算业绩%f,前一级差等级名称%s,当前级差等级名称%s。";
|
public static String RETAIL_MONTH_REPURCHASE_INCOME = "订单编号%s,%s为%s贡献了月度复购级差收益,计算业绩%f,前一级差等级名称%s,当前级差等级名称%s。";
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 直推级差收益说明
|
* 直推级差收益说明
|
||||||
|
@ -49,6 +48,11 @@ public class BonusMsgConstants {
|
||||||
*/
|
*/
|
||||||
public static String ORI_RANGE = "订单编号%s,%s为%s贡献了平级收益,计算业绩%f,等级名称%s。";
|
public static String ORI_RANGE = "订单编号%s,%s为%s贡献了平级收益,计算业绩%f,等级名称%s。";
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 复购级差
|
||||||
|
*/
|
||||||
|
public static String RETAIL_REPURCHASE_INCOME = "订单编号%s,%s为%s贡献了复购级差收益,计算金额%f,当前级差等级名称%s。";
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 奖金重算 -- 只能重算7天内的奖金!
|
* 奖金重算 -- 只能重算7天内的奖金!
|
||||||
*/
|
*/
|
||||||
|
|
|
@ -11,14 +11,6 @@ import lombok.Getter;
|
||||||
@Getter
|
@Getter
|
||||||
public enum EBonusItems {
|
public enum EBonusItems {
|
||||||
|
|
||||||
/**
|
|
||||||
* 嗨粉直推 禁用
|
|
||||||
*/
|
|
||||||
HI_PINK(1, "旧嗨粉直推", 1, EnumsPrefixConstants.BONUS_ITEMS + 1),
|
|
||||||
/**
|
|
||||||
* 启动卡直推
|
|
||||||
*/
|
|
||||||
BOOT_CARD(2, "旧启动卡直推", 0, EnumsPrefixConstants.BONUS_ITEMS + 2),
|
|
||||||
/**
|
/**
|
||||||
* 直推收益
|
* 直推收益
|
||||||
*/
|
*/
|
||||||
|
@ -40,9 +32,9 @@ public enum EBonusItems {
|
||||||
*/
|
*/
|
||||||
SERVICE_SUBSIDIES(7, "旧服务补贴", 0, EnumsPrefixConstants.BONUS_ITEMS + 7),
|
SERVICE_SUBSIDIES(7, "旧服务补贴", 0, EnumsPrefixConstants.BONUS_ITEMS + 7),
|
||||||
/**
|
/**
|
||||||
* 复购极差收益
|
* 复购级差收益
|
||||||
*/
|
*/
|
||||||
REPURCHASE_RANGE_INCOME(8, "旧复购极差收益", 0, EnumsPrefixConstants.BONUS_ITEMS + 8),
|
REPURCHASE_RANGE_INCOME(8, "复购级差收益", 0, EnumsPrefixConstants.BONUS_ITEMS + 8),
|
||||||
/**
|
/**
|
||||||
* 消费拓展收益
|
* 消费拓展收益
|
||||||
*/
|
*/
|
||||||
|
@ -63,26 +55,10 @@ public enum EBonusItems {
|
||||||
* 复购券均分收益
|
* 复购券均分收益
|
||||||
*/
|
*/
|
||||||
REPURCHASE_COUPONS_SHARE(13, "旧复购券均分", 0, EnumsPrefixConstants.BONUS_ITEMS + 13),
|
REPURCHASE_COUPONS_SHARE(13, "旧复购券均分", 0, EnumsPrefixConstants.BONUS_ITEMS + 13),
|
||||||
/**
|
|
||||||
* 云代直推收益 修改为幸运收益
|
|
||||||
*/
|
|
||||||
CLOUD_AGENT_DIRECT_PUSH(14, "旧幸运收益", 0, EnumsPrefixConstants.BONUS_ITEMS + 14),
|
|
||||||
/**
|
|
||||||
* 云代首购收益 修改为极差收益
|
|
||||||
*/
|
|
||||||
CLOUD_AGENT_FIRST_PURCHASE(15, "旧极差收益", 0, EnumsPrefixConstants.BONUS_ITEMS + 15),
|
|
||||||
/**
|
|
||||||
* 云代复购收益 修改为平级收益
|
|
||||||
*/
|
|
||||||
CLOUD_AGENT_REPURCHASE(16, "旧平级收益", 0, EnumsPrefixConstants.BONUS_ITEMS + 16),
|
|
||||||
/**
|
/**
|
||||||
* 店铺收益
|
* 店铺收益
|
||||||
*/
|
*/
|
||||||
STORE_INCOME(23, "旧店铺收益", 0, EnumsPrefixConstants.BONUS_ITEMS + 23),
|
STORE_INCOME(23, "旧店铺收益", 0, EnumsPrefixConstants.BONUS_ITEMS + 23),
|
||||||
/**
|
|
||||||
* 复购直推收益 修改为互助收益
|
|
||||||
*/
|
|
||||||
HELP_EACH_INCOME(24, "旧互助收益", 0, EnumsPrefixConstants.BONUS_ITEMS + 24),
|
|
||||||
|
|
||||||
////////////////////////////////////////////////// 新奖项 //////////////////////////////////////////////////
|
////////////////////////////////////////////////// 新奖项 //////////////////////////////////////////////////
|
||||||
|
|
||||||
|
|
|
@ -6,12 +6,6 @@ import lombok.Getter;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 业绩查询数据类型
|
* 业绩查询数据类型
|
||||||
*
|
|
||||||
* @Description:
|
|
||||||
* @Author: ljc
|
|
||||||
* @Time: 2023/5/24 17:59
|
|
||||||
* @Classname: EDadaType
|
|
||||||
* @Package_name: com.hzs.common.core.enums
|
|
||||||
*/
|
*/
|
||||||
@AllArgsConstructor
|
@AllArgsConstructor
|
||||||
@Getter
|
@Getter
|
||||||
|
|
|
@ -1,51 +0,0 @@
|
||||||
package com.hzs.common.core.enums;
|
|
||||||
|
|
||||||
import com.hzs.common.core.constant.EnumsPrefixConstants;
|
|
||||||
import lombok.AllArgsConstructor;
|
|
||||||
import lombok.Getter;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @Description: 极差奖衔枚举
|
|
||||||
* @Author: sui q
|
|
||||||
* @Time: 2022/9/1 17:39
|
|
||||||
* @Classname: EAwards
|
|
||||||
* @PackageName: com.hzs.common.core.enums
|
|
||||||
*/
|
|
||||||
@AllArgsConstructor
|
|
||||||
@Getter
|
|
||||||
public enum ERangeAwards {
|
|
||||||
|
|
||||||
S0(0, "S0", 0, EnumsPrefixConstants.RANGE_AWARDS + 0),
|
|
||||||
|
|
||||||
S1(2, "S1", 0, EnumsPrefixConstants.RANGE_AWARDS + 2),
|
|
||||||
S2(4, "S2", 0, EnumsPrefixConstants.RANGE_AWARDS + 4),
|
|
||||||
|
|
||||||
S3(6, "S3", 0, EnumsPrefixConstants.RANGE_AWARDS + 6),
|
|
||||||
|
|
||||||
S4(8, "S4", 0, EnumsPrefixConstants.RANGE_AWARDS + 8),
|
|
||||||
|
|
||||||
S5(10, "S5", 0, EnumsPrefixConstants.RANGE_AWARDS + 10),
|
|
||||||
|
|
||||||
S6(12, "S6", 0, EnumsPrefixConstants.RANGE_AWARDS + 12),
|
|
||||||
|
|
||||||
S7(14, "S7", 0, EnumsPrefixConstants.RANGE_AWARDS + 14);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 实际值
|
|
||||||
*/
|
|
||||||
private final int value;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 显示标签
|
|
||||||
*/
|
|
||||||
private final String label;
|
|
||||||
/**
|
|
||||||
* 是否启用(0=是,1=否) -- 来源EYesNo
|
|
||||||
*/
|
|
||||||
private final int enable;
|
|
||||||
/**
|
|
||||||
* 国际化翻译key值
|
|
||||||
*/
|
|
||||||
private final String key;
|
|
||||||
|
|
||||||
}
|
|
|
@ -5,11 +5,7 @@ import lombok.AllArgsConstructor;
|
||||||
import lombok.Getter;
|
import lombok.Getter;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author: sui q
|
* 极差类型枚举
|
||||||
* @time: 2022/8/27 10:35
|
|
||||||
* @description: 极差类型枚举
|
|
||||||
* @classname: ERangeType
|
|
||||||
* @package_name: com.hzs.common.core.enums
|
|
||||||
*/
|
*/
|
||||||
@AllArgsConstructor
|
@AllArgsConstructor
|
||||||
@Getter
|
@Getter
|
||||||
|
|
|
@ -3,18 +3,16 @@ package com.hzs.common.domain.sale.ext;
|
||||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||||
import com.fasterxml.jackson.annotation.JsonIgnore;
|
import com.fasterxml.jackson.annotation.JsonIgnore;
|
||||||
import com.hzs.common.domain.sale.order.SaOrderItems;
|
import com.hzs.common.domain.sale.order.SaOrderItems;
|
||||||
|
import com.hzs.common.domain.sale.wares.ext.WaresRangeTmp;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
import lombok.EqualsAndHashCode;
|
import lombok.EqualsAndHashCode;
|
||||||
|
|
||||||
import java.math.BigDecimal;
|
import java.math.BigDecimal;
|
||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @Description: 订单详情扩展
|
* 订单详情扩展
|
||||||
* @Author: jiang chao
|
|
||||||
* @Time: 2022/10/19 16:46
|
|
||||||
* @Classname: SaOrderItemExt
|
|
||||||
* @PackageName: com.hzs.common.domain.sale.ext
|
|
||||||
*/
|
*/
|
||||||
@EqualsAndHashCode(callSuper = true)
|
@EqualsAndHashCode(callSuper = true)
|
||||||
@Data
|
@Data
|
||||||
|
@ -180,4 +178,10 @@ public class SaOrderItemsExt extends SaOrderItems {
|
||||||
* 供货价格
|
* 供货价格
|
||||||
*/
|
*/
|
||||||
private BigDecimal supplyPrice;
|
private BigDecimal supplyPrice;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 极差数据
|
||||||
|
*/
|
||||||
|
private List<WaresRangeTmp> waresRangeTmpList;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -12,12 +12,7 @@ import lombok.experimental.Accessors;
|
||||||
import java.math.BigDecimal;
|
import java.math.BigDecimal;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* <p>
|
|
||||||
* 极差明细表
|
* 极差明细表
|
||||||
* </p>
|
|
||||||
*
|
|
||||||
* @author hzs
|
|
||||||
* @since 2022-09-09
|
|
||||||
*/
|
*/
|
||||||
@Data
|
@Data
|
||||||
@EqualsAndHashCode(callSuper = true)
|
@EqualsAndHashCode(callSuper = true)
|
||||||
|
|
|
@ -0,0 +1,23 @@
|
||||||
|
package com.hzs.common.domain.sale.wares.ext;
|
||||||
|
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
import java.math.BigDecimal;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 极差明细临时实体
|
||||||
|
*/
|
||||||
|
@Data
|
||||||
|
public class WaresRangeTmp {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 价格
|
||||||
|
*/
|
||||||
|
private BigDecimal rangePrice;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 级别值
|
||||||
|
*/
|
||||||
|
private Integer rangeValue;
|
||||||
|
|
||||||
|
}
|
|
@ -10,12 +10,7 @@ import lombok.EqualsAndHashCode;
|
||||||
import lombok.experimental.Accessors;
|
import lombok.experimental.Accessors;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* <p>
|
|
||||||
* 体系配置
|
* 体系配置
|
||||||
* </p>
|
|
||||||
*
|
|
||||||
* @author hzs
|
|
||||||
* @since 2022-10-31
|
|
||||||
*/
|
*/
|
||||||
@Data
|
@Data
|
||||||
@EqualsAndHashCode(callSuper = true)
|
@EqualsAndHashCode(callSuper = true)
|
||||||
|
|
|
@ -0,0 +1,40 @@
|
||||||
|
package com.hzs.common.domain.vertex;
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.annotation.KeySequence;
|
||||||
|
import com.baomidou.mybatisplus.annotation.TableName;
|
||||||
|
import com.baomidou.mybatisplus.annotation.TableId;
|
||||||
|
import com.baomidou.mybatisplus.annotation.TableField;
|
||||||
|
import lombok.Data;
|
||||||
|
import lombok.experimental.Accessors;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 体系奖金配置(记录哪个体系走特殊奖金)
|
||||||
|
*/
|
||||||
|
@Data
|
||||||
|
@Accessors(chain = true)
|
||||||
|
@KeySequence("BD_VERTEX_BONUS_SEQ")
|
||||||
|
@TableName("BD_VERTEX_BONUS")
|
||||||
|
public class BdVertexBonus {
|
||||||
|
|
||||||
|
private static final long serialVersionUID = 1L;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 主键
|
||||||
|
*/
|
||||||
|
@TableId("PK_ID")
|
||||||
|
private Integer pkId;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 体系ID
|
||||||
|
*/
|
||||||
|
@TableField("PK_VERTEX")
|
||||||
|
private Long pkVertex;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 类型(8=复购级差) -- 使用 EBonusItems 枚举
|
||||||
|
*/
|
||||||
|
@TableField("BONUS_ITEMS")
|
||||||
|
private Integer bonusItems;
|
||||||
|
|
||||||
|
|
||||||
|
}
|
|
@ -20,7 +20,7 @@ public class CodeGenerator {
|
||||||
// 模块名称(包名)
|
// 模块名称(包名)
|
||||||
String moduleName = "com.hzs.common.domain";
|
String moduleName = "com.hzs.common.domain";
|
||||||
// 表名
|
// 表名
|
||||||
String[] tables = {"SA_TICKET"};
|
String[] tables = {"BD_VERTEX_SYSTEM"};
|
||||||
// 生成实体是否继承统一父类
|
// 生成实体是否继承统一父类
|
||||||
boolean superBool = true;
|
boolean superBool = true;
|
||||||
|
|
||||||
|
@ -32,7 +32,7 @@ public class CodeGenerator {
|
||||||
// 输出目录
|
// 输出目录
|
||||||
globalConfig.setOutputDir(projectPath + "/code-util/src/main/java")
|
globalConfig.setOutputDir(projectPath + "/code-util/src/main/java")
|
||||||
// 作者
|
// 作者
|
||||||
.setAuthor("hzs")
|
.setAuthor("bd")
|
||||||
// 时间使用Date
|
// 时间使用Date
|
||||||
.setDateType(DateType.ONLY_DATE)
|
.setDateType(DateType.ONLY_DATE)
|
||||||
// // 生成实体后缀追加 Entity
|
// // 生成实体后缀追加 Entity
|
||||||
|
@ -48,10 +48,10 @@ public class CodeGenerator {
|
||||||
// 数据源配置
|
// 数据源配置
|
||||||
DataSourceConfig dataSourceConfig = new DataSourceConfig();
|
DataSourceConfig dataSourceConfig = new DataSourceConfig();
|
||||||
// dsc.setSchemaName("public");
|
// dsc.setSchemaName("public");
|
||||||
dataSourceConfig.setUrl("jdbc:oracle:thin:@39.107.153.159:1521/orcl")
|
dataSourceConfig.setUrl("jdbc:oracle:thin:@101.201.51.180:1521/orcl")
|
||||||
.setDriverName("oracle.jdbc.driver.OracleDriver")
|
.setDriverName("oracle.jdbc.driver.OracleDriver")
|
||||||
.setUsername("hzs_retail")
|
.setUsername("retail")
|
||||||
.setPassword("123456")
|
.setPassword("pwRetailTest180")
|
||||||
.setDbType(DbType.ORACLE);
|
.setDbType(DbType.ORACLE);
|
||||||
mpg.setDataSource(dataSourceConfig);
|
mpg.setDataSource(dataSourceConfig);
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue