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