From 07b70a81dd94f638d31108c2029b44c26f6dde69 Mon Sep 17 00:00:00 2001
From: luodangjia <luodangjia>
Date: 星期三, 15 一月 2025 09:58:42 +0800
Subject: [PATCH] 12.18
---
ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/OrderActivityInfoController.java | 127 ++++++++++++++++++++++++++++++++++++++---
1 files changed, 116 insertions(+), 11 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..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;
/**
@@ -46,11 +44,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 +59,57 @@
@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()
+ .between(OrderActivityInfo::getStartTime, orderActivityInfo.getStartTime(), orderActivityInfo.getEndTime())
+ .or()
+ .between(OrderActivityInfo::getEndTime, orderActivityInfo.getStartTime(), orderActivityInfo.getEndTime())
+ .list();
+ if (!list.isEmpty()){
+ for (OrderActivityInfo activityInfo : list) {
+ List<String> vips = Arrays.asList(activityInfo.getVipIds().split(","));
+ if (!vipIds.isEmpty()){
+ StringBuilder message = new StringBuilder();
+ 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+"在当前活动时间已有订单优惠");
+ }
+ }
+ }
+ }
+ }
orderActivityInfoService.save(orderActivityInfo);
+
return R.ok();
}
@@ -80,6 +130,57 @@
@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 = new ArrayList<>(Arrays.asList(orderActivityInfo.getVipIds().split(",")));
+ List<OrderActivityInfo> list = orderActivityInfoService.lambdaQuery()
+ .between(OrderActivityInfo::getStartTime, orderActivityInfo.getStartTime(), orderActivityInfo.getEndTime())
+ .or()
+ .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(","));
+ if (!vipIds.isEmpty()){
+ StringBuilder message = new StringBuilder();
+ 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+"在当前活动时间已有订单优惠");
+ }
+ }
+ }
+ }
+ }
orderActivityInfoService.updateById(orderActivityInfo);
return R.ok();
}
@@ -94,11 +195,15 @@
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())
+ .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))
+ ;
page.getRecords().forEach(item -> {
LocalDateTime startTime = item.getStartTime();
LocalDateTime now = LocalDateTime.now();
--
Gitblit v1.7.1