| | |
| | | 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()); |
| | | } |
| | |
| | | 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; |
| | | } |
| | | } |
| | |
| | | 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)); |
| | |
| | | |
| | | 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; |
| | | } |
| | |
| | | |
| | | @PostMapping("/updateById") |
| | | public R<?> updateById(@RequestBody THuiminCard tHuiminCard) { |
| | | String unUseTimes = tHuiminCard.getUnUseTimes(); |
| | | tHuiminCardService.updateById(tHuiminCard); |
| | | return R.ok(""); |
| | | } |