3
0
Fork 0

Merge remote-tracking branch 'origin/dev' into dev

This commit is contained in:
sangelxiu1 2025-06-13 14:32:33 +08:00
commit d1a4f364ca
7 changed files with 121 additions and 130 deletions

View File

@ -32,7 +32,7 @@ import java.util.List;
public class ApiCuMemberBonusController extends BaseController { public class ApiCuMemberBonusController extends BaseController {
@Autowired @Autowired
private ICuMemberBonusService cuMemberBonusService; private ICuMemberBonusService iCuMemberBonusService;
/** /**
* 新零售实时奖金查询会员实时奖金当日的奖金 * 新零售实时奖金查询会员实时奖金当日的奖金
@ -45,7 +45,7 @@ public class ApiCuMemberBonusController extends BaseController {
bonusParam.setEndDate(DateUtils.afterDate(1, ChronoUnit.DAYS, DateUtils.currentDate())); bonusParam.setEndDate(DateUtils.afterDate(1, ChronoUnit.DAYS, DateUtils.currentDate()));
bonusParam.setGrantStatus(EGrantStatus.SETTLED.getValue()); bonusParam.setGrantStatus(EGrantStatus.SETTLED.getValue());
List<CuMemberBonusExt> cuMemberBonusList = cuMemberBonusService.queryMemberSecondBonusVoByCondition(bonusParam); List<CuMemberBonusExt> cuMemberBonusList = iCuMemberBonusService.queryMemberSecondBonusVoByCondition(bonusParam);
List<MemberBonusVO> memberBonusVOList = new ArrayList<>(); List<MemberBonusVO> memberBonusVOList = new ArrayList<>();
cuMemberBonusList.forEach(cuMemberBonus -> { cuMemberBonusList.forEach(cuMemberBonus -> {
if (ComputeUtil.compareValue(cuMemberBonus.getRealIncomeTotal())) { if (ComputeUtil.compareValue(cuMemberBonus.getRealIncomeTotal())) {
@ -63,25 +63,19 @@ public class ApiCuMemberBonusController extends BaseController {
} }
/** /**
* 查询会员某个时间段内的奖金默认查询15天内,查询直推 * 新零售实时奖金查询会员奖金列表
*/ */
@PostMapping("/query-bonus-first") @PostMapping("/query-bonus-first")
public TableDataInfo listFirstRepurchaseBonus(@RequestBody BonusParam bonusParam) { public TableDataInfo listFirstRepurchaseBonus(@RequestBody BonusParam bonusParam) {
setBonusParam(bonusParam); setBonusParam(bonusParam);
List<CuMemberBonusExt> cuMemberBonusList = cuMemberBonusService.queryMemberBonusVoByCondition(bonusParam);
startPage();
List<CuMemberBonusExt> cuMemberBonusList = iCuMemberBonusService.queryMemberBonusVoByCondition(bonusParam);
List<MemberBonusFirstPurchaseVO> firstPurchaseVOList = new ArrayList<>(); List<MemberBonusFirstPurchaseVO> firstPurchaseVOList = new ArrayList<>();
cuMemberBonusList.forEach(cuMemberBonus -> { cuMemberBonusList.forEach(cuMemberBonus -> {
MemberBonusFirstPurchaseVO memberBonusFirstPurchaseVO = BeanUtil.copyProperties(cuMemberBonus, MemberBonusFirstPurchaseVO.class, "settleDate"); MemberBonusFirstPurchaseVO memberBonusFirstPurchaseVO = BeanUtil.copyProperties(cuMemberBonus, MemberBonusFirstPurchaseVO.class, "settleDate");
packageSettleDate(cuMemberBonus, memberBonusFirstPurchaseVO); packageSettleDate(cuMemberBonus, memberBonusFirstPurchaseVO);
BigDecimal serviceSpend = ComputeUtil.computeSubtract(ComputeUtil.computeAddNum(memberBonusFirstPurchaseVO.getDirectIncome(), memberBonusFirstPurchaseVO.getExpandIncome(),
memberBonusFirstPurchaseVO.getCoachIncome(), memberBonusFirstPurchaseVO.getServiceIncome(), memberBonusFirstPurchaseVO.getShareIncome(),
memberBonusFirstPurchaseVO.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()));
memberBonusFirstPurchaseVO.setPurRealSubtotal(ComputeUtil.computeAdd(memberBonusFirstPurchaseVO.getPurRealSubtotal(), memberBonusFirstPurchaseVO.getGlobalPoints()));
firstPurchaseVOList.add(memberBonusFirstPurchaseVO); firstPurchaseVOList.add(memberBonusFirstPurchaseVO);
}); });
return getDataTable(firstPurchaseVOList); return getDataTable(firstPurchaseVOList);
@ -97,12 +91,13 @@ public class ApiCuMemberBonusController extends BaseController {
bonusParam.setEndDate(DateUtils.currentDate()); bonusParam.setEndDate(DateUtils.currentDate());
bonusParam.setStartDate(DateUtils.beforeDate(1, ChronoUnit.DAYS, bonusParam.getEndDate())); bonusParam.setStartDate(DateUtils.beforeDate(1, ChronoUnit.DAYS, bonusParam.getEndDate()));
List<CuMemberBonusExt> cuMemberBonusList = cuMemberBonusService.queryMemberBonusTotalByCondition(bonusParam); List<CuMemberBonusExt> cuMemberBonusList = iCuMemberBonusService.queryMemberBonusTotalByCondition(bonusParam);
MemberRealIncomeVO memberRealIncomeVO = new MemberRealIncomeVO(); MemberRealIncomeVO memberRealIncomeVO = new MemberRealIncomeVO();
if (CollectionUtil.isEmpty(cuMemberBonusList)) { if (CollectionUtil.isEmpty(cuMemberBonusList)) {
memberRealIncomeVO.setRealIncomeTotal(BigDecimal.ZERO); memberRealIncomeVO.setRealIncomeTotal(BigDecimal.ZERO);
} else { } 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)); return getDataTable(Collections.singletonList(memberRealIncomeVO));
} }
@ -113,7 +108,7 @@ public class ApiCuMemberBonusController extends BaseController {
@PostMapping("/query-bonus-repurchase") @PostMapping("/query-bonus-repurchase")
public TableDataInfo listRepurchaseBonus(@RequestBody BonusParam bonusParam) { public TableDataInfo listRepurchaseBonus(@RequestBody BonusParam bonusParam) {
setBonusParam(bonusParam); setBonusParam(bonusParam);
List<CuMemberBonusExt> cuMemberBonusList = cuMemberBonusService.queryMemberBonusVoByCondition(bonusParam); List<CuMemberBonusExt> cuMemberBonusList = iCuMemberBonusService.queryMemberBonusVoByCondition(bonusParam);
List<MemberBonusPurchaseVO> memberBonusPurchaseVoList = new ArrayList<>(); List<MemberBonusPurchaseVO> memberBonusPurchaseVoList = new ArrayList<>();
cuMemberBonusList.forEach(cuMemberBonus -> { cuMemberBonusList.forEach(cuMemberBonus -> {
MemberBonusPurchaseVO memberBonusPurchaseVO = BeanUtil.copyProperties(cuMemberBonus, MemberBonusPurchaseVO.class, "settleDate"); MemberBonusPurchaseVO memberBonusPurchaseVO = BeanUtil.copyProperties(cuMemberBonus, MemberBonusPurchaseVO.class, "settleDate");
@ -136,7 +131,7 @@ public class ApiCuMemberBonusController extends BaseController {
@PostMapping("/query-bonus-hi-fun") @PostMapping("/query-bonus-hi-fun")
public TableDataInfo listHiFunBonus(@RequestBody BonusParam bonusParam) { public TableDataInfo listHiFunBonus(@RequestBody BonusParam bonusParam) {
setBonusParam(bonusParam); setBonusParam(bonusParam);
List<CuMemberBonusExt> cuMemberBonusList = cuMemberBonusService.queryMemberBonusVoByCondition(bonusParam); List<CuMemberBonusExt> cuMemberBonusList = iCuMemberBonusService.queryMemberBonusVoByCondition(bonusParam);
List<MemberBonusHiFunVO> bonusHiFunVoList = new ArrayList<>(); List<MemberBonusHiFunVO> bonusHiFunVoList = new ArrayList<>();
cuMemberBonusList.forEach(cuMemberBonus -> { cuMemberBonusList.forEach(cuMemberBonus -> {
MemberBonusHiFunVO memberBonusHiFunVO = BeanUtil.copyProperties(cuMemberBonus, MemberBonusHiFunVO.class, "settleDate"); MemberBonusHiFunVO memberBonusHiFunVO = BeanUtil.copyProperties(cuMemberBonus, MemberBonusHiFunVO.class, "settleDate");
@ -160,6 +155,7 @@ public class ApiCuMemberBonusController extends BaseController {
private void setBonusParam(@RequestBody BonusParam bonusParam) { private void setBonusParam(@RequestBody BonusParam bonusParam) {
bonusParam.setPkCountry(SecurityUtils.getPkCountry()); bonusParam.setPkCountry(SecurityUtils.getPkCountry());
bonusParam.setPkMember(SecurityUtils.getUserId()); bonusParam.setPkMember(SecurityUtils.getUserId());
Date startDate = DateUtils.beforeDate(15, ChronoUnit.DAYS, DateUtils.currentDate()); Date startDate = DateUtils.beforeDate(15, ChronoUnit.DAYS, DateUtils.currentDate());
if (bonusParam.getStartDate() == null) { if (bonusParam.getStartDate() == null) {
bonusParam.setStartDate(startDate); bonusParam.setStartDate(startDate);
@ -180,7 +176,7 @@ public class ApiCuMemberBonusController extends BaseController {
public TableDataInfo listBonusSource(@RequestBody BonusParam bonusParam) { public TableDataInfo listBonusSource(@RequestBody BonusParam bonusParam) {
setBonusParam(bonusParam); setBonusParam(bonusParam);
startPage(); startPage();
TableDataInfo tableDataInfo = cuMemberBonusService.queryMemberBonusDetailVoByCondition(bonusParam); TableDataInfo tableDataInfo = iCuMemberBonusService.queryMemberBonusDetailVoByCondition(bonusParam);
return tableDataInfo; return tableDataInfo;
} }

View File

@ -21,7 +21,6 @@ import com.hzs.common.core.domain.R;
import com.hzs.common.core.enums.*; import com.hzs.common.core.enums.*;
import com.hzs.common.core.utils.ComputeUtil; import com.hzs.common.core.utils.ComputeUtil;
import com.hzs.common.core.utils.DateUtils; import com.hzs.common.core.utils.DateUtils;
import com.hzs.common.core.utils.StringUtils;
import com.hzs.common.core.web.page.TableDataInfo; import com.hzs.common.core.web.page.TableDataInfo;
import com.hzs.common.domain.member.bonus.CuMemberBonus; import com.hzs.common.domain.member.bonus.CuMemberBonus;
import com.hzs.common.domain.member.ext.*; import com.hzs.common.domain.member.ext.*;
@ -135,27 +134,28 @@ public class CuMemberBonusServiceImpl extends ServiceImpl<CuMemberBonusMapper, C
@Override @Override
public List<CuMemberBonusExt> queryMemberBonusVoByCondition(BonusParam bonusParam) { public List<CuMemberBonusExt> queryMemberBonusVoByCondition(BonusParam bonusParam) {
String value = iSystemConfigServiceApi.getBonusSystemConfig(bonusParam.getPkCountry(), ESystemConfig.EXPAND_CAP_METHOD.getKey()).getData(); // 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)) { // if (StringUtils.isNotEmpty(value) && Objects.equals(Integer.toString(EExpandCapMethod.WEEK_SETTLE.getValue()), value)) {
// 周结的话不能查询当前周的数据只能查询上周的数据 // // 周结的话不能查询当前周的数据只能查询上周的数据
bonusParam.setEndDate(DateUtils.parseStringToDate(DateUtils.getRecentlyTuesday(bonusParam.getEndDate()))); // bonusParam.setEndDate(DateUtils.parseStringToDate(DateUtils.getRecentlyTuesday(bonusParam.getEndDate())));
} // }
return handleMemberBonusPurchase(getCuMemberBonusExtList(bonusParam), bonusParam, value); return handleMemberBonusPurchase(getCuMemberBonusExtList(bonusParam), bonusParam);
} }
private List<CuMemberBonusExt> handleMemberBonusPurchase(List<CuMemberBonusExt> cuMemberBonusExtList, BonusParam bonusParam, String value) { private List<CuMemberBonusExt> handleMemberBonusPurchase(List<CuMemberBonusExt> cuMemberBonusExtList, BonusParam bonusParam) {
if (StringUtils.isNotEmpty(value) && Objects.equals(Integer.toString(EExpandCapMethod.WEEK_SETTLE.getValue()), value)) { // if (StringUtils.isNotEmpty(value) && Objects.equals(Integer.toString(EExpandCapMethod.WEEK_SETTLE.getValue()), value)) {
Collections.reverse(cuMemberBonusExtList); // Collections.reverse(cuMemberBonusExtList);
return cuMemberBonusExtList; // return cuMemberBonusExtList;
} // }
List<CuMemberBonusExt> memberBonusExtList = new ArrayList<>(); List<CuMemberBonusExt> memberBonusExtList = new ArrayList<>();
Map<String, CuMemberBonusExt> cuMemberBonusExtMap = new HashMap<>(); Map<String, CuMemberBonusExt> cuMemberBonusExtMap = new HashMap<>();
cuMemberBonusExtList.forEach(cuMemberBonusExt -> cuMemberBonusExtList.forEach(cuMemberBonusExt -> cuMemberBonusExtMap.put(DateUtils.parseDateToStr(DateUtils.YYYY_MM_DD, cuMemberBonusExt.getSettleDate()), cuMemberBonusExt));
cuMemberBonusExtMap.put(DateUtils.parseDateToStr(DateUtils.YYYY_MM_DD, cuMemberBonusExt.getSettleDate()), cuMemberBonusExt));
Date endDate = DateUtils.beforeDate(1, ChronoUnit.DAYS, bonusParam.getEndDate()); Date endDate = DateUtils.beforeDate(1, ChronoUnit.DAYS, bonusParam.getEndDate());
Date compareDate = DateUtils.parseStringToDateTime(DateUtils.parseDateToStr(DateUtils.YYYY_MM_DD, DateUtils.currentDate()) + " 13:00:00"); 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); String date = DateUtils.parseDateToFormat(DateUtils.YYYY_MM_DD, endDate);
if (cuMemberBonusExtMap.containsKey(date)) { if (cuMemberBonusExtMap.containsKey(date)) {
memberBonusExtList.add(cuMemberBonusExtMap.get(date)); memberBonusExtList.add(cuMemberBonusExtMap.get(date));
@ -178,22 +178,14 @@ public class CuMemberBonusServiceImpl extends ServiceImpl<CuMemberBonusMapper, C
cuMemberBonusExt.setRepurRangeIncome(BigDecimal.ZERO); cuMemberBonusExt.setRepurRangeIncome(BigDecimal.ZERO);
cuMemberBonusExt.setRepurExpandIncome(BigDecimal.ZERO); cuMemberBonusExt.setRepurExpandIncome(BigDecimal.ZERO);
cuMemberBonusExt.setRepurRealSubtotal(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.setRepurCoupon(BigDecimal.ZERO);
cuMemberBonusExt.setRepurCouponShare(BigDecimal.ZERO); cuMemberBonusExt.setRepurCouponShare(BigDecimal.ZERO);
cuMemberBonusExt.setRepurCouponSubtotal(BigDecimal.ZERO); cuMemberBonusExt.setRepurCouponSubtotal(BigDecimal.ZERO);
cuMemberBonusExt.setMakerDirectIncome(BigDecimal.ZERO);
cuMemberBonusExt.setMakerShareIncome(BigDecimal.ZERO);
cuMemberBonusExt.setMakerRealSubtotal(BigDecimal.ZERO);
cuMemberBonusExt.setGlobalPoints(BigDecimal.ZERO); cuMemberBonusExt.setGlobalPoints(BigDecimal.ZERO);
cuMemberBonusExt.setCarAwardPoints(BigDecimal.ZERO); cuMemberBonusExt.setCarAwardPoints(BigDecimal.ZERO);
cuMemberBonusExt.setHiFunIncome(BigDecimal.ZERO);
cuMemberBonusExt.setHaiFunIncome(BigDecimal.ZERO);
cuMemberBonusExt.setRealIncomeTotal(BigDecimal.ZERO); cuMemberBonusExt.setRealIncomeTotal(BigDecimal.ZERO);
cuMemberBonusExt.setStoreIncome(BigDecimal.ZERO); cuMemberBonusExt.setStoreIncome(BigDecimal.ZERO);
cuMemberBonusExt.setRetailRangeIncome(BigDecimal.ZERO); cuMemberBonusExt.setRetailRangeIncome(BigDecimal.ZERO);
cuMemberBonusExt.setRetailSameLevelIncome(BigDecimal.ZERO); cuMemberBonusExt.setRetailSameLevelIncome(BigDecimal.ZERO);
cuMemberBonusExt.setRetailAreaIncome(BigDecimal.ZERO); cuMemberBonusExt.setRetailAreaIncome(BigDecimal.ZERO);

View File

@ -1,84 +1,111 @@
package com.hzs.bonus.bonus.vo; package com.hzs.bonus.bonus.vo;
import lombok.AllArgsConstructor; import com.hzs.common.core.annotation.BigDecimalFormat;
import lombok.Builder; import lombok.*;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.math.BigDecimal; 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 @Data
@Builder @Builder
@AllArgsConstructor @AllArgsConstructor
@NoArgsConstructor @NoArgsConstructor
public class MemberBonusFirstPurchaseVO extends PubMemberBonusVO { public class MemberBonusFirstPurchaseVO extends PubMemberBonusVO {
/** // /**
* 直推收益 // * 直推收益
*/ // */
private BigDecimal directIncome; // private BigDecimal directIncome;
//
/** // /**
* 拓展收益 // * 拓展收益
*/ // */
private BigDecimal expandIncome; // private BigDecimal expandIncome;
//
/** // /**
* 辅导收益 // * 辅导收益
*/ // */
private BigDecimal coachIncome; // private BigDecimal coachIncome;
//
/** // /**
* 分红收益 // * 分红收益
*/ // */
private BigDecimal shareIncome; // private BigDecimal shareIncome;
//
/** // /**
* 报单收益 // * 报单收益
*/ // */
private BigDecimal serviceIncome; // private BigDecimal serviceIncome;
/** /**
* 商城重消 * 商城重消
*/ */
@BigDecimalFormat
private BigDecimal backPoints; 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; @BigDecimalFormat
private BigDecimal realIncomeTotal;
/**
* 乐学直推收益
*/
private BigDecimal globalPoints;
} }

View File

@ -1,17 +1,13 @@
package com.hzs.bonus.bonus.vo; package com.hzs.bonus.bonus.vo;
import com.hzs.common.core.annotation.BigDecimalFormat;
import lombok.Data; import lombok.Data;
import java.io.Serializable; import java.io.Serializable;
import java.math.BigDecimal; 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 @Data
public class MemberRealIncomeVO implements Serializable { public class MemberRealIncomeVO implements Serializable {
@ -19,5 +15,6 @@ public class MemberRealIncomeVO implements Serializable {
/** /**
* 实发收益总计 * 实发收益总计
*/ */
@BigDecimalFormat
private BigDecimal realIncomeTotal; private BigDecimal realIncomeTotal;
} }

View File

@ -10,6 +10,7 @@ import java.math.BigDecimal;
*/ */
@Data @Data
public class PubMemberBonusVO implements Serializable { public class PubMemberBonusVO implements Serializable {
/** /**
* 结算日期 * 结算日期
*/ */
@ -19,4 +20,5 @@ public class PubMemberBonusVO implements Serializable {
* 平台服务费 * 平台服务费
*/ */
private BigDecimal serviceSpend; private BigDecimal serviceSpend;
} }

View File

@ -1,7 +1,6 @@
package com.hzs.retail.member.vo; package com.hzs.retail.member.vo;
import com.fasterxml.jackson.annotation.JsonFormat; import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonIgnore;
import com.hzs.common.core.annotation.BigDecimalFormat; import com.hzs.common.core.annotation.BigDecimalFormat;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import lombok.Builder; 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 @Data
@Builder @Builder

View File

@ -1,6 +1,5 @@
package com.hzs.common.core.config; package com.hzs.common.core.config;
import cn.hutool.json.JSONUtil;
import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.JsonGenerator;
import com.fasterxml.jackson.databind.BeanProperty; import com.fasterxml.jackson.databind.BeanProperty;
import com.fasterxml.jackson.databind.JsonMappingException; 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.SerializerProvider;
import com.fasterxml.jackson.databind.ser.ContextualSerializer; import com.fasterxml.jackson.databind.ser.ContextualSerializer;
import com.hzs.common.core.annotation.BigDecimalFormat; 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 org.springframework.boot.jackson.JsonComponent;
import java.io.IOException; import java.io.IOException;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.math.RoundingMode;
import java.text.DecimalFormat; import java.text.DecimalFormat;
import java.util.Objects; import java.util.Objects;
@ -28,15 +24,6 @@ public class BigDecimalSerializer extends JsonSerializer<BigDecimal> implements
// 默认保留2位小数 // 默认保留2位小数
private String format = "#0.00"; 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 @Override
public void serialize(BigDecimal bigDecimal, JsonGenerator jsonGenerator, SerializerProvider serializerProvider) throws IOException { public void serialize(BigDecimal bigDecimal, JsonGenerator jsonGenerator, SerializerProvider serializerProvider) throws IOException {
// if(ComputeUtil.compareEqual(ComputeUtil.computeSubtract(bigDecimal, bigDecimal.setScale(0, RoundingMode.DOWN)), BigDecimal.ZERO)){ DecimalFormat decimalFormat = new DecimalFormat(format);
// jsonGenerator.writeString(new DecimalFormat(zeroFormat).format(bigDecimal)); // 改为使用去尾方式显示
// }else{ decimalFormat.setRoundingMode(RoundingMode.DOWN);
// jsonGenerator.writeString(bigDecimal.setScale(6, RoundingMode.HALF_UP).stripTrailingZeros().toString()); jsonGenerator.writeString(decimalFormat.format(bigDecimal));
jsonGenerator.writeString(new DecimalFormat(format).format(bigDecimal));
// }
} }
/** /**
@ -66,15 +51,13 @@ public class BigDecimalSerializer extends JsonSerializer<BigDecimal> implements
@Override @Override
public JsonSerializer<?> createContextual(SerializerProvider serializerProvider, BeanProperty beanProperty) throws JsonMappingException { public JsonSerializer<?> createContextual(SerializerProvider serializerProvider, BeanProperty beanProperty) throws JsonMappingException {
if (beanProperty != null) { if (beanProperty != null) {
Object bdCountry = redisService.getCacheObject(CacheConstants.BD_COUNTRY + SecurityContextHolder.getUserCountry());
if (Objects.equals(beanProperty.getType().getRawClass(), BigDecimal.class)) { if (Objects.equals(beanProperty.getType().getRawClass(), BigDecimal.class)) {
BigDecimalFormat bigDecimalFormat = beanProperty.getAnnotation((BigDecimalFormat.class)); BigDecimalFormat bigDecimalFormat = beanProperty.getAnnotation((BigDecimalFormat.class));
if (bigDecimalFormat == null) { if (bigDecimalFormat == null) {
bigDecimalFormat = beanProperty.getContextAnnotation(BigDecimalFormat.class); bigDecimalFormat = beanProperty.getContextAnnotation(BigDecimalFormat.class);
} }
BigDecimalSerializer bigDecimalSerializer = new BigDecimalSerializer(); BigDecimalSerializer bigDecimalSerializer = new BigDecimalSerializer();
int numberPlaces = Integer.parseInt(JSONUtil.parseObj(bdCountry).get("numberPlaces").toString()); bigDecimalSerializer.format = replaceNumber();
bigDecimalSerializer.format = replaceNumber(numberPlaces);
if (bigDecimalFormat != null) { if (bigDecimalFormat != null) {
bigDecimalSerializer.format = bigDecimalFormat.value(); bigDecimalSerializer.format = bigDecimalFormat.value();
} }
@ -85,11 +68,12 @@ public class BigDecimalSerializer extends JsonSerializer<BigDecimal> implements
return new BigDecimalSerializer(); return new BigDecimalSerializer();
} }
private String replaceNumber(int numberPlaces) { private String replaceNumber() {
StringBuilder number = new StringBuilder("#0."); StringBuilder number = new StringBuilder("#0.");
for (int i = 0; i < numberPlaces; i++) { for (int i = 0; i < 6; i++) {
number.append("0"); number.append("0");
} }
return number.toString(); return number.toString();
} }
} }