From 3bc7fe7b6eb9a6f9b6ed346b6cd3c8f5a4a32e39 Mon Sep 17 00:00:00 2001
From: luofl <1442745593@qq.com>
Date: 星期五, 11 四月 2025 09:09:14 +0800
Subject: [PATCH] 1

---
 cloud-server-activity/src/main/java/com/dsh/activity/controller/THuiminCardController.java |   59 +++++++++++++++++++++++++++++++++++++++++++++++------------
 1 files changed, 47 insertions(+), 12 deletions(-)

diff --git a/cloud-server-activity/src/main/java/com/dsh/activity/controller/THuiminCardController.java b/cloud-server-activity/src/main/java/com/dsh/activity/controller/THuiminCardController.java
index b227540..e41cc81 100644
--- a/cloud-server-activity/src/main/java/com/dsh/activity/controller/THuiminCardController.java
+++ b/cloud-server-activity/src/main/java/com/dsh/activity/controller/THuiminCardController.java
@@ -27,9 +27,20 @@
     private PayHuiminService payHuiminService;
 
 
-    @GetMapping("/queryPage")
-    public Page<THuiminCard> queryPage(Page<THuiminCard> page, THuiminCard tHuiminCard) {
+    @PostMapping("/queryPage")
+    public Page<THuiminCard> queryPage(@RequestBody THuiminCard tHuiminCard) {
         QueryWrapper<THuiminCard> queryWrapper = new QueryWrapper<>();
+
+
+        Integer objectType = tHuiminCard.getObjectType();
+        Integer objectId = tHuiminCard.getObjectId();
+        if (objectType == 2){
+            queryWrapper.eq("operatorId",objectId);
+        }
+        if (objectType == 3){
+            queryWrapper.apply("FIND_IN_SET("+objectId+",storeIds)");
+        }
+
         if (!StringUtils.isEmpty(tHuiminCard.getHuiMinName())){
             queryWrapper.like("huiMinName",tHuiminCard.getHuiMinName());
         }
@@ -40,19 +51,19 @@
             queryWrapper.ge("startTime",tHuiminCard.getStartTime());
             queryWrapper.le("endTime",tHuiminCard.getEndTime());
         }
-        Integer flag = tHuiminCard.getFlag();
-        if (flag != null){
+        Integer huiMinStatus = tHuiminCard.getHuiMinStatus();
+        // 惠民卡状态:1未开始 2已开始 3已结束
+        if (huiMinStatus != null){
             Date now = new Date();
-            switch (flag) {
+            switch (huiMinStatus) {
                 case 1:
-                    queryWrapper.le("startTime", now);
+                    queryWrapper.gt("startTime", now);
                     break;
-                    case 2:
-                    queryWrapper.ge("startTime", now);
+                case 2:
+                    queryWrapper.apply("(startTime <= now() AND endTime >= now()) OR(startTime IS NULL AND endTime IS NULL)");
+                    break;
+                case 3:
                     queryWrapper.le("endTime", now);
-                    break;
-                    case 3:
-                    queryWrapper.lt("endTime", now);
                     break;
             }
         }
@@ -60,8 +71,14 @@
         if (tHuiminCard.getStatus() != null){
             queryWrapper.eq("status",tHuiminCard.getStatus());
         }
+        Page<THuiminCard> page = new Page<>();
+        page.setCurrent(tHuiminCard.getCurrent());
+        page.setSize(tHuiminCard.getSize());
         Page<THuiminCard> page1 = tHuiminCardService.page(page, queryWrapper);
         List<THuiminCard> records = page1.getRecords();
+        if (records.isEmpty()){
+            return page1;
+        }
         List<Integer> cardIds = records.stream().map(THuiminCard::getId).collect(Collectors.toList());
         List<TPayHuimin> list = payHuiminService.list(new LambdaQueryWrapper<TPayHuimin>()
                 .in(TPayHuimin::getCardId, cardIds));
@@ -75,6 +92,25 @@
 
         records.forEach(item -> {
             item.setBuyCount(cardIdCountMap.getOrDefault(item.getId(), 0L).intValue());
+
+            // 惠民卡状态计算逻辑
+            Date startTime = item.getStartTime();
+            Date endTime = item.getEndTime();
+
+            Date now = new Date();
+            if (startTime == null || endTime == null) {
+                // 时间字段未填写时默认状态为「已开始」
+                item.setHuiMinStatus(2);
+            } else {
+                if (startTime.after(now)) {
+                    item.setHuiMinStatus(1); // 未开始
+                } else if (endTime.before(now)) {
+                    item.setHuiMinStatus(3); // 已结束
+                } else {
+                    item.setHuiMinStatus(2); // 已开始
+                }
+            }
+
         });
         return page1;
     }
@@ -92,7 +128,6 @@
 
     @PostMapping("/updateById")
     public R<?> updateById(@RequestBody THuiminCard tHuiminCard) {
-        String unUseTimes = tHuiminCard.getUnUseTimes();
         tHuiminCardService.updateById(tHuiminCard);
         return R.ok("");
     }

--
Gitblit v1.7.1