Compare commits
14 Commits
849f8e6128
...
8eebb3fdfa
| Author | SHA1 | Date |
|---|---|---|
|
|
8eebb3fdfa | |
|
|
e064d87223 | |
|
|
dc70bc6db7 | |
|
|
c589c2461c | |
|
|
99317636cc | |
|
|
fea41d6ccd | |
|
|
3873adb2cd | |
|
|
d2188ab2b0 | |
|
|
1f8d4a2b50 | |
|
|
dcead29539 | |
|
|
44e36f5abe | |
|
|
ccb3e91a54 | |
|
|
896597ac53 | |
|
|
3b87d98457 |
|
|
@ -32,49 +32,10 @@ import java.util.List;
|
|||
public class ApiCuMemberBonusController extends BaseController {
|
||||
|
||||
@Autowired
|
||||
private ICuMemberBonusService cuMemberBonusService;
|
||||
private ICuMemberBonusService iCuMemberBonusService;
|
||||
|
||||
/**
|
||||
* 查询会员某个时间段内的奖金,默认查询15天内,查询直推
|
||||
*/
|
||||
@PostMapping("/query-bonus-first")
|
||||
public TableDataInfo listFirstRepurchaseBonus(@RequestBody BonusParam bonusParam) {
|
||||
setBonusParam(bonusParam);
|
||||
List<CuMemberBonusExt> cuMemberBonusList = cuMemberBonusService.queryMemberBonusVoByCondition(bonusParam);
|
||||
List<MemberBonusFirstPurchaseVO> firstPurchaseVOList = new ArrayList<>();
|
||||
cuMemberBonusList.forEach(cuMemberBonus -> {
|
||||
MemberBonusFirstPurchaseVO memberBonusFirstPurchaseVO = BeanUtil.copyProperties(cuMemberBonus, MemberBonusFirstPurchaseVO.class, "settleDate");
|
||||
packageSettleDate(cuMemberBonus, memberBonusFirstPurchaseVO);
|
||||
// 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) {
|
||||
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.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));
|
||||
// }
|
||||
memberBonusFirstPurchaseVO.setPurRealSubtotal(ComputeUtil.computeAdd(memberBonusFirstPurchaseVO.getPurRealSubtotal(), memberBonusFirstPurchaseVO.getGlobalPoints()));
|
||||
firstPurchaseVOList.add(memberBonusFirstPurchaseVO);
|
||||
});
|
||||
return getDataTable(firstPurchaseVOList);
|
||||
}
|
||||
|
||||
/**
|
||||
* 查询会员实时奖金,当日的奖金
|
||||
* 新零售实时奖金:查询会员实时奖金,当日的奖金
|
||||
*/
|
||||
@PostMapping("/query-current-bonus")
|
||||
public TableDataInfo listCurrentBonus(@RequestBody BonusParam bonusParam) {
|
||||
|
|
@ -84,7 +45,7 @@ public class ApiCuMemberBonusController extends BaseController {
|
|||
bonusParam.setEndDate(DateUtils.afterDate(1, ChronoUnit.DAYS, DateUtils.currentDate()));
|
||||
bonusParam.setGrantStatus(EGrantStatus.SETTLED.getValue());
|
||||
|
||||
List<CuMemberBonusExt> cuMemberBonusList = cuMemberBonusService.queryMemberSecondBonusVoByCondition(bonusParam);
|
||||
List<CuMemberBonusExt> cuMemberBonusList = iCuMemberBonusService.queryMemberSecondBonusVoByCondition(bonusParam);
|
||||
List<MemberBonusVO> memberBonusVOList = new ArrayList<>();
|
||||
cuMemberBonusList.forEach(cuMemberBonus -> {
|
||||
if (ComputeUtil.compareValue(cuMemberBonus.getRealIncomeTotal())) {
|
||||
|
|
@ -102,23 +63,41 @@ public class ApiCuMemberBonusController extends BaseController {
|
|||
}
|
||||
|
||||
/**
|
||||
* 查询会员昨天奖金的值
|
||||
* 新零售实时奖金:查询会员奖金列表
|
||||
*/
|
||||
@PostMapping("/query-bonus-first")
|
||||
public TableDataInfo listFirstRepurchaseBonus(@RequestBody BonusParam bonusParam) {
|
||||
setBonusParam(bonusParam);
|
||||
|
||||
startPage();
|
||||
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);
|
||||
firstPurchaseVOList.add(memberBonusFirstPurchaseVO);
|
||||
});
|
||||
return getDataTable(firstPurchaseVOList);
|
||||
}
|
||||
|
||||
/**
|
||||
* 新零售实时奖金:查询会员昨日奖金汇总
|
||||
*/
|
||||
@PostMapping("/query-bonus-total")
|
||||
public TableDataInfo lisBonusTotal(@RequestBody BonusParam bonusParam) {
|
||||
bonusParam.setPkCountry(SecurityUtils.getPkCountry());
|
||||
bonusParam.setPkMember(SecurityUtils.getUserId());
|
||||
// bonusParam.setStartDate(DateUtils.beforeDate(1, ChronoUnit.DAYS));
|
||||
// bonusParam.setEndDate(DateUtils.currentDate());
|
||||
bonusParam.setStartDate(DateUtils.currentDate());
|
||||
bonusParam.setGrantStatus(EGrantStatus.SETTLED.getValue());
|
||||
bonusParam.setEndDate(DateUtils.afterDate(1, ChronoUnit.DAYS));
|
||||
List<CuMemberBonusExt> cuMemberBonusList = cuMemberBonusService.queryMemberBonusTotalByCondition(bonusParam);
|
||||
bonusParam.setEndDate(DateUtils.currentDate());
|
||||
bonusParam.setStartDate(DateUtils.beforeDate(1, ChronoUnit.DAYS, bonusParam.getEndDate()));
|
||||
|
||||
List<CuMemberBonusExt> cuMemberBonusList = iCuMemberBonusService.queryMemberBonusTotalByCondition(bonusParam);
|
||||
MemberRealIncomeVO memberRealIncomeVO = new MemberRealIncomeVO();
|
||||
if (CollectionUtil.isEmpty(cuMemberBonusList)) {
|
||||
memberRealIncomeVO.setRealIncomeTotal(BigDecimal.ZERO);
|
||||
} else {
|
||||
memberRealIncomeVO.setRealIncomeTotal(ComputeUtil.computeAdd(cuMemberBonusList.get(0).getRealIncomeTotal(), cuMemberBonusList.get(0).getBackPoints()));
|
||||
// memberRealIncomeVO.setRealIncomeTotal(ComputeUtil.computeAdd(cuMemberBonusList.get(0).getRealIncomeTotal(), cuMemberBonusList.get(0).getBackPoints()));
|
||||
memberRealIncomeVO.setRealIncomeTotal(cuMemberBonusList.get(0).getRealIncomeTotal());
|
||||
}
|
||||
return getDataTable(Collections.singletonList(memberRealIncomeVO));
|
||||
}
|
||||
|
|
@ -129,7 +108,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");
|
||||
|
|
@ -141,7 +120,6 @@ public class ApiCuMemberBonusController extends BaseController {
|
|||
memberBonusPurchaseVO.getRetailRealSubtotal());
|
||||
memberBonusPurchaseVO.setBackPoints(serviceSpend);
|
||||
memberBonusPurchaseVO.setRetailBenefitIncome(ComputeUtil.computeAdd(memberBonusPurchaseVO.getRetailBenefitIncome(), memberBonusPurchaseVO.getRetailBenefitAvgIncome()));
|
||||
// memberBonusPurchaseVO.setServiceSpend(ComputeUtil.computeMultiplyHalf(serviceSpend));
|
||||
memberBonusPurchaseVoList.add(memberBonusPurchaseVO);
|
||||
});
|
||||
return getDataTable(memberBonusPurchaseVoList);
|
||||
|
|
@ -153,7 +131,7 @@ public class ApiCuMemberBonusController extends BaseController {
|
|||
@PostMapping("/query-bonus-hi-fun")
|
||||
public TableDataInfo listHiFunBonus(@RequestBody BonusParam bonusParam) {
|
||||
setBonusParam(bonusParam);
|
||||
List<CuMemberBonusExt> cuMemberBonusList = cuMemberBonusService.queryMemberBonusVoByCondition(bonusParam);
|
||||
List<CuMemberBonusExt> cuMemberBonusList = iCuMemberBonusService.queryMemberBonusVoByCondition(bonusParam);
|
||||
List<MemberBonusHiFunVO> bonusHiFunVoList = new ArrayList<>();
|
||||
cuMemberBonusList.forEach(cuMemberBonus -> {
|
||||
MemberBonusHiFunVO memberBonusHiFunVO = BeanUtil.copyProperties(cuMemberBonus, MemberBonusHiFunVO.class, "settleDate");
|
||||
|
|
@ -177,6 +155,7 @@ public class ApiCuMemberBonusController extends BaseController {
|
|||
private void setBonusParam(@RequestBody BonusParam bonusParam) {
|
||||
bonusParam.setPkCountry(SecurityUtils.getPkCountry());
|
||||
bonusParam.setPkMember(SecurityUtils.getUserId());
|
||||
|
||||
Date startDate = DateUtils.beforeDate(15, ChronoUnit.DAYS, DateUtils.currentDate());
|
||||
if (bonusParam.getStartDate() == null) {
|
||||
bonusParam.setStartDate(startDate);
|
||||
|
|
@ -197,14 +176,7 @@ 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;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -9,12 +9,7 @@ import org.apache.ibatis.annotations.Param;
|
|||
import java.util.List;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 会员奖金-会员奖金汇总表 Mapper 接口
|
||||
* </p>
|
||||
*
|
||||
* @author hzs
|
||||
* @since 2022-11-11
|
||||
*/
|
||||
public interface CuMemberBonusMapper extends BaseMapper<CuMemberBonus> {
|
||||
|
||||
|
|
@ -22,9 +17,6 @@ public interface CuMemberBonusMapper extends BaseMapper<CuMemberBonus> {
|
|||
* 批量获取cuMemberBonus主键
|
||||
*
|
||||
* @param rowNum 数量
|
||||
* @return: List<Integer>
|
||||
* @Author: sui q
|
||||
* @Date: 2022/12/13 13:47
|
||||
*/
|
||||
List<Long> batchQueryCuMemberBonusSeq(Integer rowNum);
|
||||
|
||||
|
|
@ -32,9 +24,6 @@ public interface CuMemberBonusMapper extends BaseMapper<CuMemberBonus> {
|
|||
* 根据查询条件查询会员奖金
|
||||
*
|
||||
* @param bonusParam 查询条件
|
||||
* @return: List<MemberBonusVO>
|
||||
* @Author: sui q
|
||||
* @Date: 2023/1/13 11:27
|
||||
*/
|
||||
List<CuMemberBonus> queryMemberBonusTotalByCondition(BonusParam bonusParam);
|
||||
|
||||
|
|
@ -42,9 +31,6 @@ public interface CuMemberBonusMapper extends BaseMapper<CuMemberBonus> {
|
|||
* 根据查询条件查询会员奖金
|
||||
*
|
||||
* @param bonusParam 查询条件
|
||||
* @return: List<MemberBonusVO>
|
||||
* @Author: sui q
|
||||
* @Date: 2023/1/13 11:27
|
||||
*/
|
||||
List<CuMemberBonusExt> queryMemberBonusByCondition(BonusParam bonusParam);
|
||||
|
||||
|
|
@ -52,30 +38,19 @@ public interface CuMemberBonusMapper extends BaseMapper<CuMemberBonus> {
|
|||
* 根据查询条件查询会员奖金
|
||||
*
|
||||
* @param bonusParam 查询条件
|
||||
* @return: List<MemberBonusVO>
|
||||
* @Author: sui q
|
||||
* @Date: 2023/1/13 11:27
|
||||
*/
|
||||
List<CuMemberBonusExt> queryMemberBonusByConditionForServer(@Param("bonusParam") BonusParam bonusParam);
|
||||
|
||||
/**
|
||||
* @description: 查询奖金明细合计(最后一行)
|
||||
* @author: zhang jing
|
||||
* @date: 2024/10/12 14:06
|
||||
* @param: [bonusParam]
|
||||
* @return: com.hzs.common.domain.member.ext.CuMemberBonusExt
|
||||
* 查询奖金明细合计(最后一行)
|
||||
**/
|
||||
CuMemberBonusExt queryMemberBonusByConditionForServerSum(@Param("bonusParam") BonusParam bonusParam);
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* 根据查询条件查询会员奖金
|
||||
*
|
||||
* @param bonusParam 查询条件
|
||||
* @return: List<MemberBonusVO>
|
||||
* @Author: sui q
|
||||
* @Date: 2023/1/13 11:27
|
||||
*/
|
||||
List<CuMemberBonusExt> queryBonusTotalVoByConditionForServer(@Param("bonusParam") BonusParam bonusParam);
|
||||
|
||||
|
|
@ -83,9 +58,6 @@ public interface CuMemberBonusMapper extends BaseMapper<CuMemberBonus> {
|
|||
* 删除会员奖金汇总表
|
||||
*
|
||||
* @param period 结算期间
|
||||
* @return: void
|
||||
* @Author: sui q
|
||||
* @Date: 2022/12/13 11:54
|
||||
*/
|
||||
void deleteCuMemberBonus(Integer period);
|
||||
|
||||
|
|
@ -93,9 +65,6 @@ public interface CuMemberBonusMapper extends BaseMapper<CuMemberBonus> {
|
|||
* 批量插入会员奖金主表
|
||||
*
|
||||
* @param cuMemberBonusList 会员奖金
|
||||
* @return: void
|
||||
* @Author: sui q
|
||||
* @Date: 2022/12/13 13:56
|
||||
*/
|
||||
void batchInsertCuMemberBonus(@Param("cuMemberBonusList") List<?> cuMemberBonusList);
|
||||
|
||||
|
|
@ -103,9 +72,6 @@ public interface CuMemberBonusMapper extends BaseMapper<CuMemberBonus> {
|
|||
* 批量插入会员奖金主表
|
||||
*
|
||||
* @param cuMemberBonusList 会员奖金
|
||||
* @return: void
|
||||
* @Author: sui q
|
||||
* @Date: 2022/12/13 13:56
|
||||
*/
|
||||
void insertOrUpdateCuMemberBonus(@Param("cuMemberBonusList") List<CuMemberBonus> cuMemberBonusList);
|
||||
|
||||
|
|
@ -114,27 +80,20 @@ public interface CuMemberBonusMapper extends BaseMapper<CuMemberBonus> {
|
|||
*
|
||||
* @param grantStatus 发放状态
|
||||
* @param oldGrantStatus 原来的发放状态
|
||||
* @return: Boolean
|
||||
* @Author: sui q
|
||||
* @Date: 2023/3/20 17:21
|
||||
*/
|
||||
Integer updateCuMemberBonusStatus(@Param("pkCountry") Integer pkCountry, @Param("grantStatus") Integer grantStatus,
|
||||
@Param("oldGrantStatus") Integer oldGrantStatus, @Param("startPeriod") Integer startPeriod,
|
||||
@Param("endPeriod") Integer endPeriod);
|
||||
|
||||
/*
|
||||
* @description: 回退极差奖金
|
||||
* @author: sui q
|
||||
* @date: 2024/12/25 17:06
|
||||
* @param: null null
|
||||
**/
|
||||
/**
|
||||
* 回退极差奖金
|
||||
*/
|
||||
void mergeBackRangeBonusIncome(@Param("pkOrder") Long pkOrder, @Param("bonusValue") Integer bonusValue);
|
||||
|
||||
/*
|
||||
* @description: 查询会员一周周期的拓展累计,复购拓展累计
|
||||
* @author: sui q
|
||||
* @date: 2023/7/15 14:26
|
||||
* @param: null null
|
||||
**/
|
||||
/**
|
||||
* 查询会员一周周期的拓展累计,复购拓展累计
|
||||
*/
|
||||
List<CuMemberBonus> queryWeekMemberBonus(@Param("startPeriod") int startPeriod, @Param("endPeriod") int endPeriod);
|
||||
|
||||
void recalculateTeamNewBoxNum(@Param("pkId") Long pkId, @Param("retailsTableName") String retailsTableName);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -2,17 +2,12 @@ package com.hzs.bonus.bonus.param;
|
|||
|
||||
import com.hzs.common.core.web.domain.BaseAuthorityEntity;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @Description:
|
||||
* @Author: sui q
|
||||
* @Time: 2023/1/13 9:44
|
||||
* @Classname: BonusParam
|
||||
* @PackageName: com.hzs.member.bonus.param
|
||||
*/
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@Data
|
||||
public class BonusParam extends BaseAuthorityEntity {
|
||||
|
||||
|
|
|
|||
|
|
@ -1,11 +1,11 @@
|
|||
package com.hzs.bonus.bonus.service;
|
||||
|
||||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
import com.hzs.bonus.bonus.param.BonusParam;
|
||||
import com.hzs.bonus.bonus.vo.MemberBonusVO;
|
||||
import com.hzs.common.core.web.page.TableDataInfo;
|
||||
import com.hzs.common.domain.member.bonus.CuMemberBonus;
|
||||
import com.hzs.common.domain.member.ext.CuMemberBonusExt;
|
||||
import com.hzs.bonus.bonus.param.BonusParam;
|
||||
import com.hzs.bonus.bonus.vo.MemberBonusVO;
|
||||
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
|
|
@ -165,4 +165,12 @@ public interface ICuMemberBonusService extends IService<CuMemberBonus> {
|
|||
void calculateBonusTotal(CuMemberBonusExt cuMemberBonusExt, CuMemberBonusExt memberBonusExt);
|
||||
|
||||
CuMemberBonusExt initCuMemberBonus();
|
||||
|
||||
/**
|
||||
* 用户激活后会抛出MQ
|
||||
* 在此需要补偿该用户的当日秒结的团队新增
|
||||
*
|
||||
* @param pkIdList
|
||||
*/
|
||||
void recalculateTeamNewBoxNum(List<Long> pkIdList);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1355,8 +1355,8 @@ public class BonusSettleRangeHandle extends BonusSettleHandle {
|
|||
}
|
||||
continue;
|
||||
}
|
||||
// 平级收益(商品价格 * 千分之五) -- 2位小数,四舍五入
|
||||
sameBonusIncome = waresPrice.multiply(RetailConstants.SAME_RATIO).setScale(2, BigDecimal.ROUND_HALF_UP);
|
||||
// 平级收益(商品价格 * 千分之五) -- 6位小数,四舍五入
|
||||
sameBonusIncome = waresPrice.multiply(RetailConstants.SAME_RATIO).setScale(6, BigDecimal.ROUND_HALF_UP);
|
||||
// 平级收益累计
|
||||
beforeSameBonus = beforeSameBonus.add(sameBonusIncome);
|
||||
// 平级等级代数等级
|
||||
|
|
@ -1601,7 +1601,7 @@ public class BonusSettleRangeHandle extends BonusSettleHandle {
|
|||
// 计算业绩(此处作为比例)
|
||||
BigDecimal calAchieve = BigDecimal.ZERO;
|
||||
for (SaOrderWaresExt saOrderWaresExt : saOrder.getOrderWaresExtList()) {
|
||||
benefitIncome = benefitIncome.add(saOrderWaresExt.getWaresPrice().multiply(RetailConstants.SAME_RATIO)).setScale(2, BigDecimal.ROUND_HALF_UP);
|
||||
benefitIncome = benefitIncome.add(saOrderWaresExt.getWaresPrice().multiply(RetailConstants.SAME_RATIO)).setScale(6, BigDecimal.ROUND_HALF_UP);
|
||||
calAchieve = calAchieve.add(saOrderWaresExt.getWaresPrice());
|
||||
}
|
||||
CuMemberBonusDetail cuMemberBonusDetail = packageBenefitIncome(bonusConfigDTO, period, cuMemberBonusMap, null, RetailConstants.SAME_RATIO, benefitIncome,
|
||||
|
|
|
|||
|
|
@ -1,10 +1,12 @@
|
|||
package com.hzs.bonus.bonus.service.impl;
|
||||
|
||||
import cn.hutool.core.bean.BeanUtil;
|
||||
import cn.hutool.json.JSONUtil;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import com.github.pagehelper.PageInfo;
|
||||
import com.hzs.bonus.achieve.service.ICuMemberSettlePeriodService;
|
||||
import com.hzs.bonus.achieve.service.ICuMemberTreeService;
|
||||
import com.hzs.bonus.achieve.service.impl.CuMemberBonusSettle;
|
||||
import com.hzs.bonus.bonus.mapper.*;
|
||||
|
|
@ -14,15 +16,11 @@ 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.bonus.vo.MemberBonusVO;
|
||||
import com.hzs.common.core.constant.HttpStatus;
|
||||
import com.hzs.common.core.constant.MemberBonusFieldConstants;
|
||||
import com.hzs.common.core.constant.MemberFieldConstants;
|
||||
import com.hzs.common.core.constant.SystemFieldConstants;
|
||||
import com.hzs.common.core.constant.*;
|
||||
import com.hzs.common.core.domain.R;
|
||||
import com.hzs.common.core.enums.*;
|
||||
import com.hzs.common.core.utils.ComputeUtil;
|
||||
import com.hzs.common.core.utils.DateUtils;
|
||||
import com.hzs.common.core.utils.StringUtils;
|
||||
import com.hzs.common.core.web.page.TableDataInfo;
|
||||
import com.hzs.common.domain.member.bonus.CuMemberBonus;
|
||||
import com.hzs.common.domain.member.ext.*;
|
||||
|
|
@ -38,6 +36,8 @@ import org.springframework.beans.factory.annotation.Autowired;
|
|||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.time.LocalDate;
|
||||
import java.time.format.DateTimeFormatter;
|
||||
import java.time.temporal.ChronoUnit;
|
||||
import java.util.*;
|
||||
import java.util.stream.Collectors;
|
||||
|
|
@ -56,6 +56,9 @@ public class CuMemberBonusServiceImpl extends ServiceImpl<CuMemberBonusMapper, C
|
|||
@DubboReference
|
||||
IBonusItemsServiceApi iBonusItemsServiceApi;
|
||||
|
||||
@Autowired
|
||||
private ICuMemberSettlePeriodService iCuMemberSettlePeriodService;
|
||||
|
||||
private CuMemberBonusDetailMapper cuMemberBonusDetailMapper;
|
||||
|
||||
private CuMemberBonusPushMapper cuMemberBonusPushMapper;
|
||||
|
|
@ -131,27 +134,28 @@ public class CuMemberBonusServiceImpl extends ServiceImpl<CuMemberBonusMapper, C
|
|||
|
||||
@Override
|
||||
public List<CuMemberBonusExt> queryMemberBonusVoByCondition(BonusParam bonusParam) {
|
||||
String value = iSystemConfigServiceApi.getBonusSystemConfig(bonusParam.getPkCountry(), ESystemConfig.EXPAND_CAP_METHOD.getKey()).getData();
|
||||
if (StringUtils.isNotEmpty(value) && Objects.equals(Integer.toString(EExpandCapMethod.WEEK_SETTLE.getValue()), value)) {
|
||||
// 周结的话不能查询当前周的数据,只能查询上周的数据
|
||||
bonusParam.setEndDate(DateUtils.parseStringToDate(DateUtils.getRecentlyTuesday(bonusParam.getEndDate())));
|
||||
}
|
||||
return handleMemberBonusPurchase(getCuMemberBonusExtList(bonusParam, value), bonusParam, value);
|
||||
// String value = iSystemConfigServiceApi.getBonusSystemConfig(bonusParam.getPkCountry(), ESystemConfig.EXPAND_CAP_METHOD.getKey()).getData();
|
||||
// if (StringUtils.isNotEmpty(value) && Objects.equals(Integer.toString(EExpandCapMethod.WEEK_SETTLE.getValue()), value)) {
|
||||
// // 周结的话不能查询当前周的数据,只能查询上周的数据
|
||||
// bonusParam.setEndDate(DateUtils.parseStringToDate(DateUtils.getRecentlyTuesday(bonusParam.getEndDate())));
|
||||
// }
|
||||
return handleMemberBonusPurchase(getCuMemberBonusExtList(bonusParam), bonusParam);
|
||||
}
|
||||
|
||||
private List<CuMemberBonusExt> handleMemberBonusPurchase(List<CuMemberBonusExt> cuMemberBonusExtList, BonusParam bonusParam, String value) {
|
||||
if (StringUtils.isNotEmpty(value) && Objects.equals(Integer.toString(EExpandCapMethod.WEEK_SETTLE.getValue()), value)) {
|
||||
Collections.reverse(cuMemberBonusExtList);
|
||||
return cuMemberBonusExtList;
|
||||
}
|
||||
private List<CuMemberBonusExt> handleMemberBonusPurchase(List<CuMemberBonusExt> cuMemberBonusExtList, BonusParam bonusParam) {
|
||||
// if (StringUtils.isNotEmpty(value) && Objects.equals(Integer.toString(EExpandCapMethod.WEEK_SETTLE.getValue()), value)) {
|
||||
// Collections.reverse(cuMemberBonusExtList);
|
||||
// return cuMemberBonusExtList;
|
||||
// }
|
||||
|
||||
List<CuMemberBonusExt> memberBonusExtList = new ArrayList<>();
|
||||
Map<String, CuMemberBonusExt> cuMemberBonusExtMap = new HashMap<>();
|
||||
cuMemberBonusExtList.forEach(cuMemberBonusExt ->
|
||||
cuMemberBonusExtMap.put(DateUtils.parseDateToStr(DateUtils.YYYY_MM_DD, cuMemberBonusExt.getSettleDate()), cuMemberBonusExt));
|
||||
cuMemberBonusExtList.forEach(cuMemberBonusExt -> cuMemberBonusExtMap.put(DateUtils.parseDateToStr(DateUtils.YYYY_MM_DD, cuMemberBonusExt.getSettleDate()), cuMemberBonusExt));
|
||||
Date endDate = DateUtils.beforeDate(1, ChronoUnit.DAYS, bonusParam.getEndDate());
|
||||
Date compareDate = DateUtils.parseStringToDateTime(DateUtils.parseDateToStr(DateUtils.YYYY_MM_DD, DateUtils.currentDate()) + " 13:00:00");
|
||||
while (DateUtils.compareDateAfter(endDate, bonusParam.getStartDate()) ||
|
||||
DateUtils.compareDateEqual(endDate, bonusParam.getStartDate())) {
|
||||
|
||||
while (DateUtils.compareDateAfter(endDate, bonusParam.getStartDate())
|
||||
|| DateUtils.compareDateEqual(endDate, bonusParam.getStartDate())) {
|
||||
String date = DateUtils.parseDateToFormat(DateUtils.YYYY_MM_DD, endDate);
|
||||
if (cuMemberBonusExtMap.containsKey(date)) {
|
||||
memberBonusExtList.add(cuMemberBonusExtMap.get(date));
|
||||
|
|
@ -174,22 +178,14 @@ public class CuMemberBonusServiceImpl extends ServiceImpl<CuMemberBonusMapper, C
|
|||
cuMemberBonusExt.setRepurRangeIncome(BigDecimal.ZERO);
|
||||
cuMemberBonusExt.setRepurExpandIncome(BigDecimal.ZERO);
|
||||
cuMemberBonusExt.setRepurRealSubtotal(BigDecimal.ZERO);
|
||||
cuMemberBonusExt.setCloudDirectIncome(BigDecimal.ZERO);
|
||||
cuMemberBonusExt.setCloudPurIncome(BigDecimal.ZERO);
|
||||
cuMemberBonusExt.setCloudRepurIncome(BigDecimal.ZERO);
|
||||
cuMemberBonusExt.setCloudRealSubtotal(BigDecimal.ZERO);
|
||||
cuMemberBonusExt.setRepurCoupon(BigDecimal.ZERO);
|
||||
cuMemberBonusExt.setRepurCouponShare(BigDecimal.ZERO);
|
||||
cuMemberBonusExt.setRepurCouponSubtotal(BigDecimal.ZERO);
|
||||
cuMemberBonusExt.setMakerDirectIncome(BigDecimal.ZERO);
|
||||
cuMemberBonusExt.setMakerShareIncome(BigDecimal.ZERO);
|
||||
cuMemberBonusExt.setMakerRealSubtotal(BigDecimal.ZERO);
|
||||
cuMemberBonusExt.setGlobalPoints(BigDecimal.ZERO);
|
||||
cuMemberBonusExt.setCarAwardPoints(BigDecimal.ZERO);
|
||||
cuMemberBonusExt.setHiFunIncome(BigDecimal.ZERO);
|
||||
cuMemberBonusExt.setHaiFunIncome(BigDecimal.ZERO);
|
||||
cuMemberBonusExt.setRealIncomeTotal(BigDecimal.ZERO);
|
||||
cuMemberBonusExt.setStoreIncome(BigDecimal.ZERO);
|
||||
|
||||
cuMemberBonusExt.setRetailRangeIncome(BigDecimal.ZERO);
|
||||
cuMemberBonusExt.setRetailSameLevelIncome(BigDecimal.ZERO);
|
||||
cuMemberBonusExt.setRetailAreaIncome(BigDecimal.ZERO);
|
||||
|
|
@ -207,16 +203,10 @@ public class CuMemberBonusServiceImpl extends ServiceImpl<CuMemberBonusMapper, C
|
|||
|
||||
@Override
|
||||
public List<CuMemberBonusExt> queryMemberSecondBonusVoByCondition(BonusParam bonusParam) {
|
||||
String value = iSystemConfigServiceApi.getBonusSystemConfig(bonusParam.getPkCountry(), ESystemConfig.EXPAND_CAP_METHOD.getKey()).getData();
|
||||
// if (StringUtils.isNotEmpty(value) && Objects.equals(Integer.toString(EExpandCapMethod.WEEK_SETTLE.getValue()), value)) {
|
||||
// // 周结的话不能查询当前周的数据,只能查询上周的数据
|
||||
// bonusParam.setStartDate(DateUtils.parseStringToDate(DateUtils.getRecentlyTuesday(bonusParam.getStartDate())));
|
||||
// bonusParam.setEndDate(DateUtils.parseStringToDate(DateUtils.getRecentlyMonday(bonusParam.getStartDate())));
|
||||
// }
|
||||
return getCuMemberBonusExtList(bonusParam, value);
|
||||
return getCuMemberBonusExtList(bonusParam);
|
||||
}
|
||||
|
||||
private List<CuMemberBonusExt> getCuMemberBonusExtList(BonusParam bonusParam, String value) {
|
||||
private List<CuMemberBonusExt> getCuMemberBonusExtList(BonusParam bonusParam) {
|
||||
if (bonusParam.getGrantStatus() == null) {
|
||||
bonusParam.setGrantStatus(EGrantStatus.PUBLISHED.getValue());
|
||||
}
|
||||
|
|
@ -237,20 +227,11 @@ public class CuMemberBonusServiceImpl extends ServiceImpl<CuMemberBonusMapper, C
|
|||
cuMemberBonusExt.setRepurRangeIncome(ComputeUtil.computeMultiply(cuMemberBonusExt.getRepurRangeIncome(), inExchangeRate));
|
||||
cuMemberBonusExt.setRepurExpandIncome(ComputeUtil.computeMultiply(cuMemberBonusExt.getRepurExpandIncome(), inExchangeRate));
|
||||
cuMemberBonusExt.setRepurRealSubtotal(ComputeUtil.computeMultiply(cuMemberBonusExt.getRepurRealSubtotal(), inExchangeRate));
|
||||
cuMemberBonusExt.setCloudDirectIncome(ComputeUtil.computeMultiply(cuMemberBonusExt.getCloudDirectIncome(), inExchangeRate));
|
||||
cuMemberBonusExt.setCloudPurIncome(ComputeUtil.computeMultiply(cuMemberBonusExt.getCloudPurIncome(), inExchangeRate));
|
||||
cuMemberBonusExt.setCloudRepurIncome(ComputeUtil.computeMultiply(cuMemberBonusExt.getCloudRepurIncome(), inExchangeRate));
|
||||
cuMemberBonusExt.setCloudRealSubtotal(ComputeUtil.computeMultiply(cuMemberBonusExt.getCloudRealSubtotal(), inExchangeRate));
|
||||
cuMemberBonusExt.setRepurCoupon(ComputeUtil.computeMultiply(cuMemberBonusExt.getRepurCoupon(), inExchangeRate));
|
||||
cuMemberBonusExt.setRepurCouponShare(ComputeUtil.computeMultiply(cuMemberBonusExt.getRepurCouponShare(), inExchangeRate));
|
||||
cuMemberBonusExt.setRepurCouponSubtotal(ComputeUtil.computeMultiply(cuMemberBonusExt.getRepurCouponSubtotal(), inExchangeRate));
|
||||
cuMemberBonusExt.setMakerDirectIncome(ComputeUtil.computeMultiply(cuMemberBonusExt.getMakerDirectIncome(), inExchangeRate));
|
||||
cuMemberBonusExt.setMakerShareIncome(ComputeUtil.computeMultiply(cuMemberBonusExt.getMakerShareIncome(), inExchangeRate));
|
||||
cuMemberBonusExt.setMakerRealSubtotal(ComputeUtil.computeMultiply(cuMemberBonusExt.getMakerRealSubtotal(), inExchangeRate));
|
||||
cuMemberBonusExt.setGlobalPoints(ComputeUtil.computeMultiply(cuMemberBonusExt.getGlobalPoints(), inExchangeRate));
|
||||
cuMemberBonusExt.setCarAwardPoints(ComputeUtil.computeMultiply(cuMemberBonusExt.getCarAwardPoints(), inExchangeRate));
|
||||
cuMemberBonusExt.setHiFunIncome(ComputeUtil.computeMultiply(cuMemberBonusExt.getHiFunIncome(), inExchangeRate));
|
||||
cuMemberBonusExt.setHaiFunIncome(ComputeUtil.computeMultiply(cuMemberBonusExt.getHaiFunIncome(), inExchangeRate));
|
||||
cuMemberBonusExt.setRealIncomeTotal(ComputeUtil.computeMultiply(cuMemberBonusExt.getRealIncomeTotal(), inExchangeRate));
|
||||
cuMemberBonusExt.setStoreIncome(ComputeUtil.computeMultiply(cuMemberBonusExt.getStoreIncome(), inExchangeRate));
|
||||
cuMemberBonusExt.setRetailRangeIncome(ComputeUtil.computeMultiply(cuMemberBonusExt.getRetailRangeIncome(), inExchangeRate));
|
||||
|
|
@ -261,31 +242,6 @@ public class CuMemberBonusServiceImpl extends ServiceImpl<CuMemberBonusMapper, C
|
|||
cuMemberBonusExt.setRetailBenefitIncome(ComputeUtil.computeMultiply(cuMemberBonusExt.getRetailBenefitIncome(), inExchangeRate));
|
||||
cuMemberBonusExt.setRetailRealSubtotal(ComputeUtil.computeMultiply(cuMemberBonusExt.getRetailRealSubtotal(), inExchangeRate));
|
||||
}
|
||||
// if (StringUtils.isNotEmpty(value) && Objects.equals(Integer.toString(EExpandCapMethod.WEEK_SETTLE.getValue()), value)) {
|
||||
// Map<String, List<CuMemberBonusExt>> weekDateMap = new TreeMap<>();
|
||||
// // 计算周开始和结束
|
||||
// for (CuMemberBonusExt cuMemberBonusExt : cuMemberBonusExtList) {
|
||||
// String startDateStr = DateUtils.getRecentlyTuesday(cuMemberBonusExt.getSettleDate());
|
||||
// if (weekDateMap.containsKey(startDateStr)) {
|
||||
// weekDateMap.get(startDateStr).add(cuMemberBonusExt);
|
||||
// } else {
|
||||
// List<CuMemberBonusExt> cuMemberBonusExtList1 = new ArrayList<>();
|
||||
// cuMemberBonusExtList1.add(cuMemberBonusExt);
|
||||
// weekDateMap.put(startDateStr, cuMemberBonusExtList1);
|
||||
// }
|
||||
// }
|
||||
// List<CuMemberBonusExt> cuMemberBonusExtList1 = new ArrayList<>();
|
||||
// for (String key : weekDateMap.keySet()) {
|
||||
// CuMemberBonusExt cuMemberBonusExt = initCuMemberBonus();
|
||||
// cuMemberBonusExt.setSettleDate(DateUtils.parseStringToDate(key));
|
||||
// cuMemberBonusExt.setEndSettleDate(DateUtils.afterDate(6, ChronoUnit.DAYS, cuMemberBonusExt.getSettleDate()));
|
||||
// for (CuMemberBonusExt memberBonusExt : weekDateMap.get(key)) {
|
||||
// calculateBonusTotal(cuMemberBonusExt, memberBonusExt);
|
||||
// }
|
||||
// cuMemberBonusExtList1.add(cuMemberBonusExt);
|
||||
// }
|
||||
// return cuMemberBonusExtList1;
|
||||
// }
|
||||
return cuMemberBonusExtList;
|
||||
}
|
||||
|
||||
|
|
@ -323,13 +279,7 @@ public class CuMemberBonusServiceImpl extends ServiceImpl<CuMemberBonusMapper, C
|
|||
|
||||
@Override
|
||||
public List<CuMemberBonusExt> queryMemberBonusTotalByCondition(BonusParam bonusParam) {
|
||||
String value = iSystemConfigServiceApi.getBonusSystemConfig(bonusParam.getPkCountry(), ESystemConfig.EXPAND_CAP_METHOD.getKey()).getData();
|
||||
if (StringUtils.isNotEmpty(value) && Objects.equals(Integer.toString(EExpandCapMethod.WEEK_SETTLE.getValue()), value)) {
|
||||
// 周结的话不能查询当前周
|
||||
bonusParam.setEndDate(DateUtils.parseStringToDate(DateUtils.getRecentlyTuesday(bonusParam.getEndDate())));
|
||||
bonusParam.setStartDate(DateUtils.beforeDate(7, ChronoUnit.DAYS, bonusParam.getEndDate()));
|
||||
}
|
||||
return getCuMemberBonusExtList(bonusParam, value);
|
||||
return getCuMemberBonusExtList(bonusParam);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
@ -693,4 +643,19 @@ public class CuMemberBonusServiceImpl extends ServiceImpl<CuMemberBonusMapper, C
|
|||
cuMemberBonusList.forEach(cuMemberBonus -> cuMemberBonusMap.put(cuMemberBonus.getPkMember(), cuMemberBonus));
|
||||
return cuMemberBonusMap;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void recalculateTeamNewBoxNum(List<Long> pkIdList) {
|
||||
String retailsTableName = getDayTableName();
|
||||
log.info("recalculateTeamNewBoxNum: pkIdList: {}, tableName: {}", JSONUtil.toJsonStr(pkIdList), retailsTableName);
|
||||
for (Long pkId : pkIdList) {
|
||||
baseMapper.recalculateTeamNewBoxNum(pkId, retailsTableName);
|
||||
}
|
||||
}
|
||||
|
||||
private String getDayTableName() {
|
||||
String localDate = LocalDate.now().format(DateTimeFormatter.ofPattern("yyyy-MM-dd"));
|
||||
int period = iCuMemberSettlePeriodService.getCuMemberSettlePeriodByDate(localDate).getPkId();
|
||||
return TableNameConstants.CU_MEMBER_RETAIL_S + period;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,84 +1,111 @@
|
|||
package com.hzs.bonus.bonus.vo;
|
||||
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Builder;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
import com.hzs.common.core.annotation.BigDecimalFormat;
|
||||
import lombok.*;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
|
||||
/**
|
||||
* @description: 查询首购奖金
|
||||
* @author: sui q
|
||||
* @time: 2023/4/28 10:33
|
||||
* @classname: MemberBonusDirectVO
|
||||
* @package_name: com.hzs.member.bonus.vo
|
||||
* version 1.0.0
|
||||
* 查询首购奖金
|
||||
*/
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@Data
|
||||
@Builder
|
||||
@AllArgsConstructor
|
||||
@NoArgsConstructor
|
||||
public class MemberBonusFirstPurchaseVO extends PubMemberBonusVO {
|
||||
|
||||
/**
|
||||
* 直推收益
|
||||
*/
|
||||
private BigDecimal directIncome;
|
||||
|
||||
/**
|
||||
* 拓展收益
|
||||
*/
|
||||
private BigDecimal expandIncome;
|
||||
|
||||
/**
|
||||
* 辅导收益
|
||||
*/
|
||||
private BigDecimal coachIncome;
|
||||
|
||||
/**
|
||||
* 分红收益
|
||||
*/
|
||||
private BigDecimal shareIncome;
|
||||
|
||||
/**
|
||||
* 报单收益
|
||||
*/
|
||||
private BigDecimal serviceIncome;
|
||||
// /**
|
||||
// * 直推收益
|
||||
// */
|
||||
// private BigDecimal directIncome;
|
||||
//
|
||||
// /**
|
||||
// * 拓展收益
|
||||
// */
|
||||
// private BigDecimal expandIncome;
|
||||
//
|
||||
// /**
|
||||
// * 辅导收益
|
||||
// */
|
||||
// private BigDecimal coachIncome;
|
||||
//
|
||||
// /**
|
||||
// * 分红收益
|
||||
// */
|
||||
// private BigDecimal shareIncome;
|
||||
//
|
||||
// /**
|
||||
// * 报单收益
|
||||
// */
|
||||
// private BigDecimal serviceIncome;
|
||||
|
||||
/**
|
||||
* 商城重消
|
||||
*/
|
||||
@BigDecimalFormat
|
||||
private BigDecimal backPoints;
|
||||
//
|
||||
// /**
|
||||
// * 首购实发小计
|
||||
// */
|
||||
// private BigDecimal purRealSubtotal;
|
||||
//
|
||||
// /**
|
||||
// * 复购推荐收益
|
||||
// */
|
||||
// private BigDecimal repurPushIncome;
|
||||
//
|
||||
// /**
|
||||
// * 复购拓展收益
|
||||
// */
|
||||
// private BigDecimal repurExpandIncome;
|
||||
//
|
||||
// /**
|
||||
// * 复购级差收益
|
||||
// */
|
||||
// private BigDecimal repurRangeIncome;
|
||||
//
|
||||
// /**
|
||||
// * 复购实发小计
|
||||
// */
|
||||
// private BigDecimal repurRealSubtotal;
|
||||
//
|
||||
// /**
|
||||
// * 乐学直推收益
|
||||
// */
|
||||
// private BigDecimal globalPoints;
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* 首购实发小计
|
||||
* 新零售直推收益
|
||||
*/
|
||||
private BigDecimal purRealSubtotal;
|
||||
@BigDecimalFormat
|
||||
private BigDecimal retailRangeIncome;
|
||||
|
||||
/**
|
||||
* 复购推荐收益
|
||||
* 新零售平级收益
|
||||
*/
|
||||
private BigDecimal repurPushIncome;
|
||||
@BigDecimalFormat
|
||||
private BigDecimal retailSameLevelIncome;
|
||||
|
||||
/**
|
||||
* 复购拓展收益
|
||||
* 新零售区域分红
|
||||
*/
|
||||
private BigDecimal repurExpandIncome;
|
||||
@BigDecimalFormat
|
||||
private BigDecimal retailAreaIncome;
|
||||
|
||||
/**
|
||||
* 复购级差收益
|
||||
* 新零售收益小计
|
||||
*/
|
||||
private BigDecimal repurRangeIncome;
|
||||
@BigDecimalFormat
|
||||
private BigDecimal retailRealSubtotal;
|
||||
|
||||
/**
|
||||
* 复购实发小计
|
||||
* 实发收益总计
|
||||
*/
|
||||
private BigDecimal repurRealSubtotal;
|
||||
|
||||
/**
|
||||
* 乐学直推收益
|
||||
*/
|
||||
private BigDecimal globalPoints;
|
||||
@BigDecimalFormat
|
||||
private BigDecimal realIncomeTotal;
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,17 +1,13 @@
|
|||
package com.hzs.bonus.bonus.vo;
|
||||
|
||||
import com.hzs.common.core.annotation.BigDecimalFormat;
|
||||
import lombok.Data;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.math.BigDecimal;
|
||||
|
||||
/**
|
||||
* @description: 会员实发收益
|
||||
* @author: sui q
|
||||
* @time: 2023/7/6 14:25
|
||||
* @classname: MemberRealIncomeVO
|
||||
* @package_name: com.hzs.member.bonus.vo
|
||||
* version 1.0.0
|
||||
* 会员实发收益
|
||||
*/
|
||||
@Data
|
||||
public class MemberRealIncomeVO implements Serializable {
|
||||
|
|
@ -19,5 +15,6 @@ public class MemberRealIncomeVO implements Serializable {
|
|||
/**
|
||||
* 实发收益总计
|
||||
*/
|
||||
@BigDecimalFormat
|
||||
private BigDecimal realIncomeTotal;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -6,15 +6,11 @@ import java.io.Serializable;
|
|||
import java.math.BigDecimal;
|
||||
|
||||
/**
|
||||
* @description: 会员端奖金明细查询vo
|
||||
* @author: sui q
|
||||
* @time: 2023/7/17 14:58
|
||||
* @classname: PubMemberBonusVO
|
||||
* @package_name: com.hzs.member.bonus.vo
|
||||
* version 1.0.0
|
||||
* 会员端奖金明细查询vo
|
||||
*/
|
||||
@Data
|
||||
public class PubMemberBonusVO implements Serializable {
|
||||
|
||||
/**
|
||||
* 结算日期
|
||||
*/
|
||||
|
|
@ -24,4 +20,5 @@ public class PubMemberBonusVO implements Serializable {
|
|||
* 平台服务费
|
||||
*/
|
||||
private BigDecimal serviceSpend;
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,46 +1,28 @@
|
|||
package com.hzs.bonus.detail.controller.manage;
|
||||
|
||||
|
||||
import cn.hutool.core.bean.BeanUtil;
|
||||
import com.hzs.bonus.achieve.service.ICuMemberSettlePeriodService;
|
||||
import com.hzs.bonus.bonus.param.BonusParam;
|
||||
import com.hzs.bonus.bonus.vo.BonusTotalVO;
|
||||
import com.hzs.bonus.detail.service.ICuRegionAssessService;
|
||||
import com.hzs.bonus.detail.vo.CuRegionAssessDetailVO;
|
||||
import com.hzs.bonus.detail.vo.CuRegionAssessExcelVO;
|
||||
import com.hzs.bonus.detail.vo.CuRegionAssessVO;
|
||||
import com.hzs.bonus.param.CuRegionAssessParam;
|
||||
import com.hzs.common.core.annotation.Log;
|
||||
import com.hzs.common.core.constant.TableNameConstants;
|
||||
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.StringUtils;
|
||||
import com.hzs.common.core.utils.poi.ExcelUtil;
|
||||
import com.hzs.common.core.web.controller.BaseController;
|
||||
import com.hzs.common.core.web.domain.AjaxResult;
|
||||
import com.hzs.common.core.web.page.TableDataInfo;
|
||||
import com.hzs.common.domain.member.detail.CuRegionAssessDetail;
|
||||
import com.hzs.common.domain.member.detail.ext.CuRegionAssessExt;
|
||||
import com.hzs.common.domain.member.ext.CuMemberBonusExt;
|
||||
import com.hzs.common.security.utils.SecurityUtils;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 新零售会员区域考核 前端控制器
|
||||
* </p>
|
||||
*
|
||||
* @author hzs
|
||||
* @since 2025-01-13
|
||||
*/
|
||||
@RestController
|
||||
@RequestMapping("/manage/region")
|
||||
|
|
@ -58,6 +40,7 @@ public class CuRegionAssessController extends BaseController {
|
|||
/**
|
||||
* 考核
|
||||
* 考核默认考核当月
|
||||
*
|
||||
* @return AjaxResult
|
||||
*/
|
||||
@GetMapping("/examine")
|
||||
|
|
@ -72,7 +55,7 @@ public class CuRegionAssessController extends BaseController {
|
|||
* 查询会员昨天奖金的值
|
||||
*/
|
||||
@PostMapping("/query")
|
||||
public TableDataInfo listRegionAssess(@RequestBody CuRegionAssessParam cuRegionAssessParam){
|
||||
public TableDataInfo listRegionAssess(@RequestBody CuRegionAssessParam cuRegionAssessParam) {
|
||||
startPage();
|
||||
cuRegionAssessParam.setPkCountry(SecurityUtils.getPkCountry());
|
||||
List<CuRegionAssessExt> cuRegionAssessExtList = regionAssessService.queryRegionAssessByCondition(cuRegionAssessParam);
|
||||
|
|
@ -86,7 +69,7 @@ public class CuRegionAssessController extends BaseController {
|
|||
* 分页查询会员某个时间段内的奖金汇总
|
||||
*/
|
||||
@PostMapping("/export")
|
||||
public void exportRegionAssess(HttpServletResponse response, CuRegionAssessParam cuRegionAssessParam){
|
||||
public void exportRegionAssess(HttpServletResponse response, CuRegionAssessParam cuRegionAssessParam) {
|
||||
List<CuRegionAssessExt> cuRegionAssessExtList = regionAssessService.queryRegionAssessByCondition(cuRegionAssessParam);
|
||||
List<CuRegionAssessExcelVO> cuRegionAssessVoList = new ArrayList<>();
|
||||
for (CuRegionAssessExt cuRegionAssessExt : cuRegionAssessExtList) {
|
||||
|
|
|
|||
|
|
@ -0,0 +1,46 @@
|
|||
package com.hzs.bonus.listener;
|
||||
|
||||
import cn.hutool.json.JSONUtil;
|
||||
import com.hzs.bonus.bonus.service.IBonusSettleService;
|
||||
import com.hzs.bonus.bonus.service.ICuMemberBonusService;
|
||||
import com.hzs.bonus.bonus.service.ICuMemberRetailLogService;
|
||||
import com.hzs.common.core.constant.CountryConstants;
|
||||
import com.hzs.common.core.constant.MagicNumberConstants;
|
||||
import com.hzs.common.core.constant.RabbitMqConstants;
|
||||
import com.hzs.common.core.enums.EYesNo;
|
||||
import com.hzs.common.domain.member.bonus.CuMemberRetailLog;
|
||||
import com.hzs.common.domain.sale.ext.SaOrderExt;
|
||||
import com.rabbitmq.client.Channel;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.amqp.rabbit.annotation.*;
|
||||
import org.springframework.amqp.support.AmqpHeaders;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.messaging.Message;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 订单秒接
|
||||
*/
|
||||
@Slf4j
|
||||
@Component
|
||||
public class SaOrderSecondActivateCompensationListener {
|
||||
@Autowired
|
||||
private ICuMemberBonusService memberBonusService;
|
||||
|
||||
@RabbitListener(bindings = @QueueBinding(
|
||||
exchange = @Exchange(value = RabbitMqConstants.ORDER_SECOND_ACTIVATE_COMPENSATION_EXCHANGE, type = "topic"),
|
||||
value = @Queue(value = RabbitMqConstants.ORDER_SECOND_ACTIVATE_COMPENSATION_QUEUE, durable = "true", autoDelete = "false"),
|
||||
key = RabbitMqConstants.ORDER_SECOND_ACTIVATE_COMPENSATION_KEY))
|
||||
@RabbitHandler
|
||||
public void onMessage(Message<List<Long>> message, Channel channel) throws Exception {
|
||||
List<Long> activateCompensationIdList = message.getPayload();
|
||||
log.info("秒结开始消费,接收到的参数:{}", JSONUtil.toJsonStr(activateCompensationIdList));
|
||||
|
||||
Long deliveryTag = (Long) message.getHeaders().get(AmqpHeaders.DELIVERY_TAG);
|
||||
channel.basicAck(deliveryTag, false);
|
||||
|
||||
memberBonusService.recalculateTeamNewBoxNum(activateCompensationIdList);
|
||||
}
|
||||
}
|
||||
|
|
@ -272,21 +272,40 @@
|
|||
</select>
|
||||
|
||||
<select id="queryMemberBonusByCondition" resultMap="CuMemberBonus">
|
||||
select cp.settle_date,cb.direct_income,cb.expand_income,cb.expand_no_capping,
|
||||
cb.expand_capping,cb.coach_income,cb.share_income,cb.service_income,cb.back_points,cb.service_spend,
|
||||
cb.pur_real_subtotal,cb.repur_push_income,cb.repur_range_income,cb.repur_expand_income,cb.repur_real_subtotal,
|
||||
cb.cloud_direct_income,cb.cloud_pur_income,cb.cloud_repur_income,cb.cloud_real_subtotal,
|
||||
cb.repur_coupon,cb.repur_coupon_share,cb.repur_coupon_subtotal,cb.store_income,
|
||||
cb.maker_direct_income,cb.maker_share_income,cb.maker_real_subtotal,
|
||||
cb.global_points,cb.car_award_points,cb.hi_fun_income,cb.hai_fun_income,
|
||||
cb.retail_range_income,cb.retail_same_level_income,cb.retail_area_income,
|
||||
cb.retail_benefit_range_income,cb.retail_benefit_avg_income,
|
||||
cb.retail_benefit_income,cb.retail_real_subtotal,
|
||||
cb.real_income_total from cu_member_bonus cb
|
||||
select cp.settle_date,
|
||||
cb.direct_income,
|
||||
cb.expand_income,
|
||||
cb.expand_no_capping,
|
||||
cb.expand_capping,
|
||||
cb.coach_income,
|
||||
cb.share_income,
|
||||
cb.service_income,
|
||||
cb.back_points,
|
||||
cb.service_spend,
|
||||
cb.pur_real_subtotal,
|
||||
cb.repur_push_income,
|
||||
cb.repur_range_income,
|
||||
cb.repur_expand_income,
|
||||
cb.repur_real_subtotal,
|
||||
cb.repur_coupon,
|
||||
cb.repur_coupon_share,
|
||||
cb.repur_coupon_subtotal,
|
||||
cb.store_income,
|
||||
cb.global_points,
|
||||
cb.car_award_points,
|
||||
cb.retail_range_income,
|
||||
cb.retail_same_level_income,
|
||||
cb.retail_area_income,
|
||||
cb.retail_benefit_range_income,
|
||||
cb.retail_benefit_avg_income,
|
||||
cb.retail_benefit_income,
|
||||
cb.retail_real_subtotal,
|
||||
cb.real_income_total
|
||||
from cu_member_bonus cb
|
||||
inner join cu_member_settle_period cp
|
||||
on cb.period = cp.pk_id
|
||||
where cb.del_flag=0 and cp.del_flag=0
|
||||
and cb.pk_member=#{pkMember}
|
||||
where cb.del_flag = 0 and cp.del_flag = 0
|
||||
and cb.pk_member = #{pkMember}
|
||||
<if test="grantStatus != null">
|
||||
and cb.grant_status >= #{grantStatus}
|
||||
</if>
|
||||
|
|
@ -574,4 +593,23 @@
|
|||
group by cb.pk_member
|
||||
</select>
|
||||
|
||||
<update id="recalculateTeamNewBoxNum">
|
||||
UPDATE ${retailsTableName}
|
||||
SET ENABLE_STATUS = 0, TEAM_NEW_BOX_NUM = (
|
||||
SELECT SUM(boxNum)
|
||||
FROM (
|
||||
SELECT b.PK_ID, NVL(s.NEW_BOX_NUM, 0) AS boxNum
|
||||
FROM ${retailsTableName} s
|
||||
RIGHT JOIN (
|
||||
SELECT cm.PK_ID
|
||||
FROM cu_member cm
|
||||
WHERE cm.PK_ID != #{pkId}
|
||||
START WITH cm.PK_ID = #{pkId}
|
||||
CONNECT BY PRIOR cm.pk_id = cm.pk_parent
|
||||
ORDER BY LEVEL
|
||||
) b ON s.PK_MEMBER = b.PK_ID
|
||||
) c
|
||||
)
|
||||
WHERE PK_MEMBER = #{pkId}
|
||||
</update>
|
||||
</mapper>
|
||||
|
|
|
|||
|
|
@ -53,6 +53,7 @@ import com.hzs.system.config.IAwardsServiceApi;
|
|||
import com.hzs.system.config.dto.AreaCurrencyDTO;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.apache.dubbo.config.annotation.DubboReference;
|
||||
import org.springframework.amqp.rabbit.core.RabbitTemplate;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
|
@ -85,6 +86,8 @@ public class CuMemberBusinessServiceImpl implements ICuMemberBusinessService {
|
|||
private ICuMemberAchieveService cuMemberAchieveService;
|
||||
@Autowired
|
||||
private RedisService redisService;
|
||||
@Autowired
|
||||
private RabbitTemplate rabbitTemplate;
|
||||
|
||||
private ICuMemberService cuMemberService;
|
||||
|
||||
|
|
@ -1516,6 +1519,9 @@ public class CuMemberBusinessServiceImpl implements ICuMemberBusinessService {
|
|||
}
|
||||
|
||||
this.handleRetailMemberAccount(saOrder, cuMemberAccountExt);
|
||||
|
||||
// 推送会员激活处理
|
||||
rabbitTemplate.convertAndSend(RabbitMqConstants.ORDER_SECOND_ACTIVATE_COMPENSATION_EXCHANGE, RabbitMqConstants.ORDER_SECOND_ACTIVATE_COMPENSATION_KEY, Collections.singletonList(cuMember.getPkId()));
|
||||
}
|
||||
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
|
|
|
|||
|
|
@ -134,8 +134,8 @@ public class CuMemberServiceImpl extends ServiceImpl<CuMemberMapper, CuMember> i
|
|||
save = true;
|
||||
}
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
throw new RuntimeException(e);
|
||||
log.error("saveMember error: {}", e.getMessage(), e);
|
||||
throw new ServiceException(e.getMessage());
|
||||
}
|
||||
return save;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -116,12 +116,10 @@ public class MemberEmptyServiceImpl implements IMemberEmptyService {
|
|||
public void importTemplate(List<MemberEmptyDetailDTO> resultList) {
|
||||
// 会员编号列表(导入会员编号去重)
|
||||
List<String> checkMemberList = new ArrayList<>();
|
||||
// 会员联系方式列表(需要查库校验)
|
||||
List<String> checkPhoneList = new ArrayList<>();
|
||||
|
||||
// 遍历导入数据,提取各种校验所需要的数据
|
||||
for (MemberEmptyDetailDTO detail : resultList) {
|
||||
this.checkBase(detail, checkMemberList, checkPhoneList);
|
||||
this.checkBase(detail, checkMemberList);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -255,7 +253,7 @@ public class MemberEmptyServiceImpl implements IMemberEmptyService {
|
|||
|
||||
// 遍历导入数据,提取各种校验所需要的数据
|
||||
for (MemberEmptyDetailDTO detail : resultList) {
|
||||
if (this.checkBase(detail, checkMemberList, checkPhoneList)) {
|
||||
if (this.checkBase(detail, checkMemberList)) {
|
||||
// 已经存在异常,直接返回
|
||||
return false;
|
||||
}
|
||||
|
|
@ -270,8 +268,8 @@ public class MemberEmptyServiceImpl implements IMemberEmptyService {
|
|||
|
||||
// 查询会员编号是否存在
|
||||
Map<String, Integer> checkCodeMap = iCuMemberService.checkMemberCodeExist(checkMemberList, true, pkMemberEmpty);
|
||||
// 查询联系方式是否存在
|
||||
Map<String, Integer> checkPhoneMap = iCuMemberService.checkMemberPhoneExist(checkPhoneList, true, pkMemberEmpty, systemType);
|
||||
// // 查询联系方式是否存在
|
||||
// Map<String, Integer> checkPhoneMap = iCuMemberService.checkMemberPhoneExist(checkPhoneList, true, pkMemberEmpty, systemType);
|
||||
|
||||
// 查询推荐编号是否存在(在本次推荐数据中的直接排除掉)
|
||||
final Map<String, Integer> checkParentCodeMap = new HashMap<>();
|
||||
|
|
@ -290,15 +288,6 @@ public class MemberEmptyServiceImpl implements IMemberEmptyService {
|
|||
bool[0] = false;
|
||||
}
|
||||
}
|
||||
if (checkPhoneMap.size() > 0) {
|
||||
if (null != checkPhoneMap.get(detail.getPhone()) && checkPhoneMap.get(detail.getPhone()) >= 1) {
|
||||
// 导入的会员联系方式已经存在数据库中,异常状态
|
||||
detail.setPointStatus(EPointStatus.ABNORMAL.getValue());
|
||||
// 会员联系方式存在重复
|
||||
detail.setContentAbstract(detail.getContentAbstract().replace(TransactionUtils.getContent(MemberMsgConstants.EMPTY_PHONE_NOT), "") + TransactionUtils.getContent(MemberMsgConstants.EMPTY_PHONE_NOT) + ";");
|
||||
bool[0] = false;
|
||||
}
|
||||
}
|
||||
// 处理校验推荐编号是否存在
|
||||
if (!checkMemberList.contains(detail.getParentCode()) && checkParentCodeMap.get(detail.getParentCode()) == null) {
|
||||
// 推荐编号不在本次导入的会员中,也不在数据库中,异常状态
|
||||
|
|
@ -568,9 +557,8 @@ public class MemberEmptyServiceImpl implements IMemberEmptyService {
|
|||
*
|
||||
* @param detail 校验数据
|
||||
* @param checkMemberList 会员编号列表
|
||||
* @param checkPhoneList 会员联系方式列表
|
||||
*/
|
||||
private boolean checkBase(MemberEmptyDetailDTO detail, List<String> checkMemberList, List<String> checkPhoneList) {
|
||||
private boolean checkBase(MemberEmptyDetailDTO detail, List<String> checkMemberList) {
|
||||
// 校验之前先为空
|
||||
detail.setPointStatus(EPointStatus.NORMAL.getValue());
|
||||
detail.setContentAbstract("");
|
||||
|
|
@ -601,16 +589,7 @@ public class MemberEmptyServiceImpl implements IMemberEmptyService {
|
|||
// 导入数据中不重复的会员编号,需要查库校验是否重复
|
||||
checkMemberList.add(detail.getMemberCode());
|
||||
}
|
||||
if (checkPhoneList.contains(detail.getPhone())) {
|
||||
// 导入的数据存在重复联系方式,异常状态
|
||||
detail.setPointStatus(EPointStatus.ABNORMAL.getValue());
|
||||
// 联系方式存在重复
|
||||
detail.setContentAbstract(detail.getContentAbstract() + TransactionUtils.getContent(MemberMsgConstants.EMPTY_PHONE_NOT) + ";");
|
||||
hasError = true;
|
||||
} else {
|
||||
// 导入数据中不重复的联系方式,需要查库校验是否重复
|
||||
checkPhoneList.add(detail.getPhone());
|
||||
}
|
||||
|
||||
return hasError;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -62,9 +62,6 @@ import java.util.stream.Collectors;
|
|||
|
||||
/**
|
||||
* 业务办理表 前端控制器
|
||||
*
|
||||
* @author zhangjing
|
||||
* @since 2023-01-11
|
||||
*/
|
||||
@RestController
|
||||
@RequestMapping("/manage/handle-business")
|
||||
|
|
@ -102,11 +99,7 @@ public class CuHandleBusinessController extends BaseController {
|
|||
|
||||
|
||||
/**
|
||||
* @description: 查询办理业务列表
|
||||
* @author: zhang jing
|
||||
* @date: 2023/1/12 14:58
|
||||
* @param: [handleBusinessVO]
|
||||
* @return: com.hzs.common.core.web.page.TableDataInfo
|
||||
* 查询办理业务列表
|
||||
**/
|
||||
@AccessPermissions("BasicBusiness")
|
||||
@Log(module = EOperationModule.HANDLE_BUSINESS, business = EOperationBusiness.BASE_BUSINESS, method = EOperationMethod.SELECT)
|
||||
|
|
@ -154,11 +147,7 @@ public class CuHandleBusinessController extends BaseController {
|
|||
}
|
||||
|
||||
/**
|
||||
* @description: 校验同姓名同手机号是否满足规则
|
||||
* @author: zhang jing
|
||||
* @date: 2024/12/19 14:27
|
||||
* @param: [handleBusinessList]
|
||||
* @return: java.lang.String
|
||||
* 校验同姓名同手机号是否满足规则
|
||||
**/
|
||||
public List<BusinessErrorVO> checkNamePhone(List<BusinessMemberVO> businessMemberList) {
|
||||
//如果只有修改姓名业务或者修改手机业务
|
||||
|
|
@ -238,27 +227,8 @@ public class CuHandleBusinessController extends BaseController {
|
|||
return errorList;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @param CuHandleBusinessVO
|
||||
* @return
|
||||
*/
|
||||
@Log(module = EOperationModule.HANDLE_BUSINESS, method = EOperationMethod.SELECT)
|
||||
@PostMapping("/confirm")
|
||||
public AjaxResult confirmHandleBusiness(@RequestBody HandleBusinessVO CuHandleBusinessVO) {
|
||||
Integer pkCountry = SecurityUtils.getPkCountry();
|
||||
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @description: 业务办理导入数据
|
||||
* @author: zhang jing
|
||||
* @date: 2023/1/21 9:26
|
||||
* @param: [file, updateSupport]
|
||||
* @return: com.hzs.common.core.web.domain.AjaxResult
|
||||
* 业务办理导入数据
|
||||
**/
|
||||
@PostMapping("/importData")
|
||||
@Log(module = EOperationModule.HANDLE_BUSINESS, business = EOperationBusiness.BASE_BUSINESS, method = EOperationMethod.IMPORT)
|
||||
|
|
@ -303,11 +273,7 @@ public class CuHandleBusinessController extends BaseController {
|
|||
}
|
||||
|
||||
/**
|
||||
* @description: 办理业务-基础业务校验
|
||||
* @author: zhang jing
|
||||
* @date: 2023/1/21 10:31
|
||||
* @param: [businessSingleVO]
|
||||
* @return: com.hzs.common.core.web.domain.AjaxResult
|
||||
* 办理业务-基础业务校验
|
||||
**/
|
||||
@Log(module = EOperationModule.HANDLE_BUSINESS, business = EOperationBusiness.BASE_BUSINESS, method = EOperationMethod.SELECT)
|
||||
@PostMapping("/businessCheck")
|
||||
|
|
@ -432,7 +398,7 @@ public class CuHandleBusinessController extends BaseController {
|
|||
nuc.setMemberCode(cov.getMemberCode());
|
||||
nuc.setMemberName(cov.getMemberName());
|
||||
nuc.setPhone(cov.getPhone());
|
||||
if(StringUtils.isNotNull(uc.getEndValidityDate())){
|
||||
if (StringUtils.isNotNull(uc.getEndValidityDate())) {
|
||||
LocalDateTime localDateTime = uc.getEndValidityDate().toInstant()
|
||||
.atZone(ZoneId.systemDefault())
|
||||
.toLocalDateTime();
|
||||
|
|
@ -938,11 +904,7 @@ public class CuHandleBusinessController extends BaseController {
|
|||
|
||||
|
||||
/**
|
||||
* @description: 校验用户余额是否充足
|
||||
* @author: zhang jing
|
||||
* @date: 2023/6/7 11:33
|
||||
* @param: [businessSingleVO]
|
||||
* @return: com.hzs.common.core.web.domain.AjaxResult
|
||||
* 校验用户余额是否充足
|
||||
**/
|
||||
@Log(module = EOperationModule.HANDLE_BUSINESS, business = EOperationBusiness.BASE_BUSINESS, method = EOperationMethod.SELECT)
|
||||
@PostMapping("/balanceCheck")
|
||||
|
|
@ -974,11 +936,7 @@ public class CuHandleBusinessController extends BaseController {
|
|||
}
|
||||
|
||||
/**
|
||||
* @description: 更新新值
|
||||
* @author: zhang jing
|
||||
* @date: 2023/3/20 12:11
|
||||
* @param: []
|
||||
* @return: java.lang.String
|
||||
* 更新新值
|
||||
**/
|
||||
private String newValue(List<Integer> businessValueList) {
|
||||
//更新会员新值
|
||||
|
|
@ -999,11 +957,7 @@ public class CuHandleBusinessController extends BaseController {
|
|||
|
||||
|
||||
/**
|
||||
* @description: 重新申请办理业务
|
||||
* @author: zhang jing
|
||||
* @date: 2023/2/1 21:47
|
||||
* @param: [businessMemberVO]
|
||||
* @return: com.hzs.common.core.web.domain.AjaxResult
|
||||
* 重新申请办理业务
|
||||
**/
|
||||
@Log(module = EOperationModule.HANDLE_BUSINESS, business = EOperationBusiness.BASE_BUSINESS, method = EOperationMethod.SUBMIT)
|
||||
@PostMapping("/againBusiness")
|
||||
|
|
@ -1025,13 +979,12 @@ public class CuHandleBusinessController extends BaseController {
|
|||
}
|
||||
|
||||
/**
|
||||
* yh
|
||||
* 在线签呈(发起人)
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
@Log(module = EOperationModule.HANDLE_BUSINESS, business = EOperationBusiness.BASE_BUSINESS, method = EOperationMethod.SUBMIT)
|
||||
@PostMapping("online-petition")
|
||||
@PostMapping("/online-petition")
|
||||
public AjaxResult signOnline(@RequestBody OnlinePetitionVo linePetitionVo) {
|
||||
SysUser loginUser = userTokenService.getLoginUser().getLoginSysUser();
|
||||
|
||||
|
|
|
|||
|
|
@ -20,7 +20,6 @@ public interface ICuHandleBusinessService extends IService<CuHandleBusiness> {
|
|||
**/
|
||||
List<HandleBusinessShowVO> queryHandleBusinessList(HandleBusinessShowVO handleBusinessVO);
|
||||
|
||||
|
||||
/**
|
||||
* 保存业务办理信息
|
||||
*
|
||||
|
|
|
|||
|
|
@ -127,6 +127,7 @@ public class CuHandleBusinessServiceImpl extends ServiceImpl<CuHandleBusinessMap
|
|||
//流程类型(1 免签呈 2免付费 3免签呈+免付费 4 需要签呈需要付费)
|
||||
//更新业务办理
|
||||
if (processType.equals(EProcessType.AVOIDSIGNING.getValue()) || processType.equals(EProcessType.DOUBLEAVOID.getValue())) {
|
||||
// 免签或全免
|
||||
result = updateBusinessMember(handleBusinessVO, loginUser);
|
||||
}
|
||||
//扣手续费
|
||||
|
|
@ -522,11 +523,7 @@ public class CuHandleBusinessServiceImpl extends ServiceImpl<CuHandleBusinessMap
|
|||
}
|
||||
|
||||
/**
|
||||
* @description: 校验 handleBusinessesList的getBusinessNo是否存在重复
|
||||
* @author: zhang jing
|
||||
* @date: 2024/7/10 14:37
|
||||
* @param: [list]
|
||||
* @return: boolean
|
||||
* 校验 handleBusinessesList的getBusinessNo是否存在重复
|
||||
**/
|
||||
public static boolean checkRepeat(List<CuHandleBusiness> list) {
|
||||
Map<String, Long> counts = list.stream()
|
||||
|
|
@ -688,6 +685,23 @@ public class CuHandleBusinessServiceImpl extends ServiceImpl<CuHandleBusinessMap
|
|||
saveMemberAwards(handleBusinessVO, loginUser);
|
||||
result = row > 0;
|
||||
}
|
||||
|
||||
if (result) {
|
||||
// 修改是否激活,旧值为未激活,新值为激活的会员需要推MQ处理秒结状态
|
||||
List<Long> pkMemberList = handleBusinessVO.getBusinessMemberList().stream()
|
||||
.filter(
|
||||
tmpData -> EApprovalBusiness.IS_ACTIVATE.getValue() == tmpData.getBusinessType()
|
||||
&& tmpData.getOldValue().equals(EYesNo.NO.getIntValue() + "")
|
||||
&& tmpData.getNewValue().equals(EYesNo.YES.getIntValue() + "")
|
||||
)
|
||||
.map(BusinessMemberVO::getPkMember)
|
||||
.collect(Collectors.toList());
|
||||
if (CollectionUtil.isNotEmpty(pkMemberList)) {
|
||||
// 推送会员激活处理
|
||||
rabbitTemplate.convertAndSend(RabbitMqConstants.ORDER_SECOND_ACTIVATE_COMPENSATION_EXCHANGE, RabbitMqConstants.ORDER_SECOND_ACTIVATE_COMPENSATION_KEY, pkMemberList);
|
||||
}
|
||||
}
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -6,24 +6,18 @@ import lombok.Data;
|
|||
import lombok.NoArgsConstructor;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.math.BigDecimal;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 业务办理表Vo办理基础业务实体VO
|
||||
* </p>
|
||||
*
|
||||
* @author zhangjing
|
||||
* @since 2023-01-11
|
||||
*/
|
||||
@Data
|
||||
@AllArgsConstructor
|
||||
@NoArgsConstructor
|
||||
public class HandleBusinessVO implements Serializable{
|
||||
public class HandleBusinessVO implements Serializable {
|
||||
|
||||
|
||||
private long serialVersionUID = -7461122780634685808L;
|
||||
private long serialVersionUID = -7461122780634685808L;
|
||||
|
||||
/**
|
||||
* 会员信息集合
|
||||
|
|
@ -101,6 +95,4 @@ public class HandleBusinessVO implements Serializable{
|
|||
private BusinessTableVO btvo;
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -5,13 +5,15 @@ import cn.hutool.core.collection.CollectionUtil;
|
|||
import cn.hutool.core.lang.tree.Tree;
|
||||
import cn.hutool.core.lang.tree.TreeNodeConfig;
|
||||
import cn.hutool.core.lang.tree.TreeUtil;
|
||||
import cn.hutool.core.util.ObjectUtil;
|
||||
import cn.hutool.json.JSONUtil;
|
||||
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
||||
import com.hzs.bonus.settle.IMemberSettleBonusApi;
|
||||
import com.hzs.common.core.annotation.RepeatSubmitSimple;
|
||||
import com.hzs.common.core.config.BdConfig;
|
||||
import com.hzs.common.core.constant.SysConstants;
|
||||
import com.hzs.common.core.constant.msg.AreaConstants;
|
||||
import com.hzs.common.core.enums.*;
|
||||
import com.hzs.common.core.enums.EGrade;
|
||||
import com.hzs.common.core.enums.ENoticeWebsiteType;
|
||||
import com.hzs.common.core.enums.EYesNo;
|
||||
import com.hzs.common.core.utils.PageUtils;
|
||||
import com.hzs.common.core.web.controller.BaseController;
|
||||
import com.hzs.common.core.web.domain.AjaxResult;
|
||||
|
|
@ -37,7 +39,6 @@ import org.springframework.beans.factory.annotation.Autowired;
|
|||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
import javax.validation.Valid;
|
||||
import java.math.BigDecimal;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
|
|
@ -60,11 +61,6 @@ public class RetailMemberController extends BaseController {
|
|||
|
||||
@DubboReference
|
||||
IAreaServiceApi iAreaServiceApi;
|
||||
@DubboReference
|
||||
IMemberSettleBonusApi iMemberSettleBonusApi;
|
||||
|
||||
// 2025年6月11日 判断可选择收益区域的伞下+自身业绩阈值 (30万)
|
||||
private static final BigDecimal REGIONAL_PERFORMANCE_THRESHOLD = new BigDecimal("300000");
|
||||
/**
|
||||
* 获取登录会员信息
|
||||
*
|
||||
|
|
@ -117,7 +113,8 @@ public class RetailMemberController extends BaseController {
|
|||
if(EYesNo.YES.getIntValue() == cuMemberRetailRegionExt.getIsActivate()){
|
||||
CuMemberRetailAchieveVO retailAchieve = iCuMemberRetailAchieveService.selectMemberSumAchieve(userId, pkCountry, systemType);
|
||||
log.info("retailAchieve : {}", JSONUtil.toJsonStr(retailAchieve));
|
||||
if(retailAchieve.getArealPv().compareTo(REGIONAL_PERFORMANCE_THRESHOLD) >= 0){
|
||||
if(ObjectUtil.isNotEmpty(retailAchieve.getArealPv())
|
||||
&& retailAchieve.getArealPv().compareTo(SysConstants.TOTAL_AREA_PV) >= 0){
|
||||
return AjaxResult.success(RetailMemberRegionVO.builder()
|
||||
.regionStatus(EYesNo.YES.getIntValue())
|
||||
.build());
|
||||
|
|
@ -175,7 +172,7 @@ public class RetailMemberController extends BaseController {
|
|||
}
|
||||
if(EYesNo.YES.getIntValue() == cuMemberRetailRegionExt.getIsActivate()){
|
||||
CuMemberRetailAchieveVO retailAchieve = iCuMemberRetailAchieveService.selectMemberSumAchieve(userId, pkCountry, systemType);
|
||||
if(retailAchieve.getArealPv().compareTo(REGIONAL_PERFORMANCE_THRESHOLD) >= 0){
|
||||
if(retailAchieve.getArealPv().compareTo(SysConstants.TOTAL_AREA_PV) >= 0){
|
||||
canSet = true;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -570,7 +570,8 @@ public class CuMemberRetailAchieveServiceImpl extends ServiceImpl<CuMemberRetail
|
|||
.memberRetailSTable(memberSecondTable)
|
||||
.pkMemberList(pkMemberList).systemType(systemType).build();
|
||||
List<CuMemberRetailDataStatisticsDetailVO> statisticsDetailVOList = baseMapper.getRetailDataStatisticsDetail(memberAchieveVO);
|
||||
CuMemberRetailDataStatisticsResultVO result = DataStatisticsUtil.getCalcMap(statisticsDetailVOList, userId);
|
||||
CuMember cuMember = iCuMemberService.queryMember(userId);
|
||||
CuMemberRetailDataStatisticsResultVO result = DataStatisticsUtil.getCalcMap(statisticsDetailVOList, cuMember);
|
||||
log.info("statisticsDetailVOList: {}", JSONUtil.toJsonStr(statisticsDetailVOList));
|
||||
log.info("calcMap -> {}", JSONUtil.toJsonStr(result));
|
||||
return result;
|
||||
|
|
|
|||
|
|
@ -87,6 +87,7 @@ public class MemberRetailServiceImpl implements IMemberRetailService {
|
|||
.systemType(cuMember.getSystemType())
|
||||
.pkCountry(cuMember.getPkCountry())
|
||||
.pkSettleCountry(cuMember.getPkSettleCountry())
|
||||
.isActivate(cuMember.getIsActivate())
|
||||
.build();
|
||||
}
|
||||
return null;
|
||||
|
|
|
|||
|
|
@ -1,11 +1,17 @@
|
|||
package com.hzs.retail.member.utils;
|
||||
|
||||
import cn.hutool.core.util.ObjectUtil;
|
||||
import com.hzs.common.core.enums.EYesNo;
|
||||
import com.hzs.common.domain.member.base.CuMember;
|
||||
import com.hzs.retail.member.vo.CuMemberRetailDataStatisticsDetailVO;
|
||||
import com.hzs.retail.member.vo.CuMemberRetailDataStatisticsResultVO;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.util.*;
|
||||
import java.math.RoundingMode;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Comparator;
|
||||
import java.util.List;
|
||||
import java.util.Objects;
|
||||
|
||||
/**
|
||||
* 用户统计数据工具
|
||||
|
|
@ -21,46 +27,104 @@ public class DataStatisticsUtil {
|
|||
private static final String BIG_RANGE_VIRTUAL_NAME = "注水大区虚拟分支";
|
||||
private static final String SMALL_RANGE_VIRTUAL_NAME = "注水小区虚拟分支";
|
||||
|
||||
public static CuMemberRetailDataStatisticsResultVO getCalcMap(List<CuMemberRetailDataStatisticsDetailVO> detailVOList, Long pkId){
|
||||
calcDetailVOTotalField(detailVOList);
|
||||
public static CuMemberRetailDataStatisticsResultVO getCalcMap(List<CuMemberRetailDataStatisticsDetailVO> detailVOList, CuMember cuMember){
|
||||
Long pkId = cuMember.getPkId();
|
||||
// 非激活直接返0
|
||||
// 激活判断上一天的ENABLE_STATUS 0为正常 1为当天激活 不计算日结数据
|
||||
if(EYesNo.NO.getIntValue() == cuMember.getIsActivate()){
|
||||
return CuMemberRetailDataStatisticsResultVO.builder()
|
||||
.totalBoxNum(0)
|
||||
.totalPv(BigDecimal.ZERO)
|
||||
.bigRangeTotalBoxNum(0)
|
||||
.bigRangeTotalPv(BigDecimal.ZERO)
|
||||
.smallRangeTotalBoxNum(0)
|
||||
.smallRangeTotalPv(BigDecimal.ZERO)
|
||||
.build();
|
||||
}
|
||||
calcDetailVOTotalField(detailVOList, pkId);
|
||||
addVirtualBranch(detailVOList, pkId);
|
||||
CuMemberRetailDataStatisticsDetailVO total = getDetailVOByPKID(detailVOList, pkId);
|
||||
CuMemberRetailDataStatisticsDetailVO bigRange = getBigRangeDetailVO(detailVOList, pkId);
|
||||
if(EYesNo.NO.getIntValue() == cuMember.getIsActivate()){
|
||||
// 昨日非激活 排除昨日日结表数据
|
||||
excludeDailySettlementData(detailVOList);
|
||||
}else{
|
||||
// 排除注水数据
|
||||
excludeWaterInjectionData(detailVOList);
|
||||
}
|
||||
Integer smallRangeTotalBoxNum = total.getTotalBoxNum() - bigRange.getTotalBoxNum();
|
||||
if(smallRangeTotalBoxNum < 0){
|
||||
smallRangeTotalBoxNum = 0;
|
||||
}
|
||||
BigDecimal smallRangeTotalPv = total.getTotalPv().subtract(bigRange.getTotalPv());
|
||||
if(smallRangeTotalPv.compareTo(BigDecimal.ZERO) < 0){
|
||||
smallRangeTotalPv = BigDecimal.ZERO;
|
||||
}
|
||||
return CuMemberRetailDataStatisticsResultVO.builder()
|
||||
.totalBoxNum(total.getTotalBoxNum())
|
||||
.totalPv(total.getTotalPv())
|
||||
.totalPv(formatPV(total.getTotalPv()))
|
||||
.bigRangeTotalBoxNum(bigRange.getTotalBoxNum())
|
||||
.bigRangeTotalPv(bigRange.getTotalPv())
|
||||
.smallRangeTotalBoxNum(total.getTotalBoxNum() - bigRange.getTotalBoxNum())
|
||||
.smallRangeTotalPv(total.getTotalPv().subtract(bigRange.getTotalPv()))
|
||||
.bigRangeTotalPv(formatPV(bigRange.getTotalPv()))
|
||||
.smallRangeTotalBoxNum(smallRangeTotalBoxNum)
|
||||
.smallRangeTotalPv(formatPV(smallRangeTotalPv))
|
||||
.build();
|
||||
}
|
||||
/**
|
||||
* 计算集合内数据总数
|
||||
* @param detailVOList
|
||||
*/
|
||||
public static void calcDetailVOTotalField(List<CuMemberRetailDataStatisticsDetailVO> detailVOList){
|
||||
public static void calcDetailVOTotalField(List<CuMemberRetailDataStatisticsDetailVO> detailVOList, Long pkId){
|
||||
detailVOList.parallelStream().forEach(detailVO -> {
|
||||
detailVO.setTotalBoxNum(
|
||||
detailVO.getConsumeBoxNum() // 个人累计消费盒数(日结)
|
||||
+ detailVO.getNewBoxNum() // 个人新增盒数(日结)
|
||||
// + detailVO.getNewBoxNum() // 个人新增盒数(日结)
|
||||
+ detailVO.getTeamBoxNum() // 团队累计消费盒数(日结)
|
||||
+ detailVO.getTeamNewBoxNum() // 团队新增盒数(日结)
|
||||
// + detailVO.getTeamNewBoxNum() // 团队新增盒数(日结)
|
||||
+ detailVO.getSNewBoxNum() // 个人新增消费盒数(秒结)
|
||||
+ detailVO.getSTeamNewBoxNum() // 团队新增盒数(秒结)
|
||||
// - detailVO.getBigBoxNum() // 个人注水大区盒数(日结)
|
||||
// - detailVO.getSmallBoxNum() // 个人注水小区盒数(日结)
|
||||
);
|
||||
detailVO.setTotalPv(detailVO.getConsumePv()
|
||||
.add(detailVO.getNewConsumePv())
|
||||
detailVO.setTotalPv(
|
||||
detailVO.getConsumePv()
|
||||
// .add(detailVO.getNewConsumePv())
|
||||
.add(detailVO.getTeamConsumePv())
|
||||
.add(detailVO.getTeamNewPv())
|
||||
// .add(detailVO.getTeamNewPv())
|
||||
.add(detailVO.getSNewConsumePv())
|
||||
.add(detailVO.getSTeamNewPv())
|
||||
);
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* 排除昨日日结数据
|
||||
* @param detailVOList
|
||||
*/
|
||||
public static void excludeDailySettlementData(List<CuMemberRetailDataStatisticsDetailVO> detailVOList){
|
||||
detailVOList.parallelStream().forEach(detailVO -> {
|
||||
detailVO.setTotalBoxNum(
|
||||
detailVO.getTotalBoxNum()
|
||||
- detailVO.getTeamBoxNum() // 团队累计消费盒数(日结)
|
||||
);
|
||||
detailVO.setTotalPv(
|
||||
detailVO.getTotalPv().subtract(detailVO.getTeamConsumePv())
|
||||
);
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* 排除昨日日结注水数据
|
||||
* @param detailVOList
|
||||
*/
|
||||
public static void excludeWaterInjectionData(List<CuMemberRetailDataStatisticsDetailVO> detailVOList){
|
||||
detailVOList.parallelStream().forEach(detailVO -> {
|
||||
detailVO.setTotalBoxNum(
|
||||
detailVO.getTotalBoxNum()
|
||||
- detailVO.getBigBoxNum() // 注水大区
|
||||
- detailVO.getSmallBoxNum() // 注水小区
|
||||
);
|
||||
});
|
||||
}
|
||||
/**
|
||||
* 增加虚拟分支 主要为
|
||||
* 1.自己的消费总数
|
||||
|
|
@ -79,12 +143,16 @@ public class DataStatisticsUtil {
|
|||
.memberCode(BIG_RANGE_VIRTUAL_NAME)
|
||||
.totalBoxNum(detailVO.getBigBoxNum())
|
||||
.totalPv(BigDecimal.ZERO)
|
||||
.bigBoxNum(0)
|
||||
.smallBoxNum(0)
|
||||
.build();
|
||||
CuMemberRetailDataStatisticsDetailVO smallRangeVirtualDetailVO = CuMemberRetailDataStatisticsDetailVO.builder()
|
||||
.pkId(SMALL_RANGE_VIRTUAL_ID)
|
||||
.memberCode(SMALL_RANGE_VIRTUAL_NAME)
|
||||
.totalBoxNum(detailVO.getBigBoxNum())
|
||||
.totalPv(BigDecimal.ZERO)
|
||||
.bigBoxNum(0)
|
||||
.smallBoxNum(0)
|
||||
.build();
|
||||
detailVOList.add(bigRangeVirtualDetailVO);
|
||||
detailVOList.add(smallRangeVirtualDetailVO);
|
||||
|
|
@ -107,6 +175,8 @@ public class DataStatisticsUtil {
|
|||
.add(detailVO.getNewConsumePv())
|
||||
.add(detailVO.getSNewConsumePv())
|
||||
)
|
||||
.bigBoxNum(0)
|
||||
.smallBoxNum(0)
|
||||
.build();
|
||||
}
|
||||
|
||||
|
|
@ -137,20 +207,27 @@ public class DataStatisticsUtil {
|
|||
* @return
|
||||
*/
|
||||
public static CuMemberRetailDataStatisticsDetailVO getDetailVOByPKID(List<CuMemberRetailDataStatisticsDetailVO> detailVOList, Long pkId){
|
||||
return detailVOList.stream().filter(o -> o.getPkId().equals(pkId)).findFirst().orElse(null);
|
||||
return detailVOList.parallelStream().filter(o -> o.getPkId().equals(pkId)).findFirst().orElse(null);
|
||||
}
|
||||
|
||||
private static Integer getMaxTotalBoxNum(List<CuMemberRetailDataStatisticsDetailVO> detailVOList) {
|
||||
return detailVOList.stream()
|
||||
return detailVOList.parallelStream()
|
||||
.map(CuMemberRetailDataStatisticsDetailVO::getTotalBoxNum)
|
||||
.filter(Objects::nonNull)
|
||||
.max(Integer::compare)
|
||||
.orElse(null);
|
||||
}
|
||||
private static CuMemberRetailDataStatisticsDetailVO getBigRangeDetailVO(List<CuMemberRetailDataStatisticsDetailVO> detailVOList, Long pkId){
|
||||
return detailVOList.stream()
|
||||
return detailVOList.parallelStream()
|
||||
.filter(vo -> vo.getTotalBoxNum() != null && !vo.getPkId().equals(pkId))
|
||||
.max(Comparator.comparingInt(CuMemberRetailDataStatisticsDetailVO::getTotalBoxNum))
|
||||
.orElse(null);
|
||||
}
|
||||
public static BigDecimal formatPV(BigDecimal pv){
|
||||
return pv.divide(
|
||||
new BigDecimal("10000"),
|
||||
4,
|
||||
RoundingMode.FLOOR
|
||||
);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,7 +1,6 @@
|
|||
package com.hzs.retail.member.vo;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||
import com.fasterxml.jackson.annotation.JsonIgnore;
|
||||
import com.hzs.common.core.annotation.BigDecimalFormat;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Builder;
|
||||
|
|
@ -17,12 +16,6 @@ import java.util.List;
|
|||
|
||||
/**
|
||||
* 会员业绩
|
||||
*
|
||||
* @Description:
|
||||
* @Author: ljc
|
||||
* @Time: 2023/5/5 20:08
|
||||
* @Classname: CuMemberAwardsUnderVO
|
||||
* @Package_name: com.hzs.member.achieve.vo
|
||||
*/
|
||||
@Data
|
||||
@Builder
|
||||
|
|
|
|||
|
|
@ -29,6 +29,11 @@ public class CuMemberRetailDataStatisticsDetailVO implements Serializable {
|
|||
*/
|
||||
private String memberCode;
|
||||
|
||||
/**
|
||||
* 激活状态
|
||||
*/
|
||||
private Integer enableStatus;
|
||||
|
||||
/**
|
||||
* 日结表-个人累计消费pv
|
||||
*/
|
||||
|
|
|
|||
|
|
@ -1,5 +1,6 @@
|
|||
package com.hzs.retail.member.vo;
|
||||
|
||||
import com.hzs.common.core.annotation.BigDecimalFormat;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Builder;
|
||||
import lombok.Data;
|
||||
|
|
@ -45,14 +46,17 @@ public class CuMemberRetailDataStatisticsResultVO implements Serializable {
|
|||
/**
|
||||
* 总业绩
|
||||
*/
|
||||
@BigDecimalFormat
|
||||
private BigDecimal totalPv;
|
||||
/**
|
||||
* 大区业绩
|
||||
*/
|
||||
@BigDecimalFormat
|
||||
private BigDecimal bigRangeTotalPv;
|
||||
/**
|
||||
* 小区业绩
|
||||
*/
|
||||
@BigDecimalFormat
|
||||
private BigDecimal smallRangeTotalPv;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -127,4 +127,9 @@ public class RetailMemberInfoVO implements Serializable {
|
|||
*/
|
||||
private Integer systemType;
|
||||
|
||||
/**
|
||||
* 是否激活(0=是,1=否)
|
||||
*/
|
||||
private Integer isActivate;
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -841,6 +841,7 @@
|
|||
SELECT
|
||||
cu.pk_id,
|
||||
cu.MEMBER_CODE,
|
||||
mr.ENABLE_STATUS,
|
||||
NVL( mr.CONSUME_PV, 0 ) consumePv,
|
||||
NVL( mr.NEW_CONSUME_PV, 0 ) newConsumePv,
|
||||
NVL( mr.TEAM_CONSUME_PV, 0 ) teamConsumePv,
|
||||
|
|
|
|||
|
|
@ -1,6 +1,5 @@
|
|||
package com.hzs.common.core.config;
|
||||
|
||||
import cn.hutool.json.JSONUtil;
|
||||
import com.fasterxml.jackson.core.JsonGenerator;
|
||||
import com.fasterxml.jackson.databind.BeanProperty;
|
||||
import com.fasterxml.jackson.databind.JsonMappingException;
|
||||
|
|
@ -8,14 +7,11 @@ import com.fasterxml.jackson.databind.JsonSerializer;
|
|||
import com.fasterxml.jackson.databind.SerializerProvider;
|
||||
import com.fasterxml.jackson.databind.ser.ContextualSerializer;
|
||||
import com.hzs.common.core.annotation.BigDecimalFormat;
|
||||
import com.hzs.common.core.constant.CacheConstants;
|
||||
import com.hzs.common.core.context.SecurityContextHolder;
|
||||
import com.hzs.common.core.service.RedisService;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.boot.jackson.JsonComponent;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.math.BigDecimal;
|
||||
import java.math.RoundingMode;
|
||||
import java.text.DecimalFormat;
|
||||
import java.util.Objects;
|
||||
|
||||
|
|
@ -28,15 +24,6 @@ public class BigDecimalSerializer extends JsonSerializer<BigDecimal> implements
|
|||
// 默认保留2位小数
|
||||
private String format = "#0.00";
|
||||
|
||||
private String zeroFormat = "#0";
|
||||
|
||||
private RedisService redisService;
|
||||
|
||||
@Autowired
|
||||
public void setRedisService(RedisService redisService) {
|
||||
this.redisService = redisService;
|
||||
}
|
||||
|
||||
/**
|
||||
* 序列化处理方式
|
||||
*
|
||||
|
|
@ -47,12 +34,10 @@ public class BigDecimalSerializer extends JsonSerializer<BigDecimal> implements
|
|||
*/
|
||||
@Override
|
||||
public void serialize(BigDecimal bigDecimal, JsonGenerator jsonGenerator, SerializerProvider serializerProvider) throws IOException {
|
||||
// if(ComputeUtil.compareEqual(ComputeUtil.computeSubtract(bigDecimal, bigDecimal.setScale(0, RoundingMode.DOWN)), BigDecimal.ZERO)){
|
||||
// jsonGenerator.writeString(new DecimalFormat(zeroFormat).format(bigDecimal));
|
||||
// }else{
|
||||
// jsonGenerator.writeString(bigDecimal.setScale(6, RoundingMode.HALF_UP).stripTrailingZeros().toString());
|
||||
jsonGenerator.writeString(new DecimalFormat(format).format(bigDecimal));
|
||||
// }
|
||||
DecimalFormat decimalFormat = new DecimalFormat(format);
|
||||
// 改为使用去尾方式显示
|
||||
decimalFormat.setRoundingMode(RoundingMode.DOWN);
|
||||
jsonGenerator.writeString(decimalFormat.format(bigDecimal));
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
@ -66,15 +51,13 @@ public class BigDecimalSerializer extends JsonSerializer<BigDecimal> implements
|
|||
@Override
|
||||
public JsonSerializer<?> createContextual(SerializerProvider serializerProvider, BeanProperty beanProperty) throws JsonMappingException {
|
||||
if (beanProperty != null) {
|
||||
Object bdCountry = redisService.getCacheObject(CacheConstants.BD_COUNTRY + SecurityContextHolder.getUserCountry());
|
||||
if (Objects.equals(beanProperty.getType().getRawClass(), BigDecimal.class)) {
|
||||
BigDecimalFormat bigDecimalFormat = beanProperty.getAnnotation((BigDecimalFormat.class));
|
||||
if (bigDecimalFormat == null) {
|
||||
bigDecimalFormat = beanProperty.getContextAnnotation(BigDecimalFormat.class);
|
||||
}
|
||||
BigDecimalSerializer bigDecimalSerializer = new BigDecimalSerializer();
|
||||
int numberPlaces = Integer.parseInt(JSONUtil.parseObj(bdCountry).get("numberPlaces").toString());
|
||||
bigDecimalSerializer.format = replaceNumber(numberPlaces);
|
||||
bigDecimalSerializer.format = replaceNumber();
|
||||
if (bigDecimalFormat != null) {
|
||||
bigDecimalSerializer.format = bigDecimalFormat.value();
|
||||
}
|
||||
|
|
@ -85,11 +68,12 @@ public class BigDecimalSerializer extends JsonSerializer<BigDecimal> implements
|
|||
return new BigDecimalSerializer();
|
||||
}
|
||||
|
||||
private String replaceNumber(int numberPlaces) {
|
||||
private String replaceNumber() {
|
||||
StringBuilder number = new StringBuilder("#0.");
|
||||
for (int i = 0; i < numberPlaces; i++) {
|
||||
for (int i = 0; i < 6; i++) {
|
||||
number.append("0");
|
||||
}
|
||||
return number.toString();
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -37,6 +37,21 @@ public class RabbitMqConstants {
|
|||
*/
|
||||
public static final String ORDER_SECOND_KEY = PREFIX + "order.second.key";
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* 奖金秒接-激活补偿 exchange
|
||||
*/
|
||||
public static final String ORDER_SECOND_ACTIVATE_COMPENSATION_EXCHANGE = PREFIX + "order.second_activate_compensation.exchange";
|
||||
/**
|
||||
* 奖金秒接-激活补偿 queue
|
||||
*/
|
||||
public static final String ORDER_SECOND_ACTIVATE_COMPENSATION_QUEUE = PREFIX + "order.second_activate_compensation.queue";
|
||||
/**
|
||||
* 奖金秒接-激活补偿 key
|
||||
*/
|
||||
public static final String ORDER_SECOND_ACTIVATE_COMPENSATION_KEY = PREFIX + "order.second_activate_compensation.key";
|
||||
|
||||
/**
|
||||
* 活动 exchange
|
||||
*/
|
||||
|
|
|
|||
|
|
@ -4,12 +4,7 @@ import lombok.AllArgsConstructor;
|
|||
import lombok.Getter;
|
||||
|
||||
/**
|
||||
* @description: 封顶方式
|
||||
* @author: sui q
|
||||
* @time: 2023/7/15 15:08
|
||||
* @classname: ExpandCapMethod
|
||||
* @package_name: com.hzs.common.core.enums
|
||||
* version 1.0.0
|
||||
* 封顶方式
|
||||
*/
|
||||
@AllArgsConstructor
|
||||
@Getter
|
||||
|
|
|
|||
|
|
@ -5,11 +5,7 @@ import lombok.AllArgsConstructor;
|
|||
import lombok.Getter;
|
||||
|
||||
/**
|
||||
* @Description: 签呈流程类型
|
||||
* @Author: jiang chao
|
||||
* @Time: 2022/11/10 17:35
|
||||
* @Classname: ESignType
|
||||
* @PackageName: com.hzs.common.core.enums
|
||||
* 签呈流程类型
|
||||
*/
|
||||
@AllArgsConstructor
|
||||
@Getter
|
||||
|
|
|
|||
|
|
@ -5,11 +5,7 @@ import lombok.Data;
|
|||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @Description: 基础权限基数
|
||||
* @Author: jiang chao
|
||||
* @Time: 2023/5/22 15:48
|
||||
* @Classname: BaseAuthorityEntity
|
||||
* @PackageName: com.hzs.common.core.web.domain
|
||||
* 基础权限基数
|
||||
*/
|
||||
@Data
|
||||
public class BaseAuthorityEntity {
|
||||
|
|
|
|||
Loading…
Reference in New Issue