From a4b0bbbf38196d77e264f30e71ac878818506390 Mon Sep 17 00:00:00 2001
From: kongdeqiang <123456>
Date: 星期三, 24 十二月 2025 10:46:08 +0800
Subject: [PATCH] fix : 修改出场车位数减2的bug
---
src/main/java/com/boying/controller/car/PlateServlet3.java | 151 +++++++++++++++++++++-----------------------------
1 files changed, 64 insertions(+), 87 deletions(-)
diff --git a/src/main/java/com/boying/controller/car/PlateServlet3.java b/src/main/java/com/boying/controller/car/PlateServlet3.java
index 8c5ea62..2c10166 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,9 +153,10 @@
@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());
String redisnum = redisTemplate.opsForValue().get("car_park_" + park.getId());
if(StringUtils.isBlank(redisnum)){
redisnum = "0";
@@ -207,43 +210,43 @@
if(barrier.getType() == 0){
OutPark outPark = outParkService.count4(barrier.getId());
if(outPark!=null){
- if(barrier.getType() == 0){
- int i = Integer.parseInt(redisnum);
- i--;
- if(i<0){
- String s= "2."+outPark.getCarNo()+"缂磋垂瀹屾垚锛屽満鍐呭仠杞︽暟涓�"+i+"\n";
- writeTxt2(s);
- redisTemplate.opsForValue().set("car_park_" + park.getId(),"0",30, TimeUnit.DAYS);
- redisTemplate.opsForValue().set("park_up_" + park.getId(),"true",30, TimeUnit.DAYS);
- }else {
- String s= "2."+outPark.getCarNo()+"缂磋垂瀹屾垚锛屽満鍐呭仠杞︽暟涓�"+i+"\n";
- writeTxt2(s);
- redisTemplate.opsForValue().set("car_park_" + park.getId(),Integer.toString(i),30, TimeUnit.DAYS);
- redisTemplate.opsForValue().set("park_up_" + park.getId(),"true",30, TimeUnit.DAYS);
- }
+ int i = Integer.parseInt(redisnum);
+ i--;
+ if(i<=0){
+ String s= "2."+outPark.getCarNo()+"缂磋垂瀹屾垚锛屽満鍐呭仠杞︽暟涓�"+i+"\n";
+ writeTxt2(s);
+ redisTemplate.opsForValue().set("car_park_" + park.getId(),"0",30, TimeUnit.DAYS);
+ redisTemplate.opsForValue().set("park_up_" + park.getId(),"true",30, TimeUnit.DAYS);
+ }else {
+ String s= "2."+outPark.getCarNo()+"缂磋垂瀹屾垚锛屽満鍐呭仠杞︽暟涓�"+i+"\n";
+ writeTxt2(s);
+ redisTemplate.opsForValue().set("car_park_" + park.getId(),Integer.toString(i),30, TimeUnit.DAYS);
+ redisTemplate.opsForValue().set("park_up_" + park.getId(),"true",30, TimeUnit.DAYS);
}
outPark.setStatus2(1);
outParkService.saveOrUpdate(outPark);
- easyOpen(request,response);
+
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());
+
+ easyOpen(request,response);
+
+ }else {
+ boolean out = barrierService.getDateDifOut(barrier.getId());
+ if(out){
+ outLedShowDefault(request,response);
+ }
+ }
+ }else {
+ boolean in = barrierService.getDateDifIn(park.getId());
+ if(in){
+ inLedShowDefault(park.getId(),request,response);
}
}
- }
- if(barrier.getType() == 1){
- boolean in = barrierService.getDateDifIn(park.getId());
- if(in){
- inLedShowDefault(park.getId(),request,response);
- }
- }else if(barrier.getType() == 0){
- boolean out = barrierService.getDateDifOut(barrier.getId());
- if(out){
- outLedShowDefault(request,response);
- }
}
}else {
easyNoOpen(request,response);
@@ -364,6 +367,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 +398,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 +412,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 +435,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;
@@ -620,7 +645,6 @@
if(all.size() >0){
for(WhiteList w : all){
if(w.getType()==0){
- outLedShowYueZu(barrier.getCarNo(),"鏈堢杞�",parkId,request,response,0);
OutPark byCarNoAndBarrierId = outParkService.findByCarNoAndBarrierId(carNo, barrierId);
byCarNoAndBarrierId.setStatus(2);
byCarNoAndBarrierId.setStatus2(1);
@@ -628,8 +652,8 @@
barrierService.saveOrUpdate(barrier);
String jsonValue2 = JSON.toJSONString(barrier);
redisTemplate.opsForValue().set("barrier-"+barrier.getCode(), jsonValue2);
- String jsonValue = JSON.toJSONString(byCarNoAndBarrierId);
- redisTemplate.opsForValue().set("outPark_dif_"+ barrierId, jsonValue);
+
+ outLedShowYueZu(outPark,barrier.getCarNo(),"鏈堢杞�",parkId,request,response,0);
return 0.0;
}else{
if(StringUtils.isNotBlank(w.getParkIds())){
@@ -639,7 +663,6 @@
for (String s : split) {
int pid = Integer.parseInt(s);
if(pid == outPark.getParkId() && System.currentTimeMillis()<w.getEndTime().getTime()){
- outLedShowYueZu(barrier.getCarNo(),"鏈堢杞�",parkId,request,response,0);
OutPark byCarNoAndBarrierId = outParkService.findByCarNoAndBarrierId(carNo, barrierId);
byCarNoAndBarrierId.setStatus(2);
byCarNoAndBarrierId.setStatus2(1);
@@ -647,8 +670,8 @@
barrierService.saveOrUpdate(barrier);
String jsonValue2 = JSON.toJSONString(barrier);
redisTemplate.opsForValue().set("barrier-"+barrier.getCode(), jsonValue2);
- String jsonValue = JSON.toJSONString(byCarNoAndBarrierId);
- redisTemplate.opsForValue().set("outPark_dif_"+ barrierId, jsonValue);
+
+ outLedShowYueZu(outPark,barrier.getCarNo(),"鏈堢杞�",parkId,request,response,0);
return 0.0;
}
}
@@ -860,51 +883,18 @@
if(timeStamp.contains("璁板綍寮傚父")){
OutPark by5min = outParkService.findBy5min(carNo, parkId, LocalDateTime.now());
if(by5min != null){
+ enterParkService.deleteByCarNo(carNo, parkId);
//寮�闂�
open(request,response,data1);
- enterParkService.deleteByCarNo(carNo, parkId);
- redisTemplate.opsForValue().set("park_change_in_"+parkId,"true",1, TimeUnit.DAYS);
- 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);
- }
}else {
noOpen(request,response,data1);
}
}else {
- //寮�闂�
- open(request,response,data1);
-
//缂撳瓨鍦╮edis閲�,蹇冭烦鎺ュ彛鍘绘姮鏉�
String jsonValue = JSON.toJSONString(outPark);
redisTemplate.opsForValue().set("outPark-"+outPark.getBarrierId(), jsonValue);
-
- //enterParkService.deleteByCarNo(carNo, parkId);
redisTemplate.opsForValue().set("park_change_in_"+parkId,"true",1, TimeUnit.DAYS);
-// 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);
-// }
}
-
}
}else {
noOpen(request,response,data1);
@@ -912,7 +902,7 @@
}
- public void outLedShowYueZu(String carNo,String text,Integer parkId,HttpServletRequest request, HttpServletResponse response,int type) throws ServletException, IOException{
+ public void outLedShowYueZu(OutPark outPark,String carNo,String text,Integer parkId,HttpServletRequest request, HttpServletResponse response,int type) throws ServletException, IOException{
String redisnum = redisTemplate.opsForValue().get("car_park_" + parkId);
LedBean ledBean = new LedBean();
ledBean.setcolor1(0);
@@ -934,23 +924,10 @@
String data1 = Base64.getMimeEncoder().encodeToString(dataX) + "=";
data1 = data1.replaceAll("\r\n", "");
if(type == 0){
- //寮�闂�
- open(request,response,data1);
- enterParkService.deleteByCarNo(carNo,parkId);
+ //缂撳瓨鍦╮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+"锛屽満鍐呭仠杞︽暟涓�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);
- }
}else {
noOpen(request,response,data1);
}
--
Gitblit v1.9.1