From 16e2f04c3867c63a62f0c24d0a82e10fd6662d46 Mon Sep 17 00:00:00 2001 From: limqhz Date: Thu, 23 Jul 2020 16:39:58 +0800 Subject: [PATCH] =?UTF-8?q?api-=E8=AE=BE=E5=A4=87=E5=94=AF=E4=B8=80Id=20?= =?UTF-8?q?=E4=BF=AE=E6=94=B9=E4=B8=BA=20=E8=AE=BE=E5=A4=87=E5=8F=B7=20+?= =?UTF-8?q?=20=E5=9C=BA=E9=A6=86=E5=8F=B7=20+=20=E8=BF=9B=E5=9C=BAOR?= =?UTF-8?q?=E5=87=BA=E5=9C=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../sv/netty/config/ClientChannelCache.java | 21 ++- .../sv/netty/controller/QRCodeControler.java | 54 ------- .../netty/controller/QREnterController.java | 23 ++- .../com/sv/netty/netty/ServerHandler.java | 8 +- .../sv/netty/netty/message/ChannelParam.java | 16 ++ .../com/sv/netty/netty/message/HeartBeat.java | 13 +- .../netty/netty/service/MessageService.java | 2 +- .../impl/AppMessageHandlerAdapter.java | 12 +- .../test/netty/client/message/DeviceType.java | 33 ++++ .../test/netty/client/message/HeartBeat.java | 11 +- .../test/netty/client/message/MemberDto.java | 148 ------------------ .../test/netty/client/message/MessageDTO.java | 14 +- .../netty/client/message/MessageType.java | 3 +- .../main/java/com/sv/mapper/DeviceMapper.java | 8 +- .../com/sv/service/api/QRCodeService.java | 4 +- .../com/sv/service/oms/DeviceService.java | 11 +- .../mybatis/mapper/sv/DeviceMapper.xml | 9 +- 17 files changed, 125 insertions(+), 265 deletions(-) delete mode 100644 api/src/main/java/com/sv/netty/controller/QRCodeControler.java create mode 100644 api/src/test/java/com/test/netty/client/message/DeviceType.java delete mode 100644 api/src/test/java/com/test/netty/client/message/MemberDto.java diff --git a/api/src/main/java/com/sv/netty/config/ClientChannelCache.java b/api/src/main/java/com/sv/netty/config/ClientChannelCache.java index 1a22674..c871408 100644 --- a/api/src/main/java/com/sv/netty/config/ClientChannelCache.java +++ b/api/src/main/java/com/sv/netty/config/ClientChannelCache.java @@ -17,7 +17,8 @@ public class ClientChannelCache { /** * 缓存通道 */ - public static void putChannelType(String clientId, Channel channel) { + public static void putChannelType(String deviceName, Integer venueId, DeviceType deviceType, Channel channel) { + String clientId = deviceName + Constant.SPIT_WORD + venueId + Constant.SPIT_WORD + deviceType; ClientChannelCache.channel.put(clientId, channel); } @@ -25,28 +26,24 @@ public class ClientChannelCache { * 获取当前通道 */ public static Channel getCurrentChannel(String deviceName, Integer venueId, DeviceType deviceType){ - String clientId = deviceName + Constant.SPIT_WORD + venueId + Constant.SPIT_WORD + deviceType.getCode(); - return getCurrentChannel(clientId); + String clientId = deviceName + Constant.SPIT_WORD + venueId + Constant.SPIT_WORD + deviceType; + return channel.get(clientId); } /** * 获取通道 */ - public static Channel getCurrentChannel(String clientId) { - return channel.get(clientId); - } - - /** - * 判断通道是否存在 - */ - public static boolean contains(String clientId) { + public static boolean contains(String deviceName, Integer venueId, DeviceType deviceType) { + String clientId = deviceName + Constant.SPIT_WORD + venueId + Constant.SPIT_WORD + deviceType; return channel.containsKey(clientId); } /** * 移除通道 */ - public static void removeChannelType(String clientId) { + public static void removeChannelType(String deviceName, Integer venueId, DeviceType deviceType) { + String clientId = deviceName + Constant.SPIT_WORD + venueId + Constant.SPIT_WORD + deviceType; channel.remove(clientId); } + } diff --git a/api/src/main/java/com/sv/netty/controller/QRCodeControler.java b/api/src/main/java/com/sv/netty/controller/QRCodeControler.java deleted file mode 100644 index 9f32a8b..0000000 --- a/api/src/main/java/com/sv/netty/controller/QRCodeControler.java +++ /dev/null @@ -1,54 +0,0 @@ -package com.sv.netty.controller; - -import com.sv.netty.config.ClientChannelCache; -import com.sv.netty.config.ErrorCode; -import com.sv.netty.netty.message.MessageDTO; -import com.sv.netty.netty.message.MessageType; -import com.ydd.framework.core.common.dto.ResponseDTO; -import io.netty.channel.Channel; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RequestParam; -import org.springframework.web.bind.annotation.RestController; - -@RestController -public class QRCodeControler { - - /** - * 废弃 - * @return - */ - @RequestMapping("/scanQRCode") - public ResponseDTO scanQRCode(@RequestParam String venueId, - @RequestParam String cardType,@RequestParam String memberId) { - // 1、获取到请求,说明扫码成功,预校验余额成功,通知客户端(Android)进行加载状态。 - - // 2、进行预校验,判断是否可以进行扫码通行 // TODO check余额方法 - boolean checkResult = true; - - if(checkResult){ - // 如果是成功的 通知客户端(Android)进行开门 - return ResponseDTO.ok(); - }else { - return new ResponseDTO(ErrorCode.MEMBER_NOT_EXIST.getCode(), - ErrorCode.MEMBER_NOT_EXIST.getMsg(),System.currentTimeMillis()); - } - } - - /** - * 检验客户端读取能力 - * @return - */ - @RequestMapping("/checkAlive") - public ResponseDTO checkAlive(@RequestParam String id) { - System.out.println(ClientChannelCache.channel.size()); - Channel channel = ClientChannelCache.getCurrentChannel(id); - MessageDTO messageDTO = new MessageDTO(); - messageDTO.setMessageType(MessageType.LOAD); - messageDTO.setMessage("欢迎光临张三" ); -// sendMessage(channel,messageDTO); -// channel.writeAndFlush("check client alive ! "); - channel.writeAndFlush(messageDTO); - return ResponseDTO.ok(); - } - -} diff --git a/api/src/main/java/com/sv/netty/controller/QREnterController.java b/api/src/main/java/com/sv/netty/controller/QREnterController.java index 0a52423..73af573 100644 --- a/api/src/main/java/com/sv/netty/controller/QREnterController.java +++ b/api/src/main/java/com/sv/netty/controller/QREnterController.java @@ -6,6 +6,8 @@ import com.sv.entity.Venue; import com.sv.entity.VenueType; import com.sv.netty.config.ClientChannelCache; import com.sv.netty.config.Constant; +import com.sv.netty.netty.message.MessageDTO; +import com.sv.netty.netty.message.MessageType; import com.sv.netty.netty.service.MessageService; import com.sv.service.api.QRCodeService; import com.ydd.framework.core.common.dto.ResponseDTO; @@ -38,7 +40,7 @@ public class QREnterController extends BaseApiController { Integer venueId = getVenueId(deviceId); String deviceName = getDeviceName(deviceId); DeviceType enterOrOut = getEnterOrOut(deviceId); - Venue venue = qrCodeService.initEnter(venueId, deviceName); + Venue venue = qrCodeService.initEnter(venueId, deviceName,enterOrOut); if (venue!=null){ Channel channel = ClientChannelCache.getCurrentChannel(deviceName,venueId ,enterOrOut); if (DeviceType.OUT == enterOrOut){ @@ -62,7 +64,7 @@ public class QREnterController extends BaseApiController { Integer venueId = getVenueId(deviceId); String deviceName = getDeviceName(deviceId); DeviceType enterOrOut = getEnterOrOut(deviceId); - Venue venue = qrCodeService.initEnter(venueId, deviceName); + Venue venue = qrCodeService.initEnter(venueId, deviceName,enterOrOut); Channel channel = ClientChannelCache.getCurrentChannel(deviceName,venueId ,enterOrOut); messageService.sendLoading(channel,memberId); return ResponseDTO.ok().addAttribute("venueInit", venue); @@ -114,4 +116,21 @@ public class QREnterController extends BaseApiController { return returnType; } + /** + * 检验客户端读取能力 + * @return + */ + @RequestMapping("/checkAlive") + public ResponseDTO checkAlive(@RequestParam String id) { + System.out.println(ClientChannelCache.channel.size()); + Integer venueId = getVenueId(id); + String deviceName = getDeviceName(id); + DeviceType enterOrOut = getEnterOrOut(id); + Channel channel = ClientChannelCache.getCurrentChannel(deviceName,venueId,enterOrOut); + logger.info("验证设备"+ id + "通讯情况"); + MessageDTO messageDTO = new MessageDTO(MessageType.LOAD,"测试信息123"); + channel.writeAndFlush(messageDTO); + return ResponseDTO.ok(); + } + } diff --git a/api/src/main/java/com/sv/netty/netty/ServerHandler.java b/api/src/main/java/com/sv/netty/netty/ServerHandler.java index 612774e..ef887bf 100644 --- a/api/src/main/java/com/sv/netty/netty/ServerHandler.java +++ b/api/src/main/java/com/sv/netty/netty/ServerHandler.java @@ -1,5 +1,6 @@ package com.sv.netty.netty; +import com.enums.DeviceType; import com.sv.netty.config.Constant; import com.sv.netty.config.SpringContextHolder; import com.sv.netty.netty.message.ChannelParam; @@ -53,6 +54,7 @@ public class ServerHandler extends SimpleChannelInboundHandler { logger.info("客户端" + hb.getDeviceName() + "&" + hb.getVenueId() + "【" + clientIp + "】上报心跳..."); ctx.channel().attr(Constant.CHANNEL_PARAM).get().setVenueId(hb.getVenueId()); ctx.channel().attr(Constant.CHANNEL_PARAM).get().setDeviceName(hb.getDeviceName()); + ctx.channel().attr(Constant.CHANNEL_PARAM).get().setDeviceType(hb.getEnterOrOut()); messageService.online(clientIp,ctx.channel(), hb); } catch (Exception e) { logger.error("[" + clientIp + "] host unknown error",e); @@ -83,7 +85,8 @@ public class ServerHandler extends SimpleChannelInboundHandler { logger.error("Client ip [" + clientIP + "] has inactive"); Integer venueId = ctx.channel().attr(Constant.CHANNEL_PARAM).get().getVenueId(); String deviceName = ctx.channel().attr(Constant.CHANNEL_PARAM).get().getDeviceName(); - messageService.Offline(deviceName,venueId); + DeviceType deviceType = ctx.channel().attr(Constant.CHANNEL_PARAM).get().getDeviceType(); + messageService.Offline(deviceName,venueId,deviceType); } /** @@ -98,7 +101,8 @@ public class ServerHandler extends SimpleChannelInboundHandler { Channel channel = ctx.channel(); Integer venueId = ctx.channel().attr(Constant.CHANNEL_PARAM).get().getVenueId(); String deviceName = ctx.channel().attr(Constant.CHANNEL_PARAM).get().getDeviceName(); - messageService.Offline(deviceName,venueId); + DeviceType deviceType = ctx.channel().attr(Constant.CHANNEL_PARAM).get().getDeviceType(); + messageService.Offline(deviceName,venueId,deviceType); if(channel.isActive()) { // 错误产生,关闭连接 ctx.close(); diff --git a/api/src/main/java/com/sv/netty/netty/message/ChannelParam.java b/api/src/main/java/com/sv/netty/netty/message/ChannelParam.java index dbf1c2f..5028a4a 100644 --- a/api/src/main/java/com/sv/netty/netty/message/ChannelParam.java +++ b/api/src/main/java/com/sv/netty/netty/message/ChannelParam.java @@ -1,5 +1,7 @@ package com.sv.netty.netty.message; +import com.enums.DeviceType; + /** * 会话中存储的客户端对象 * @@ -23,6 +25,12 @@ public class ChannelParam { */ private Integer venueId; + /** + * 设备进场出场类型 + * @param clientIP + */ + private DeviceType deviceType; + public ChannelParam(String clientIP) { this.clientIp = clientIP; } @@ -50,4 +58,12 @@ public class ChannelParam { public void setVenueId(Integer venueId) { this.venueId = venueId; } + + public DeviceType getDeviceType() { + return deviceType; + } + + public void setDeviceType(DeviceType deviceType) { + this.deviceType = deviceType; + } } diff --git a/api/src/main/java/com/sv/netty/netty/message/HeartBeat.java b/api/src/main/java/com/sv/netty/netty/message/HeartBeat.java index 21dfd05..51040ae 100644 --- a/api/src/main/java/com/sv/netty/netty/message/HeartBeat.java +++ b/api/src/main/java/com/sv/netty/netty/message/HeartBeat.java @@ -1,8 +1,7 @@ package com.sv.netty.netty.message; -import com.google.gson.annotations.Expose; - +import com.enums.DeviceType; import java.io.Serializable; /** @@ -17,10 +16,8 @@ public class HeartBeat implements Serializable { private Integer venueId; //场馆号 private String deviceName; //设备号 - /** - * 进场 ENTER ; 出厂 OUT - */ - private String EnterOrOut; //出入标志 + + private DeviceType EnterOrOut; //出入标志 public Integer getVenueId() { return venueId; @@ -38,11 +35,11 @@ public class HeartBeat implements Serializable { this.deviceName = deviceName; } - public String getEnterOrOut() { + public DeviceType getEnterOrOut() { return EnterOrOut; } - public void setEnterOrOut(String enterOrOut) { + public void setEnterOrOut(DeviceType enterOrOut) { EnterOrOut = enterOrOut; } } diff --git a/api/src/main/java/com/sv/netty/netty/service/MessageService.java b/api/src/main/java/com/sv/netty/netty/service/MessageService.java index 637a975..70f37d2 100644 --- a/api/src/main/java/com/sv/netty/netty/service/MessageService.java +++ b/api/src/main/java/com/sv/netty/netty/service/MessageService.java @@ -29,7 +29,7 @@ public interface MessageService { * @param deviceName * @param venueId */ - void Offline(String deviceName, Integer venueId); + void Offline(String deviceName, Integer venueId,DeviceType deviceType); /** * 统计目前的链接数 diff --git a/api/src/main/java/com/sv/netty/netty/service/impl/AppMessageHandlerAdapter.java b/api/src/main/java/com/sv/netty/netty/service/impl/AppMessageHandlerAdapter.java index 260d3e2..856abc0 100644 --- a/api/src/main/java/com/sv/netty/netty/service/impl/AppMessageHandlerAdapter.java +++ b/api/src/main/java/com/sv/netty/netty/service/impl/AppMessageHandlerAdapter.java @@ -70,14 +70,14 @@ public class AppMessageHandlerAdapter implements MessageService { @Override public void online(String clientId, Channel channel, HeartBeat heartBeat) { // 处理心跳信息 - if (!ClientChannelCache.contains(heartBeat.getDeviceName()+heartBeat.getVenueId())){ + if (!ClientChannelCache.contains(heartBeat.getDeviceName(),heartBeat.getVenueId(),heartBeat.getEnterOrOut())){ // 此处存储客户端的channel 信息key 为 deviceId + venueId Venue thisVenue = venueService.findById(heartBeat.getVenueId()); if (thisVenue == null ){ logger.error("this client choose venue Error! venueId == " + heartBeat.getVenueId()); } else { - ClientChannelCache.putChannelType(heartBeat.getDeviceName()+heartBeat.getVenueId(),channel); - deviceService.online(heartBeat.getDeviceName(),heartBeat.getVenueId(),thisVenue.getType(),clientId); + ClientChannelCache.putChannelType(heartBeat.getDeviceName(),heartBeat.getVenueId(),heartBeat.getEnterOrOut(),channel); + deviceService.online(heartBeat.getDeviceName(),heartBeat.getVenueId(),heartBeat.getEnterOrOut(),thisVenue.getType(),clientId); } } } @@ -88,10 +88,10 @@ public class AppMessageHandlerAdapter implements MessageService { * @param venueId */ @Override - public void Offline(String deviceName, Integer venueId) { + public void Offline(String deviceName, Integer venueId,DeviceType deviceType) { if (deviceName != null && venueId != null){ - ClientChannelCache.removeChannelType(deviceName+ venueId); - deviceService.offline(deviceName,venueId); + ClientChannelCache.removeChannelType(deviceName,venueId,deviceType); + deviceService.offline(deviceName,venueId,deviceType); } } diff --git a/api/src/test/java/com/test/netty/client/message/DeviceType.java b/api/src/test/java/com/test/netty/client/message/DeviceType.java new file mode 100644 index 0000000..c142c56 --- /dev/null +++ b/api/src/test/java/com/test/netty/client/message/DeviceType.java @@ -0,0 +1,33 @@ +package com.test.netty.client.message; + +/** + * 设备属性,控制入场还是控制出场 + */ +public enum DeviceType { + + ENTER(0,"进场"), + OUT(1,"出场"); + private int code; + private String name; + + DeviceType(int code, String name) { + this.code = code; + this.name = name; + } + + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } +} diff --git a/api/src/test/java/com/test/netty/client/message/HeartBeat.java b/api/src/test/java/com/test/netty/client/message/HeartBeat.java index c736d1c..87f592c 100644 --- a/api/src/test/java/com/test/netty/client/message/HeartBeat.java +++ b/api/src/test/java/com/test/netty/client/message/HeartBeat.java @@ -1,8 +1,6 @@ package com.test.netty.client.message; - import com.google.gson.annotations.Expose; - import java.io.Serializable; /** @@ -21,10 +19,7 @@ public class HeartBeat implements Serializable { private String deviceName; //设备号 @Expose - /** - * 进场 ENTER ; 出厂 OUT - */ - private String EnterOrOut; //出入标志 + private DeviceType EnterOrOut; //出入标志 public Integer getVenueId() { return venueId; @@ -42,11 +37,11 @@ public class HeartBeat implements Serializable { this.deviceName = deviceName; } - public String getEnterOrOut() { + public DeviceType getEnterOrOut() { return EnterOrOut; } - public void setEnterOrOut(String enterOrOut) { + public void setEnterOrOut(DeviceType enterOrOut) { EnterOrOut = enterOrOut; } } diff --git a/api/src/test/java/com/test/netty/client/message/MemberDto.java b/api/src/test/java/com/test/netty/client/message/MemberDto.java deleted file mode 100644 index 734b34f..0000000 --- a/api/src/test/java/com/test/netty/client/message/MemberDto.java +++ /dev/null @@ -1,148 +0,0 @@ -package com.test.netty.client.message; - -import com.google.gson.annotations.Expose; - -import java.io.Serializable; -import java.math.BigDecimal; - - -/** - * 会员基本信息 - * MemberDto.java - * - * @author peakren - * @date 2018/12/20 8:39 PM - */ -public class MemberDto implements Serializable { - - /** - * 头像 - */ - @Expose - private String avatar; - - /** - * 姓名 - */ - @Expose - private String name; - - /** - * 手机号码 - */ - @Expose - private String mobile; - - /** - * 余额 - */ - @Expose - private BigDecimal amount; - - /** - * 场地名称 - */ - @Expose - private String placeName; - - /** - * 会员卡名称 - */ - @Expose - private String cardName; - - @Expose - private String message; - - /** - * 1成功进场 0不允许进场 - */ - @Expose - private int code; - - @Expose - private BigDecimal placePrice; - - @Expose - private boolean first; - - public BigDecimal getPlacePrice() { - return placePrice; - } - - public void setPlacePrice(BigDecimal placePrice) { - this.placePrice = placePrice; - } - - public boolean isFirst() { - return first; - } - - public void setFirst(boolean first) { - this.first = first; - } - - public String getAvatar() { - return avatar; - } - - public void setAvatar(String avatar) { - this.avatar = avatar; - } - - public String getName() { - return name; - } - - public void setName(String name) { - this.name = name; - } - - public String getMobile() { - return mobile; - } - - public void setMobile(String mobile) { - this.mobile = mobile; - } - - public BigDecimal getAmount() { - return amount; - } - - public void setAmount(BigDecimal amount) { - this.amount = amount; - } - - public String getPlaceName() { - return placeName; - } - - public void setPlaceName(String placeName) { - this.placeName = placeName; - } - - public String getCardName() { - return cardName; - } - - public void setCardName(String cardName) { - this.cardName = cardName; - } - - public String getMessage() { - return message; - } - - public void setMessage(String message) { - this.message = message; - } - - public int getCode() { - return code; - } - - public void setCode(int code) { - this.code = code; - } -} diff --git a/api/src/test/java/com/test/netty/client/message/MessageDTO.java b/api/src/test/java/com/test/netty/client/message/MessageDTO.java index 8c3e5b5..f8c2fea 100644 --- a/api/src/test/java/com/test/netty/client/message/MessageDTO.java +++ b/api/src/test/java/com/test/netty/client/message/MessageDTO.java @@ -6,7 +6,11 @@ public class MessageDTO implements Serializable { private MessageType messageType; private String message; - private String clientId; + + public MessageDTO(MessageType messageType, String message) { + this.messageType = messageType; + this.message = message; + } public MessageType getMessageType() { return messageType; @@ -23,12 +27,4 @@ public class MessageDTO implements Serializable { public void setMessage(String message) { this.message = message; } - - public String getClientId() { - return clientId; - } - - public void setClientId(String clientId) { - this.clientId = clientId; - } } diff --git a/api/src/test/java/com/test/netty/client/message/MessageType.java b/api/src/test/java/com/test/netty/client/message/MessageType.java index ed056f5..a461f38 100644 --- a/api/src/test/java/com/test/netty/client/message/MessageType.java +++ b/api/src/test/java/com/test/netty/client/message/MessageType.java @@ -2,7 +2,8 @@ package com.test.netty.client.message; public enum MessageType { LOAD("加载"), - OPENDOOR("开门"); + OPENDOOR("开门"), + FAILED("开门校验失败"); private String message; MessageType(String message) { diff --git a/service/src/main/java/com/sv/mapper/DeviceMapper.java b/service/src/main/java/com/sv/mapper/DeviceMapper.java index e3b383b..db82e9d 100644 --- a/service/src/main/java/com/sv/mapper/DeviceMapper.java +++ b/service/src/main/java/com/sv/mapper/DeviceMapper.java @@ -67,15 +67,15 @@ public interface DeviceMapper { /** * 更新设备状态为 0 - 未连接 */ - void offline(@Param("venueId") Integer venueId,@Param("deviceName") String deviceName); + void offline(@Param("venueId") Integer venueId,@Param("deviceName") String deviceName,@Param("deviceType")DeviceType deviceType); /** * 更新设备状态为 2 - 连接成功 */ - void online(@Param("venueId") Integer venueId,@Param("deviceName") String deviceName); + void online(@Param("venueId") Integer venueId, @Param("deviceName") String deviceName, @Param("deviceType")DeviceType deviceType); - Integer checkDevice(@Param("deviceName") String deviceName,@Param("venueId") Integer venueId); + Integer checkDevice(@Param("deviceName") String deviceName,@Param("venueId") Integer venueId, @Param("deviceType") DeviceType deviceType); /** * 根据记录找设备 @@ -84,5 +84,5 @@ public interface DeviceMapper { * @param deviceType * @return */ - Device findByDevice(String deviceName, Integer venueId, DeviceType deviceType); + Device findByDevice(@Param("deviceName") String deviceName,@Param("venueId") Integer venueId,@Param("deviceType") DeviceType deviceType); } \ 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 index b5bc86d..2447bf6 100644 --- a/service/src/main/java/com/sv/service/api/QRCodeService.java +++ b/service/src/main/java/com/sv/service/api/QRCodeService.java @@ -26,8 +26,8 @@ public class QRCodeService { @Resource private DeviceMapper deviceMapper; - public Venue initEnter(Integer venueId,String deviceName) { - Integer integer = deviceMapper.checkDevice(deviceName, venueId); + public Venue initEnter(Integer venueId,String deviceName,DeviceType deviceType) { + Integer integer = deviceMapper.checkDevice(deviceName, venueId,deviceType); if (integer != 1){ throw new ServiceException(com.sv.exception.api.ExceptionCodeTemplate.DEVICE_ERROR); } 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 32b9440..ac958f1 100644 --- a/service/src/main/java/com/sv/service/oms/DeviceService.java +++ b/service/src/main/java/com/sv/service/oms/DeviceService.java @@ -135,24 +135,25 @@ public class DeviceService extends BaseServiceImpl { * 设备连接断开 */ @Transactional - public void offline(String deviceName, Integer venueId){ - deviceMapper.offline(venueId,deviceName); + public void offline(String deviceName, Integer venueId,DeviceType deviceType){ + deviceMapper.offline(venueId,deviceName,deviceType); } /** * 新的设备注册的逻辑 */ @Transactional - public void online(String deviceName,Integer venueId,Integer venueType,String deviceIp){ + public void online(String deviceName,Integer venueId,DeviceType deviceType,Integer venueType,String deviceIp){ Device device = new Device(); device.setVenueId(venueId); device.setVenueType(venueType); device.setName(deviceName); device.setStatus(DeviceStatusEnum.ONLINE.value); device.setStream(deviceIp); - if(deviceMapper.checkDevice(deviceName,venueId) > 0){ + device.setDeviceType(deviceType); + if(deviceMapper.checkDevice(deviceName,venueId,deviceType) > 0){ logger.info(deviceName + venueId + "设备已存在"); - deviceMapper.online(venueId, deviceName); + deviceMapper.online(venueId, deviceName,deviceType); }else { logger.info("落地客户端信息clientId = " + deviceIp + "&deviceName = " + deviceName + "&venueId = " + venueId); deviceMapper.insert(device); diff --git a/service/src/main/resources/mybatis/mapper/sv/DeviceMapper.xml b/service/src/main/resources/mybatis/mapper/sv/DeviceMapper.xml index afdbf76..5c50b13 100644 --- a/service/src/main/resources/mybatis/mapper/sv/DeviceMapper.xml +++ b/service/src/main/resources/mybatis/mapper/sv/DeviceMapper.xml @@ -247,13 +247,16 @@ UPDATE sv_device set status = 0,modified_time = now() WHERE name = #{deviceName} and venue_id=#{venueId} + + and venue_type = #{venueType} + UPDATE sv_device set status = 2,modified_time = now() WHERE name = #{deviceName} and venue_id=#{venueId} - and venue_type = #{venueType}, + and venue_type = #{venueType} @@ -261,7 +264,7 @@ SELECT count(1) FROM sv_device WHERE 1=1 AND name = #{deviceName} and venue_id=#{venueId} and deleted = 0 - and venue_type = #{venueType}, + and venue_type = #{venueType} @@ -270,7 +273,7 @@ FROM sv_device WHERE 1=1 AND name = #{deviceName} and venue_id=#{venueId} and deleted = 0 - and venue_type = #{venueType}, + and venue_type = #{venueType}