From 4742874ad840d7e1e3ac79dc288b38e9a642319d Mon Sep 17 00:00:00 2001
From: 无关风月 <443237572@qq.com>
Date: 星期一, 02 六月 2025 19:11:00 +0800
Subject: [PATCH] bug修改

---
 cloud-server-activity/src/main/java/com/dsh/activity/controller/THuiminCardController.java |  114 +++++++++++++++++++++++++++++++++++++++++++++++++++-----
 1 files changed, 103 insertions(+), 11 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 927d2b0..7e8c2c2 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
@@ -1,5 +1,6 @@
 package com.dsh.activity.controller;
 
+import cn.hutool.core.collection.CollUtil;
 import cn.mb.cloud.common.data.controller.BaseController;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
@@ -7,12 +8,18 @@
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.dsh.activity.entity.THuiminCard;
 import com.dsh.activity.entity.TPayHuimin;
+import com.dsh.activity.entity.TStudent;
+import com.dsh.activity.feignclient.account.StudentClient;
 import com.dsh.activity.service.HuiminCardService;
 import com.dsh.activity.service.PayHuiminService;
+import com.dsh.activity.util.UUIDUtil;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.util.StringUtils;
 import org.springframework.web.bind.annotation.*;
 
+import java.text.SimpleDateFormat;
+import java.time.LocalDateTime;
+import java.time.ZoneId;
 import java.util.Date;
 import java.util.List;
 import java.util.Map;
@@ -25,11 +32,24 @@
     private HuiminCardService tHuiminCardService;
     @Autowired
     private PayHuiminService payHuiminService;
+    @Autowired
+    private StudentClient studentClient;
 
 
-    @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 +60,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 +80,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 +101,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;
     }
@@ -119,4 +164,51 @@
         tHuiminCardService.updateById(tHuiminCard);
         return "success";
     }
+    @GetMapping("/getCards")
+
+    public List<THuiminCard> getCards(@RequestParam("storeId")String storeId){
+        List<THuiminCard> list = tHuiminCardService.lambdaQuery().apply("FIND_IN_SET(" + storeId + ",storeIds)").list();
+        return list;
+    }
+    @GetMapping("/addPayHuiMing")
+    public void addPayHuiMing(@RequestParam("studentId")Integer studentId, @RequestParam("cardId")Integer cardId){
+        TPayHuimin tPayHuimin = new TPayHuimin();
+
+        THuiminCard byId = tHuiminCardService.getById(cardId);
+        List<TStudent> studentByIds = studentClient.getStudentByIds(studentId + "");
+        if (CollUtil.isNotEmpty(studentByIds)){
+            tPayHuimin.setAppUserId(studentByIds.get(0).getAppUserId());
+        }
+        tPayHuimin.setSalesMoney(byId.getSalesMoney());
+        tPayHuimin.setStudentId(studentId+"");
+        switch (byId.getHuiMinType()) {
+            case 1:
+                // 年度卡
+                LocalDateTime localDateTime = LocalDateTime.now().plusDays(365);
+                // 将LocalDateTime转换为Date类型
+                Date date = Date.from(localDateTime.atZone(ZoneId.systemDefault()).toInstant());
+                tPayHuimin.setEndTime(date);
+                break;
+            case 2:
+                // 年内卡
+                Date date1 = new Date();
+                date1.setMonth(11);
+                date1.setDate(31);
+                date1.setHours(23);
+                date1.setMinutes(59);
+                date1.setSeconds(57);
+                tPayHuimin.setEndTime(date1);
+                break;
+        }
+        tPayHuimin.setInsertTime(new Date());
+        tPayHuimin.setPaymentType(3);
+        tPayHuimin.setRefundStatus(1);
+        tPayHuimin.setCardId(byId.getId());
+        SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmssSSS");
+        tPayHuimin.setCode(sdf.format(new Date()) + UUIDUtil.getNumberRandom(5));
+        System.err.println("支付数据" + tPayHuimin);
+        tPayHuimin.setPaymentTime(new Date());
+        tPayHuimin.setStatus(2);
+        payHuiminService.save(tPayHuimin);
+    }
 }

--
Gitblit v1.7.1