From 83a1aa3133ce9c35fb428d0cdf4a84adda4ba3ac Mon Sep 17 00:00:00 2001
From: kongdeqiang <123456>
Date: 星期三, 24 四月 2024 16:33:42 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'

---
 src/main/java/com/boying/service/OutParkService.java       |    1 
 src/main/java/com/boying/util/PlateComparator.java         |   40 +++++++++++++++++--
 src/main/java/com/boying/controller/OutParkController.java |   39 ++++++++++++-------
 src/main/java/com/boying/controller/ParkController.java    |    2 
 4 files changed, 62 insertions(+), 20 deletions(-)

diff --git a/src/main/java/com/boying/controller/OutParkController.java b/src/main/java/com/boying/controller/OutParkController.java
index 45ada89..be0c09f 100644
--- a/src/main/java/com/boying/controller/OutParkController.java
+++ b/src/main/java/com/boying/controller/OutParkController.java
@@ -1,16 +1,16 @@
 package com.boying.controller;
 
 import cn.hutool.core.date.DateUtil;
+import com.alibaba.fastjson.JSON;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
 import com.baomidou.mybatisplus.core.toolkit.StringUtils;
 import com.boying.common.R;
 import com.boying.common.SystemConfigProperties;
 import com.boying.entity.*;
 import com.boying.service.*;
 import com.boying.util.DateUtilOther;
-import io.swagger.v3.oas.annotations.Operation;
-import io.swagger.v3.oas.annotations.tags.Tag;
 import lombok.RequiredArgsConstructor;
 import org.springframework.beans.factory.annotation.Autowired;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
@@ -38,7 +38,6 @@
 @RestController
 @RequestMapping("ffzf/outpark")
 @RequiredArgsConstructor
-@Tag(description = "ffzf/outpark" , name = "鍑哄満琛ㄦ帴鍙�" )
 public class OutParkController  {
 
 
@@ -57,7 +56,6 @@
     private StringRedisTemplate redisTemplate;
 
     @PostMapping("/findPage")
-    @Operation(summary = "鍒嗛〉鏌ヨ" , description = "鍒嗛〉鏌ヨ" )
     public Object findPage(Page page, String  carNo,Long parkId,String  payCode,String date) throws ParseException {
         List<OutPark> list = outParkService.getList(page.getCurrent(), page.getSize(), carNo,parkId,payCode, date);
         System.out.println(list);
@@ -79,13 +77,11 @@
     }
     //getById
     @PostMapping("/getById")
-    @Operation(summary = "鏍规嵁id鏌ヨ" , description = "鏍规嵁id鏌ヨ" )
     public Object getById(Long id) {
         return R.ok(outParkService.getById(id));
     }
     //閬撻椄code
     @PostMapping("/findByBarrierCode")
-    @Operation(summary = "鏍规嵁閬撻椄code鏌ヨ鍑哄満锛堝凡搴熷純锛�" , description = "鏍规嵁閬撻椄code鏌ヨ鍑哄満锛堝凡搴熷純锛�" )
     public Object findById(String code) {
         if(StringUtils.isBlank(code)){
             return R.failed(null,"鍙傛暟閿欒");
@@ -118,7 +114,6 @@
 
     //閬撻椄code
     @PostMapping("/findByBarrierCode2")
-    @Operation(summary = "鏍规嵁閬撻椄code鏌ヨ鍑哄満" , description = "鏍规嵁閬撻椄code鏌ヨ鍑哄満" )
     public Object findById2(String code2) {
         if(StringUtils.isBlank(code2)){
             return R.failed(null,"鍙傛暟閿欒");
@@ -150,14 +145,12 @@
     }
 
     @PostMapping("/delete")
-    @Operation(summary = "鍒犻櫎鍑哄満" , description = "鍒犻櫎鍑哄満" )
     public Object delete(Long id) {
         outParkService.removeById(id);
         return R.ok("鍒犻櫎鎴愬姛");
     }
 
     @PostMapping("enterPark2")
-    @Operation(summary = "鏂板鍏ュ満锛堝簾寮冿級" , description = "鏂板鍏ュ満锛堝簾寮冿級" )
     public Object enterPark(String carNo,Integer barrierId,Integer parkId,String code2) {
         Barrier barrier1 = findBarrier(code2);
         barrierId = barrier1.getId();
@@ -198,7 +191,6 @@
     }
 
     @PostMapping("outPark2")
-    @Operation(summary = "鏂板鍑哄満锛堝簾寮冿級" , description = "鏂板鍑哄満锛堝簾寮冿級" )
     public Object outPark(String carNo,Integer barrierId,Integer parkId,String code2) {
         String s = "寮�濮嬫墽琛屽嚭鍦烘帴鍙�------>\n";
         Barrier barrier1 = findBarrier(code2);
@@ -264,7 +256,6 @@
     }
 
     @GetMapping("/statisticParkOrder/count")
-    @Operation(summary = "缁熻鐢ㄦ埛绠$悊鐨勫仠杞﹀満璁㈠崟鏁伴噺" , description = "缁熻鐢ㄦ埛绠$悊鐨勫仠杞﹀満璁㈠崟鏁伴噺" )
     public R statisticParkOrder(String parkIds) {
         Map<String,Object> resultMap = new HashMap<>();
         if(StringUtils.isNotBlank(parkIds)){
@@ -301,7 +292,6 @@
     }
 
     @GetMapping("/isJS")
-    @Operation(summary = "鍍靛案杞︽煡璇�" , description = "鍍靛案杞︽煡璇�" )
     public Object isJS(String carNo ,Integer parkId) {
         List<EnterPark> byCarNo = enterParkService.findByCarNo(carNo, parkId);
         if(byCarNo.size() > 0){
@@ -312,7 +302,6 @@
     }
 
     @GetMapping("/getByCarAndPark")
-    @Operation(summary = "鏍规嵁杞︾墝鍜屽仠杞﹀満鑾峰彇鏈�鏂板嚭鍦�" , description = "鏍规嵁杞︾墝鍜屽仠杞﹀満鑾峰彇鏈�鏂板嚭鍦�" )
     public Object getByCarAndPark(String carNo ,Integer parkId) {
         QueryWrapper<OutPark> wrapper = new QueryWrapper<>();
         wrapper.lambda()
@@ -332,14 +321,31 @@
             return R.failed(null,"鏈壘鍒版暟鎹�");
         }
     }
+
+    //鎵爜淇敼鍑哄満锛堟ā绯婅溅鐗岋級
+    @GetMapping("/getLikeCar")
+    public Object getLikeCar(Integer outParkId) {
+        OutPark byId = outParkService.getById(outParkId);
+        List<Map<String, Object>> likeCar = outParkService.getLikeCar(byId.getCarNo(), byId.getParkId(), byId.getCreateTime());
+        if (CollectionUtils.isNotEmpty(likeCar)) {
+            Collections.sort(likeCar, (m1, m2)-> String.valueOf(m2.get("createTime")).compareTo(String.valueOf(m1.get("createTime"))));
+        }
+        return R.ok(likeCar);
+    }
+
     //鎵爜淇敼鍑哄満锛堟ā绯婅溅鐗岋級
     @GetMapping("/editOutPark")
     public Object editOutPark(Integer outParkId,Integer enterParkId,Integer type) {
         double money = 0.0;
         OutPark outPark = outParkService.getById(outParkId);
         EnterPark enterPark = enterParkService.getById(enterParkId);
+        Barrier barrier =barrierService.getById(outPark.getBarrierId());
         if(type == 0){ //鍏ュ満姝g‘锛屾浛鎹㈠嚭鍦猴紝鏇存柊鍑哄満璁板綍
             outPark.setCarNo(enterPark.getCarNo());
+            barrier.setCarNo(enterPark.getCarNo());
+            barrierService.saveOrUpdate(barrier);
+            String jsonValue = JSON.toJSONString(barrier);
+            redisTemplate.opsForValue().set("barrier-"+barrier.getCode(), jsonValue);
         }else { //鍑哄満姝g‘锛屾浛鎹㈠叆鍦猴紝鏇存柊鍑哄満璁板綍
             enterPark.setCarNo(outPark.getCarNo());
         }
@@ -347,6 +353,11 @@
         try {
             long l = outPark.getCreateTime().toInstant(ZoneOffset.of("+8")).toEpochMilli() - enterPark.getCreateTime().toInstant(ZoneOffset.of("+8")).toEpochMilli();
             outPark.setTime(l/(1000*60));
+            if(outPark.getTime() > 0){
+                outPark.setTimeStr(DateUtilOther.millisToDayHrMinSec(new Double(outPark.getTime()).longValue()));
+            }else {
+                outPark.setTimeStr("涓嶈冻涓�鍒嗛挓");
+            }
             money = costRuleService.getMoney(outPark.getParkId(), outPark.getEnterTime(), outPark.getCreateTime(), 1);
             //鍏ュ満璁板綍淇濆瓨涓�涓�
             enterPark.setPrice(money);
@@ -357,11 +368,11 @@
         }
         outPark.setPrice(money);
         outParkService.saveOrUpdate(outPark);
+        outPark.setParkName(barrier.getName());
         return R.ok(outPark,"鏇存柊鎴愬姛");
     }
 
     @GetMapping("/editEnterPark")
-    @Operation(summary = "淇敼鍏ュ満淇℃伅" , description = "淇敼鍏ュ満淇℃伅" )
     public Object editEnterPark(String carNo ,Integer parkId,String time) {
         QueryWrapper<Barrier> wrapper = new QueryWrapper<>();
         wrapper.lambda()
diff --git a/src/main/java/com/boying/controller/ParkController.java b/src/main/java/com/boying/controller/ParkController.java
index ce2968f..0a9ec02 100644
--- a/src/main/java/com/boying/controller/ParkController.java
+++ b/src/main/java/com/boying/controller/ParkController.java
@@ -158,6 +158,7 @@
         }
     }
 
+
     @PostMapping("/getParkCar")
     public Object getParkCar(Page page, Integer parkId,String carNo) {
         QueryWrapper<EnterPark> enterParkQueryWrapper = new QueryWrapper<>();
@@ -174,6 +175,5 @@
         }
         return R.ok(page1);
     }
-
 
 }
diff --git a/src/main/java/com/boying/service/OutParkService.java b/src/main/java/com/boying/service/OutParkService.java
index 1049d4a..4cad1cb 100644
--- a/src/main/java/com/boying/service/OutParkService.java
+++ b/src/main/java/com/boying/service/OutParkService.java
@@ -50,4 +50,5 @@
     OutPark findBy10min(String carNo, Integer parkId, LocalDateTime dateTime, Integer outParkId);
 
     List<Map<String, Object>> getLikeCar(String carNo, Integer parkId, LocalDateTime dateTime);
+
 }
diff --git a/src/main/java/com/boying/util/PlateComparator.java b/src/main/java/com/boying/util/PlateComparator.java
index 461a8f5..5ac353a 100644
--- a/src/main/java/com/boying/util/PlateComparator.java
+++ b/src/main/java/com/boying/util/PlateComparator.java
@@ -1,9 +1,16 @@
 package com.boying.util;
 
-import com.baomidou.mybatisplus.core.toolkit.BeanUtils;
+import org.springframework.beans.BeanUtils;
 import com.boying.entity.EnterPark;
 
+import java.beans.BeanInfo;
+import java.beans.IntrospectionException;
+import java.beans.Introspector;
+import java.beans.PropertyDescriptor;
+import java.lang.reflect.InvocationTargetException;
+import java.lang.reflect.Method;
 import java.util.ArrayList;
+import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
 
@@ -20,10 +27,33 @@
         List<Map<String,Object>> list = new ArrayList<>();
         for (EnterPark enterPark : enterParkList) {
             int i = compareLicensePlates(carNo, enterPark.getCarNo());
-            if (i<=2){
-                Map<String, Object> map = BeanUtils.beanToMap(enterPark);
-                map.put("count",i); // 鏂板娆℃暟
-                list.add(map);
+            if (i<2){
+                Map<String, Object> returnMap = new HashMap<String, Object>();
+                BeanInfo beanInfo = null;
+                try {
+                    beanInfo = Introspector.getBeanInfo(enterPark.getClass());
+                    PropertyDescriptor[] propertyDescriptors = beanInfo.getPropertyDescriptors();
+                    for (PropertyDescriptor pd : propertyDescriptors) {
+                        String propertyName = pd.getName();
+                        if (!"class".equals(propertyName)) {
+                            Method readMethod = pd.getReadMethod();
+                            Object result = readMethod.invoke(enterPark);
+                            if (result != null) {
+                                returnMap.put(propertyName, result);
+                            } else {
+                                returnMap.put(propertyName, "");
+                            }
+                        }
+                    }
+                } catch (IntrospectionException e) {
+                    e.printStackTrace();
+                } catch (IllegalAccessException e) {
+                    e.printStackTrace();
+                } catch (InvocationTargetException e) {
+                    e.printStackTrace();
+                }
+                returnMap.put("count",i); // 鏂板娆℃暟
+                list.add(returnMap);
             }
         }
         return list;

--
Gitblit v1.9.1