Bladeren bron

产品关联topic地址接口维护

xucaiqin 2 jaren geleden
bovenliggende
commit
7c27d33a13

+ 5 - 5
iot-module/iot-module-manage/iot-module-manage-biz/src/main/java/com/middle/platform/manage/biz/controller/IotProductController.java

@@ -2,6 +2,7 @@ package com.middle.platform.manage.biz.controller;
 
 import com.middle.platform.common.utils.Result;
 import com.middle.platform.manage.biz.domain.req.*;
+import com.middle.platform.manage.biz.domain.req.IotUrlPage;
 import com.middle.platform.manage.biz.service.IotCloudService;
 import com.middle.platform.manage.biz.service.IotModService;
 import com.middle.platform.manage.biz.service.IotProductService;
@@ -115,7 +116,7 @@ public class IotProductController {
      * @return
      */
     @GetMapping("/getCloud")
-    public Result<Object> getCloud(@RequestParam("productId") @NotBlank(message = "id不能为空") Long productId) {
+    public Result<Object> getCloud(@NotNull(message = "id不能为空") Long productId) {
         return Result.ok(iotCloudService.getCloud(productId), "查询成功");
     }
 
@@ -135,13 +136,12 @@ public class IotProductController {
     /**
      * 查询产品关联的地址
      *
-     * @param productId
+     * @param iotUrlPage
      * @return
      */
     @GetMapping("/getUrl")
-    public Result<Object> getUrl(@RequestParam("productId") @NotBlank(message = "id不能为空") Long productId,
-                                 @RequestParam("type") @NotNull(message = "类型不能为空") Integer type) {
-        return Result.ok(iotUrlService.getUrl(productId, type), "查询成功");
+    public Result<Object> getUrl(IotUrlPage iotUrlPage) {
+        return Result.ok(iotUrlService.getUrl(iotUrlPage), "查询成功");
     }
 
     /**

+ 16 - 0
iot-module/iot-module-manage/iot-module-manage-biz/src/main/java/com/middle/platform/manage/biz/domain/req/IotUrlPage.java

@@ -0,0 +1,16 @@
+package com.middle.platform.manage.biz.domain.req;
+
+import com.middle.platform.common.modle.BasePara;
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * @author xucaiqin
+ * @date 2023-12-28 17:13:28
+ */
+@Getter
+@Setter
+public class IotUrlPage extends BasePara {
+    private Long productId;
+    private Integer type;
+}

+ 55 - 0
iot-module/iot-module-manage/iot-module-manage-biz/src/main/java/com/middle/platform/manage/biz/domain/vo/IotUrlVo.java

@@ -0,0 +1,55 @@
+package com.middle.platform.manage.biz.domain.vo;
+
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * 数据上下行
+ *
+ * @author xucaiqin
+ * @date 2023-12-19 13:43:38
+ */
+@Getter
+@Setter
+public class IotUrlVo {
+    private Long id;
+    /**
+     * 产品id
+     */
+    private Long productId;
+
+    /**
+     * 类别 1-默认 2-自定义
+     */
+    private Integer category;
+    private String categoryLabel;
+
+    /**
+     * 功能 1-属性上报
+     */
+    private Integer func;
+    private String funcLabel;
+
+    /**
+     * 地址
+     */
+    private String url;
+
+    /**
+     * 设备权限:1发布 2订阅 3发布和订阅
+     */
+    private Integer permission;
+    private String permissionLabel;
+
+
+    /**
+     * 地址类型 url_type 1-mqtt 2-http 3-Coap
+     */
+    private Integer type;
+    private String typeLabel;
+
+    /**
+     * 备注
+     */
+    private String remark;
+}

+ 3 - 0
iot-module/iot-module-manage/iot-module-manage-biz/src/main/java/com/middle/platform/manage/biz/mapper/IotUrlMapper.java

@@ -1,6 +1,8 @@
 package com.middle.platform.manage.biz.mapper;
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.middle.platform.manage.biz.domain.req.IotUrlPage;
+import com.middle.platform.manage.biz.domain.vo.IotUrlVo;
 import com.middle.platform.manage.biz.entity.IotUrl;
 import org.apache.ibatis.annotations.Mapper;
 
@@ -12,4 +14,5 @@ import java.util.List;
  */
 @Mapper
 public interface IotUrlMapper extends BaseMapper<IotUrl> {
+    List<IotUrlVo> pageQuery(IotUrlPage iotUrlPage);
 }

+ 26 - 4
iot-module/iot-module-manage/iot-module-manage-biz/src/main/java/com/middle/platform/manage/biz/service/IotUrlService.java

@@ -1,6 +1,9 @@
 package com.middle.platform.manage.biz.service;
 
+import cn.hutool.core.collection.CollUtil;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.github.pagehelper.PageHelper;
+import com.github.pagehelper.PageInfo;
 import com.middle.platform.common.constant.Global;
 import com.middle.platform.common.exception.BusinessException;
 import com.middle.platform.data.api.constant.TopicType;
@@ -10,12 +13,17 @@ import com.middle.platform.manage.biz.constant.UrlCategory;
 import com.middle.platform.manage.biz.constant.UrlInit;
 import com.middle.platform.manage.biz.constant.UrlProtocol;
 import com.middle.platform.manage.biz.constant.UrlType;
+import com.middle.platform.manage.biz.domain.req.IotUrlPage;
 import com.middle.platform.manage.biz.domain.req.IotUrlPara;
+import com.middle.platform.manage.biz.domain.vo.IotUrlVo;
 import com.middle.platform.manage.biz.entity.IotProduct;
 import com.middle.platform.manage.biz.entity.IotUrl;
 import com.middle.platform.manage.biz.mapper.IotUrlMapper;
+import com.middle.platform.pagehelper.core.PageRes;
 import com.middle.platform.redis.constant.CacheConstant;
 import com.middle.platform.redis.service.CacheService;
+import com.middle.platform.system.api.enums.DictType;
+import com.middle.platform.system.api.feign.DictApi;
 import jakarta.annotation.Resource;
 import lombok.RequiredArgsConstructor;
 import org.apache.commons.lang3.StringUtils;
@@ -23,7 +31,9 @@ import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
 import java.time.LocalDateTime;
+import java.util.List;
 import java.util.Objects;
+import java.util.Optional;
 
 /**
  * @author xucaiqin
@@ -37,6 +47,7 @@ public class IotUrlService {
     private IotProductService iotProductService;
     private final DynamicTopicApi dynamicTopicApi;
     private final CacheService cacheService;
+    private final DictApi dictApi;
     private String topicPrefix = "/iot/%s/+/";
 
     /**
@@ -175,12 +186,23 @@ public class IotUrlService {
     /**
      * 获取关联的topic
      *
-     * @param productId
-     * @param type
+     * @param iotUrlPage
      * @return
      */
-    public Object getUrl(Long productId, Integer type) {
-        return iotUrlMapper.selectList(new LambdaQueryWrapper<IotUrl>().eq(IotUrl::getProductId, productId).eq(IotUrl::getType, type).eq(IotUrl::getDelFlag, Global.UN_DEL));
+    public Object getUrl(IotUrlPage iotUrlPage) {
+        PageHelper.startPage(iotUrlPage.getPage(), iotUrlPage.getPageSize());
+        List<IotUrlVo> iotUrls = iotUrlMapper.pageQuery(iotUrlPage);
+        if (CollUtil.isEmpty(iotUrls)) {
+            return new PageRes<>(iotUrlPage.getPage(), iotUrlPage.getPageSize());
+        }
+        PageInfo<IotUrlVo> pageInfo = new PageInfo<>(iotUrls);
+        iotUrls.forEach(a -> {
+                    Optional.ofNullable(dictApi.query(DictType.URL_TYPE, String.valueOf(a.getType()))).ifPresent(cache -> a.setTypeLabel(cache.getLabel()));
+                    Optional.ofNullable(dictApi.query(DictType.CATEGORY_TYPE, String.valueOf(a.getCategory()))).ifPresent(cache -> a.setCategoryLabel(cache.getLabel()));
+                    Optional.ofNullable(dictApi.query(DictType.FUNC_TYPE, String.valueOf(a.getFunc()))).ifPresent(cache -> a.setFuncLabel(cache.getLabel()));
+                    Optional.ofNullable(dictApi.query(DictType.PERMISSION_TYPE, String.valueOf(a.getPermission()))).ifPresent(cache -> a.setPermissionLabel(cache.getLabel()));
+                    });
+        return new PageRes<>(pageInfo, iotUrls);
     }
 
 

+ 13 - 1
iot-module/iot-module-manage/iot-module-manage-biz/src/main/resources/mapper/IotUrlMapper.xml

@@ -23,5 +23,17 @@
     update_time, delete_time, del_flag
   </sql>
 
-
+  <select id="pageQuery" resultType="com.middle.platform.manage.biz.domain.vo.IotUrlVo">
+    select *
+    from iot_url iu
+    <where>
+      <if test="productId != null">
+        and iu.product_id = #{productId,jdbcType=BIGINT}
+      </if>
+      <if test="type != null">
+        and iu.type = #{type,jdbcType=INTEGER}
+      </if>
+      and iu.del_flag = 0
+    </where>
+  </select>
 </mapper>

+ 7 - 0
iot-module/iot-module-system/iot-module-system-api/src/main/java/com/middle/platform/system/api/enums/DictType.java

@@ -15,4 +15,11 @@ public interface DictType {
     String STATUS_TYPE = "status_type";//状态 启用 禁用
     String MENU_TYPE = "menu_type";//菜单类别
 
+    /*iotUrl表*/
+    String URL_TYPE = "url_type";//地址类型
+    String CATEGORY_TYPE = "category_type";//分类类型
+    String FUNC_TYPE = "func_type";//地址类型
+    String PERMISSION_TYPE = "permission_type";//地址类型
+
+
 }