From c3a122ccd2b641d875873864055225064b190fbb Mon Sep 17 00:00:00 2001 From: mitao <2763622819@qq.com> Date: 星期五, 07 六月 2024 14:48:58 +0800 Subject: [PATCH] 1.提交【管理后台】大屏操作台相关接口 2.提交【管理后台】营销管理-视频管理相关接口 --- ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/async/AsyncMethodService.java | 79 +++++++++++++++++++++++++++++++++++++++ 1 files changed, 78 insertions(+), 1 deletions(-) diff --git a/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/async/AsyncMethodService.java b/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/async/AsyncMethodService.java index 101fcbb..1459ee3 100644 --- a/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/async/AsyncMethodService.java +++ b/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/async/AsyncMethodService.java @@ -1,7 +1,11 @@ package com.ruoyi.member.service.async; +import com.google.common.collect.Lists; +import com.ruoyi.common.core.utils.StringUtils; import com.ruoyi.member.domain.MemberLevel; import com.ruoyi.member.service.IMemberService; +import com.ruoyi.system.api.domain.Member; +import java.math.BigDecimal; import java.util.List; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; @@ -26,6 +30,79 @@ */ @Async public void handleMemberLevel(List<MemberLevel> memberLevels) { - memberService.list(); + List<Member> list = memberService.list(); + if (StringUtils.isEmpty(memberLevels)) { + // 如果memberLevels为空或为null,则无需进一步处理 + return; + } + + List<Member> members = memberService.list(); + if (StringUtils.isEmpty(members)) { + // 如果成员列表为空或为null,则无需进一步处理 + return; + } + + for (Member member : members) { + BigDecimal money = member.getMoney(); + member.setLevel(findAppropriateLevel(memberLevels, money)); + } + } + + private static int findAppropriateLevel(List<MemberLevel> memberLevels, BigDecimal money) { + // 对于最开始的level,设置为0(假设0是最低等级) + int level = 0; + + for (int i = 0; i < memberLevels.size(); i++) { + MemberLevel currentLevel = memberLevels.get(i); + BigDecimal currentCumulativeConsumption = currentLevel.getCumulativeConsumption(); + + // 如果当前成员的消费额小于等于当前等级的累积消费额 + if (money.compareTo(currentCumulativeConsumption) < 0) { + return level; + } + + // 更新level为当前等级,准备下一次比较 + level = currentLevel.getLevel(); + } + + // 如果遍历完成后还没有返回,说明该成员的消费额高于所有已定义等级的累积消费额 + level = memberLevels.get(memberLevels.size() - 1).getLevel(); + return level; + } + + public static void main(String[] args) { + MemberLevel build1 = MemberLevel.builder().id(1L).level(1) + .cumulativeConsumption(BigDecimal.valueOf(100)) + .build(); + MemberLevel build2 = MemberLevel.builder().id(2L).level(2) + .cumulativeConsumption(BigDecimal.valueOf(200)) + .build(); + MemberLevel build3 = MemberLevel.builder().id(3L).level(3) + .cumulativeConsumption(BigDecimal.valueOf(300)) + .build(); + MemberLevel build4 = MemberLevel.builder().id(4L).level(4) + .cumulativeConsumption(BigDecimal.valueOf(500)) + .build(); + MemberLevel build5 = MemberLevel.builder().id(5L).level(5) + .cumulativeConsumption(BigDecimal.valueOf(500)) + .build(); + MemberLevel build6 = MemberLevel.builder().id(6L).level(6) + .cumulativeConsumption(BigDecimal.valueOf(600)) + .build(); + MemberLevel build7 = MemberLevel.builder().id(7L).level(7) + .cumulativeConsumption(BigDecimal.valueOf(700)) + .build(); + MemberLevel build8 = MemberLevel.builder().id(8L).level(8) + .cumulativeConsumption(BigDecimal.valueOf(800)) + .build(); + MemberLevel build9 = MemberLevel.builder().id(9L).level(9) + .cumulativeConsumption(BigDecimal.valueOf(900)) + .build(); + MemberLevel build10 = MemberLevel.builder().id(10L).level(10) + .cumulativeConsumption(BigDecimal.valueOf(1000)) + .build(); + List<MemberLevel> memberLevels = Lists.newArrayList(build1, build2, build3, build4, + build5, build6, build7, build8, build9, build10); + System.out.println(findAppropriateLevel(memberLevels, BigDecimal.valueOf(50))); } } -- Gitblit v1.7.1