api-进场逻辑提交-框架
This commit is contained in:
@@ -35,7 +35,16 @@ public class QREnterController extends BaseApiController {
|
|||||||
Integer venueId = getVenueId(deviceId);
|
Integer venueId = getVenueId(deviceId);
|
||||||
String deviceName = getDeviceName(deviceId);
|
String deviceName = getDeviceName(deviceId);
|
||||||
DeviceType enterOrOut = getEnterOrOut(deviceId);
|
DeviceType enterOrOut = getEnterOrOut(deviceId);
|
||||||
qrCodeService.enter(venueId,deviceName,enterOrOut,memberId);
|
Venue venue = qrCodeService.initEnter(venueId, deviceName);
|
||||||
|
if (venue!=null){
|
||||||
|
if (DeviceType.OUT == enterOrOut){
|
||||||
|
// 出场
|
||||||
|
messageService.outVenue(deviceName,venueId,enterOrOut,memberId,venue);
|
||||||
|
}else{
|
||||||
|
// 进场
|
||||||
|
messageService.enterVenue(deviceName,venueId,enterOrOut,memberId,venue);
|
||||||
|
}
|
||||||
|
}
|
||||||
return ResponseDTO.ok();
|
return ResponseDTO.ok();
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -58,6 +67,11 @@ public class QREnterController extends BaseApiController {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 根据字符串获取场馆
|
||||||
|
* @param deviceId
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
private Integer getVenueId(String deviceId){
|
private Integer getVenueId(String deviceId){
|
||||||
String venueId = "0";
|
String venueId = "0";
|
||||||
if (deviceId!=null && deviceId.contains(Constant.SPIT_WORD)){
|
if (deviceId!=null && deviceId.contains(Constant.SPIT_WORD)){
|
||||||
@@ -70,6 +84,11 @@ public class QREnterController extends BaseApiController {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 根据字符串获取设备号
|
||||||
|
* @param deviceId
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
private String getDeviceName(String deviceId){
|
private String getDeviceName(String deviceId){
|
||||||
if (deviceId!=null){
|
if (deviceId!=null){
|
||||||
return deviceId.split(Constant.SPIT_WORD)[0];
|
return deviceId.split(Constant.SPIT_WORD)[0];
|
||||||
@@ -77,6 +96,11 @@ public class QREnterController extends BaseApiController {
|
|||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 根据字符串获取门禁类型
|
||||||
|
* @param deviceId
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
private DeviceType getEnterOrOut(String deviceId){
|
private DeviceType getEnterOrOut(String deviceId){
|
||||||
DeviceType returnType = DeviceType.ENTER;
|
DeviceType returnType = DeviceType.ENTER;
|
||||||
if (deviceId!=null && deviceId.contains(Constant.SPIT_WORD)){
|
if (deviceId!=null && deviceId.contains(Constant.SPIT_WORD)){
|
||||||
|
|||||||
@@ -1,6 +1,7 @@
|
|||||||
package com.sv.netty.netty.service;
|
package com.sv.netty.netty.service;
|
||||||
|
|
||||||
import com.enums.DeviceType;
|
import com.enums.DeviceType;
|
||||||
|
import com.sv.entity.Venue;
|
||||||
import com.sv.netty.netty.message.HeartBeat;
|
import com.sv.netty.netty.message.HeartBeat;
|
||||||
import io.netty.channel.Channel;
|
import io.netty.channel.Channel;
|
||||||
|
|
||||||
@@ -37,4 +38,24 @@ public interface MessageService {
|
|||||||
Set<String> countConnection();
|
Set<String> countConnection();
|
||||||
|
|
||||||
boolean sendLoading(Channel channel, Integer memberId);
|
boolean sendLoading(Channel channel, Integer memberId);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 出场
|
||||||
|
* @param deviceName
|
||||||
|
* @param venueId
|
||||||
|
* @param enterOrOut
|
||||||
|
* @param memberId
|
||||||
|
* @param venue
|
||||||
|
*/
|
||||||
|
void outVenue(String deviceName, Integer venueId, DeviceType enterOrOut, Integer memberId, Venue venue);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 进场
|
||||||
|
* @param deviceName
|
||||||
|
* @param venueId
|
||||||
|
* @param enterOrOut
|
||||||
|
* @param memberId
|
||||||
|
* @param venue
|
||||||
|
*/
|
||||||
|
void enterVenue(String deviceName, Integer venueId, DeviceType enterOrOut, Integer memberId, Venue venue);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,11 +1,10 @@
|
|||||||
package com.sv.netty.netty.service.impl;
|
package com.sv.netty.netty.service.impl;
|
||||||
|
|
||||||
|
import com.enums.DeviceType;
|
||||||
import com.sv.dto.EnterResult;
|
import com.sv.dto.EnterResult;
|
||||||
import com.sv.entity.Device;
|
|
||||||
import com.sv.entity.Member;
|
import com.sv.entity.Member;
|
||||||
import com.sv.entity.MemberEnterVenueLog;
|
import com.sv.entity.MemberEnterVenueLog;
|
||||||
import com.sv.entity.Venue;
|
import com.sv.entity.Venue;
|
||||||
import com.sv.entity.face.FaceRecognizeResponse;
|
|
||||||
import com.sv.netty.config.ClientChannelCache;
|
import com.sv.netty.config.ClientChannelCache;
|
||||||
import com.sv.netty.netty.message.HeartBeat;
|
import com.sv.netty.netty.message.HeartBeat;
|
||||||
import com.sv.netty.netty.message.MessageDTO;
|
import com.sv.netty.netty.message.MessageDTO;
|
||||||
@@ -56,24 +55,9 @@ public class TcpMessageHandlerAdapter implements MessageService {
|
|||||||
@Resource
|
@Resource
|
||||||
private MemberEnterVenueLogService memberEnterVenueLogService;
|
private MemberEnterVenueLogService memberEnterVenueLogService;
|
||||||
|
|
||||||
|
|
||||||
@Resource
|
@Resource
|
||||||
private RestTemplate restTemplate;
|
private RestTemplate restTemplate;
|
||||||
|
|
||||||
// public void sendMessage(MemberDto memberDto, Integer deviceId) {
|
|
||||||
// MessageDto messageDto = new MessageDto();
|
|
||||||
// messageDto.setCmdId(Cmd.FACEID.id);
|
|
||||||
// messageDto.setResult(memberDto);
|
|
||||||
// logger.info("发送消息" + channels.size() + ";deviceId:" + deviceId);
|
|
||||||
// if (deviceId == 1) {
|
|
||||||
// if (enter != null) {
|
|
||||||
// enter.writeAndFlush(messageDto);
|
|
||||||
// }
|
|
||||||
// } else {
|
|
||||||
// out.writeAndFlush(messageDto);
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 处理心跳信息,存储心跳信息
|
* 处理心跳信息,存储心跳信息
|
||||||
* @param clientId
|
* @param clientId
|
||||||
@@ -136,17 +120,49 @@ public class TcpMessageHandlerAdapter implements MessageService {
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
private void sendMessage(Channel channel, MessageDTO messageDTO) {
|
|
||||||
channel.writeAndFlush(messageDTO);
|
@Override
|
||||||
|
public void outVenue(String deviceName, Integer venueId, DeviceType enterOrOut, Integer memberId, Venue venue) {
|
||||||
|
Member member = memberService.findByMember(memberId);
|
||||||
|
if (member != null) {
|
||||||
|
//出场 不用判断直接出
|
||||||
|
MemberEnterVenueLog memberEnterVenueLog = new MemberEnterVenueLog();
|
||||||
|
memberEnterVenueLog.setOrderSn("");
|
||||||
|
memberEnterVenueLog.setType(1);
|
||||||
|
memberEnterVenueLog.setMemberId(member.getId());
|
||||||
|
// memberEnterVenueLog.setVeneuType(device.getVenueType());
|
||||||
|
// memberEnterVenueLog.setVenueId(device.getVenueId());
|
||||||
|
memberEnterVenueLog.setPlatformId(member.getPlatformId());
|
||||||
|
memberEnterVenueLogService.save(memberEnterVenueLog);
|
||||||
|
logger.info("用户" + member.getNickname() + "出场");
|
||||||
|
// MemberDto memberMessageDto = new MemberDto();
|
||||||
|
// memberMessageDto.setAmount(member.getMoney());
|
||||||
|
// memberMessageDto.setName(member.getNickname());
|
||||||
|
// memberMessageDto.setAvatar(member.getAvatar());
|
||||||
|
// memberMessageDto.setMobile(member.getMobile());
|
||||||
|
// memberMessageDto.setPlaceName("");
|
||||||
|
// memberMessageDto.setMessage("欢迎下次再来" + venue.getName());
|
||||||
|
// memberMessageDto.setCode(2);
|
||||||
|
// MessageDto messageDto = new MessageDto();
|
||||||
|
// messageDto.setCmdId(Cmd.OPEN_DOOR.id);
|
||||||
|
// messageDto.setDoor(2);
|
||||||
|
// sendOpenMessage(messageDto, device.getId());
|
||||||
|
// 校验玩就可以出场了
|
||||||
|
// sendMessage(memberMessageDto, device.getId());
|
||||||
|
// venueService.addNumber(venue.getId(), -1, member.getId());
|
||||||
|
// venue = venueService.findById(venue.getId());
|
||||||
|
// sendNumberChange(venue.getNumber());
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public void enter(Device device, FaceRecognizeResponse response, Venue venue) {
|
@Override
|
||||||
|
public void enterVenue(String deviceName, Integer venueId, DeviceType enterOrOut, Integer memberId, Venue venue) {
|
||||||
try {
|
try {
|
||||||
int code = 1;
|
int code = 1;
|
||||||
Member member = memberService.findByFaceId(response.getPerson().getId());
|
Member member = memberService.findByMember(memberId);
|
||||||
if (member != null) {
|
if (member != null) {
|
||||||
//最后进场记录
|
//最后进场记录
|
||||||
MemberEnterVenueLog enterVenueLog = memberEnterVenueLogService.findMemberLastLogNoType(member.getId(), device.getVenueId());
|
MemberEnterVenueLog enterVenueLog = memberEnterVenueLogService.findMemberLastLogNoType(member.getId(), venue.getId());
|
||||||
if (enterVenueLog != null) {
|
if (enterVenueLog != null) {
|
||||||
//有记录 查看 最后一次是否是出场
|
//有记录 查看 最后一次是否是出场
|
||||||
if (enterVenueLog.getType() == 1) {
|
if (enterVenueLog.getType() == 1) {
|
||||||
@@ -155,7 +171,7 @@ public class TcpMessageHandlerAdapter implements MessageService {
|
|||||||
//是进场
|
//是进场
|
||||||
Date date = new Date();
|
Date date = new Date();
|
||||||
//本日连续进场次数
|
//本日连续进场次数
|
||||||
int continuityEnterCount = memberEnterVenueLogService.countEnterByDate(member.getId(), device.getVenueId(), date);
|
int continuityEnterCount = memberEnterVenueLogService.countEnterByDate(member.getId(), venue.getId(), date);
|
||||||
logger.info("连续进场次数:" + continuityEnterCount);
|
logger.info("连续进场次数:" + continuityEnterCount);
|
||||||
//距离上次入场差多少秒
|
//距离上次入场差多少秒
|
||||||
int differenceSeconds = (int) (date.getTime() - enterVenueLog.getCreatedTime().getTime()) / (1000);
|
int differenceSeconds = (int) (date.getTime() - enterVenueLog.getCreatedTime().getTime()) / (1000);
|
||||||
@@ -188,7 +204,7 @@ 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());
|
||||||
if (code > 0) {
|
if (code > 0) {
|
||||||
EnterResult result = venueService.enterVenue(response.getPerson().getId(), device.getId());
|
EnterResult result = venueService.enterVenue(memberId, venue.getId());
|
||||||
if (result.getStatus() >= 0) {
|
if (result.getStatus() >= 0) {
|
||||||
// memberMessageDto.setCode(1);
|
// memberMessageDto.setCode(1);
|
||||||
if (result.getStatus() == 1) {
|
if (result.getStatus() == 1) {
|
||||||
@@ -243,44 +259,20 @@ public class TcpMessageHandlerAdapter implements MessageService {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public void out(Device device, FaceRecognizeResponse response, Venue venue) {
|
/**
|
||||||
Member member = memberService.findByFaceId(response.getPerson().getId());
|
* 给客户端发送信息
|
||||||
if (member != null) {
|
* @param channel
|
||||||
//出场 不用判断直接出
|
* @param messageDTO
|
||||||
MemberEnterVenueLog memberEnterVenueLog = new MemberEnterVenueLog();
|
*/
|
||||||
memberEnterVenueLog.setOrderSn("");
|
private void sendMessage(Channel channel, MessageDTO messageDTO) {
|
||||||
memberEnterVenueLog.setType(1);
|
channel.writeAndFlush(messageDTO);
|
||||||
memberEnterVenueLog.setMemberId(member.getId());
|
|
||||||
memberEnterVenueLog.setVeneuType(device.getVenueType());
|
|
||||||
memberEnterVenueLog.setVenueId(device.getVenueId());
|
|
||||||
memberEnterVenueLog.setPlatformId(member.getPlatformId());
|
|
||||||
memberEnterVenueLogService.save(memberEnterVenueLog);
|
|
||||||
logger.info("用户" + member.getNickname() + "出场");
|
|
||||||
// MemberDto memberMessageDto = new MemberDto();
|
|
||||||
// memberMessageDto.setAmount(member.getMoney());
|
|
||||||
// memberMessageDto.setName(member.getNickname());
|
|
||||||
// memberMessageDto.setAvatar(member.getAvatar());
|
|
||||||
// memberMessageDto.setMobile(member.getMobile());
|
|
||||||
// memberMessageDto.setPlaceName("");
|
|
||||||
// memberMessageDto.setMessage("欢迎下次再来" + venue.getName());
|
|
||||||
// memberMessageDto.setCode(2);
|
|
||||||
// MessageDto messageDto = new MessageDto();
|
|
||||||
// messageDto.setCmdId(Cmd.OPEN_DOOR.id);
|
|
||||||
// messageDto.setDoor(2);
|
|
||||||
// sendOpenMessage(messageDto, device.getId());
|
|
||||||
// 校验玩就可以出场了
|
|
||||||
// sendMessage(memberMessageDto, device.getId());
|
|
||||||
venueService.addNumber(venue.getId(), -1, member.getId());
|
|
||||||
// venue = venueService.findById(venue.getId());
|
|
||||||
// sendNumberChange(venue.getNumber());
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// /**
|
/**
|
||||||
// * 控制硬件,门禁灯光控制
|
* 控制硬件,篮球馆的门禁灯光控制
|
||||||
// * @param number
|
* @param number
|
||||||
// */
|
*/
|
||||||
// public void sendNumberChange(Integer number) {
|
public void sendNumberChange(Integer number) {
|
||||||
// HttpHeaders headers = new HttpHeaders();
|
// HttpHeaders headers = new HttpHeaders();
|
||||||
// headers.setContentType(MediaType.APPLICATION_FORM_URLENCODED);
|
// headers.setContentType(MediaType.APPLICATION_FORM_URLENCODED);
|
||||||
// MultiValueMap<String, Object> param = new LinkedMultiValueMap<>();
|
// MultiValueMap<String, Object> param = new LinkedMultiValueMap<>();
|
||||||
@@ -289,6 +281,6 @@ public class TcpMessageHandlerAdapter implements MessageService {
|
|||||||
// HttpEntity<MultiValueMap<String, Object>> request = new HttpEntity<>(param, headers);
|
// HttpEntity<MultiValueMap<String, Object>> request = new HttpEntity<>(param, headers);
|
||||||
// ResponseEntity<Result> result = restTemplate.exchange("http://lingtek.jalasmart.com/api/v1/lingtek/number", HttpMethod.PUT, request, Result.class);
|
// ResponseEntity<Result> result = restTemplate.exchange("http://lingtek.jalasmart.com/api/v1/lingtek/number", HttpMethod.PUT, request, Result.class);
|
||||||
// logger.info("灯光结果" + JsonMapper.nonDefaultMapper().toJson(result));
|
// logger.info("灯光结果" + JsonMapper.nonDefaultMapper().toJson(result));
|
||||||
// }
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -25,10 +25,6 @@ public class QRCodeService {
|
|||||||
@Resource
|
@Resource
|
||||||
private DeviceMapper deviceMapper;
|
private DeviceMapper deviceMapper;
|
||||||
|
|
||||||
public void enter(Integer venueId, String deviceName, DeviceType enterOrOut, Integer memberId) throws ServiceException{
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
public Venue initEnter(Integer venueId,String deviceName) {
|
public Venue initEnter(Integer venueId,String deviceName) {
|
||||||
Integer integer = deviceMapper.checkDevice(deviceName, venueId);
|
Integer integer = deviceMapper.checkDevice(deviceName, venueId);
|
||||||
if (integer != 1){
|
if (integer != 1){
|
||||||
|
|||||||
Reference in New Issue
Block a user