## 秒结、日结处理会员激活状态;

This commit is contained in:
cabbage 2025-06-12 17:03:38 +08:00
parent f4c6516e10
commit 97b828b4b9
4 changed files with 53 additions and 91 deletions

View File

@ -26,64 +26,19 @@ import java.util.Collections;
import java.util.Date;
import java.util.List;
/**
* @Description:
* @Author: sui q
* @Time: 2023/1/13 9:39
* @Classname: ApiCuMemberBonusController
* @PackageName: com.hzs.member.bonus.controller.api
*/
@RestController
@RequestMapping("/api/bonus")
@Slf4j
public class ApiCuMemberBonusController extends BaseController {
private ICuMemberBonusService cuMemberBonusService;
@Autowired
public void setCuMemberBonusService(ICuMemberBonusService cuMemberBonusService) {
this.cuMemberBonusService = 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 cuMemberBonusService;
/**
* 查询会员某个时间段内的奖金默认查询15天内,查询直推
*/
@PostMapping("/query-bonus-first")
public TableDataInfo listFirstRepurchaseBonus(@RequestBody BonusParam bonusParam){
public TableDataInfo listFirstRepurchaseBonus(@RequestBody BonusParam bonusParam) {
setBonusParam(bonusParam);
List<CuMemberBonusExt> cuMemberBonusList = cuMemberBonusService.queryMemberBonusVoByCondition(bonusParam);
List<MemberBonusFirstPurchaseVO> firstPurchaseVOList = new ArrayList<>();
@ -122,16 +77,17 @@ public class ApiCuMemberBonusController extends BaseController {
* 查询会员实时奖金当日的奖金
*/
@PostMapping("/query-current-bonus")
public TableDataInfo listCurrentBonus(@RequestBody BonusParam bonusParam){
public TableDataInfo listCurrentBonus(@RequestBody BonusParam bonusParam) {
bonusParam.setPkCountry(SecurityUtils.getPkCountry());
bonusParam.setPkMember(SecurityUtils.getUserId());
bonusParam.setStartDate(DateUtils.currentDate());
bonusParam.setEndDate(DateUtils.afterDate(1, ChronoUnit.DAYS, DateUtils.currentDate()));
bonusParam.setGrantStatus(EGrantStatus.SETTLED.getValue());
List<CuMemberBonusExt> cuMemberBonusList = cuMemberBonusService.queryMemberSecondBonusVoByCondition(bonusParam);
List<MemberBonusVO> memberBonusVOList = new ArrayList<>();
cuMemberBonusList.forEach(cuMemberBonus -> {
if(ComputeUtil.compareValue(cuMemberBonus.getRealIncomeTotal())) {
if (ComputeUtil.compareValue(cuMemberBonus.getRealIncomeTotal())) {
MemberBonusVO memberBonusVO = BeanUtil.copyProperties(cuMemberBonus, MemberBonusVO.class, "settleDate");
memberBonusVO.setServiceSpend(BigDecimal.ZERO);
memberBonusVO.setSettleDate(DateUtils.currentDate());
@ -149,7 +105,7 @@ public class ApiCuMemberBonusController extends BaseController {
* 查询会员昨天奖金的值
*/
@PostMapping("/query-bonus-total")
public TableDataInfo lisBonusTotal(@RequestBody BonusParam bonusParam){
public TableDataInfo lisBonusTotal(@RequestBody BonusParam bonusParam) {
bonusParam.setPkCountry(SecurityUtils.getPkCountry());
bonusParam.setPkMember(SecurityUtils.getUserId());
// bonusParam.setStartDate(DateUtils.beforeDate(1, ChronoUnit.DAYS));
@ -159,9 +115,9 @@ public class ApiCuMemberBonusController extends BaseController {
bonusParam.setEndDate(DateUtils.afterDate(1, ChronoUnit.DAYS));
List<CuMemberBonusExt> cuMemberBonusList = cuMemberBonusService.queryMemberBonusTotalByCondition(bonusParam);
MemberRealIncomeVO memberRealIncomeVO = new MemberRealIncomeVO();
if(CollectionUtil.isEmpty(cuMemberBonusList)){
if (CollectionUtil.isEmpty(cuMemberBonusList)) {
memberRealIncomeVO.setRealIncomeTotal(BigDecimal.ZERO);
}else {
} else {
memberRealIncomeVO.setRealIncomeTotal(ComputeUtil.computeAdd(cuMemberBonusList.get(0).getRealIncomeTotal(), cuMemberBonusList.get(0).getBackPoints()));
}
return getDataTable(Collections.singletonList(memberRealIncomeVO));
@ -171,7 +127,7 @@ public class ApiCuMemberBonusController extends BaseController {
* 查询会员某个时间段内的奖金默认查询15天内,查询复购
*/
@PostMapping("/query-bonus-repurchase")
public TableDataInfo listRepurchaseBonus(@RequestBody BonusParam bonusParam){
public TableDataInfo listRepurchaseBonus(@RequestBody BonusParam bonusParam) {
setBonusParam(bonusParam);
List<CuMemberBonusExt> cuMemberBonusList = cuMemberBonusService.queryMemberBonusVoByCondition(bonusParam);
List<MemberBonusPurchaseVO> memberBonusPurchaseVoList = new ArrayList<>();
@ -195,7 +151,7 @@ public class ApiCuMemberBonusController extends BaseController {
* 查询会员某个时间段内的奖金默认查询15天内,查询复购
*/
@PostMapping("/query-bonus-hi-fun")
public TableDataInfo listHiFunBonus(@RequestBody BonusParam bonusParam){
public TableDataInfo listHiFunBonus(@RequestBody BonusParam bonusParam) {
setBonusParam(bonusParam);
List<CuMemberBonusExt> cuMemberBonusList = cuMemberBonusService.queryMemberBonusVoByCondition(bonusParam);
List<MemberBonusHiFunVO> bonusHiFunVoList = new ArrayList<>();
@ -209,11 +165,11 @@ public class ApiCuMemberBonusController extends BaseController {
}
private static void packageSettleDate(CuMemberBonusExt cuMemberBonus, PubMemberBonusVO pubMemberBonusVO) {
if(cuMemberBonus.getEndSettleDate() == null){
if (cuMemberBonus.getEndSettleDate() == null) {
pubMemberBonusVO.setSettleDate(DateUtils.parseDateToStr(DateUtils.YYYY_MM_DD, cuMemberBonus.getSettleDate()));
}else{
} else {
pubMemberBonusVO.setSettleDate(DateUtils.parseDateToStr(DateUtils.YYYY_MM_DD, cuMemberBonus.getSettleDate()) + "-" +
DateUtils.parseDateToStr(DateUtils.YYYY_MM_DD, cuMemberBonus.getEndSettleDate()) );
DateUtils.parseDateToStr(DateUtils.YYYY_MM_DD, cuMemberBonus.getEndSettleDate()));
}
pubMemberBonusVO.setServiceSpend(BigDecimal.ZERO);
}
@ -222,14 +178,14 @@ public class ApiCuMemberBonusController extends BaseController {
bonusParam.setPkCountry(SecurityUtils.getPkCountry());
bonusParam.setPkMember(SecurityUtils.getUserId());
Date startDate = DateUtils.beforeDate(15, ChronoUnit.DAYS, DateUtils.currentDate());
if(bonusParam.getStartDate() == null){
if (bonusParam.getStartDate() == null) {
bonusParam.setStartDate(startDate);
}else if(DateUtils.compareDateBefore(bonusParam.getStartDate(), startDate)){
} else if (DateUtils.compareDateBefore(bonusParam.getStartDate(), startDate)) {
bonusParam.setStartDate(startDate);
}
if(bonusParam.getEndDate() == null){
if (bonusParam.getEndDate() == null) {
bonusParam.setEndDate(DateUtils.currentDate());
}else {
} else {
bonusParam.setEndDate(DateUtils.afterDate(1, ChronoUnit.DAYS, bonusParam.getEndDate()));
}
}
@ -238,7 +194,7 @@ public class ApiCuMemberBonusController extends BaseController {
* 查询会员某个时间段内的奖金来源
*/
@PostMapping("/query-bonus-detail")
public TableDataInfo listBonusSource(@RequestBody BonusParam bonusParam){
public TableDataInfo listBonusSource(@RequestBody BonusParam bonusParam) {
setBonusParam(bonusParam);
startPage();
// List<MemberBonusVO> memberBonusVoList = new ArrayList<>();

View File

@ -58,6 +58,7 @@ public class BonusSettleRangeHandle extends BonusSettleHandle {
private IBonusOrderService iBonusOrderService;
/**
* 秒结
* 实时计算秒结数据业绩盒数等级奖衔日奖
*/
List<CuMemberBonusRange> calculateCuMemberRetailRangeBonusBySecond(String settleDate, SaOrderExt saOrderExt, BonusConfigDTO bonusConfigDTO,
@ -143,9 +144,6 @@ public class BonusSettleRangeHandle extends BonusSettleHandle {
// 指定盒数商品
// 计算直推级差收益 + 平级收益
cuMemberBonusRangeList.addAll(calculateRetailRangeBonus(memberRangeExtMap, cuMemberBonusMap, gradeMap, bonusConfigDTO, currentPeriod, saOrderItems, saOrderExt));
// 注册升级 并且有盒数商品算激活
sourceMemberRangeExt.setEnableStatus(EYesNo.YES.getIntValue());
}
}
}
@ -470,14 +468,15 @@ public class BonusSettleRangeHandle extends BonusSettleHandle {
// 会员奖金明细
List<CuMemberBonusDetail> cuMemberBonusDetailList = new ArrayList<>();
for (SaOrderExt saOrderExt : retailOrderList) {
CuMemberRetailRangeExt sourceMemberRangeExt = memberRangeExtMap.get(saOrderExt.getPkMember());
if (EOrderType.RETAIL_REGISTER.getValue() == saOrderExt.getOrderType() ||
EOrderType.RETAIL_UPGRADE.getValue() == saOrderExt.getOrderType()) {
// 注册升级才能算激活状态
sourceMemberRangeExt.setEnableStatus(EYesNo.YES.getIntValue());
}
}
// 上面更新网体按会员表是否激活进行处理
// for (SaOrderExt saOrderExt : retailOrderList) {
// CuMemberRetailRangeExt sourceMemberRangeExt = memberRangeExtMap.get(saOrderExt.getPkMember());
// if (EOrderType.RETAIL_REGISTER.getValue() == saOrderExt.getOrderType() ||
// EOrderType.RETAIL_UPGRADE.getValue() == saOrderExt.getOrderType()) {
// // 注册升级才能算激活状态
// sourceMemberRangeExt.setEnableStatus(EYesNo.YES.getIntValue());
// }
// }
for (SaOrderExt saOrderExt : retailOrderList) {
// 计算自消费奖衔

View File

@ -1,7 +1,7 @@
package com.hzs.bonus.bonus.vo;
import com.baomidou.mybatisplus.annotation.TableField;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.hzs.common.core.annotation.BigDecimalFormat;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
@ -12,11 +12,7 @@ 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
@ -97,6 +93,7 @@ public class MemberBonusVO implements Serializable {
/**
* 商城重消
*/
@BigDecimalFormat
private BigDecimal backPoints;
/**
@ -117,6 +114,7 @@ public class MemberBonusVO implements Serializable {
/**
* 实发收益总计
*/
@BigDecimalFormat
private BigDecimal realIncomeTotal;
/**
@ -130,18 +128,21 @@ public class MemberBonusVO implements Serializable {
private Integer pkCountry;
/**
* 新零售差收益
* 新零售直推级差收益
*/
@BigDecimalFormat
private BigDecimal retailRangeIncome;
/**
* 新零售平级收益
*/
@BigDecimalFormat
private BigDecimal retailSameLevelIncome;
/**
* 新零售区域收益
*/
@BigDecimalFormat
private BigDecimal retailAreaIncome;
/**
@ -162,6 +163,7 @@ public class MemberBonusVO implements Serializable {
/**
* 新零售收益小计
*/
@BigDecimalFormat
private BigDecimal retailRealSubtotal;
/**

View File

@ -92,13 +92,14 @@
select pk_member,consume_box_num,new_box_num,team_box_num,month_box_num,team_new_box_num,enable_status,
consume_pv,month_consume_pv,new_consume_pv,team_consume_amount,team_consume_pv,pk_share_awards,
team_month_amount,team_month_pv,team_new_amount,team_new_pv,recommend_num,team_num,pk_grade,
big_box_num,small_box_num,big_team_pv,small_team_pv from ${yesterdayRangeTableName}
big_box_num,small_box_num,big_team_pv,small_team_pv
from ${yesterdayRangeTableName}
) b
on (a.pk_member=b.pk_member)
when matched then
update set a.consume_box_num=b.consume_box_num,a.team_box_num=b.team_box_num,
a.consume_pv=b.consume_pv,a.team_consume_amount=b.team_consume_amount,a.team_consume_pv=b.team_consume_pv,
a.recommend_num=b.recommend_num,a.team_num=b.team_num,a.pk_grade=b.pk_grade,a.enable_status=b.enable_status,
a.recommend_num=b.recommend_num,a.team_num=b.team_num,a.pk_grade=b.pk_grade, a.enable_status = b.enable_status,
a.big_box_num=b.big_box_num,a.small_box_num=b.small_box_num,
a.big_team_pv=b.big_team_pv,a.small_team_pv=b.small_team_pv
<if test="isSameMonth == 0">
@ -298,7 +299,7 @@
a.pk_country,
a.pk_settle_country,
a.pk_share_awards,
a.enable_status,
nvl(cm.is_activate, a.enable_status) enable_status
consume_box_num,
new_box_num,
team_box_num,
@ -334,6 +335,10 @@
start with pk_member = #{item}
connect by pk_member = prior pk_parent
) a
left join cu_member cm
on cm.pk_id = a.pk_member
and cm.del_flag = 0
and cm.category = 0
inner join bd_grade ba
on a.pk_grade = ba.pk_id
inner join bd_awards bw
@ -576,7 +581,7 @@
cm.income_status,
cm.pay_time,
b.pk_rate,
a.enable_status,
nvl(cm.is_activate, a.enable_status) enable_status,
nvl(b.consume_box_num, 0) + a.new_box_num consume_box_num,
a.new_box_num,
nvl(b.team_box_num, 0) + a.team_new_box_num team_box_num,