From fb050c0dafa5363a73540dd9e52b78487e25ba0a Mon Sep 17 00:00:00 2001 From: kongdeqiang <123456> Date: 星期二, 09 四月 2024 17:32:46 +0800 Subject: [PATCH] fix:新增手动抬杆记录 --- src/main/java/com/boying/service/impl/BarrierServiceImpl.java | 130 ++++++++++++++++++++++++++++++++---------- 1 files changed, 98 insertions(+), 32 deletions(-) diff --git a/src/main/java/com/boying/service/impl/BarrierServiceImpl.java b/src/main/java/com/boying/service/impl/BarrierServiceImpl.java index 26419ed..bb86265 100644 --- a/src/main/java/com/boying/service/impl/BarrierServiceImpl.java +++ b/src/main/java/com/boying/service/impl/BarrierServiceImpl.java @@ -2,7 +2,9 @@ import cn.hutool.core.date.DateUnit; import cn.hutool.core.date.DateUtil; +import com.alibaba.fastjson.JSON; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.toolkit.StringUtils; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.boying.entity.Barrier; import com.boying.entity.EnterPark; @@ -14,13 +16,17 @@ import com.boying.mapper.ParkMapper; import com.boying.service.BarrierService; import com.boying.service.EnterParkService; +import com.boying.util.RedisJsonUtil; +import com.boying.util.StringUtil; import lombok.AllArgsConstructor; import org.springframework.data.redis.core.StringRedisTemplate; import org.springframework.stereotype.Service; +import java.io.IOException; import java.time.ZoneId; import java.util.Date; import java.util.List; +import java.util.concurrent.TimeUnit; /** * @author kdq @@ -36,11 +42,49 @@ private OutParkMapper outParkMapper; private StringRedisTemplate redisTemplate; private ParkMapper parkMapper; + + @Override public Barrier findByCode(String code) { + Barrier barrier = null; + try { + String s = redisTemplate.opsForValue().get("barrier-"+code); + if(!StringUtil.isNullOrEmpty(s)){ + barrier = JSON.parseObject(s, Barrier.class); + return barrier; + }else { + QueryWrapper<Barrier> wrapper = new QueryWrapper<>(); + wrapper.lambda() + .eq(Barrier::getCode,code); + List<Barrier> list = list(wrapper); + if(list.size()>0){ + String jsonValue = JSON.toJSONString(list.get(0)); + redisTemplate.opsForValue().set("barrier-"+code, jsonValue); + return list.get(0); + } + } + } catch (Exception e) { + e.printStackTrace(); + return null; + } + return null; + +// QueryWrapper<Barrier> wrapper = new QueryWrapper<>(); +// wrapper.lambda() +// .eq(Barrier::getCode,code); +// List<Barrier> list = list(wrapper); +// if(list.size()>0){ +// return list.get(0); +// }else { +// return null; +// } + } + + @Override + public Barrier findByCode2(String code) { QueryWrapper<Barrier> wrapper = new QueryWrapper<>(); wrapper.lambda() - .eq(Barrier::getCode,code); + .eq(Barrier::getCode2,code); List<Barrier> list = list(wrapper); if(list.size()>0){ return list.get(0); @@ -50,44 +94,66 @@ } @Override - public boolean getDateDifIn(Integer barrierId) { - QueryWrapper<EnterPark> wrapper = new QueryWrapper<>(); - wrapper.lambda() - .eq(EnterPark::getBarrierId,barrierId) - .orderByDesc(EnterPark::getId) - .last(" limit 1"); - EnterPark enterPark = enterParkMapper.selectOne(wrapper); - long dif = DateUtil.between(Date.from( enterPark.getCreateTime().atZone( ZoneId.systemDefault()).toInstant()), new Date(), DateUnit.SECOND, false); - if(dif >= 5 && dif <= 7){ - return true; + public boolean getDateDifIn(Integer parkId) { + EnterPark enterPark=null; + String s1 = redisTemplate.opsForValue().get("enterPark_dif_" + parkId); + if(StringUtils.isBlank(s1)){ + QueryWrapper<EnterPark> wrapper = new QueryWrapper<>(); + wrapper.lambda() + .eq(EnterPark::getParkId,parkId) + .orderByDesc(EnterPark::getId) + .last(" limit 1"); + enterPark = enterParkMapper.selectOne(wrapper); + String jsonValue = JSON.toJSONString(enterPark); + redisTemplate.opsForValue().set("enterPark_dif_"+ parkId, jsonValue); }else { - //鍒ゆ柇鍋滆溅鍦烘槸鍚︽湁浜嗚溅浣� - String num = redisTemplate.opsForValue().get("car_park_" + enterPark.getParkId()); - if(num == null){ - num = "0"; - } - Park byId = parkMapper.selectById(enterPark.getParkId()); - int i = byId.getNum() - Integer.parseInt(num); - if(i<=0){ - return false; - }else { - return true; - } + enterPark = JSON.parseObject(s1, EnterPark.class); } + + if(enterPark != null){ + long dif = DateUtil.between(Date.from( enterPark.getCreateTime().atZone( ZoneId.systemDefault()).toInstant()), new Date(), DateUnit.SECOND, false); + if(dif >= 5 && dif <= 7){ + return true; + }else { + //鍒ゆ柇鍋滆溅鍦烘槸鍚︽湁浜嗚溅浣� + String s = redisTemplate.opsForValue().get("park_change_in_" + enterPark.getParkId()); + if("true".equals(s)){ + redisTemplate.opsForValue().set("park_change_in_"+enterPark.getParkId(),"false",1, TimeUnit.DAYS); + return true; + }else { + return false; + } + } + }else { + return false; + } + } @Override public boolean getDateDifOut(Integer barrierId) { - QueryWrapper<OutPark> wrapper = new QueryWrapper<>(); - wrapper.lambda() - .eq(OutPark::getBarrierId,barrierId) - .orderByDesc(OutPark::getId) - .last(" limit 1"); - OutPark outPark = outParkMapper.selectOne(wrapper); - long dif = DateUtil.between(Date.from( outPark.getCreateTime().atZone( ZoneId.systemDefault()).toInstant()), new Date(), DateUnit.SECOND, false); - if(dif >= 20 && dif <= 23){ - return true; + OutPark outPark=null; + String s1 = redisTemplate.opsForValue().get("outPark_dif_" + barrierId); + if(StringUtils.isBlank(s1)){ + QueryWrapper<OutPark> wrapper = new QueryWrapper<>(); + wrapper.lambda() + .eq(OutPark::getBarrierId,barrierId) + .orderByDesc(OutPark::getId) + .last(" limit 1"); + outPark = outParkMapper.selectOne(wrapper); + String jsonValue = JSON.toJSONString(outPark); + redisTemplate.opsForValue().set("outPark_dif_"+ barrierId, jsonValue); + }else { + outPark = JSON.parseObject(s1, OutPark.class); + } + if(outPark != null){ + long dif = DateUtil.between(Date.from( outPark.getCreateTime().atZone( ZoneId.systemDefault()).toInstant()), new Date(), DateUnit.SECOND, false); + if(dif >= 20 && dif <= 23){ + return true; + }else { + return false; + } }else { return false; } -- Gitblit v1.9.1