浏览代码

任务提交 修正发送mqtt消息

qinguocai 1 年之前
父节点
当前提交
cdd79adbeb
共有 1 个文件被更改,包括 21 次插入1 次删除
  1. 21 1
      ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SiteServiceImpl.java

+ 21 - 1
ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SiteServiceImpl.java

@@ -1,6 +1,8 @@
 package com.ruoyi.system.service.impl;
 
 
+import cn.hutool.json.JSONUtil;
+import com.alibaba.fastjson2.JSON;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.ruoyi.common.exception.base.BaseException;
 import com.ruoyi.system.domain.SiteConfig;
@@ -17,6 +19,8 @@ import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 import javax.annotation.Resource;
 import java.util.Date;
+import com.alibaba.fastjson.serializer.SerializeConfig;
+import com.alibaba.fastjson.serializer.SerializerFeature;
 
 
 /**
@@ -112,11 +116,27 @@ public class SiteServiceImpl implements SiteService {
             if (siteConfig != null){
                 throw new BaseException("新增失败,该站点已存在配置信息");
             }
+            SiteInfo siteInfo = siteInfoMapper.queryById(siteConfigDTO.getSiteId());
+            if (siteInfo == null){
+                throw new BaseException("新增失败,SiteId错误");
+            }
             siteConfig = new SiteConfig();
             BeanUtils.copyProperties(siteConfigDTO, siteConfig);
             siteConfig.setConfigId(0L);
-            return siteConfigMapper.insert(siteConfig) > 0;
+            boolean res = siteConfigMapper.insert(siteConfig) > 0;
             //TODO 下发MQTT消息
+            String topic = "down/" + siteInfo.getDeviceId() + "/settings";
+            // 配置 SerializeConfig,开启过滤 null 值的特性
+//            SerializeConfig serializeConfig = SerializeConfig.globalInstance;
+//            serializeConfig.configForBean().setNullValueFilter((k, v) -> v != null);
+//
+//            // 将 User 对象转换为 JSON 字符串,过滤 null 值
+//            String data = JSON.toJSONString(siteConfig, serializeConfig, SerializerFeature.WriteMapNullValue,
+//                    SerializerFeature.WriteNullStringAsEmpty, SerializerFeature.WriteNullListAsEmpty);
+//
+//            String data = JSONUtil.toJsonStr(siteConfig);
+//            mqttGateWayService.sendMessageToMqtt(data, topic);
+            return res;
         } catch (BaseException e){
             throw new BaseException(e.getMessage());
         } catch (Exception e){