From 8e9824eaef43087db0fd721b13bce947d6bc3864 Mon Sep 17 00:00:00 2001 From: 无关风月 <443237572@qq.com> Date: 星期二, 14 一月 2025 10:41:14 +0800 Subject: [PATCH] 修改bug --- ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/OrderActivityInfoController.java | 134 ++++++++++++++++++++++++-------------------- 1 files changed, 72 insertions(+), 62 deletions(-) diff --git a/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/OrderActivityInfoController.java b/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/OrderActivityInfoController.java index ad23743..b9a0f91 100644 --- a/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/OrderActivityInfoController.java +++ b/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/OrderActivityInfoController.java @@ -15,9 +15,7 @@ import javax.annotation.Resource; import java.time.LocalDateTime; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.List; +import java.util.*; import java.util.stream.Collectors; /** @@ -64,43 +62,48 @@ if (org.springframework.util.StringUtils.hasLength(orderActivityInfo.getVipIds())){ List<String> vipIds = new ArrayList<>(Arrays.asList(orderActivityInfo.getVipIds().split(","))); List<OrderActivityInfo> list = orderActivityInfoService.lambdaQuery() - .le(OrderActivityInfo::getStartTime, orderActivityInfo.getStartTime()) + .between(OrderActivityInfo::getStartTime, orderActivityInfo.getStartTime(), orderActivityInfo.getEndTime()) .or() - .ge(OrderActivityInfo::getEndTime, orderActivityInfo.getEndTime()).list(); + .between(OrderActivityInfo::getEndTime, orderActivityInfo.getStartTime(), orderActivityInfo.getEndTime()) + .list(); if (!list.isEmpty()){ for (OrderActivityInfo activityInfo : list) { List<String> vips = Arrays.asList(activityInfo.getVipIds().split(",")); - vipIds.addAll(vips); if (!vipIds.isEmpty()){ StringBuilder message = new StringBuilder(); - List<String> collect = vips.stream().sorted().collect(Collectors.toList()); - for (String s : collect) { - switch (s){ - case "1": - message.append("普通会员,"); - break; - case "2": - message.append("黄金会员,"); - break; - case "3": - message.append("钻石会员,"); - break; - case "4": - message.append("准代理,"); - break; - case "5": - message.append("代理,"); - break; - case "6": - message.append("总代,"); - break; - case "7": - message.append("合伙人,"); - break; + Set<String> set1 = new HashSet<>(vipIds); + Set<String> set2 = new HashSet<>(vips); + set1.retainAll(set2); + if (!set1.isEmpty()) { + // 有交集 判断是哪些会员 + for (String s : set1) { + switch (s){ + case "1": + message.append("普通会员,"); + break; + case "2": + message.append("黄金会员,"); + break; + case "3": + message.append("钻石会员,"); + break; + case "4": + message.append("准代理,"); + break; + case "5": + message.append("代理,"); + break; + case "6": + message.append("总代,"); + break; + case "7": + message.append("合伙人,"); + break; + } } + StringBuilder res = message.deleteCharAt(message.length() - 1); + return R.fail(res+"在当前活动时间已有订单优惠"); } - StringBuilder res = message.deleteCharAt(message.length() - 1); - return R.fail(res+"在当前活动时间已有订单优惠"); } } } @@ -128,45 +131,52 @@ public R<Void> updateActivityConfig(@RequestBody OrderActivityInfo orderActivityInfo){ orderActivityInfo.setId(Long.valueOf(orderActivityInfo.getIdStr())); if (org.springframework.util.StringUtils.hasLength(orderActivityInfo.getVipIds())){ - List<String> vipIds = Arrays.asList(orderActivityInfo.getVipIds().split(",")); + List<String> vipIds = new ArrayList<>(Arrays.asList(orderActivityInfo.getVipIds().split(","))); List<OrderActivityInfo> list = orderActivityInfoService.lambdaQuery() - .le(OrderActivityInfo::getStartTime, orderActivityInfo.getStartTime()) + .between(OrderActivityInfo::getStartTime, orderActivityInfo.getStartTime(), orderActivityInfo.getEndTime()) .or() - .ge(OrderActivityInfo::getEndTime, orderActivityInfo.getEndTime()).list(); + .between(OrderActivityInfo::getEndTime, orderActivityInfo.getStartTime(), orderActivityInfo.getEndTime()) + .list(); + // 遍历集合 通过startTime和endTime 判断是否与当前活动时间重叠 + if (!list.isEmpty()){ for (OrderActivityInfo activityInfo : list) { List<String> vips = Arrays.asList(activityInfo.getVipIds().split(",")); - vipIds.retainAll(vips); if (!vipIds.isEmpty()){ StringBuilder message = new StringBuilder(); - List<String> collect = vips.stream().sorted().collect(Collectors.toList()); - for (String s : collect) { - switch (s){ - case "1": - message.append("普通会员,"); - break; - case "2": - message.append("黄金会员,"); - break; - case "3": - message.append("钻石会员,"); - break; - case "4": - message.append("准代理,"); - break; - case "5": - message.append("代理,"); - break; - case "6": - message.append("总代,"); - break; - case "7": - message.append("合伙人,"); - break; + Set<String> set1 = new HashSet<>(vipIds); + Set<String> set2 = new HashSet<>(vips); + set1.retainAll(set2); + if (!set1.isEmpty()) { + // 有交集 判断是哪些会员 + for (String s : set1) { + switch (s){ + case "1": + message.append("普通会员,"); + break; + case "2": + message.append("黄金会员,"); + break; + case "3": + message.append("钻石会员,"); + break; + case "4": + message.append("准代理,"); + break; + case "5": + message.append("代理,"); + break; + case "6": + message.append("总代,"); + break; + case "7": + message.append("合伙人,"); + break; + } } + StringBuilder res = message.deleteCharAt(message.length() - 1); + return R.fail(res+"在当前活动时间已有订单优惠"); } - StringBuilder res = message.deleteCharAt(message.length() - 1); - return R.fail(res+"在当前活动时间已有订单优惠"); } } } -- Gitblit v1.7.1