From 21f4da753cb7b5b92cdef4941f4fbf490074a255 Mon Sep 17 00:00:00 2001
From: kongdeqiang <123456>
Date: 星期四, 22 九月 2022 21:32:30 +0800
Subject: [PATCH] 修改接口

---
 src/main/java/com/boying/controller/UserController.java         |    2 
 src/main/java/com/boying/service/OutParkService.java            |    6 ++
 src/main/java/com/boying/common/ScheduledTaskConfig.java        |   25 ++++++++
 src/main/java/com/boying/scheduled/Scheduled1.java              |   16 +++--
 src/main/java/com/boying/entity/Park.java                       |    7 ++
 src/main/java/com/boying/entity/User.java                       |    9 +++
 src/main/java/com/boying/controller/BarrierController.java      |   39 +++++++++++-
 src/main/java/com/boying/controller/ParkController.java         |   62 ++++++++++++++++++++
 src/main/java/com/boying/controller/phone/NoticeController.java |    8 ++
 9 files changed, 161 insertions(+), 13 deletions(-)

diff --git a/src/main/java/com/boying/common/ScheduledTaskConfig.java b/src/main/java/com/boying/common/ScheduledTaskConfig.java
new file mode 100644
index 0000000..dc27967
--- /dev/null
+++ b/src/main/java/com/boying/common/ScheduledTaskConfig.java
@@ -0,0 +1,25 @@
+package com.boying.common;
+
+import org.springframework.context.annotation.Configuration;
+import org.springframework.scheduling.annotation.SchedulingConfigurer;
+import org.springframework.scheduling.concurrent.ThreadPoolTaskScheduler;
+import org.springframework.scheduling.config.ScheduledTaskRegistrar;
+
+/**
+ * @author kdq
+ * @version 1.0.0
+ * @ClassName ScheduledTaskConfig.java
+ * @Description TODO
+ * @createTime 2022骞�09鏈�21鏃� 16:08:00
+ */
+@Configuration
+public class ScheduledTaskConfig implements SchedulingConfigurer {
+
+    @Override
+    public void configureTasks(ScheduledTaskRegistrar scheduledTaskRegistrar) {
+        ThreadPoolTaskScheduler taskScheduler = new ThreadPoolTaskScheduler();
+        taskScheduler.setPoolSize(3);
+        taskScheduler.initialize();
+        scheduledTaskRegistrar.setTaskScheduler(taskScheduler);
+    }
+}
diff --git a/src/main/java/com/boying/controller/BarrierController.java b/src/main/java/com/boying/controller/BarrierController.java
index fd8ea6b..9fb68f6 100644
--- a/src/main/java/com/boying/controller/BarrierController.java
+++ b/src/main/java/com/boying/controller/BarrierController.java
@@ -7,12 +7,10 @@
 import com.boying.common.util.DateUtil;
 import com.boying.common.util.HttpUtil;
 import com.boying.common.util.StringUtil;
-import com.boying.entity.Barrier;
-import com.boying.entity.EnterPark;
-import com.boying.entity.Park;
-import com.boying.entity.User;
+import com.boying.entity.*;
 import com.boying.service.BarrierService;
 import com.boying.service.EnterParkService;
+import com.boying.service.OutParkService;
 import com.boying.service.ParkService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.data.domain.Page;
@@ -40,6 +38,8 @@
     private BarrierService barrierService;
     @Autowired
     private SystemConfigProperties systemConfigProperties;
+    @Autowired
+    private OutParkService outParkService;
 
     @PostMapping("findPage")
     public Object findPage(int page,int pageSize,String parkId) {
@@ -125,4 +125,35 @@
         barrierService.save(b);
         return success("璇锋眰鎴愬姛");
     }
+
+    @PostMapping("openBarrier")
+    public Object openBarrier(Long barrierId,Integer type) {
+        Barrier b= (Barrier) barrierService.findById(barrierId);
+        if (b==null) {
+            return error("鏈壘鍒拌閬撻椄");
+        }else {
+           if(b.getType() == 1){
+               //鍏ュ彛闂革紝鐩存帴寮�鍚�
+               b.setType2(1);
+               barrierService.save(b);
+               return success("璇锋眰鎴愬姛");
+           }else {
+               //鍑哄彛闂革紝鍒ゆ柇鐘舵��
+               if(type == null || type == 0){
+                   //鍙栨秷璁¤垂
+                   OutPark outPark = outParkService.findByCarNoAndBarrierId(b.getCarNo(), b.getId());
+                   outPark.setPrice(0d);
+                   outParkService.save(outPark);
+                   b.setType2(1);
+                   barrierService.save(b);
+                   return success("璇锋眰鎴愬姛");
+               }else {
+                   //璁¤垂
+                   b.setType2(1);
+                   barrierService.save(b);
+                   return success("璇锋眰鎴愬姛");
+               }
+           }
+        }
+    }
 }
diff --git a/src/main/java/com/boying/controller/ParkController.java b/src/main/java/com/boying/controller/ParkController.java
index 8f96e7d..4d3ac74 100644
--- a/src/main/java/com/boying/controller/ParkController.java
+++ b/src/main/java/com/boying/controller/ParkController.java
@@ -1,25 +1,43 @@
 package com.boying.controller;
 
 import com.boying.common.BaseController;
+import com.boying.common.util.StringUtil;
 import com.boying.entity.Park;
+import com.boying.entity.User;
 import com.boying.service.ParkService;
+import com.boying.service.UserService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.data.domain.Page;
 import org.springframework.data.domain.PageRequest;
 import org.springframework.data.domain.Pageable;
 import org.springframework.data.domain.Sort;
+import org.springframework.data.jpa.domain.Specification;
+import org.springframework.data.redis.core.StringRedisTemplate;
 import org.springframework.web.bind.annotation.PostMapping;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RestController;
 
+import javax.persistence.criteria.CriteriaBuilder;
+import javax.persistence.criteria.CriteriaQuery;
+import javax.persistence.criteria.Predicate;
+import javax.persistence.criteria.Root;
+import java.util.ArrayList;
+import java.util.Arrays;
 import java.util.List;
+import java.util.stream.Collectors;
 
 @RestController
 @RequestMapping("park")
 public class ParkController extends BaseController {
 
     @Autowired
+    private StringRedisTemplate redisTemplate;
+
+    @Autowired
     private ParkService parkService;
+
+    @Autowired
+    private UserService userService;
 
     @PostMapping("findPage")
     public Object findPage(int page,int pageSize) {
@@ -42,7 +60,47 @@
 
     @PostMapping("findAll")
     public Object findAll() {
-        List all = parkService.findAll();
-        return success("鍒犻櫎鎴愬姛",all);
+        List<Park> all = parkService.findAll();
+        for (Park park : all) {
+            String s = redisTemplate.opsForValue().get("car_park_" + park.getId());
+            if(StringUtil.isNullOrEmpty(s)){
+                park.setCarNum(0);
+            }else {
+                park.setCarNum(Integer.parseInt(s));
+            }
+        }
+        return success("鏌ヨ鎴愬姛",all);
     }
+
+    @PostMapping("getCarNum")
+    public Object getCarNum(Long parkId) {
+        Park byId = (Park) parkService.findById(parkId);
+        String s = redisTemplate.opsForValue().get("car_park_" + parkId);
+        if(StringUtil.isNullOrEmpty(s)){
+            byId.setCarNum(0);
+        }else {
+            byId.setCarNum(Integer.parseInt(s));
+        }
+        return success("鏌ヨ鎴愬姛",byId);
+    }
+
+    @PostMapping("getByUserId")
+    public Object getByUserId(Long userId) {
+        User byId = (User)userService.findById(userId);
+        List<Park> list = new ArrayList<>();
+        if(byId == null){
+            return error("鏈煡璇㈠埌鐢ㄦ埛");
+        }else {
+            String parkIds = byId.getParkIds();
+            if(StringUtil.isNullOrEmpty(parkIds)){
+                return error("璇ョ敤鎴锋湭绠$悊鍋滆溅鍦�");
+            }
+            List<Long> ids= Arrays.stream(parkIds.split(",")).map(s->Long.parseLong(s.trim())).collect(Collectors.toList());
+            for (Long id : ids) {
+                list.add((Park) parkService.findById(id));
+            }
+            return success("鏌ヨ鎴愬姛",list);
+        }
+    }
+
 }
diff --git a/src/main/java/com/boying/controller/UserController.java b/src/main/java/com/boying/controller/UserController.java
index dc8060d..b2796da 100644
--- a/src/main/java/com/boying/controller/UserController.java
+++ b/src/main/java/com/boying/controller/UserController.java
@@ -135,4 +135,6 @@
         }
         return error("鏃у瘑鐮佷笉姝g‘");
     }
+
+
 }
diff --git a/src/main/java/com/boying/controller/phone/NoticeController.java b/src/main/java/com/boying/controller/phone/NoticeController.java
index 052713c..e986a71 100644
--- a/src/main/java/com/boying/controller/phone/NoticeController.java
+++ b/src/main/java/com/boying/controller/phone/NoticeController.java
@@ -64,7 +64,7 @@
         };
         List<EnterPark> all = enterParkService.findAll(specification2);
         for(EnterPark enterPark:all){
-            Park park = (Park) parkService.findById(enterPark.getId());
+            Park park = (Park) parkService.findById(enterPark.getParkId());
             enterPark.setParkName(park.getName());
         }
         return success("",all);
@@ -88,6 +88,12 @@
             }
         };
         Page<EnterPark> all = enterParkService.findPage(pageable,specification2);
+        for (EnterPark enterPark : all.getContent()) {
+            Park byId = (Park)parkService.findById(enterPark.getParkId());
+            if(byId != null){
+                enterPark.setParkName(byId.getName());
+            }
+        }
         return success("",all);
     }
 }
diff --git a/src/main/java/com/boying/entity/Park.java b/src/main/java/com/boying/entity/Park.java
index 098de1e..2d2f28b 100644
--- a/src/main/java/com/boying/entity/Park.java
+++ b/src/main/java/com/boying/entity/Park.java
@@ -4,6 +4,7 @@
 
 import javax.persistence.Entity;
 import javax.persistence.Table;
+import javax.persistence.Transient;
 
 @Table(name = "park")
 @Entity
@@ -15,6 +16,8 @@
     private String content;//鎻忚堪
     private String lng;//缁忓害
     private String lat;//绾害
+    @Transient
+    private int carNum;//褰撳墠杞︽暟
 
 
     public String getName() {
@@ -64,4 +67,8 @@
     public void setLat(String lat) {
         this.lat = lat;
     }
+
+    public int getCarNum(){return carNum;}
+
+    public void setCarNum(int carNum){this.carNum = carNum;}
 }
diff --git a/src/main/java/com/boying/entity/User.java b/src/main/java/com/boying/entity/User.java
index a84f455..cd42eab 100644
--- a/src/main/java/com/boying/entity/User.java
+++ b/src/main/java/com/boying/entity/User.java
@@ -18,6 +18,7 @@
     private String lng;
     private String lat;
     private Long parkId;
+    private String parkIds;
 
     public String getName() {
         return name;
@@ -90,4 +91,12 @@
     public void setParkId(Long parkId) {
         this.parkId = parkId;
     }
+
+    public String getParkIds() {
+        return parkIds;
+    }
+
+    public void setParkIds(String parkIds) {
+        this.parkIds = parkIds;
+    }
 }
diff --git a/src/main/java/com/boying/scheduled/Scheduled1.java b/src/main/java/com/boying/scheduled/Scheduled1.java
index 4c54fff..41d6e2e 100644
--- a/src/main/java/com/boying/scheduled/Scheduled1.java
+++ b/src/main/java/com/boying/scheduled/Scheduled1.java
@@ -8,6 +8,7 @@
 import org.springframework.stereotype.Component;
 
 import java.io.IOException;
+import java.util.Date;
 import java.util.List;
 
 //澶у睆椤甸潰缁熻
@@ -27,21 +28,23 @@
     @Autowired
     private TicketBlackService ticketBlackService;
 
-    @Scheduled(cron = "0 0 * * * ?")
+    @Scheduled(cron = "0 0/40 * * * ?")
     public void execute() throws IOException {
+        System.out.println("寮�濮嬪畾鏃朵换鍔�-------銆�");
         List<TicketBlack> list = ticketBlackService.updateType();
-        for(TicketBlack t:list){
-            t.setBlackType(1);
-            ticketBlackService.save(t);
+        if(list.size() > 0){
+            for(TicketBlack t:list){
+                t.setBlackType(1);
+                ticketBlackService.save(t);
+            }
         }
-
 
         List<Statistic> all = statisticService.findAll();
         Statistic statistic = all.get(0);
         if(statistic==null){
             return;
         }
-
+        statistic.setCreateTime(new Date());
         statistic.setData1(outParkService.count1());
         statistic.setData2(outParkService.count2());
         statistic.setData3(outParkService.sumByPrice());
@@ -72,5 +75,6 @@
         statistic.setData19(ticketBlackService.count1());
         statistic.setData20(ticketBlackService.count2());
         statisticService.save(statistic);
+        System.out.println("缁撴潫瀹氭椂浠诲姟-------銆�");
     }
 }
diff --git a/src/main/java/com/boying/service/OutParkService.java b/src/main/java/com/boying/service/OutParkService.java
index 721e187..d4e9771 100644
--- a/src/main/java/com/boying/service/OutParkService.java
+++ b/src/main/java/com/boying/service/OutParkService.java
@@ -17,6 +17,7 @@
 import javax.persistence.criteria.Predicate;
 import javax.persistence.criteria.Root;
 import java.util.ArrayList;
+import java.util.Date;
 import java.util.List;
 
 @Service
@@ -93,4 +94,9 @@
     public OutPark findByCarNoAndBarrierId(String carNo, Long id) {
         return outParkDao.findByCarNoAndBarrierId(carNo,id);
     }
+
+    public static void main(String[] args) {
+        Date startTime = DateUtil.getEndTime();
+        System.out.println(startTime);
+    }
 }

--
Gitblit v1.9.1