From 7d22ca5a1c9416e84430a3997664e17861a2951e Mon Sep 17 00:00:00 2001
From: mitao <2763622819@qq.com>
Date: 星期五, 11 四月 2025 21:04:17 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/2.0' into 2.0
---
cloud-server-activity/src/main/java/com/dsh/activity/controller/THuiminCardController.java | 58 +++++++++++++++++++++++++++++++++++++++++++++++-----------
1 files changed, 47 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..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;
}
--
Gitblit v1.7.1