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 | 137 ++++++++++++++++++++++++++++++--------------- 1 files changed, 91 insertions(+), 46 deletions(-) diff --git a/src/main/java/com/boying/controller/car/PlateServlet3.java b/src/main/java/com/boying/controller/car/PlateServlet3.java index ae6f6cc..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; /** @@ -132,6 +134,14 @@ out.close(); } + protected void easyOpen2(HttpServletRequest request, HttpServletResponse response) throws IOException { + response.setContentType("text/json"); + PrintWriter out = response.getWriter(); + out.println("{\"Response_AlarmInfoPlate\":{\"ivs_ioctrl\":{\"delay\":1000,\"io\":0,\"value\":2}}}"); + out.flush(); + out.close(); + } + protected void easyNoOpen(HttpServletRequest request, HttpServletResponse response) throws IOException { response.setContentType("text/json"); PrintWriter out = response.getWriter(); @@ -143,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()); @@ -224,19 +237,19 @@ redisTemplate.delete("outPark-"+outPark.getBarrierId()); } } - 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); - } + + } + 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); } @@ -331,8 +344,8 @@ inLedFullShow(code, license,barrier.getParkId(),request,response); }else { //led鏄剧ず - inLedShow(code, license,barrier.getParkId(),request,response); enterPark(license,barrier.getId(),barrier.getParkId(),fileInfo); + inLedShow(code, license,barrier.getParkId(),request,response); s+=license+"-淇濆瓨鍏ュ満璁板綍\n"; } } @@ -356,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()); @@ -377,22 +399,26 @@ if(one == null){ return R.failed("鏈煡璇㈠埌杞﹁締瀛樺湪"); }else { - if(one.getCarNo().equals("鏃犵墝杞�")){ + 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() - .eq(Ticket::getCarNo,enterPark.getCarNo()) - .eq(Ticket::getPayStatus,1); - List<Ticket> tickets = ticketService.list(wrapper); - if(tickets.size()>0){ - enterPark.setStatus(1);//鍙戠幇鏈夎繚绔� - } +// QueryWrapper<Ticket> wrapper = new QueryWrapper<>(); +// wrapper.lambda() +// .eq(Ticket::getCarNo,enterPark.getCarNo()) +// .eq(Ticket::getPayStatus,1); +// List<Ticket> tickets = ticketService.list(wrapper); +// if(tickets.size()>0){ +// enterPark.setStatus(1);//鍙戠幇鏈夎繚绔� +// } + enterPark.setStatus(0); enterPark.setIsPay(0); enterPark.setPrice(0); enterParkService.deleteByCarNo(enterPark.getCarNo(),enterPark.getParkId()); + enterParkService.deleteByCarNo(one.getCarNo(),enterPark.getParkId()); enterParkService.save(enterPark); barrier.setType2(1); - barrierService.updateById(barrier); + String jsonValue = JSON.toJSONString(barrier); + redisTemplate.opsForValue().set("barrier-"+barrier.getCode(), jsonValue); return R.ok(); }else { return R.failed("闈炴硶鎿嶄綔"); @@ -411,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; @@ -464,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 { //闇�瑕佺即璐规垨鑰呮湁杩濈珷 @@ -472,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); } @@ -653,7 +693,7 @@ writeTxt2(s); String jsonValue = JSON.toJSONString(outPark); redisTemplate.opsForValue().set("outPark_dif_"+ barrierId, jsonValue); - outLedShow(barrier.getCode(),barrier.getCarNo(),outPark.getPrice(),toDayHrMinSec,barrier.getParkId(),request,response,0); + outLedShow(outPark,barrier.getCode(),barrier.getCarNo(),outPark.getPrice(),toDayHrMinSec,barrier.getParkId(),request,response,0); }else { //闇�瑕佺即璐规垨鑰呮湁杩濈珷 System.out.println(outPark.getCarNo()+"璇ヨ溅闇�瑕佺即璐�"+outPark.getPrice()); @@ -665,7 +705,7 @@ outParkLogService.saveOrUpdate(byOutPark); String jsonValue = JSON.toJSONString(outPark); redisTemplate.opsForValue().set("outPark_dif_"+ barrierId, jsonValue); - outLedShow(barrier.getCode(),barrier.getCarNo(),outPark.getPrice(),toDayHrMinSec,barrier.getParkId(),request,response,1); + outLedShow(outPark,barrier.getCode(),barrier.getCarNo(),outPark.getPrice(),toDayHrMinSec,barrier.getParkId(),request,response,1); } return money; } @@ -740,9 +780,9 @@ } } } - if(StringUtils.isBlank(carDay) && !carNo.equals("鏃犺溅鐗�")){ + if(StringUtils.isBlank(carDay) && !carNo.equals("_鏃燺") && !carNo.equals("鏃犵墝杞�")){ carDay = "娆㈣繋鍏変复"; - }else if(StringUtils.isBlank(carDay) && carNo.equals("鏃犺溅鐗�")){ + }else if(StringUtils.isBlank(carDay) || carNo.equals("_鏃燺") || carNo.equals("鏃犵墝杞�")){ carDay = "鎷掔粷椹跺叆"; } @@ -766,7 +806,7 @@ String data1 = Base64.getMimeEncoder().encodeToString(dataX) + "="; data1 = data1.replaceAll("\r\n", ""); - if(!carNo.equals("鏃犺溅鐗�")){ + if(!carNo.equals("_鏃燺") && !carNo.equals("鏃犵墝杞�")){ open(request,response,data1);//鍏ュ満寮�闂� }else { noOpen(request,response,data1); @@ -818,7 +858,7 @@ noOpen(request,response,data1);//鍏ュ満寮�闂� } - public void outLedShow(String ledId,String carNo,Double price,String timeStamp,Integer parkId,HttpServletRequest request, HttpServletResponse response,int type) throws ServletException, IOException { + public void outLedShow(OutPark outPark,String ledId,String carNo,Double price,String timeStamp,Integer parkId,HttpServletRequest request, HttpServletResponse response,int type) throws ServletException, IOException { String redisnum = redisTemplate.opsForValue().get("car_park_" + parkId); Park park = parkService.getById(parkId); LedBean ledBean = new LedBean(); @@ -841,7 +881,7 @@ String data1 = Base64.getMimeEncoder().encodeToString(dataX) + "="; data1 = data1.replaceAll("\r\n", ""); if(type == 0){ - if(carNo.equals("鏃犺溅鐗�")){ + if(carNo.equals("_鏃燺") || carNo.equals("鏃犵墝杞�")){ noOpen(request,response,data1); }else { if(timeStamp.contains("璁板綍寮傚父")){ @@ -870,21 +910,26 @@ }else { //寮�闂� open(request,response,data1); - enterParkService.deleteByCarNo(carNo, parkId); + + //缂撳瓨鍦╮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); - } +// 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); +// } } } -- Gitblit v1.9.1