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 {
@ApiModelProperty(value = "箱数")
private Integer num;
@ApiModelProperty(value = "socket连接信息")
@TableField("channel_id")
private String channelId;
@TableField(exist = false)
private String policeName;
@TableField(exist = false)
......
......@@ -6,14 +6,17 @@ import cn.hutool.core.util.StrUtil;
import cn.hutool.extra.spring.SpringUtil;
import com.alibaba.fastjson2.JSON;
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.impl.DefaultWebSocketServerMessage;
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.entity.Cabinet;
import com.junmp.jyzb.entity.Temp.OnlineState;
import com.junmp.jyzb.service.CabinetService;
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.ServerMsgType;
import com.junmp.v2.ws.api.enums.SysMsgTypeEnum;
......@@ -24,6 +27,7 @@ import com.junmp.v2.ws.channel.WsSessionContainer;
import com.junmp.v2.ws.message.WsMessageHandle;
import com.junmp.v2.ws.session.WsSessionHandle;
import io.jsonwebtoken.JwtException;
import lombok.SneakyThrows;
import lombok.extern.slf4j.Slf4j;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
......@@ -44,25 +48,39 @@ import java.time.Instant;
public class CabinetWebSocketServer implements WebSocketServerListener {
@Resource
public CabinetService cabinetService;
@Override
public String uri() {
return "/cabinet/ws";
}
@SneakyThrows
@Override
public void onText(DefaultWebSocketServerProtocol protocol) {
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>()
.eq(Cabinet::getCabinetNum, text));
.eq(Cabinet::getCabinetNum, boxData.getSerialNum()));
cabinet.setOnlineState(1);
cabinet.setUpdateTime(DateTime.now());
DefaultWebSocketServerMessage message = protocol.requestMessage();
protocol.response(text);
cabinet.setUpdateTime(DateTimeUtil.getCurrentDateTime());
cabinet.setChannelId(channel);
cabinetService.updateById(cabinet);
protocol.response("true");
}
@Override
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);
}
......
......@@ -10,6 +10,7 @@ thing:
server:
websocket:
start: true
# 配置第三方请求
junmp:
swagger:
......
......@@ -32,7 +32,7 @@ spring:
virtual-host: /
profiles:
#@spring.active@
active: prod
active: local
servlet:
multipart:
max-request-size: 500MB
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论