Browse Source

fix: 更改socket推送

master
guoapeng 6 months ago
parent
commit
cb62242107
  1. 2
      src/main/java/com/qyft/gd/common/result/CMDResultCode.java
  2. 2
      src/main/java/com/qyft/gd/config/WebSocketServer.java
  3. 36
      src/main/java/com/qyft/gd/controller/directive/DirectiveController.java
  4. 16
      src/main/java/com/qyft/gd/model/dto/directive/DirectiveDto.java
  5. 15
      src/main/java/com/qyft/gd/model/vo/WebsocketResult.java
  6. 9
      src/main/java/com/qyft/gd/service/CMDService.java
  7. 9
      src/main/java/com/qyft/gd/service/DirectiveService.java
  8. 18
      src/main/java/com/qyft/gd/service/impl/DirectiveServiceImpl.java

2
src/main/java/com/qyft/gd/common/result/CMDResultCode.java

@ -10,7 +10,7 @@ import java.io.Serializable;
@NoArgsConstructor
public enum CMDResultCode implements IResultCode, Serializable {
SUCCESS("D0000", "执行完毕"),
FAILURE("D0000", "执行失败");
FAILURE("D1111", "执行失败");
@Override
public String getCode() {

2
src/main/java/com/qyft/gd/service/WebSocketServer.java → src/main/java/com/qyft/gd/config/WebSocketServer.java

@ -1,4 +1,4 @@
package com.qyft.gd.service;
package com.qyft.gd.config;
import jakarta.websocket.*;

36
src/main/java/com/qyft/gd/controller/directive/DirectiveController.java

@ -1,36 +0,0 @@
package com.qyft.gd.controller.directive;
import com.qyft.gd.model.dto.directive.DirectiveDto;
import com.qyft.gd.service.DirectiveService;
import com.qyft.gd.system.common.result.Result;
import com.qyft.gd.system.service.UserService;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag;
import jakarta.annotation.Resource;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
/**
* 指令控制器
*/
@Tag(name = "指令")
@RestController
@RequestMapping("/api/directive")
@RequiredArgsConstructor
@Slf4j
public class DirectiveController {
@Resource
private DirectiveService directiveService;
@Operation(summary = "发送指令")
@PostMapping("/sendDirective")
public Result<String> sendDirective(@RequestBody DirectiveDto dto) {
directiveService.sendDirective(dto);
return Result.success();
}
}

16
src/main/java/com/qyft/gd/model/dto/directive/DirectiveDto.java

@ -1,16 +0,0 @@
package com.qyft.gd.model.dto.directive;
import com.qyft.gd.enums.DirectiveTypeEnum;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
@Schema(name = "指令数据")
@Data
public class DirectiveDto {
@Schema(description = "指令类型")
private DirectiveTypeEnum type;
@Schema(description = "指令配置")
private String option;
}

15
src/main/java/com/qyft/gd/model/vo/WebsocketResult.java

@ -0,0 +1,15 @@
package com.qyft.gd.model.vo;
import lombok.Data;
@Data
public class WebsocketResult {
/**
* 推送类型(指令 cmd,报警 warn ,状态 status)
*/
private String type;
/**
* 执行结果
*/
private ExecutionResult data;
}

9
src/main/java/com/qyft/gd/service/CMDService.java

@ -3,9 +3,11 @@ package com.qyft.gd.service;
import cn.hutool.json.JSONUtil;
import com.qyft.gd.common.constant.Commands;
import com.qyft.gd.common.result.CMDResultCode;
import com.qyft.gd.config.WebSocketServer;
import com.qyft.gd.device.service.DeviceService;
import com.qyft.gd.model.form.CMDForm;
import com.qyft.gd.model.vo.ExecutionResult;
import com.qyft.gd.model.vo.WebsocketResult;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;
@ -29,11 +31,16 @@ public class CMDService {
}
private void upTray(CMDForm cmdForm) {
WebsocketResult websocketResult = new WebsocketResult();
websocketResult.setType("cmd");
// TODO 执行指令
ExecutionResult executionResult = new ExecutionResult();
executionResult.setCommandId(cmdForm.getCommandId());
executionResult.setStatus(CMDResultCode.SUCCESS.getCode());
executionResult.setMessage(CMDResultCode.SUCCESS.getMsg());
WebSocketServer.sendMessageToClients(JSONUtil.toJsonStr(executionResult));
websocketResult.setData(executionResult);
// 发送消息给客户端
WebSocketServer.sendMessageToClients(JSONUtil.toJsonStr(websocketResult));
}
}

9
src/main/java/com/qyft/gd/service/DirectiveService.java

@ -1,9 +0,0 @@
package com.qyft.gd.service;
import com.qyft.gd.model.dto.directive.DirectiveDto;
public interface DirectiveService {
void sendDirective(DirectiveDto dto);
}

18
src/main/java/com/qyft/gd/service/impl/DirectiveServiceImpl.java

@ -1,18 +0,0 @@
package com.qyft.gd.service.impl;
import com.qyft.gd.model.dto.directive.DirectiveDto;
import com.qyft.gd.service.DirectiveService;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;
/**
* 指令实现类
*/
@Service
@RequiredArgsConstructor
public class DirectiveServiceImpl implements DirectiveService {
@Override
public void sendDirective(DirectiveDto dto) {
// 发送指令
}
}
Loading…
Cancel
Save