netty-netty与api进行合并,这样可以方便我们进行之后的人脸切换到二维码的操作

This commit is contained in:
limqhz
2020-07-14 01:00:16 +08:00
parent fb9fa0ed4f
commit 7f2e9ffdb3
48 changed files with 238 additions and 514 deletions

View File

@@ -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' group 'SmartVenue'
version '1.0.0' version '2.0.0'
apply plugin: 'java' apply plugin: 'java'
apply plugin: 'org.springframework.boot' apply plugin: 'org.springframework.boot'
sourceCompatibility = 1.8 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 { repositories {
//mavenCentral() //mavenCentral()
maven { maven {
@@ -27,11 +30,14 @@ repositories {
jar { jar {
baseName = 'sv-api' baseName = 'sv-api'
} }
ext {
nettyVersion = '4.1.10.Final'
}
dependencies { dependencies {
testCompile group: 'junit', name: 'junit', version: '4.12' testCompile group: 'junit', name: 'junit', version: '4.12'
compile fileTree(include: '*.jar', dir: 'src/libs') compile fileTree(include: '*.jar', dir: 'src/libs')
compile project(':service') compile project(':service')
compile "io.netty:netty-all:${nettyVersion}"
compile 'mysql:mysql-connector-java:6.0.6' compile 'mysql:mysql-connector-java:6.0.6'
} }

View File

@@ -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);
}
}

View File

@@ -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;
// }
}

View File

@@ -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));
}
}

View File

@@ -33,17 +33,21 @@ public class MemberCardUpdate {
public void execute(){ public void execute(){
// 查询用户已过期的会员卡 // 查询用户已过期的会员卡
List<MemberCard> cards = memberCardService.findAllCard(); List<MemberCard> cards = memberCardService.findAllCard();
// 查询出用户顺延的会员卡,正好是今日 if (cards != null && cards.size() > 0){
List<MemberCard> memberCards = memberCardService.findAllMemberCard(cards); //修改过期的会员卡为未激活
memberCardService.updateStatus(cards,0);
//修改过期的会员卡为未激活 // 查询出用户顺延的会员卡,正好是今日
memberCardService.updateStatus(cards,0); List<MemberCard> memberCards = memberCardService.findAllMemberCard(cards);
//修改用户默认会员卡
//修改用户默认会员卡 if (memberCards!= null && memberCards.size() > 0){
for (MemberCard memberCard : memberCards){ for (MemberCard memberCard : memberCards){
MemberCard lists = memberCardService.findMemberCardByVenue(memberCard.getMemberId(),memberCard.getVenueId(),memberCard.getVeneuType()); MemberCard mem = memberCardService.findMemberCardByVenue(memberCard.getMemberId(),memberCard.getVenueId(),memberCard.getVeneuType());
lists.setStatus(1); if (mem != null){
memberCardService.update(lists); mem.setStatus(1);
memberCardService.update(mem);
}
}
}
} }
} }
} }

View File

@@ -56,8 +56,8 @@ public class TcpMessageHandlerAdapter implements MessageService {
@Resource @Resource
private ConfigService configService; private ConfigService configService;
@Resource(name = "scheduledExecutorService") // @Resource(name = "scheduledExecutorService")
private ScheduledExecutorService scheduledExecutorService; // private ScheduledExecutorService scheduledExecutorService;
@Resource @Resource
private MemberEnterVenueLogService memberEnterVenueLogService; private MemberEnterVenueLogService memberEnterVenueLogService;
@@ -184,15 +184,15 @@ public class TcpMessageHandlerAdapter implements MessageService {
member = memberService.findByFaceId(response.getPerson().getId()); member = memberService.findByFaceId(response.getPerson().getId());
memberMessageDto.setAmount(member.getMoney()); memberMessageDto.setAmount(member.getMoney());
//5秒后开门 //5秒后开门
scheduledExecutorService.schedule(new Runnable() { // scheduledExecutorService.schedule(new Runnable() {
@Override // @Override
public void run() { // public void run() {
// MessageDto messageDto = new MessageDto(); //// MessageDto messageDto = new MessageDto();
// messageDto.setCmdId(Cmd.OPEN_DOOR.id); //// messageDto.setCmdId(Cmd.OPEN_DOOR.id);
// messageDto.setDoor(1); //// messageDto.setDoor(1);
// sendOpenMessage(messageDto, 1); //// sendOpenMessage(messageDto, 1);
} // }
}, 5, TimeUnit.SECONDS); // }, 5, TimeUnit.SECONDS);
} else { } else {
//开门 //开门
// MessageDto messageDto = new MessageDto(); // MessageDto messageDto = new MessageDto();

View File

@@ -73,6 +73,7 @@ mybatis:
mapper-locations: classpath:mybatis/mapper/*/*.xml mapper-locations: classpath:mybatis/mapper/*/*.xml
face: face:
# url: 192.168.1.111
url: 23r3o72310.iask.in url: 23r3o72310.iask.in
account: test@test.com account: test@test.com
pwd: 123456 pwd: 123456
@@ -81,4 +82,20 @@ logging:
level: level:
com: com:
sv: sv:
mapper: DEBUG mapper: DEBUG
#netty服务器配置
netty:
port: 56792
boss:
thread:
count: 1
worker:
thread:
count: 2
so:
keepalive: true
backlog: 128
reuseaddr: true
tcp_nodelay: true

View File

@@ -37,6 +37,22 @@
</encoder> </encoder>
</appender> </appender>
<appender name="CONNECTION_APPENDER"
class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>${LOG_HOME}/connection.log</file>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<fileNamePattern>${LOG_HOME}/connection-%d{yyyy-MM-dd}.log
</fileNamePattern>
</rollingPolicy>
<encoder>
<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>
</encoder>
</appender>
<logger name="com.sv.netty.netty" additivity="false" >
<appender-ref ref="CONNECTION_APPENDER"/>
</logger>
<!-- root --> <!-- root -->
<root level="info"> <root level="info">
<appender-ref ref="STDOUT" /> <appender-ref ref="STDOUT" />

View File

@@ -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);
}
}
}

View File

@@ -32,7 +32,7 @@ public class ClientThread extends Thread{
if (instance == null) { if (instance == null) {
synchronized (ClientThread.class) { synchronized (ClientThread.class) {
if (instance == null) { if (instance == null) {
instance = new ClientThread("127.0.0.1", 56791); instance = new ClientThread("127.0.0.1", 56792);
} }
} }
} }

View File

@@ -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'
}

View File

@@ -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;
}
}

View File

@@ -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/

View File

@@ -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/

View File

@@ -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

View File

@@ -1,65 +0,0 @@
<?xml version="1.0" encoding="UTF8"?>
<configuration>
<jmxConfigurator />
<property name="LOG_HOME" value="/home/log/netty"/>
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
<!--格式化输出:%d表示日期%thread表示线程名%-5level级别从左显示5个字符宽度%msg日志消息%n是换行符-->
<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>
</encoder>
</appender>
<appender name="COMMON-DEFAULT"
class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>${LOG_HOME}/common-default.log</file>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<fileNamePattern>${LOG_HOME}/common-default-%d{yyyy-MM-dd}.log
</fileNamePattern>
</rollingPolicy>
<encoder>
<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>
</encoder>
</appender>
<appender name="COMMON-ERROR"
class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>${LOG_HOME}/common-error.log</file>
<filter class="ch.qos.logback.classic.filter.ThresholdFilter">
<level>ERROR</level>
</filter>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<fileNamePattern>${LOG_HOME}/common-error-%d{yyyy-MM-dd}.log
</fileNamePattern>
</rollingPolicy>
<encoder>
<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>
</encoder>
</appender>
<appender name="CONNECTION_APPENDER"
class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>${LOG_HOME}/connection.log</file>
<filter class="ch.qos.logback.classic.filter.ThresholdFilter">
<level>ERROR</level>
</filter>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<fileNamePattern>${LOG_HOME}/connection-%d{yyyy-MM-dd}.log
</fileNamePattern>
</rollingPolicy>
<encoder>
<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>
</encoder>
</appender>
<logger name="com.sv.netty.netty" level="INFO" additivity="true" >
<appender-ref ref="CONNECTION_APPENDER"/>
</logger>
<!-- root -->
<root level="info">
<appender-ref ref="STDOUT" />
<appender-ref ref="COMMON-DEFAULT" />
<appender-ref ref="COMMON-ERROR" />
</root>
</configuration>

View File

@@ -1,41 +0,0 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configuration
PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
<settings>
<setting name="cacheEnabled" value="true" />
<!-- 打印sql日志 -->
<setting name="logImpl" value="SLF4J" />
</settings>
<!--<settings>-->
<!--<setting name="cacheEnabled" value="true"/>-->
<!--<setting name="lazyLoadingEnabled" value="true"/>-->
<!--<setting name="multipleResultSetsEnabled" value="true"/>-->
<!--<setting name="useColumnLabel" value="true"/>-->
<!--<setting name="useGeneratedKeys" value="false"/>-->
<!--<setting name="autoMappingBehavior" value="PARTIAL"/>-->
<!--<setting name="autoMappingUnknownColumnBehavior" value="WARNING"/>-->
<!--<setting name="defaultExecutorType" value="SIMPLE"/>-->
<!--<setting name="defaultStatementTimeout" value="25"/>-->
<!--<setting name="defaultFetchSize" value="100"/>-->
<!--<setting name="safeRowBoundsEnabled" value="false"/>-->
<!--<setting name="mapUnderscoreToCamelCase" value="false"/>-->
<!--<setting name="localCacheScope" value="SESSION"/>-->
<!--<setting name="jdbcTypeForNull" value="OTHER"/>-->
<!--<setting name="lazyLoadTriggerMethods" value="equals,clone,hashCode,toString"/>-->
<!--</settings>-->
<typeAliases>
<typeAlias alias="Integer" type="java.lang.Integer" />
<typeAlias alias="Byte" type="java.lang.Byte"/>
<typeAlias alias="String" type="java.lang.String" />
<typeAlias alias="Long" type="java.lang.Long" />
<typeAlias alias="HashMap" type="java.util.HashMap" />
<typeAlias alias="LinkedHashMap" type="java.util.LinkedHashMap" />
<typeAlias alias="ArrayList" type="java.util.ArrayList" />
<typeAlias alias="LinkedList" type="java.util.LinkedList" />
</typeAliases>
</configuration>

View File

@@ -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];
}
}

View File

@@ -150,7 +150,7 @@ public class DeviceService extends BaseServiceImpl {
device.setStatus(DeviceStatusEnum.ONLINE.value); device.setStatus(DeviceStatusEnum.ONLINE.value);
device.setStream(deviceIp); device.setStream(deviceIp);
if(deviceMapper.checkDevice(deviceName,venueId) > 0){ if(deviceMapper.checkDevice(deviceName,venueId) > 0){
logger.info(deviceName + venueId + "设备已存在,该设备。"); logger.info(deviceName + venueId + "设备已存在");
deviceMapper.online(venueId, deviceName); deviceMapper.online(venueId, deviceName);
}else { }else {
logger.info("落地客户端信息clientId = " + deviceIp + "&deviceName = " + deviceName + "&venueId = " + venueId); logger.info("落地客户端信息clientId = " + deviceIp + "&deviceName = " + deviceName + "&venueId = " + venueId);

View File

@@ -473,7 +473,7 @@
<update id="updateStatus" > <update id="updateStatus" >
UPDATE sv_member_card UPDATE sv_member_card
SET `status` = #{status} SET `status` = #{status}
AND id IN WHERE id IN
<foreach collection="cards" item="cards" index="index" open="(" close=")" separator=","> <foreach collection="cards" item="cards" index="index" open="(" close=")" separator=",">
#{cards.id} #{cards.id}
</foreach> </foreach>

View File

@@ -2,6 +2,4 @@ rootProject.name = 'SmartVenue'
include 'service' include 'service'
include 'api' include 'api'
include 'oms' include 'oms'
include 'entity' include 'entity'
include 'netty-pad'