From 8259d9e34cda5c68f69cbd3fea3eba602163c9a7 Mon Sep 17 00:00:00 2001 From: cabbage <281119120@qq.com> Date: Thu, 8 May 2025 09:28:06 +0800 Subject: [PATCH] =?UTF-8?q?##=20=E9=A6=96=E9=A1=B5=E6=B7=BB=E5=8A=A0?= =?UTF-8?q?=E8=B7=9D=E4=B8=8B=E5=A5=96=E8=A1=94=E6=95=B0=E6=8D=AE=E5=B7=AE?= =?UTF-8?q?=E5=A4=9A=E5=B0=91=EF=BC=9B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../impl/CuMemberAchieveServiceImpl.java | 67 ++++++++++++++----- .../member/achieve/vo/MemberAwardsNewVO.java | 57 ++++++++++++++++ .../controller/api/ApiHomePageController.java | 5 +- .../member/achieve/CuMemberTreeMapper.xml | 2 + 4 files changed, 112 insertions(+), 19 deletions(-) create mode 100644 bd-business/bd-business-member/src/main/java/com/hzs/member/achieve/vo/MemberAwardsNewVO.java diff --git a/bd-business/bd-business-member/src/main/java/com/hzs/member/achieve/service/impl/CuMemberAchieveServiceImpl.java b/bd-business/bd-business-member/src/main/java/com/hzs/member/achieve/service/impl/CuMemberAchieveServiceImpl.java index 41daaa2c..56621bd8 100644 --- a/bd-business/bd-business-member/src/main/java/com/hzs/member/achieve/service/impl/CuMemberAchieveServiceImpl.java +++ b/bd-business/bd-business-member/src/main/java/com/hzs/member/achieve/service/impl/CuMemberAchieveServiceImpl.java @@ -352,8 +352,19 @@ public class CuMemberAchieveServiceImpl extends ServiceImpl awardsList = iAwardsServiceApi.queryAwards(pkCountry).getData(); + // 当前会员奖衔 + BdAwards bdAwards = awardsList.stream() + .filter(tmp -> tmp.getPkId().equals(cuMember.getPkAwards())) + .findFirst().get(); + if (bdAwards.getAwardsValue() < EAwards.CHAIRMAN.getValue()) { + // 不是最后三级,需要显示业绩 + // 大于当前奖衔的列表 + BdAwards nextBdAwards = awardsList.stream() + .filter(tmp -> tmp.getAwardsValue() > bdAwards.getAwardsValue()) + .min(Comparator.comparingInt(BdAwards::getAwardsValue)).get(); + resultVO.setTarAwardsName(nextBdAwards.getAwardsName()); + + if (resultVO.getASumRealPv().compareTo(resultVO.getBSumRealPv()) <= 0) { + // 左区 小于等于 右区,左区为小区 + resultVO.setTargetPv(nextBdAwards.getCommunityCheck().subtract(resultVO.getASumRealPv()).divide(big10000, 2, BigDecimal.ROUND_FLOOR)); + } else { + // 右区为小区 + resultVO.setTargetPv(nextBdAwards.getCommunityCheck().subtract(resultVO.getBSumRealPv()).divide(big10000, 2, BigDecimal.ROUND_FLOOR)); + } + } + + resultVO.setASumPv(resultVO.getASumPv().divide(big10000, 2, BigDecimal.ROUND_FLOOR)); + resultVO.setBSumPv(resultVO.getBSumPv().divide(big10000, 2, BigDecimal.ROUND_FLOOR)); + resultVO.setASumRealPv(resultVO.getASumRealPv().divide(big10000, 2, BigDecimal.ROUND_FLOOR)); + resultVO.setBSumRealPv(resultVO.getBSumRealPv().divide(big10000, 2, BigDecimal.ROUND_FLOOR)); + return resultVO; } /** diff --git a/bd-business/bd-business-member/src/main/java/com/hzs/member/achieve/vo/MemberAwardsNewVO.java b/bd-business/bd-business-member/src/main/java/com/hzs/member/achieve/vo/MemberAwardsNewVO.java new file mode 100644 index 00000000..7efffcde --- /dev/null +++ b/bd-business/bd-business-member/src/main/java/com/hzs/member/achieve/vo/MemberAwardsNewVO.java @@ -0,0 +1,57 @@ +package com.hzs.member.achieve.vo; + +import com.hzs.common.core.annotation.BigDecimalFormat; +import lombok.Data; + +import java.io.Serializable; +import java.math.BigDecimal; + +@Data +public class MemberAwardsNewVO implements Serializable { + + /** + * A区新增业绩 -- 昨日业绩 + */ + @BigDecimalFormat + private BigDecimal aNewPv; + /** + * B区新增业绩 -- 昨日业绩 + */ + @BigDecimalFormat + private BigDecimal bNewPv; + + /** + * A区当月业绩 + */ + @BigDecimalFormat + private BigDecimal aMonthPv; + /** + * B区当月业绩 + */ + @BigDecimalFormat + private BigDecimal bMonthPv; + + /** + * A区累计业绩 -- 历史业绩 + */ + @BigDecimalFormat + private BigDecimal aSumPv; + /** + * B区累计业绩 -- 历史业绩 + */ + @BigDecimalFormat + private BigDecimal bSumPv; + + /** + * 目标业绩 + */ + @BigDecimalFormat() + private BigDecimal targetPv; + + /** + * 目标奖衔名称 + */ + private String tarAwardsName; + + +} diff --git a/bd-business/bd-business-member/src/main/java/com/hzs/member/base/controller/api/ApiHomePageController.java b/bd-business/bd-business-member/src/main/java/com/hzs/member/base/controller/api/ApiHomePageController.java index c324f174..881b6098 100644 --- a/bd-business/bd-business-member/src/main/java/com/hzs/member/base/controller/api/ApiHomePageController.java +++ b/bd-business/bd-business-member/src/main/java/com/hzs/member/base/controller/api/ApiHomePageController.java @@ -1,5 +1,6 @@ package com.hzs.member.base.controller.api; +import cn.hutool.core.bean.BeanUtil; import com.hzs.common.core.config.BdConfig; import com.hzs.common.core.enums.EAwards; import com.hzs.common.core.enums.EEnv; @@ -11,6 +12,7 @@ import com.hzs.common.security.utils.SecurityUtils; import com.hzs.member.achieve.service.ICuMemberAchieveService; import com.hzs.member.achieve.vo.CuMemberAwardsUnderVO; import com.hzs.member.achieve.vo.CuMemberNewAddAchieveVO; +import com.hzs.member.achieve.vo.MemberAwardsNewVO; import com.hzs.member.base.dto.MemberYearAwardsDTO; import com.hzs.member.base.service.ICuMemberService; import lombok.extern.slf4j.Slf4j; @@ -67,7 +69,8 @@ public class ApiHomePageController { */ @GetMapping("/index-member-awards") public AjaxResult selectMemberAwards() { - return AjaxResult.success(cuMemberAchieveService.indexMemberAwards(SecurityUtils.getUserId(), SecurityUtils.getPkCountry())); + CuMemberAwardsUnderVO resultVO = cuMemberAchieveService.indexMemberAwards(SecurityUtils.getUserId(), SecurityUtils.getPkCountry()); + return AjaxResult.success(BeanUtil.copyProperties(resultVO, MemberAwardsNewVO.class)); } /** diff --git a/bd-business/bd-business-member/src/main/resources/mapper/member/achieve/CuMemberTreeMapper.xml b/bd-business/bd-business-member/src/main/resources/mapper/member/achieve/CuMemberTreeMapper.xml index 0ea844fd..c7641843 100644 --- a/bd-business/bd-business-member/src/main/resources/mapper/member/achieve/CuMemberTreeMapper.xml +++ b/bd-business/bd-business-member/src/main/resources/mapper/member/achieve/CuMemberTreeMapper.xml @@ -623,6 +623,8 @@ cms.pk_member, cms.a_sum_pv, cms.b_sum_pv, + cms.a_sum_real_pv, + cms.b_sum_real_pv, cms.a_new_pv + cms.rep_a_new_pv a_new_pv, cms.b_new_pv + cms.rep_b_new_pv b_new_pv from ${settleTable} cms