Merge remote-tracking branch 'origin/bd_dev' into bd_dev
This commit is contained in:
commit
bdecc555f0
|
@ -18,6 +18,7 @@ import com.hzs.member.base.dto.ZeroElementRevokeDTO;
|
||||||
import com.hzs.member.handlebusiness.dto.AnalysisBusinessAppealParam;
|
import com.hzs.member.handlebusiness.dto.AnalysisBusinessAppealParam;
|
||||||
|
|
||||||
import java.math.BigDecimal;
|
import java.math.BigDecimal;
|
||||||
|
import java.util.Date;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
||||||
|
@ -432,4 +433,6 @@ public interface IMemberServiceApi {
|
||||||
*/
|
*/
|
||||||
R<Integer> countGradeMemberPoint(String memberName, String phone, Integer pkGrade, Integer pkCountry);
|
R<Integer> countGradeMemberPoint(String memberName, String phone, Integer pkGrade, Integer pkCountry);
|
||||||
|
|
||||||
|
R<Map<String, Long>> memberRegionMap(Date settleDate);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -17,14 +17,6 @@ import java.util.List;
|
||||||
*/
|
*/
|
||||||
public interface ISaOrderServiceApi {
|
public interface ISaOrderServiceApi {
|
||||||
|
|
||||||
/**
|
|
||||||
* 查询时间范围内的所有订单,按照订单时间排序,只能用于奖金结算
|
|
||||||
*
|
|
||||||
* @param startDate 开始日期
|
|
||||||
* @param endDate 结束日期
|
|
||||||
*/
|
|
||||||
R<List<SaOrderExt>> listSaOrderByDay(Date startDate, Date endDate, String orderCode);
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 查询时间范围内的所有订单,按照订单时间排序,只能用于奖金结算
|
* 查询时间范围内的所有订单,按照订单时间排序,只能用于奖金结算
|
||||||
*
|
*
|
||||||
|
@ -33,11 +25,6 @@ public interface ISaOrderServiceApi {
|
||||||
*/
|
*/
|
||||||
R<List<SaOrderExt>> queryRepeatSaOrderByDay(Date startDate, Date endDate);
|
R<List<SaOrderExt>> queryRepeatSaOrderByDay(Date startDate, Date endDate);
|
||||||
|
|
||||||
/*
|
|
||||||
* 查询订单编号
|
|
||||||
**/
|
|
||||||
R<SaOrderExt> querySaOrderByDay(Date startDate, Date endDate, String orderCode);
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 根据订单编号查询订单
|
* 根据订单编号查询订单
|
||||||
*
|
*
|
||||||
|
|
|
@ -8,6 +8,7 @@ import com.hzs.system.sys.dto.BdCurrencyDTO;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
|
|
||||||
import java.io.Serializable;
|
import java.io.Serializable;
|
||||||
|
import java.math.BigDecimal;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
||||||
|
@ -87,4 +88,9 @@ public class BonusConfigDTO implements Serializable {
|
||||||
*/
|
*/
|
||||||
private Map<String, BdBonusService> bonusServiceMap;
|
private Map<String, BdBonusService> bonusServiceMap;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 区域收益配置
|
||||||
|
*/
|
||||||
|
private Map<Integer, BigDecimal> regionAreaConfigMap;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -214,6 +214,16 @@ public interface CuMemberTreeMapper extends BaseMapper<CuMemberTree> {
|
||||||
List<CuMemberSettleExt> batchQueryCuMemberSettleParent(@Param("settleTableName") String settleTableName,
|
List<CuMemberSettleExt> batchQueryCuMemberSettleParent(@Param("settleTableName") String settleTableName,
|
||||||
@Param("pkMemberList") List<?> pkMemberList);
|
@Param("pkMemberList") List<?> pkMemberList);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 批量查询会员数据
|
||||||
|
*
|
||||||
|
* @param settleTableName
|
||||||
|
* @param pkMemberList
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
List<CuMemberSettleExt> batchQueryCuMemberSettle(@Param("settleTableName") String settleTableName,
|
||||||
|
@Param("pkMemberList") List<?> pkMemberList);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 更新会员网体奖衔数据,更新月表、结算表
|
* 更新会员网体奖衔数据,更新月表、结算表
|
||||||
*
|
*
|
||||||
|
|
|
@ -199,6 +199,15 @@ public interface ICuMemberTreeService extends IService<CuMemberTree> {
|
||||||
*/
|
*/
|
||||||
List<CuMemberSettleExt> batchQueryCuMemberSettleParent(String settleTableName, Set<Long> expandMemberSet);
|
List<CuMemberSettleExt> batchQueryCuMemberSettleParent(String settleTableName, Set<Long> expandMemberSet);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 批量查询会员数据
|
||||||
|
*
|
||||||
|
* @param settleTableName
|
||||||
|
* @param memberIdSet
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
List<CuMemberSettleExt> batchQueryCuMemberSettle(String settleTableName, Set<Long> memberIdSet);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 有奖衔的会员,本月左右区新増,上月最后一期左右区结余
|
* 有奖衔的会员,本月左右区新増,上月最后一期左右区结余
|
||||||
*
|
*
|
||||||
|
|
|
@ -330,6 +330,18 @@ public class CuMemberTreeServiceImpl extends ServiceImpl<CuMemberTreeMapper, CuM
|
||||||
return cuMemberSettleExtList;
|
return cuMemberSettleExtList;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public List<CuMemberSettleExt> batchQueryCuMemberSettle(String settleTableName, Set<Long> memberIdSet) {
|
||||||
|
List<CuMemberSettleExt> cuMemberSettleExtList = new ArrayList<>();
|
||||||
|
if (memberIdSet.size() != 0) {
|
||||||
|
List<List<?>> lists = cuMemberBonusSettle.handleCutList(memberIdSet, MagicNumberConstants.BATCH_UPDATE_NUM);
|
||||||
|
lists.forEach(list ->
|
||||||
|
cuMemberSettleExtList.addAll(baseMapper.batchQueryCuMemberSettle(settleTableName, list)));
|
||||||
|
}
|
||||||
|
return cuMemberSettleExtList;
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public List<CuMemberSettleExt> listMemberMonthAssess(String settleTableName, String settleTableNameMonthLast, List<Long> pkMemberList) {
|
public List<CuMemberSettleExt> listMemberMonthAssess(String settleTableName, String settleTableNameMonthLast, List<Long> pkMemberList) {
|
||||||
List<CuMemberSettleExt> cuMemberSettleExtList = new ArrayList<>();
|
List<CuMemberSettleExt> cuMemberSettleExtList = new ArrayList<>();
|
||||||
|
|
|
@ -5,7 +5,6 @@ import cn.hutool.core.collection.CollectionUtil;
|
||||||
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.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;
|
||||||
|
@ -32,41 +31,7 @@ import java.util.List;
|
||||||
public class ApiCuMemberBonusController extends BaseController {
|
public class ApiCuMemberBonusController extends BaseController {
|
||||||
|
|
||||||
@Autowired
|
@Autowired
|
||||||
private ICuMemberBonusService cuMemberBonusService;
|
private ICuMemberBonusService iCuMemberBonusService;
|
||||||
|
|
||||||
// /**
|
|
||||||
// * 查询会员某个时间段内的奖金,默认查询15天内,查询直推
|
|
||||||
// */
|
|
||||||
// @PostMapping("/query-bonus-first")
|
|
||||||
// public TableDataInfo listFirstRepurchaseBonus(@RequestBody BonusParam bonusParam){
|
|
||||||
// setBonusParam(bonusParam);
|
|
||||||
// List<CuMemberBonusExt> cuMemberBonusList = cuMemberBonusService.queryMemberBonusVoByCondition(bonusParam);
|
|
||||||
// List<MemberBonusFirstPurchaseVO> firstPurchaseVOList = new ArrayList<>();
|
|
||||||
// cuMemberBonusList.forEach(cuMemberBonus -> {
|
|
||||||
// MemberBonusFirstPurchaseVO memberBonusFirstPurchaseVO = BeanUtil.copyProperties(cuMemberBonus, MemberBonusFirstPurchaseVO.class, "settleDate");
|
|
||||||
// packageSettleDate(cuMemberBonus, memberBonusFirstPurchaseVO);
|
|
||||||
//// if(DateUtils.compareDate(cuMemberBonus.getSettleDate(), DateUtils.parseStringToDate("2024-09-09"))>0) {
|
|
||||||
// BigDecimal serviceSpend = ComputeUtil.computeSubtract(ComputeUtil.computeAddNum(memberBonusFirstPurchaseVO.getDirectIncome(), memberBonusFirstPurchaseVO.getExpandIncome(),
|
|
||||||
// memberBonusFirstPurchaseVO.getCoachIncome(), memberBonusFirstPurchaseVO.getServiceIncome(), memberBonusFirstPurchaseVO.getShareIncome(),
|
|
||||||
// memberBonusFirstPurchaseVO.getRepurExpandIncome(), memberBonusFirstPurchaseVO.getRepurRangeIncome(), memberBonusFirstPurchaseVO.getRepurPushIncome()),
|
|
||||||
// ComputeUtil.computeAdd(memberBonusFirstPurchaseVO.getPurRealSubtotal(), memberBonusFirstPurchaseVO.getRepurRealSubtotal()));
|
|
||||||
// memberBonusFirstPurchaseVO.setBackPoints(ComputeUtil.computeMultiplyHalf(serviceSpend));
|
|
||||||
// memberBonusFirstPurchaseVO.setServiceSpend(ComputeUtil.computeMultiplyHalf(serviceSpend));
|
|
||||||
// memberBonusFirstPurchaseVO.setExpandIncome(ComputeUtil.computeAddNum(memberBonusFirstPurchaseVO.getExpandIncome(), memberBonusFirstPurchaseVO.getRepurExpandIncome(),
|
|
||||||
// memberBonusFirstPurchaseVO.getRepurRangeIncome(), memberBonusFirstPurchaseVO.getRepurPushIncome()));
|
|
||||||
// memberBonusFirstPurchaseVO.setPurRealSubtotal(ComputeUtil.computeAdd(memberBonusFirstPurchaseVO.getPurRealSubtotal(), memberBonusFirstPurchaseVO.getRepurRealSubtotal()));
|
|
||||||
//// }else{
|
|
||||||
//// BigDecimal serviceSpend = ComputeUtil.computeSubtract(ComputeUtil.computeAddNum(memberBonusFirstPurchaseVO.getDirectIncome(), memberBonusFirstPurchaseVO.getExpandIncome(),
|
|
||||||
//// memberBonusFirstPurchaseVO.getCoachIncome(), memberBonusFirstPurchaseVO.getServiceIncome(), memberBonusFirstPurchaseVO.getShareIncome(),
|
|
||||||
//// memberBonusFirstPurchaseVO.getRepurExpandIncome(), memberBonusFirstPurchaseVO.getRepurExpandIncome()),
|
|
||||||
//// ComputeUtil.computeAdd(memberBonusFirstPurchaseVO.getPurRealSubtotal(), memberBonusFirstPurchaseVO.getRepurRealSubtotal()));
|
|
||||||
//// memberBonusFirstPurchaseVO.setBackPoints(ComputeUtil.computeMultiplyHalf(serviceSpend));
|
|
||||||
//// memberBonusFirstPurchaseVO.setServiceSpend(ComputeUtil.computeMultiplyHalf(serviceSpend));
|
|
||||||
//// }
|
|
||||||
// firstPurchaseVOList.add(memberBonusFirstPurchaseVO);
|
|
||||||
// });
|
|
||||||
// return getDataTable(firstPurchaseVOList);
|
|
||||||
// }
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 查询会员某个时间段内的奖金,默认查询15天内,查询直推
|
* 查询会员某个时间段内的奖金,默认查询15天内,查询直推
|
||||||
|
@ -74,35 +39,13 @@ 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) {
|
||||||
setBonusParam(bonusParam);
|
setBonusParam(bonusParam);
|
||||||
List<CuMemberBonusExt> cuMemberBonusList = cuMemberBonusService.queryMemberBonusVoByCondition(bonusParam);
|
List<CuMemberBonusExt> cuMemberBonusList = iCuMemberBonusService.queryMemberBonusVoByCondition(bonusParam);
|
||||||
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);
|
||||||
// BigDecimal serviceSpend = ComputeUtil.computeSubtract(ComputeUtil.computeAddNum(memberBonusFirstPurchaseVO.getDirectIncome(), memberBonusFirstPurchaseVO.getExpandIncome(),
|
|
||||||
// memberBonusFirstPurchaseVO.getCoachIncome(), memberBonusFirstPurchaseVO.getServiceIncome(), memberBonusFirstPurchaseVO.getShareIncome()),
|
|
||||||
// memberBonusFirstPurchaseVO.getPurRealSubtotal());
|
|
||||||
// memberBonusFirstPurchaseVO.setBackPoints(ComputeUtil.computeMultiplyHalf(serviceSpend));
|
|
||||||
// memberBonusFirstPurchaseVO.setServiceSpend(ComputeUtil.computeMultiplyHalf(serviceSpend));
|
|
||||||
// if(DateUtils.compareDate(cuMemberBonus.getSettleDate(), DateUtils.parseStringToDate("2024-09-09"))>0) {
|
|
||||||
// 新版逻辑,首购+复购合并计算显示
|
|
||||||
|
|
||||||
// TODO new 乐学直推级差收益现在扣20%,所以直接使用库中的就可以
|
|
||||||
// BigDecimal serviceSpend = ComputeUtil.computeSubtract(
|
|
||||||
// // 直推收益 + 拓展收益 + 辅导收益 + 分红收益 + 报单收益 + 复购拓展收益 + 复购级差收益 + 复购推荐收益 + 乐学直推收益
|
|
||||||
// ComputeUtil.computeAddNum(memberBonusFirstPurchaseVO.getDirectIncome(), memberBonusFirstPurchaseVO.getExpandIncome(),
|
|
||||||
// memberBonusFirstPurchaseVO.getCoachIncome(), memberBonusFirstPurchaseVO.getShareIncome(), memberBonusFirstPurchaseVO.getServiceIncome(),
|
|
||||||
// memberBonusFirstPurchaseVO.getRepurExpandIncome(), memberBonusFirstPurchaseVO.getRepurRangeIncome(), memberBonusFirstPurchaseVO.getRepurPushIncome(),
|
|
||||||
// memberBonusFirstPurchaseVO.getGlobalPoints()),
|
|
||||||
//
|
|
||||||
// ComputeUtil.computeAdd(memberBonusFirstPurchaseVO.getPurRealSubtotal(), memberBonusFirstPurchaseVO.getRepurRealSubtotal())
|
|
||||||
//
|
|
||||||
// );
|
|
||||||
// memberBonusFirstPurchaseVO.setBackPoints(ComputeUtil.computeMultiplyHalf(serviceSpend));
|
|
||||||
// memberBonusFirstPurchaseVO.setServiceSpend(ComputeUtil.computeMultiplyHalf(serviceSpend));
|
|
||||||
memberBonusFirstPurchaseVO.setBackPoints(cuMemberBonus.getBackPoints());
|
memberBonusFirstPurchaseVO.setBackPoints(cuMemberBonus.getBackPoints());
|
||||||
memberBonusFirstPurchaseVO.setServiceSpend(cuMemberBonus.getServiceSpend());
|
memberBonusFirstPurchaseVO.setServiceSpend(cuMemberBonus.getServiceSpend());
|
||||||
|
|
||||||
// 拓展收益 = 首购拓展 + 复购拓展 + 复购推荐
|
// 拓展收益 = 首购拓展 + 复购拓展 + 复购推荐
|
||||||
memberBonusFirstPurchaseVO.setExpandIncome(ComputeUtil.computeAddNum(memberBonusFirstPurchaseVO.getExpandIncome(),
|
memberBonusFirstPurchaseVO.setExpandIncome(ComputeUtil.computeAddNum(memberBonusFirstPurchaseVO.getExpandIncome(),
|
||||||
memberBonusFirstPurchaseVO.getRepurExpandIncome(), memberBonusFirstPurchaseVO.getRepurPushIncome()));
|
memberBonusFirstPurchaseVO.getRepurExpandIncome(), memberBonusFirstPurchaseVO.getRepurPushIncome()));
|
||||||
|
@ -111,18 +54,6 @@ public class ApiCuMemberBonusController extends BaseController {
|
||||||
memberBonusFirstPurchaseVO.getRepurCoachIncome()));
|
memberBonusFirstPurchaseVO.getRepurCoachIncome()));
|
||||||
// 首购实发小计 = 首购实发小计 + 复购实发小计
|
// 首购实发小计 = 首购实发小计 + 复购实发小计
|
||||||
memberBonusFirstPurchaseVO.setPurRealSubtotal(ComputeUtil.computeAdd(memberBonusFirstPurchaseVO.getPurRealSubtotal(), memberBonusFirstPurchaseVO.getRepurRealSubtotal()));
|
memberBonusFirstPurchaseVO.setPurRealSubtotal(ComputeUtil.computeAdd(memberBonusFirstPurchaseVO.getPurRealSubtotal(), memberBonusFirstPurchaseVO.getRepurRealSubtotal()));
|
||||||
|
|
||||||
// }else{
|
|
||||||
// BigDecimal serviceSpend = ComputeUtil.computeSubtract(ComputeUtil.computeAddNum(memberBonusFirstPurchaseVO.getDirectIncome(), memberBonusFirstPurchaseVO.getExpandIncome(),
|
|
||||||
// memberBonusFirstPurchaseVO.getCoachIncome(), memberBonusFirstPurchaseVO.getServiceIncome(), memberBonusFirstPurchaseVO.getShareIncome(),
|
|
||||||
// memberBonusFirstPurchaseVO.getRepurExpandIncome(), memberBonusFirstPurchaseVO.getRepurExpandIncome()),
|
|
||||||
// ComputeUtil.computeAdd(memberBonusFirstPurchaseVO.getPurRealSubtotal(), memberBonusFirstPurchaseVO.getRepurRealSubtotal()));
|
|
||||||
// memberBonusFirstPurchaseVO.setBackPoints(ComputeUtil.computeMultiplyHalf(serviceSpend));
|
|
||||||
// memberBonusFirstPurchaseVO.setServiceSpend(ComputeUtil.computeMultiplyHalf(serviceSpend));
|
|
||||||
// }
|
|
||||||
// TODO new 乐学直推结算时,已经加到首购实发小计,此处不需要再累加
|
|
||||||
// memberBonusFirstPurchaseVO.setPurRealSubtotal(ComputeUtil.computeAdd(memberBonusFirstPurchaseVO.getPurRealSubtotal(), memberBonusFirstPurchaseVO.getGlobalPoints()));
|
|
||||||
|
|
||||||
firstPurchaseVOList.add(memberBonusFirstPurchaseVO);
|
firstPurchaseVOList.add(memberBonusFirstPurchaseVO);
|
||||||
});
|
});
|
||||||
return getDataTable(firstPurchaseVOList);
|
return getDataTable(firstPurchaseVOList);
|
||||||
|
@ -139,7 +70,7 @@ public class ApiCuMemberBonusController extends BaseController {
|
||||||
// bonusParam.setStartDate(DateUtils.beforeDate(1, ChronoUnit.DAYS));
|
// bonusParam.setStartDate(DateUtils.beforeDate(1, ChronoUnit.DAYS));
|
||||||
bonusParam.setStartDate(DateUtils.currentMonthFirstDate(nowDate));
|
bonusParam.setStartDate(DateUtils.currentMonthFirstDate(nowDate));
|
||||||
bonusParam.setEndDate(nowDate);
|
bonusParam.setEndDate(nowDate);
|
||||||
List<CuMemberBonusExt> cuMemberBonusList = cuMemberBonusService.queryMemberBonusTotalByCondition(bonusParam);
|
List<CuMemberBonusExt> cuMemberBonusList = iCuMemberBonusService.queryMemberBonusTotalByCondition(bonusParam);
|
||||||
MemberRealIncomeVO memberRealIncomeVO = MemberRealIncomeVO.builder()
|
MemberRealIncomeVO memberRealIncomeVO = MemberRealIncomeVO.builder()
|
||||||
.realIncomeTotal(BigDecimal.ZERO)
|
.realIncomeTotal(BigDecimal.ZERO)
|
||||||
.monthIncomeTotal(BigDecimal.ZERO)
|
.monthIncomeTotal(BigDecimal.ZERO)
|
||||||
|
@ -164,7 +95,7 @@ public class ApiCuMemberBonusController extends BaseController {
|
||||||
@PostMapping("/query-bonus-repurchase")
|
@PostMapping("/query-bonus-repurchase")
|
||||||
public TableDataInfo listRepurchaseBonus(@RequestBody BonusParam bonusParam) {
|
public TableDataInfo listRepurchaseBonus(@RequestBody BonusParam bonusParam) {
|
||||||
setBonusParam(bonusParam);
|
setBonusParam(bonusParam);
|
||||||
List<CuMemberBonusExt> cuMemberBonusList = cuMemberBonusService.queryMemberBonusVoByCondition(bonusParam);
|
List<CuMemberBonusExt> cuMemberBonusList = iCuMemberBonusService.queryMemberBonusVoByCondition(bonusParam);
|
||||||
List<MemberBonusPurchaseVO> memberBonusPurchaseVoList = new ArrayList<>();
|
List<MemberBonusPurchaseVO> memberBonusPurchaseVoList = new ArrayList<>();
|
||||||
cuMemberBonusList.forEach(cuMemberBonus -> {
|
cuMemberBonusList.forEach(cuMemberBonus -> {
|
||||||
MemberBonusPurchaseVO memberBonusPurchaseVO = BeanUtil.copyProperties(cuMemberBonus, MemberBonusPurchaseVO.class, "settleDate");
|
MemberBonusPurchaseVO memberBonusPurchaseVO = BeanUtil.copyProperties(cuMemberBonus, MemberBonusPurchaseVO.class, "settleDate");
|
||||||
|
@ -178,48 +109,6 @@ public class ApiCuMemberBonusController extends BaseController {
|
||||||
return getDataTable(memberBonusPurchaseVoList);
|
return getDataTable(memberBonusPurchaseVoList);
|
||||||
}
|
}
|
||||||
|
|
||||||
@PostMapping("/query-bonus-range")
|
|
||||||
public TableDataInfo listRangeBonus(@RequestBody BonusParam bonusParam) {
|
|
||||||
setBonusParam(bonusParam);
|
|
||||||
List<CuMemberBonusExt> cuMemberBonusList = cuMemberBonusService.queryMemberBonusVoByCondition(bonusParam);
|
|
||||||
List<MemberBonusPurchaseVO> memberBonusPurchaseVoList = new ArrayList<>();
|
|
||||||
cuMemberBonusList.forEach(cuMemberBonus -> {
|
|
||||||
MemberBonusPurchaseVO memberBonusPurchaseVO = MemberBonusPurchaseVO.builder()
|
|
||||||
.directIncome(cuMemberBonus.getRepurPushIncome())
|
|
||||||
.storeIncome(null != cuMemberBonus.getStoreIncome() ? cuMemberBonus.getStoreIncome() : BigDecimal.ZERO)
|
|
||||||
.repurPushIncome(cuMemberBonus.getCloudDirectIncome())
|
|
||||||
.repurRangeIncome(cuMemberBonus.getCloudPurIncome())
|
|
||||||
.repurExpandIncome(cuMemberBonus.getCloudRepurIncome())
|
|
||||||
.repurRealSubtotal(cuMemberBonus.getCloudRealSubtotal())
|
|
||||||
.build();
|
|
||||||
packageSettleDate(cuMemberBonus, memberBonusPurchaseVO);
|
|
||||||
BigDecimal serviceSpend = ComputeUtil.computeSubtract(ComputeUtil.computeAddNum(memberBonusPurchaseVO.getRepurPushIncome(), memberBonusPurchaseVO.getRepurExpandIncome(),
|
|
||||||
memberBonusPurchaseVO.getRepurRangeIncome(), memberBonusPurchaseVO.getDirectIncome(), memberBonusPurchaseVO.getStoreIncome()),
|
|
||||||
memberBonusPurchaseVO.getRepurRealSubtotal());
|
|
||||||
memberBonusPurchaseVO.setBackPoints(ComputeUtil.computeMultiplyHalf(serviceSpend));
|
|
||||||
memberBonusPurchaseVO.setServiceSpend(ComputeUtil.computeMultiplyHalf(serviceSpend));
|
|
||||||
memberBonusPurchaseVoList.add(memberBonusPurchaseVO);
|
|
||||||
});
|
|
||||||
return getDataTable(memberBonusPurchaseVoList);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 查询会员某个时间段内的奖金,默认查询15天内,查询复购
|
|
||||||
*/
|
|
||||||
@PostMapping("/query-bonus-hi-fun")
|
|
||||||
public TableDataInfo listHiFunBonus(@RequestBody BonusParam bonusParam) {
|
|
||||||
setBonusParam(bonusParam);
|
|
||||||
List<CuMemberBonusExt> cuMemberBonusList = cuMemberBonusService.queryMemberBonusVoByCondition(bonusParam);
|
|
||||||
List<MemberBonusHiFunVO> bonusHiFunVoList = new ArrayList<>();
|
|
||||||
cuMemberBonusList.forEach(cuMemberBonus -> {
|
|
||||||
MemberBonusHiFunVO memberBonusHiFunVO = BeanUtil.copyProperties(cuMemberBonus, MemberBonusHiFunVO.class, "settleDate");
|
|
||||||
packageSettleDate(cuMemberBonus, memberBonusHiFunVO);
|
|
||||||
memberBonusHiFunVO.setHiFunRealSubtotal(cuMemberBonus.getHiFunIncome());
|
|
||||||
bonusHiFunVoList.add(memberBonusHiFunVO);
|
|
||||||
});
|
|
||||||
return getDataTable(bonusHiFunVoList);
|
|
||||||
}
|
|
||||||
|
|
||||||
private static void packageSettleDate(CuMemberBonusExt cuMemberBonus, PubMemberBonusVO pubMemberBonusVO) {
|
private static void packageSettleDate(CuMemberBonusExt cuMemberBonus, PubMemberBonusVO pubMemberBonusVO) {
|
||||||
if (cuMemberBonus.getEndSettleDate() == null) {
|
if (cuMemberBonus.getEndSettleDate() == null) {
|
||||||
pubMemberBonusVO.setSettleDate(DateUtils.parseDateToStr(DateUtils.YYYY_MM_DD, cuMemberBonus.getSettleDate()));
|
pubMemberBonusVO.setSettleDate(DateUtils.parseDateToStr(DateUtils.YYYY_MM_DD, cuMemberBonus.getSettleDate()));
|
||||||
|
@ -236,7 +125,7 @@ public class ApiCuMemberBonusController extends BaseController {
|
||||||
@PostMapping("/query-bonus-cloud")
|
@PostMapping("/query-bonus-cloud")
|
||||||
public TableDataInfo listCloudAgentBonus(@RequestBody BonusParam bonusParam) {
|
public TableDataInfo listCloudAgentBonus(@RequestBody BonusParam bonusParam) {
|
||||||
setBonusParam(bonusParam);
|
setBonusParam(bonusParam);
|
||||||
List<CuMemberBonusExt> cuMemberBonusList = cuMemberBonusService.queryMemberBonusVoByCondition(bonusParam);
|
List<CuMemberBonusExt> cuMemberBonusList = iCuMemberBonusService.queryMemberBonusVoByCondition(bonusParam);
|
||||||
List<MemberBonusCloudAgentVO> memberBonusCloudAgentVoArrayList = new ArrayList<>();
|
List<MemberBonusCloudAgentVO> memberBonusCloudAgentVoArrayList = new ArrayList<>();
|
||||||
cuMemberBonusList.forEach(cuMemberBonus -> {
|
cuMemberBonusList.forEach(cuMemberBonus -> {
|
||||||
if (ComputeUtil.compareValue(cuMemberBonus.getCloudRepurIncome())) {
|
if (ComputeUtil.compareValue(cuMemberBonus.getCloudRepurIncome())) {
|
||||||
|
@ -258,7 +147,7 @@ public class ApiCuMemberBonusController extends BaseController {
|
||||||
@PostMapping("/query-bonus-coupon")
|
@PostMapping("/query-bonus-coupon")
|
||||||
public TableDataInfo listRepurchaseCouponBonus(@RequestBody BonusParam bonusParam) {
|
public TableDataInfo listRepurchaseCouponBonus(@RequestBody BonusParam bonusParam) {
|
||||||
setBonusParam(bonusParam);
|
setBonusParam(bonusParam);
|
||||||
List<CuMemberBonusExt> cuMemberBonusList = cuMemberBonusService.queryMemberBonusVoByCondition(bonusParam);
|
List<CuMemberBonusExt> cuMemberBonusList = iCuMemberBonusService.queryMemberBonusVoByCondition(bonusParam);
|
||||||
List<MemberBonusRepurchaseCouponVO> memberBonusRepurchaseCouponList = new ArrayList<>();
|
List<MemberBonusRepurchaseCouponVO> memberBonusRepurchaseCouponList = new ArrayList<>();
|
||||||
cuMemberBonusList.forEach(cuMemberBonus -> {
|
cuMemberBonusList.forEach(cuMemberBonus -> {
|
||||||
MemberBonusRepurchaseCouponVO repurchaseCouponVO = BeanUtil.copyProperties(cuMemberBonus, MemberBonusRepurchaseCouponVO.class, "settleDate");
|
MemberBonusRepurchaseCouponVO repurchaseCouponVO = BeanUtil.copyProperties(cuMemberBonus, MemberBonusRepurchaseCouponVO.class, "settleDate");
|
||||||
|
@ -271,26 +160,6 @@ public class ApiCuMemberBonusController extends BaseController {
|
||||||
return getDataTable(memberBonusRepurchaseCouponList);
|
return getDataTable(memberBonusRepurchaseCouponList);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 查询会员某个时间段内的奖金,默认查询15天内,查询复购
|
|
||||||
*/
|
|
||||||
@PostMapping("/query-bonus-hai-fun")
|
|
||||||
public TableDataInfo listHaiFunBonus(@RequestBody BonusParam bonusParam) {
|
|
||||||
setBonusParam(bonusParam);
|
|
||||||
List<CuMemberBonusExt> cuMemberBonusList = cuMemberBonusService.queryMemberBonusVoByCondition(bonusParam);
|
|
||||||
List<MemberBonusHaiFunVO> bonusHaiFunVoList = new ArrayList<>();
|
|
||||||
cuMemberBonusList.forEach(cuMemberBonus -> {
|
|
||||||
MemberBonusHaiFunVO memberBonusHaiFunVO = BeanUtil.copyProperties(cuMemberBonus, MemberBonusHaiFunVO.class, "settleDate");
|
|
||||||
packageSettleDate(cuMemberBonus, memberBonusHaiFunVO);
|
|
||||||
memberBonusHaiFunVO.setServiceSpend(BigDecimal.ZERO);
|
|
||||||
memberBonusHaiFunVO.setHaiFunRealSubtotal(cuMemberBonus.getHaiFunIncome());
|
|
||||||
bonusHaiFunVoList.add(memberBonusHaiFunVO);
|
|
||||||
});
|
|
||||||
return getDataTable(bonusHaiFunVoList);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
private void setBonusParam(@RequestBody BonusParam bonusParam) {
|
private void setBonusParam(@RequestBody BonusParam bonusParam) {
|
||||||
bonusParam.setPkCountry(SecurityUtils.getPkCountry());
|
bonusParam.setPkCountry(SecurityUtils.getPkCountry());
|
||||||
bonusParam.setPkMember(SecurityUtils.getUserId());
|
bonusParam.setPkMember(SecurityUtils.getUserId());
|
||||||
|
@ -314,36 +183,8 @@ public class ApiCuMemberBonusController extends BaseController {
|
||||||
public TableDataInfo listBonusSource(@RequestBody BonusParam bonusParam) {
|
public TableDataInfo listBonusSource(@RequestBody BonusParam bonusParam) {
|
||||||
setBonusParam(bonusParam);
|
setBonusParam(bonusParam);
|
||||||
startPage();
|
startPage();
|
||||||
// List<MemberBonusVO> memberBonusVoList = new ArrayList<>();
|
TableDataInfo tableDataInfo = iCuMemberBonusService.queryMemberBonusDetailVoByCondition(bonusParam);
|
||||||
TableDataInfo tableDataInfo = cuMemberBonusService.queryMemberBonusDetailVoByCondition(bonusParam);
|
|
||||||
// cuMemberBonusList.forEach(cuMemberBonus -> {
|
|
||||||
// MemberBonusVO memberBonusVO = BeanUtil.copyProperties(cuMemberBonus, MemberBonusVO.class);
|
|
||||||
// memberBonusVoList.add(memberBonusVO);
|
|
||||||
// });
|
|
||||||
// TableDataInfo dataTable = getDataTable(cuMemberBonusList);
|
|
||||||
// dataTable.setRows(memberBonusVoList);
|
|
||||||
return tableDataInfo;
|
return tableDataInfo;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* 查询会员某个时间段内的奖金来源
|
|
||||||
*/
|
|
||||||
@PostMapping("/query-mark-bonus-detail")
|
|
||||||
public TableDataInfo listMarkBonusSource(@RequestBody BonusParam bonusParam) {
|
|
||||||
if (bonusParam.getStartDate() == null || bonusParam.getBonusValue() == null) {
|
|
||||||
return getDataTable(null);
|
|
||||||
}
|
|
||||||
bonusParam.setEndDate(DateUtils.afterDate(1, ChronoUnit.DAYS, bonusParam.getStartDate()));
|
|
||||||
bonusParam.setPkCountry(SecurityUtils.getPkCountry());
|
|
||||||
bonusParam.setPkMember(SecurityUtils.getUserId());
|
|
||||||
// List<MemberBonusVO> memberBonusVoList = new ArrayList<>();
|
|
||||||
List<MemberBonusDetailVO> memberBonusDetailVOList = cuMemberBonusService.queryMemberMarkBonusDetailSource(bonusParam);
|
|
||||||
// cuMemberBonusList.forEach(cuMemberBonus -> {
|
|
||||||
// MemberBonusVO memberBonusVO = BeanUtil.copyProperties(cuMemberBonus, MemberBonusVO.class);
|
|
||||||
// memberBonusVoList.add(memberBonusVO);
|
|
||||||
// });
|
|
||||||
// TableDataInfo dataTable = getDataTable(cuMemberBonusList);
|
|
||||||
// dataTable.setRows(memberBonusVoList);
|
|
||||||
return getDataTable(memberBonusDetailVOList);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -73,11 +73,6 @@ public interface ICuMemberBonusService extends IService<CuMemberBonus> {
|
||||||
*/
|
*/
|
||||||
TableDataInfo queryMemberBonusDetailVoByCondition(BonusParam bonusParam);
|
TableDataInfo queryMemberBonusDetailVoByCondition(BonusParam bonusParam);
|
||||||
|
|
||||||
/*
|
|
||||||
* 查询创客空间奖金来源
|
|
||||||
**/
|
|
||||||
List<MemberBonusDetailVO> queryMemberMarkBonusDetailSource(BonusParam bonusParam);
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 后台根据查询条件查询会员奖金明细
|
* 后台根据查询条件查询会员奖金明细
|
||||||
*
|
*
|
||||||
|
|
|
@ -50,8 +50,6 @@ public abstract class BonusSettleHandle {
|
||||||
@Autowired
|
@Autowired
|
||||||
protected ICuMemberAssessService iCuMemberAssessService;
|
protected ICuMemberAssessService iCuMemberAssessService;
|
||||||
|
|
||||||
@DubboReference
|
|
||||||
ISaOrderServiceApi iSaOrderServiceApi;
|
|
||||||
@DubboReference
|
@DubboReference
|
||||||
ICurrencyServiceApi iCurrencyServiceApi;
|
ICurrencyServiceApi iCurrencyServiceApi;
|
||||||
|
|
||||||
|
@ -672,41 +670,24 @@ public abstract class BonusSettleHandle {
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 获得 级差收益的备注
|
* 获得 区域收益备注
|
||||||
*
|
*
|
||||||
* @param saOrderExt 订单编号
|
* @param saOrderExt 订单编号
|
||||||
* @param cuMemberBonusRange 报单服务费
|
* @param cuMemberBonusRange
|
||||||
* @param sourceMemberRangeExt 提供奖金的人
|
* @param sourceCuMemberSettleExt 提供奖金的人
|
||||||
* @param targetMemberRangeExt 获得奖金的人
|
* @param targetCuMemberSettleExt 获得奖金的人
|
||||||
*/
|
*/
|
||||||
protected void oriRangeRemark(SaOrderExt saOrderExt, CuMemberBonusRange cuMemberBonusRange, CuMemberRangeExt sourceMemberRangeExt,
|
protected void areaRangeRemark(SaOrderExt saOrderExt, CuMemberBonusRange cuMemberBonusRange, CuMemberSettleExt sourceCuMemberSettleExt,
|
||||||
CuMemberRangeExt targetMemberRangeExt) {
|
CuMemberSettleExt targetCuMemberSettleExt, EAreaType eAreaType) {
|
||||||
String remark = String.format(BonusMsgConstants.ORI_RANGE, saOrderExt.getOrderCode(),
|
String remark = String.format(BonusMsgConstants.REPURCHASE_AREA, saOrderExt.getOrderCode(),
|
||||||
sourceMemberRangeExt.getMemberCode() + sourceMemberRangeExt.getMemberName(),
|
sourceCuMemberSettleExt.getMemberCode() + sourceCuMemberSettleExt.getMemberName(),
|
||||||
targetMemberRangeExt.getMemberCode() + targetMemberRangeExt.getMemberName(),
|
targetCuMemberSettleExt.getMemberCode() + targetCuMemberSettleExt.getMemberName(),
|
||||||
cuMemberBonusRange.getCalAchieve(), targetMemberRangeExt.getRangeAwardsValue());
|
cuMemberBonusRange.getCalAchieve(), null != eAreaType ? eAreaType.getLabel() : "");
|
||||||
cuMemberBonusRange.setRemark(remark);
|
cuMemberBonusRange.setRemark(remark);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 获得 报单服务费收益的备注
|
* 获得 复购券备注
|
||||||
*
|
|
||||||
* @param saOrder 订单编号
|
|
||||||
* @param cuMemberBonusDetail 云代首购
|
|
||||||
* @param sourceCuMemberSettleExt 提供奖金的人
|
|
||||||
* @param targetCuMemberSettleExt 获得奖金的人
|
|
||||||
*/
|
|
||||||
protected void cloudAgentRemark(SaOrder saOrder, CuMemberBonusDetail cuMemberBonusDetail, CuMemberSettleExt sourceCuMemberSettleExt,
|
|
||||||
CuMemberSettleExt targetCuMemberSettleExt, String msg) {
|
|
||||||
String remark = String.format(msg, saOrder.getOrderCode(),
|
|
||||||
sourceCuMemberSettleExt.getMemberCode() + sourceCuMemberSettleExt.getMemberName(),
|
|
||||||
targetCuMemberSettleExt.getMemberCode() + targetCuMemberSettleExt.getMemberName(),
|
|
||||||
cuMemberBonusDetail.getCalAchieve(), cuMemberBonusDetail.getCalValue());
|
|
||||||
cuMemberBonusDetail.setRemark(remark);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 获得 报单服务费收益的备注
|
|
||||||
*
|
*
|
||||||
* @param saOrder 订单编号
|
* @param saOrder 订单编号
|
||||||
* @param cuMemberBonusDetail 云代首购
|
* @param cuMemberBonusDetail 云代首购
|
||||||
|
@ -1103,16 +1084,6 @@ public abstract class BonusSettleHandle {
|
||||||
cuMemberBonus.setRealIncomeTotal(ComputeUtil.computeAdd(cuMemberBonus.getRealIncomeTotal(), realIncome));
|
cuMemberBonus.setRealIncomeTotal(ComputeUtil.computeAdd(cuMemberBonus.getRealIncomeTotal(), realIncome));
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* 云代计算 扣项,小计,总计
|
|
||||||
*/
|
|
||||||
protected void setCloudTotal(BdBonusDeduct bdBonusDeduct, CuMemberBonus cuMemberBonus, Object bonusDetail) {
|
|
||||||
setBonusDeduct(bdBonusDeduct, cuMemberBonus, bonusDetail);
|
|
||||||
BigDecimal realIncome = ReflectUtils.invokeGetter(bonusDetail, BonusFieldConstants.REAL_INCOME);
|
|
||||||
cuMemberBonus.setCloudRealSubtotal(ComputeUtil.computeAdd(cuMemberBonus.getCloudRealSubtotal(), realIncome));
|
|
||||||
cuMemberBonus.setRealIncomeTotal(ComputeUtil.computeAdd(cuMemberBonus.getRealIncomeTotal(), realIncome));
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 复购券 扣项,小计,总计
|
* 复购券 扣项,小计,总计
|
||||||
*/
|
*/
|
||||||
|
@ -1125,9 +1096,10 @@ public abstract class BonusSettleHandle {
|
||||||
/**
|
/**
|
||||||
* 设置奖金扣项,计算税前收益,扣税,实际收益, 设置明细表
|
* 设置奖金扣项,计算税前收益,扣税,实际收益, 设置明细表
|
||||||
*
|
*
|
||||||
* @param cuMemberDetail 奖金明细
|
* @param cuMemberDetail 奖金明细
|
||||||
* @param orderAmount 订单金额
|
* @param orderAmount 订单金额
|
||||||
* @param exchangeRate 入汇率
|
* @param exchangeRate 入汇率
|
||||||
|
* @param incomeRatioFlag 是否计算收益占比(true=计算,flase=不计算)
|
||||||
*/
|
*/
|
||||||
protected BdBonusDeduct setBonusDetailDeduct(BonusConfigDTO bonusConfigDTO, Object cuMemberDetail, BigDecimal orderAmount, BigDecimal exchangeRate,
|
protected BdBonusDeduct setBonusDetailDeduct(BonusConfigDTO bonusConfigDTO, Object cuMemberDetail, BigDecimal orderAmount, BigDecimal exchangeRate,
|
||||||
Boolean incomeRatioFlag) {
|
Boolean incomeRatioFlag) {
|
||||||
|
@ -1272,4 +1244,12 @@ public abstract class BonusSettleHandle {
|
||||||
return bdBonusDeduct;
|
return bdBonusDeduct;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 根据会员ID获取会员map
|
||||||
|
*/
|
||||||
|
protected void getMemberByIdSet(Map<Long, CuMemberSettleExt> cuMemberSettleExtMap, String settleTableName, Set<Long> memberIdSet) {
|
||||||
|
List<CuMemberSettleExt> cuMemberSettleExtList = iCuMemberTreeService.batchQueryCuMemberSettle(settleTableName, memberIdSet);
|
||||||
|
this.getMemberSettle(cuMemberSettleExtMap, cuMemberSettleExtList);
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -28,6 +28,7 @@ import org.springframework.stereotype.Component;
|
||||||
|
|
||||||
import java.math.BigDecimal;
|
import java.math.BigDecimal;
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 计算复购的奖金处理类
|
* 计算复购的奖金处理类
|
||||||
|
@ -613,15 +614,17 @@ public class BonusSettlePurchaseHandle extends BonusSettleHandle {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
private CuMemberBonusRange getCuMemberBonusRange(BonusConfigDTO bonusConfigDTO, SaOrderExt saOrderExt, CuMemberSettleExt cuMemberSettleExt, CuMemberBonus cuMemberBonus) {
|
private CuMemberBonusRange getCuMemberRange(BonusConfigDTO bonusConfigDTO, SaOrderExt saOrderExt, CuMemberSettleExt cuMemberSettleExt, CuMemberBonus cuMemberBonus,
|
||||||
|
EBonusItems eBonusItems) {
|
||||||
CuMemberBonusRange cuMemberBonusRange = CuMemberBonusRange.builder()
|
CuMemberBonusRange cuMemberBonusRange = CuMemberBonusRange.builder()
|
||||||
.pkOrder(saOrderExt.getPkId())
|
.pkOrder(saOrderExt.getPkId())
|
||||||
|
.pkOrderItems(0L)
|
||||||
.pkBonus(cuMemberBonus.getPkId())
|
.pkBonus(cuMemberBonus.getPkId())
|
||||||
.pkBonusItems(getPkBonusItems(bonusConfigDTO, cuMemberSettleExt.getPkSettleCountry(), EBonusItems.REPURCHASE_RANGE_INCOME.getValue()))
|
.pkBonusItems(getPkBonusItems(bonusConfigDTO, cuMemberSettleExt.getPkSettleCountry(), eBonusItems.getValue()))
|
||||||
// 正常还是烧伤
|
// 正常还是烧伤
|
||||||
.incomeStatus(cuMemberSettleExt.getIncomeStatus())
|
.incomeStatus(cuMemberSettleExt.getIncomeStatus())
|
||||||
.calType(ECalType.VALUE.getValue())
|
.calType(ECalType.RATIO.getValue())
|
||||||
.calAchieve(saOrderExt.getOrderAmount())
|
.calAchieve(saOrderExt.getOrderAchieve())
|
||||||
.calValue(BigDecimal.ZERO)
|
.calValue(BigDecimal.ZERO)
|
||||||
.incomeRatio(BigDecimal.ZERO)
|
.incomeRatio(BigDecimal.ZERO)
|
||||||
.incomeDialRatio(BigDecimal.ZERO)
|
.incomeDialRatio(BigDecimal.ZERO)
|
||||||
|
@ -725,7 +728,6 @@ public class BonusSettlePurchaseHandle extends BonusSettleHandle {
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 计算见点收益
|
* 计算见点收益
|
||||||
*/
|
*/
|
||||||
|
@ -794,10 +796,12 @@ public class BonusSettlePurchaseHandle extends BonusSettleHandle {
|
||||||
// 奖金扣项
|
// 奖金扣项
|
||||||
BdBonusDeduct bdBonusDeduct = setBonusDetailDeduct(bonusConfigDTO, cuMemberBonusCoach,
|
BdBonusDeduct bdBonusDeduct = setBonusDetailDeduct(bonusConfigDTO, cuMemberBonusCoach,
|
||||||
saOrderExt.getOrderAmount(), saOrderExt.getInExchangeRate(), true);
|
saOrderExt.getOrderAmount(), saOrderExt.getInExchangeRate(), true);
|
||||||
// 累计奖金数据
|
if (EBonusIncomeStatus.NORMAL.getValue() == cuMemberBonusCoach.getIncomeStatus()) {
|
||||||
cuMemberBonus.setGlobalPoints(cuMemberBonus.getGlobalPoints().add(cuMemberBonusCoach.getPretaxIncome()));
|
// 累计奖金数据
|
||||||
// 复购小计、总计
|
cuMemberBonus.setGlobalPoints(cuMemberBonus.getGlobalPoints().add(cuMemberBonusCoach.getPretaxIncome()));
|
||||||
setPurchaseTotal(bdBonusDeduct, cuMemberBonus, cuMemberBonusCoach);
|
// 复购小计、总计
|
||||||
|
setPurchaseTotal(bdBonusDeduct, cuMemberBonus, cuMemberBonusCoach);
|
||||||
|
}
|
||||||
|
|
||||||
orderBonusCoachList.add(cuMemberBonusCoach);
|
orderBonusCoachList.add(cuMemberBonusCoach);
|
||||||
|
|
||||||
|
@ -813,17 +817,7 @@ public class BonusSettlePurchaseHandle extends BonusSettleHandle {
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 补全见点奖备注
|
* 生成见点收益备注
|
||||||
*/
|
|
||||||
private void handlePointRemark(List<CuMemberBonusCoach> memberBonusCoachList, int i) {
|
|
||||||
for (CuMemberBonusCoach cuMemberBonusCoach : memberBonusCoachList) {
|
|
||||||
cuMemberBonusCoach.setCoachGeneration(i);
|
|
||||||
cuMemberBonusCoach.setRemark(cuMemberBonusCoach.getRemark().replace("#", cuMemberBonusCoach.getCoachGeneration().toString()));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 生成见点收益
|
|
||||||
*/
|
*/
|
||||||
private CuMemberBonusCoach getCuMemberPointBonus(BonusConfigDTO bonusConfigDTO, SaOrderExt saOrderExt, CuMemberSettleExt cuMemberSettleExt, CuMemberBonus cuMemberBonus) {
|
private CuMemberBonusCoach getCuMemberPointBonus(BonusConfigDTO bonusConfigDTO, SaOrderExt saOrderExt, CuMemberSettleExt cuMemberSettleExt, CuMemberBonus cuMemberBonus) {
|
||||||
CuMemberBonusCoach cuMemberBonusCoach = CuMemberBonusCoach.builder()
|
CuMemberBonusCoach cuMemberBonusCoach = CuMemberBonusCoach.builder()
|
||||||
|
@ -848,4 +842,129 @@ public class BonusSettlePurchaseHandle extends BonusSettleHandle {
|
||||||
return cuMemberBonusCoach;
|
return cuMemberBonusCoach;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 补全见点收益备注
|
||||||
|
*/
|
||||||
|
private void handlePointRemark(List<CuMemberBonusCoach> memberBonusCoachList, int i) {
|
||||||
|
for (CuMemberBonusCoach cuMemberBonusCoach : memberBonusCoachList) {
|
||||||
|
cuMemberBonusCoach.setCoachGeneration(i);
|
||||||
|
cuMemberBonusCoach.setRemark(cuMemberBonusCoach.getRemark().replace("#", cuMemberBonusCoach.getCoachGeneration().toString()));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 计算区域收益
|
||||||
|
*/
|
||||||
|
List<CuMemberBonusRange> calculateRepurchaseAreaBonus(Map<Long, CuMemberSettleExt> cuMemberSettleExtMap, String settleTableName, Integer period,
|
||||||
|
BonusConfigDTO bonusConfigDTO, List<SaOrderExt> purchaseOrderList, Map<Long, CuMemberBonus> cuMemberBonusMap,
|
||||||
|
Map<String, Long> memberRegionMap) {
|
||||||
|
List<CuMemberBonusRange> cuMemberBonusRangeList = new ArrayList<>();
|
||||||
|
|
||||||
|
if (purchaseOrderList.size() > 0) {
|
||||||
|
// 获取区域会员数据
|
||||||
|
Set<Long> memberIdSet = new HashSet<>(memberRegionMap.values());
|
||||||
|
memberIdSet.addAll(purchaseOrderList.stream().map(SaOrderExt::getPkMember).collect(Collectors.toSet()));
|
||||||
|
this.getMemberByIdSet(cuMemberSettleExtMap, settleTableName, memberIdSet);
|
||||||
|
|
||||||
|
// 区域配置(省=15%,市=10%,区=5%)
|
||||||
|
Map<Integer, BigDecimal> regionAreaConfigMap = bonusConfigDTO.getRegionAreaConfigMap();
|
||||||
|
|
||||||
|
for (SaOrderExt saOrderExt : purchaseOrderList) {
|
||||||
|
if (validatePkBonusItems(bonusConfigDTO, saOrderExt.getPkSettleCountry(), EBonusItems.REPURCHASE_AREA_INCOME.getValue())) {
|
||||||
|
// 校验当前国家是否有该奖项(区域收益)
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
// 订单会员
|
||||||
|
CuMemberSettleExt sourceMemberSettleExt = cuMemberSettleExtMap.get(saOrderExt.getPkMember());
|
||||||
|
|
||||||
|
Integer recProvince = saOrderExt.getRecProvince();
|
||||||
|
Integer recCity = saOrderExt.getRecCity();
|
||||||
|
Integer recCounty = saOrderExt.getRecCounty();
|
||||||
|
|
||||||
|
// 前面拿的奖金比例
|
||||||
|
BigDecimal beforeBonusCal = BigDecimal.ZERO;
|
||||||
|
// 区
|
||||||
|
String countyKey = recProvince + "-" + recCity + "-" + recCounty;
|
||||||
|
if (memberRegionMap.containsKey(countyKey)) {
|
||||||
|
// 奖金目标会员
|
||||||
|
CuMemberSettleExt targetMemberSettleExt = cuMemberSettleExtMap.get(memberRegionMap.get(countyKey));
|
||||||
|
if (null != targetMemberSettleExt) {
|
||||||
|
// 处理区域收益
|
||||||
|
BigDecimal tmpCal = this.handleAreaBonus(saOrderExt, sourceMemberSettleExt, targetMemberSettleExt, period, bonusConfigDTO, regionAreaConfigMap,
|
||||||
|
cuMemberBonusMap, cuMemberBonusRangeList, EAreaType.COUNTY, beforeBonusCal);
|
||||||
|
if (null != tmpCal) {
|
||||||
|
beforeBonusCal = tmpCal;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
// 市
|
||||||
|
String cityKey = recProvince + "-" + recCity + "-0";
|
||||||
|
if (memberRegionMap.containsKey(cityKey)) {
|
||||||
|
CuMemberSettleExt targetMemberSettleExt = cuMemberSettleExtMap.get(memberRegionMap.get(cityKey));
|
||||||
|
if (null != targetMemberSettleExt) {
|
||||||
|
// 处理区域收益
|
||||||
|
BigDecimal tmpCal = this.handleAreaBonus(saOrderExt, sourceMemberSettleExt, targetMemberSettleExt, period, bonusConfigDTO, regionAreaConfigMap,
|
||||||
|
cuMemberBonusMap, cuMemberBonusRangeList, EAreaType.CITY, beforeBonusCal);
|
||||||
|
if (null != tmpCal) {
|
||||||
|
beforeBonusCal = tmpCal;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
// 省
|
||||||
|
String provinceKey = recProvince + "-0-0";
|
||||||
|
if (memberRegionMap.containsKey(provinceKey)) {
|
||||||
|
CuMemberSettleExt targetMemberSettleExt = cuMemberSettleExtMap.get(memberRegionMap.get(provinceKey));
|
||||||
|
if (null != targetMemberSettleExt) {
|
||||||
|
// 处理区域收益
|
||||||
|
this.handleAreaBonus(saOrderExt, sourceMemberSettleExt, targetMemberSettleExt, period, bonusConfigDTO, regionAreaConfigMap,
|
||||||
|
cuMemberBonusMap, cuMemberBonusRangeList, EAreaType.CITY, beforeBonusCal);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return cuMemberBonusRangeList;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 处理区域收益
|
||||||
|
*/
|
||||||
|
private BigDecimal handleAreaBonus(SaOrderExt saOrderExt, CuMemberSettleExt sourceMemberSettleExt, CuMemberSettleExt targetMemberSettleExt,
|
||||||
|
Integer period, BonusConfigDTO bonusConfigDTO, Map<Integer, BigDecimal> regionAreaConfigMap,
|
||||||
|
Map<Long, CuMemberBonus> cuMemberBonusMap, List<CuMemberBonusRange> cuMemberBonusRangeList, EAreaType eAreaType,
|
||||||
|
BigDecimal beforeBonusCal) {
|
||||||
|
if (ECategory.NORMAL.getValue() != targetMemberSettleExt.getCategory()
|
||||||
|
|| EAccountStatus.STOP_INCOME.getValue() == targetMemberSettleExt.getAccountStatus()
|
||||||
|
|| EGrade.HAI_FAN.getValue() == targetMemberSettleExt.getGradeValue()) {
|
||||||
|
// 死点 停算 顾客 没有奖金,跳过
|
||||||
|
return null;
|
||||||
|
} else {
|
||||||
|
// 区域比例(当前等级比例 - 前一级奖金比例)
|
||||||
|
BigDecimal calValue = regionAreaConfigMap.get(eAreaType.getValue()).subtract(beforeBonusCal);
|
||||||
|
// 税前收益
|
||||||
|
BigDecimal pretaxIncome = saOrderExt.getOrderAchieve().multiply(calValue);
|
||||||
|
|
||||||
|
// 会员奖金数据
|
||||||
|
CuMemberBonus cuMemberBonus = getCuMemberBonus(period, cuMemberBonusMap, saOrderExt, targetMemberSettleExt);
|
||||||
|
// 级差奖金数据(区域收益)
|
||||||
|
CuMemberBonusRange cmMemberAreaBonusRange = this.getCuMemberRange(bonusConfigDTO, saOrderExt, targetMemberSettleExt, cuMemberBonus, EBonusItems.REPURCHASE_AREA_INCOME);
|
||||||
|
cmMemberAreaBonusRange.setCalValue(calValue);
|
||||||
|
cmMemberAreaBonusRange.setPretaxIncome(pretaxIncome);
|
||||||
|
cmMemberAreaBonusRange.setPkRange(eAreaType.getValue());
|
||||||
|
cmMemberAreaBonusRange.setPkBeforeRange(0);
|
||||||
|
// 备注
|
||||||
|
areaRangeRemark(saOrderExt, cmMemberAreaBonusRange, sourceMemberSettleExt, targetMemberSettleExt, eAreaType);
|
||||||
|
// 奖金扣项
|
||||||
|
BdBonusDeduct bdBonusDeduct = setBonusDetailDeduct(bonusConfigDTO, cmMemberAreaBonusRange, saOrderExt.getOrderAmount(), saOrderExt.getInExchangeRate(), true);
|
||||||
|
if (EBonusIncomeStatus.NORMAL.getValue() == cmMemberAreaBonusRange.getIncomeStatus()) {
|
||||||
|
// 收益状态正常,扣除
|
||||||
|
cuMemberBonus.setRepurRangeIncome(ComputeUtil.computeAdd(cuMemberBonus.getRepurRangeIncome(), cmMemberAreaBonusRange.getPretaxIncome()));
|
||||||
|
setPurchaseTotal(bdBonusDeduct, cuMemberBonus, cmMemberAreaBonusRange);
|
||||||
|
}
|
||||||
|
cuMemberBonusRangeList.add(cmMemberAreaBonusRange);
|
||||||
|
|
||||||
|
return calValue;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -20,12 +20,7 @@ import org.springframework.stereotype.Component;
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @description: 用于计算复购券收益、复购券均分收益
|
* 用于计算复购券收益、复购券均分收益
|
||||||
* @author: sui q
|
|
||||||
* @time: 2023/4/28 16:12
|
|
||||||
* @classname: BonusSettleRepCouponsHandle
|
|
||||||
* @package_name: com.hzs.member.bonus.service.impl
|
|
||||||
* version 1.0.0
|
|
||||||
*/
|
*/
|
||||||
@Component
|
@Component
|
||||||
public class BonusSettleRepCouponsHandle extends BonusSettleHandle {
|
public class BonusSettleRepCouponsHandle extends BonusSettleHandle {
|
||||||
|
@ -34,10 +29,7 @@ public class BonusSettleRepCouponsHandle extends BonusSettleHandle {
|
||||||
private IActivityServiceApi activityServiceApi;
|
private IActivityServiceApi activityServiceApi;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* @description: 计算复购券收益
|
* 计算复购券收益
|
||||||
* @author: sui q
|
|
||||||
* @date: 2023/4/28 16:11
|
|
||||||
* @param: null null
|
|
||||||
**/
|
**/
|
||||||
List<CuMemberBonusDetail> calculateRepurchaseCoupons(Date settleDate, List<SaOrderExt> firPurchaseOrderList, Integer period, BonusConfigDTO bonusConfigDTO, Map<Long, CuMemberBonus> cuMemberBonusMap, Map<Long, CuMemberSettleExt> cuMemberSettleExtMap) {
|
List<CuMemberBonusDetail> calculateRepurchaseCoupons(Date settleDate, List<SaOrderExt> firPurchaseOrderList, Integer period, BonusConfigDTO bonusConfigDTO, Map<Long, CuMemberBonus> cuMemberBonusMap, Map<Long, CuMemberSettleExt> cuMemberSettleExtMap) {
|
||||||
// 查询复购券发放规则
|
// 查询复购券发放规则
|
||||||
|
|
|
@ -16,6 +16,7 @@ import com.hzs.bonus.bonus.vo.BonusRecordDetailVO;
|
||||||
import com.hzs.bonus.bonus.vo.MemberBonusDetailCalVO;
|
import com.hzs.bonus.bonus.vo.MemberBonusDetailCalVO;
|
||||||
import com.hzs.bonus.detail.service.ICuMemberAssessService;
|
import com.hzs.bonus.detail.service.ICuMemberAssessService;
|
||||||
import com.hzs.bonus.detail.service.ICuMemberAwardsService;
|
import com.hzs.bonus.detail.service.ICuMemberAwardsService;
|
||||||
|
import com.hzs.bonus.order.service.IBonusOrderService;
|
||||||
import com.hzs.bonus.risk.service.ICuMemberRiskControlService;
|
import com.hzs.bonus.risk.service.ICuMemberRiskControlService;
|
||||||
import com.hzs.bonus.swing.service.ICuMemberSwingNetLogService;
|
import com.hzs.bonus.swing.service.ICuMemberSwingNetLogService;
|
||||||
import com.hzs.common.core.config.BdConfig;
|
import com.hzs.common.core.config.BdConfig;
|
||||||
|
@ -42,7 +43,6 @@ import com.hzs.common.domain.sale.ext.SaOrderExt;
|
||||||
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.base.IMemberServiceApi;
|
import com.hzs.member.base.IMemberServiceApi;
|
||||||
import com.hzs.sale.order.ISaOrderServiceApi;
|
|
||||||
import com.hzs.system.base.ISystemConfigServiceApi;
|
import com.hzs.system.base.ISystemConfigServiceApi;
|
||||||
import com.hzs.system.config.IAwardsServiceApi;
|
import com.hzs.system.config.IAwardsServiceApi;
|
||||||
import com.hzs.system.config.IBonusItemsServiceApi;
|
import com.hzs.system.config.IBonusItemsServiceApi;
|
||||||
|
@ -80,8 +80,6 @@ public class BonusSettleServiceImpl implements IBonusSettleService {
|
||||||
IBonusItemsServiceApi iBonusItemsServiceApi;
|
IBonusItemsServiceApi iBonusItemsServiceApi;
|
||||||
@DubboReference
|
@DubboReference
|
||||||
IMemberServiceApi iMemberServiceApi;
|
IMemberServiceApi iMemberServiceApi;
|
||||||
@DubboReference
|
|
||||||
ISaOrderServiceApi iSaOrderServiceApi;
|
|
||||||
|
|
||||||
@Autowired
|
@Autowired
|
||||||
private ICuMemberTreeService iCuMemberTreeService;
|
private ICuMemberTreeService iCuMemberTreeService;
|
||||||
|
@ -133,6 +131,8 @@ public class BonusSettleServiceImpl implements IBonusSettleService {
|
||||||
private BonusSettleMallHandle bonusSettleMallHandle;
|
private BonusSettleMallHandle bonusSettleMallHandle;
|
||||||
@Autowired
|
@Autowired
|
||||||
private ICuMemberAssessService iCuMemberAssessService;
|
private ICuMemberAssessService iCuMemberAssessService;
|
||||||
|
@Autowired
|
||||||
|
private IBonusOrderService iBonusOrderService;
|
||||||
|
|
||||||
// 新拓展处理时间
|
// 新拓展处理时间
|
||||||
private final String newExpandDate = "2025-06-01";
|
private final String newExpandDate = "2025-06-01";
|
||||||
|
@ -142,8 +142,12 @@ public class BonusSettleServiceImpl implements IBonusSettleService {
|
||||||
public void calculateCumberBonusBySecond(String orderCode) {
|
public void calculateCumberBonusBySecond(String orderCode) {
|
||||||
log.info("开始执行秒接,订单编号:{}", orderCode);
|
log.info("开始执行秒接,订单编号:{}", orderCode);
|
||||||
Date startDate = DateUtils.currentDate();
|
Date startDate = DateUtils.currentDate();
|
||||||
SaOrderExt saOrderExt = iSaOrderServiceApi.querySaOrderByDay(startDate, DateUtils.afterDate(1, ChronoUnit.DAYS, startDate), orderCode).getData();
|
SaOrderExt saOrderExt = iBonusOrderService.querySaOrderByDay(startDate, DateUtils.afterDate(1, ChronoUnit.DAYS, startDate), orderCode);
|
||||||
log.info("查询订单,订单参数:{}", JSONUtil.toJsonStr(saOrderExt));
|
if (null == saOrderExt) {
|
||||||
|
log.info("查询订单为空");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
log.info("订单参数:{}", JSONUtil.toJsonStr(saOrderExt));
|
||||||
|
|
||||||
// 处理奖金结算秒结表,判断是否存在当天结算的秒接表,从cu_member中获取网体,从昨日结算表中获取累计、结余数据
|
// 处理奖金结算秒结表,判断是否存在当天结算的秒接表,从cu_member中获取网体,从昨日结算表中获取累计、结余数据
|
||||||
String settleDate = DateUtils.parseDateToStr(DateUtils.YYYY_MM_DD, saOrderExt.getPayTime());
|
String settleDate = DateUtils.parseDateToStr(DateUtils.YYYY_MM_DD, saOrderExt.getPayTime());
|
||||||
|
@ -398,7 +402,7 @@ public class BonusSettleServiceImpl implements IBonusSettleService {
|
||||||
@Override
|
@Override
|
||||||
public void calculateCuMemberBonus(String settleDate, List<SaOrderExt> saOrderExtList) {
|
public void calculateCuMemberBonus(String settleDate, List<SaOrderExt> saOrderExtList) {
|
||||||
try {
|
try {
|
||||||
// 今天期间
|
// 今天期间(settleDate - 年月日)
|
||||||
Integer period = iCuMemberSettlePeriodService.getCuMemberSettlePeriodByDate(settleDate).getPkId();
|
Integer period = iCuMemberSettlePeriodService.getCuMemberSettlePeriodByDate(settleDate).getPkId();
|
||||||
// 会员结算日表(cu_member_settle) + 期间
|
// 会员结算日表(cu_member_settle) + 期间
|
||||||
String currentSettleTableName = TableNameConstants.CU_MEMBER_SETTLE + period;
|
String currentSettleTableName = TableNameConstants.CU_MEMBER_SETTLE + period;
|
||||||
|
@ -454,7 +458,6 @@ public class BonusSettleServiceImpl implements IBonusSettleService {
|
||||||
// 首购订单 (注册+升级) 直推奖、量奖、领导奖、(注册)报单服务费
|
// 首购订单 (注册+升级) 直推奖、量奖、领导奖、(注册)报单服务费
|
||||||
// 复购订单 (复购量奖、复购级差)
|
// 复购订单 (复购量奖、复购级差)
|
||||||
// 其他订单 只累计业绩 仅算奖衔
|
// 其他订单 只累计业绩 仅算奖衔
|
||||||
// 云代奖金 1% 待考虑
|
|
||||||
// 首购订单
|
// 首购订单
|
||||||
List<SaOrderExt> firPurchaseOrderList = new ArrayList<>();
|
List<SaOrderExt> firPurchaseOrderList = new ArrayList<>();
|
||||||
// 复购订单
|
// 复购订单
|
||||||
|
@ -479,9 +482,11 @@ public class BonusSettleServiceImpl implements IBonusSettleService {
|
||||||
});
|
});
|
||||||
// 将删除的订单的点位变为死点
|
// 将删除的订单的点位变为死点
|
||||||
iCuMemberTreeService.updateCuMemberTreeByCancelOrder(revokeRegSaOrderList, revokeUpdSaOrderList, settleDate, currentSettleTableName);
|
iCuMemberTreeService.updateCuMemberTreeByCancelOrder(revokeRegSaOrderList, revokeUpdSaOrderList, settleDate, currentSettleTableName);
|
||||||
//********************************* 更新当天最新的业绩*************************/
|
|
||||||
// 获取所有国家的奖金项 key = 国家 + 奖金项的值
|
// 获取所有国家的奖金项 key = 国家 + 奖金项的值
|
||||||
BonusConfigDTO bonusConfigDTO = iBonusItemsServiceApi.queryBonusConfigDTO().getData();
|
BonusConfigDTO bonusConfigDTO = iBonusItemsServiceApi.queryBonusConfigDTO().getData();
|
||||||
|
// 获取所有区域配置(key:省-市-区,value:会员ID)
|
||||||
|
Map<String, Long> memberRegionMap = iMemberServiceApi.memberRegionMap(DateUtils.getEndTime(DateUtils.parseStringToDate(settleDate))).getData();
|
||||||
|
|
||||||
//*********************************计算奖衔 更新奖衔*********************************/
|
//*********************************计算奖衔 更新奖衔*********************************/
|
||||||
// 开始计算奖衔 计算奖衔 更新奖衔(根据最新业绩查询变动且业绩满足下一等级,根据等级判断是否满足考核,安置考核或血缘考核)
|
// 开始计算奖衔 计算奖衔 更新奖衔(根据最新业绩查询变动且业绩满足下一等级,根据等级判断是否满足考核,安置考核或血缘考核)
|
||||||
|
@ -515,7 +520,7 @@ public class BonusSettleServiceImpl implements IBonusSettleService {
|
||||||
// 计算奖金(主入口)
|
// 计算奖金(主入口)
|
||||||
calculateBonusBySaOrderList(settleDate, period, yesterdayPeriod, currentSettleTableName,
|
calculateBonusBySaOrderList(settleDate, period, yesterdayPeriod, currentSettleTableName,
|
||||||
firPurchaseOrderList, repurchaseOrderList, mallOrderList, awardsMap, gradeMap, bonusConfigDTO, cuMemberBonusMap,
|
firPurchaseOrderList, repurchaseOrderList, mallOrderList, awardsMap, gradeMap, bonusConfigDTO, cuMemberBonusMap,
|
||||||
recordDetailVO, cuMemberSettleExtMap, expandOrderList, newExpandFlag);
|
recordDetailVO, cuMemberSettleExtMap, expandOrderList, newExpandFlag, memberRegionMap);
|
||||||
// 计算复购券
|
// 计算复购券
|
||||||
calculateRepurchaseCoupons(DateUtils.parseDate(settleDate), firPurchaseOrderList, period, bonusConfigDTO, cuMemberBonusMap,
|
calculateRepurchaseCoupons(DateUtils.parseDate(settleDate), firPurchaseOrderList, period, bonusConfigDTO, cuMemberBonusMap,
|
||||||
recordDetailVO, cuMemberSettleExtMap);
|
recordDetailVO, cuMemberSettleExtMap);
|
||||||
|
@ -780,7 +785,8 @@ public class BonusSettleServiceImpl implements IBonusSettleService {
|
||||||
List<SaOrderExt> firPurchaseOrderList, List<SaOrderExt> repurchaseOrderList, List<SaOrderExt> mallOrderList,
|
List<SaOrderExt> firPurchaseOrderList, List<SaOrderExt> repurchaseOrderList, List<SaOrderExt> mallOrderList,
|
||||||
Map<String, BdAwards> awardsMap, Map<Integer, BdGrade> gradeMap, BonusConfigDTO bonusConfigDTO,
|
Map<String, BdAwards> awardsMap, Map<Integer, BdGrade> gradeMap, BonusConfigDTO bonusConfigDTO,
|
||||||
Map<Long, CuMemberBonus> cuMemberBonusMap, BonusRecordDetailVO bonusRecordDetailVO,
|
Map<Long, CuMemberBonus> cuMemberBonusMap, BonusRecordDetailVO bonusRecordDetailVO,
|
||||||
Map<Long, CuMemberSettleExt> cuMemberSettleExtMap, List<SaOrderExt> expandOrderList, boolean newExpandFlag) {
|
Map<Long, CuMemberSettleExt> cuMemberSettleExtMap, List<SaOrderExt> expandOrderList, boolean newExpandFlag,
|
||||||
|
Map<String, Long> memberRegionMap) {
|
||||||
Map<Long, CuAwardsControl> cuAwardsControlMap = getCuAwardsControlMap();
|
Map<Long, CuAwardsControl> cuAwardsControlMap = getCuAwardsControlMap();
|
||||||
Map<Long, CuMemberBonus> weekMemberBonusMap = getWeekMemberBonusMap(settleDate, period);
|
Map<Long, CuMemberBonus> weekMemberBonusMap = getWeekMemberBonusMap(settleDate, period);
|
||||||
Map<String, String> systemConfigMap = iSystemConfigServiceApi.getBonusSystemConfig().getData();
|
Map<String, String> systemConfigMap = iSystemConfigServiceApi.getBonusSystemConfig().getData();
|
||||||
|
@ -805,7 +811,7 @@ public class BonusSettleServiceImpl implements IBonusSettleService {
|
||||||
if (CollectionUtil.isNotEmpty(repurchaseOrderList)) {
|
if (CollectionUtil.isNotEmpty(repurchaseOrderList)) {
|
||||||
calculatePurchaseOrder(riskControlMap, cuMemberSettleExtMap, settleTableName, settleDate, systemConfigMap, bonusConfigDTO,
|
calculatePurchaseOrder(riskControlMap, cuMemberSettleExtMap, settleTableName, settleDate, systemConfigMap, bonusConfigDTO,
|
||||||
repurchaseOrderList, period, weekMemberBonusMap, cuMemberBonusMap, bonusRecordDetailVO, awardsMap, awardsList, cuAwardsControlMap, cuBonusExpandExtMap, rangeDtoMap,
|
repurchaseOrderList, period, weekMemberBonusMap, cuMemberBonusMap, bonusRecordDetailVO, awardsMap, awardsList, cuAwardsControlMap, cuBonusExpandExtMap, rangeDtoMap,
|
||||||
newExpandFlag, gradeMap);
|
newExpandFlag, gradeMap, memberRegionMap);
|
||||||
}
|
}
|
||||||
// 计算首购
|
// 计算首购
|
||||||
if (CollectionUtil.isNotEmpty(firPurchaseOrderList)) {
|
if (CollectionUtil.isNotEmpty(firPurchaseOrderList)) {
|
||||||
|
@ -1146,7 +1152,7 @@ public class BonusSettleServiceImpl implements IBonusSettleService {
|
||||||
Map<String, String> systemConfigMap, BonusConfigDTO bonusConfigDTO, List<SaOrderExt> purchaseOrderList, Integer period,
|
Map<String, String> systemConfigMap, BonusConfigDTO bonusConfigDTO, List<SaOrderExt> purchaseOrderList, Integer period,
|
||||||
Map<Long, CuMemberBonus> weekMemberBonusMap, Map<Long, CuMemberBonus> cuMemberBonusMap, BonusRecordDetailVO bonusRecordDetailVO,
|
Map<Long, CuMemberBonus> weekMemberBonusMap, Map<Long, CuMemberBonus> cuMemberBonusMap, BonusRecordDetailVO bonusRecordDetailVO,
|
||||||
Map<String, BdAwards> awardsMap, List<BdAwards> awardsList, Map<Long, CuAwardsControl> cuAwardsControlMap, Map<Long, CuBonusExpandExt> cuBonusExpandExtMap,
|
Map<String, BdAwards> awardsMap, List<BdAwards> awardsList, Map<Long, CuAwardsControl> cuAwardsControlMap, Map<Long, CuBonusExpandExt> cuBonusExpandExtMap,
|
||||||
Map<String, RangeDTO> rangeDtoMap, boolean newExpandFlag, Map<Integer, BdGrade> gradeMap) {
|
Map<String, RangeDTO> rangeDtoMap, boolean newExpandFlag, Map<Integer, BdGrade> gradeMap, Map<String, Long> memberRegionMap) {
|
||||||
//****************************复购直推*****************************
|
//****************************复购直推*****************************
|
||||||
// 查找10代血缘,验证复购考核,考核通过的给与奖金 紧缩
|
// 查找10代血缘,验证复购考核,考核通过的给与奖金 紧缩
|
||||||
// List<CuMemberBonusPush> cuMemberBonusPushList = bonusSettlePurchaseHandle.calculateRepurchasePushBonus(cuMemberSettleExtMap, settleTableName, settleDate, bonusConfigDTO, purchaseOrderList, period, cuMemberBonusMap);
|
// List<CuMemberBonusPush> cuMemberBonusPushList = bonusSettlePurchaseHandle.calculateRepurchasePushBonus(cuMemberSettleExtMap, settleTableName, settleDate, bonusConfigDTO, purchaseOrderList, period, cuMemberBonusMap);
|
||||||
|
@ -1194,7 +1200,13 @@ public class BonusSettleServiceImpl implements IBonusSettleService {
|
||||||
}
|
}
|
||||||
|
|
||||||
//****************************区域收益*****************************/
|
//****************************区域收益*****************************/
|
||||||
// TODO
|
List<CuMemberBonusRange> cuMemberAreaBonusRangeList = bonusSettlePurchaseHandle.calculateRepurchaseAreaBonus(cuMemberSettleExtMap, settleTableName, period,
|
||||||
|
bonusConfigDTO, purchaseOrderList, cuMemberBonusMap, memberRegionMap);
|
||||||
|
if (CollectionUtil.isNotEmpty(bonusRecordDetailVO.getCuMemberBonusRangeList())) {
|
||||||
|
bonusRecordDetailVO.getCuMemberBonusRangeList().addAll(cuMemberAreaBonusRangeList);
|
||||||
|
} else {
|
||||||
|
bonusRecordDetailVO.setCuMemberBonusRangeList(cuMemberAreaBonusRangeList);
|
||||||
|
}
|
||||||
|
|
||||||
Map<Long, MemberBonusDetailCalVO> memberBonusDetailCalVoMap = new HashMap<>(ComputeUtil.mapInitCapacity(purchaseOrderList.size()));
|
Map<Long, MemberBonusDetailCalVO> memberBonusDetailCalVoMap = new HashMap<>(ComputeUtil.mapInitCapacity(purchaseOrderList.size()));
|
||||||
if (null != cuMemberBonusExpandList) {
|
if (null != cuMemberBonusExpandList) {
|
||||||
|
@ -1220,6 +1232,11 @@ public class BonusSettleServiceImpl implements IBonusSettleService {
|
||||||
MemberBonusDetailCalVO memberBonusDetailCalVO = calculateOrderRatio(memberBonusDetailCalVoMap, cuMemberPointBonus);
|
MemberBonusDetailCalVO memberBonusDetailCalVO = calculateOrderRatio(memberBonusDetailCalVoMap, cuMemberPointBonus);
|
||||||
memberBonusDetailCalVO.setGlobalPoints(ComputeUtil.computeAdd(memberBonusDetailCalVO.getGlobalPoints(), cuMemberPointBonus.getRealIncome()));
|
memberBonusDetailCalVO.setGlobalPoints(ComputeUtil.computeAdd(memberBonusDetailCalVO.getGlobalPoints(), cuMemberPointBonus.getRealIncome()));
|
||||||
});
|
});
|
||||||
|
// 区域收益
|
||||||
|
cuMemberAreaBonusRangeList.forEach(cuMemberBonusRange -> {
|
||||||
|
MemberBonusDetailCalVO memberBonusDetailCalVO = calculateOrderRatio(memberBonusDetailCalVoMap, cuMemberBonusRange);
|
||||||
|
memberBonusDetailCalVO.setStoreIncome(ComputeUtil.computeAdd(memberBonusDetailCalVO.getStoreIncome(), cuMemberBonusRange.getRealIncome()));
|
||||||
|
});
|
||||||
|
|
||||||
// Map<Long, SaOrderExt> saOrderExtMap = new HashMap<>(ComputeUtil.mapInitCapacity(purchaseOrderList.size()));
|
// Map<Long, SaOrderExt> saOrderExtMap = new HashMap<>(ComputeUtil.mapInitCapacity(purchaseOrderList.size()));
|
||||||
// purchaseOrderList.forEach(saOrderExt ->
|
// purchaseOrderList.forEach(saOrderExt ->
|
||||||
|
@ -1307,9 +1324,8 @@ public class BonusSettleServiceImpl implements IBonusSettleService {
|
||||||
.repExpandIncome(BigDecimal.ZERO)
|
.repExpandIncome(BigDecimal.ZERO)
|
||||||
.repCoachIncome(BigDecimal.ZERO)
|
.repCoachIncome(BigDecimal.ZERO)
|
||||||
.repRangeIncome(BigDecimal.ZERO)
|
.repRangeIncome(BigDecimal.ZERO)
|
||||||
.hiFunIncome(BigDecimal.ZERO)
|
|
||||||
.haiFunIncome(BigDecimal.ZERO)
|
|
||||||
.globalPoints(BigDecimal.ZERO)
|
.globalPoints(BigDecimal.ZERO)
|
||||||
|
.storeIncome(BigDecimal.ZERO)
|
||||||
.build();
|
.build();
|
||||||
memberBonusDetailVoMap.put(pkOrder, memberBonusDetailCalVO);
|
memberBonusDetailVoMap.put(pkOrder, memberBonusDetailCalVO);
|
||||||
}
|
}
|
||||||
|
|
|
@ -13,6 +13,7 @@ import com.hzs.bonus.bonus.service.IBonusSettleService;
|
||||||
import com.hzs.bonus.bonus.service.ICuMemberBonusService;
|
import com.hzs.bonus.bonus.service.ICuMemberBonusService;
|
||||||
import com.hzs.bonus.bonus.vo.MemberBonusDetailSerVO;
|
import com.hzs.bonus.bonus.vo.MemberBonusDetailSerVO;
|
||||||
import com.hzs.bonus.bonus.vo.MemberBonusDetailVO;
|
import com.hzs.bonus.bonus.vo.MemberBonusDetailVO;
|
||||||
|
import com.hzs.bonus.order.service.IBonusOrderService;
|
||||||
import com.hzs.common.core.constant.HttpStatus;
|
import com.hzs.common.core.constant.HttpStatus;
|
||||||
import com.hzs.common.core.constant.MemberBonusFieldConstants;
|
import com.hzs.common.core.constant.MemberBonusFieldConstants;
|
||||||
import com.hzs.common.core.constant.MemberFieldConstants;
|
import com.hzs.common.core.constant.MemberFieldConstants;
|
||||||
|
@ -29,7 +30,6 @@ import com.hzs.common.domain.member.ext.*;
|
||||||
import com.hzs.common.domain.sale.ext.SaOrderExt;
|
import com.hzs.common.domain.sale.ext.SaOrderExt;
|
||||||
import com.hzs.common.domain.system.config.BdBonusItems;
|
import com.hzs.common.domain.system.config.BdBonusItems;
|
||||||
import com.hzs.common.domain.system.config.ext.BdBonusItemsExt;
|
import com.hzs.common.domain.system.config.ext.BdBonusItemsExt;
|
||||||
import com.hzs.sale.order.ISaOrderServiceApi;
|
|
||||||
import com.hzs.system.base.ICurrencyServiceApi;
|
import com.hzs.system.base.ICurrencyServiceApi;
|
||||||
import com.hzs.system.base.ISystemConfigServiceApi;
|
import com.hzs.system.base.ISystemConfigServiceApi;
|
||||||
import com.hzs.system.base.dto.CurrencyDTO;
|
import com.hzs.system.base.dto.CurrencyDTO;
|
||||||
|
@ -54,8 +54,6 @@ public class CuMemberBonusServiceImpl extends ServiceImpl<CuMemberBonusMapper, C
|
||||||
@DubboReference
|
@DubboReference
|
||||||
ISystemConfigServiceApi iSystemConfigServiceApi;
|
ISystemConfigServiceApi iSystemConfigServiceApi;
|
||||||
@DubboReference
|
@DubboReference
|
||||||
ISaOrderServiceApi iSaOrderServiceApi;
|
|
||||||
@DubboReference
|
|
||||||
ICurrencyServiceApi iCurrencyServiceApi;
|
ICurrencyServiceApi iCurrencyServiceApi;
|
||||||
@DubboReference
|
@DubboReference
|
||||||
IBonusItemsServiceApi iBonusItemsServiceApi;
|
IBonusItemsServiceApi iBonusItemsServiceApi;
|
||||||
|
@ -76,6 +74,8 @@ public class CuMemberBonusServiceImpl extends ServiceImpl<CuMemberBonusMapper, C
|
||||||
private CuMemberBonusCoachMapper cuMemberBonusCoachMapper;
|
private CuMemberBonusCoachMapper cuMemberBonusCoachMapper;
|
||||||
@Autowired
|
@Autowired
|
||||||
private CuMemberBonusRangeMapper cuMemberBonusRangeMapper;
|
private CuMemberBonusRangeMapper cuMemberBonusRangeMapper;
|
||||||
|
@Autowired
|
||||||
|
private IBonusOrderService iBonusOrderService;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public List<Long> batchQueryCuMemberBonusSeq(Integer rowNum) {
|
public List<Long> batchQueryCuMemberBonusSeq(Integer rowNum) {
|
||||||
|
@ -417,25 +417,6 @@ public class CuMemberBonusServiceImpl extends ServiceImpl<CuMemberBonusMapper, C
|
||||||
return dataTable;
|
return dataTable;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
public List<MemberBonusDetailVO> queryMemberMarkBonusDetailSource(BonusParam bonusParam) {
|
|
||||||
List<MemberBonusDetailVO> memberBonusDetailVOList = new ArrayList<>();
|
|
||||||
BdBonusItems bonusItems = iBonusItemsServiceApi.queryBonusItemsByBonusValue(bonusParam.getPkCountry(), bonusParam.getBonusValue()).getData();
|
|
||||||
bonusParam.setPkBonusItems(bonusItems.getPkId());
|
|
||||||
// 其他收益 服务补贴、分红收益
|
|
||||||
// 拓展收益、复购拓展收益
|
|
||||||
List<CuMemberBonusDetailExt> cuMemberBonusDetailList = cuMemberBonusDetailMapper.queryMemberBonusDetailByBonusItems(bonusParam);
|
|
||||||
CurrencyDTO currency = iCurrencyServiceApi.getCurrency(bonusParam.getPkCountry()).getData();
|
|
||||||
cuMemberBonusDetailList.forEach(cuMemberBonusDetail -> {
|
|
||||||
MemberBonusDetailVO memberBonusDetailVO = BeanUtil.copyProperties(cuMemberBonusDetail, MemberBonusDetailVO.class);
|
|
||||||
String sourceMemberCode = memberBonusDetailVO.getSourceMemberCode();
|
|
||||||
memberBonusDetailVO.setSourceMemberCode("***" + sourceMemberCode.substring(sourceMemberCode.length() - 3));
|
|
||||||
memberBonusDetailVO.setRealIncome(ComputeUtil.computeMultiply(memberBonusDetailVO.getRealIncome(), currency.getOutExchangeRate()));
|
|
||||||
memberBonusDetailVOList.add(memberBonusDetailVO);
|
|
||||||
});
|
|
||||||
return memberBonusDetailVOList;
|
|
||||||
}
|
|
||||||
|
|
||||||
private Map<Integer, BdBonusItemsExt> convertBonusItems(BonusParam bonusParam) {
|
private Map<Integer, BdBonusItemsExt> convertBonusItems(BonusParam bonusParam) {
|
||||||
List<BdBonusItemsExt> bonusItemsExtList = iBonusItemsServiceApi.queryBonusItems(bonusParam.getPkCountry()).getData();
|
List<BdBonusItemsExt> bonusItemsExtList = iBonusItemsServiceApi.queryBonusItems(bonusParam.getPkCountry()).getData();
|
||||||
Map<Integer, BdBonusItemsExt> bonusItemsMap = new HashMap<>(ComputeUtil.mapInitCapacity(bonusItemsExtList.size()));
|
Map<Integer, BdBonusItemsExt> bonusItemsMap = new HashMap<>(ComputeUtil.mapInitCapacity(bonusItemsExtList.size()));
|
||||||
|
@ -609,7 +590,7 @@ public class CuMemberBonusServiceImpl extends ServiceImpl<CuMemberBonusMapper, C
|
||||||
iCuMemberTreeService.createCuMemberTree(DateUtils.parseDateToStr(DateUtils.YYYY_MM_DD, DateUtils.beforeDate(1, ChronoUnit.DAYS)));
|
iCuMemberTreeService.createCuMemberTree(DateUtils.parseDateToStr(DateUtils.YYYY_MM_DD, DateUtils.beforeDate(1, ChronoUnit.DAYS)));
|
||||||
log.info("初始化表完成");
|
log.info("初始化表完成");
|
||||||
// 奖金结算
|
// 奖金结算
|
||||||
List<SaOrderExt> saOrderExtList = iSaOrderServiceApi.listSaOrderByDay(startDate, settleEndDate, "").getData();
|
List<SaOrderExt> saOrderExtList = iBonusOrderService.querySaOrderByTime(startDate, settleEndDate, "");
|
||||||
iBonusSettleService.calculateCuMemberBonus(settleDate, saOrderExtList);
|
iBonusSettleService.calculateCuMemberBonus(settleDate, saOrderExtList);
|
||||||
return Boolean.TRUE;
|
return Boolean.TRUE;
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,257 +0,0 @@
|
||||||
package com.hzs.bonus.bonus.vo;
|
|
||||||
|
|
||||||
import com.hzs.common.core.annotation.Excel;
|
|
||||||
import lombok.Data;
|
|
||||||
|
|
||||||
import java.io.Serializable;
|
|
||||||
import java.math.BigDecimal;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 奖金收益的公共字段
|
|
||||||
*/
|
|
||||||
@Data
|
|
||||||
public class BonusPubVO implements Serializable {
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 直推收益
|
|
||||||
*/
|
|
||||||
@Excel(name = "直推收益", scale = 2)
|
|
||||||
private BigDecimal directIncomeOri;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 拓展收益
|
|
||||||
*/
|
|
||||||
@Excel(name = "拓展收益", scale = 2)
|
|
||||||
private BigDecimal expandIncomeOri;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 拓展无封 (拓展收益按等级正常比例结算,并 拓展收益按等级正常比例结算 无封顶)
|
|
||||||
*/
|
|
||||||
private BigDecimal expandNoCappingOri;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 拓展封顶 (拓展收益按等级正常比例结算,不按4-N结算,根据配置的封顶值限制最大收益)
|
|
||||||
*/
|
|
||||||
private BigDecimal expandCappingOri;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 辅导收益
|
|
||||||
*/
|
|
||||||
@Excel(name = "辅导收益", scale = 2)
|
|
||||||
private BigDecimal coachIncomeOri;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 分红收益
|
|
||||||
*/
|
|
||||||
@Excel(name = "分红收益", scale = 2)
|
|
||||||
private BigDecimal shareIncomeOri;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 报单收益
|
|
||||||
*/
|
|
||||||
@Excel(name = "报单收益", scale = 2)
|
|
||||||
private BigDecimal serviceIncomeOri;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 复购级差收益
|
|
||||||
*/
|
|
||||||
@Excel(name = "复购级差收益", scale = 2)
|
|
||||||
private BigDecimal repurRangeIncomeOri;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 复购拓展收益
|
|
||||||
*/
|
|
||||||
@Excel(name = "复购拓展收益", scale = 2)
|
|
||||||
private BigDecimal repurExpandIncomeOri;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 复购卷
|
|
||||||
*/
|
|
||||||
@Excel(name = "复购卷", scale = 2)
|
|
||||||
private BigDecimal repurCouponOri;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 复购券均分收益
|
|
||||||
*/
|
|
||||||
@Excel(name = "复购券均分", scale = 2)
|
|
||||||
private BigDecimal repurCouponShareOri;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 商城重消
|
|
||||||
*/
|
|
||||||
@Excel(name = "商城重消", scale = 2)
|
|
||||||
private BigDecimal backPointsOri;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 平台服务费
|
|
||||||
*/
|
|
||||||
@Excel(name = "平台服务费", scale = 2)
|
|
||||||
private BigDecimal serviceSpendOri;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 环球积分
|
|
||||||
*/
|
|
||||||
@Excel(name = "直推极差", scale = 2)
|
|
||||||
private BigDecimal globalPointsOri;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 车奖积分
|
|
||||||
*/
|
|
||||||
@Excel(name = "车奖积分", scale = 2)
|
|
||||||
private BigDecimal carAwardPointsOri;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 店铺收益
|
|
||||||
*/
|
|
||||||
@Excel(name = "店铺收益", scale = 2)
|
|
||||||
private BigDecimal storeIncomeOri;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 首购实发小计
|
|
||||||
*/
|
|
||||||
@Excel(name = "首购实发小计", scale = 2)
|
|
||||||
private BigDecimal purRealSubtotalOri;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 云代实发小计
|
|
||||||
*/
|
|
||||||
@Excel(name = "云代实发小计", scale = 2)
|
|
||||||
private BigDecimal cloudRealSubtotalOri;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 复购实发小计
|
|
||||||
*/
|
|
||||||
@Excel(name = "复购实发小计", scale = 2)
|
|
||||||
private BigDecimal repurRealSubtotalOri;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 复购券小计
|
|
||||||
*/
|
|
||||||
@Excel(name = "复购券实发小计", scale = 2)
|
|
||||||
private BigDecimal repurCouponSubtotalOri;
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 实发收益总计
|
|
||||||
*/
|
|
||||||
@Excel(name = "实发收益总计", scale = 2)
|
|
||||||
private BigDecimal realIncomeTotalOri;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 直推收益
|
|
||||||
*/
|
|
||||||
@Excel(name = "直推收益($)", scale = 2)
|
|
||||||
private BigDecimal directIncome;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 拓展收益
|
|
||||||
*/
|
|
||||||
@Excel(name = "拓展收益($)", scale = 2)
|
|
||||||
private BigDecimal expandIncome;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 拓展无封 (拓展收益按等级正常比例结算,并 拓展收益按等级正常比例结算 无封顶)
|
|
||||||
*/
|
|
||||||
private BigDecimal expandNoCapping;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 拓展封顶 (拓展收益按等级正常比例结算,不按4-N结算,根据配置的封顶值限制最大收益)
|
|
||||||
*/
|
|
||||||
private BigDecimal expandCapping;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 辅导收益
|
|
||||||
*/
|
|
||||||
@Excel(name = "辅导收益($)", scale = 2)
|
|
||||||
private BigDecimal coachIncome;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 分红收益
|
|
||||||
*/
|
|
||||||
@Excel(name = "分红收益($)", scale = 2)
|
|
||||||
private BigDecimal shareIncome;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 报单收益
|
|
||||||
*/
|
|
||||||
@Excel(name = "报单收益($)", scale = 2)
|
|
||||||
private BigDecimal serviceIncome;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 复购级差收益
|
|
||||||
*/
|
|
||||||
@Excel(name = "复购级差收益($)", scale = 2)
|
|
||||||
private BigDecimal repurRangeIncome;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 复购拓展收益
|
|
||||||
*/
|
|
||||||
@Excel(name = "复购拓展收益($)", scale = 2)
|
|
||||||
private BigDecimal repurExpandIncome;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 复购卷
|
|
||||||
*/
|
|
||||||
@Excel(name = "复购卷($)", scale = 2)
|
|
||||||
private BigDecimal repurCoupon;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 复购券均分收益
|
|
||||||
*/
|
|
||||||
@Excel(name = "复购券均分($)", scale = 2)
|
|
||||||
private BigDecimal repurCouponShare;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 商城重消
|
|
||||||
*/
|
|
||||||
@Excel(name = "商城重消($)", scale = 2)
|
|
||||||
private BigDecimal backPoints;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 平台服务费
|
|
||||||
*/
|
|
||||||
@Excel(name = "平台服务费($)", scale = 2)
|
|
||||||
private BigDecimal serviceSpend;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 环球积分
|
|
||||||
*/
|
|
||||||
@Excel(name = "直推极差($)", scale = 2)
|
|
||||||
private BigDecimal globalPoints;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 车奖积分
|
|
||||||
*/
|
|
||||||
@Excel(name = "车奖积分($)", scale = 2)
|
|
||||||
private BigDecimal carAwardPoints;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 店铺收益
|
|
||||||
*/
|
|
||||||
@Excel(name = "店铺收益($)", scale = 2)
|
|
||||||
private BigDecimal storeIncome;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 首购实发小计
|
|
||||||
*/
|
|
||||||
@Excel(name = "首购实发小计($)", scale = 2)
|
|
||||||
private BigDecimal purRealSubtotal;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 复购实发小计
|
|
||||||
*/
|
|
||||||
@Excel(name = "复购实发小计($)", scale = 2)
|
|
||||||
private BigDecimal repurRealSubtotal;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 复购券小计
|
|
||||||
*/
|
|
||||||
@Excel(name = "复购券实发小计($)", scale = 2)
|
|
||||||
private BigDecimal repurCouponSubtotal;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 实发收益总计
|
|
||||||
*/
|
|
||||||
@Excel(name = "实发收益总计($)", scale = 2)
|
|
||||||
private BigDecimal realIncomeTotal;
|
|
||||||
}
|
|
|
@ -43,7 +43,7 @@ public class BonusRecordDetailVO implements Serializable {
|
||||||
private Map<Long, CuMemberBonusDelayDetail> bonusDelayDetailAddMap;
|
private Map<Long, CuMemberBonusDelayDetail> bonusDelayDetailAddMap;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 辅导奖
|
* 辅导奖、见点收益
|
||||||
*/
|
*/
|
||||||
private List<CuMemberBonusCoach> cuMemberBonusCoachList;
|
private List<CuMemberBonusCoach> cuMemberBonusCoachList;
|
||||||
|
|
||||||
|
@ -53,7 +53,8 @@ public class BonusRecordDetailVO implements Serializable {
|
||||||
private List<CuMemberBonusDetail> cuMemberBonusDetailList;
|
private List<CuMemberBonusDetail> cuMemberBonusDetailList;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 复购极差
|
* 复购级差、区域收益
|
||||||
*/
|
*/
|
||||||
private List<CuMemberBonusRange> cuMemberBonusRangeList;
|
private List<CuMemberBonusRange> cuMemberBonusRangeList;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -86,20 +86,14 @@ public class MemberBonusDetailCalVO implements Serializable {
|
||||||
*/
|
*/
|
||||||
private BigDecimal repRangeIncome;
|
private BigDecimal repRangeIncome;
|
||||||
|
|
||||||
/**
|
|
||||||
* 嗨粉直推收益
|
|
||||||
*/
|
|
||||||
private BigDecimal hiFunIncome;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 海粉直推收益
|
|
||||||
*/
|
|
||||||
private BigDecimal haiFunIncome;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 见点收益
|
* 见点收益
|
||||||
*/
|
*/
|
||||||
private BigDecimal globalPoints;
|
private BigDecimal globalPoints;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 区域收益
|
||||||
|
*/
|
||||||
|
private BigDecimal storeIncome;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -16,17 +16,14 @@ import java.math.BigDecimal;
|
||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @Description: 返回会员端查询奖金明细vo
|
* 返回会员端查询奖金明细vo
|
||||||
* @Author: sui q
|
|
||||||
* @Time: 2022/12/20 9:56
|
|
||||||
* @Classname: MemberBonusDetailVO
|
|
||||||
* @PackageName: com.hzs.member.bonus.vo
|
|
||||||
*/
|
*/
|
||||||
@Data
|
@Data
|
||||||
@Builder
|
@Builder
|
||||||
@AllArgsConstructor
|
@AllArgsConstructor
|
||||||
@NoArgsConstructor
|
@NoArgsConstructor
|
||||||
public class MemberBonusDetailVO implements Serializable {
|
public class MemberBonusDetailVO implements Serializable {
|
||||||
|
|
||||||
private static final long serialVersionUID = 1L;
|
private static final long serialVersionUID = 1L;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -75,7 +75,7 @@ public class MemberBonusFirstPurchaseVO extends PubMemberBonusVO {
|
||||||
private BigDecimal repurRealSubtotal;
|
private BigDecimal repurRealSubtotal;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 乐学直推收益
|
* 见点收益
|
||||||
*/
|
*/
|
||||||
private BigDecimal globalPoints;
|
private BigDecimal globalPoints;
|
||||||
|
|
||||||
|
|
|
@ -1,29 +0,0 @@
|
||||||
package com.hzs.bonus.bonus.vo;
|
|
||||||
|
|
||||||
import lombok.AllArgsConstructor;
|
|
||||||
import lombok.Builder;
|
|
||||||
import lombok.Data;
|
|
||||||
import lombok.NoArgsConstructor;
|
|
||||||
|
|
||||||
import java.math.BigDecimal;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 会员端海粉收益
|
|
||||||
*/
|
|
||||||
@Data
|
|
||||||
@Builder
|
|
||||||
@AllArgsConstructor
|
|
||||||
@NoArgsConstructor
|
|
||||||
public class MemberBonusHaiFunVO extends PubMemberBonusVO {
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 嗨粉推荐收益
|
|
||||||
*/
|
|
||||||
private BigDecimal haiFunIncome;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 海粉收益小计
|
|
||||||
*/
|
|
||||||
private BigDecimal haiFunRealSubtotal;
|
|
||||||
|
|
||||||
}
|
|
|
@ -1,29 +0,0 @@
|
||||||
package com.hzs.bonus.bonus.vo;
|
|
||||||
|
|
||||||
import lombok.AllArgsConstructor;
|
|
||||||
import lombok.Builder;
|
|
||||||
import lombok.Data;
|
|
||||||
import lombok.NoArgsConstructor;
|
|
||||||
|
|
||||||
import java.math.BigDecimal;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 会员端嗨粉收益
|
|
||||||
*/
|
|
||||||
@Data
|
|
||||||
@Builder
|
|
||||||
@AllArgsConstructor
|
|
||||||
@NoArgsConstructor
|
|
||||||
public class MemberBonusHiFunVO extends PubMemberBonusVO {
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 嗨粉推荐收益
|
|
||||||
*/
|
|
||||||
private BigDecimal hiFunIncome;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 嗨粉小计
|
|
||||||
*/
|
|
||||||
private BigDecimal hiFunRealSubtotal;
|
|
||||||
|
|
||||||
}
|
|
|
@ -1,20 +1,13 @@
|
||||||
package com.hzs.bonus.bonus.vo;
|
package com.hzs.bonus.bonus.vo;
|
||||||
|
|
||||||
import lombok.AllArgsConstructor;
|
import lombok.*;
|
||||||
import lombok.Builder;
|
|
||||||
import lombok.Data;
|
|
||||||
import lombok.NoArgsConstructor;
|
|
||||||
|
|
||||||
import java.math.BigDecimal;
|
import java.math.BigDecimal;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @description: 会员端复购收益
|
* 会员端复购收益
|
||||||
* @author: sui q
|
|
||||||
* @time: 2023/4/28 10:36
|
|
||||||
* @classname: MemberBonusPurchaseVO
|
|
||||||
* @package_name: com.hzs.member.bonus.vo
|
|
||||||
* version 1.0.0
|
|
||||||
*/
|
*/
|
||||||
|
@EqualsAndHashCode(callSuper = true)
|
||||||
@Data
|
@Data
|
||||||
@Builder
|
@Builder
|
||||||
@AllArgsConstructor
|
@AllArgsConstructor
|
||||||
|
|
|
@ -1,222 +0,0 @@
|
||||||
package com.hzs.bonus.bonus.vo;
|
|
||||||
|
|
||||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
|
||||||
import lombok.AllArgsConstructor;
|
|
||||||
import lombok.Builder;
|
|
||||||
import lombok.Data;
|
|
||||||
import lombok.NoArgsConstructor;
|
|
||||||
|
|
||||||
import java.io.Serializable;
|
|
||||||
import java.math.BigDecimal;
|
|
||||||
import java.util.Date;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @Description: 用于查询会员奖金
|
|
||||||
* @Author: sui q
|
|
||||||
* @Time: 2023/1/13 10:38
|
|
||||||
* @Classname: MemberBonusVO
|
|
||||||
* @PackageName: com.hzs.member.bonus.vo
|
|
||||||
*/
|
|
||||||
@Data
|
|
||||||
@Builder
|
|
||||||
@AllArgsConstructor
|
|
||||||
@NoArgsConstructor
|
|
||||||
public class MemberBonusVO implements Serializable {
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 会员主键
|
|
||||||
*/
|
|
||||||
private Long pkMember;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 会员编号
|
|
||||||
*/
|
|
||||||
private String memberCode;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 会员名称
|
|
||||||
*/
|
|
||||||
private String memberName;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 结算等级
|
|
||||||
*/
|
|
||||||
private Integer pkSettleGrade;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 真实奖衔
|
|
||||||
*/
|
|
||||||
private Integer pkAwards;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 体系名称
|
|
||||||
*/
|
|
||||||
private String vertexName;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 团队名称
|
|
||||||
*/
|
|
||||||
private String teamName;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 期间
|
|
||||||
*/
|
|
||||||
private Integer period;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 汇率
|
|
||||||
*/
|
|
||||||
private Integer pkRate;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 直推收益
|
|
||||||
*/
|
|
||||||
private BigDecimal directIncome;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 拓展收益
|
|
||||||
*/
|
|
||||||
private BigDecimal expandIncome;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 辅导收益
|
|
||||||
*/
|
|
||||||
private BigDecimal coachIncome;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 分红收益
|
|
||||||
*/
|
|
||||||
private BigDecimal shareIncome;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 报单收益
|
|
||||||
*/
|
|
||||||
private BigDecimal serviceIncome;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 商城重消
|
|
||||||
*/
|
|
||||||
private BigDecimal backPoints;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 平台服务费
|
|
||||||
*/
|
|
||||||
private BigDecimal serviceSpend;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 商城重消
|
|
||||||
*/
|
|
||||||
private BigDecimal repBackPoints;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 平台服务费
|
|
||||||
*/
|
|
||||||
private BigDecimal repServiceSpend;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 首购实发小计
|
|
||||||
*/
|
|
||||||
private BigDecimal purRealSubtotal;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 复购推荐收益
|
|
||||||
*/
|
|
||||||
private BigDecimal repurPushIncome;
|
|
||||||
/**
|
|
||||||
* 复购级差收益
|
|
||||||
*/
|
|
||||||
private BigDecimal repurRangeIncome;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 复购拓展收益
|
|
||||||
*/
|
|
||||||
private BigDecimal repurExpandIncome;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 复购实发小计
|
|
||||||
*/
|
|
||||||
private BigDecimal repurRealSubtotal;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 复购卷
|
|
||||||
*/
|
|
||||||
private BigDecimal repurCoupon;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 复购卷均分 每月推荐满足3.6w直推,业绩的1%放入复购券
|
|
||||||
*/
|
|
||||||
private BigDecimal repurCouponShare;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 复购券小计
|
|
||||||
*/
|
|
||||||
private BigDecimal repurCouponSubtotal;
|
|
||||||
|
|
||||||
private BigDecimal couponServiceSpend;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 环球积分
|
|
||||||
*/
|
|
||||||
private BigDecimal globalPoints;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 车奖积分
|
|
||||||
*/
|
|
||||||
private BigDecimal carAwardPoints;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 嗨粉推荐收益
|
|
||||||
*/
|
|
||||||
private BigDecimal hiFunIncome;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 嗨粉小计
|
|
||||||
*/
|
|
||||||
private BigDecimal hiFunRealSubtotal;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 嗨粉推荐收益
|
|
||||||
*/
|
|
||||||
private BigDecimal haiFunIncome;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 海粉收益小计
|
|
||||||
*/
|
|
||||||
private BigDecimal haiFunRealSubtotal;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 平台服务费
|
|
||||||
*/
|
|
||||||
private BigDecimal haiFunServiceSpend;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 平台服务费
|
|
||||||
*/
|
|
||||||
private BigDecimal makerServiceSpend;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 店铺收益
|
|
||||||
*/
|
|
||||||
private BigDecimal storeIncome;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 实发收益总计
|
|
||||||
*/
|
|
||||||
private BigDecimal realIncomeTotal;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 收益状态 (0=正常,1=停止收益)
|
|
||||||
*/
|
|
||||||
private Integer incomeStatus;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 国家
|
|
||||||
*/
|
|
||||||
private Integer pkCountry;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 结算日期
|
|
||||||
*/
|
|
||||||
@JsonFormat(pattern = "yyyy-MM-dd")
|
|
||||||
private Date settleDate;
|
|
||||||
}
|
|
|
@ -6,7 +6,7 @@ import java.io.Serializable;
|
||||||
import java.math.BigDecimal;
|
import java.math.BigDecimal;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @description: 会员端奖金明细查询vo
|
* 会员端奖金明细查询vo
|
||||||
*/
|
*/
|
||||||
@Data
|
@Data
|
||||||
public class PubMemberBonusVO implements Serializable {
|
public class PubMemberBonusVO implements Serializable {
|
||||||
|
|
|
@ -0,0 +1,21 @@
|
||||||
|
package com.hzs.bonus.order.mapper;
|
||||||
|
|
||||||
|
import com.hzs.common.domain.sale.ext.SaOrderExt;
|
||||||
|
import org.apache.ibatis.annotations.Param;
|
||||||
|
|
||||||
|
import java.util.Date;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
public interface BonusOrderMapper {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 查询时间范围内的订单,需要查询出del_flag = 1的值
|
||||||
|
*
|
||||||
|
* @param startDate 开始时间
|
||||||
|
* @param endDate 结束时间
|
||||||
|
*/
|
||||||
|
List<SaOrderExt> querySaOrderByTime(@Param("startDate") Date startDate,
|
||||||
|
@Param("endDate") Date endDate,
|
||||||
|
@Param("orderCode") String orderCode);
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,22 @@
|
||||||
|
package com.hzs.bonus.order.service;
|
||||||
|
|
||||||
|
import com.hzs.common.domain.sale.ext.SaOrderExt;
|
||||||
|
|
||||||
|
import java.util.Date;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
public interface IBonusOrderService {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 查询时间范围内的所有订单,按照订单时间排序,只能用于奖金结算
|
||||||
|
*
|
||||||
|
* @param startDate 开始日期
|
||||||
|
* @param endDate 结束日期
|
||||||
|
*/
|
||||||
|
List<SaOrderExt> querySaOrderByTime(Date startDate, Date endDate, String orderCode);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 查询订单编号
|
||||||
|
*/
|
||||||
|
SaOrderExt querySaOrderByDay(Date startDate, Date endDate, String orderCode);
|
||||||
|
}
|
|
@ -0,0 +1,31 @@
|
||||||
|
package com.hzs.bonus.order.service.impl;
|
||||||
|
|
||||||
|
import cn.hutool.core.collection.CollectionUtil;
|
||||||
|
import com.hzs.bonus.order.mapper.BonusOrderMapper;
|
||||||
|
import com.hzs.bonus.order.service.IBonusOrderService;
|
||||||
|
import com.hzs.common.domain.sale.ext.SaOrderExt;
|
||||||
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
|
import javax.annotation.Resource;
|
||||||
|
import java.util.*;
|
||||||
|
|
||||||
|
@Service
|
||||||
|
public class BonusOrderServiceImpl implements IBonusOrderService {
|
||||||
|
|
||||||
|
@Resource
|
||||||
|
private BonusOrderMapper bonusOrderMapper;
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public List<SaOrderExt> querySaOrderByTime(Date startDate, Date endDate, String orderCode) {
|
||||||
|
return bonusOrderMapper.querySaOrderByTime(startDate, endDate, orderCode);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public SaOrderExt querySaOrderByDay(Date startDate, Date endDate, String orderCode) {
|
||||||
|
List<SaOrderExt> saOrderList = bonusOrderMapper.querySaOrderByTime(startDate, endDate, orderCode);
|
||||||
|
if (CollectionUtil.isNotEmpty(saOrderList)) {
|
||||||
|
return saOrderList.get(0);
|
||||||
|
}
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
}
|
|
@ -929,6 +929,25 @@
|
||||||
<include refid="memberParent"></include>
|
<include refid="memberParent"></include>
|
||||||
</select>
|
</select>
|
||||||
|
|
||||||
|
<!-- 批量查询会员 -->
|
||||||
|
<select id="batchQueryCuMemberSettle" resultMap="CuMemberSettleExt">
|
||||||
|
select pk_member, pk_parent, member_code, member_name, a.pk_awards, a.register_authority, customer_type,
|
||||||
|
account_status, income_status, pk_settle_country, purchase_status, share_status, is_maker_space,
|
||||||
|
a_balance, b_balance, r_a_balance, r_b_balance, rep_a_balance, rep_b_balance, r_rep_a_balance, r_rep_b_balance,
|
||||||
|
register_amount, register_pv, upgrade_amount, upgrade_pv, repurchase_amount, repurchase_pv,
|
||||||
|
hi_fun_amount,hi_fun_pv,mall_amount,mall_pv, pk_center_code, category,pk_grade,
|
||||||
|
min_achieve, round, second, store_level, expire_status,
|
||||||
|
a_fir_balance, a_rep_balance, b_fir_balance, b_rep_balance, bg.grade_value
|
||||||
|
from ${settleTableName} a
|
||||||
|
inner join bd_grade bg
|
||||||
|
on a.pk_grade = bg.pk_id
|
||||||
|
where pay_status = 1
|
||||||
|
and pk_member in
|
||||||
|
<foreach collection="pkMemberList" item="item" open="(" close=")" separator=",">
|
||||||
|
#{item}
|
||||||
|
</foreach>
|
||||||
|
</select>
|
||||||
|
|
||||||
<select id="queryCuMemberSecondPlaceParent" resultMap="CuMemberSettleExt">
|
<select id="queryCuMemberSecondPlaceParent" resultMap="CuMemberSettleExt">
|
||||||
select b.pk_id pk_member,
|
select b.pk_id pk_member,
|
||||||
b.pk_parent,
|
b.pk_parent,
|
|
@ -0,0 +1,157 @@
|
||||||
|
<?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.order.mapper.BonusOrderMapper">
|
||||||
|
|
||||||
|
<!-- 通用查询映射结果 -->
|
||||||
|
<resultMap id="SaOrder" type="com.hzs.common.domain.sale.order.SaOrder">
|
||||||
|
<id column="PK_ID" property="pkId"/>
|
||||||
|
<result column="ORDER_CODE" property="orderCode"/>
|
||||||
|
<result column="ORDER_TYPE" property="orderType"/>
|
||||||
|
<result column="PK_RATE" property="pkRate"/>
|
||||||
|
<result column="ORDER_AMOUNT" property="orderAmount"/>
|
||||||
|
<result column="ORDER_ACHIEVE" property="orderAchieve"/>
|
||||||
|
<result column="POSTAGE" property="postage"/>
|
||||||
|
<result column="PK_MEMBER" property="pkMember"/>
|
||||||
|
<result column="REC_NAME" property="recName"/>
|
||||||
|
<result column="REC_PHONE" property="recPhone"/>
|
||||||
|
<result column="REC_PROVINCE" property="recProvince"/>
|
||||||
|
<result column="REC_CITY" property="recCity"/>
|
||||||
|
<result column="REC_COUNTY" property="recCounty"/>
|
||||||
|
<result column="REC_ADDRESS" property="recAddress"/>
|
||||||
|
<result column="PAY_TIME" property="payTime"/>
|
||||||
|
<result column="REMARK" property="remark"/>
|
||||||
|
<result column="PK_REFERENCE" property="pkReference"/>
|
||||||
|
<result column="PK_PLACEMENT" property="pkPlacement"/>
|
||||||
|
<result column="TRAN_TYPE" property="tranType"/>
|
||||||
|
<result column="DELIVERY_WAY" property="deliveryWay"/>
|
||||||
|
<result column="ORDER_STATUS" property="orderStatus"/>
|
||||||
|
<result column="PK_VERTEX" property="pkVertex"/>
|
||||||
|
<result column="PAY_TYPE" property="payType"/>
|
||||||
|
<result column="DEL_FLAG" property="delFlag"/>
|
||||||
|
<result column="PK_CREATOR" property="pkCreator"/>
|
||||||
|
<result column="CREATION_TIME" property="creationTime"/>
|
||||||
|
<result column="PK_MODIFIED" property="pkModified"/>
|
||||||
|
<result column="MODIFIED_TIME" property="modifiedTime"/>
|
||||||
|
<result column="PK_COUNTRY" property="pkCountry"/>
|
||||||
|
<result column="PK_MEMBER_STORE" property="pkMemberStore"/>
|
||||||
|
<result column="PK_STOREHOUSE" property="pkStorehouse"/>
|
||||||
|
<result column="PK_MEMBER_STORE" property="pkMemberStore"/>
|
||||||
|
<result column="PK_ORIGINAL_ORDER" property="pkOriginalOrder"/>
|
||||||
|
<result column="UPLOAD_ACHIEVE" property="uploadAchieve"/>
|
||||||
|
<result column="ORDER_TYPE_EXTEND" property="orderTypeExtend"/>
|
||||||
|
<result column="CONSUME_AMOUNT" property="consumeAmount"/>
|
||||||
|
<result column="SYSTEM_TYPE" property="systemType"/>
|
||||||
|
<result column="BOX_NUM" property="boxNum"/>
|
||||||
|
</resultMap>
|
||||||
|
|
||||||
|
<!-- 订单+详情返回映射 -->
|
||||||
|
<resultMap id="saOrderExtResultMap" type="com.hzs.common.domain.sale.ext.SaOrderExt" extends="SaOrder">
|
||||||
|
<result column="MEMBER_CODE" property="memberCode"/>
|
||||||
|
<result column="MEMBER_NAME" property="memberName"/>
|
||||||
|
<result column="CREATOR_CODE" property="creatorCode"/>
|
||||||
|
<result column="PK_SETTLE_COUNTRY" property="pkSettleCountry"/>
|
||||||
|
<result column="PK_CENTER_CODE" property="pkCenterCode"/>
|
||||||
|
<result column="PK_STORE_LEVEL" property="pkStoreLevel"/>
|
||||||
|
<result column="IN_EXCHANGE_RATE" property="inExchangeRate"/>
|
||||||
|
<result column="PK_CORP" property="pkCorp"/>
|
||||||
|
<collection property="orderItemsExtList" ofType="com.hzs.common.domain.sale.ext.SaOrderItemsExt">
|
||||||
|
<result column="ITEMS_ID" property="pkId"/>
|
||||||
|
<result column="PK_UNIT" property="pkUnit"/>
|
||||||
|
<result column="PK_PRODUCT" property="pkProduct"/>
|
||||||
|
<result column="PRODUCT_NAME" property="productName"/>
|
||||||
|
<result column="PRODUCT_CODE" property="productCode"/>
|
||||||
|
<result column="COVER" property="cover"/>
|
||||||
|
<result column="WEIGHT" property="weight"/>
|
||||||
|
<result column="SPECS_NAME" property="specsName"/>
|
||||||
|
<result column="SPECS_NAME_ID" property="specsNameId"/>
|
||||||
|
<result column="QUANTITY" property="quantity"/>
|
||||||
|
<result column="WARES_QUANTITY" property="waresQuantity"/>
|
||||||
|
<result column="PRICE" property="price"/>
|
||||||
|
<result column="ACHIEVEMENT" property="achievement"/>
|
||||||
|
<result column="ASS_ACHIEVEMENT" property="assAchievement"/>
|
||||||
|
<result column="ORDER_STATUS" property="orderStatus"/>
|
||||||
|
<result column="IS_GIFT" property="isGift"/>
|
||||||
|
<result column="PK_ORDER" property="pkOrder"/>
|
||||||
|
<result column="PK_WARES" property="pkWares"/>
|
||||||
|
<result column="PK_WARES_DETAIL" property="pkWaresDetail"/>
|
||||||
|
<result column="PK_WARES_SPECS_SKU" property="pkWaresSpecsSku"/>
|
||||||
|
<result column="PK_GRADE" property="pkGrade"/>
|
||||||
|
<result column="PK_AWARDS" property="pkAwards"/>
|
||||||
|
<result column="EXCHANGE_GOODS" property="exchangeGoods"/>
|
||||||
|
<result column="IS_MAKER_GIFT" property="isMakerGift"/>
|
||||||
|
<result column="EDIT_FLAG" property="editFlag"/>
|
||||||
|
<result column="WARES_CODE" property="waresCode"/>
|
||||||
|
<result column="MAKER_INCOME" property="makerIncome"/>
|
||||||
|
<result column="ITEM_PK_STOREHOUSE" property="pkStorehouse"/>
|
||||||
|
<result column="USE_PICK" property="usePick"/>
|
||||||
|
</collection>
|
||||||
|
<collection property="orderBonusList" ofType="com.hzs.common.domain.sale.order.SaOrderBonus">
|
||||||
|
<result column="PK_BONUS_ORDER" property="pkOrder"/>
|
||||||
|
<result column="PK_BONUS_ITEMS" property="pkBonusItems"/>
|
||||||
|
</collection>
|
||||||
|
</resultMap>
|
||||||
|
|
||||||
|
<select id="querySaOrderByTime" resultMap="saOrderExtResultMap">
|
||||||
|
select od.*, bc.in_exchange_rate
|
||||||
|
from (
|
||||||
|
select so.pk_id,
|
||||||
|
so.pk_member,
|
||||||
|
so.order_code,
|
||||||
|
so.order_type,
|
||||||
|
so.pk_rate,
|
||||||
|
so.order_amount,
|
||||||
|
so.order_achieve,
|
||||||
|
so.order_ass_achieve,
|
||||||
|
so.upload_achieve,
|
||||||
|
so.del_flag,
|
||||||
|
so.pk_reference,
|
||||||
|
so.pk_vertex,
|
||||||
|
so.pk_country,
|
||||||
|
so.pay_time,
|
||||||
|
nvl(so.order_type_extend,0) order_type_extend,
|
||||||
|
so.pk_creator,
|
||||||
|
so.consume_amount,
|
||||||
|
so.box_num,
|
||||||
|
st.pk_id items_id,
|
||||||
|
st.pk_order,
|
||||||
|
st.pk_product,
|
||||||
|
st.pk_wares,
|
||||||
|
st.price,
|
||||||
|
st.achievement,
|
||||||
|
st.quantity,
|
||||||
|
st.pk_grade,
|
||||||
|
st.pk_awards,
|
||||||
|
st.pk_wares_specs_sku,
|
||||||
|
st.pk_wares_detail,
|
||||||
|
st.wares_quantity,
|
||||||
|
st.is_gift,
|
||||||
|
st.specs_name,
|
||||||
|
st.ass_achievement,
|
||||||
|
st.is_maker_gift,
|
||||||
|
st.USE_PICK,
|
||||||
|
0 channel,
|
||||||
|
sb.pk_order pk_bonus_order,
|
||||||
|
bt.bonus_value pk_bonus_items,
|
||||||
|
bw.wares_code
|
||||||
|
from sa_order so
|
||||||
|
inner join sa_order_items st
|
||||||
|
on so.pk_id = st.pk_order
|
||||||
|
left join sa_order_bonus sb
|
||||||
|
on st.pk_id = sb.pk_order
|
||||||
|
left join bd_bonus_items bt
|
||||||
|
on bt.pk_id = sb.pk_bonus_items and bt.del_flag=0
|
||||||
|
left join bd_wares bw
|
||||||
|
on bw.pk_id=st.pk_wares and bw.del_flag=0
|
||||||
|
where so.order_status = 1
|
||||||
|
<if test="orderCode != null and orderCode != ''">
|
||||||
|
and so.order_code=#{orderCode}
|
||||||
|
</if>
|
||||||
|
and so.pay_time >= #{startDate}
|
||||||
|
and so.pay_time < #{endDate}
|
||||||
|
) od
|
||||||
|
left join bd_currency bc
|
||||||
|
on od.pk_rate = bc.pk_id
|
||||||
|
order by pay_time
|
||||||
|
</select>
|
||||||
|
|
||||||
|
</mapper>
|
|
@ -1,6 +1,8 @@
|
||||||
package com.hzs.member.base.provider;
|
package com.hzs.member.base.provider;
|
||||||
|
|
||||||
|
import cn.hutool.core.collection.CollectionUtil;
|
||||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||||
|
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
||||||
import com.github.pagehelper.PageHelper;
|
import com.github.pagehelper.PageHelper;
|
||||||
import com.hzs.common.core.domain.R;
|
import com.hzs.common.core.domain.R;
|
||||||
import com.hzs.common.core.enums.ELoginType;
|
import com.hzs.common.core.enums.ELoginType;
|
||||||
|
@ -13,6 +15,7 @@ import com.hzs.common.domain.member.base.CuMemberRegister;
|
||||||
import com.hzs.common.domain.member.base.CuMemberShare;
|
import com.hzs.common.domain.member.base.CuMemberShare;
|
||||||
import com.hzs.common.domain.member.ext.CuMemberAccountExt;
|
import com.hzs.common.domain.member.ext.CuMemberAccountExt;
|
||||||
import com.hzs.common.domain.member.ext.CuMemberExt;
|
import com.hzs.common.domain.member.ext.CuMemberExt;
|
||||||
|
import com.hzs.common.domain.member.region.CuMemberRegion;
|
||||||
import com.hzs.common.domain.member.swing.ext.CuMemberSwingNetExt;
|
import com.hzs.common.domain.member.swing.ext.CuMemberSwingNetExt;
|
||||||
import com.hzs.common.domain.sale.ext.SaOrderExt;
|
import com.hzs.common.domain.sale.ext.SaOrderExt;
|
||||||
import com.hzs.common.domain.sale.order.SaOrder;
|
import com.hzs.common.domain.sale.order.SaOrder;
|
||||||
|
@ -33,6 +36,8 @@ import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.transaction.annotation.Transactional;
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
|
|
||||||
import java.math.BigDecimal;
|
import java.math.BigDecimal;
|
||||||
|
import java.util.Date;
|
||||||
|
import java.util.HashMap;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
||||||
|
@ -55,6 +60,8 @@ public class MemberServiceProvider implements IMemberServiceApi {
|
||||||
private ICuMemberEmptyCodeService iCuMemberEmptyCodeService;
|
private ICuMemberEmptyCodeService iCuMemberEmptyCodeService;
|
||||||
@Autowired
|
@Autowired
|
||||||
private ICuMemberSwingNetService iCuMemberSwingNetService;
|
private ICuMemberSwingNetService iCuMemberSwingNetService;
|
||||||
|
@Autowired
|
||||||
|
private ICuMemberRegionService iCuMemberRegionService;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public R<LoginMember> getMemberInfo(String memberCode) {
|
public R<LoginMember> getMemberInfo(String memberCode) {
|
||||||
|
@ -473,4 +480,24 @@ public class MemberServiceProvider implements IMemberServiceApi {
|
||||||
return R.ok(iCuMemberService.countGradeMemberPoint(memberName, phone, pkGrade, pkCountry));
|
return R.ok(iCuMemberService.countGradeMemberPoint(memberName, phone, pkGrade, pkCountry));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public R<Map<String, Long>> memberRegionMap(Date settleDate) {
|
||||||
|
Map<String, Long> resultMap = new HashMap<>();
|
||||||
|
|
||||||
|
// 查询当前日期小于失效时间的区域
|
||||||
|
List<CuMemberRegion> memberRegionList = iCuMemberRegionService.list(Wrappers.<CuMemberRegion>lambdaQuery()
|
||||||
|
.le(CuMemberRegion::getCreationTime, settleDate)
|
||||||
|
.ge(CuMemberRegion::getEffectiveEndDate, settleDate)
|
||||||
|
.orderByDesc(CuMemberRegion::getPkId)
|
||||||
|
);
|
||||||
|
if (CollectionUtil.isNotEmpty(memberRegionList)) {
|
||||||
|
for (CuMemberRegion cuMemberRegion : memberRegionList) {
|
||||||
|
// key:省-市-区,value:会员ID
|
||||||
|
resultMap.put(cuMemberRegion.getProvince() + "-" + cuMemberRegion.getCity() + "-" + cuMemberRegion.getCounty(), cuMemberRegion.getPkMember());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return R.ok(resultMap);
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -32,15 +32,6 @@ public interface SaOrderMapper extends BaseMapper<SaOrder> {
|
||||||
**/
|
**/
|
||||||
void updateSaOrderByMember(@Param("memberList") List<Long> memberList, @Param("pkApprove") Long pkApprove, @Param("currentDateTime") Date currentDateTime);
|
void updateSaOrderByMember(@Param("memberList") List<Long> memberList, @Param("pkApprove") Long pkApprove, @Param("currentDateTime") Date currentDateTime);
|
||||||
|
|
||||||
/**
|
|
||||||
* 查询时间范围内的订单,需要查询出del_flag = 1的值
|
|
||||||
*
|
|
||||||
* @param startDate 开始时间
|
|
||||||
* @param endDate 结束时间
|
|
||||||
*/
|
|
||||||
List<SaOrderExt> querySaOrderByTime(@Param("startDate") Date startDate, @Param("endDate") Date endDate,
|
|
||||||
@Param("orderCode") String orderCode);
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 查询时间范围内的所有订单,按照订单时间排序,只能用于奖金结算
|
* 查询时间范围内的所有订单,按照订单时间排序,只能用于奖金结算
|
||||||
*
|
*
|
||||||
|
|
|
@ -1,7 +1,6 @@
|
||||||
package com.hzs.sale.order.provider;
|
package com.hzs.sale.order.provider;
|
||||||
|
|
||||||
import cn.hutool.core.bean.BeanUtil;
|
import cn.hutool.core.bean.BeanUtil;
|
||||||
import cn.hutool.core.collection.CollectionUtil;
|
|
||||||
import com.hzs.common.core.constant.CacheConstants;
|
import com.hzs.common.core.constant.CacheConstants;
|
||||||
import com.hzs.common.core.constant.msg.SaOrderMsgConstants;
|
import com.hzs.common.core.constant.msg.SaOrderMsgConstants;
|
||||||
import com.hzs.common.core.domain.R;
|
import com.hzs.common.core.domain.R;
|
||||||
|
@ -40,25 +39,11 @@ public class SaOrderServiceProvider implements ISaOrderServiceApi {
|
||||||
@Autowired
|
@Autowired
|
||||||
private ISaOrderService iSaOrderService;
|
private ISaOrderService iSaOrderService;
|
||||||
|
|
||||||
@Override
|
|
||||||
public R<List<SaOrderExt>> listSaOrderByDay(Date startDate, Date endDate, String orderCode) {
|
|
||||||
return R.ok(iSaOrderService.querySaOrderByTime(startDate, endDate, orderCode));
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public R<List<SaOrderExt>> queryRepeatSaOrderByDay(Date startDate, Date endDate) {
|
public R<List<SaOrderExt>> queryRepeatSaOrderByDay(Date startDate, Date endDate) {
|
||||||
return R.ok(iSaOrderService.queryRepeatSaOrderByDay(startDate, endDate));
|
return R.ok(iSaOrderService.queryRepeatSaOrderByDay(startDate, endDate));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
public R<SaOrderExt> querySaOrderByDay(Date startDate, Date endDate, String orderCode) {
|
|
||||||
List<SaOrderExt> saOrderList = iSaOrderService.querySaOrderByTime(startDate, endDate, orderCode);
|
|
||||||
if (CollectionUtil.isNotEmpty(saOrderList)) {
|
|
||||||
return R.ok(saOrderList.get(0));
|
|
||||||
}
|
|
||||||
return R.ok(null);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public R<BigDecimal> querySaOrderByOrderCode(Long pkMember, String orderCode) {
|
public R<BigDecimal> querySaOrderByOrderCode(Long pkMember, String orderCode) {
|
||||||
// 封装查询条件
|
// 封装查询条件
|
||||||
|
|
|
@ -307,14 +307,6 @@ public interface ISaOrderService extends IService<SaOrder> {
|
||||||
*/
|
*/
|
||||||
boolean validateLeftExistMember(Long pkPlaceParent, Integer pkCountry);
|
boolean validateLeftExistMember(Long pkPlaceParent, Integer pkCountry);
|
||||||
|
|
||||||
/**
|
|
||||||
* 查询时间范围内的订单,需要查询出del_flag = 1的值
|
|
||||||
*
|
|
||||||
* @param startDate 开始时间
|
|
||||||
* @param endDate 结束时间
|
|
||||||
*/
|
|
||||||
List<SaOrderExt> querySaOrderByTime(Date startDate, Date endDate, String orderCode);
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 查询时间范围内的所有订单,按照订单时间排序,只能用于奖金结算
|
* 查询时间范围内的所有订单,按照订单时间排序,只能用于奖金结算
|
||||||
*
|
*
|
||||||
|
|
|
@ -1627,11 +1627,6 @@ public class SaOrderServiceImpl extends ServiceImpl<SaOrderMapper, SaOrder> impl
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
public List<SaOrderExt> querySaOrderByTime(Date startDate, Date endDate, String orderCode) {
|
|
||||||
return baseMapper.querySaOrderByTime(startDate, endDate, orderCode);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public List<SaOrderExt> queryRepeatSaOrderByDay(Date startDate, Date endDate) {
|
public List<SaOrderExt> queryRepeatSaOrderByDay(Date startDate, Date endDate) {
|
||||||
return baseMapper.queryRepeatSaOrderByDay(startDate, endDate);
|
return baseMapper.queryRepeatSaOrderByDay(startDate, endDate);
|
||||||
|
|
|
@ -194,70 +194,6 @@
|
||||||
</if>
|
</if>
|
||||||
</select>
|
</select>
|
||||||
|
|
||||||
<!-- 查询时间范围内的订单,需要查询出del_flag = 1的值 -->
|
|
||||||
<select id="querySaOrderByTime" resultMap="saOrderExtResultMap">
|
|
||||||
select od.*, bc.in_exchange_rate
|
|
||||||
from (
|
|
||||||
select so.pk_id,
|
|
||||||
so.pk_member,
|
|
||||||
so.order_code,
|
|
||||||
so.order_type,
|
|
||||||
so.pk_rate,
|
|
||||||
so.order_amount,
|
|
||||||
so.order_achieve,
|
|
||||||
so.order_ass_achieve,
|
|
||||||
so.upload_achieve,
|
|
||||||
so.del_flag,
|
|
||||||
so.pk_reference,
|
|
||||||
so.pk_vertex,
|
|
||||||
so.pk_country,
|
|
||||||
so.pay_time,
|
|
||||||
nvl(so.order_type_extend,0) order_type_extend,
|
|
||||||
so.pk_creator,
|
|
||||||
so.consume_amount,
|
|
||||||
so.box_num,
|
|
||||||
st.pk_id items_id,
|
|
||||||
st.pk_order,
|
|
||||||
st.pk_product,
|
|
||||||
st.pk_wares,
|
|
||||||
st.price,
|
|
||||||
st.achievement,
|
|
||||||
st.quantity,
|
|
||||||
st.pk_grade,
|
|
||||||
st.pk_awards,
|
|
||||||
st.pk_wares_specs_sku,
|
|
||||||
st.pk_wares_detail,
|
|
||||||
st.wares_quantity,
|
|
||||||
st.is_gift,
|
|
||||||
st.specs_name,
|
|
||||||
st.ass_achievement,
|
|
||||||
st.is_maker_gift,
|
|
||||||
st.USE_PICK,
|
|
||||||
0 channel,
|
|
||||||
sb.pk_order pk_bonus_order,
|
|
||||||
bt.bonus_value pk_bonus_items,
|
|
||||||
bw.wares_code
|
|
||||||
from sa_order so
|
|
||||||
inner join sa_order_items st
|
|
||||||
on so.pk_id = st.pk_order
|
|
||||||
left join sa_order_bonus sb
|
|
||||||
on st.pk_id = sb.pk_order
|
|
||||||
left join bd_bonus_items bt
|
|
||||||
on bt.pk_id = sb.pk_bonus_items and bt.del_flag=0
|
|
||||||
left join bd_wares bw
|
|
||||||
on bw.pk_id=st.pk_wares and bw.del_flag=0
|
|
||||||
where so.order_status = 1
|
|
||||||
<if test="orderCode != null and orderCode != ''">
|
|
||||||
and so.order_code=#{orderCode}
|
|
||||||
</if>
|
|
||||||
and so.pay_time >= #{startDate}
|
|
||||||
and so.pay_time < #{endDate}
|
|
||||||
) od
|
|
||||||
left join bd_currency bc
|
|
||||||
on od.pk_rate = bc.pk_id
|
|
||||||
order by pay_time
|
|
||||||
</select>
|
|
||||||
|
|
||||||
<select id="selectSum" resultType="decimal">
|
<select id="selectSum" resultType="decimal">
|
||||||
select ifnull(sum(ORDER_AMOUNT), 0)
|
select ifnull(sum(ORDER_AMOUNT), 0)
|
||||||
from SA_ORDER
|
from SA_ORDER
|
||||||
|
@ -267,10 +203,7 @@
|
||||||
|
|
||||||
<!-- 查询订单相关字段 -->
|
<!-- 查询订单相关字段 -->
|
||||||
<sql id="orderSelect">
|
<sql id="orderSelect">
|
||||||
so
|
so.*,
|
||||||
.
|
|
||||||
*
|
|
||||||
,
|
|
||||||
cm.member_code,
|
cm.member_code,
|
||||||
cm.member_name,
|
cm.member_name,
|
||||||
cm.pk_settle_country,
|
cm.pk_settle_country,
|
||||||
|
|
|
@ -1,16 +1,10 @@
|
||||||
package com.hzs.system.config.mapper;
|
package com.hzs.system.config.mapper;
|
||||||
|
|
||||||
|
|
||||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||||
import com.hzs.common.domain.system.config.BdRepoDirectPush;
|
import com.hzs.common.domain.system.config.BdRepoDirectPush;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* <p>
|
|
||||||
* 复购直推配置 Mapper 接口
|
* 复购直推配置 Mapper 接口
|
||||||
* </p>
|
|
||||||
*
|
|
||||||
* @author zhangjing
|
|
||||||
* @since 2023-06-29
|
|
||||||
*/
|
*/
|
||||||
public interface BdRepoDirectPushMapper extends BaseMapper<BdRepoDirectPush> {
|
public interface BdRepoDirectPushMapper extends BaseMapper<BdRepoDirectPush> {
|
||||||
|
|
||||||
|
|
|
@ -1,7 +1,9 @@
|
||||||
package com.hzs.system.config.provider;
|
package com.hzs.system.config.provider;
|
||||||
|
|
||||||
import cn.hutool.core.bean.BeanUtil;
|
import cn.hutool.core.bean.BeanUtil;
|
||||||
|
import cn.hutool.core.collection.CollectionUtil;
|
||||||
import com.hzs.common.core.domain.R;
|
import com.hzs.common.core.domain.R;
|
||||||
|
import com.hzs.common.core.enums.EAreaType;
|
||||||
import com.hzs.common.core.enums.ERangeType;
|
import com.hzs.common.core.enums.ERangeType;
|
||||||
import com.hzs.common.core.utils.ComputeUtil;
|
import com.hzs.common.core.utils.ComputeUtil;
|
||||||
import com.hzs.common.domain.bonus.BdBonusDeduct;
|
import com.hzs.common.domain.bonus.BdBonusDeduct;
|
||||||
|
@ -11,6 +13,7 @@ import com.hzs.common.domain.system.base.BdCurrency;
|
||||||
import com.hzs.common.domain.system.config.*;
|
import com.hzs.common.domain.system.config.*;
|
||||||
import com.hzs.common.domain.system.config.ext.BdBonusDirectLoopExt;
|
import com.hzs.common.domain.system.config.ext.BdBonusDirectLoopExt;
|
||||||
import com.hzs.common.domain.system.config.ext.BdBonusItemsExt;
|
import com.hzs.common.domain.system.config.ext.BdBonusItemsExt;
|
||||||
|
import com.hzs.system.base.service.IBdAwardsRegionConfigService;
|
||||||
import com.hzs.system.base.service.IBdCountryService;
|
import com.hzs.system.base.service.IBdCountryService;
|
||||||
import com.hzs.system.base.service.IBdCurrencyService;
|
import com.hzs.system.base.service.IBdCurrencyService;
|
||||||
import com.hzs.system.bonus.service.IBdBonusDeductService;
|
import com.hzs.system.bonus.service.IBdBonusDeductService;
|
||||||
|
@ -22,6 +25,7 @@ import com.hzs.system.sys.dto.BdCurrencyDTO;
|
||||||
import org.apache.dubbo.config.annotation.DubboService;
|
import org.apache.dubbo.config.annotation.DubboService;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
|
|
||||||
|
import java.math.BigDecimal;
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -31,53 +35,52 @@ import java.util.*;
|
||||||
public class BonusItemsServiceProvider implements IBonusItemsServiceApi {
|
public class BonusItemsServiceProvider implements IBonusItemsServiceApi {
|
||||||
|
|
||||||
@Autowired
|
@Autowired
|
||||||
private IBdBonusItemsService bonusItemsService;
|
private IBdBonusItemsService iBdBonusItemsService;
|
||||||
@Autowired
|
@Autowired
|
||||||
private IBdBonusDirectLoopService bdBonusDirectLoopService;
|
private IBdBonusDirectLoopService iBdBonusDirectLoopService;
|
||||||
@Autowired
|
@Autowired
|
||||||
private IBdBonusHiPinkService bdBonusHiPinkService;
|
private IBdBonusHiPinkService iBdBonusHiPinkService;
|
||||||
@Autowired
|
@Autowired
|
||||||
private IBdBonusDirectService bdBonusDirectService;
|
private IBdBonusDirectService iBdBonusDirectService;
|
||||||
@Autowired
|
@Autowired
|
||||||
private IBdBonusDifferenceService bdBonusDifferenceService;
|
private IBdBonusDifferenceService iBdBonusDifferenceService;
|
||||||
@Autowired
|
@Autowired
|
||||||
private IBdBonusExpandService bdBonusExpandService;
|
private IBdBonusExpandService iBdBonusExpandService;
|
||||||
@Autowired
|
@Autowired
|
||||||
private IBdGradeService gradeService;
|
private IBdBonusDeductService iBdBonusDeductService;
|
||||||
@Autowired
|
@Autowired
|
||||||
private IBdAwardsService awardsService;
|
private IBdBonusServiceService iBdBonusServiceService;
|
||||||
@Autowired
|
@Autowired
|
||||||
private IBdBonusDeductService bdBonusDeductService;
|
private IBdGradeService iBdGradeService;
|
||||||
@Autowired
|
@Autowired
|
||||||
private IBdBonusServiceService bdBonusServiceService;
|
private IBdAwardsService iBdAwardsService;
|
||||||
@Autowired
|
@Autowired
|
||||||
private IBdCurrencyService bdCurrencyService;
|
private IBdCurrencyService iBdCurrencyService;
|
||||||
@Autowired
|
@Autowired
|
||||||
private IBdCountryService bdCountryService;
|
private IBdCountryService iBdCountryService;
|
||||||
@Autowired
|
@Autowired
|
||||||
private IBdRepoDirectPushService bdRepoDirectPushService;
|
private IBdRepoDirectPushService iBdRepoDirectPushService;
|
||||||
@Autowired
|
@Autowired
|
||||||
private IBdBonusCloudService bdBonusCloudService;
|
private IBdAwardsRegionConfigService iBdAwardsRegionConfigService;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public R<List<BdBonusItemsExt>> queryBonusItems(Integer pkCountry) {
|
public R<List<BdBonusItemsExt>> queryBonusItems(Integer pkCountry) {
|
||||||
return R.ok(bonusItemsService.queryBonusItems(pkCountry));
|
return R.ok(iBdBonusItemsService.queryBonusItems(pkCountry));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public R<List<BdBonusItems>> queryExistsBonusItems(List<Integer> bonusValueList) {
|
public R<List<BdBonusItems>> queryExistsBonusItems(List<Integer> bonusValueList) {
|
||||||
return R.ok(bonusItemsService.queryBonusItemsByValue(bonusValueList));
|
return R.ok(iBdBonusItemsService.queryBonusItemsByValue(bonusValueList));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public R<BdBonusItems> queryBonusItems(Integer pkCountry, Integer pkBonusItems) {
|
public R<BdBonusItems> queryBonusItems(Integer pkCountry, Integer pkBonusItems) {
|
||||||
return R.ok(bonusItemsService.queryBonusItems(pkCountry, pkBonusItems));
|
return R.ok(iBdBonusItemsService.queryBonusItems(pkCountry, pkBonusItems));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public R<BdBonusItems> queryBonusItemsByBonusValue(Integer pkCountry, Integer bonusValue) {
|
public R<BdBonusItems> queryBonusItemsByBonusValue(Integer pkCountry, Integer bonusValue) {
|
||||||
return R.ok(bonusItemsService.queryBonusItemsByBonusValue(pkCountry, bonusValue));
|
return R.ok(iBdBonusItemsService.queryBonusItemsByBonusValue(pkCountry, bonusValue));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -86,7 +89,7 @@ public class BonusItemsServiceProvider implements IBonusItemsServiceApi {
|
||||||
// 汇率
|
// 汇率
|
||||||
bonusConfigDTO.setCurrencyDtoMap(getCurrencyDtoMap());
|
bonusConfigDTO.setCurrencyDtoMap(getCurrencyDtoMap());
|
||||||
// 收益类型
|
// 收益类型
|
||||||
List<BdCountry> allCountryList = bdCountryService.getAllCountry();
|
List<BdCountry> allCountryList = iBdCountryService.getAllCountry();
|
||||||
Set<Integer> countrySet = new HashSet<>();
|
Set<Integer> countrySet = new HashSet<>();
|
||||||
allCountryList.forEach(bdCountry -> countrySet.add(bdCountry.getPkId()));
|
allCountryList.forEach(bdCountry -> countrySet.add(bdCountry.getPkId()));
|
||||||
bonusConfigDTO.setBonusItemsExtMap(getBdBonusItemsExtMap(countrySet));
|
bonusConfigDTO.setBonusItemsExtMap(getBdBonusItemsExtMap(countrySet));
|
||||||
|
@ -114,11 +117,13 @@ public class BonusItemsServiceProvider implements IBonusItemsServiceApi {
|
||||||
bonusConfigDTO.setBonusDeductsMap(getBonusDeductConfig());
|
bonusConfigDTO.setBonusDeductsMap(getBonusDeductConfig());
|
||||||
// 报单服务费
|
// 报单服务费
|
||||||
bonusConfigDTO.setBonusServiceMap(getBonusServiceConfig());
|
bonusConfigDTO.setBonusServiceMap(getBonusServiceConfig());
|
||||||
|
// 区域收益配置
|
||||||
|
bonusConfigDTO.setRegionAreaConfigMap(getRegionAreaConfig());
|
||||||
return R.ok(bonusConfigDTO);
|
return R.ok(bonusConfigDTO);
|
||||||
}
|
}
|
||||||
|
|
||||||
private Map<String, BdCurrencyDTO> getCurrencyDtoMap() {
|
private Map<String, BdCurrencyDTO> getCurrencyDtoMap() {
|
||||||
List<BdCurrency> bdCurrencyList = bdCurrencyService.queryAllBdCurrency();
|
List<BdCurrency> bdCurrencyList = iBdCurrencyService.queryAllBdCurrency();
|
||||||
Map<String, BdCurrencyDTO> currencyDtoMap = new HashMap<>(ComputeUtil.mapInitCapacity(bdCurrencyList.size()));
|
Map<String, BdCurrencyDTO> currencyDtoMap = new HashMap<>(ComputeUtil.mapInitCapacity(bdCurrencyList.size()));
|
||||||
bdCurrencyList.forEach(bdCurrency ->
|
bdCurrencyList.forEach(bdCurrency ->
|
||||||
currencyDtoMap.put(bdCurrency.getPkCountry().toString() + bdCurrency.getPkId(),
|
currencyDtoMap.put(bdCurrency.getPkCountry().toString() + bdCurrency.getPkId(),
|
||||||
|
@ -129,7 +134,7 @@ public class BonusItemsServiceProvider implements IBonusItemsServiceApi {
|
||||||
private Map<String, BdBonusItemsExt> getBdBonusItemsExtMap(Set<Integer> countrySet) {
|
private Map<String, BdBonusItemsExt> getBdBonusItemsExtMap(Set<Integer> countrySet) {
|
||||||
Map<String, BdBonusItemsExt> bonusItemsMap = new HashMap<>(ComputeUtil.mapInitCapacity(countrySet.size() * 8));
|
Map<String, BdBonusItemsExt> bonusItemsMap = new HashMap<>(ComputeUtil.mapInitCapacity(countrySet.size() * 8));
|
||||||
countrySet.forEach(pkCountry -> {
|
countrySet.forEach(pkCountry -> {
|
||||||
List<BdBonusItemsExt> bdBonusItemsExtList = bonusItemsService.queryCalBonusItems(pkCountry);
|
List<BdBonusItemsExt> bdBonusItemsExtList = iBdBonusItemsService.queryCalBonusItems(pkCountry);
|
||||||
for (BdBonusItemsExt bdBonusItemsExt : bdBonusItemsExtList) {
|
for (BdBonusItemsExt bdBonusItemsExt : bdBonusItemsExtList) {
|
||||||
bonusItemsMap.put(pkCountry.toString() + bdBonusItemsExt.getBonusValue().toString(), bdBonusItemsExt);
|
bonusItemsMap.put(pkCountry.toString() + bdBonusItemsExt.getBonusValue().toString(), bdBonusItemsExt);
|
||||||
}
|
}
|
||||||
|
@ -141,7 +146,7 @@ public class BonusItemsServiceProvider implements IBonusItemsServiceApi {
|
||||||
* 嗨粉直推奖励
|
* 嗨粉直推奖励
|
||||||
*/
|
*/
|
||||||
private Map<Integer, List<BonusHiPinkDTO>> getBonusHiPinkMap() {
|
private Map<Integer, List<BonusHiPinkDTO>> getBonusHiPinkMap() {
|
||||||
List<BdBonusHiPink> bdBonusHiPinks = bdBonusHiPinkService.queryBonusHiPink();
|
List<BdBonusHiPink> bdBonusHiPinks = iBdBonusHiPinkService.queryBonusHiPink();
|
||||||
Map<Integer, List<BonusHiPinkDTO>> bonusHiPinkMap = new LinkedHashMap<>(ComputeUtil.mapInitCapacity(bdBonusHiPinks.size()));
|
Map<Integer, List<BonusHiPinkDTO>> bonusHiPinkMap = new LinkedHashMap<>(ComputeUtil.mapInitCapacity(bdBonusHiPinks.size()));
|
||||||
bdBonusHiPinks.forEach(bdBonusHiPink -> {
|
bdBonusHiPinks.forEach(bdBonusHiPink -> {
|
||||||
BonusHiPinkDTO bonusHiPinkDTO = BeanUtil.copyProperties(bdBonusHiPink, BonusHiPinkDTO.class);
|
BonusHiPinkDTO bonusHiPinkDTO = BeanUtil.copyProperties(bdBonusHiPink, BonusHiPinkDTO.class);
|
||||||
|
@ -160,7 +165,7 @@ public class BonusItemsServiceProvider implements IBonusItemsServiceApi {
|
||||||
* 复购直推奖励
|
* 复购直推奖励
|
||||||
*/
|
*/
|
||||||
private Map<Integer, Map<Integer, BonusRepurchasePushDTO>> getRepurchasePushMap() {
|
private Map<Integer, Map<Integer, BonusRepurchasePushDTO>> getRepurchasePushMap() {
|
||||||
List<BdRepoDirectPush> bdRepoDirectPushList = bdRepoDirectPushService.queryRepoDirectPush();
|
List<BdRepoDirectPush> bdRepoDirectPushList = iBdRepoDirectPushService.queryRepoDirectPush();
|
||||||
Map<Integer, Map<Integer, BonusRepurchasePushDTO>> repurchasePushMap = new HashMap<>(ComputeUtil.mapInitCapacity(bdRepoDirectPushList.size()));
|
Map<Integer, Map<Integer, BonusRepurchasePushDTO>> repurchasePushMap = new HashMap<>(ComputeUtil.mapInitCapacity(bdRepoDirectPushList.size()));
|
||||||
bdRepoDirectPushList.forEach(bdRepoDirectPush -> {
|
bdRepoDirectPushList.forEach(bdRepoDirectPush -> {
|
||||||
BonusRepurchasePushDTO bonusRepurchasePushDTO = BeanUtil.copyProperties(bdRepoDirectPush, BonusRepurchasePushDTO.class);
|
BonusRepurchasePushDTO bonusRepurchasePushDTO = BeanUtil.copyProperties(bdRepoDirectPush, BonusRepurchasePushDTO.class);
|
||||||
|
@ -179,7 +184,7 @@ public class BonusItemsServiceProvider implements IBonusItemsServiceApi {
|
||||||
* 获得奖金循环配置的参数
|
* 获得奖金循环配置的参数
|
||||||
*/
|
*/
|
||||||
private Map<String, BonusDirectLoopDTO> getBonusLoopConfig() {
|
private Map<String, BonusDirectLoopDTO> getBonusLoopConfig() {
|
||||||
List<BdBonusDirectLoopExt> bonusDirectLoopList = bdBonusDirectLoopService.queryBonusDirectLoop();
|
List<BdBonusDirectLoopExt> bonusDirectLoopList = iBdBonusDirectLoopService.queryBonusDirectLoop();
|
||||||
Map<String, BonusDirectLoopDTO> bonusDirectLoopDtoMap = new HashMap<>(4);
|
Map<String, BonusDirectLoopDTO> bonusDirectLoopDtoMap = new HashMap<>(4);
|
||||||
bonusDirectLoopList.forEach(bdBonusDirectLoop -> {
|
bonusDirectLoopList.forEach(bdBonusDirectLoop -> {
|
||||||
BonusDirectLoopDTO bonusDirectLoopDTO = BeanUtil.copyProperties(bdBonusDirectLoop, BonusDirectLoopDTO.class);
|
BonusDirectLoopDTO bonusDirectLoopDTO = BeanUtil.copyProperties(bdBonusDirectLoop, BonusDirectLoopDTO.class);
|
||||||
|
@ -193,7 +198,7 @@ public class BonusItemsServiceProvider implements IBonusItemsServiceApi {
|
||||||
* 获得奖金 推荐什么等级 直推奖励配置
|
* 获得奖金 推荐什么等级 直推奖励配置
|
||||||
*/
|
*/
|
||||||
private Map<String, BonusDirectDTO> getBonusDirectConfig() {
|
private Map<String, BonusDirectDTO> getBonusDirectConfig() {
|
||||||
List<BdBonusDirect> bdBonusDirectList = bdBonusDirectService.queryBonusDirect();
|
List<BdBonusDirect> bdBonusDirectList = iBdBonusDirectService.queryBonusDirect();
|
||||||
Map<String, BonusDirectDTO> directDtoHashMap = new HashMap<>(ComputeUtil.mapInitCapacity(bdBonusDirectList.size()));
|
Map<String, BonusDirectDTO> directDtoHashMap = new HashMap<>(ComputeUtil.mapInitCapacity(bdBonusDirectList.size()));
|
||||||
bdBonusDirectList.forEach(bdBonusDirect -> {
|
bdBonusDirectList.forEach(bdBonusDirect -> {
|
||||||
BonusDirectDTO bonusDirectDTO = BeanUtil.copyProperties(bdBonusDirect, BonusDirectDTO.class);
|
BonusDirectDTO bonusDirectDTO = BeanUtil.copyProperties(bdBonusDirect, BonusDirectDTO.class);
|
||||||
|
@ -206,7 +211,7 @@ public class BonusItemsServiceProvider implements IBonusItemsServiceApi {
|
||||||
* 获得奖金 推荐什么等级 直推奖励配置
|
* 获得奖金 推荐什么等级 直推奖励配置
|
||||||
*/
|
*/
|
||||||
private Map<Integer, BonusDifferenceDTO> getBonusDifferenceConfig() {
|
private Map<Integer, BonusDifferenceDTO> getBonusDifferenceConfig() {
|
||||||
List<BdBonusDifference> bdBonusDifferenceList = bdBonusDifferenceService.queryBonusDifference();
|
List<BdBonusDifference> bdBonusDifferenceList = iBdBonusDifferenceService.queryBonusDifference();
|
||||||
Map<Integer, BonusDifferenceDTO> bonusDifferenceDtoMap = new HashMap<>(ComputeUtil.mapInitCapacity(bdBonusDifferenceList.size()));
|
Map<Integer, BonusDifferenceDTO> bonusDifferenceDtoMap = new HashMap<>(ComputeUtil.mapInitCapacity(bdBonusDifferenceList.size()));
|
||||||
bdBonusDifferenceList.forEach(bonusDirectDTO -> {
|
bdBonusDifferenceList.forEach(bonusDirectDTO -> {
|
||||||
BonusDifferenceDTO bonusDifferenceDTO = BeanUtil.copyProperties(bonusDirectDTO, BonusDifferenceDTO.class);
|
BonusDifferenceDTO bonusDifferenceDTO = BeanUtil.copyProperties(bonusDirectDTO, BonusDifferenceDTO.class);
|
||||||
|
@ -219,7 +224,7 @@ public class BonusItemsServiceProvider implements IBonusItemsServiceApi {
|
||||||
* 拓展奖拓展的次数 国家作为键
|
* 拓展奖拓展的次数 国家作为键
|
||||||
*/
|
*/
|
||||||
private Map<Integer, BonusExpandDTO> getBonusExpandConfig() {
|
private Map<Integer, BonusExpandDTO> getBonusExpandConfig() {
|
||||||
List<BdBonusExpand> bdBonusExpandList = bdBonusExpandService.queryBdBonusExpand();
|
List<BdBonusExpand> bdBonusExpandList = iBdBonusExpandService.queryBdBonusExpand();
|
||||||
Map<Integer, BonusExpandDTO> bdBonusExpandMap = new HashMap<>(ComputeUtil.mapInitCapacity(bdBonusExpandList.size()));
|
Map<Integer, BonusExpandDTO> bdBonusExpandMap = new HashMap<>(ComputeUtil.mapInitCapacity(bdBonusExpandList.size()));
|
||||||
bdBonusExpandList.forEach(bdBonusExpand -> {
|
bdBonusExpandList.forEach(bdBonusExpand -> {
|
||||||
BonusExpandDTO bonusExpandDTO = BeanUtil.copyProperties(bdBonusExpand, BonusExpandDTO.class);
|
BonusExpandDTO bonusExpandDTO = BeanUtil.copyProperties(bdBonusExpand, BonusExpandDTO.class);
|
||||||
|
@ -232,7 +237,7 @@ public class BonusItemsServiceProvider implements IBonusItemsServiceApi {
|
||||||
* 获取等级对应的拓展奖对应参数
|
* 获取等级对应的拓展奖对应参数
|
||||||
*/
|
*/
|
||||||
private Map<String, BdGrade> getBonusExpandGradeConfig() {
|
private Map<String, BdGrade> getBonusExpandGradeConfig() {
|
||||||
List<BdGrade> bdGradeList = gradeService.queryBdGrade();
|
List<BdGrade> bdGradeList = iBdGradeService.queryBdGrade();
|
||||||
Map<String, BdGrade> bdGradeMap = new HashMap<>(ComputeUtil.mapInitCapacity(bdGradeList.size()));
|
Map<String, BdGrade> bdGradeMap = new HashMap<>(ComputeUtil.mapInitCapacity(bdGradeList.size()));
|
||||||
bdGradeList.forEach(bdGrade ->
|
bdGradeList.forEach(bdGrade ->
|
||||||
bdGradeMap.put(bdGrade.getPkCountry().toString() + "_" + bdGrade.getPkId(), bdGrade));
|
bdGradeMap.put(bdGrade.getPkCountry().toString() + "_" + bdGrade.getPkId(), bdGrade));
|
||||||
|
@ -243,7 +248,7 @@ public class BonusItemsServiceProvider implements IBonusItemsServiceApi {
|
||||||
* 获取奖衔对应的辅导奖对应参数
|
* 获取奖衔对应的辅导奖对应参数
|
||||||
*/
|
*/
|
||||||
private Map<String, BdAwards> getBonusCoachConfig(Map<String, BdAwards> awardsValueMap) {
|
private Map<String, BdAwards> getBonusCoachConfig(Map<String, BdAwards> awardsValueMap) {
|
||||||
List<BdAwards> bdAwardsList = awardsService.queryAwards();
|
List<BdAwards> bdAwardsList = iBdAwardsService.queryAwards();
|
||||||
Map<String, BdAwards> bdAwardsMap = new LinkedHashMap<>(ComputeUtil.mapInitCapacity(bdAwardsList.size()));
|
Map<String, BdAwards> bdAwardsMap = new LinkedHashMap<>(ComputeUtil.mapInitCapacity(bdAwardsList.size()));
|
||||||
bdAwardsList.forEach(bdAwards -> {
|
bdAwardsList.forEach(bdAwards -> {
|
||||||
bdAwardsMap.put(bdAwards.getPkCountry().toString() + ERangeType.AWARDS.getValue() + bdAwards.getPkId(), bdAwards);
|
bdAwardsMap.put(bdAwards.getPkCountry().toString() + ERangeType.AWARDS.getValue() + bdAwards.getPkId(), bdAwards);
|
||||||
|
@ -256,7 +261,7 @@ public class BonusItemsServiceProvider implements IBonusItemsServiceApi {
|
||||||
* 获取每个国家奖金项对应的扣项
|
* 获取每个国家奖金项对应的扣项
|
||||||
*/
|
*/
|
||||||
private Map<Integer, BdBonusDeduct> getBonusDeductConfig() {
|
private Map<Integer, BdBonusDeduct> getBonusDeductConfig() {
|
||||||
List<BdBonusDeduct> bdBonusDeductList = bdBonusDeductService.queryBonusDeduct();
|
List<BdBonusDeduct> bdBonusDeductList = iBdBonusDeductService.queryBonusDeduct();
|
||||||
Map<Integer, BdBonusDeduct> bdBonusDeductMap = new HashMap<>(ComputeUtil.mapInitCapacity(bdBonusDeductList.size()));
|
Map<Integer, BdBonusDeduct> bdBonusDeductMap = new HashMap<>(ComputeUtil.mapInitCapacity(bdBonusDeductList.size()));
|
||||||
bdBonusDeductList.forEach(bdBonusDeduct ->
|
bdBonusDeductList.forEach(bdBonusDeduct ->
|
||||||
bdBonusDeductMap.put(bdBonusDeduct.getPkBonusItems(), bdBonusDeduct));
|
bdBonusDeductMap.put(bdBonusDeduct.getPkBonusItems(), bdBonusDeduct));
|
||||||
|
@ -267,11 +272,32 @@ public class BonusItemsServiceProvider implements IBonusItemsServiceApi {
|
||||||
* 获取每个国家奖金项对应的扣项
|
* 获取每个国家奖金项对应的扣项
|
||||||
*/
|
*/
|
||||||
private Map<String, BdBonusService> getBonusServiceConfig() {
|
private Map<String, BdBonusService> getBonusServiceConfig() {
|
||||||
List<BdBonusService> bdBonusServiceList = bdBonusServiceService.queryBonusService();
|
List<BdBonusService> bdBonusServiceList = iBdBonusServiceService.queryBonusService();
|
||||||
Map<String, BdBonusService> bdBonusDeductMap = new HashMap<>(ComputeUtil.mapInitCapacity(bdBonusServiceList.size()));
|
Map<String, BdBonusService> bdBonusDeductMap = new HashMap<>(ComputeUtil.mapInitCapacity(bdBonusServiceList.size()));
|
||||||
bdBonusServiceList.forEach(bdBonusService ->
|
bdBonusServiceList.forEach(bdBonusService ->
|
||||||
bdBonusDeductMap.put(bdBonusService.getPkCountry().toString() + bdBonusService.getServiceType(), bdBonusService));
|
bdBonusDeductMap.put(bdBonusService.getPkCountry().toString() + bdBonusService.getServiceType(), bdBonusService));
|
||||||
return bdBonusDeductMap;
|
return bdBonusDeductMap;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获取区域收益配置
|
||||||
|
*/
|
||||||
|
private Map<Integer, BigDecimal> getRegionAreaConfig() {
|
||||||
|
Map<Integer, BigDecimal> resultMap = new HashMap<>();
|
||||||
|
|
||||||
|
List<BdAwardsRegionConfig> regionConfigList = iBdAwardsRegionConfigService.list();
|
||||||
|
if (CollectionUtil.isNotEmpty(regionConfigList)) {
|
||||||
|
for (BdAwardsRegionConfig bdAwardsRegionConfig : regionConfigList) {
|
||||||
|
resultMap.put(bdAwardsRegionConfig.getAreaType(), bdAwardsRegionConfig.getRate());
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
// 省默认15%,市默认为10%,区默认为5%
|
||||||
|
resultMap.put(EAreaType.PROVINCE.getValue(), new BigDecimal("0.15"));
|
||||||
|
resultMap.put(EAreaType.CITY.getValue(), new BigDecimal("0.10"));
|
||||||
|
resultMap.put(EAreaType.COUNTY.getValue(), new BigDecimal("0.05"));
|
||||||
|
}
|
||||||
|
|
||||||
|
return resultMap;
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,26 +1,17 @@
|
||||||
package com.hzs.system.config.service;
|
package com.hzs.system.config.service;
|
||||||
|
|
||||||
|
|
||||||
import com.baomidou.mybatisplus.extension.service.IService;
|
import com.baomidou.mybatisplus.extension.service.IService;
|
||||||
import com.hzs.common.domain.system.config.BdRepoDirectPush;
|
import com.hzs.common.domain.system.config.BdRepoDirectPush;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* <p>
|
|
||||||
* 复购直推配置 服务类
|
* 复购直推配置 服务类
|
||||||
* </p>
|
|
||||||
*
|
|
||||||
* @author zhangjing
|
|
||||||
* @since 2023-06-29
|
|
||||||
*/
|
*/
|
||||||
public interface IBdRepoDirectPushService extends IService<BdRepoDirectPush> {
|
public interface IBdRepoDirectPushService extends IService<BdRepoDirectPush> {
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* @description: 查询复购直推配置的参数
|
* 查询复购直推配置的参数
|
||||||
* @author: sui q
|
|
||||||
* @date: 2023/6/29 15:21
|
|
||||||
* @param: null null
|
|
||||||
**/
|
**/
|
||||||
List<BdRepoDirectPush> queryRepoDirectPush();
|
List<BdRepoDirectPush> queryRepoDirectPush();
|
||||||
}
|
}
|
||||||
|
|
|
@ -10,12 +10,7 @@ import org.springframework.stereotype.Service;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* <p>
|
|
||||||
* 复购直推配置 服务实现类
|
* 复购直推配置 服务实现类
|
||||||
* </p>
|
|
||||||
*
|
|
||||||
* @author zhangjing
|
|
||||||
* @since 2023-06-29
|
|
||||||
*/
|
*/
|
||||||
@Service
|
@Service
|
||||||
public class BdRepoDirectPushServiceImpl extends ServiceImpl<BdRepoDirectPushMapper, BdRepoDirectPush> implements IBdRepoDirectPushService {
|
public class BdRepoDirectPushServiceImpl extends ServiceImpl<BdRepoDirectPushMapper, BdRepoDirectPush> implements IBdRepoDirectPushService {
|
||||||
|
|
|
@ -2,29 +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.system.config.mapper.BdRepoDirectPushMapper">
|
<mapper namespace="com.hzs.system.config.mapper.BdRepoDirectPushMapper">
|
||||||
|
|
||||||
<!-- 通用查询映射结果 -->
|
|
||||||
<resultMap id="BaseResultMap" type="com.hzs.common.domain.system.config.BdRepoDirectPush">
|
|
||||||
<id column="PK_ID" property="pkId" />
|
|
||||||
<result column="DEL_FLAG" property="delFlag" />
|
|
||||||
<result column="PK_COUNTRY" property="pkCountry" />
|
|
||||||
<result column="CREATION_TIME" property="creationTime" />
|
|
||||||
<result column="MODIFIED_TIME" property="modifiedTime" />
|
|
||||||
<result column="PK_CREATOR" property="pkCreator" />
|
|
||||||
<result column="PK_MODIFIED" property="pkModified" />
|
|
||||||
<result column="ALGEBRA" property="algebra" />
|
|
||||||
<result column="CAL_TYPE" property="calType" />
|
|
||||||
<result column="PUSH_VALUE" property="pushValue" />
|
|
||||||
</resultMap>
|
|
||||||
|
|
||||||
<!-- 通用查询结果列 -->
|
|
||||||
<sql id="Base_Column_List">
|
|
||||||
DEL_FLAG,
|
|
||||||
PK_COUNTRY,
|
|
||||||
CREATION_TIME,
|
|
||||||
MODIFIED_TIME,
|
|
||||||
PK_CREATOR,
|
|
||||||
PK_MODIFIED,
|
|
||||||
PK_ID, ALGEBRA, TYPE, PUSH_VALUE
|
|
||||||
</sql>
|
|
||||||
|
|
||||||
</mapper>
|
</mapper>
|
||||||
|
|
|
@ -98,8 +98,6 @@ public class BonusMsgConstants {
|
||||||
|
|
||||||
public static String RANGE = "订单编号%s,%s为%s贡献了极差收益,计算业绩%f,前一极差等级名称%s,当前极差等级名称%s。";
|
public static String RANGE = "订单编号%s,%s为%s贡献了极差收益,计算业绩%f,前一极差等级名称%s,当前极差等级名称%s。";
|
||||||
|
|
||||||
public static String ORI_RANGE = "订单编号%s,%s为%s贡献了平级收益,计算业绩%f,等级名称%s。";
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 复购券收益 -- 订单编号%s,%s为%s贡献了复购券收益,计算业绩%f,计算比例%f,复购券收益%f。
|
* 复购券收益 -- 订单编号%s,%s为%s贡献了复购券收益,计算业绩%f,计算比例%f,复购券收益%f。
|
||||||
*/
|
*/
|
||||||
|
@ -110,7 +108,11 @@ public class BonusMsgConstants {
|
||||||
/**
|
/**
|
||||||
* 复购见点收益备注
|
* 复购见点收益备注
|
||||||
*/
|
*/
|
||||||
public static String REPURCHASE_POINT = "当前是第%d代,共#代,订单编号%s,%s为%s贡献了见点收益,计算业绩%f,计算比例%f";
|
public static String REPURCHASE_POINT = "当前是第%d代,共#代,订单编号%s,%s为%s贡献了复购见点收益,计算业绩%f,计算比例%f";
|
||||||
|
/**
|
||||||
|
* 复购区域收益备注
|
||||||
|
*/
|
||||||
|
public static String REPURCHASE_AREA = "订单编号%s,%s为%s贡献了复购区域收益,计算业绩%f,当前收益名称%s。";
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 奖金重算 -- 只能重算7天内的奖金!
|
* 奖金重算 -- 只能重算7天内的奖金!
|
||||||
|
|
|
@ -11,17 +11,17 @@ import lombok.Getter;
|
||||||
public enum EAreaType {
|
public enum EAreaType {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 1=州
|
* 1=省
|
||||||
*/
|
*/
|
||||||
PROVINCE(1, "省", 0),
|
PROVINCE(1, "省", 0),
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 2=国家
|
* 2=市
|
||||||
*/
|
*/
|
||||||
CITY(2, "市", 0),
|
CITY(2, "市", 0),
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 3=区/县
|
* 3=区
|
||||||
*/
|
*/
|
||||||
COUNTY(3, "区/县", 0),
|
COUNTY(3, "区/县", 0),
|
||||||
|
|
||||||
|
@ -48,9 +48,9 @@ public enum EAreaType {
|
||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
public static EAreaType getEnumByValue(int value) {
|
public static EAreaType getEnumByValue(int value) {
|
||||||
for (EAreaType eApproveStatus : EAreaType.values()) {
|
for (EAreaType enums : EAreaType.values()) {
|
||||||
if (eApproveStatus.getValue() == value) {
|
if (enums.getValue() == value) {
|
||||||
return eApproveStatus;
|
return enums;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return null;
|
return null;
|
||||||
|
|
|
@ -5,11 +5,7 @@ import lombok.AllArgsConstructor;
|
||||||
import lombok.Getter;
|
import lombok.Getter;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @Description: 发放状态
|
* 发放状态
|
||||||
* @Author: sui q
|
|
||||||
* @Time: 2023/2/22 15:21
|
|
||||||
* @Classname: EGrantStatus
|
|
||||||
* @PackageName: com.hzs.common.core.enums
|
|
||||||
*/
|
*/
|
||||||
@AllArgsConstructor
|
@AllArgsConstructor
|
||||||
@Getter
|
@Getter
|
||||||
|
|
|
@ -15,8 +15,6 @@ import java.util.List;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 时间工具类
|
* 时间工具类
|
||||||
*
|
|
||||||
* @author hzs
|
|
||||||
*/
|
*/
|
||||||
public class DateUtils extends org.apache.commons.lang3.time.DateUtils {
|
public class DateUtils extends org.apache.commons.lang3.time.DateUtils {
|
||||||
|
|
||||||
|
@ -159,22 +157,18 @@ public class DateUtils extends org.apache.commons.lang3.time.DateUtils {
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
* 截取字符串,转换为月
|
||||||
|
*
|
||||||
* @param date 日
|
* @param date 日
|
||||||
* @Description: 截取字符串,转换为月
|
|
||||||
* @return: String
|
|
||||||
* @Author: sui q
|
|
||||||
* @Date: 2022/11/7 15:50
|
|
||||||
*/
|
*/
|
||||||
public static String getMonth(String date) {
|
public static String getMonth(String date) {
|
||||||
return date.replace("-", "").substring(0, 6);
|
return date.replace("-", "").substring(0, 6);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
* 截取字符串,转换为年
|
||||||
|
*
|
||||||
* @param date 日
|
* @param date 日
|
||||||
* @Description: 截取字符串,转换为年
|
|
||||||
* @return: String
|
|
||||||
* @Author: sui q
|
|
||||||
* @Date: 2022/11/7 15:50
|
|
||||||
*/
|
*/
|
||||||
public static String getYear(String date) {
|
public static String getYear(String date) {
|
||||||
return date.substring(0, 4);
|
return date.substring(0, 4);
|
||||||
|
@ -821,10 +815,7 @@ public class DateUtils extends org.apache.commons.lang3.time.DateUtils {
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* @description: 获取最近的星期一
|
* 获取最近的星期一
|
||||||
* @author: sui q
|
|
||||||
* @date: 2023/7/15 14:00
|
|
||||||
* @param: null null
|
|
||||||
**/
|
**/
|
||||||
public static String getRecentlyTuesday(String date) {
|
public static String getRecentlyTuesday(String date) {
|
||||||
Date settleDate = parseStringToDate(date);
|
Date settleDate = parseStringToDate(date);
|
||||||
|
@ -840,10 +831,7 @@ public class DateUtils extends org.apache.commons.lang3.time.DateUtils {
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* @description: 获取某一天的是这一周的第几天
|
* 获取某一天的是这一周的第几天
|
||||||
* @author: sui q
|
|
||||||
* @date: 2023/7/15 14:00
|
|
||||||
* @param: null null
|
|
||||||
**/
|
**/
|
||||||
public static Integer getRecentlyDay(Date settleDate) {
|
public static Integer getRecentlyDay(Date settleDate) {
|
||||||
DayOfWeek dayOfWeek = toLocalDate(settleDate).getDayOfWeek();
|
DayOfWeek dayOfWeek = toLocalDate(settleDate).getDayOfWeek();
|
||||||
|
@ -851,10 +839,7 @@ public class DateUtils extends org.apache.commons.lang3.time.DateUtils {
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* @description: 获取最近的星期二
|
* 获取最近的星期二
|
||||||
* @author: sui q
|
|
||||||
* @date: 2023/7/15 14:00
|
|
||||||
* @param: null null
|
|
||||||
**/
|
**/
|
||||||
public static String getRecentlyTuesday(Date settleDate) {
|
public static String getRecentlyTuesday(Date settleDate) {
|
||||||
DayOfWeek dayOfWeek = toLocalDate(settleDate).getDayOfWeek();
|
DayOfWeek dayOfWeek = toLocalDate(settleDate).getDayOfWeek();
|
||||||
|
@ -868,10 +853,7 @@ public class DateUtils extends org.apache.commons.lang3.time.DateUtils {
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* @description: 获取最近的星期一
|
* 获取最近的星期一
|
||||||
* @author: sui q
|
|
||||||
* @date: 2023/7/15 14:00
|
|
||||||
* @param: null null
|
|
||||||
**/
|
**/
|
||||||
public static String getRecentlyMonday(Date settleDate) {
|
public static String getRecentlyMonday(Date settleDate) {
|
||||||
DayOfWeek dayOfWeek = toLocalDate(settleDate).getDayOfWeek();
|
DayOfWeek dayOfWeek = toLocalDate(settleDate).getDayOfWeek();
|
||||||
|
|
|
@ -194,7 +194,7 @@ public class CuMemberBonus extends BaseEntity {
|
||||||
private BigDecimal carAwardPoints;
|
private BigDecimal carAwardPoints;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 店铺收益
|
* 区域收益
|
||||||
*/
|
*/
|
||||||
@TableField("STORE_INCOME")
|
@TableField("STORE_INCOME")
|
||||||
private BigDecimal storeIncome;
|
private BigDecimal storeIncome;
|
||||||
|
|
|
@ -77,13 +77,13 @@ public class CuMemberBonusRange extends BaseEntity {
|
||||||
private BigDecimal calValue;
|
private BigDecimal calValue;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 极差等级
|
* 级差等级
|
||||||
*/
|
*/
|
||||||
@TableField("PK_RANGE")
|
@TableField("PK_RANGE")
|
||||||
private Integer pkRange;
|
private Integer pkRange;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 前一极差等级
|
* 前一级差等级
|
||||||
*/
|
*/
|
||||||
@TableField("PK_BEFORE_RANGE")
|
@TableField("PK_BEFORE_RANGE")
|
||||||
private Integer pkBeforeRange;
|
private Integer pkBeforeRange;
|
||||||
|
|
Loading…
Reference in New Issue