From 80cacfd0dcee0174f2a8d9ae322a2fcf857cef63 Mon Sep 17 00:00:00 2001
From: kongdeqiang <123456>
Date: 星期三, 04 十二月 2024 15:31:35 +0800
Subject: [PATCH] fix : 新增修改出场接口

---
 src/main/java/com/boying/controller/car/PlateServlet3.java |   36 +++++++++++++++++++++++++++++++++---
 1 files changed, 33 insertions(+), 3 deletions(-)

diff --git a/src/main/java/com/boying/controller/car/PlateServlet3.java b/src/main/java/com/boying/controller/car/PlateServlet3.java
index d1c87f8..dde6393 100644
--- a/src/main/java/com/boying/controller/car/PlateServlet3.java
+++ b/src/main/java/com/boying/controller/car/PlateServlet3.java
@@ -41,6 +41,8 @@
 import java.util.Date;
 import java.util.List;
 import java.util.concurrent.TimeUnit;
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
 
 
 /**
@@ -151,6 +153,9 @@
     @PostMapping("/status")
     public void heart(String serialno,HttpServletRequest request,HttpServletResponse response) throws ServletException, IOException {
         Barrier barrier = barrierService.findByCode(serialno);
+        if(barrier == null){
+            return;
+        }
         Park park = parkService.getOneById(barrier.getParkId());
        // Park park = parkService.getById(barrier.getParkId());
        // String redis = redisTemplate.opsForValue().get("park_up_" + park.getId());
@@ -364,6 +369,15 @@
     @PostMapping("/inParkByPhone" )
     @ResponseBody
     public Object inParkByPhone( EnterPark enterPark){
+        if(redisTemplate.hasKey("PHONE_"+enterPark.getParkId() + "_" + enterPark.getCarNo())){
+            return R.failed(null,"璇锋眰棰戠箒");
+        }
+        Pattern pattern = Pattern.compile("^1[3-9]\\d{9}$");
+        Matcher matcher = pattern.matcher(enterPark.getCarNo());
+        System.out.println();
+        if(matcher.matches()==false){
+            return R.failed(null,"杈撳叆闈炴硶鏁版嵁");
+        }
         Barrier barrier = barrierService.getById(enterPark.getBarrierId());
         if(barrier!=null){
             String num = redisTemplate.opsForValue().get("car_park_" +  barrier.getParkId());
@@ -386,6 +400,7 @@
                     return R.failed("鏈煡璇㈠埌杞﹁締瀛樺湪");
                 }else {
                     if(one.getCarNo().equals("_鏃燺") || one.getCarNo().equals("鏃犵墝杞�")){
+                        redisTemplate.opsForValue().set("PHONE_"+enterPark.getParkId() + "_" + enterPark.getCarNo(),"true",2,TimeUnit.SECONDS);
                         enterPark.setCreateTime(LocalDateTime.now());
 //                        QueryWrapper<Ticket> wrapper = new QueryWrapper<>();
 //                        wrapper.lambda()
@@ -399,6 +414,7 @@
                         enterPark.setIsPay(0);
                         enterPark.setPrice(0);
                         enterParkService.deleteByCarNo(enterPark.getCarNo(),enterPark.getParkId());
+                        enterParkService.deleteByCarNo(one.getCarNo(),enterPark.getParkId());
                         enterParkService.save(enterPark);
                         barrier.setType2(1);
                         String jsonValue = JSON.toJSONString(barrier);
@@ -421,12 +437,23 @@
     @PostMapping("/outParkByPhone" )
     @ResponseBody
     public Object outParkByPhone(String code2,String carNo){
+        Pattern pattern = Pattern.compile("^1[3-9]\\d{9}$");
+        Matcher matcher = pattern.matcher(carNo);
+        System.out.println();
+        if(matcher.matches()==false){
+            return R.failed(null,"杈撳叆闈炴硶鏁版嵁");
+        }
         Barrier byCode2 = barrierService.findByCode2(code2);
         QueryWrapper<EnterPark> wrapper =new QueryWrapper<>();
         wrapper.lambda()
                 .eq(EnterPark::getParkId,byCode2.getParkId())
-                .eq(EnterPark::getCarNo,carNo);
-        EnterPark one = enterParkService.getOne(wrapper);
+                .eq(EnterPark::getCarNo,carNo)
+                .orderByDesc(EnterPark::getId);
+        List<EnterPark> list = enterParkService.list(wrapper);
+        EnterPark one = null;
+        if(list !=null && list.size()>0){
+            one = list.get(0);
+        }
         if(one != null){
             double money = 0.0;
             String toDayHrMinSec = null;
@@ -474,7 +501,8 @@
                 String s= "1."+byCode2.getCarNo()+"璇ヨ溅涓嶉渶瑕佺即璐筡n";
                 writeTxt2(s);
                 byCode2.setType2(1);
-                barrierService.updateById(byCode2);
+                String jsonValue = JSON.toJSONString(byCode2);
+                redisTemplate.opsForValue().set("barrier-"+byCode2.getCode(), jsonValue);
                 return R.ok(outPark);
             }else {
                 //闇�瑕佺即璐规垨鑰呮湁杩濈珷
@@ -482,6 +510,8 @@
                 String s= "1."+byCode2.getCarNo()+"璇ヨ溅闇�瑕佺即璐筡n";
                 writeTxt2(s);
                 barrierService.updateById(byCode2);
+                String jsonValue = JSON.toJSONString(byCode2);
+                redisTemplate.opsForValue().set("barrier-"+byCode2.getCode(), jsonValue);
                 return R.ok(outPark);
             }
 

--
Gitblit v1.9.1