Browse Source

feat:弹窗向前端推送

master
白凤吉 2 days ago
parent
commit
926e738fce
  1. 20
      src/main/java/com/iflytop/handacid/app/controller/TestController.java
  2. 16
      src/main/java/com/iflytop/handacid/app/websocket/server/AlertGenerator.java
  3. 8
      src/main/java/com/iflytop/handacid/app/websocket/server/AlertLevel.java
  4. 10
      src/main/java/com/iflytop/handacid/app/websocket/server/WebSocketMessageType.java
  5. 13
      src/main/java/com/iflytop/handacid/app/websocket/server/WebSocketSender.java
  6. 5
      src/main/java/com/iflytop/handacid/common/result/ResultCode.java

20
src/main/java/com/iflytop/handacid/app/controller/TestController.java

@ -1,9 +1,12 @@
package com.iflytop.handacid.app.controller; package com.iflytop.handacid.app.controller;
import com.iflytop.handacid.app.common.enums.ChannelCode;
import com.iflytop.handacid.app.core.state.DeviceState; import com.iflytop.handacid.app.core.state.DeviceState;
import com.iflytop.handacid.app.service.TestService; import com.iflytop.handacid.app.service.TestService;
import com.iflytop.handacid.app.websocket.server.AlertGenerator;
import com.iflytop.handacid.app.websocket.server.AlertLevel;
import com.iflytop.handacid.app.websocket.server.WebSocketSender;
import com.iflytop.handacid.common.result.Result; import com.iflytop.handacid.common.result.Result;
import com.iflytop.handacid.common.result.ResultCode;
import com.iflytop.handacid.hardware.service.AppEventBusService; import com.iflytop.handacid.hardware.service.AppEventBusService;
import com.iflytop.handacid.hardware.type.A8kPacket; import com.iflytop.handacid.hardware.type.A8kPacket;
import com.iflytop.handacid.hardware.type.CmdId; import com.iflytop.handacid.hardware.type.CmdId;
@ -27,6 +30,7 @@ import org.springframework.web.bind.annotation.RestController;
public class TestController { public class TestController {
private final DeviceState deviceState; private final DeviceState deviceState;
private final AppEventBusService eventBus; private final AppEventBusService eventBus;
private final WebSocketSender webSocketSender;
private final TestService testService; private final TestService testService;
@Operation(summary = "启动虚拟模式") @Operation(summary = "启动虚拟模式")
@ -59,4 +63,18 @@ public class TestController {
return Result.success(); return Result.success();
} }
@Operation(summary = "推送弹窗")
@PostMapping("/push-popup")
public Result<?> pushPopup(AlertLevel lv, String resultCode) {
webSocketSender.pushPopup(AlertGenerator.generateJson(lv,ResultCode.getByCode(resultCode)));
return Result.success();
}
@Operation(summary = "推送小提示")
@PostMapping("/push-toast")
public Result<?> pushToast(AlertLevel lv, String resultCode) {
webSocketSender.pushToast(AlertGenerator.generateJson(lv,ResultCode.getByCode(resultCode)));
return Result.success();
}
} }

16
src/main/java/com/iflytop/handacid/app/websocket/server/AlertGenerator.java

@ -0,0 +1,16 @@
package com.iflytop.handacid.app.websocket.server;
import cn.hutool.json.JSONObject;
import com.iflytop.handacid.common.result.ResultCode;
public class AlertGenerator {
public static JSONObject generateJson(AlertLevel alertLevel, ResultCode resultCode) {
JSONObject jsonObject = new JSONObject();
jsonObject.set("level", alertLevel);
jsonObject.set("code", resultCode.getCode());
jsonObject.set("msg", resultCode.getMsg());
return jsonObject;
}
}

8
src/main/java/com/iflytop/handacid/app/websocket/server/AlertLevel.java

@ -0,0 +1,8 @@
package com.iflytop.handacid.app.websocket.server;
public enum AlertLevel {
INFO, // 普通消息
WARNING, // 警告
ERROR, // 错误
ALARM, // 报警
}

10
src/main/java/com/iflytop/handacid/app/websocket/server/WebSocketMessageType.java

@ -25,5 +25,15 @@ public class WebSocketMessageType {
*/ */
public static final String PUMP_POSITION = "pump_position"; public static final String PUMP_POSITION = "pump_position";
/**
* 弹窗
*/
public static final String POPUP = "popup";
/**
* 提醒
*/
public static final String TOAST = "toast";
} }

13
src/main/java/com/iflytop/handacid/app/websocket/server/WebSocketSender.java

@ -26,6 +26,19 @@ public class WebSocketSender {
sessionManager.broadcast(json); sessionManager.broadcast(json);
} }
/**
* 弹窗
*/
public void pushPopup(Object data){
push(WebSocketMessageType.POPUP, data);
}
/**
* 小提醒
*/
public void pushToast(Object data){
push(WebSocketMessageType.TOAST, data);
}
public void pushDebug(Object data) { public void pushDebug(Object data) {
push(WebSocketMessageType.CMD_DEBUG, data); push(WebSocketMessageType.CMD_DEBUG, data);

5
src/main/java/com/iflytop/handacid/common/result/ResultCode.java

@ -1,9 +1,12 @@
package com.iflytop.handacid.common.result; package com.iflytop.handacid.common.result;
import com.fasterxml.jackson.annotation.JsonCreator;
import com.fasterxml.jackson.annotation.JsonValue;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import lombok.Getter; import lombok.Getter;
import java.io.Serializable; import java.io.Serializable;
import java.util.Map;
/** /**
* 统一前端响应码定义 * 统一前端响应码定义
@ -81,7 +84,7 @@ public enum ResultCode implements IResultCode, Serializable {
/** /**
* 根据 code 获取枚举 * 根据 code 获取枚举
*/ */
public static ResultCode parse(String code) {
public static ResultCode getByCode(String code) {
for (ResultCode item : values()) { for (ResultCode item : values()) {
if (item.code.equals(code)) { if (item.code.equals(code)) {
return item; return item;

Loading…
Cancel
Save