From d1cab4b2f2690d1331f12f0d9de78bbbf926f390 Mon Sep 17 00:00:00 2001
From: 无关风月 <443237572@qq.com>
Date: 星期四, 16 一月 2025 14:27:51 +0800
Subject: [PATCH] Merge branch 'master' of http://120.76.84.145:10101/gitblit/r/java/qijisheng

---
 ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/OrderActivityInfoController.java |  152 +++++++++++++++++++++++++++-----------------------
 1 files changed, 81 insertions(+), 71 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..f75ff29 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+"在当前活动时间已有订单优惠");
 					}
 				}
 			}
@@ -181,16 +191,16 @@
 	@GetMapping("/list")
 	@ApiOperation(value = "订单优惠活动-获取活动列表", tags = {"管理后台-活动管理"})
 	public R<Page<OrderActivityInfo>> list(@ApiParam("页码") @RequestParam Integer pageNum,
-									 @ApiParam("每一页数据大小") Integer pageSize,
-									 OrderActivityInfo orderActivityInfo){
+									 @ApiParam("每一页数据大小") Integer pageSize, String id, String activityName, Integer status, Integer isShelf){
 
 		Page<OrderActivityInfo> page = orderActivityInfoService.page(Page.of(pageNum, pageSize), new LambdaQueryWrapper<OrderActivityInfo>()
-				.like(orderActivityInfo.getId() != null, OrderActivityInfo::getId, orderActivityInfo.getId())
-				.like(StringUtils.isNotEmpty(orderActivityInfo.getActivityName()), OrderActivityInfo::getActivityName, orderActivityInfo.getActivityName())
-				.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())
-				.eq(orderActivityInfo.getIsShelf() != null, OrderActivityInfo::getIsShelf, orderActivityInfo.getIsShelf()).orderByDesc(OrderActivityInfo::getCreateTime)
+				.like(StringUtils.isNotEmpty(id), OrderActivityInfo::getId, id)
+				.like(StringUtils.isNotEmpty(activityName), OrderActivityInfo::getActivityName, activityName)
+				.gt(status != null && status == 0, OrderActivityInfo::getStartTime, LocalDateTime.now())
+				.ge(status != null && status == 1, OrderActivityInfo::getEndTime, LocalDateTime.now())
+				.lt(status != null && status == 1, OrderActivityInfo::getStartTime, LocalDateTime.now())
+				.lt(status != null && status == 2, OrderActivityInfo::getEndTime, LocalDateTime.now())
+				.eq(isShelf != null, OrderActivityInfo::getIsShelf, isShelf).orderByDesc(OrderActivityInfo::getCreateTime)
 				.orderByDesc(OrderActivityInfo::getCreateTime))
 				;
 		page.getRecords().forEach(item -> {

--
Gitblit v1.7.1