From 60de92280e4cd66a914f41b0681656a62cde346d Mon Sep 17 00:00:00 2001
From: Pu Zhibing <393733352@qq.com>
Date: 星期二, 14 一月 2025 14:50:52 +0800
Subject: [PATCH] 修改bug
---
ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/OrderActivityInfoController.java | 137 ++++++++++++++++++++++++---------------------
1 files changed, 74 insertions(+), 63 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 16009ad..0cbb3c5 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;
/**
@@ -62,45 +60,50 @@
public R<Void> saveActivityConfig(@RequestBody OrderActivityInfo orderActivityInfo){
orderActivityInfo.setIsShelf(0);
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();
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+"在当前活动时间已有订单优惠");
}
}
}
@@ -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+"在当前活动时间已有订单优惠");
}
}
}
@@ -190,6 +200,7 @@
.gt(orderActivityInfo.getStatus() != null && orderActivityInfo.getStatus() == 0, OrderActivityInfo::getStartTime, LocalDateTime.now())
.ge(orderActivityInfo.getStatus() != null && orderActivityInfo.getStatus() == 1, OrderActivityInfo::getEndTime, LocalDateTime.now())
.lt(orderActivityInfo.getStatus() != null && orderActivityInfo.getStatus() == 1, OrderActivityInfo::getStartTime, LocalDateTime.now())
+ .lt(orderActivityInfo.getStatus() != null && orderActivityInfo.getStatus() == 2, OrderActivityInfo::getEndTime, LocalDateTime.now())
.eq(orderActivityInfo.getIsShelf() != null, OrderActivityInfo::getIsShelf, orderActivityInfo.getIsShelf()).orderByDesc(OrderActivityInfo::getCreateTime)
.orderByDesc(OrderActivityInfo::getCreateTime))
;
--
Gitblit v1.7.1