## 阶段奖金计算处理(未完成);
This commit is contained in:
parent
56f9170d4c
commit
f88ccb7cb8
|
@ -15,7 +15,6 @@ import com.hzs.common.core.enums.EOperationBusiness;
|
|||
import com.hzs.common.core.enums.EOperationMethod;
|
||||
import com.hzs.common.core.enums.EOperationModule;
|
||||
import com.hzs.common.core.utils.DateUtils;
|
||||
import com.hzs.common.core.utils.StringUtils;
|
||||
import com.hzs.common.core.web.controller.BaseController;
|
||||
import com.hzs.common.core.web.domain.AjaxResult;
|
||||
import com.hzs.common.core.web.page.TableDataInfo;
|
||||
|
@ -37,8 +36,6 @@ public class CuMemberSettleController extends BaseController {
|
|||
@Autowired
|
||||
private ICuMemberBonusService iCuMemberBonusService;
|
||||
@Autowired
|
||||
private IBonusSettleService iBonusSettleService;
|
||||
@Autowired
|
||||
private ICuMemberTreeService iCuMemberTreeService;
|
||||
@Autowired
|
||||
private ICuMemberSettlePeriodService iCuMemberSettlePeriodService;
|
||||
|
@ -48,8 +45,6 @@ public class CuMemberSettleController extends BaseController {
|
|||
|
||||
/**
|
||||
* 初始化奖金结算表
|
||||
*
|
||||
* @return AjaxResult
|
||||
*/
|
||||
@GetMapping("/init-table")
|
||||
public AjaxResult initTable(String settleDate) {
|
||||
|
@ -59,8 +54,6 @@ public class CuMemberSettleController extends BaseController {
|
|||
|
||||
/**
|
||||
* 初始化奖金结算表
|
||||
*
|
||||
* @return AjaxResult
|
||||
*/
|
||||
@GetMapping("/init-period")
|
||||
public AjaxResult initPeriod(String settleDate) {
|
||||
|
@ -70,8 +63,6 @@ public class CuMemberSettleController extends BaseController {
|
|||
|
||||
/**
|
||||
* 奖金计算 - 重新结算
|
||||
*
|
||||
* @return AjaxResult
|
||||
*/
|
||||
@GetMapping("/settle-bonus")
|
||||
@Log(module = EOperationModule.BONUS_SETTLE, business = EOperationBusiness.BONUS_SETTLE, method = EOperationMethod.INSERT)
|
||||
|
@ -86,8 +77,6 @@ public class CuMemberSettleController extends BaseController {
|
|||
|
||||
/**
|
||||
* 公布奖金
|
||||
*
|
||||
* @return AjaxResult
|
||||
*/
|
||||
@GetMapping("/publish-bonus")
|
||||
@Log(module = EOperationModule.BONUS_SETTLE, business = EOperationBusiness.BONUS_SETTLE, method = EOperationMethod.PUBLISH)
|
||||
|
@ -102,8 +91,6 @@ public class CuMemberSettleController extends BaseController {
|
|||
|
||||
/**
|
||||
* 不公布奖金
|
||||
*
|
||||
* @return AjaxResult
|
||||
*/
|
||||
@GetMapping("/no-publish-bonus")
|
||||
@Log(module = EOperationModule.BONUS_SETTLE, business = EOperationBusiness.BONUS_SETTLE, method = EOperationMethod.NO_PUBLISH)
|
||||
|
@ -118,8 +105,6 @@ public class CuMemberSettleController extends BaseController {
|
|||
|
||||
/**
|
||||
* 发放奖金
|
||||
*
|
||||
* @return AjaxResult
|
||||
*/
|
||||
@GetMapping("/grant-bonus")
|
||||
@Log(module = EOperationModule.BONUS_SETTLE, business = EOperationBusiness.BONUS_SETTLE, method = EOperationMethod.GRANT)
|
||||
|
@ -134,8 +119,6 @@ public class CuMemberSettleController extends BaseController {
|
|||
|
||||
/**
|
||||
* 发放奖金
|
||||
*
|
||||
* @return AjaxResult
|
||||
*/
|
||||
@GetMapping("/grant-temp-bonus")
|
||||
public AjaxResult grantTempBonus(Integer pkCountry, String settleDate) {
|
||||
|
@ -145,8 +128,6 @@ public class CuMemberSettleController extends BaseController {
|
|||
|
||||
/**
|
||||
* 发放奖金
|
||||
*
|
||||
* @return AjaxResult
|
||||
*/
|
||||
@GetMapping("/grant-bonus_all")
|
||||
public AjaxResult grantBonusAll() {
|
||||
|
@ -156,8 +137,6 @@ public class CuMemberSettleController extends BaseController {
|
|||
|
||||
/**
|
||||
* 奖金提现
|
||||
*
|
||||
* @return AjaxResult
|
||||
*/
|
||||
@GetMapping("/withdrawal-bonus")
|
||||
@Log(module = EOperationModule.BONUS_SETTLE, business = EOperationBusiness.BONUS_SETTLE, method = EOperationMethod.WITHDRAWAL)
|
||||
|
@ -170,20 +149,6 @@ public class CuMemberSettleController extends BaseController {
|
|||
return AjaxResult.success();
|
||||
}
|
||||
|
||||
/**
|
||||
* 秒接结算业绩,仅用于测试
|
||||
*
|
||||
* @return AjaxResult
|
||||
*/
|
||||
@GetMapping("/settle-second-bonus")
|
||||
public AjaxResult settleSecondBonus(String orderCode) {
|
||||
if (StringUtils.isEmpty(orderCode)) {
|
||||
return AjaxResult.error();
|
||||
}
|
||||
iBonusSettleService.calculateCuMemberRetailRangeBonusBySaOrder(orderCode);
|
||||
return AjaxResult.success();
|
||||
}
|
||||
|
||||
/*
|
||||
* 查询奖金计算期数列表
|
||||
**/
|
||||
|
|
|
@ -2,10 +2,20 @@ package com.hzs.bonus.achieve.mapper;
|
|||
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import com.hzs.common.domain.member.achieve.CuMemberRetailDetail;
|
||||
import org.apache.ibatis.annotations.Param;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 日结算阶段表 Mapper 接口
|
||||
*/
|
||||
public interface CuMemberRetailDetailMapper extends BaseMapper<CuMemberRetailDetail> {
|
||||
|
||||
/**
|
||||
* 查询明细数据(指定阶段,未完成的)
|
||||
*/
|
||||
List<CuMemberRetailDetail> listMemberRetailDetail(@Param("retailDetailTableName") String retailDetailTableName,
|
||||
@Param("tmpIdList") List<?> tmpIdList,
|
||||
@Param("stage") Integer stage);
|
||||
|
||||
}
|
||||
|
|
|
@ -1,11 +1,21 @@
|
|||
package com.hzs.bonus.achieve.service;
|
||||
|
||||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
import com.hzs.common.core.enums.EBonusStage;
|
||||
import com.hzs.common.domain.member.achieve.CuMemberRetailDetail;
|
||||
import com.hzs.common.domain.member.achieve.ext.CuMemberRetailRangeExt;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* 日结算阶段表 服务类
|
||||
*/
|
||||
public interface ICuMemberRetailDetailService extends IService<CuMemberRetailDetail> {
|
||||
|
||||
/**
|
||||
* 根据结算会员获取对应的点位数据
|
||||
*/
|
||||
void listMemberRetailDetail(String retailDetailTableName, Map<Long, CuMemberRetailRangeExt> memberRangeExtMap, EBonusStage eBonusStage);
|
||||
|
||||
}
|
||||
|
|
|
@ -3,13 +3,43 @@ package com.hzs.bonus.achieve.service.impl;
|
|||
import com.hzs.bonus.achieve.mapper.CuMemberRetailDetailMapper;
|
||||
import com.hzs.bonus.achieve.service.ICuMemberRetailDetailService;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import com.hzs.common.core.constant.MagicNumberConstants;
|
||||
import com.hzs.common.core.enums.EBonusStage;
|
||||
import com.hzs.common.domain.member.achieve.CuMemberRetailDetail;
|
||||
import com.hzs.common.domain.member.achieve.ext.CuMemberRetailRangeExt;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.util.*;
|
||||
|
||||
/**
|
||||
* 日结算阶段表 服务实现类
|
||||
*/
|
||||
@Service
|
||||
public class CuMemberRetailDetailServiceImpl extends ServiceImpl<CuMemberRetailDetailMapper, CuMemberRetailDetail> implements ICuMemberRetailDetailService {
|
||||
|
||||
@Autowired
|
||||
private CuMemberBonusSettle cuMemberBonusSettle;
|
||||
|
||||
@Override
|
||||
public void listMemberRetailDetail(String retailDetailTableName, Map<Long, CuMemberRetailRangeExt> memberRangeExtMap, EBonusStage eBonusStage) {
|
||||
List<List<?>> pkMemberList = cuMemberBonusSettle.handleCutList(memberRangeExtMap.keySet(), MagicNumberConstants.BATCH_QUERY_NUM);
|
||||
pkMemberList.forEach(tmpIdList -> {
|
||||
List<CuMemberRetailDetail> tmpList = baseMapper.listMemberRetailDetail(retailDetailTableName, tmpIdList, eBonusStage.getValue());
|
||||
if (tmpList.size() > 0) {
|
||||
// 明细数据放到对应的会员数据中
|
||||
for (CuMemberRetailDetail cuMemberRetailDetail : tmpList) {
|
||||
CuMemberRetailRangeExt cuMemberRetailRangeExt = memberRangeExtMap.get(cuMemberRetailDetail.getPkMember());
|
||||
if (EBonusStage.ONE.getValue() == eBonusStage.getValue()) {
|
||||
// 阶段一点位列表
|
||||
if (null == cuMemberRetailRangeExt.getOneDetailList()) {
|
||||
cuMemberRetailRangeExt.setOneDetailList(new ArrayList<>());
|
||||
}
|
||||
cuMemberRetailRangeExt.getOneDetailList().add(cuMemberRetailDetail);
|
||||
}
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
package com.hzs.bonus.bonus.service.impl;
|
||||
|
||||
import cn.hutool.core.collection.CollectionUtil;
|
||||
import com.hzs.bonus.achieve.service.ICuMemberRetailDetailService;
|
||||
import com.hzs.bonus.achieve.service.ICuMemberRetailRangeService;
|
||||
import com.hzs.bonus.base.service.ICuMemberService;
|
||||
import com.hzs.bonus.bonus.vo.BonusRecordDetailVO;
|
||||
|
@ -14,6 +15,7 @@ import com.hzs.common.core.enums.*;
|
|||
import com.hzs.common.core.utils.ComputeUtil;
|
||||
import com.hzs.common.core.utils.DateUtils;
|
||||
import com.hzs.common.domain.bonus.BdBonusDeduct;
|
||||
import com.hzs.common.domain.member.achieve.CuMemberRetailDetail;
|
||||
import com.hzs.common.domain.member.achieve.ext.CuMemberRetailRangeExt;
|
||||
import com.hzs.common.domain.member.bonus.*;
|
||||
import com.hzs.common.domain.member.detail.*;
|
||||
|
@ -30,6 +32,7 @@ import org.springframework.beans.factory.annotation.Autowired;
|
|||
import org.springframework.stereotype.Component;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.math.RoundingMode;
|
||||
import java.time.temporal.ChronoUnit;
|
||||
import java.util.*;
|
||||
import java.util.stream.Collectors;
|
||||
|
@ -44,6 +47,8 @@ public class BonusSettleRangeHandle extends BonusSettleHandle {
|
|||
@Autowired
|
||||
private ICuMemberRetailRangeService iCuMemberRetailRangeService;
|
||||
@Autowired
|
||||
private ICuMemberRetailDetailService iCuMemberRetailDetailService;
|
||||
@Autowired
|
||||
private ICuMemberAwardsService iCuMemberAwardsService;
|
||||
@Autowired
|
||||
private ICuMemberService iCuMemberService;
|
||||
|
@ -269,8 +274,8 @@ public class BonusSettleRangeHandle extends BonusSettleHandle {
|
|||
// 结算期间日期后一天
|
||||
Date settleEndDate = DateUtils.afterDate(1, ChronoUnit.DAYS, settleStartDate);
|
||||
|
||||
// 新零售订单
|
||||
List<SaOrderExt> orderList = iBonusOrderService.listRetailSaOrder(settleStartDate, settleEndDate, null);
|
||||
// 新零售订单(注册、复购)
|
||||
List<SaOrderExt> orderList = iBonusOrderService.listRetailSaOrder(settleStartDate, settleEndDate, null, Arrays.asList(EOrderType.RETAIL_REGISTER.getValue(), EOrderType.RETAIL_REPURCHASE.getValue()));
|
||||
|
||||
// 更新当月会员, 将昨天业绩更到到今天,更新当月会员考核结果,有消费的考核通过
|
||||
// 结算期间表
|
||||
|
@ -290,16 +295,16 @@ public class BonusSettleRangeHandle extends BonusSettleHandle {
|
|||
if (orderList.size() > 0) {
|
||||
// 按照血缘,查询该会员所有伞上会员
|
||||
List<CuMemberRetailRangeExt> memberRetailRangeExtList = iCuMemberRetailRangeService.queryCuMemberRetailRangeParent(rangeTableName, orderList);
|
||||
|
||||
// 会员结算map(key:会员ID,value:结算扩展)
|
||||
Map<Long, CuMemberRetailRangeExt> memberRangeExtMap = new HashMap<>();
|
||||
|
||||
// 会员转map
|
||||
for (CuMemberRetailRangeExt cuMemberRetailRangeExt : memberRetailRangeExtList) {
|
||||
if (!memberRangeExtMap.containsKey(cuMemberRetailRangeExt.getPkMember())) {
|
||||
memberRangeExtMap.put(cuMemberRetailRangeExt.getPkMember(), cuMemberRetailRangeExt);
|
||||
}
|
||||
}
|
||||
// 查询血缘会员明细数据(一阶段)
|
||||
iCuMemberRetailDetailService.listMemberRetailDetail(rangeDetailTableName, memberRangeExtMap, EBonusStage.ONE);
|
||||
|
||||
// 奖衔
|
||||
Map<Integer, BdAwards> retailAwardsMap = new HashMap<>();
|
||||
|
@ -321,7 +326,10 @@ public class BonusSettleRangeHandle extends BonusSettleHandle {
|
|||
// 直推收益 -- 来源订单金额,直推拿金额的10%
|
||||
this.calculateDirectIncome(cuMemberBonusPushList, memberRangeExtMap, saOrderExt,
|
||||
bonusConfigDTO, period, cuMemberBonusMap);
|
||||
|
||||
// TODO 阶段收益 -- 来源订单金额
|
||||
this.calculateStageIncome(cuMemberBonusPushList, memberRangeExtMap, saOrderExt,
|
||||
settleStartDate);
|
||||
|
||||
|
||||
// TODO 领导级差收益 -- 来源PV
|
||||
|
@ -818,32 +826,6 @@ public class BonusSettleRangeHandle extends BonusSettleHandle {
|
|||
cuMemberBonusPushList.add(cuMemberBonusPush);
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取直推、见点收益信息
|
||||
*/
|
||||
CuMemberBonusPush getCuMemberBonusPush(SaOrderExt saOrderExt, CuMemberRetailRangeExt cuMemberRetailRange, CuMemberBonus cuMemberBonus, Integer pkBonusItems) {
|
||||
CuMemberBonusPush cuMemberBonusPush = CuMemberBonusPush.builder()
|
||||
.pkBonus(cuMemberBonus.getPkId())
|
||||
.pkOrder(saOrderExt.getPkId())
|
||||
.pkBonusItems(pkBonusItems)
|
||||
.incomeStatus(cuMemberRetailRange.getIncomeStatus())
|
||||
.calType(ECalType.RATIO.getValue())
|
||||
.calAchieve(BigDecimal.ZERO)
|
||||
.calValue(BigDecimal.ZERO)
|
||||
.pretaxIncome(BigDecimal.ZERO)
|
||||
.incomeTax(BigDecimal.ZERO)
|
||||
.realIncome(BigDecimal.ZERO)
|
||||
.round(-1)
|
||||
.second(-1)
|
||||
.incomeRatio(BigDecimal.ZERO)
|
||||
.incomeDialRatio(BigDecimal.ZERO)
|
||||
.orderDialRatio(BigDecimal.ZERO)
|
||||
.build();
|
||||
cuMemberBonusPush.setPkCountry(cuMemberRetailRange.getPkSettleCountry());
|
||||
cuMemberBonusPush.setPkCreator(MagicNumberConstants.PK_ADMIN);
|
||||
return cuMemberBonusPush;
|
||||
}
|
||||
|
||||
/**
|
||||
* 计算见点收益 -- 商城专区
|
||||
*/
|
||||
|
@ -908,5 +890,98 @@ public class BonusSettleRangeHandle extends BonusSettleHandle {
|
|||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取直推、见点收益信息
|
||||
*/
|
||||
CuMemberBonusPush getCuMemberBonusPush(SaOrderExt saOrderExt, CuMemberRetailRangeExt cuMemberRetailRange, CuMemberBonus cuMemberBonus, Integer pkBonusItems) {
|
||||
CuMemberBonusPush cuMemberBonusPush = CuMemberBonusPush.builder()
|
||||
.pkBonus(cuMemberBonus.getPkId())
|
||||
.pkOrder(saOrderExt.getPkId())
|
||||
.pkBonusItems(pkBonusItems)
|
||||
.incomeStatus(cuMemberRetailRange.getIncomeStatus())
|
||||
.calType(ECalType.RATIO.getValue())
|
||||
.calAchieve(BigDecimal.ZERO)
|
||||
.calValue(BigDecimal.ZERO)
|
||||
.pretaxIncome(BigDecimal.ZERO)
|
||||
.incomeTax(BigDecimal.ZERO)
|
||||
.realIncome(BigDecimal.ZERO)
|
||||
.round(-1)
|
||||
.second(-1)
|
||||
.incomeRatio(BigDecimal.ZERO)
|
||||
.incomeDialRatio(BigDecimal.ZERO)
|
||||
.orderDialRatio(BigDecimal.ZERO)
|
||||
.build();
|
||||
cuMemberBonusPush.setPkCountry(cuMemberRetailRange.getPkSettleCountry());
|
||||
cuMemberBonusPush.setPkCreator(MagicNumberConstants.PK_ADMIN);
|
||||
return cuMemberBonusPush;
|
||||
}
|
||||
|
||||
/**
|
||||
* 计算阶段收益 -- 精品专区
|
||||
*/
|
||||
private void calculateStageIncome(List<CuMemberBonusPush> cuMemberBonusPushList, Map<Long, CuMemberRetailRangeExt> memberRangeExtMap, SaOrderExt saOrderExt,
|
||||
Date settleDate) {
|
||||
// 订单金额除50取整,为新増点位数量
|
||||
int newPointInt = saOrderExt.getOrderAmount().divide(RetailConstants.POINT_VAL, 0, RoundingMode.DOWN).intValue();
|
||||
if (newPointInt == 0) {
|
||||
// 当前精品专区订单不足生成点位
|
||||
return;
|
||||
}
|
||||
|
||||
// 订单会员
|
||||
CuMemberRetailRangeExt sourceMember = memberRangeExtMap.get(saOrderExt.getPkMember());
|
||||
// 会员一阶段子点位列表
|
||||
List<CuMemberRetailDetail> detailList = sourceMember.getOneDetailList();
|
||||
if (null == detailList) {
|
||||
detailList = new ArrayList<>();
|
||||
sourceMember.setOneDetailList(detailList);
|
||||
}
|
||||
// 当前会员子点位总数
|
||||
int pointCount = sourceMember.getPointCount();
|
||||
for (int i = 1; i <= newPointInt; i++) {
|
||||
// 订单生成的新点位
|
||||
detailList.add(CuMemberRetailDetail.builder()
|
||||
.pkMember(sourceMember.getPkMember())
|
||||
.childNode(pointCount + i)
|
||||
.pkParent(sourceMember.getPkParent())
|
||||
.stage(EBonusStage.ONE.getValue())
|
||||
.stage(EBonusStageStatus.NO.getValue())
|
||||
.pointType(EBonusStageType.NORMAL.getValue())
|
||||
.pointGift(0)
|
||||
.creationTime(settleDate)
|
||||
.build());
|
||||
}
|
||||
|
||||
// 推荐人
|
||||
Long pkParent = sourceMember.getPkParent();
|
||||
while (true) {
|
||||
CuMemberRetailRangeExt targetMember = memberRangeExtMap.get(pkParent);
|
||||
if (null == targetMember) {
|
||||
break;
|
||||
}
|
||||
|
||||
// 推荐人一阶段子点位列表
|
||||
List<CuMemberRetailDetail> parentDetailList = targetMember.getOneDetailList();
|
||||
if (CollectionUtil.isEmpty(parentDetailList)) {
|
||||
continue;
|
||||
}
|
||||
for (CuMemberRetailDetail cuMemberRetailDetail : parentDetailList) {
|
||||
if (EBonusStageStatus.NO.getValue() == cuMemberRetailDetail.getStageStatus()) {
|
||||
// 推荐人子点位未完成,则进行填充
|
||||
this.fillChildNode(cuMemberRetailDetail);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 填充子点位
|
||||
*/
|
||||
private void fillChildNode(CuMemberRetailDetail cuMemberRetailDetail) {
|
||||
cuMemberRetailDetail.getPointMember11();
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -110,7 +110,7 @@ public class BonusSettleServiceImpl implements IBonusSettleService {
|
|||
// 查询奖金参数
|
||||
BonusConfigDTO bonusConfigDTO = iBonusItemsServiceApi.queryBonusConfigDTO().getData();
|
||||
// 需要处理的订单
|
||||
List<SaOrderExt> retailOrderList = iBonusOrderService.listRetailSaOrder(DateUtils.beforeDate(6, ChronoUnit.DAYS), DateUtils.afterDate(1, ChronoUnit.DAYS), orderCode);
|
||||
List<SaOrderExt> retailOrderList = iBonusOrderService.listRetailSaOrder(DateUtils.beforeDate(6, ChronoUnit.DAYS), DateUtils.afterDate(1, ChronoUnit.DAYS), orderCode, null);
|
||||
|
||||
if (CollectionUtil.isNotEmpty(retailOrderList)) {
|
||||
// 会员奖金map
|
||||
|
|
|
@ -16,6 +16,7 @@ public interface BonusOrderMapper {
|
|||
*/
|
||||
List<SaOrderExt> listRetailSaOrder(@Param("startDate") Date startDate,
|
||||
@Param("endDate") Date endDate,
|
||||
@Param("orderCode") String orderCode);
|
||||
@Param("orderCode") String orderCode,
|
||||
@Param("orderTypeList") List<Integer> orderTypeList);
|
||||
|
||||
}
|
||||
|
|
|
@ -13,6 +13,6 @@ public interface IBonusOrderService {
|
|||
* @param startDate 开始日期
|
||||
* @param endDate 结束日期
|
||||
*/
|
||||
List<SaOrderExt> listRetailSaOrder(Date startDate, Date endDate, String orderCode);
|
||||
List<SaOrderExt> listRetailSaOrder(Date startDate, Date endDate, String orderCode, List<Integer> orderTypeList);
|
||||
|
||||
}
|
||||
|
|
|
@ -15,8 +15,8 @@ public class BonusOrderServiceImpl implements IBonusOrderService {
|
|||
private BonusOrderMapper bonusOrderMapper;
|
||||
|
||||
@Override
|
||||
public List<SaOrderExt> listRetailSaOrder(Date startDate, Date endDate, String orderCode) {
|
||||
return bonusOrderMapper.listRetailSaOrder(startDate, endDate, orderCode);
|
||||
public List<SaOrderExt> listRetailSaOrder(Date startDate, Date endDate, String orderCode, List<Integer> orderTypeList) {
|
||||
return bonusOrderMapper.listRetailSaOrder(startDate, endDate, orderCode, orderTypeList);
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -2,5 +2,17 @@
|
|||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<mapper namespace="com.hzs.bonus.achieve.mapper.CuMemberRetailDetailMapper">
|
||||
|
||||
<!-- 查询明细数据 -->
|
||||
<select id="listMemberRetailDetail" resultType="com.hzs.common.domain.member.achieve.CuMemberRetailDetail">
|
||||
select cmrd.*
|
||||
from ${retailDetailTableName} cmrd
|
||||
where cmrd.pk_member in
|
||||
<foreach collection="tmpIdList" item="items" open="(" close=")" separator=",">
|
||||
#{items}
|
||||
</foreach>
|
||||
and cmrd.stage = #{stage}
|
||||
and cmrd.stage_status = 1
|
||||
order by cmrd.pk_member, cmrd.child_node
|
||||
</select>
|
||||
|
||||
</mapper>
|
||||
|
|
|
@ -292,7 +292,6 @@
|
|||
<update id="createCuMemberRetailDetail">
|
||||
create table ${tableName}
|
||||
(
|
||||
pk_id NUMBER(20) primary key,
|
||||
pk_member NUMBER(20) not null,
|
||||
child_node NUMBER(8) not null,
|
||||
pk_parent NUMBER(20) not null,
|
||||
|
@ -335,10 +334,10 @@
|
|||
|
||||
<!-- 创建结算明细表会员索引 -->
|
||||
<update id="createCuMemberRetailDetailMemberIndex">
|
||||
create index ${tableName}_MEMBER
|
||||
create unique index PK_${tableName}
|
||||
on ${tableName}
|
||||
(
|
||||
PK_MEMBER
|
||||
PK_MEMBER, CHILD_NODE
|
||||
)
|
||||
</update>
|
||||
|
||||
|
|
|
@ -82,6 +82,12 @@
|
|||
<if test="orderCode != null and orderCode != ''">
|
||||
and so.order_code=#{orderCode}
|
||||
</if>
|
||||
<if test="orderTypeList != null and orderTypeList.size > 0">
|
||||
and so.order_type in
|
||||
<foreach collection="orderTypeList" item="items" open="(" close=")" separator=",">
|
||||
#{items}
|
||||
</foreach>
|
||||
</if>
|
||||
and so.pay_time >= #{startDate}
|
||||
and so.pay_time < #{endDate}
|
||||
order by pay_time desc
|
||||
|
|
|
@ -129,11 +129,8 @@
|
|||
)
|
||||
</update>
|
||||
<update id="createCuMemberTableUniqueIndex">
|
||||
create
|
||||
unique index
|
||||
${tableName}
|
||||
_
|
||||
PK_M
|
||||
create unique index
|
||||
${tableName}_PK_M
|
||||
on
|
||||
${tableName}
|
||||
(
|
||||
|
|
|
@ -47,16 +47,6 @@ public class MagicNumberConstants {
|
|||
*/
|
||||
public static final Long PK_ADMIN = 100000000L;
|
||||
|
||||
/**
|
||||
* 开始血缘代
|
||||
*/
|
||||
public static final Integer BLOOD_GENERATION_START = 1;
|
||||
|
||||
/**
|
||||
* 结束血缘代
|
||||
*/
|
||||
public static final Integer BLOOD_GENERATION_END = 10;
|
||||
|
||||
/**
|
||||
* 老会员编号位数
|
||||
*/
|
||||
|
|
|
@ -7,6 +7,13 @@ import java.math.BigDecimal;
|
|||
*/
|
||||
public class RetailConstants {
|
||||
|
||||
/**
|
||||
* 精品专区50金额为一个子点位,商城专区50PV为一个子点位
|
||||
* 精品专区计算点位:金额 / 50,余不做处理
|
||||
* 商城专区计算点位:累计业绩 / 50, 剩下的继续累计
|
||||
*/
|
||||
public static final BigDecimal POINT_VAL = new BigDecimal("50");
|
||||
|
||||
/**
|
||||
* 精品专区直推收益订单金额 10%,商城专区见点收益20代订单PV 10%
|
||||
*/
|
||||
|
|
|
@ -0,0 +1,37 @@
|
|||
package com.hzs.common.core.enums;
|
||||
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Getter;
|
||||
|
||||
/**
|
||||
* 阶段奖项枚举
|
||||
*/
|
||||
@AllArgsConstructor
|
||||
@Getter
|
||||
public enum EBonusStage {
|
||||
|
||||
/**
|
||||
* 一阶段
|
||||
*/
|
||||
ONE(1, "一阶段"),
|
||||
/**
|
||||
* 二阶段
|
||||
*/
|
||||
TWO(2, "二阶段"),
|
||||
/**
|
||||
* 三阶段
|
||||
*/
|
||||
THREE(3, "三阶段"),
|
||||
|
||||
;
|
||||
|
||||
/**
|
||||
* 实际值
|
||||
*/
|
||||
private final int value;
|
||||
/**
|
||||
* 显示标签
|
||||
*/
|
||||
private final String label;
|
||||
|
||||
}
|
|
@ -0,0 +1,33 @@
|
|||
package com.hzs.common.core.enums;
|
||||
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Getter;
|
||||
|
||||
/**
|
||||
* 阶段状态枚举
|
||||
*/
|
||||
@AllArgsConstructor
|
||||
@Getter
|
||||
public enum EBonusStageStatus {
|
||||
|
||||
/**
|
||||
* 已完成
|
||||
*/
|
||||
YES(0, "已完成"),
|
||||
/**
|
||||
* 未完成
|
||||
*/
|
||||
NO(1, "未完成"),
|
||||
|
||||
;
|
||||
|
||||
/**
|
||||
* 实际值
|
||||
*/
|
||||
private final int value;
|
||||
/**
|
||||
* 显示标签
|
||||
*/
|
||||
private final String label;
|
||||
|
||||
}
|
|
@ -0,0 +1,33 @@
|
|||
package com.hzs.common.core.enums;
|
||||
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Getter;
|
||||
|
||||
/**
|
||||
* 阶段点位类型枚举
|
||||
*/
|
||||
@AllArgsConstructor
|
||||
@Getter
|
||||
public enum EBonusStageType {
|
||||
|
||||
/**
|
||||
* 普通点位
|
||||
*/
|
||||
NORMAL(0, "普通点位"),
|
||||
/**
|
||||
* 赠送点位
|
||||
*/
|
||||
GIFT(1, "赠送点位"),
|
||||
|
||||
;
|
||||
|
||||
/**
|
||||
* 实际值
|
||||
*/
|
||||
private final int value;
|
||||
/**
|
||||
* 显示标签
|
||||
*/
|
||||
private final String label;
|
||||
|
||||
}
|
|
@ -6,8 +6,6 @@ import lombok.Getter;
|
|||
|
||||
/**
|
||||
* 删除标记枚举类
|
||||
*
|
||||
* @author hzs
|
||||
*/
|
||||
@AllArgsConstructor
|
||||
@Getter
|
||||
|
|
|
@ -10,24 +10,22 @@ import com.baomidou.mybatisplus.annotation.TableField;
|
|||
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||
import com.hzs.common.core.annotation.Excel;
|
||||
import com.hzs.common.core.web.domain.BaseEntity;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
import lombok.*;
|
||||
import lombok.experimental.Accessors;
|
||||
|
||||
/**
|
||||
* 日结算阶段表
|
||||
*/
|
||||
@Builder
|
||||
@AllArgsConstructor
|
||||
@NoArgsConstructor
|
||||
@Data
|
||||
@Accessors(chain = true)
|
||||
@KeySequence("CU_MEMBER_RETAIL_DETAIL_SEQ")
|
||||
@TableName("CU_MEMBER_RETAIL_DETAIL")
|
||||
public class CuMemberRetailDetail {
|
||||
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
@TableId("PK_ID")
|
||||
private Long pkId;
|
||||
|
||||
/**
|
||||
* 会员ID
|
||||
*/
|
||||
|
|
|
@ -189,4 +189,10 @@ public class CuMemberRetailRange extends BaseEntity {
|
|||
@TableField("small_team_pv")
|
||||
private BigDecimal smallTeamPv;
|
||||
|
||||
/**
|
||||
* 子点位总数
|
||||
*/
|
||||
@TableField("point_count")
|
||||
private Integer pointCount;
|
||||
|
||||
}
|
||||
|
|
|
@ -1,10 +1,12 @@
|
|||
package com.hzs.common.domain.member.achieve.ext;
|
||||
|
||||
import com.hzs.common.domain.member.achieve.CuMemberRetailDetail;
|
||||
import com.hzs.common.domain.member.achieve.CuMemberRetailRange;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 新零售极差实体
|
||||
|
@ -134,4 +136,9 @@ public class CuMemberRetailRangeExt extends CuMemberRetailRange {
|
|||
private BigDecimal repTeamNewPv;
|
||||
// 秒结 end
|
||||
|
||||
/**
|
||||
* 阶段一点位列表
|
||||
*/
|
||||
private List<CuMemberRetailDetail> oneDetailList;
|
||||
|
||||
}
|
||||
|
|
|
@ -50,7 +50,7 @@ public class CuMemberBonus extends BaseEntity {
|
|||
private Integer pkRate;
|
||||
|
||||
/**
|
||||
* 注册直推收益
|
||||
* 注册直推收益-康健
|
||||
*/
|
||||
@TableField("DIRECT_INCOME")
|
||||
private BigDecimal directIncome;
|
||||
|
@ -176,7 +176,7 @@ public class CuMemberBonus extends BaseEntity {
|
|||
private BigDecimal repurCouponSubtotal;
|
||||
|
||||
/**
|
||||
* 复购见点收益
|
||||
* 复购见点收益-康健
|
||||
*/
|
||||
@TableField("GLOBAL_POINTS")
|
||||
private BigDecimal globalPoints;
|
||||
|
@ -188,7 +188,7 @@ public class CuMemberBonus extends BaseEntity {
|
|||
private BigDecimal carAwardPoints;
|
||||
|
||||
/**
|
||||
* 店铺收益
|
||||
* 注册阶段收益-康健
|
||||
*/
|
||||
@TableField("STORE_INCOME")
|
||||
private BigDecimal storeIncome;
|
||||
|
|
Loading…
Reference in New Issue