package com.boying.controller; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.boying.common.R; import com.boying.entity.Barrier; import com.boying.entity.LedShow; import com.boying.entity.Park; import com.boying.service.BarrierService; import com.boying.service.LedShowService; import com.boying.service.ParkService; import io.swagger.v3.oas.annotations.tags.Tag; import lombok.RequiredArgsConstructor; import org.springframework.data.redis.core.StringRedisTemplate; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import java.util.List; /** * @author kdq * @version 1.0.0 * @ClassName LedShowController.java * @Description TODO * @createTime 2022年11月16日 10:52:00 */ @RestController @RequestMapping("ledshow") @RequiredArgsConstructor @Tag(description = "ledshow" , name = "led日志(已废弃)" ) public class LedShowController { private final LedShowService ledShowService; private final BarrierService barrierService; private final ParkService parkService; private final StringRedisTemplate redisTemplate; private Boolean flag = false; @GetMapping("/getNew") public Object getNew(Integer number) { QueryWrapper wrapper = new QueryWrapper<>(); wrapper.lambda() .eq(LedShow::getStatus,1) .eq(LedShow::getNumber,number) .orderByDesc(LedShow::getTimeStamp); List list = ledShowService.list(wrapper); if(list.size()>0){ LedShow o = list.get(0); Barrier byCode = barrierService.findByCode(o.getLedId()); String num = redisTemplate.opsForValue().get("car_park_" + byCode.getParkId()); Park byId = parkService.getById(byCode.getParkId()); int i = byId.getNum() - Integer.parseInt(num); o.setStatus(0); ledShowService.saveOrUpdate(o); return R.ok(o,i+""); }else { QueryWrapper wrapper1 = new QueryWrapper<>(); wrapper1.lambda() .eq(LedShow::getStatus,0) .eq(LedShow::getNumber,number) .orderByDesc(LedShow::getTimeStamp); List list1 = ledShowService.list(wrapper1); LedShow ledShow = list1.get(0); Barrier byCode = barrierService.findByCode(ledShow.getLedId()); String num = redisTemplate.opsForValue().get("car_park_" + byCode.getParkId()); Park byId = parkService.getById(byCode.getParkId()); int i = byId.getNum() - Integer.parseInt(num); return R.ok(null,i+""); } } @GetMapping("/getNew2") public Object getNew2(String code) { if(flag){ return null; } flag = true; Barrier byCode = barrierService.findByCode(code); if(byCode != null){ QueryWrapper wrapper = new QueryWrapper<>(); wrapper.lambda() .eq(LedShow::getLedId,code) .eq(LedShow::getStatus,1) .orderByDesc(LedShow::getTimeStamp); List list = ledShowService.list(wrapper); if(list.size() > 0){ LedShow o = list.get(0); String num = redisTemplate.opsForValue().get("car_park_" + byCode.getParkId()); Park byId = parkService.getById(byCode.getParkId()); int i = byId.getNum() - Integer.parseInt(num); o.setStatus(0); ledShowService.saveOrUpdate(o); flag = false; return R.ok(o,i+""); }else { String num = redisTemplate.opsForValue().get("car_park_" + byCode.getParkId()); Park byId = parkService.getById(byCode.getParkId()); int i = byId.getNum() - Integer.parseInt(num); flag = false; return R.ok(null,i+""); } }else { flag = false; return R.failed("未查询到此闸机"); } } @GetMapping("/saveLedShow") public Object saveLedShow(LedShow ledShow) { ledShowService.saveOrUpdate(ledShow); return R.ok("添加成功"); } @GetMapping("/updateLedShow") public Object updateLedShow(Integer id) { return R.ok("查询成功","查询成功"); } @GetMapping("/loginLed") public Object loginLed(String username,String password) { QueryWrapper wrapper = new QueryWrapper<>(); wrapper.lambda() .eq(Barrier::getCode,username) .eq(Barrier::getCode2,password); List list = barrierService.list(wrapper); if(list.size() >0){ Barrier barrier = list.get(0); QueryWrapper wrapper1 = new QueryWrapper<>(); wrapper1.lambda() .eq(Barrier::getParkId,barrier.getParkId()); List list1 = barrierService.list(wrapper1); for (Barrier barrier1 : list1) { QueryWrapper wrapper2 = new QueryWrapper<>(); wrapper2.lambda().eq(LedShow::getLedId,barrier1.getCode()).eq(LedShow::getStatus,1); List list2 = ledShowService.list(wrapper2); for (LedShow ledShow : list2) { ledShow.setStatus(0); ledShowService.saveOrUpdate(ledShow); } } return R.ok(list1); }else { return R.failed("未查询到道闸"); } } }