From 7f2e9ffdb340e4c94013ac0bcac3a1c21cd8cb6b Mon Sep 17 00:00:00 2001 From: limqhz Date: Tue, 14 Jul 2020 01:00:16 +0800 Subject: [PATCH] =?UTF-8?q?netty-netty=E4=B8=8Eapi=E8=BF=9B=E8=A1=8C?= =?UTF-8?q?=E5=90=88=E5=B9=B6=EF=BC=8C=E8=BF=99=E6=A0=B7=E5=8F=AF=E4=BB=A5?= =?UTF-8?q?=E6=96=B9=E4=BE=BF=E6=88=91=E4=BB=AC=E8=BF=9B=E8=A1=8C=E4=B9=8B?= =?UTF-8?q?=E5=90=8E=E7=9A=84=E4=BA=BA=E8=84=B8=E5=88=87=E6=8D=A2=E5=88=B0?= =?UTF-8?q?=E4=BA=8C=E7=BB=B4=E7=A0=81=E7=9A=84=E6=93=8D=E4=BD=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- api/build.gradle | 32 +++--- api/src/main/java/com/Application.java | 31 ------ .../main/java/com/NettyWeiXinApplication.java | 65 ++++++++++++ .../sv/api/controller/QREnterController.java | 40 +++++++ .../com/sv/api/task/MemberCardUpdate.java | 26 +++-- .../sv/netty/config/ClientChannelCache.java | 0 .../java/com/sv/netty/config/Constant.java | 0 .../java/com/sv/netty/config/ErrorCode.java | 0 .../sv/netty/config/SpringContextHolder.java | 0 .../sv/netty/controller/MessageControler.java | 0 .../sv/netty/controller/QRCodeControler.java | 0 .../main/java/com/sv/netty/dto/MemberDto.java | 0 .../java/com/sv/netty/dto/ResponseDTO.java | 0 .../java/com/sv/netty/netty/BootService.java | 0 .../com/sv/netty/netty/MessageEncoder.java | 0 .../com/sv/netty/netty/ServerHandler.java | 0 .../netty/ServerProtocolInitializer.java | 0 .../sv/netty/netty/message/ChannelParam.java | 0 .../com/sv/netty/netty/message/HeartBeat.java | 0 .../com/sv/netty/netty/message/Result.java | 0 .../netty/netty/service/MessageService.java | 0 .../impl/TcpMessageHandlerAdapter.java | 22 ++-- .../java/com/sv/netty/utils/CommonUtils.java | 0 .../java/com/sv/netty/utils/EncodeUtils.java | 0 .../java/com/sv/netty/utils/JsonMapper.java | 0 .../java/com/sv/netty/utils/JsonUtils.java | 0 api/src/main/resources/config/application.yml | 19 +++- api/src/main/resources/logback.xml | 16 +++ api/src/test/java/com/FaceServiceTest.java | 80 -------------- .../test/java}/com/test/netty/ClientTest.java | 0 .../com/test/netty/client/ClientHandler.java | 0 .../test/netty/client/ClientInitializer.java | 0 .../com/test/netty/client/ClientThread.java | 2 +- .../com/test/netty/client/MessageEncoder.java | 0 .../test/netty/client/config/Constant.java | 0 .../test/netty/client/message/HeartBeat.java | 0 .../test/netty/client/message/MemberDto.java | 0 netty-pad/build.gradle | 49 --------- .../src/main/java/com/NettyApplication.java | 73 ------------- .../main/resources/config/application-dev.yml | 16 --- .../resources/config/application-prod.yml | 17 --- .../src/main/resources/config/application.yml | 100 ------------------ netty-pad/src/main/resources/logback.xml | 65 ------------ .../main/resources/mybatis/mybatis-config.xml | 41 ------- .../com/sv/service/api/QRCodeService.java | 50 +++++++++ .../com/sv/service/oms/DeviceService.java | 2 +- .../mybatis/mapper/sv/MemberCardMapper.xml | 2 +- settings.gradle | 4 +- 48 files changed, 238 insertions(+), 514 deletions(-) delete mode 100644 api/src/main/java/com/Application.java create mode 100644 api/src/main/java/com/NettyWeiXinApplication.java create mode 100644 api/src/main/java/com/sv/api/controller/QREnterController.java rename {netty-pad => api}/src/main/java/com/sv/netty/config/ClientChannelCache.java (100%) rename {netty-pad => api}/src/main/java/com/sv/netty/config/Constant.java (100%) rename {netty-pad => api}/src/main/java/com/sv/netty/config/ErrorCode.java (100%) rename {netty-pad => api}/src/main/java/com/sv/netty/config/SpringContextHolder.java (100%) rename {netty-pad => api}/src/main/java/com/sv/netty/controller/MessageControler.java (100%) rename {netty-pad => api}/src/main/java/com/sv/netty/controller/QRCodeControler.java (100%) rename {netty-pad => api}/src/main/java/com/sv/netty/dto/MemberDto.java (100%) rename {netty-pad => api}/src/main/java/com/sv/netty/dto/ResponseDTO.java (100%) rename {netty-pad => api}/src/main/java/com/sv/netty/netty/BootService.java (100%) rename {netty-pad => api}/src/main/java/com/sv/netty/netty/MessageEncoder.java (100%) rename {netty-pad => api}/src/main/java/com/sv/netty/netty/ServerHandler.java (100%) rename {netty-pad => api}/src/main/java/com/sv/netty/netty/ServerProtocolInitializer.java (100%) rename {netty-pad => api}/src/main/java/com/sv/netty/netty/message/ChannelParam.java (100%) rename {netty-pad => api}/src/main/java/com/sv/netty/netty/message/HeartBeat.java (100%) rename {netty-pad => api}/src/main/java/com/sv/netty/netty/message/Result.java (100%) rename {netty-pad => api}/src/main/java/com/sv/netty/netty/service/MessageService.java (100%) rename {netty-pad => api}/src/main/java/com/sv/netty/netty/service/impl/TcpMessageHandlerAdapter.java (94%) rename {netty-pad => api}/src/main/java/com/sv/netty/utils/CommonUtils.java (100%) rename {netty-pad => api}/src/main/java/com/sv/netty/utils/EncodeUtils.java (100%) rename {netty-pad => api}/src/main/java/com/sv/netty/utils/JsonMapper.java (100%) rename {netty-pad => api}/src/main/java/com/sv/netty/utils/JsonUtils.java (100%) delete mode 100644 api/src/test/java/com/FaceServiceTest.java rename {netty-pad/src/test => api/src/test/java}/com/test/netty/ClientTest.java (100%) rename {netty-pad/src/test => api/src/test/java}/com/test/netty/client/ClientHandler.java (100%) rename {netty-pad/src/test => api/src/test/java}/com/test/netty/client/ClientInitializer.java (100%) rename {netty-pad/src/test => api/src/test/java}/com/test/netty/client/ClientThread.java (99%) rename {netty-pad/src/test => api/src/test/java}/com/test/netty/client/MessageEncoder.java (100%) rename {netty-pad/src/test => api/src/test/java}/com/test/netty/client/config/Constant.java (100%) rename {netty-pad/src/test => api/src/test/java}/com/test/netty/client/message/HeartBeat.java (100%) rename {netty-pad/src/test => api/src/test/java}/com/test/netty/client/message/MemberDto.java (100%) delete mode 100644 netty-pad/build.gradle delete mode 100644 netty-pad/src/main/java/com/NettyApplication.java delete mode 100644 netty-pad/src/main/resources/config/application-dev.yml delete mode 100644 netty-pad/src/main/resources/config/application-prod.yml delete mode 100644 netty-pad/src/main/resources/config/application.yml delete mode 100644 netty-pad/src/main/resources/logback.xml delete mode 100644 netty-pad/src/main/resources/mybatis/mybatis-config.xml create mode 100644 service/src/main/java/com/sv/service/api/QRCodeService.java diff --git a/api/build.gradle b/api/build.gradle index 9419d0f..79b6b6e 100644 --- a/api/build.gradle +++ b/api/build.gradle @@ -1,22 +1,25 @@ +buildscript { + ext { + springBootVersion = '1.5.6.RELEASE' + } + repositories { + maven { + url 'http://maven.aliyun.com/nexus/content/groups/public/' + } + } + dependencies { + classpath("org.springframework.boot:spring-boot-gradle-plugin:${springBootVersion}") + } +} + group 'SmartVenue' -version '1.0.0' +version '2.0.0' apply plugin: 'java' apply plugin: 'org.springframework.boot' sourceCompatibility = 1.8 -buildscript { - repositories { - //mavenCentral() - maven { - url 'http://maven.aliyun.com/nexus/content/groups/public/' - } - } - dependencies { - classpath("org.springframework.boot:spring-boot-gradle-plugin:1.5.4.RELEASE") - } -} repositories { //mavenCentral() maven { @@ -27,11 +30,14 @@ repositories { jar { baseName = 'sv-api' } - +ext { + nettyVersion = '4.1.10.Final' +} dependencies { testCompile group: 'junit', name: 'junit', version: '4.12' compile fileTree(include: '*.jar', dir: 'src/libs') compile project(':service') + compile "io.netty:netty-all:${nettyVersion}" compile 'mysql:mysql-connector-java:6.0.6' } diff --git a/api/src/main/java/com/Application.java b/api/src/main/java/com/Application.java deleted file mode 100644 index d001646..0000000 --- a/api/src/main/java/com/Application.java +++ /dev/null @@ -1,31 +0,0 @@ -package com; - -import org.mybatis.spring.annotation.MapperScan; -import org.springframework.boot.SpringApplication; -import org.springframework.boot.autoconfigure.EnableAutoConfiguration; -import org.springframework.boot.autoconfigure.SpringBootApplication; -import org.springframework.scheduling.annotation.EnableAsync; -import org.springframework.scheduling.annotation.EnableScheduling; - -/** - * 项目入口 - * - * @author xingkong1221 - * @since 2017-06-19 - */ -@SpringBootApplication -@EnableScheduling -@EnableAsync -@MapperScan(value = {"com.sv.mapper"}) -public class Application { - - /** - * 启动项目 - * - * @param args 启动参数 - */ - public static void main(String[] args) { - SpringApplication.run(Application.class, args); - } - -} diff --git a/api/src/main/java/com/NettyWeiXinApplication.java b/api/src/main/java/com/NettyWeiXinApplication.java new file mode 100644 index 0000000..364625f --- /dev/null +++ b/api/src/main/java/com/NettyWeiXinApplication.java @@ -0,0 +1,65 @@ +package com; + +import com.sv.netty.config.SpringContextHolder; +import com.sv.netty.netty.BootService; +import org.mybatis.spring.annotation.MapperScan; +import org.springframework.boot.SpringApplication; +import org.springframework.boot.autoconfigure.EnableAutoConfiguration; +import org.springframework.boot.autoconfigure.SpringBootApplication; +import org.springframework.context.ConfigurableApplicationContext; +import org.springframework.scheduling.annotation.EnableAsync; +import org.springframework.scheduling.annotation.EnableScheduling; + +/** + * 项目入口 + */ +@SpringBootApplication +@EnableScheduling +@EnableAsync +@MapperScan(value = {"com.sv.mapper"}) +public class NettyWeiXinApplication { + + /** + * 启动项目 + * + * @param args 启动参数 + */ + public static void main(String[] args) { +// SpringApplication.run(NettyWeiXinApplication.class, args); + ConfigurableApplicationContext context = SpringApplication.run(NettyWeiXinApplication.class, args); + SpringContextHolder.setContext(context); + //启动netty + BootService bootService = (BootService) context.getBean("bootService"); + bootService.run(); + } + + + /** + * 项目可能又使用计划任务的 + */ +// private int corePoolSize = 5;//线程池维护线程的最少数量 +// +// private int maxPoolSize = 15;//线程池维护线程的最大数量 +// +// private int queueCapacity = 5; //缓存队列 +// +// private int keepAlive = 60;//允许的空闲时间 +// @Bean("scheduledExecutorService") +// public ScheduledExecutorService initScheduledExecutorService() { +// ScheduledExecutorService executorService = new ScheduledThreadPoolExecutor(400, +// new BasicThreadFactory.Builder().namingPattern("example-schedule-pool-%d").daemon(true).build()); +// return executorService; +// } +// @Bean +// public Executor executor() { +// ThreadPoolTaskExecutor executor = new ThreadPoolTaskExecutor(); +// executor.setCorePoolSize(corePoolSize); +// executor.setMaxPoolSize(maxPoolSize); +// executor.setQueueCapacity(queueCapacity); +// executor.setThreadNamePrefix("mqExecutor-"); +// executor.setRejectedExecutionHandler(new ThreadPoolExecutor.DiscardOldestPolicy()); +// executor.setKeepAliveSeconds(keepAlive); +// executor.initialize(); +// return executor; +// } +} diff --git a/api/src/main/java/com/sv/api/controller/QREnterController.java b/api/src/main/java/com/sv/api/controller/QREnterController.java new file mode 100644 index 0000000..0dca4c2 --- /dev/null +++ b/api/src/main/java/com/sv/api/controller/QREnterController.java @@ -0,0 +1,40 @@ +package com.sv.api.controller; + +import com.sv.service.api.QRCodeService; +import com.ydd.framework.core.common.dto.ResponseDTO; +import com.ydd.framework.core.controller.BaseApiController; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.web.bind.annotation.*; + +import javax.annotation.Resource; + +/** + * 二维码进场Controller + */ +@RestController +public class QREnterController extends BaseApiController { + + private final Logger logger = LoggerFactory.getLogger(QREnterController.class); + @Resource + private QRCodeService qrCodeService; + /** + * 进场指令发布 + */ + @RequestMapping(value = "/qr/enter", method = RequestMethod.GET) + public ResponseDTO enter(@RequestParam("deviceId") String deviceId) { + qrCodeService.enter(deviceId); + return ResponseDTO.ok(); + } + + /** + * 扫码结果页初始化 + * 需要进场的场馆信息 + */ + @RequestMapping(value = "/qr/init", method = RequestMethod.GET) + public ResponseDTO initEnter(@RequestParam("deviceId")String deviceId) { + + return ResponseDTO.ok().addAttribute("init",qrCodeService.initEnter(deviceId)); + } + +} diff --git a/api/src/main/java/com/sv/api/task/MemberCardUpdate.java b/api/src/main/java/com/sv/api/task/MemberCardUpdate.java index fb24129..82488b1 100644 --- a/api/src/main/java/com/sv/api/task/MemberCardUpdate.java +++ b/api/src/main/java/com/sv/api/task/MemberCardUpdate.java @@ -33,17 +33,21 @@ public class MemberCardUpdate { public void execute(){ // 查询用户已过期的会员卡 List cards = memberCardService.findAllCard(); - // 查询出用户顺延的会员卡,正好是今日 - List memberCards = memberCardService.findAllMemberCard(cards); - - //修改过期的会员卡为未激活 - memberCardService.updateStatus(cards,0); - - //修改用户默认会员卡 - for (MemberCard memberCard : memberCards){ - MemberCard lists = memberCardService.findMemberCardByVenue(memberCard.getMemberId(),memberCard.getVenueId(),memberCard.getVeneuType()); - lists.setStatus(1); - memberCardService.update(lists); + if (cards != null && cards.size() > 0){ + //修改过期的会员卡为未激活 + memberCardService.updateStatus(cards,0); + // 查询出用户顺延的会员卡,正好是今日 + List memberCards = memberCardService.findAllMemberCard(cards); + //修改用户默认会员卡 + if (memberCards!= null && memberCards.size() > 0){ + for (MemberCard memberCard : memberCards){ + MemberCard mem = memberCardService.findMemberCardByVenue(memberCard.getMemberId(),memberCard.getVenueId(),memberCard.getVeneuType()); + if (mem != null){ + mem.setStatus(1); + memberCardService.update(mem); + } + } + } } } } diff --git a/netty-pad/src/main/java/com/sv/netty/config/ClientChannelCache.java b/api/src/main/java/com/sv/netty/config/ClientChannelCache.java similarity index 100% rename from netty-pad/src/main/java/com/sv/netty/config/ClientChannelCache.java rename to api/src/main/java/com/sv/netty/config/ClientChannelCache.java diff --git a/netty-pad/src/main/java/com/sv/netty/config/Constant.java b/api/src/main/java/com/sv/netty/config/Constant.java similarity index 100% rename from netty-pad/src/main/java/com/sv/netty/config/Constant.java rename to api/src/main/java/com/sv/netty/config/Constant.java diff --git a/netty-pad/src/main/java/com/sv/netty/config/ErrorCode.java b/api/src/main/java/com/sv/netty/config/ErrorCode.java similarity index 100% rename from netty-pad/src/main/java/com/sv/netty/config/ErrorCode.java rename to api/src/main/java/com/sv/netty/config/ErrorCode.java diff --git a/netty-pad/src/main/java/com/sv/netty/config/SpringContextHolder.java b/api/src/main/java/com/sv/netty/config/SpringContextHolder.java similarity index 100% rename from netty-pad/src/main/java/com/sv/netty/config/SpringContextHolder.java rename to api/src/main/java/com/sv/netty/config/SpringContextHolder.java diff --git a/netty-pad/src/main/java/com/sv/netty/controller/MessageControler.java b/api/src/main/java/com/sv/netty/controller/MessageControler.java similarity index 100% rename from netty-pad/src/main/java/com/sv/netty/controller/MessageControler.java rename to api/src/main/java/com/sv/netty/controller/MessageControler.java diff --git a/netty-pad/src/main/java/com/sv/netty/controller/QRCodeControler.java b/api/src/main/java/com/sv/netty/controller/QRCodeControler.java similarity index 100% rename from netty-pad/src/main/java/com/sv/netty/controller/QRCodeControler.java rename to api/src/main/java/com/sv/netty/controller/QRCodeControler.java diff --git a/netty-pad/src/main/java/com/sv/netty/dto/MemberDto.java b/api/src/main/java/com/sv/netty/dto/MemberDto.java similarity index 100% rename from netty-pad/src/main/java/com/sv/netty/dto/MemberDto.java rename to api/src/main/java/com/sv/netty/dto/MemberDto.java diff --git a/netty-pad/src/main/java/com/sv/netty/dto/ResponseDTO.java b/api/src/main/java/com/sv/netty/dto/ResponseDTO.java similarity index 100% rename from netty-pad/src/main/java/com/sv/netty/dto/ResponseDTO.java rename to api/src/main/java/com/sv/netty/dto/ResponseDTO.java diff --git a/netty-pad/src/main/java/com/sv/netty/netty/BootService.java b/api/src/main/java/com/sv/netty/netty/BootService.java similarity index 100% rename from netty-pad/src/main/java/com/sv/netty/netty/BootService.java rename to api/src/main/java/com/sv/netty/netty/BootService.java diff --git a/netty-pad/src/main/java/com/sv/netty/netty/MessageEncoder.java b/api/src/main/java/com/sv/netty/netty/MessageEncoder.java similarity index 100% rename from netty-pad/src/main/java/com/sv/netty/netty/MessageEncoder.java rename to api/src/main/java/com/sv/netty/netty/MessageEncoder.java diff --git a/netty-pad/src/main/java/com/sv/netty/netty/ServerHandler.java b/api/src/main/java/com/sv/netty/netty/ServerHandler.java similarity index 100% rename from netty-pad/src/main/java/com/sv/netty/netty/ServerHandler.java rename to api/src/main/java/com/sv/netty/netty/ServerHandler.java diff --git a/netty-pad/src/main/java/com/sv/netty/netty/ServerProtocolInitializer.java b/api/src/main/java/com/sv/netty/netty/ServerProtocolInitializer.java similarity index 100% rename from netty-pad/src/main/java/com/sv/netty/netty/ServerProtocolInitializer.java rename to api/src/main/java/com/sv/netty/netty/ServerProtocolInitializer.java diff --git a/netty-pad/src/main/java/com/sv/netty/netty/message/ChannelParam.java b/api/src/main/java/com/sv/netty/netty/message/ChannelParam.java similarity index 100% rename from netty-pad/src/main/java/com/sv/netty/netty/message/ChannelParam.java rename to api/src/main/java/com/sv/netty/netty/message/ChannelParam.java diff --git a/netty-pad/src/main/java/com/sv/netty/netty/message/HeartBeat.java b/api/src/main/java/com/sv/netty/netty/message/HeartBeat.java similarity index 100% rename from netty-pad/src/main/java/com/sv/netty/netty/message/HeartBeat.java rename to api/src/main/java/com/sv/netty/netty/message/HeartBeat.java diff --git a/netty-pad/src/main/java/com/sv/netty/netty/message/Result.java b/api/src/main/java/com/sv/netty/netty/message/Result.java similarity index 100% rename from netty-pad/src/main/java/com/sv/netty/netty/message/Result.java rename to api/src/main/java/com/sv/netty/netty/message/Result.java diff --git a/netty-pad/src/main/java/com/sv/netty/netty/service/MessageService.java b/api/src/main/java/com/sv/netty/netty/service/MessageService.java similarity index 100% rename from netty-pad/src/main/java/com/sv/netty/netty/service/MessageService.java rename to api/src/main/java/com/sv/netty/netty/service/MessageService.java diff --git a/netty-pad/src/main/java/com/sv/netty/netty/service/impl/TcpMessageHandlerAdapter.java b/api/src/main/java/com/sv/netty/netty/service/impl/TcpMessageHandlerAdapter.java similarity index 94% rename from netty-pad/src/main/java/com/sv/netty/netty/service/impl/TcpMessageHandlerAdapter.java rename to api/src/main/java/com/sv/netty/netty/service/impl/TcpMessageHandlerAdapter.java index daf4287..e932c11 100644 --- a/netty-pad/src/main/java/com/sv/netty/netty/service/impl/TcpMessageHandlerAdapter.java +++ b/api/src/main/java/com/sv/netty/netty/service/impl/TcpMessageHandlerAdapter.java @@ -56,8 +56,8 @@ public class TcpMessageHandlerAdapter implements MessageService { @Resource private ConfigService configService; - @Resource(name = "scheduledExecutorService") - private ScheduledExecutorService scheduledExecutorService; +// @Resource(name = "scheduledExecutorService") +// private ScheduledExecutorService scheduledExecutorService; @Resource private MemberEnterVenueLogService memberEnterVenueLogService; @@ -184,15 +184,15 @@ public class TcpMessageHandlerAdapter implements MessageService { member = memberService.findByFaceId(response.getPerson().getId()); memberMessageDto.setAmount(member.getMoney()); //5秒后开门 - scheduledExecutorService.schedule(new Runnable() { - @Override - public void run() { -// MessageDto messageDto = new MessageDto(); -// messageDto.setCmdId(Cmd.OPEN_DOOR.id); -// messageDto.setDoor(1); -// sendOpenMessage(messageDto, 1); - } - }, 5, TimeUnit.SECONDS); +// scheduledExecutorService.schedule(new Runnable() { +// @Override +// public void run() { +//// MessageDto messageDto = new MessageDto(); +//// messageDto.setCmdId(Cmd.OPEN_DOOR.id); +//// messageDto.setDoor(1); +//// sendOpenMessage(messageDto, 1); +// } +// }, 5, TimeUnit.SECONDS); } else { //开门 // MessageDto messageDto = new MessageDto(); diff --git a/netty-pad/src/main/java/com/sv/netty/utils/CommonUtils.java b/api/src/main/java/com/sv/netty/utils/CommonUtils.java similarity index 100% rename from netty-pad/src/main/java/com/sv/netty/utils/CommonUtils.java rename to api/src/main/java/com/sv/netty/utils/CommonUtils.java diff --git a/netty-pad/src/main/java/com/sv/netty/utils/EncodeUtils.java b/api/src/main/java/com/sv/netty/utils/EncodeUtils.java similarity index 100% rename from netty-pad/src/main/java/com/sv/netty/utils/EncodeUtils.java rename to api/src/main/java/com/sv/netty/utils/EncodeUtils.java diff --git a/netty-pad/src/main/java/com/sv/netty/utils/JsonMapper.java b/api/src/main/java/com/sv/netty/utils/JsonMapper.java similarity index 100% rename from netty-pad/src/main/java/com/sv/netty/utils/JsonMapper.java rename to api/src/main/java/com/sv/netty/utils/JsonMapper.java diff --git a/netty-pad/src/main/java/com/sv/netty/utils/JsonUtils.java b/api/src/main/java/com/sv/netty/utils/JsonUtils.java similarity index 100% rename from netty-pad/src/main/java/com/sv/netty/utils/JsonUtils.java rename to api/src/main/java/com/sv/netty/utils/JsonUtils.java diff --git a/api/src/main/resources/config/application.yml b/api/src/main/resources/config/application.yml index c27c8d1..85b19ec 100644 --- a/api/src/main/resources/config/application.yml +++ b/api/src/main/resources/config/application.yml @@ -73,6 +73,7 @@ mybatis: mapper-locations: classpath:mybatis/mapper/*/*.xml face: +# url: 192.168.1.111 url: 23r3o72310.iask.in account: test@test.com pwd: 123456 @@ -81,4 +82,20 @@ logging: level: com: sv: - mapper: DEBUG \ No newline at end of file + mapper: DEBUG + + +#netty服务器配置 +netty: + port: 56792 +boss: + thread: + count: 1 +worker: + thread: + count: 2 +so: + keepalive: true + backlog: 128 + reuseaddr: true +tcp_nodelay: true \ No newline at end of file diff --git a/api/src/main/resources/logback.xml b/api/src/main/resources/logback.xml index 5f5c8b0..94d7708 100644 --- a/api/src/main/resources/logback.xml +++ b/api/src/main/resources/logback.xml @@ -37,6 +37,22 @@ + + ${LOG_HOME}/connection.log + + ${LOG_HOME}/connection-%d{yyyy-MM-dd}.log + + + + %d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n + + + + + + + diff --git a/api/src/test/java/com/FaceServiceTest.java b/api/src/test/java/com/FaceServiceTest.java deleted file mode 100644 index b3262b8..0000000 --- a/api/src/test/java/com/FaceServiceTest.java +++ /dev/null @@ -1,80 +0,0 @@ -package com; - -import com.sv.entity.Member; -import com.sv.entity.MemberFaceInfo; -import com.sv.mapper.MemberMapper; -import com.sv.service.api.MemberService; -import com.sv.service.common.FaceService; -import org.junit.Test; -import org.junit.runner.RunWith; -import org.springframework.boot.test.context.SpringBootTest; -import org.springframework.context.annotation.Bean; -import org.springframework.context.support.PropertySourcesPlaceholderConfigurer; -import org.springframework.core.env.MutablePropertySources; -import org.springframework.test.context.TestPropertySource; -import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; - -import javax.annotation.Resource; -import java.io.FileInputStream; -import java.io.FileNotFoundException; -import java.io.IOException; -import java.util.Date; - -@RunWith(SpringJUnit4ClassRunner.class) -@SpringBootTest(webEnvironment= SpringBootTest.WebEnvironment.NONE) -public class FaceServiceTest { - - @Resource - private FaceService faceService; - - @Resource - private MemberService memberService; - - @Resource - private MemberMapper memberMapper; - - - @Test - public void test(){ - try { - faceService.login(); - } catch (Exception e) { - e.printStackTrace(); - } - } - - @Test - public void addFace() { - try { - faceService.login(); - faceService.show("7","",""); - faceService.show2(); - } catch (Exception e) { - e.printStackTrace(); - } - } - - @Test - public void addMember() throws IOException { - String faceUrl = "faceUrl"; - faceService.login(); - Member member = memberService.findById(521); - Integer memberId = member.getId(); - Integer subjectId = faceService.addSubject(130,member); - MemberFaceInfo memberFaceInfo = memberMapper.findMemberFaceInfo(memberId); - if (memberFaceInfo == null) { - memberFaceInfo = new MemberFaceInfo(); - memberFaceInfo.setMemberId(memberId); - memberFaceInfo.setPlatformId(1); - } - memberFaceInfo.setFaceId(subjectId); - memberFaceInfo.setFaceUrl(faceUrl); - memberFaceInfo.setModifiedTime(new Date()); - if (memberFaceInfo.getId() == null) { - memberMapper.insertMemberFaceInfo(memberFaceInfo); - } else { - memberMapper.updateMemberFaceInfo(memberFaceInfo); - } - } - -} diff --git a/netty-pad/src/test/com/test/netty/ClientTest.java b/api/src/test/java/com/test/netty/ClientTest.java similarity index 100% rename from netty-pad/src/test/com/test/netty/ClientTest.java rename to api/src/test/java/com/test/netty/ClientTest.java diff --git a/netty-pad/src/test/com/test/netty/client/ClientHandler.java b/api/src/test/java/com/test/netty/client/ClientHandler.java similarity index 100% rename from netty-pad/src/test/com/test/netty/client/ClientHandler.java rename to api/src/test/java/com/test/netty/client/ClientHandler.java diff --git a/netty-pad/src/test/com/test/netty/client/ClientInitializer.java b/api/src/test/java/com/test/netty/client/ClientInitializer.java similarity index 100% rename from netty-pad/src/test/com/test/netty/client/ClientInitializer.java rename to api/src/test/java/com/test/netty/client/ClientInitializer.java diff --git a/netty-pad/src/test/com/test/netty/client/ClientThread.java b/api/src/test/java/com/test/netty/client/ClientThread.java similarity index 99% rename from netty-pad/src/test/com/test/netty/client/ClientThread.java rename to api/src/test/java/com/test/netty/client/ClientThread.java index 27aa834..76cb632 100644 --- a/netty-pad/src/test/com/test/netty/client/ClientThread.java +++ b/api/src/test/java/com/test/netty/client/ClientThread.java @@ -32,7 +32,7 @@ public class ClientThread extends Thread{ if (instance == null) { synchronized (ClientThread.class) { if (instance == null) { - instance = new ClientThread("127.0.0.1", 56791); + instance = new ClientThread("127.0.0.1", 56792); } } } diff --git a/netty-pad/src/test/com/test/netty/client/MessageEncoder.java b/api/src/test/java/com/test/netty/client/MessageEncoder.java similarity index 100% rename from netty-pad/src/test/com/test/netty/client/MessageEncoder.java rename to api/src/test/java/com/test/netty/client/MessageEncoder.java diff --git a/netty-pad/src/test/com/test/netty/client/config/Constant.java b/api/src/test/java/com/test/netty/client/config/Constant.java similarity index 100% rename from netty-pad/src/test/com/test/netty/client/config/Constant.java rename to api/src/test/java/com/test/netty/client/config/Constant.java diff --git a/netty-pad/src/test/com/test/netty/client/message/HeartBeat.java b/api/src/test/java/com/test/netty/client/message/HeartBeat.java similarity index 100% rename from netty-pad/src/test/com/test/netty/client/message/HeartBeat.java rename to api/src/test/java/com/test/netty/client/message/HeartBeat.java diff --git a/netty-pad/src/test/com/test/netty/client/message/MemberDto.java b/api/src/test/java/com/test/netty/client/message/MemberDto.java similarity index 100% rename from netty-pad/src/test/com/test/netty/client/message/MemberDto.java rename to api/src/test/java/com/test/netty/client/message/MemberDto.java diff --git a/netty-pad/build.gradle b/netty-pad/build.gradle deleted file mode 100644 index 6e77163..0000000 --- a/netty-pad/build.gradle +++ /dev/null @@ -1,49 +0,0 @@ -buildscript { - ext { - springBootVersion = '1.5.6.RELEASE' - } - repositories { - maven { - url 'http://maven.aliyun.com/nexus/content/groups/public/' - } - } - dependencies { - classpath("org.springframework.boot:spring-boot-gradle-plugin:${springBootVersion}") - } -} -apply plugin: 'java' -apply plugin: 'org.springframework.boot' - -group 'SmartVenue' -version '2.0.0' - -sourceCompatibility = 1.8 - - -repositories { -// maven {url 'http://maven.ydd100.cn/repository/maven-public/'} - //mavenCentral() - maven { - url 'http://maven.aliyun.com/nexus/content/groups/public/' - } -} -ext { - version = '1.0' - springBootVersion = '1.5.4.RELEASE' - nettyVersion = '4.1.10.Final' - junitVersion = "4.11" - jacksonVersion = "2.5.0" -} - - -[compileJava, compileTestJava, javadoc]*.options*.encoding = 'UTF-8' - -dependencies { - compile fileTree(include: '*.jar', dir: 'src/libs') - compile project(':service') - - compile "io.netty:netty-all:${nettyVersion}" - compile 'mysql:mysql-connector-java:6.0.6' - - -} diff --git a/netty-pad/src/main/java/com/NettyApplication.java b/netty-pad/src/main/java/com/NettyApplication.java deleted file mode 100644 index 5d80165..0000000 --- a/netty-pad/src/main/java/com/NettyApplication.java +++ /dev/null @@ -1,73 +0,0 @@ -package com; - -import com.sv.netty.config.SpringContextHolder; -import com.sv.netty.netty.BootService; -import org.apache.commons.lang3.concurrent.BasicThreadFactory; -import org.mybatis.spring.annotation.MapperScan; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.boot.SpringApplication; -import org.springframework.boot.autoconfigure.SpringBootApplication; -import org.springframework.context.ConfigurableApplicationContext; -import org.springframework.context.annotation.Bean; -import org.springframework.context.annotation.ComponentScan; -import org.springframework.scheduling.annotation.EnableAsync; -import org.springframework.scheduling.annotation.EnableScheduling; -import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor; - -import java.util.concurrent.Executor; -import java.util.concurrent.ScheduledExecutorService; -import java.util.concurrent.ScheduledThreadPoolExecutor; -import java.util.concurrent.ThreadPoolExecutor; - -@SpringBootApplication -@EnableScheduling -@EnableAsync -@MapperScan(value = {"com.sv.mapper"}) -public class NettyApplication { - - private static Logger logger = LoggerFactory.getLogger(NettyApplication.class); - - public static void main(String[] args) { - logger.debug("应用启动成功..."); - ConfigurableApplicationContext context = SpringApplication.run(NettyApplication.class, args); - SpringContextHolder.setContext(context); - //启动netty - BootService bootService = (BootService) context.getBean("bootService"); - bootService.run(); - - //启动任务队列,处理 -// QueueTaskQueueDaemonThread queueTaskQueueDaemonThread = (QueueTaskQueueDaemonThread) context.getBean("queueTaskQueueDaemonThread"); -// queueTaskQueueDaemonThread.init(); - } - - private int corePoolSize = 5;//线程池维护线程的最少数量 - - private int maxPoolSize = 15;//线程池维护线程的最大数量 - - private int queueCapacity = 5; //缓存队列 - - private int keepAlive = 60;//允许的空闲时间 - - - @Bean("scheduledExecutorService") - public ScheduledExecutorService initScheduledExecutorService() { - ScheduledExecutorService executorService = new ScheduledThreadPoolExecutor(400, - new BasicThreadFactory.Builder().namingPattern("example-schedule-pool-%d").daemon(true).build()); - return executorService; - } - - @Bean - public Executor executor() { - ThreadPoolTaskExecutor executor = new ThreadPoolTaskExecutor(); - executor.setCorePoolSize(corePoolSize); - executor.setMaxPoolSize(maxPoolSize); - executor.setQueueCapacity(queueCapacity); - executor.setThreadNamePrefix("mqExecutor-"); - executor.setRejectedExecutionHandler(new ThreadPoolExecutor.DiscardOldestPolicy()); - executor.setKeepAliveSeconds(keepAlive); - executor.initialize(); - return executor; - } - -} diff --git a/netty-pad/src/main/resources/config/application-dev.yml b/netty-pad/src/main/resources/config/application-dev.yml deleted file mode 100644 index b28576f..0000000 --- a/netty-pad/src/main/resources/config/application-dev.yml +++ /dev/null @@ -1,16 +0,0 @@ -spring: - datasource: - url: jdbc:mysql://127.0.01:3306/smart_venue?useUnicode=true&characterEncoding=utf-8&autoReconnect=true&zeroDateTimeBehavior=convertToNull&serverTimezone=GMT%2b8&useAffectedRows=true&useSSL=false - username: root - password: 123456 - - jpa: - show-sql: true - -oss: - accessKeyId: LTAIlbtS4W2Xe4OV - accessKeySecret: qWMYkSfmXFtRoIv9q9OCbszcF9U7dX - protocol: http - name: smartvenue - endPoint: http://oss-cn-beijing.aliyuncs.com - url: https://smartvenue.oss-cn-beijing.aliyuncs.com/ \ No newline at end of file diff --git a/netty-pad/src/main/resources/config/application-prod.yml b/netty-pad/src/main/resources/config/application-prod.yml deleted file mode 100644 index bdd9b4a..0000000 --- a/netty-pad/src/main/resources/config/application-prod.yml +++ /dev/null @@ -1,17 +0,0 @@ -spring: - datasource: - url: jdbc:mysql://127.0.0.1:3306/smart_venue?useUnicode=true&characterEncoding=utf-8&autoReconnect=true&zeroDateTimeBehavior=convertToNull&serverTimezone=GMT%2b8&useAffectedRows=true - username: root - password: hyty1234 - driver-class-name: com.mysql.cj.jdbc.Driver - - jpa: - show-sql: true - -oss: - accessKeyId: LTAIlbtS4W2Xe4OV - accessKeySecret: qWMYkSfmXFtRoIv9q9OCbszcF9U7dX - protocol: http - name: smartvenue - endPoint: http://oss-cn-beijing.aliyuncs.com - url: https://smartvenue.oss-cn-beijing.aliyuncs.com/ \ No newline at end of file diff --git a/netty-pad/src/main/resources/config/application.yml b/netty-pad/src/main/resources/config/application.yml deleted file mode 100644 index a7d1540..0000000 --- a/netty-pad/src/main/resources/config/application.yml +++ /dev/null @@ -1,100 +0,0 @@ -server: - port: 8022 - context-path: /netty - tomcat: - uri-encoding: utf-8 - - - -spring: - profiles: - include: - -dev - -prod - active: dev - - - # 数据库连接池配置 - druid: - filters: stat - initialSize: 1 - minIdle: 1 - maxActive: 40 - maxWait: 600000 - timeBetweenEvictionRunsMillis: 60000 - minEvictableIdleTimeMillis: 300000 - validationQuery: SELECT 'x' - testWhileIdle: true - testOnBorrow: false - testOnReturn: false - poolPreparedStatements: true - maxPoolPreparedStatementPerConnectionSize: 20 - WebStatFilter: - enabled: false - urlPattern: - exclusions: - sessionStatMaxCount: - sessionStatEnable: - principalSessionName: - principalCookieName: - profileEnable: - StatViewServlet: - enabled: true - urlPattern: /druid/* - resetEnable: true - loginUsername: druid - loginPassword: druid - allow: - deny: - aop: - auto: true - http: - encoding: - force: true - charset: utf-8 - enabled: true - - jackson: - date-format: yyyy-MM-dd HH:mm:ss - property-naming-strategy: CAMEL_CASE_TO_LOWER_CASE_WITH_UNDERSCORES - - redis: - pool: - max-active: 1000 - max-wait: -1 - max-idle: 8 - min-idle: 8 - timeout: 60000 - -# MyBatis Configuration -mybatis: - type-aliases-package: com.ydd.oms.entity - config-location: classpath:mybatis/mybatis-config.xml - mapper-locations: classpath:mybatis/mapper/*/*.xml - - -face: - url: 192.168.1.111 - account: test@test.com - pwd: 123456 - -#netty服务器配置 -netty: - port: 56791 -boss: - thread: - count: 1 -worker: - thread: - count: 2 -so: - keepalive: true - backlog: 128 - reuseaddr: true -tcp_nodelay: true - -logging: - level: - com: - sv: - mapper: DEBUG \ No newline at end of file diff --git a/netty-pad/src/main/resources/logback.xml b/netty-pad/src/main/resources/logback.xml deleted file mode 100644 index c829def..0000000 --- a/netty-pad/src/main/resources/logback.xml +++ /dev/null @@ -1,65 +0,0 @@ - - - - - - - - - %d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n - - - - - ${LOG_HOME}/common-default.log - - ${LOG_HOME}/common-default-%d{yyyy-MM-dd}.log - - - - %d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n - - - - - ${LOG_HOME}/common-error.log - - ERROR - - - ${LOG_HOME}/common-error-%d{yyyy-MM-dd}.log - - - - %d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n - - - - - ${LOG_HOME}/connection.log - - ERROR - - - ${LOG_HOME}/connection-%d{yyyy-MM-dd}.log - - - - %d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n - - - - - - - - - - - - - - \ No newline at end of file diff --git a/netty-pad/src/main/resources/mybatis/mybatis-config.xml b/netty-pad/src/main/resources/mybatis/mybatis-config.xml deleted file mode 100644 index a39c274..0000000 --- a/netty-pad/src/main/resources/mybatis/mybatis-config.xml +++ /dev/null @@ -1,41 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/service/src/main/java/com/sv/service/api/QRCodeService.java b/service/src/main/java/com/sv/service/api/QRCodeService.java new file mode 100644 index 0000000..1480a7d --- /dev/null +++ b/service/src/main/java/com/sv/service/api/QRCodeService.java @@ -0,0 +1,50 @@ +package com.sv.service.api; + +import com.sv.entity.Venue; +import com.sv.mapper.DeviceMapper; +import com.sv.mapper.VenueMapper; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import javax.annotation.Resource; + +/** + * 小程序扫二维码处理 + */ +@Service("qrCodeService") +@Transactional(readOnly = true) +public class QRCodeService { + private final Logger logger = LoggerFactory.getLogger(ProtocolService.class); + + @Resource + private VenueMapper venueMapper; + @Resource + private DeviceMapper deviceMapper; + + public void enter(String deviceId) { + + } + + public Venue initEnter(String deviceId) { + String deviceName = getDeviceName(deviceId); + String venueId = getVenueId(deviceId); + int i = Integer.parseInt(venueId); + Integer integer = deviceMapper.checkDevice(deviceName, i); + if (integer != 1){ + logger.error("设备【"+deviceId + "】未链接,活着不存在"); + return null; + } + return venueMapper.findById(i); + } + + private String getVenueId(String deviceId){ + return deviceId.split("$-$")[1]; + } + + private String getDeviceName(String deviceId){ + return deviceId.split("$-$")[0]; + } + +} diff --git a/service/src/main/java/com/sv/service/oms/DeviceService.java b/service/src/main/java/com/sv/service/oms/DeviceService.java index c530c94..659dc62 100644 --- a/service/src/main/java/com/sv/service/oms/DeviceService.java +++ b/service/src/main/java/com/sv/service/oms/DeviceService.java @@ -150,7 +150,7 @@ public class DeviceService extends BaseServiceImpl { device.setStatus(DeviceStatusEnum.ONLINE.value); device.setStream(deviceIp); if(deviceMapper.checkDevice(deviceName,venueId) > 0){ - logger.info(deviceName + venueId + "设备已存在,该设备。"); + logger.info(deviceName + venueId + "设备已存在"); deviceMapper.online(venueId, deviceName); }else { logger.info("落地客户端信息clientId = " + deviceIp + "&deviceName = " + deviceName + "&venueId = " + venueId); diff --git a/service/src/main/resources/mybatis/mapper/sv/MemberCardMapper.xml b/service/src/main/resources/mybatis/mapper/sv/MemberCardMapper.xml index c9427aa..67960ba 100644 --- a/service/src/main/resources/mybatis/mapper/sv/MemberCardMapper.xml +++ b/service/src/main/resources/mybatis/mapper/sv/MemberCardMapper.xml @@ -473,7 +473,7 @@ UPDATE sv_member_card SET `status` = #{status} - AND id IN + WHERE id IN #{cards.id} diff --git a/settings.gradle b/settings.gradle index 769d9ab..f5b5ee3 100644 --- a/settings.gradle +++ b/settings.gradle @@ -2,6 +2,4 @@ rootProject.name = 'SmartVenue' include 'service' include 'api' include 'oms' -include 'entity' -include 'netty-pad' - +include 'entity' \ No newline at end of file