From a448d1716d59fbce1c2b4b82a95d339d5b37d8ae Mon Sep 17 00:00:00 2001
From: 无关风月 <443237572@qq.com>
Date: 星期二, 14 一月 2025 10:18:25 +0800
Subject: [PATCH] 修改bug

---
 ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/OrderActivityInfoController.java |  122 +++++++++++++++++++++-------------------
 1 files changed, 64 insertions(+), 58 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..ef649e0 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;
 
 /**
@@ -70,37 +68,41 @@
 			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,7 +130,7 @@
 	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())
 					.or()
@@ -136,37 +138,41 @@
 			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