From 973f7a2b420dddb06553489d72d4aa6fdea3c1c0 Mon Sep 17 00:00:00 2001
From: kongdeqiang <kongdeqiang960204@163.com>
Date: 星期三, 05 八月 2026 15:17:22 +0800
Subject: [PATCH] fix:提交

---
 src/main/java/com/boying/controller/OrderRecordController.java |   58 +++++++-------
 src/main/java/com/boying/service/impl/OutParkServiceImpl.java  |    4 +
 src/main/java/com/boying/controller/car/PlateServlet3.java     |   64 ++++++++++++---
 src/main/java/com/boying/Application.java                      |   17 ++--
 src/main/java/com/boying/controller/BarrierController.java     |    2 
 src/main/java/com/boying/controller/phone/YCPayController.java |   44 ++++++++++
 6 files changed, 137 insertions(+), 52 deletions(-)

diff --git a/src/main/java/com/boying/Application.java b/src/main/java/com/boying/Application.java
index c8c7666..b29b9b3 100644
--- a/src/main/java/com/boying/Application.java
+++ b/src/main/java/com/boying/Application.java
@@ -2,7 +2,8 @@
 
 
 import cn.hutool.core.io.resource.ClassPathResource;
-//import net.sf.jni4net.Bridge;
+import com.boying.common.SystemConfigProperties;
+import net.sf.jni4net.Bridge;
 import org.springframework.boot.SpringApplication;
 import org.springframework.boot.autoconfigure.SpringBootApplication;
 import org.springframework.context.annotation.Bean;
@@ -27,11 +28,11 @@
         SpringApplication.run(Application.class, args);
     }
 
-//    @Bean
-//    public static void getBean() throws IOException {
-//        Bridge.setVerbose(true);
-//        Bridge.init();
-//        File loadDll = new File("LedShow.j4n.dll");
-//        Bridge.LoadAndRegisterAssemblyFrom(loadDll);
-//    }
+    @Bean
+    public static void getBean() throws IOException {
+        Bridge.setVerbose(true);
+        Bridge.init();
+        File loadDll = new File("LedShow.j4n.dll");
+        Bridge.LoadAndRegisterAssemblyFrom(loadDll);
+    }
 }
diff --git a/src/main/java/com/boying/controller/BarrierController.java b/src/main/java/com/boying/controller/BarrierController.java
index 54144bd..430aa38 100644
--- a/src/main/java/com/boying/controller/BarrierController.java
+++ b/src/main/java/com/boying/controller/BarrierController.java
@@ -157,7 +157,7 @@
                    //鍙栨秷璁¤垂
                    OutPark outPark = outParkService.findByCarNoAndBarrierId(b.getCarNo(), b.getId());
                    if(outPark != null){
-                       outPark.setPrice(0);
+                       //outPark.setPrice(0);
                        outPark.setUpdateTime(LocalDateTime.now());
                        outParkService.saveOrUpdate(outPark);
                    }
diff --git a/src/main/java/com/boying/controller/OrderRecordController.java b/src/main/java/com/boying/controller/OrderRecordController.java
index 9108b08..d03a7c3 100644
--- a/src/main/java/com/boying/controller/OrderRecordController.java
+++ b/src/main/java/com/boying/controller/OrderRecordController.java
@@ -101,37 +101,39 @@
 
     @PostMapping("/findCountPage")
     public Object findCountPage(Integer parkId,String startTime,String endTime) throws ParseException {
-        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
-        QueryWrapper<OutPark> wrapper = new QueryWrapper<>();
-        wrapper.lambda()
-                .eq(parkId != null,OutPark::getParkId,parkId)
-                .isNotNull(OutPark::getPayCode)
-                .eq(OutPark::getStatus,1);
-        if(startTime != null && endTime != null){
-            wrapper.lambda().between(OutPark::getUpdateTime,DateUtil.beginOfDay(sdf.parse(startTime)), DateUtil.endOfDay(sdf.parse(endTime)));
-        }
-        List<OutPark> list = outParkService.list(wrapper);
+        List<OutParkVo> list = outParkService.getVoList(parkId,startTime,endTime);
         List<Map<String,Object>> resultList = new ArrayList<>();
-        if(list.size()>0){
-            Map<Object, List<OutPark>> collect = list.stream().collect(
-                    Collectors.groupingBy(b ->   b.getParkId()
-            ));
-            for (Map.Entry<Object, List<OutPark>> objectListEntry : collect.entrySet()) {
-                Integer key = (Integer) objectListEntry.getKey();
-                List<OutPark> value = objectListEntry.getValue();
-                Double collect1 = value.stream().collect(Collectors.summingDouble(OutPark::getPrice));
-                Map<String,Object> map  = new HashMap<>();
-                Park byId = parkService.getById(key);
-                if(byId != null){
-                    map.put("parkName",byId.getName());
-                }else {
-                    map.put("parkName","鏈煡鍋滆溅鍦�");
-                }
-                map.put("orderNum",value.size());
-                map.put("orderMoney",collect1);
-                resultList.add(map);
+
+        for (Map.Entry<Integer, List<OutParkVo>> entry : list.stream().collect(Collectors.groupingBy(item -> item.getParkId())).entrySet()) {
+            Integer pid = entry.getKey();
+            List<OutParkVo> vos = entry.getValue();
+            Map<String,Object> map  = new HashMap<>();
+            Park byId = parkService.getById(pid);
+            if(byId != null){
+                map.put("parkName",byId.getName());
+            }else {
+                map.put("parkName","鏈煡鍋滆溅鍦�");
             }
+           int sum =  vos.stream().mapToInt(item -> item.getNum()).sum();
+           double price =  vos.stream().mapToDouble(item -> item.getPrice()).sum();
+            map.put("orderNum",sum);
+            map.put("orderMoney",price);
+            resultList.add(map);
+
         }
+
+//        for (OutParkVo outParkVo : list) {
+//            Map<String,Object> map  = new HashMap<>();
+//            Park byId = parkService.getById(outParkVo.getParkId());
+//            if(byId != null){
+//                map.put("parkName",byId.getName());
+//            }else {
+//                map.put("parkName","鏈煡鍋滆溅鍦�");
+//            }
+//            map.put("orderNum",outParkVo.getNum());
+//            map.put("orderMoney",outParkVo.getPrice());
+//            resultList.add(map);
+//        }
         return R.ok(resultList);
     }
 
diff --git a/src/main/java/com/boying/controller/car/PlateServlet3.java b/src/main/java/com/boying/controller/car/PlateServlet3.java
index 2c10166..ed4f37f 100644
--- a/src/main/java/com/boying/controller/car/PlateServlet3.java
+++ b/src/main/java/com/boying/controller/car/PlateServlet3.java
@@ -226,12 +226,19 @@
                         outPark.setStatus2(1);
                         outParkService.saveOrUpdate(outPark);
 
-                        OutParkLog byOutPark = outParkLogService.getByOutPark(outPark.getCarNo(), outPark.getId());
-                        byOutPark.setOpenTime(LocalDateTime.now());
-                        outParkLogService.saveOrUpdate(byOutPark);
-                        enterParkService.deleteByCarNo(outPark.getCarNo(), barrier.getParkId());
-                        redisTemplate.delete("outPark-"+outPark.getBarrierId());
-
+                        try {
+                            OutParkLog byOutPark = outParkLogService.getByOutPark(outPark.getCarNo(), outPark.getId());
+                            byOutPark.setOpenTime(LocalDateTime.now());
+                            outParkLogService.saveOrUpdate(byOutPark);
+                            enterParkService.deleteByCarNo(outPark.getCarNo(), barrier.getParkId());
+                            redisTemplate.delete("outPark-"+outPark.getBarrierId());
+                        }catch (Exception e){
+                            String logs = new SimpleDateFormat("yyyy-MM-dd_HH:mm:ss").format(new Date())+
+                                    " 杞︾墝鍙蜂负锛�"+outPark.getCarNo()+
+                                    ",淇敼鍑哄満鏃ュ織鎶ラ敊\n";
+                            System.out.println(logs);
+                            e.printStackTrace();
+                        }
                         easyOpen(request,response);
 
                     }else {
@@ -890,10 +897,26 @@
                         noOpen(request,response,data1);
                     }
                 }else {
+                    int i = Integer.parseInt(redisnum);
+                    i--;
+                    if(i<0){
+                        String s= "2."+carNo+"锛屽満鍐呭仠杞︽暟涓�0\n";
+                        writeTxt2(s);
+                        redisTemplate.opsForValue().set("car_park_" + parkId,"0",30, TimeUnit.DAYS);
+                        redisTemplate.opsForValue().set("park_up_" + parkId,"true",30, TimeUnit.DAYS);
+                    }else {
+                        String s= "2."+carNo+"锛屽満鍐呭仠杞︽暟涓�"+i+"\n";
+                        writeTxt2(s);
+                        redisTemplate.opsForValue().set("car_park_" + parkId,Integer.toString(i),30, TimeUnit.DAYS);
+                        redisTemplate.opsForValue().set("park_up_" + parkId,"true",30, TimeUnit.DAYS);
+                    }
+
+                    open(request,response,data1);
+
                     //缂撳瓨鍦╮edis閲�,蹇冭烦鎺ュ彛鍘绘姮鏉�
-                    String jsonValue = JSON.toJSONString(outPark);
-                    redisTemplate.opsForValue().set("outPark-"+outPark.getBarrierId(), jsonValue);
-                    redisTemplate.opsForValue().set("park_change_in_"+parkId,"true",1, TimeUnit.DAYS);
+//                    String jsonValue = JSON.toJSONString(outPark);
+//                    redisTemplate.opsForValue().set("outPark-"+outPark.getBarrierId(), jsonValue);
+//                    redisTemplate.opsForValue().set("park_change_in_"+parkId,"true",1, TimeUnit.DAYS);
                 }
             }
         }else {
@@ -924,10 +947,25 @@
         String data1 = Base64.getMimeEncoder().encodeToString(dataX) + "=";
         data1 = data1.replaceAll("\r\n", "");
         if(type == 0){
-            //缂撳瓨鍦╮edis閲�,蹇冭烦鎺ュ彛鍘绘姮鏉�
-            String jsonValue = JSON.toJSONString(outPark);
-            redisTemplate.opsForValue().set("outPark-"+outPark.getBarrierId(), jsonValue);
-            redisTemplate.opsForValue().set("park_change_in_"+parkId,"true",1, TimeUnit.DAYS);
+            int i = Integer.parseInt(redisnum);
+            i--;
+            if(i<=0){
+                String s= "2."+carNo+"缂磋垂瀹屾垚锛屽満鍐呭仠杞︽暟涓�"+i+"\n";
+                writeTxt2(s);
+                redisTemplate.opsForValue().set("car_park_" + parkId,"0",30, TimeUnit.DAYS);
+                redisTemplate.opsForValue().set("park_up_" + parkId,"true",30, TimeUnit.DAYS);
+            }else {
+                String s= "2."+carNo+"缂磋垂瀹屾垚锛屽満鍐呭仠杞︽暟涓�"+i+"\n";
+                writeTxt2(s);
+                redisTemplate.opsForValue().set("car_park_" + parkId,Integer.toString(i),30, TimeUnit.DAYS);
+                redisTemplate.opsForValue().set("park_up_" + parkId,"true",30, TimeUnit.DAYS);
+            }
+
+            open(request,response,data1);
+//            //缂撳瓨鍦╮edis閲�,蹇冭烦鎺ュ彛鍘绘姮鏉�
+//            String jsonValue = JSON.toJSONString(outPark);
+//            redisTemplate.opsForValue().set("outPark-"+outPark.getBarrierId(), jsonValue);
+//            redisTemplate.opsForValue().set("park_change_in_"+parkId,"true",1, TimeUnit.DAYS);
         }else {
             noOpen(request,response,data1);
         }
diff --git a/src/main/java/com/boying/controller/phone/YCPayController.java b/src/main/java/com/boying/controller/phone/YCPayController.java
index d929281..c6e6dd3 100644
--- a/src/main/java/com/boying/controller/phone/YCPayController.java
+++ b/src/main/java/com/boying/controller/phone/YCPayController.java
@@ -715,8 +715,48 @@
                 outParkService.saveOrUpdate(outPark);
                 //缂撳瓨鍦╮edis閲�
                 String jsonValue = JSON.toJSONString(outPark);
-                redisTemplate.opsForValue().set("outPark-"+outPark.getBarrierId(), jsonValue);
-                redisTemplate.opsForValue().set("park_change_in_"+outPark.getParkId(),"true",1, TimeUnit.DAYS);
+                String redisKey = "outPark-"+outPark.getBarrierId();
+                String parkChangeKey = "park_change_in_"+outPark.getParkId();
+                int retryCount = 0;
+                int maxRetry = 3;
+                boolean cacheSuccess = false;
+
+                while(retryCount < maxRetry && !cacheSuccess){
+                    try {
+                        redisTemplate.opsForValue().set(redisKey, jsonValue);
+                        redisTemplate.opsForValue().set(parkChangeKey,"true",1, TimeUnit.DAYS);
+                        cacheSuccess = true;
+                        String logs = new SimpleDateFormat("yyyy-MM-dd_HH:mm:ss").format(new Date())+
+                                " 杞︾墝鍙蜂负锛�"+outPark.getCarNo()+
+                                ",Redis缂撳瓨璁剧疆鎴愬姛锛岄亾闂窱D锛�"+outPark.getBarrierId()+"\n";
+                        writeTxt2(logs);
+                    } catch (Exception e) {
+                        retryCount++;
+                        String errorLogs = new SimpleDateFormat("yyyy-MM-dd_HH:mm:ss").format(new Date())+
+                                " 杞︾墝鍙蜂负锛�"+outPark.getCarNo()+
+                                ",Redis缂撳瓨璁剧疆澶辫触锛岀"+retryCount+"娆¢噸璇曪紝閿欒淇℃伅锛�"+e.getMessage()+"\n";
+                        writeTxt2(errorLogs);
+                        e.printStackTrace();
+                        if(retryCount < maxRetry){
+                            try {
+                                Thread.sleep(100); // 绛夊緟100ms鍚庨噸璇�
+                            } catch (InterruptedException ie) {
+                                Thread.currentThread().interrupt();
+                            }
+                        }
+                    }
+                }
+
+                if(!cacheSuccess){
+                    String errorLogs = new SimpleDateFormat("yyyy-MM-dd_HH:mm:ss").format(new Date())+
+                            " 杞︾墝鍙蜂负锛�"+outPark.getCarNo()+
+                            ",Redis缂撳瓨璁剧疆澶辫触锛屽凡閲嶈瘯"+maxRetry+"娆★紝璇锋鏌edis鏈嶅姟鐘舵�侊紒\n";
+                    writeTxt2(errorLogs);
+                    // 铏界劧Redis缂撳瓨澶辫触锛屼絾鏁版嵁搴撳凡鏇存柊锛屽績璺虫帴鍙e彲浠ラ�氳繃鏁版嵁搴撴煡璇㈣幏鍙栨暟鎹�
+                }
+
+//                redisTemplate.opsForValue().set("outPark-"+outPark.getBarrierId(), jsonValue);
+//                redisTemplate.opsForValue().set("park_change_in_"+outPark.getParkId(),"true",1, TimeUnit.DAYS);
             }
         }
     }
diff --git a/src/main/java/com/boying/service/impl/OutParkServiceImpl.java b/src/main/java/com/boying/service/impl/OutParkServiceImpl.java
index 58f67ff..079138e 100644
--- a/src/main/java/com/boying/service/impl/OutParkServiceImpl.java
+++ b/src/main/java/com/boying/service/impl/OutParkServiceImpl.java
@@ -19,6 +19,7 @@
 import org.springframework.stereotype.Service;
 
 import java.io.IOException;
+import java.text.SimpleDateFormat;
 import java.time.LocalDateTime;
 import java.util.Date;
 import java.util.List;
@@ -130,6 +131,9 @@
                 return null;
             }
         } catch (Exception e) {
+            String errorLogs = new SimpleDateFormat("yyyy-MM-dd_HH:mm:ss").format(new Date())+
+                    " Redis鏌ヨ澶辫触锛岄亾闂窱D锛�"+bId+"锛岄敊璇俊鎭細"+e.getMessage()+"锛屽皢鏌ヨ鏁版嵁搴揬n";
+            System.out.println(errorLogs);
             e.printStackTrace();
         }
         return null;

--
Gitblit v1.9.1