kongdeqiang
2024-04-07 8e51195319ea210e7ba06aabdabc40d64df14b08
src/main/java/com/boying/controller/BarrierController.java
@@ -1,5 +1,6 @@
package com.boying.controller;
import com.alibaba.fastjson.JSON;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.boying.common.R;
@@ -7,22 +8,30 @@
import com.boying.entity.OutPark;
import com.boying.service.BarrierService;
import com.boying.service.OutParkService;
import com.boying.service.ParkService;
import com.boying.util.RedisJsonUtil;
import lombok.RequiredArgsConstructor;
import org.springframework.data.redis.core.StringRedisTemplate;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.io.IOException;
import java.time.LocalDateTime;
import java.time.ZoneOffset;
import java.time.temporal.ChronoUnit;
import java.util.List;
@RestController
@RequestMapping("barrier")
@RequestMapping("ffzf/barrier")
@RequiredArgsConstructor
public class BarrierController {
    private final BarrierService barrierService;
    private final OutParkService outParkService;
    private final ParkService parkService;
    private StringRedisTemplate redisTemplate;
    @PostMapping("findPage")
    public Object findPage(Page page, String parkId) {
@@ -32,9 +41,8 @@
        Page page1 = barrierService.page(page, wrapper);
        List<Barrier> records = page1.getRecords();
        for(Barrier barrier:records){
            long l = System.currentTimeMillis() - barrier.getUpdateTime().toInstant(ZoneOffset.of("+8")).toEpochMilli();
            System.out.println(l);
            if(l>10000){
            long between = ChronoUnit.SECONDS.between(barrier.getUpdateTime(), LocalDateTime.now());
            if(between>121){
                barrier.setStatus(1);
            }
        }
@@ -46,12 +54,20 @@
    public Object save(Barrier barrier) {
        barrier.setUpdateTime(LocalDateTime.now());
        barrierService.saveOrUpdate(barrier);
        try {
            String jsonValue = JSON.toJSONString(barrier);
            redisTemplate.opsForValue().set("barrier-"+barrier.getCode(), jsonValue);
        } catch (Exception e) {
            e.printStackTrace();
        }
        return R.ok("保存成功");
    }
    @PostMapping("delete")
    public Object delete(Integer id) {
        Barrier byId = barrierService.getById(id);
        barrierService.removeById(id);
        redisTemplate.delete("barrier-"+byId.getCode());
        return R.ok("删除成功");
    }
@@ -75,8 +91,26 @@
        b.setType2(1);
        b.setUpdateTime(LocalDateTime.now());
        barrierService.saveOrUpdate(b);
        try {
            String jsonValue = JSON.toJSONString(b);
            redisTemplate.opsForValue().set("barrier-"+b.getCode(), jsonValue);
        } catch (Exception e) {
            e.printStackTrace();
        }
        return R.ok("请求成功");
    }
    @PostMapping("getByCode")
    public Object getByCode(String code) {
        Barrier b=  barrierService.findByCode2(code);
        if (b==null) {
            return R.failed("未找到该道闸");
        }
        b.setParkName(parkService.getById(b.getParkId()).getName());
        return R.ok(b,"请求成功");
    }
    @PostMapping("openBarrier")
    public Object openBarrier(Long barrierId,Integer type) {
@@ -90,6 +124,12 @@
               b.setType2(1);
               b.setUpdateTime(LocalDateTime.now());
               barrierService.saveOrUpdate(b);
               try {
                   String jsonValue = JSON.toJSONString(b);
                   redisTemplate.opsForValue().set("barrier-"+b.getCode(), jsonValue);
               } catch (Exception e) {
                   e.printStackTrace();
               }
               return R.ok("请求成功");
           }else {
               System.out.println("手动开出口闸");
@@ -105,12 +145,24 @@
                   b.setType2(1);
                   b.setUpdateTime(LocalDateTime.now());
                   barrierService.saveOrUpdate(b);
                   try {
                       String jsonValue = JSON.toJSONString(b);
                       redisTemplate.opsForValue().set("barrier-"+b.getCode(), jsonValue);
                   } catch (Exception e) {
                       e.printStackTrace();
                   }
                   return R.ok("请求成功");
               }else {
                   //计费
                   b.setType2(1);
                   b.setUpdateTime(LocalDateTime.now());
                   barrierService.saveOrUpdate(b);
                   try {
                       String jsonValue = JSON.toJSONString(b);
                       redisTemplate.opsForValue().set("barrier-"+b.getCode(), jsonValue);
                   } catch (Exception e) {
                       e.printStackTrace();
                   }
                   return R.ok("请求成功");
               }
           }