Przeglądaj źródła

feat:物模型列表

alwayssuper 7 miesięcy temu
rodzic
commit
c31dfcc25f

+ 9 - 0
yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/controller/admin/thingmodel/IotThingModelController.java

@@ -3,6 +3,7 @@ package cn.iocoder.yudao.module.iot.controller.admin.thingmodel;
 import cn.iocoder.yudao.framework.common.pojo.CommonResult;
 import cn.iocoder.yudao.framework.common.pojo.PageResult;
 import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
+import cn.iocoder.yudao.module.iot.controller.admin.thingmodel.vo.IotThingModelListReqVO;
 import cn.iocoder.yudao.module.iot.controller.admin.thingmodel.vo.IotThingModelPageReqVO;
 import cn.iocoder.yudao.module.iot.controller.admin.thingmodel.vo.IotThingModelRespVO;
 import cn.iocoder.yudao.module.iot.controller.admin.thingmodel.vo.IotThingModelSaveReqVO;
@@ -73,6 +74,14 @@ public class IotThingModelController {
         return success(IotThingModelConvert.INSTANCE.convertList(list));
     }
 
+    @GetMapping("/list")
+    @Operation(summary = "获得产品物模型列表")
+    @PreAuthorize("@ss.hasPermission('iot:thing-model:query')")
+    public CommonResult<List<IotThingModelRespVO>> getThingModelListByProductId(@Valid IotThingModelListReqVO reqVO) {
+        List<IotThingModelDO> list = thingModelService.getThingModelList(reqVO);
+        return success(IotThingModelConvert.INSTANCE.convertList(list));
+    }
+
     @GetMapping("/page")
     @Operation(summary = "获得产品物模型分页")
     @PreAuthorize("@ss.hasPermission('iot:thing-model:query')")

+ 27 - 0
yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/controller/admin/thingmodel/vo/IotThingModelListReqVO.java

@@ -0,0 +1,27 @@
+package cn.iocoder.yudao.module.iot.controller.admin.thingmodel.vo;
+
+import cn.iocoder.yudao.framework.common.validation.InEnum;
+import cn.iocoder.yudao.module.iot.enums.thingmodel.IotThingModelTypeEnum;
+import io.swagger.v3.oas.annotations.media.Schema;
+import jakarta.validation.constraints.NotNull;
+import lombok.Data;
+
+
+
+@Schema(description = "管理后台 - IoT 产品物模型List Request VO")
+@Data
+public class IotThingModelListReqVO {
+    @Schema(description = "功能标识")
+    private String identifier;
+
+    @Schema(description = "功能名称", example = "张三")
+    private String name;
+
+    @Schema(description = "功能类型", example = "1")
+    @InEnum(IotThingModelTypeEnum.class)
+    private Integer type;
+
+    @Schema(description = "产品ID", requiredMode = Schema.RequiredMode.REQUIRED)
+    @NotNull(message = "产品ID不能为空")
+    private Long productId;
+}

+ 12 - 0
yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/dal/mysql/thingmodel/IotThingModelMapper.java

@@ -3,6 +3,7 @@ package cn.iocoder.yudao.module.iot.dal.mysql.thingmodel;
 import cn.iocoder.yudao.framework.common.pojo.PageResult;
 import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX;
 import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX;
+import cn.iocoder.yudao.module.iot.controller.admin.thingmodel.vo.IotThingModelListReqVO;
 import cn.iocoder.yudao.module.iot.controller.admin.thingmodel.vo.IotThingModelPageReqVO;
 import cn.iocoder.yudao.module.iot.dal.dataobject.thingmodel.IotThingModelDO;
 import org.apache.ibatis.annotations.Mapper;
@@ -28,6 +29,17 @@ public interface IotThingModelMapper extends BaseMapperX<IotThingModelDO> {
                 .orderByDesc(IotThingModelDO::getId));
     }
 
+    default List<IotThingModelDO> selectList(IotThingModelListReqVO reqVO) {
+        return selectList(new LambdaQueryWrapperX<IotThingModelDO>()
+                .eqIfPresent(IotThingModelDO::getIdentifier, reqVO.getIdentifier())
+                .likeIfPresent(IotThingModelDO::getName, reqVO.getName())
+                .eqIfPresent(IotThingModelDO::getType, reqVO.getType())
+                .eqIfPresent(IotThingModelDO::getProductId, reqVO.getProductId())
+                // TODO @芋艿:看看要不要加枚举
+                .notIn(IotThingModelDO::getIdentifier, "get", "set", "post")
+                .orderByDesc(IotThingModelDO::getId));
+    }
+
     default IotThingModelDO selectByProductIdAndIdentifier(Long productId, String identifier) {
         return selectOne(IotThingModelDO::getProductId, productId,
                 IotThingModelDO::getIdentifier, identifier);

+ 8 - 0
yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/service/thingmodel/IotThingModelService.java

@@ -1,6 +1,7 @@
 package cn.iocoder.yudao.module.iot.service.thingmodel;
 
 import cn.iocoder.yudao.framework.common.pojo.PageResult;
+import cn.iocoder.yudao.module.iot.controller.admin.thingmodel.vo.IotThingModelListReqVO;
 import cn.iocoder.yudao.module.iot.controller.admin.thingmodel.vo.IotThingModelPageReqVO;
 import cn.iocoder.yudao.module.iot.controller.admin.thingmodel.vo.IotThingModelSaveReqVO;
 import cn.iocoder.yudao.module.iot.dal.dataobject.thingmodel.IotThingModelDO;
@@ -69,4 +70,11 @@ public interface IotThingModelService {
      */
     List<IotThingModelDO> getProductThingModelListByProductKey(String productKey);
 
+    /**
+     * 获得产品物模型列表
+     *
+     * @param reqVO 列表查询
+     * @return 产品物模型列表
+     */
+    List<IotThingModelDO> getThingModelList(IotThingModelListReqVO reqVO);
 }

+ 6 - 0
yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/service/thingmodel/IotThingModelServiceImpl.java

@@ -7,6 +7,7 @@ import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
 import cn.iocoder.yudao.module.iot.controller.admin.thingmodel.model.ThingModelEvent;
 import cn.iocoder.yudao.module.iot.controller.admin.thingmodel.model.ThingModelParam;
 import cn.iocoder.yudao.module.iot.controller.admin.thingmodel.model.ThingModelService;
+import cn.iocoder.yudao.module.iot.controller.admin.thingmodel.vo.IotThingModelListReqVO;
 import cn.iocoder.yudao.module.iot.controller.admin.thingmodel.vo.IotThingModelPageReqVO;
 import cn.iocoder.yudao.module.iot.controller.admin.thingmodel.vo.IotThingModelSaveReqVO;
 import cn.iocoder.yudao.module.iot.convert.thingmodel.IotThingModelConvert;
@@ -134,6 +135,11 @@ public class IotThingModelServiceImpl implements IotThingModelService {
         return thingModelMapper.selectListByProductKey(productKey);
     }
 
+    @Override
+    public List<IotThingModelDO> getThingModelList(IotThingModelListReqVO reqVO) {
+        return thingModelMapper.selectList(reqVO);
+    }
+
     /**
      * 校验功能是否存在
      *