| | |
| | | import java.util.Date; |
| | | import java.util.List; |
| | | import java.util.concurrent.TimeUnit; |
| | | import java.util.regex.Matcher; |
| | | import java.util.regex.Pattern; |
| | | |
| | | |
| | | /** |
| | |
| | | @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"; |
| | |
| | | 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); |
| | |
| | | @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()); |
| | |
| | | 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() |
| | |
| | | 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); |
| | |
| | | @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; |
| | |
| | | outPark.setPrice(money); |
| | | outPark.setStatus3(findTicket(carNo)); |
| | | outParkService.saveOrUpdate(outPark); |
| | | enterParkService.deleteByCarNo("无车牌", outPark.getParkId()); |
| | | enterParkService.deleteByCarNo("_无_", outPark.getParkId()); |
| | | byCode2.setCarNo(carNo); |
| | | //led展示 |
| | | if(toDayHrMinSec == null){ |
| | |
| | | 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); |
| | |
| | | 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())){ |
| | |
| | | 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); |
| | |
| | | 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; |
| | | } |
| | | } |
| | |
| | | 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); |
| | | |
| | | //缓存在redis里,心跳接口去抬杆 |
| | | 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); |
| | |
| | | |
| | | } |
| | | |
| | | 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); |
| | |
| | | String data1 = Base64.getMimeEncoder().encodeToString(dataX) + "="; |
| | | data1 = data1.replaceAll("\r\n", ""); |
| | | if(type == 0){ |
| | | //开闸 |
| | | open(request,response,data1); |
| | | enterParkService.deleteByCarNo(carNo,parkId); |
| | | //缓存在redis里,心跳接口去抬杆 |
| | | 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); |
| | | } |