From 86c29c1a7d83b8fca6ff26f1171dde89989af5f9 Mon Sep 17 00:00:00 2001
From: kongdeqiang <123456>
Date: 星期一, 22 四月 2024 10:50:32 +0800
Subject: [PATCH] fix : 新增模糊车牌匹配功能

---
 src/main/java/com/boying/service/impl/OutParkServiceImpl.java |  148 +++++++++++++++++++++++++++++++++++--------------
 1 files changed, 106 insertions(+), 42 deletions(-)

diff --git a/src/main/java/com/boying/service/impl/OutParkServiceImpl.java b/src/main/java/com/boying/service/impl/OutParkServiceImpl.java
index affe3db..e5c929e 100644
--- a/src/main/java/com/boying/service/impl/OutParkServiceImpl.java
+++ b/src/main/java/com/boying/service/impl/OutParkServiceImpl.java
@@ -4,14 +4,13 @@
 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.Barrier;
-import com.boying.entity.OutPark;
-import com.boying.entity.Park;
-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;
@@ -19,6 +18,7 @@
 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;
@@ -34,6 +34,7 @@
 @AllArgsConstructor
 public class OutParkServiceImpl extends ServiceImpl<OutParkMapper, OutPark> implements OutParkService {
     private final OutParkMapper outParkMapper;
+    private final EnterParkMapper enterParkMapper;
     private StringRedisTemplate redisTemplate;
 
 
@@ -118,45 +119,32 @@
 
     @Override
     public OutPark count4(Integer bId) {
-//        OutPark outPark = null;
-//        try {
-//            String s  =  redisTemplate.opsForValue().get("outPark-"+bId);
-//            if(!StringUtil.isNullOrEmpty(s)){
-//                outPark =  JSON.parseObject(s, OutPark.class);
-//                return outPark;
-//            }else {
-//                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){
-//                    String jsonValue = JSON.toJSONString(outParks.get(0));
-//                    redisTemplate.opsForValue().set("outPark-"+bId, jsonValue);
-//                    return outParks.get(0);
-//                }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;
+        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
@@ -203,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