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 java.math.BigDecimal;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
|
@ -432,4 +433,6 @@ public interface IMemberServiceApi {
|
|||
*/
|
||||
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 {
|
||||
|
||||
/**
|
||||
* 查询时间范围内的所有订单,按照订单时间排序,只能用于奖金结算
|
||||
*
|
||||
* @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<SaOrderExt> querySaOrderByDay(Date startDate, Date endDate, String orderCode);
|
||||
|
||||
/**
|
||||
* 根据订单编号查询订单
|
||||
*
|
||||
|
|
|
@ -8,6 +8,7 @@ import com.hzs.system.sys.dto.BdCurrencyDTO;
|
|||
import lombok.Data;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.math.BigDecimal;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
|
@ -87,4 +88,9 @@ public class BonusConfigDTO implements Serializable {
|
|||
*/
|
||||
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,
|
||||
@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);
|
||||
|
||||
/**
|
||||
* 批量查询会员数据
|
||||
*
|
||||
* @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;
|
||||
}
|
||||
|
||||
|
||||
@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
|
||||
public List<CuMemberSettleExt> listMemberMonthAssess(String settleTableName, String settleTableNameMonthLast, List<Long> pkMemberList) {
|
||||
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.service.ICuMemberBonusService;
|
||||
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.DateUtils;
|
||||
import com.hzs.common.core.web.controller.BaseController;
|
||||
|
@ -32,41 +31,7 @@ import java.util.List;
|
|||
public class ApiCuMemberBonusController extends BaseController {
|
||||
|
||||
@Autowired
|
||||
private ICuMemberBonusService cuMemberBonusService;
|
||||
|
||||
// /**
|
||||
// * 查询会员某个时间段内的奖金,默认查询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);
|
||||
// }
|
||||
private ICuMemberBonusService iCuMemberBonusService;
|
||||
|
||||
/**
|
||||
* 查询会员某个时间段内的奖金,默认查询15天内,查询直推
|
||||
|
@ -74,35 +39,13 @@ public class ApiCuMemberBonusController extends BaseController {
|
|||
@PostMapping("/query-bonus-first")
|
||||
public TableDataInfo listFirstRepurchaseBonus(@RequestBody BonusParam bonusParam) {
|
||||
setBonusParam(bonusParam);
|
||||
List<CuMemberBonusExt> cuMemberBonusList = cuMemberBonusService.queryMemberBonusVoByCondition(bonusParam);
|
||||
List<CuMemberBonusExt> cuMemberBonusList = iCuMemberBonusService.queryMemberBonusVoByCondition(bonusParam);
|
||||
List<MemberBonusFirstPurchaseVO> firstPurchaseVOList = new ArrayList<>();
|
||||
cuMemberBonusList.forEach(cuMemberBonus -> {
|
||||
MemberBonusFirstPurchaseVO memberBonusFirstPurchaseVO = BeanUtil.copyProperties(cuMemberBonus, MemberBonusFirstPurchaseVO.class, "settleDate");
|
||||
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.setServiceSpend(cuMemberBonus.getServiceSpend());
|
||||
|
||||
// 拓展收益 = 首购拓展 + 复购拓展 + 复购推荐
|
||||
memberBonusFirstPurchaseVO.setExpandIncome(ComputeUtil.computeAddNum(memberBonusFirstPurchaseVO.getExpandIncome(),
|
||||
memberBonusFirstPurchaseVO.getRepurExpandIncome(), memberBonusFirstPurchaseVO.getRepurPushIncome()));
|
||||
|
@ -111,18 +54,6 @@ public class ApiCuMemberBonusController extends BaseController {
|
|||
memberBonusFirstPurchaseVO.getRepurCoachIncome()));
|
||||
// 首购实发小计 = 首购实发小计 + 复购实发小计
|
||||
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);
|
||||
});
|
||||
return getDataTable(firstPurchaseVOList);
|
||||
|
@ -139,7 +70,7 @@ public class ApiCuMemberBonusController extends BaseController {
|
|||
// bonusParam.setStartDate(DateUtils.beforeDate(1, ChronoUnit.DAYS));
|
||||
bonusParam.setStartDate(DateUtils.currentMonthFirstDate(nowDate));
|
||||
bonusParam.setEndDate(nowDate);
|
||||
List<CuMemberBonusExt> cuMemberBonusList = cuMemberBonusService.queryMemberBonusTotalByCondition(bonusParam);
|
||||
List<CuMemberBonusExt> cuMemberBonusList = iCuMemberBonusService.queryMemberBonusTotalByCondition(bonusParam);
|
||||
MemberRealIncomeVO memberRealIncomeVO = MemberRealIncomeVO.builder()
|
||||
.realIncomeTotal(BigDecimal.ZERO)
|
||||
.monthIncomeTotal(BigDecimal.ZERO)
|
||||
|
@ -164,7 +95,7 @@ public class ApiCuMemberBonusController extends BaseController {
|
|||
@PostMapping("/query-bonus-repurchase")
|
||||
public TableDataInfo listRepurchaseBonus(@RequestBody BonusParam bonusParam) {
|
||||
setBonusParam(bonusParam);
|
||||
List<CuMemberBonusExt> cuMemberBonusList = cuMemberBonusService.queryMemberBonusVoByCondition(bonusParam);
|
||||
List<CuMemberBonusExt> cuMemberBonusList = iCuMemberBonusService.queryMemberBonusVoByCondition(bonusParam);
|
||||
List<MemberBonusPurchaseVO> memberBonusPurchaseVoList = new ArrayList<>();
|
||||
cuMemberBonusList.forEach(cuMemberBonus -> {
|
||||
MemberBonusPurchaseVO memberBonusPurchaseVO = BeanUtil.copyProperties(cuMemberBonus, MemberBonusPurchaseVO.class, "settleDate");
|
||||
|
@ -178,48 +109,6 @@ public class ApiCuMemberBonusController extends BaseController {
|
|||
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) {
|
||||
if (cuMemberBonus.getEndSettleDate() == null) {
|
||||
pubMemberBonusVO.setSettleDate(DateUtils.parseDateToStr(DateUtils.YYYY_MM_DD, cuMemberBonus.getSettleDate()));
|
||||
|
@ -236,7 +125,7 @@ public class ApiCuMemberBonusController extends BaseController {
|
|||
@PostMapping("/query-bonus-cloud")
|
||||
public TableDataInfo listCloudAgentBonus(@RequestBody BonusParam bonusParam) {
|
||||
setBonusParam(bonusParam);
|
||||
List<CuMemberBonusExt> cuMemberBonusList = cuMemberBonusService.queryMemberBonusVoByCondition(bonusParam);
|
||||
List<CuMemberBonusExt> cuMemberBonusList = iCuMemberBonusService.queryMemberBonusVoByCondition(bonusParam);
|
||||
List<MemberBonusCloudAgentVO> memberBonusCloudAgentVoArrayList = new ArrayList<>();
|
||||
cuMemberBonusList.forEach(cuMemberBonus -> {
|
||||
if (ComputeUtil.compareValue(cuMemberBonus.getCloudRepurIncome())) {
|
||||
|
@ -258,7 +147,7 @@ public class ApiCuMemberBonusController extends BaseController {
|
|||
@PostMapping("/query-bonus-coupon")
|
||||
public TableDataInfo listRepurchaseCouponBonus(@RequestBody BonusParam bonusParam) {
|
||||
setBonusParam(bonusParam);
|
||||
List<CuMemberBonusExt> cuMemberBonusList = cuMemberBonusService.queryMemberBonusVoByCondition(bonusParam);
|
||||
List<CuMemberBonusExt> cuMemberBonusList = iCuMemberBonusService.queryMemberBonusVoByCondition(bonusParam);
|
||||
List<MemberBonusRepurchaseCouponVO> memberBonusRepurchaseCouponList = new ArrayList<>();
|
||||
cuMemberBonusList.forEach(cuMemberBonus -> {
|
||||
MemberBonusRepurchaseCouponVO repurchaseCouponVO = BeanUtil.copyProperties(cuMemberBonus, MemberBonusRepurchaseCouponVO.class, "settleDate");
|
||||
|
@ -271,26 +160,6 @@ public class ApiCuMemberBonusController extends BaseController {
|
|||
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) {
|
||||
bonusParam.setPkCountry(SecurityUtils.getPkCountry());
|
||||
bonusParam.setPkMember(SecurityUtils.getUserId());
|
||||
|
@ -314,36 +183,8 @@ public class ApiCuMemberBonusController extends BaseController {
|
|||
public TableDataInfo listBonusSource(@RequestBody BonusParam bonusParam) {
|
||||
setBonusParam(bonusParam);
|
||||
startPage();
|
||||
// List<MemberBonusVO> memberBonusVoList = new ArrayList<>();
|
||||
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);
|
||||
TableDataInfo tableDataInfo = iCuMemberBonusService.queryMemberBonusDetailVoByCondition(bonusParam);
|
||||
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);
|
||||
|
||||
/*
|
||||
* 查询创客空间奖金来源
|
||||
**/
|
||||
List<MemberBonusDetailVO> queryMemberMarkBonusDetailSource(BonusParam bonusParam);
|
||||
|
||||
/**
|
||||
* 后台根据查询条件查询会员奖金明细
|
||||
*
|
||||
|
|
|
@ -50,8 +50,6 @@ public abstract class BonusSettleHandle {
|
|||
@Autowired
|
||||
protected ICuMemberAssessService iCuMemberAssessService;
|
||||
|
||||
@DubboReference
|
||||
ISaOrderServiceApi iSaOrderServiceApi;
|
||||
@DubboReference
|
||||
ICurrencyServiceApi iCurrencyServiceApi;
|
||||
|
||||
|
@ -672,41 +670,24 @@ public abstract class BonusSettleHandle {
|
|||
}
|
||||
|
||||
/**
|
||||
* 获得 级差收益的备注
|
||||
* 获得 区域收益备注
|
||||
*
|
||||
* @param saOrderExt 订单编号
|
||||
* @param cuMemberBonusRange 报单服务费
|
||||
* @param sourceMemberRangeExt 提供奖金的人
|
||||
* @param targetMemberRangeExt 获得奖金的人
|
||||
* @param cuMemberBonusRange
|
||||
* @param sourceCuMemberSettleExt 提供奖金的人
|
||||
* @param targetCuMemberSettleExt 获得奖金的人
|
||||
*/
|
||||
protected void oriRangeRemark(SaOrderExt saOrderExt, CuMemberBonusRange cuMemberBonusRange, CuMemberRangeExt sourceMemberRangeExt,
|
||||
CuMemberRangeExt targetMemberRangeExt) {
|
||||
String remark = String.format(BonusMsgConstants.ORI_RANGE, saOrderExt.getOrderCode(),
|
||||
sourceMemberRangeExt.getMemberCode() + sourceMemberRangeExt.getMemberName(),
|
||||
targetMemberRangeExt.getMemberCode() + targetMemberRangeExt.getMemberName(),
|
||||
cuMemberBonusRange.getCalAchieve(), targetMemberRangeExt.getRangeAwardsValue());
|
||||
protected void areaRangeRemark(SaOrderExt saOrderExt, CuMemberBonusRange cuMemberBonusRange, CuMemberSettleExt sourceCuMemberSettleExt,
|
||||
CuMemberSettleExt targetCuMemberSettleExt, EAreaType eAreaType) {
|
||||
String remark = String.format(BonusMsgConstants.REPURCHASE_AREA, saOrderExt.getOrderCode(),
|
||||
sourceCuMemberSettleExt.getMemberCode() + sourceCuMemberSettleExt.getMemberName(),
|
||||
targetCuMemberSettleExt.getMemberCode() + targetCuMemberSettleExt.getMemberName(),
|
||||
cuMemberBonusRange.getCalAchieve(), null != eAreaType ? eAreaType.getLabel() : "");
|
||||
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 cuMemberBonusDetail 云代首购
|
||||
|
@ -1103,16 +1084,6 @@ public abstract class BonusSettleHandle {
|
|||
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));
|
||||
}
|
||||
|
||||
/**
|
||||
* 复购券 扣项,小计,总计
|
||||
*/
|
||||
|
@ -1128,6 +1099,7 @@ public abstract class BonusSettleHandle {
|
|||
* @param cuMemberDetail 奖金明细
|
||||
* @param orderAmount 订单金额
|
||||
* @param exchangeRate 入汇率
|
||||
* @param incomeRatioFlag 是否计算收益占比(true=计算,flase=不计算)
|
||||
*/
|
||||
protected BdBonusDeduct setBonusDetailDeduct(BonusConfigDTO bonusConfigDTO, Object cuMemberDetail, BigDecimal orderAmount, BigDecimal exchangeRate,
|
||||
Boolean incomeRatioFlag) {
|
||||
|
@ -1272,4 +1244,12 @@ public abstract class BonusSettleHandle {
|
|||
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.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()
|
||||
.pkOrder(saOrderExt.getPkId())
|
||||
.pkOrderItems(0L)
|
||||
.pkBonus(cuMemberBonus.getPkId())
|
||||
.pkBonusItems(getPkBonusItems(bonusConfigDTO, cuMemberSettleExt.getPkSettleCountry(), EBonusItems.REPURCHASE_RANGE_INCOME.getValue()))
|
||||
.pkBonusItems(getPkBonusItems(bonusConfigDTO, cuMemberSettleExt.getPkSettleCountry(), eBonusItems.getValue()))
|
||||
// 正常还是烧伤
|
||||
.incomeStatus(cuMemberSettleExt.getIncomeStatus())
|
||||
.calType(ECalType.VALUE.getValue())
|
||||
.calAchieve(saOrderExt.getOrderAmount())
|
||||
.calType(ECalType.RATIO.getValue())
|
||||
.calAchieve(saOrderExt.getOrderAchieve())
|
||||
.calValue(BigDecimal.ZERO)
|
||||
.incomeRatio(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,
|
||||
saOrderExt.getOrderAmount(), saOrderExt.getInExchangeRate(), true);
|
||||
if (EBonusIncomeStatus.NORMAL.getValue() == cuMemberBonusCoach.getIncomeStatus()) {
|
||||
// 累计奖金数据
|
||||
cuMemberBonus.setGlobalPoints(cuMemberBonus.getGlobalPoints().add(cuMemberBonusCoach.getPretaxIncome()));
|
||||
// 复购小计、总计
|
||||
setPurchaseTotal(bdBonusDeduct, cuMemberBonus, 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) {
|
||||
CuMemberBonusCoach cuMemberBonusCoach = CuMemberBonusCoach.builder()
|
||||
|
@ -848,4 +842,129 @@ public class BonusSettlePurchaseHandle extends BonusSettleHandle {
|
|||
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.*;
|
||||
|
||||
/**
|
||||
* @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
|
||||
public class BonusSettleRepCouponsHandle extends BonusSettleHandle {
|
||||
|
@ -34,10 +29,7 @@ public class BonusSettleRepCouponsHandle extends BonusSettleHandle {
|
|||
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) {
|
||||
// 查询复购券发放规则
|
||||
|
|
|
@ -16,6 +16,7 @@ import com.hzs.bonus.bonus.vo.BonusRecordDetailVO;
|
|||
import com.hzs.bonus.bonus.vo.MemberBonusDetailCalVO;
|
||||
import com.hzs.bonus.detail.service.ICuMemberAssessService;
|
||||
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.swing.service.ICuMemberSwingNetLogService;
|
||||
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.BdGrade;
|
||||
import com.hzs.member.base.IMemberServiceApi;
|
||||
import com.hzs.sale.order.ISaOrderServiceApi;
|
||||
import com.hzs.system.base.ISystemConfigServiceApi;
|
||||
import com.hzs.system.config.IAwardsServiceApi;
|
||||
import com.hzs.system.config.IBonusItemsServiceApi;
|
||||
|
@ -80,8 +80,6 @@ public class BonusSettleServiceImpl implements IBonusSettleService {
|
|||
IBonusItemsServiceApi iBonusItemsServiceApi;
|
||||
@DubboReference
|
||||
IMemberServiceApi iMemberServiceApi;
|
||||
@DubboReference
|
||||
ISaOrderServiceApi iSaOrderServiceApi;
|
||||
|
||||
@Autowired
|
||||
private ICuMemberTreeService iCuMemberTreeService;
|
||||
|
@ -133,6 +131,8 @@ public class BonusSettleServiceImpl implements IBonusSettleService {
|
|||
private BonusSettleMallHandle bonusSettleMallHandle;
|
||||
@Autowired
|
||||
private ICuMemberAssessService iCuMemberAssessService;
|
||||
@Autowired
|
||||
private IBonusOrderService iBonusOrderService;
|
||||
|
||||
// 新拓展处理时间
|
||||
private final String newExpandDate = "2025-06-01";
|
||||
|
@ -142,8 +142,12 @@ public class BonusSettleServiceImpl implements IBonusSettleService {
|
|||
public void calculateCumberBonusBySecond(String orderCode) {
|
||||
log.info("开始执行秒接,订单编号:{}", orderCode);
|
||||
Date startDate = DateUtils.currentDate();
|
||||
SaOrderExt saOrderExt = iSaOrderServiceApi.querySaOrderByDay(startDate, DateUtils.afterDate(1, ChronoUnit.DAYS, startDate), orderCode).getData();
|
||||
log.info("查询订单,订单参数:{}", JSONUtil.toJsonStr(saOrderExt));
|
||||
SaOrderExt saOrderExt = iBonusOrderService.querySaOrderByDay(startDate, DateUtils.afterDate(1, ChronoUnit.DAYS, startDate), orderCode);
|
||||
if (null == saOrderExt) {
|
||||
log.info("查询订单为空");
|
||||
return;
|
||||
}
|
||||
log.info("订单参数:{}", JSONUtil.toJsonStr(saOrderExt));
|
||||
|
||||
// 处理奖金结算秒结表,判断是否存在当天结算的秒接表,从cu_member中获取网体,从昨日结算表中获取累计、结余数据
|
||||
String settleDate = DateUtils.parseDateToStr(DateUtils.YYYY_MM_DD, saOrderExt.getPayTime());
|
||||
|
@ -398,7 +402,7 @@ public class BonusSettleServiceImpl implements IBonusSettleService {
|
|||
@Override
|
||||
public void calculateCuMemberBonus(String settleDate, List<SaOrderExt> saOrderExtList) {
|
||||
try {
|
||||
// 今天期间
|
||||
// 今天期间(settleDate - 年月日)
|
||||
Integer period = iCuMemberSettlePeriodService.getCuMemberSettlePeriodByDate(settleDate).getPkId();
|
||||
// 会员结算日表(cu_member_settle) + 期间
|
||||
String currentSettleTableName = TableNameConstants.CU_MEMBER_SETTLE + period;
|
||||
|
@ -454,7 +458,6 @@ public class BonusSettleServiceImpl implements IBonusSettleService {
|
|||
// 首购订单 (注册+升级) 直推奖、量奖、领导奖、(注册)报单服务费
|
||||
// 复购订单 (复购量奖、复购级差)
|
||||
// 其他订单 只累计业绩 仅算奖衔
|
||||
// 云代奖金 1% 待考虑
|
||||
// 首购订单
|
||||
List<SaOrderExt> firPurchaseOrderList = new ArrayList<>();
|
||||
// 复购订单
|
||||
|
@ -479,9 +482,11 @@ public class BonusSettleServiceImpl implements IBonusSettleService {
|
|||
});
|
||||
// 将删除的订单的点位变为死点
|
||||
iCuMemberTreeService.updateCuMemberTreeByCancelOrder(revokeRegSaOrderList, revokeUpdSaOrderList, settleDate, currentSettleTableName);
|
||||
//********************************* 更新当天最新的业绩*************************/
|
||||
|
||||
// 获取所有国家的奖金项 key = 国家 + 奖金项的值
|
||||
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,
|
||||
firPurchaseOrderList, repurchaseOrderList, mallOrderList, awardsMap, gradeMap, bonusConfigDTO, cuMemberBonusMap,
|
||||
recordDetailVO, cuMemberSettleExtMap, expandOrderList, newExpandFlag);
|
||||
recordDetailVO, cuMemberSettleExtMap, expandOrderList, newExpandFlag, memberRegionMap);
|
||||
// 计算复购券
|
||||
calculateRepurchaseCoupons(DateUtils.parseDate(settleDate), firPurchaseOrderList, period, bonusConfigDTO, cuMemberBonusMap,
|
||||
recordDetailVO, cuMemberSettleExtMap);
|
||||
|
@ -780,7 +785,8 @@ public class BonusSettleServiceImpl implements IBonusSettleService {
|
|||
List<SaOrderExt> firPurchaseOrderList, List<SaOrderExt> repurchaseOrderList, List<SaOrderExt> mallOrderList,
|
||||
Map<String, BdAwards> awardsMap, Map<Integer, BdGrade> gradeMap, BonusConfigDTO bonusConfigDTO,
|
||||
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, CuMemberBonus> weekMemberBonusMap = getWeekMemberBonusMap(settleDate, period);
|
||||
Map<String, String> systemConfigMap = iSystemConfigServiceApi.getBonusSystemConfig().getData();
|
||||
|
@ -805,7 +811,7 @@ public class BonusSettleServiceImpl implements IBonusSettleService {
|
|||
if (CollectionUtil.isNotEmpty(repurchaseOrderList)) {
|
||||
calculatePurchaseOrder(riskControlMap, cuMemberSettleExtMap, settleTableName, settleDate, systemConfigMap, bonusConfigDTO,
|
||||
repurchaseOrderList, period, weekMemberBonusMap, cuMemberBonusMap, bonusRecordDetailVO, awardsMap, awardsList, cuAwardsControlMap, cuBonusExpandExtMap, rangeDtoMap,
|
||||
newExpandFlag, gradeMap);
|
||||
newExpandFlag, gradeMap, memberRegionMap);
|
||||
}
|
||||
// 计算首购
|
||||
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<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, RangeDTO> rangeDtoMap, boolean newExpandFlag, Map<Integer, BdGrade> gradeMap) {
|
||||
Map<String, RangeDTO> rangeDtoMap, boolean newExpandFlag, Map<Integer, BdGrade> gradeMap, Map<String, Long> memberRegionMap) {
|
||||
//****************************复购直推*****************************
|
||||
// 查找10代血缘,验证复购考核,考核通过的给与奖金 紧缩
|
||||
// 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()));
|
||||
if (null != cuMemberBonusExpandList) {
|
||||
|
@ -1220,6 +1232,11 @@ public class BonusSettleServiceImpl implements IBonusSettleService {
|
|||
MemberBonusDetailCalVO memberBonusDetailCalVO = calculateOrderRatio(memberBonusDetailCalVoMap, cuMemberPointBonus);
|
||||
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()));
|
||||
// purchaseOrderList.forEach(saOrderExt ->
|
||||
|
@ -1307,9 +1324,8 @@ public class BonusSettleServiceImpl implements IBonusSettleService {
|
|||
.repExpandIncome(BigDecimal.ZERO)
|
||||
.repCoachIncome(BigDecimal.ZERO)
|
||||
.repRangeIncome(BigDecimal.ZERO)
|
||||
.hiFunIncome(BigDecimal.ZERO)
|
||||
.haiFunIncome(BigDecimal.ZERO)
|
||||
.globalPoints(BigDecimal.ZERO)
|
||||
.storeIncome(BigDecimal.ZERO)
|
||||
.build();
|
||||
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.vo.MemberBonusDetailSerVO;
|
||||
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.MemberBonusFieldConstants;
|
||||
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.system.config.BdBonusItems;
|
||||
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.ISystemConfigServiceApi;
|
||||
import com.hzs.system.base.dto.CurrencyDTO;
|
||||
|
@ -54,8 +54,6 @@ public class CuMemberBonusServiceImpl extends ServiceImpl<CuMemberBonusMapper, C
|
|||
@DubboReference
|
||||
ISystemConfigServiceApi iSystemConfigServiceApi;
|
||||
@DubboReference
|
||||
ISaOrderServiceApi iSaOrderServiceApi;
|
||||
@DubboReference
|
||||
ICurrencyServiceApi iCurrencyServiceApi;
|
||||
@DubboReference
|
||||
IBonusItemsServiceApi iBonusItemsServiceApi;
|
||||
|
@ -76,6 +74,8 @@ public class CuMemberBonusServiceImpl extends ServiceImpl<CuMemberBonusMapper, C
|
|||
private CuMemberBonusCoachMapper cuMemberBonusCoachMapper;
|
||||
@Autowired
|
||||
private CuMemberBonusRangeMapper cuMemberBonusRangeMapper;
|
||||
@Autowired
|
||||
private IBonusOrderService iBonusOrderService;
|
||||
|
||||
@Override
|
||||
public List<Long> batchQueryCuMemberBonusSeq(Integer rowNum) {
|
||||
|
@ -417,25 +417,6 @@ public class CuMemberBonusServiceImpl extends ServiceImpl<CuMemberBonusMapper, C
|
|||
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) {
|
||||
List<BdBonusItemsExt> bonusItemsExtList = iBonusItemsServiceApi.queryBonusItems(bonusParam.getPkCountry()).getData();
|
||||
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)));
|
||||
log.info("初始化表完成");
|
||||
// 奖金结算
|
||||
List<SaOrderExt> saOrderExtList = iSaOrderServiceApi.listSaOrderByDay(startDate, settleEndDate, "").getData();
|
||||
List<SaOrderExt> saOrderExtList = iBonusOrderService.querySaOrderByTime(startDate, settleEndDate, "");
|
||||
iBonusSettleService.calculateCuMemberBonus(settleDate, saOrderExtList);
|
||||
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 List<CuMemberBonusCoach> cuMemberBonusCoachList;
|
||||
|
||||
|
@ -53,7 +53,8 @@ public class BonusRecordDetailVO implements Serializable {
|
|||
private List<CuMemberBonusDetail> cuMemberBonusDetailList;
|
||||
|
||||
/**
|
||||
* 复购极差
|
||||
* 复购级差、区域收益
|
||||
*/
|
||||
private List<CuMemberBonusRange> cuMemberBonusRangeList;
|
||||
|
||||
}
|
||||
|
|
|
@ -86,20 +86,14 @@ public class MemberBonusDetailCalVO implements Serializable {
|
|||
*/
|
||||
private BigDecimal repRangeIncome;
|
||||
|
||||
/**
|
||||
* 嗨粉直推收益
|
||||
*/
|
||||
private BigDecimal hiFunIncome;
|
||||
|
||||
/**
|
||||
* 海粉直推收益
|
||||
*/
|
||||
private BigDecimal haiFunIncome;
|
||||
|
||||
/**
|
||||
* 见点收益
|
||||
*/
|
||||
private BigDecimal globalPoints;
|
||||
|
||||
/**
|
||||
* 区域收益
|
||||
*/
|
||||
private BigDecimal storeIncome;
|
||||
|
||||
}
|
||||
|
|
|
@ -16,17 +16,14 @@ import java.math.BigDecimal;
|
|||
import java.util.Date;
|
||||
|
||||
/**
|
||||
* @Description: 返回会员端查询奖金明细vo
|
||||
* @Author: sui q
|
||||
* @Time: 2022/12/20 9:56
|
||||
* @Classname: MemberBonusDetailVO
|
||||
* @PackageName: com.hzs.member.bonus.vo
|
||||
* 返回会员端查询奖金明细vo
|
||||
*/
|
||||
@Data
|
||||
@Builder
|
||||
@AllArgsConstructor
|
||||
@NoArgsConstructor
|
||||
public class MemberBonusDetailVO implements Serializable {
|
||||
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
/**
|
||||
|
|
|
@ -75,7 +75,7 @@ public class MemberBonusFirstPurchaseVO extends PubMemberBonusVO {
|
|||
private BigDecimal repurRealSubtotal;
|
||||
|
||||
/**
|
||||
* 乐学直推收益
|
||||
* 见点收益
|
||||
*/
|
||||
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;
|
||||
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Builder;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
import lombok.*;
|
||||
|
||||
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
|
||||
@Builder
|
||||
@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;
|
||||
|
||||
/**
|
||||
* @description: 会员端奖金明细查询vo
|
||||
* 会员端奖金明细查询vo
|
||||
*/
|
||||
@Data
|
||||
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>
|
||||
</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 b.pk_id pk_member,
|
||||
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;
|
||||
|
||||
import cn.hutool.core.collection.CollectionUtil;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
||||
import com.github.pagehelper.PageHelper;
|
||||
import com.hzs.common.core.domain.R;
|
||||
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.ext.CuMemberAccountExt;
|
||||
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.sale.ext.SaOrderExt;
|
||||
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 java.math.BigDecimal;
|
||||
import java.util.Date;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
|
@ -55,6 +60,8 @@ public class MemberServiceProvider implements IMemberServiceApi {
|
|||
private ICuMemberEmptyCodeService iCuMemberEmptyCodeService;
|
||||
@Autowired
|
||||
private ICuMemberSwingNetService iCuMemberSwingNetService;
|
||||
@Autowired
|
||||
private ICuMemberRegionService iCuMemberRegionService;
|
||||
|
||||
@Override
|
||||
public R<LoginMember> getMemberInfo(String memberCode) {
|
||||
|
@ -473,4 +480,24 @@ public class MemberServiceProvider implements IMemberServiceApi {
|
|||
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);
|
||||
|
||||
/**
|
||||
* 查询时间范围内的订单,需要查询出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;
|
||||
|
||||
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.msg.SaOrderMsgConstants;
|
||||
import com.hzs.common.core.domain.R;
|
||||
|
@ -40,25 +39,11 @@ public class SaOrderServiceProvider implements ISaOrderServiceApi {
|
|||
@Autowired
|
||||
private ISaOrderService iSaOrderService;
|
||||
|
||||
@Override
|
||||
public R<List<SaOrderExt>> listSaOrderByDay(Date startDate, Date endDate, String orderCode) {
|
||||
return R.ok(iSaOrderService.querySaOrderByTime(startDate, endDate, orderCode));
|
||||
}
|
||||
|
||||
@Override
|
||||
public R<List<SaOrderExt>> queryRepeatSaOrderByDay(Date startDate, Date 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
|
||||
public R<BigDecimal> querySaOrderByOrderCode(Long pkMember, String orderCode) {
|
||||
// 封装查询条件
|
||||
|
|
|
@ -307,14 +307,6 @@ public interface ISaOrderService extends IService<SaOrder> {
|
|||
*/
|
||||
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;
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<SaOrderExt> querySaOrderByTime(Date startDate, Date endDate, String orderCode) {
|
||||
return baseMapper.querySaOrderByTime(startDate, endDate, orderCode);
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<SaOrderExt> queryRepeatSaOrderByDay(Date startDate, Date endDate) {
|
||||
return baseMapper.queryRepeatSaOrderByDay(startDate, endDate);
|
||||
|
|
|
@ -194,70 +194,6 @@
|
|||
</if>
|
||||
</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 ifnull(sum(ORDER_AMOUNT), 0)
|
||||
from SA_ORDER
|
||||
|
@ -267,10 +203,7 @@
|
|||
|
||||
<!-- 查询订单相关字段 -->
|
||||
<sql id="orderSelect">
|
||||
so
|
||||
.
|
||||
*
|
||||
,
|
||||
so.*,
|
||||
cm.member_code,
|
||||
cm.member_name,
|
||||
cm.pk_settle_country,
|
||||
|
|
|
@ -1,16 +1,10 @@
|
|||
package com.hzs.system.config.mapper;
|
||||
|
||||
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import com.hzs.common.domain.system.config.BdRepoDirectPush;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 复购直推配置 Mapper 接口
|
||||
* </p>
|
||||
*
|
||||
* @author zhangjing
|
||||
* @since 2023-06-29
|
||||
*/
|
||||
public interface BdRepoDirectPushMapper extends BaseMapper<BdRepoDirectPush> {
|
||||
|
||||
|
|
|
@ -1,7 +1,9 @@
|
|||
package com.hzs.system.config.provider;
|
||||
|
||||
import cn.hutool.core.bean.BeanUtil;
|
||||
import cn.hutool.core.collection.CollectionUtil;
|
||||
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.utils.ComputeUtil;
|
||||
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.ext.BdBonusDirectLoopExt;
|
||||
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.IBdCurrencyService;
|
||||
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.springframework.beans.factory.annotation.Autowired;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.util.*;
|
||||
|
||||
/**
|
||||
|
@ -31,53 +35,52 @@ import java.util.*;
|
|||
public class BonusItemsServiceProvider implements IBonusItemsServiceApi {
|
||||
|
||||
@Autowired
|
||||
private IBdBonusItemsService bonusItemsService;
|
||||
private IBdBonusItemsService iBdBonusItemsService;
|
||||
@Autowired
|
||||
private IBdBonusDirectLoopService bdBonusDirectLoopService;
|
||||
private IBdBonusDirectLoopService iBdBonusDirectLoopService;
|
||||
@Autowired
|
||||
private IBdBonusHiPinkService bdBonusHiPinkService;
|
||||
private IBdBonusHiPinkService iBdBonusHiPinkService;
|
||||
@Autowired
|
||||
private IBdBonusDirectService bdBonusDirectService;
|
||||
private IBdBonusDirectService iBdBonusDirectService;
|
||||
@Autowired
|
||||
private IBdBonusDifferenceService bdBonusDifferenceService;
|
||||
private IBdBonusDifferenceService iBdBonusDifferenceService;
|
||||
@Autowired
|
||||
private IBdBonusExpandService bdBonusExpandService;
|
||||
private IBdBonusExpandService iBdBonusExpandService;
|
||||
@Autowired
|
||||
private IBdGradeService gradeService;
|
||||
private IBdBonusDeductService iBdBonusDeductService;
|
||||
@Autowired
|
||||
private IBdAwardsService awardsService;
|
||||
private IBdBonusServiceService iBdBonusServiceService;
|
||||
@Autowired
|
||||
private IBdBonusDeductService bdBonusDeductService;
|
||||
private IBdGradeService iBdGradeService;
|
||||
@Autowired
|
||||
private IBdBonusServiceService bdBonusServiceService;
|
||||
private IBdAwardsService iBdAwardsService;
|
||||
@Autowired
|
||||
private IBdCurrencyService bdCurrencyService;
|
||||
private IBdCurrencyService iBdCurrencyService;
|
||||
@Autowired
|
||||
private IBdCountryService bdCountryService;
|
||||
private IBdCountryService iBdCountryService;
|
||||
@Autowired
|
||||
private IBdRepoDirectPushService bdRepoDirectPushService;
|
||||
private IBdRepoDirectPushService iBdRepoDirectPushService;
|
||||
@Autowired
|
||||
private IBdBonusCloudService bdBonusCloudService;
|
||||
private IBdAwardsRegionConfigService iBdAwardsRegionConfigService;
|
||||
|
||||
@Override
|
||||
public R<List<BdBonusItemsExt>> queryBonusItems(Integer pkCountry) {
|
||||
return R.ok(bonusItemsService.queryBonusItems(pkCountry));
|
||||
return R.ok(iBdBonusItemsService.queryBonusItems(pkCountry));
|
||||
}
|
||||
|
||||
@Override
|
||||
public R<List<BdBonusItems>> queryExistsBonusItems(List<Integer> bonusValueList) {
|
||||
return R.ok(bonusItemsService.queryBonusItemsByValue(bonusValueList));
|
||||
return R.ok(iBdBonusItemsService.queryBonusItemsByValue(bonusValueList));
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public R<BdBonusItems> queryBonusItems(Integer pkCountry, Integer pkBonusItems) {
|
||||
return R.ok(bonusItemsService.queryBonusItems(pkCountry, pkBonusItems));
|
||||
return R.ok(iBdBonusItemsService.queryBonusItems(pkCountry, pkBonusItems));
|
||||
}
|
||||
|
||||
@Override
|
||||
public R<BdBonusItems> queryBonusItemsByBonusValue(Integer pkCountry, Integer bonusValue) {
|
||||
return R.ok(bonusItemsService.queryBonusItemsByBonusValue(pkCountry, bonusValue));
|
||||
return R.ok(iBdBonusItemsService.queryBonusItemsByBonusValue(pkCountry, bonusValue));
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -86,7 +89,7 @@ public class BonusItemsServiceProvider implements IBonusItemsServiceApi {
|
|||
// 汇率
|
||||
bonusConfigDTO.setCurrencyDtoMap(getCurrencyDtoMap());
|
||||
// 收益类型
|
||||
List<BdCountry> allCountryList = bdCountryService.getAllCountry();
|
||||
List<BdCountry> allCountryList = iBdCountryService.getAllCountry();
|
||||
Set<Integer> countrySet = new HashSet<>();
|
||||
allCountryList.forEach(bdCountry -> countrySet.add(bdCountry.getPkId()));
|
||||
bonusConfigDTO.setBonusItemsExtMap(getBdBonusItemsExtMap(countrySet));
|
||||
|
@ -114,11 +117,13 @@ public class BonusItemsServiceProvider implements IBonusItemsServiceApi {
|
|||
bonusConfigDTO.setBonusDeductsMap(getBonusDeductConfig());
|
||||
// 报单服务费
|
||||
bonusConfigDTO.setBonusServiceMap(getBonusServiceConfig());
|
||||
// 区域收益配置
|
||||
bonusConfigDTO.setRegionAreaConfigMap(getRegionAreaConfig());
|
||||
return R.ok(bonusConfigDTO);
|
||||
}
|
||||
|
||||
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()));
|
||||
bdCurrencyList.forEach(bdCurrency ->
|
||||
currencyDtoMap.put(bdCurrency.getPkCountry().toString() + bdCurrency.getPkId(),
|
||||
|
@ -129,7 +134,7 @@ public class BonusItemsServiceProvider implements IBonusItemsServiceApi {
|
|||
private Map<String, BdBonusItemsExt> getBdBonusItemsExtMap(Set<Integer> countrySet) {
|
||||
Map<String, BdBonusItemsExt> bonusItemsMap = new HashMap<>(ComputeUtil.mapInitCapacity(countrySet.size() * 8));
|
||||
countrySet.forEach(pkCountry -> {
|
||||
List<BdBonusItemsExt> bdBonusItemsExtList = bonusItemsService.queryCalBonusItems(pkCountry);
|
||||
List<BdBonusItemsExt> bdBonusItemsExtList = iBdBonusItemsService.queryCalBonusItems(pkCountry);
|
||||
for (BdBonusItemsExt bdBonusItemsExt : bdBonusItemsExtList) {
|
||||
bonusItemsMap.put(pkCountry.toString() + bdBonusItemsExt.getBonusValue().toString(), bdBonusItemsExt);
|
||||
}
|
||||
|
@ -141,7 +146,7 @@ public class BonusItemsServiceProvider implements IBonusItemsServiceApi {
|
|||
* 嗨粉直推奖励
|
||||
*/
|
||||
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()));
|
||||
bdBonusHiPinks.forEach(bdBonusHiPink -> {
|
||||
BonusHiPinkDTO bonusHiPinkDTO = BeanUtil.copyProperties(bdBonusHiPink, BonusHiPinkDTO.class);
|
||||
|
@ -160,7 +165,7 @@ public class BonusItemsServiceProvider implements IBonusItemsServiceApi {
|
|||
* 复购直推奖励
|
||||
*/
|
||||
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()));
|
||||
bdRepoDirectPushList.forEach(bdRepoDirectPush -> {
|
||||
BonusRepurchasePushDTO bonusRepurchasePushDTO = BeanUtil.copyProperties(bdRepoDirectPush, BonusRepurchasePushDTO.class);
|
||||
|
@ -179,7 +184,7 @@ public class BonusItemsServiceProvider implements IBonusItemsServiceApi {
|
|||
* 获得奖金循环配置的参数
|
||||
*/
|
||||
private Map<String, BonusDirectLoopDTO> getBonusLoopConfig() {
|
||||
List<BdBonusDirectLoopExt> bonusDirectLoopList = bdBonusDirectLoopService.queryBonusDirectLoop();
|
||||
List<BdBonusDirectLoopExt> bonusDirectLoopList = iBdBonusDirectLoopService.queryBonusDirectLoop();
|
||||
Map<String, BonusDirectLoopDTO> bonusDirectLoopDtoMap = new HashMap<>(4);
|
||||
bonusDirectLoopList.forEach(bdBonusDirectLoop -> {
|
||||
BonusDirectLoopDTO bonusDirectLoopDTO = BeanUtil.copyProperties(bdBonusDirectLoop, BonusDirectLoopDTO.class);
|
||||
|
@ -193,7 +198,7 @@ public class BonusItemsServiceProvider implements IBonusItemsServiceApi {
|
|||
* 获得奖金 推荐什么等级 直推奖励配置
|
||||
*/
|
||||
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()));
|
||||
bdBonusDirectList.forEach(bdBonusDirect -> {
|
||||
BonusDirectDTO bonusDirectDTO = BeanUtil.copyProperties(bdBonusDirect, BonusDirectDTO.class);
|
||||
|
@ -206,7 +211,7 @@ public class BonusItemsServiceProvider implements IBonusItemsServiceApi {
|
|||
* 获得奖金 推荐什么等级 直推奖励配置
|
||||
*/
|
||||
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()));
|
||||
bdBonusDifferenceList.forEach(bonusDirectDTO -> {
|
||||
BonusDifferenceDTO bonusDifferenceDTO = BeanUtil.copyProperties(bonusDirectDTO, BonusDifferenceDTO.class);
|
||||
|
@ -219,7 +224,7 @@ public class BonusItemsServiceProvider implements IBonusItemsServiceApi {
|
|||
* 拓展奖拓展的次数 国家作为键
|
||||
*/
|
||||
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()));
|
||||
bdBonusExpandList.forEach(bdBonusExpand -> {
|
||||
BonusExpandDTO bonusExpandDTO = BeanUtil.copyProperties(bdBonusExpand, BonusExpandDTO.class);
|
||||
|
@ -232,7 +237,7 @@ public class BonusItemsServiceProvider implements IBonusItemsServiceApi {
|
|||
* 获取等级对应的拓展奖对应参数
|
||||
*/
|
||||
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()));
|
||||
bdGradeList.forEach(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) {
|
||||
List<BdAwards> bdAwardsList = awardsService.queryAwards();
|
||||
List<BdAwards> bdAwardsList = iBdAwardsService.queryAwards();
|
||||
Map<String, BdAwards> bdAwardsMap = new LinkedHashMap<>(ComputeUtil.mapInitCapacity(bdAwardsList.size()));
|
||||
bdAwardsList.forEach(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() {
|
||||
List<BdBonusDeduct> bdBonusDeductList = bdBonusDeductService.queryBonusDeduct();
|
||||
List<BdBonusDeduct> bdBonusDeductList = iBdBonusDeductService.queryBonusDeduct();
|
||||
Map<Integer, BdBonusDeduct> bdBonusDeductMap = new HashMap<>(ComputeUtil.mapInitCapacity(bdBonusDeductList.size()));
|
||||
bdBonusDeductList.forEach(bdBonusDeduct ->
|
||||
bdBonusDeductMap.put(bdBonusDeduct.getPkBonusItems(), bdBonusDeduct));
|
||||
|
@ -267,11 +272,32 @@ public class BonusItemsServiceProvider implements IBonusItemsServiceApi {
|
|||
* 获取每个国家奖金项对应的扣项
|
||||
*/
|
||||
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()));
|
||||
bdBonusServiceList.forEach(bdBonusService ->
|
||||
bdBonusDeductMap.put(bdBonusService.getPkCountry().toString() + bdBonusService.getServiceType(), bdBonusService));
|
||||
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;
|
||||
|
||||
|
||||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
import com.hzs.common.domain.system.config.BdRepoDirectPush;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 复购直推配置 服务类
|
||||
* </p>
|
||||
*
|
||||
* @author zhangjing
|
||||
* @since 2023-06-29
|
||||
*/
|
||||
public interface IBdRepoDirectPushService extends IService<BdRepoDirectPush> {
|
||||
|
||||
/*
|
||||
* @description: 查询复购直推配置的参数
|
||||
* @author: sui q
|
||||
* @date: 2023/6/29 15:21
|
||||
* @param: null null
|
||||
* 查询复购直推配置的参数
|
||||
**/
|
||||
List<BdRepoDirectPush> queryRepoDirectPush();
|
||||
}
|
||||
|
|
|
@ -10,12 +10,7 @@ import org.springframework.stereotype.Service;
|
|||
import java.util.List;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 复购直推配置 服务实现类
|
||||
* </p>
|
||||
*
|
||||
* @author zhangjing
|
||||
* @since 2023-06-29
|
||||
*/
|
||||
@Service
|
||||
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">
|
||||
<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>
|
||||
|
|
|
@ -98,8 +98,6 @@ public class BonusMsgConstants {
|
|||
|
||||
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。
|
||||
*/
|
||||
|
@ -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天内的奖金!
|
||||
|
|
|
@ -11,17 +11,17 @@ import lombok.Getter;
|
|||
public enum EAreaType {
|
||||
|
||||
/**
|
||||
* 1=州
|
||||
* 1=省
|
||||
*/
|
||||
PROVINCE(1, "省", 0),
|
||||
|
||||
/**
|
||||
* 2=国家
|
||||
* 2=市
|
||||
*/
|
||||
CITY(2, "市", 0),
|
||||
|
||||
/**
|
||||
* 3=区/县
|
||||
* 3=区
|
||||
*/
|
||||
COUNTY(3, "区/县", 0),
|
||||
|
||||
|
@ -48,9 +48,9 @@ public enum EAreaType {
|
|||
* @return
|
||||
*/
|
||||
public static EAreaType getEnumByValue(int value) {
|
||||
for (EAreaType eApproveStatus : EAreaType.values()) {
|
||||
if (eApproveStatus.getValue() == value) {
|
||||
return eApproveStatus;
|
||||
for (EAreaType enums : EAreaType.values()) {
|
||||
if (enums.getValue() == value) {
|
||||
return enums;
|
||||
}
|
||||
}
|
||||
return null;
|
||||
|
|
|
@ -5,11 +5,7 @@ import lombok.AllArgsConstructor;
|
|||
import lombok.Getter;
|
||||
|
||||
/**
|
||||
* @Description: 发放状态
|
||||
* @Author: sui q
|
||||
* @Time: 2023/2/22 15:21
|
||||
* @Classname: EGrantStatus
|
||||
* @PackageName: com.hzs.common.core.enums
|
||||
* 发放状态
|
||||
*/
|
||||
@AllArgsConstructor
|
||||
@Getter
|
||||
|
|
|
@ -15,8 +15,6 @@ import java.util.List;
|
|||
|
||||
/**
|
||||
* 时间工具类
|
||||
*
|
||||
* @author hzs
|
||||
*/
|
||||
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 日
|
||||
* @Description: 截取字符串,转换为月
|
||||
* @return: String
|
||||
* @Author: sui q
|
||||
* @Date: 2022/11/7 15:50
|
||||
*/
|
||||
public static String getMonth(String date) {
|
||||
return date.replace("-", "").substring(0, 6);
|
||||
}
|
||||
|
||||
/**
|
||||
* 截取字符串,转换为年
|
||||
*
|
||||
* @param date 日
|
||||
* @Description: 截取字符串,转换为年
|
||||
* @return: String
|
||||
* @Author: sui q
|
||||
* @Date: 2022/11/7 15:50
|
||||
*/
|
||||
public static String getYear(String date) {
|
||||
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) {
|
||||
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) {
|
||||
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) {
|
||||
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) {
|
||||
DayOfWeek dayOfWeek = toLocalDate(settleDate).getDayOfWeek();
|
||||
|
|
|
@ -194,7 +194,7 @@ public class CuMemberBonus extends BaseEntity {
|
|||
private BigDecimal carAwardPoints;
|
||||
|
||||
/**
|
||||
* 店铺收益
|
||||
* 区域收益
|
||||
*/
|
||||
@TableField("STORE_INCOME")
|
||||
private BigDecimal storeIncome;
|
||||
|
|
|
@ -77,13 +77,13 @@ public class CuMemberBonusRange extends BaseEntity {
|
|||
private BigDecimal calValue;
|
||||
|
||||
/**
|
||||
* 极差等级
|
||||
* 级差等级
|
||||
*/
|
||||
@TableField("PK_RANGE")
|
||||
private Integer pkRange;
|
||||
|
||||
/**
|
||||
* 前一极差等级
|
||||
* 前一级差等级
|
||||
*/
|
||||
@TableField("PK_BEFORE_RANGE")
|
||||
private Integer pkBeforeRange;
|
||||
|
|
Loading…
Reference in New Issue