From acccff9860b271d55c55dc87486f7c20b9896e6c Mon Sep 17 00:00:00 2001
From: puzhibing <393733352@qq.com>
Date: 星期一, 13 一月 2025 16:19:54 +0800
Subject: [PATCH] 修改bug

---
 ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/OrderActivityInfoController.java |  110 +++++++++++++++++++++++++++++++++++++++++++++++++++----
 1 files changed, 102 insertions(+), 8 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 11a35a9..ad23743 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
@@ -46,11 +46,13 @@
 	 */
 	@ResponseBody
 	@PostMapping("/getNowOrderActivityInfo")
-	public R<OrderActivityInfo> getNowOrderActivityInfo(@RequestParam("vip") Integer vip){
-		OrderActivityInfo one = orderActivityInfoService.getOne(new LambdaQueryWrapper<OrderActivityInfo>().eq(OrderActivityInfo::getDelFlag, 0)
-				.last(" and now() between start_time and end_time and FIND_IN_SET(" + vip + ", vip_ids) limit 0, 1"));
+	public R<List<OrderActivityInfo>> getNowOrderActivityInfo(@RequestParam("vip") Integer vip){
+		List<OrderActivityInfo> one = orderActivityInfoService.list(new LambdaQueryWrapper<OrderActivityInfo>().eq(OrderActivityInfo::getDelFlag, 0)
+				.eq(OrderActivityInfo::getIsShelf, 1).last(" and now() between start_time and end_time and FIND_IN_SET(" + vip + ", vip_ids)"));
 		return R.ok(one);
 	}
+
+
 
 	/**
 	 * 添加活动
@@ -59,7 +61,52 @@
 	@ApiOperation(value = "订单优惠活动-添加活动", tags = {"管理后台-活动管理"})
 	public R<Void> saveActivityConfig(@RequestBody OrderActivityInfo orderActivityInfo){
 		orderActivityInfo.setIsShelf(0);
+		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())
+					.or()
+					.ge(OrderActivityInfo::getEndTime, 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;
+							}
+						}
+						StringBuilder res = message.deleteCharAt(message.length() - 1);
+						return R.fail(res+"在当前活动时间已有订单优惠");
+					}
+				}
+			}
+		}
 		orderActivityInfoService.save(orderActivityInfo);
+
 		return R.ok();
 	}
 
@@ -80,6 +127,50 @@
 	@ApiOperation(value = "修改活动", tags = {"管理后台-活动管理"})
 	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<OrderActivityInfo> list = orderActivityInfoService.lambdaQuery()
+					.le(OrderActivityInfo::getStartTime, orderActivityInfo.getStartTime())
+					.or()
+					.ge(OrderActivityInfo::getEndTime, 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;
+							}
+						}
+						StringBuilder res = message.deleteCharAt(message.length() - 1);
+						return R.fail(res+"在当前活动时间已有订单优惠");
+					}
+				}
+			}
+		}
 		orderActivityInfoService.updateById(orderActivityInfo);
 		return R.ok();
 	}
@@ -94,11 +185,14 @@
 									 OrderActivityInfo orderActivityInfo){
 
 		Page<OrderActivityInfo> page = orderActivityInfoService.page(Page.of(pageNum, pageSize), new LambdaQueryWrapper<OrderActivityInfo>()
-				.eq(orderActivityInfo.getId() != null, OrderActivityInfo::getId, orderActivityInfo.getId())
-				.eq(StringUtils.isNotEmpty(orderActivityInfo.getActivityName()), OrderActivityInfo::getActivityName, orderActivityInfo.getActivityName())
-				.lt(orderActivityInfo.getStatus() != null && orderActivityInfo.getStatus() == 0, OrderActivityInfo::getStartTime, orderActivityInfo.getStartTime())
-				.ge(orderActivityInfo.getStatus() != null && orderActivityInfo.getStatus() == 1, OrderActivityInfo::getEndTime, orderActivityInfo.getStartTime())
-				.eq(orderActivityInfo.getIsShelf() != null, OrderActivityInfo::getIsShelf, orderActivityInfo.getIsShelf()));
+				.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)
+				.orderByDesc(OrderActivityInfo::getCreateTime))
+				;
 		page.getRecords().forEach(item -> {
 			LocalDateTime startTime = item.getStartTime();
 			LocalDateTime now = LocalDateTime.now();

--
Gitblit v1.7.1