Commit 1117d526 by 李小惠

Merge branch 'develop' of http://gitlab.sothing.top/843502640/jyzb_platformV2 into develop-lxh

parents 0e0330b1 2d985a79
package com.junmp.jyzb.api.util;
import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Data;
import java.util.List;
@Data
public class WsCabinetReq {
@JsonProperty("serialNum")
private String serialNum;
@JsonProperty("boxList")
private List<Box> boxList;
// 内部类表示box
public static class Box {
@JsonProperty("boxNum")
private String boxNum;
@JsonProperty("state")
private int state;
// getters and setters
}
}
\ No newline at end of file
...@@ -125,6 +125,10 @@ public class Cabinet implements Serializable { ...@@ -125,6 +125,10 @@ public class Cabinet implements Serializable {
@ApiModelProperty(value = "箱数") @ApiModelProperty(value = "箱数")
private Integer num; private Integer num;
@ApiModelProperty(value = "socket连接信息")
@TableField("channel_id")
private String channelId;
@TableField(exist = false) @TableField(exist = false)
private String policeName; private String policeName;
@TableField(exist = false) @TableField(exist = false)
......
...@@ -6,14 +6,17 @@ import cn.hutool.core.util.StrUtil; ...@@ -6,14 +6,17 @@ import cn.hutool.core.util.StrUtil;
import cn.hutool.extra.spring.SpringUtil; import cn.hutool.extra.spring.SpringUtil;
import com.alibaba.fastjson2.JSON; import com.alibaba.fastjson2.JSON;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.junmp.iot.server.ws.WebSocketServerListener; import com.junmp.iot.server.ws.WebSocketServerListener;
import com.junmp.iot.server.ws.impl.DefaultWebSocketServerMessage; import com.junmp.iot.server.ws.impl.DefaultWebSocketServerMessage;
import com.junmp.iot.server.ws.impl.DefaultWebSocketServerProtocol; import com.junmp.iot.server.ws.impl.DefaultWebSocketServerProtocol;
import com.junmp.jyzb.api.util.WsCabinetReq;
import com.junmp.jyzb.cache.OnlineRedisCache; import com.junmp.jyzb.cache.OnlineRedisCache;
import com.junmp.jyzb.entity.Cabinet; import com.junmp.jyzb.entity.Cabinet;
import com.junmp.jyzb.entity.Temp.OnlineState; import com.junmp.jyzb.entity.Temp.OnlineState;
import com.junmp.jyzb.service.CabinetService; import com.junmp.jyzb.service.CabinetService;
import com.junmp.jyzb.service.impl.CabinetServiceImpl; import com.junmp.jyzb.service.impl.CabinetServiceImpl;
import com.junmp.jyzb.utils.DateTimeUtil;
import com.junmp.v2.ws.api.enums.ClientMsgType; import com.junmp.v2.ws.api.enums.ClientMsgType;
import com.junmp.v2.ws.api.enums.ServerMsgType; import com.junmp.v2.ws.api.enums.ServerMsgType;
import com.junmp.v2.ws.api.enums.SysMsgTypeEnum; import com.junmp.v2.ws.api.enums.SysMsgTypeEnum;
...@@ -24,6 +27,7 @@ import com.junmp.v2.ws.channel.WsSessionContainer; ...@@ -24,6 +27,7 @@ import com.junmp.v2.ws.channel.WsSessionContainer;
import com.junmp.v2.ws.message.WsMessageHandle; import com.junmp.v2.ws.message.WsMessageHandle;
import com.junmp.v2.ws.session.WsSessionHandle; import com.junmp.v2.ws.session.WsSessionHandle;
import io.jsonwebtoken.JwtException; import io.jsonwebtoken.JwtException;
import lombok.SneakyThrows;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
...@@ -44,25 +48,39 @@ import java.time.Instant; ...@@ -44,25 +48,39 @@ import java.time.Instant;
public class CabinetWebSocketServer implements WebSocketServerListener { public class CabinetWebSocketServer implements WebSocketServerListener {
@Resource @Resource
public CabinetService cabinetService; public CabinetService cabinetService;
@Override @Override
public String uri() { public String uri() {
return "/cabinet/ws"; return "/cabinet/ws";
} }
@SneakyThrows
@Override @Override
public void onText(DefaultWebSocketServerProtocol protocol) { public void onText(DefaultWebSocketServerProtocol protocol) {
String text = protocol.readText(); String text = protocol.readText();
log.info("[接收客户端({})指令]|指令内容:{}", protocol.getEquipCode(), text); ObjectMapper objectMapper = new ObjectMapper();
WsCabinetReq boxData = objectMapper.readValue(text, WsCabinetReq.class);
String channel= protocol.requestMessage().getChannelId();
Cabinet cabinet=cabinetService.getOne(new LambdaQueryWrapper<Cabinet>() Cabinet cabinet=cabinetService.getOne(new LambdaQueryWrapper<Cabinet>()
.eq(Cabinet::getCabinetNum, text)); .eq(Cabinet::getCabinetNum, boxData.getSerialNum()));
cabinet.setOnlineState(1); cabinet.setOnlineState(1);
cabinet.setUpdateTime(DateTime.now()); cabinet.setUpdateTime(DateTimeUtil.getCurrentDateTime());
DefaultWebSocketServerMessage message = protocol.requestMessage(); cabinet.setChannelId(channel);
protocol.response(text); cabinetService.updateById(cabinet);
protocol.response("true");
} }
@Override @Override
public void onClose(DefaultWebSocketServerProtocol protocol) { public void onClose(DefaultWebSocketServerProtocol protocol) {
String channel= protocol.requestMessage().getChannelId();
Cabinet cabinet=cabinetService.getOne(new LambdaQueryWrapper<Cabinet>()
.eq(Cabinet::getChannelId, channel));
cabinet.setOnlineState(0);
cabinet.setChannelId("");
cabinet.setUpdateTime(DateTimeUtil.getCurrentDateTime());
cabinetService.updateById(cabinet);
WebSocketServerListener.super.onClose(protocol); WebSocketServerListener.super.onClose(protocol);
} }
......
...@@ -10,6 +10,7 @@ thing: ...@@ -10,6 +10,7 @@ thing:
server: server:
websocket: websocket:
start: true start: true
# 配置第三方请求 # 配置第三方请求
junmp: junmp:
swagger: swagger:
......
...@@ -32,7 +32,7 @@ spring: ...@@ -32,7 +32,7 @@ spring:
virtual-host: / virtual-host: /
profiles: profiles:
#@spring.active@ #@spring.active@
active: prod active: local
servlet: servlet:
multipart: multipart:
max-request-size: 500MB max-request-size: 500MB
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论