feat:添加mqtt服务

This commit is contained in:
dzc committed 2025-01-13 16:54:37 +08:00
1 parent fdf6dc8072
commit 82ed9bd2cc
26 files changed
+906 -6

No files matched your search

@@ -0,0 +1,62 @@
package com.bsd.pjcloud.mqtt.api.feign;
import com.bsd.pjcloud.common.core.constant.ServiceNameConstants;
import com.bsd.pjcloud.common.core.util.R;
import com.bsd.pjcloud.common.feign.annotation.NoToken;
import com.bsd.pjcloud.mqtt.dto.MqttBaseDto;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestParam;
import java.util.List;
@FeignClient(contextId = "remoteMqttEventService", value = ServiceNameConstants.MQTT_SERVICE)
public interface RemoteMqttEventService {
@NoToken
@GetMapping("/mqtt/send-default-msg")
R<Boolean> sendDefaultMsg(@RequestBody MqttBaseDto dto);
/**
* 设置变化
*/
@NoToken
@GetMapping("/mqtt/send-config-change-msg")
R<Boolean> sendConfigChangeMsg(@RequestParam Long mchDeptId);
/**
* 食堂商品变化
*/
@NoToken
@GetMapping("/mqtt/send-canteen-product-change-msg")
R<Boolean> sendCanteenProductChangeMsg(@RequestParam Long mchDeptId);
/**
* 食堂分类变化
*/
@NoToken
@GetMapping("/mqtt/send-canteen-classify-change-msg")
R<Boolean> sendCanteenClassifyChangeMsg(@RequestParam Long mchDeptId);
/**
* 超市商品变化
*/
@NoToken
@GetMapping("/mqtt/send-supermarket-product-change-msg")
R<Boolean> sendSupermarketProductChangeMsg(@RequestParam Long mchDeptId);
/**
* 超市分类变化
*/
@NoToken
@GetMapping("/mqtt/send-supermarket-classify-change-msg")
R<Boolean> sendSupermarketClassifyChangeMsg(@RequestParam Long mchDeptId);
/**
* 人脸变化
*/
@NoToken
@GetMapping("/mqtt/send-face-change-msg")
R<Boolean> sendFaceChangeMsg(@RequestParam Long mchDeptId);
}
@@ -0,0 +1,21 @@
package com.bsd.pjcloud.mqtt.constant;
import lombok.AllArgsConstructor;
import lombok.Getter;
/**
* mq action
*/
@AllArgsConstructor
@Getter
public enum MqttActionEnum {
CONFIG("设置变化"),
CANTEEN_PRODUCT("食堂商品变化"),
CANTEEN_CLASSIFY("食堂分类变化"),
SUPERMARKET_PRODUCT("超市商品变化"),
SUPERMARKET_CLASSIFY("超市分类变化"),
PRINT("打印变化"),
FACE("人脸变化"),
;
private final String description;
}
@@ -0,0 +1,35 @@
package com.bsd.pjcloud.mqtt.dto;
import cn.hutool.core.util.ObjectUtil;
import com.bsd.pjcloud.mqtt.constant.MqttActionEnum;
import lombok.Data;
@Data
public class MqttBaseDto<T> {
// 商户id
private Long merchantDeptId;
// 硬件id
private Long hardwareId;
private MqttActionEnum action;
private Integer qos = 1;
private T data;
public Boolean isExistMchDeptId() {
return ObjectUtil.isNotEmpty(merchantDeptId);
}
public String getTopic() {
if (ObjectUtil.isAllNotEmpty(merchantDeptId, hardwareId)) {
return String.format("topic/android/%s/%s", merchantDeptId, hardwareId);
}
if (ObjectUtil.isAllNotEmpty(merchantDeptId)) {
return String.format("topic/android/%s", merchantDeptId);
}
return "topic/android";
}
}
@@ -0,0 +1,14 @@
package com.bsd.pjcloud.mqtt.dto;
import com.bsd.pjcloud.mqtt.constant.MqttActionEnum;
import lombok.Data;
/**
* 向硬件发送消息
*/
@Data
public class MqttHardBaseMsg {
private MqttActionEnum action;
}