From acf352921487e857810a943b008121e33404e9ae Mon Sep 17 00:00:00 2001
From: kongdeqiang <kongdeqiang960204@163.com>
Date: 星期二, 15 四月 2025 16:56:50 +0800
Subject: [PATCH] fix:白名单新增bug
---
src/main/java/com/boying/controller/OutParkController.java | 258 ++++++++++++++++++++++++++++++++++++++++++---------
1 files changed, 212 insertions(+), 46 deletions(-)
diff --git a/src/main/java/com/boying/controller/OutParkController.java b/src/main/java/com/boying/controller/OutParkController.java
index f1e5b4b..77c5df6 100644
--- a/src/main/java/com/boying/controller/OutParkController.java
+++ b/src/main/java/com/boying/controller/OutParkController.java
@@ -1,8 +1,11 @@
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.*;
@@ -28,11 +31,12 @@
import java.text.SimpleDateFormat;
import java.time.LocalDateTime;
import java.time.ZoneOffset;
+import java.time.format.DateTimeFormatter;
import java.util.*;
import java.util.concurrent.TimeUnit;
@RestController
-@RequestMapping("outPark")
+@RequestMapping("ffzf/outpark")
@RequiredArgsConstructor
public class OutParkController {
@@ -52,18 +56,40 @@
private StringRedisTemplate redisTemplate;
@PostMapping("/findPage")
- public Object findPage(Page page,OutPark outPark) {
- QueryWrapper<OutPark> wrapper = new QueryWrapper<>();
- wrapper.lambda().orderByDesc(OutPark::getId);
- return R.ok(outParkService.page(page,wrapper));
+ public Object findPage(Page page, String carNo,Long parkId,String payCode,Integer status,String date) throws ParseException {
+ List<OutPark> list = outParkService.getList(page.getCurrent(), page.getSize(), carNo,parkId,payCode,status, date);
+ System.out.println(list);
+ long count = outParkService.getCount(carNo,parkId,payCode,status, date);
+ for (OutPark record : list) {
+ record.setParkName(parkService.getById(record.getParkId()).getName());
+ if(record.getEnterTime() != null){
+ record.setTimeStr(DateUtilOther.millisToDayHrMinSec(new Double(record.getTime()).longValue()));
+ }else {
+ record.setTimeStr("鏈彂鐜板叆鍦鸿褰�");
+ }
+ if(record.getImgId() != null){
+ record.setImgPath("/ffzf/fileinfo/showImgById/"+record.getImgId());
+ }
+ }
+ page.setRecords(list);
+ page.setTotal(count);
+ return R.ok(page);
}
-
+ //getById
+ @PostMapping("/getById")
+ public Object getById(Long id) {
+ return R.ok(outParkService.getById(id));
+ }
//閬撻椄code
- @PostMapping("findByBarrierCode")
+ @PostMapping("/findByBarrierCode")
public Object findById(String code) {
+ if(StringUtils.isBlank(code)){
+ return R.failed(null,"鍙傛暟閿欒");
+ }
QueryWrapper<Barrier> wrapper = new QueryWrapper<>();
wrapper.lambda()
.eq(Barrier::getCode2,code);
+ System.out.println("code :" +code);
List<Barrier> all = barrierService.list(wrapper);
if(all.size()==0){
return R.failed("鏈壘鍒拌璁惧");
@@ -79,7 +105,39 @@
if(outPark.getTime() > 0){
outPark.setTimeStr(DateUtilOther.millisToDayHrMinSec(new Double(outPark.getTime()).longValue()));
}else {
- outPark.setTimeStr("0");
+ outPark.setTimeStr("涓嶈冻涓�鍒嗛挓");
+ }
+ return R.ok(outPark);
+ }
+ }
+ }
+
+ //閬撻椄code
+ @PostMapping("/findByBarrierCode2")
+ public Object findById2(String code2) {
+ if(StringUtils.isBlank(code2)){
+ return R.failed(null,"鍙傛暟閿欒");
+ }
+ System.out.println("code2 :"+code2);
+ QueryWrapper<Barrier> wrapper = new QueryWrapper<>();
+ wrapper.lambda()
+ .eq(Barrier::getCode2,code2);
+ List<Barrier> all = barrierService.list(wrapper);
+ if(all.size()==0){
+ return R.failed("鏈壘鍒拌璁惧");
+ }else{
+ Barrier barrier = all.get(0);
+ String carNo = barrier.getCarNo();
+
+ OutPark outPark = outParkService.findByCarNoAndBarrierId(carNo,barrier.getId());
+ if(outPark==null){
+ return R.failed("鏈瘑鍒埌杞︾墝鍙�");
+ }else{
+ outPark.setParkName(barrier.getName());
+ if(outPark.getTime() > 0){
+ outPark.setTimeStr(DateUtilOther.millisToDayHrMinSec(new Double(outPark.getTime()).longValue()));
+ }else {
+ outPark.setTimeStr("涓嶈冻涓�鍒嗛挓");
}
return R.ok(outPark);
}
@@ -197,45 +255,39 @@
return R.ok(outPark);
}
- @GetMapping("/statisticParkOrder")
- public Object statisticParkOrder(Integer userId) {
- User byId = userService.getById(userId);
+ @GetMapping("/statisticParkOrder/count")
+ public R statisticParkOrder(String parkIds) {
Map<String,Object> resultMap = new HashMap<>();
- if(byId != null){
- String parkIds = byId.getParkIds();
- if(parkIds != null){
- String[] split = parkIds.split(",");
- int[] array = Arrays.stream(split).mapToInt(Integer::parseInt).toArray();
- List<Integer> parkIdList = new ArrayList<>();
- for (int i : array) {
- parkIdList.add(i);
- }
- QueryWrapper<OutPark> wrapper = new QueryWrapper<>();
- wrapper.lambda()
- .between(OutPark::getCreateTime, DateUtil.beginOfDay(new Date()),DateUtil.endOfDay(new Date()))
- .eq(OutPark::getStatus,1)
- .in(OutPark::getParkId,parkIdList);
- wrapper.select("IFNULL(ROUND(SUM(price)),0) as num");
- Map<String, Object> map = outParkService.getMap(wrapper);
- String a = map.get("num").toString();
- if(a != null){
- resultMap.put("money",Double.parseDouble(a));
- }else {
- resultMap.put("money",0.0);
- }
- wrapper.clear();
- wrapper.lambda()
- .between(OutPark::getCreateTime, DateUtil.beginOfDay(new Date()),DateUtil.endOfDay(new Date()))
- .eq(OutPark::getStatus,1)
- .in(OutPark::getParkId,parkIdList);
- int count = outParkService.count(wrapper);
- resultMap.put("count",count);
- return R.ok(resultMap);
- }else {
- return R.failed(null,"璇ョ敤鎴锋湭绠$悊鍋滆溅鍦�");
+ if(StringUtils.isNotBlank(parkIds)){
+ String[] split = parkIds.split(",");
+ long[] array = Arrays.stream(split).mapToLong(Long::parseLong).toArray();
+ List<Long> parkIdList = new ArrayList<>();
+ for (long i : array) {
+ parkIdList.add(i);
}
+ QueryWrapper<OutPark> wrapper = new QueryWrapper<>();
+ wrapper.lambda()
+ .between(OutPark::getCreateTime, DateUtil.beginOfDay(new Date()),DateUtil.endOfDay(new Date()))
+ .eq(OutPark::getStatus,1)
+ .in(OutPark::getParkId,parkIdList);
+ wrapper.select("IFNULL(ROUND(SUM(price)),0) as num");
+ Map<String, Object> map = outParkService.getMap(wrapper);
+ String a = map.get("num").toString();
+ if(a != null){
+ resultMap.put("money",Double.parseDouble(a));
+ }else {
+ resultMap.put("money",0.0);
+ }
+ wrapper.clear();
+ wrapper.lambda()
+ .between(OutPark::getCreateTime, DateUtil.beginOfDay(new Date()),DateUtil.endOfDay(new Date()))
+ .eq(OutPark::getStatus,1)
+ .in(OutPark::getParkId,parkIdList);
+ long count = outParkService.count(wrapper);
+ resultMap.put("count",count);
+ return R.ok(resultMap);
}else {
- return R.failed(null,"鏈煡璇㈠埌璇ョ敤鎴�");
+ return R.failed(null,"璇ョ敤鎴锋湭绠$悊鍋滆溅鍦�");
}
}
@@ -243,12 +295,126 @@
public Object isJS(String carNo ,Integer parkId) {
List<EnterPark> byCarNo = enterParkService.findByCarNo(carNo, parkId);
if(byCarNo.size() > 0){
- return R.ok(byCarNo.get(0));
+ return R.ok(byCarNo.get(0),"true");
}else {
- return R.failed();
+ return R.ok(null,"false");
}
}
+ @GetMapping("/getByCarAndPark")
+ public Object getByCarAndPark(String carNo ,Integer parkId) {
+ QueryWrapper<OutPark> wrapper = new QueryWrapper<>();
+ wrapper.lambda()
+ .eq(OutPark::getCarNo,carNo)
+ .eq(OutPark::getParkId,parkId)
+ .orderByDesc(OutPark::getCreateTime);
+ List<OutPark> list = outParkService.list(wrapper);
+ if(list.size() > 0){
+ OutPark outPark = list.get(0);
+ if(outPark.getTime() > 0){
+ outPark.setTimeStr(DateUtilOther.millisToDayHrMinSec(new Double(outPark.getTime()).longValue()));
+ }else {
+ outPark.setTimeStr("涓嶈冻涓�鍒嗛挓");
+ }
+ return R.ok(outPark,"鎵惧埌鏁版嵁");
+ }else {
+ 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());
+ }
+ outPark.setEnterTime(enterPark.getCreateTime());
+ 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);
+ enterPark.setIsPay(0);
+ enterParkService.updateById(enterPark);
+ } catch (ParseException e) {
+ e.printStackTrace();
+ }
+ outPark.setPrice(money);
+ outParkService.saveOrUpdate(outPark);
+ outPark.setParkName(barrier.getName());
+ return R.ok(outPark,"鏇存柊鎴愬姛");
+ }
+
+ @GetMapping("/editEnterPark")
+ public Object editEnterPark(String carNo ,Integer parkId,String time) {
+ QueryWrapper<Barrier> wrapper = new QueryWrapper<>();
+ wrapper.lambda()
+ .eq(Barrier::getParkId,parkId)
+ .eq(Barrier::getType,1);
+ List<Barrier> list = barrierService.list(wrapper);
+ EnterPark enterPark = new EnterPark();
+ enterPark.setCreateTime(LocalDateTime.parse(time, DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")));
+ enterPark.setCarNo(carNo);
+ enterPark.setParkId(parkId);
+ enterPark.setBarrierId(list.get(0).getId());
+ enterPark.setStatus(0);
+ enterPark.setIsAdd(1);
+ enterPark.setIsPay(0);
+ enterParkService.saveOrUpdate(enterPark);
+
+ OutPark outPark = null;
+ QueryWrapper<OutPark> wrapper1 = new QueryWrapper<>();
+ wrapper1.lambda()
+ .eq(OutPark::getParkId,parkId)
+ .eq(OutPark::getCarNo,carNo)
+ .ge(OutPark::getCreateTime,enterPark.getCreateTime())
+ .ne(OutPark::getStatus,1);
+ List<OutPark> list1 = outParkService.list(wrapper1);
+ if(list1 !=null&&list1.size()>0){
+ outPark = list1.get(0);
+ outPark.setEnterTime(enterPark.getCreateTime());
+ long l = outPark.getCreateTime().toInstant(ZoneOffset.of("+8")).toEpochMilli() - enterPark.getCreateTime().toInstant(ZoneOffset.of("+8")).toEpochMilli();
+ outPark.setTime(l/(1000*60));
+ try {
+ outPark.setPrice(costRuleService.getMoney(parkId, outPark.getEnterTime(), outPark.getCreateTime(), 1));
+ }catch (Exception e){
+ e.printStackTrace();
+ }
+ outParkService.saveOrUpdate(outPark);
+ return R.ok(null,"淇敼鍑哄満璁板綍鎴愬姛");
+ }else {
+ return R.ok(null,"鏂板鍏ュ満璁板綍鎴愬姛");
+ }
+
+ }
+
public Barrier findBarrier(String code2) {
QueryWrapper<Barrier> wrapper = new QueryWrapper<>();
--
Gitblit v1.9.1