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 |  126 +++++++++++++++++++++++++++++++++++++----
 1 files changed, 113 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 fdfe4f7..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
@@ -167,6 +191,82 @@
     }
 
     @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