From 6b9946ad407dd4338d66da079d5d96866986d504 Mon Sep 17 00:00:00 2001 From: winter <664946893@qq.com> Date: Sun, 27 Apr 2025 19:06:12 +0800 Subject: [PATCH] fix --- .../src/main/resources/application-dev.yml | 4 ++ .../src/main/resources/application-prod.yml | 4 ++ .../main/java/com/iformall/CApplication.java | 8 ++++ .../controller/HaiKangController.java | 10 +++++ .../src/main/resources/application-dev.yml | 4 ++ .../src/main/resources/application-prod.yml | 4 ++ .../iformall/haikang/CarNumberFactory.java | 41 +++++++++++++++++++ .../haikang/netty/NioSocketHandler.java | 7 +++- .../haikang/netty/NioSocketInitializer.java | 7 +++- .../haikang/netty/NioSocketServer.java | 5 ++- 10 files changed, 89 insertions(+), 5 deletions(-) create mode 100644 bjairService/src/main/java/com/iformall/haikang/CarNumberFactory.java diff --git a/bjairAdmin/src/main/resources/application-dev.yml b/bjairAdmin/src/main/resources/application-dev.yml index 3e061a0..e29d51f 100644 --- a/bjairAdmin/src/main/resources/application-dev.yml +++ b/bjairAdmin/src/main/resources/application-dev.yml @@ -164,6 +164,10 @@ video: tcp: server: port: 9010 + +air: + car: + file: /root/byjc jasypt: diff --git a/bjairAdmin/src/main/resources/application-prod.yml b/bjairAdmin/src/main/resources/application-prod.yml index 134320d..d0f03f2 100644 --- a/bjairAdmin/src/main/resources/application-prod.yml +++ b/bjairAdmin/src/main/resources/application-prod.yml @@ -151,6 +151,10 @@ video: tcp: server: port: 9010 + +air: + car: + file: /root/byjc fm: exception: false diff --git a/bjairCApi/src/main/java/com/iformall/CApplication.java b/bjairCApi/src/main/java/com/iformall/CApplication.java index 4b6f1c0..f5b3a5a 100644 --- a/bjairCApi/src/main/java/com/iformall/CApplication.java +++ b/bjairCApi/src/main/java/com/iformall/CApplication.java @@ -50,6 +50,9 @@ public class CApplication implements CommandLineRunner{ @Value("${tcp.server.port}") private int tcpServerPort; + @Value("${air.car.file}") + private String airCarFile; + @Autowired private NioSocketServer nioSocketServer; @@ -93,6 +96,11 @@ public class CApplication implements CommandLineRunner{ public int tcpServerPort() { return tcpServerPort; } + + @Bean + public String airCarFile() { + return airCarFile; + } public static void main(String[] args) { SpringApplication.run(CApplication.class, args); diff --git a/bjairCApi/src/main/java/com/iformall/controller/HaiKangController.java b/bjairCApi/src/main/java/com/iformall/controller/HaiKangController.java index dd46fb1..e681a21 100644 --- a/bjairCApi/src/main/java/com/iformall/controller/HaiKangController.java +++ b/bjairCApi/src/main/java/com/iformall/controller/HaiKangController.java @@ -36,6 +36,7 @@ import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONObject; import com.iformall.annotation.AuthIgnore; import com.iformall.common.ResultData; +import com.iformall.haikang.CarNumberFactory; import com.iformall.haikang.HKHttpClientInstanceFactory; import com.iformall.haikang.HKPeopleNumberFactory; @@ -72,12 +73,21 @@ public class HaiKangController { @Autowired HKPeopleNumberFactory peopleNumberFactory; + @Autowired + CarNumberFactory carNumberFactory; + @AuthIgnore @GetMapping("/getPeopleNumber") public ResultData getPeopleNumber() { return new ResultData(peopleNumberFactory.getPeopleNumber()); } + @AuthIgnore + @GetMapping("/getCarNumber") + public ResultData getCarNumber() { + return new ResultData(carNumberFactory.getCarNumber()); + } + @AuthIgnore @GetMapping("/setPeopleNumber") public ResultData setPeopleNumber(String ip,Integer peopleNumber) { diff --git a/bjairCApi/src/main/resources/application-dev.yml b/bjairCApi/src/main/resources/application-dev.yml index 83c8565..d5d2077 100644 --- a/bjairCApi/src/main/resources/application-dev.yml +++ b/bjairCApi/src/main/resources/application-dev.yml @@ -161,6 +161,10 @@ video: tcp: server: port: 9010 + +air: + car: + file: /root/byjc jasypt: encryptor: diff --git a/bjairCApi/src/main/resources/application-prod.yml b/bjairCApi/src/main/resources/application-prod.yml index 3f06b41..8deb2f3 100644 --- a/bjairCApi/src/main/resources/application-prod.yml +++ b/bjairCApi/src/main/resources/application-prod.yml @@ -132,6 +132,10 @@ video: tcp: server: port: 9010 + +air: + car: + file: /root/byjc fm: exception: false diff --git a/bjairService/src/main/java/com/iformall/haikang/CarNumberFactory.java b/bjairService/src/main/java/com/iformall/haikang/CarNumberFactory.java new file mode 100644 index 0000000..8e34073 --- /dev/null +++ b/bjairService/src/main/java/com/iformall/haikang/CarNumberFactory.java @@ -0,0 +1,41 @@ +package com.iformall.haikang; + +import java.io.BufferedReader; +import java.io.FileNotFoundException; +import java.io.FileReader; +import java.io.IOException; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; + +@Component +public class CarNumberFactory { + + private final Logger log = LoggerFactory.getLogger(this.getClass()); + + @Autowired + private String airCarFile; + + + public Integer getCarNumber() { + int result = 0; + try (BufferedReader br = new BufferedReader(new FileReader(airCarFile))) { + String line; + while ((line = br.readLine()) != null) { + try { + result = Integer.parseInt(line); + break; + }catch(Exception e) { + log.error("getCarNumber error.",e); + } + } + } catch (FileNotFoundException e) { + log.error("getCarNumber error.",e); + } catch (IOException e) { + log.error("getCarNumber error.",e); + } + return result; + } + +} diff --git a/bjairService/src/main/java/com/iformall/haikang/netty/NioSocketHandler.java b/bjairService/src/main/java/com/iformall/haikang/netty/NioSocketHandler.java index 1a5a887..4c7892b 100644 --- a/bjairService/src/main/java/com/iformall/haikang/netty/NioSocketHandler.java +++ b/bjairService/src/main/java/com/iformall/haikang/netty/NioSocketHandler.java @@ -15,6 +15,7 @@ import org.springframework.stereotype.Component; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; +import com.iformall.haikang.CarNumberFactory; import com.iformall.haikang.HKPeopleNumberFactory; import io.netty.channel.ChannelHandlerContext; @@ -28,11 +29,13 @@ public class NioSocketHandler extends SimpleChannelInboundHandler{ private String hexData = ""; private HKPeopleNumberFactory peopleNumberFactory; + private CarNumberFactory carNumberFactory; private final ThreadPoolTaskExecutor threadPoolTaskExecutor; - public NioSocketHandler(ThreadPoolTaskExecutor threadPoolTaskExecutor,HKPeopleNumberFactory peopleNumberFactory) { + public NioSocketHandler(ThreadPoolTaskExecutor threadPoolTaskExecutor,HKPeopleNumberFactory peopleNumberFactory,CarNumberFactory carNumberFactory) { this.threadPoolTaskExecutor = threadPoolTaskExecutor; this.peopleNumberFactory = peopleNumberFactory; + this.carNumberFactory = carNumberFactory; } @Override @@ -123,7 +126,7 @@ public class NioSocketHandler extends SimpleChannelInboundHandler{ value = peopleNumberFactory.getPeopleNumber();;//查询当前排队人数 break; case 4: - value = 1;//查询场内出租车 + value = carNumberFactory.getCarNumber();//查询场内出租车 break; case 5: value = 1;//查询在途出租车 diff --git a/bjairService/src/main/java/com/iformall/haikang/netty/NioSocketInitializer.java b/bjairService/src/main/java/com/iformall/haikang/netty/NioSocketInitializer.java index 2bfe219..c9d4646 100644 --- a/bjairService/src/main/java/com/iformall/haikang/netty/NioSocketInitializer.java +++ b/bjairService/src/main/java/com/iformall/haikang/netty/NioSocketInitializer.java @@ -6,6 +6,7 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor; import org.springframework.stereotype.Component; +import com.iformall.haikang.CarNumberFactory; import com.iformall.haikang.HKPeopleNumberFactory; import io.netty.channel.ChannelInitializer; @@ -21,10 +22,12 @@ public class NioSocketInitializer extends ChannelInitializer{ private ThreadPoolTaskExecutor threadPoolTaskExecutor; private HKPeopleNumberFactory peopleNumberFactory; + private CarNumberFactory carNumberFactory; - public NioSocketInitializer(ThreadPoolTaskExecutor threadPoolTaskExecutor,HKPeopleNumberFactory peopleNumberFactory) { + public NioSocketInitializer(ThreadPoolTaskExecutor threadPoolTaskExecutor,HKPeopleNumberFactory peopleNumberFactory,CarNumberFactory carNumberFactory) { this.threadPoolTaskExecutor = threadPoolTaskExecutor; this.peopleNumberFactory = peopleNumberFactory; + this.carNumberFactory = carNumberFactory; } @@ -46,7 +49,7 @@ public class NioSocketInitializer extends ChannelInitializer{ // 使用自定义线程池处理业务逻辑 log.info(">>>>peopleNumberFactory:"+peopleNumberFactory); - pipeline.addLast(new NioSocketHandler(threadPoolTaskExecutor,peopleNumberFactory)); + pipeline.addLast(new NioSocketHandler(threadPoolTaskExecutor,peopleNumberFactory,carNumberFactory)); // 连接策略 pipeline.addLast(new IpRejectHandler()); } diff --git a/bjairService/src/main/java/com/iformall/haikang/netty/NioSocketServer.java b/bjairService/src/main/java/com/iformall/haikang/netty/NioSocketServer.java index 21212a7..6416442 100644 --- a/bjairService/src/main/java/com/iformall/haikang/netty/NioSocketServer.java +++ b/bjairService/src/main/java/com/iformall/haikang/netty/NioSocketServer.java @@ -6,6 +6,7 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor; import org.springframework.stereotype.Component; +import com.iformall.haikang.CarNumberFactory; import com.iformall.haikang.HKPeopleNumberFactory; import io.netty.bootstrap.ServerBootstrap; @@ -23,6 +24,8 @@ public class NioSocketServer { private ThreadPoolTaskExecutor threadPoolTaskExecutor; @Autowired private HKPeopleNumberFactory peopleNumberFactory; + @Autowired + private CarNumberFactory carNumberFactory; private EventLoopGroup bossGroup; private EventLoopGroup workerGroup; @@ -36,7 +39,7 @@ public class NioSocketServer { ServerBootstrap b = new ServerBootstrap(); b.group(bossGroup, workerGroup) .channel(NioServerSocketChannel.class) - .childHandler(new NioSocketInitializer(threadPoolTaskExecutor,peopleNumberFactory)) + .childHandler(new NioSocketInitializer(threadPoolTaskExecutor,peopleNumberFactory,carNumberFactory)) .option(ChannelOption.SO_BACKLOG, 128) .childOption(ChannelOption.SO_KEEPALIVE, true);