无关风月
2025-05-08 9486766c806fe1d9e082b2fd02ea1cc558f1b443
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("");
    }