From 7156119e51320afd0ffdd0723cd983fd415d61d9 Mon Sep 17 00:00:00 2001 From: kongdeqiang <123456> Date: 星期四, 26 九月 2024 11:17:34 +0800 Subject: [PATCH] fix : 新增修改车数日志 --- src/main/java/com/boying/service/impl/OutParkServiceImpl.java | 154 +++++++++++++++++++++++++++++++++++++++++++++++---- 1 files changed, 141 insertions(+), 13 deletions(-) diff --git a/src/main/java/com/boying/service/impl/OutParkServiceImpl.java b/src/main/java/com/boying/service/impl/OutParkServiceImpl.java index ad07530..e5c929e 100644 --- a/src/main/java/com/boying/service/impl/OutParkServiceImpl.java +++ b/src/main/java/com/boying/service/impl/OutParkServiceImpl.java @@ -1,17 +1,24 @@ package com.boying.service.impl; import cn.hutool.core.date.DateUtil; +import com.alibaba.fastjson.JSON; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; -import com.boying.entity.OutPark; -import com.boying.entity.Statistic; +import com.boying.entity.*; +import com.boying.mapper.EnterParkMapper; import com.boying.mapper.OutParkMapper; import com.boying.mapper.StatisticMapper; import com.boying.service.OutParkService; import com.boying.service.StatisticService; +import com.boying.util.PlateComparator; +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.LocalDateTime; import java.util.Date; import java.util.List; import java.util.Map; @@ -27,6 +34,9 @@ @AllArgsConstructor public class OutParkServiceImpl extends ServiceImpl<OutParkMapper, OutPark> implements OutParkService { private final OutParkMapper outParkMapper; + private final EnterParkMapper enterParkMapper; + private StringRedisTemplate redisTemplate; + @Override public int count1() { @@ -109,18 +119,32 @@ @Override public OutPark count4(Integer bId) { - QueryWrapper<OutPark> wrapper = new QueryWrapper<>(); - wrapper.lambda() - .eq(OutPark::getBarrierId,bId) - .eq(OutPark::getStatus,1) - .eq(OutPark::getStatus2,0) - .orderByDesc(OutPark::getCreateTime); - List<OutPark> outParks = outParkMapper.selectList(wrapper); - if(outParks.size()>0){ - return outParks.get(0); - }else{ - return null; + OutPark outPark = null; + try { + String s = redisTemplate.opsForValue().get("outPark-"+bId); + if(!StringUtil.isNullOrEmpty(s)){ + outPark = JSON.parseObject(s, OutPark.class); + return outPark; + }else { + return null; + } + } catch (Exception e) { + e.printStackTrace(); } + return null; +// +// QueryWrapper<OutPark> wrapper = new QueryWrapper<>(); +// wrapper.lambda() +// .eq(OutPark::getBarrierId,bId) +// .eq(OutPark::getStatus,1) +// .eq(OutPark::getStatus2,0) +// .orderByDesc(OutPark::getCreateTime); +// List<OutPark> outParks = outParkMapper.selectList(wrapper); +// if(outParks.size()>0){ +// return outParks.get(0); +// }else{ +// return null; +// } } @Override @@ -139,6 +163,110 @@ } @Override + public OutPark findByPayCode(String payCode) { + QueryWrapper<OutPark> wrapper = new QueryWrapper<>(); + wrapper.lambda() + .eq(OutPark::getCode2,payCode) + .orderByDesc(OutPark::getCreateTime); + List<OutPark> outParks = outParkMapper.selectList(wrapper); + if(outParks.size()>0){ + return outParks.get(0); + }else{ + return null; + } + } + + @Override + public OutPark findByOrderId(String txnOrderId) { + QueryWrapper<OutPark> wrapper = new QueryWrapper<>(); + wrapper.lambda() + .eq(OutPark::getTxnOrderId,txnOrderId) + .orderByDesc(OutPark::getCreateTime); + List<OutPark> outParks = outParkMapper.selectList(wrapper); + if(outParks.size()>0){ + return outParks.get(0); + }else{ + return null; + } + } + + @Override + public OutPark findBy5min(String carNo, Integer parkId,LocalDateTime dateTime) { + LocalDateTime localDateTime = dateTime.minusMinutes(5); + QueryWrapper<OutPark> wrapper = new QueryWrapper<>(); + wrapper.lambda() + .eq(OutPark::getCarNo,carNo) + .eq(OutPark::getParkId,parkId) + .ge(OutPark::getCreateTime,localDateTime) + .isNotNull(OutPark::getEnterTime); + List<OutPark> outParks = outParkMapper.selectList(wrapper); + if(outParks != null && outParks.size()>0){ + for (OutPark outPark : outParks) { + if(outPark.getPrice() == 0){ + return outPark; + } + if(outPark.getPrice() != 0 && outPark.getStatus() == 1){ + return outPark; + } + } + } + return null; + } + @Override + public OutPark findBy10min(String carNo, Integer parkId,LocalDateTime dateTime,Integer outParkId) { + LocalDateTime localDateTime = dateTime.minusMinutes(10); + QueryWrapper<OutPark> wrapper = new QueryWrapper<>(); + wrapper.lambda() + .eq(OutPark::getCarNo,carNo) + .eq(OutPark::getParkId,parkId) + .ge(OutPark::getCreateTime,localDateTime) + .ge(OutPark::getPrice,0) + .ne(OutPark::getId,outParkId) + .isNotNull(OutPark::getPayCode) + .isNotNull(OutPark::getEnterTime); + List<OutPark> outParks = outParkMapper.selectList(wrapper); + if(outParks != null && outParks.size()>0){ + return outParks.get(0); + } + return null; + } + + @Override + public List<Map<String, Object>> getLikeCar(String carNo, Integer parkId, LocalDateTime dateTime) { + QueryWrapper<EnterPark> wrapper = new QueryWrapper<>(); + wrapper.select(" id,car_no,park_id,create_time "); + wrapper.lambda() + .eq(EnterPark::getParkId,parkId) + .lt(EnterPark::getCreateTime,dateTime); + List<EnterPark> enterParks = enterParkMapper.selectList(wrapper); + if(enterParks !=null && enterParks.size()>0){ + List<Map<String, Object>> list = PlateComparator.getList(carNo, enterParks); + return list; + }else { + return null; + } + } + + @Override + public OutPark findBy5min2(String carNo, Integer parkId,LocalDateTime dateTime) { + LocalDateTime localDateTime = dateTime.minusMinutes(7); + QueryWrapper<OutPark> wrapper = new QueryWrapper<>(); + wrapper.lambda() + .eq(OutPark::getCarNo,carNo) + .eq(OutPark::getParkId,parkId) + .ge(OutPark::getCreateTime,localDateTime) + .ge(OutPark::getPrice,0) + .ne(OutPark::getStatus,1) + .isNotNull(OutPark::getPayCode) + .isNotNull(OutPark::getEnterTime); + List<OutPark> outParks = outParkMapper.selectList(wrapper); + if(outParks != null && outParks.size()>0){ + return outParks.get(0); + } + return null; + } + + @Override public List<OutPark> getList(long current, long size, String carNo, Long parkId, String payCode, String date) { return outParkMapper.getList((current-1)*size,size,carNo,parkId,payCode,date); } -- Gitblit v1.9.1