package com.dsh.activity.controller; import cn.mb.cloud.common.data.controller.BaseController; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.api.R; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.dsh.activity.entity.THuiminCard; import com.dsh.activity.entity.TPayHuimin; import com.dsh.activity.service.HuiminCardService; import com.dsh.activity.service.PayHuiminService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.util.StringUtils; import org.springframework.web.bind.annotation.*; import java.util.Date; import java.util.List; import java.util.Map; import java.util.stream.Collectors; @RestController @RequestMapping("/tHuiminCard") public class THuiminCardController extends BaseController { @Autowired private HuiminCardService tHuiminCardService; @Autowired private PayHuiminService payHuiminService; @GetMapping("/queryPage") public Page queryPage(Page page, THuiminCard tHuiminCard) { QueryWrapper queryWrapper = new QueryWrapper<>(); if (!StringUtils.isEmpty(tHuiminCard.getHuiMinName())){ queryWrapper.like("huiMinName",tHuiminCard.getHuiMinName()); } if (!StringUtils.isEmpty(tHuiminCard.getHuiMinType())){ queryWrapper.eq("huiMinType",tHuiminCard.getHuiMinType()); } if (tHuiminCard.getStartTime() != null && tHuiminCard.getEndTime() != null){ queryWrapper.ge("startTime",tHuiminCard.getStartTime()); queryWrapper.le("endTime",tHuiminCard.getEndTime()); } Integer flag = tHuiminCard.getFlag(); if (flag != null){ Date now = new Date(); switch (flag) { case 1: queryWrapper.le("startTime", now); break; case 2: queryWrapper.ge("startTime", now); queryWrapper.le("endTime", now); break; case 3: queryWrapper.lt("endTime", now); break; } } if (tHuiminCard.getStatus() != null){ queryWrapper.eq("status",tHuiminCard.getStatus()); } Page page1 = tHuiminCardService.page(page, queryWrapper); List records = page1.getRecords(); List cardIds = records.stream().map(THuiminCard::getId).collect(Collectors.toList()); List list = payHuiminService.list(new LambdaQueryWrapper() .in(TPayHuimin::getCardId, cardIds)); Map cardIdCountMap = list.stream() .collect(Collectors.groupingBy( TPayHuimin::getCardId, Collectors.counting() )); records.forEach(item -> { item.setBuyCount(cardIdCountMap.getOrDefault(item.getId(), 0L).intValue()); }); return page1; } @GetMapping("/getById") public THuiminCard getById(@RequestParam("id") Integer id) { return tHuiminCardService.getById(id); } @PostMapping("/save") public R save(@RequestBody THuiminCard tHuiminCard) { tHuiminCardService.save(tHuiminCard); return R.ok(""); } @PostMapping("/updateById") public R updateById(@RequestBody THuiminCard tHuiminCard) { String unUseTimes = tHuiminCard.getUnUseTimes(); tHuiminCardService.updateById(tHuiminCard); return R.ok(""); } @GetMapping("/deleteById") public R deleteById(@RequestParam("id") Integer id) { tHuiminCardService.removeById(id); return R.ok(""); } /** * 批量删除 */ @PostMapping("/deleteBatchIds") public R deleteBatchIds(@RequestBody List ids) { tHuiminCardService.removeByIds(ids); return R.ok(""); } @GetMapping("/changeState") public String changeState(@RequestParam("id")Integer id, @RequestParam("status") Integer status){ THuiminCard tHuiminCard = tHuiminCardService.getById(id); tHuiminCard.setStatus(status); tHuiminCardService.updateById(tHuiminCard); return "success"; } }