TRX 1 gadu atpakaļ
vecāks
revīzija
80f1e40819

+ 3 - 0
FullCardClient/src/main/java/com/zhongshu/card/client/model/mqtt/SendMessageModel.java

@@ -15,4 +15,7 @@ public class SendMessageModel {
 
     @Schema(description = "消息内容, JSONObject 字符串 或其他", required = true)
     private String message;
+
+    @Schema(description = "用户ID")
+    private String userId;
 }

+ 19 - 0
FullCardServer/src/main/java/com/zhongshu/card/server/core/dao/mqtt/ArtemisMessageDao.java

@@ -0,0 +1,19 @@
+package com.zhongshu.card.server.core.dao.mqtt;
+
+import com.github.microservice.components.data.mongo.mongo.dao.MongoDao;
+import com.zhongshu.card.server.core.domain.mqtt.ArtemisMessage;
+import com.zhongshu.card.server.core.domain.school.Area;
+
+import java.util.List;
+
+/**
+ * 消息Dao
+ *
+ * @author TRX
+ * @date 2024/3/21
+ */
+public interface ArtemisMessageDao extends MongoDao<ArtemisMessage> {
+
+    ArtemisMessage findTopById(String id);
+
+}

+ 3 - 0
FullCardServer/src/main/java/com/zhongshu/card/server/core/domain/mqtt/ArtemisMessage.java

@@ -23,6 +23,9 @@ import org.springframework.data.mongodb.core.mapping.Document;
 @NonLeaked
 public class ArtemisMessage extends SuperMain {
 
+    @Schema(description = "用户userId")
+    private String userId;
+
     @Schema(description = "消息类型:接收 发送")
     private ArtemisType artemisType;
 

+ 18 - 1
FullCardServer/src/main/java/com/zhongshu/card/server/core/service/mqtt/MqttServiceImpl.java

@@ -5,7 +5,10 @@ import cn.hutool.json.JSONUtil;
 import com.google.gson.JsonObject;
 import com.zhongshu.card.client.model.mqtt.SendMessageModel;
 import com.zhongshu.card.client.ret.ResultContent;
+import com.zhongshu.card.client.utils.type.ArtemisType;
+import com.zhongshu.card.server.core.dao.mqtt.ArtemisMessageDao;
 import com.zhongshu.card.server.core.dao.org.UserCountDao;
+import com.zhongshu.card.server.core.domain.mqtt.ArtemisMessage;
 import com.zhongshu.card.server.core.httpRequest.ApiRequestService;
 import com.zhongshu.card.server.core.service.base.RedisService;
 import com.zhongshu.card.server.core.service.base.SuperService;
@@ -43,6 +46,9 @@ public class MqttServiceImpl extends SuperService {
     @Autowired
     ApiRequestService apiRequestService;
 
+    @Autowired
+    ArtemisMessageDao artemisMessageDao;
+
     /**
      * 发送指令
      *
@@ -52,12 +58,23 @@ public class MqttServiceImpl extends SuperService {
     public ResultContent sendMessage(SendMessageModel param) {
         String msg = "发送成功";
         try {
+            String id = UUID.randomUUID().toString();
             JsonObject jsonObject = new JsonObject();
-            jsonObject.addProperty("id", UUID.randomUUID().toString());
+            jsonObject.addProperty("id", id);
             jsonObject.addProperty("data", param.getMessage());
             jsonObject.addProperty("time", DateUtils.paresTime(System.currentTimeMillis(), DateUtils.patternyyyySSS));
             jsonObject.addProperty("ttl", 10 * 1000);
             mqClient.sendObject(param.getTopic(), jsonObject.toString());
+
+            ArtemisMessage artemisMessage = new ArtemisMessage();
+            artemisMessage.setJsonObject(jsonObject);
+            artemisMessage.setTopIc(param.getTopic());
+            artemisMessage.setArtemisType(ArtemisType.Send);
+            artemisMessage.setMessageId(id);
+            artemisMessage.setTimeStr(DateUtils.paresTime(System.currentTimeMillis(),
+                    DateUtils.patternyyyySSS));
+            artemisMessage.setUserId(param.getUserId());
+            artemisMessageDao.save(artemisMessage);
             log.info("mqtt msg 发送成功");
         } catch (Exception e) {
             e.printStackTrace();