From 0ee6ebe207616eebf1c222d9a90eb0245e8351ae Mon Sep 17 00:00:00 2001 From: lijiahang Date: Thu, 9 Nov 2023 11:34:24 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E6=95=B0=E6=8D=AE=E5=88=86=E7=BB=84?= =?UTF-8?q?=E6=9C=8D=E5=8A=A1=E5=AE=9E=E7=8E=B0.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ops/framework/common/constant/Const.java | 2 +- .../ops/module/infra/api/DataGroupApi.java | 74 ++--- .../ops/module/infra/api/DataGroupRelApi.java | 79 ++---- .../entity/dto/data/DataGroupCreateDTO.java | 11 - .../infra/entity/dto/data/DataGroupDTO.java | 26 +- .../entity/dto/data/DataGroupQueryDTO.java | 45 --- .../dto/data/DataGroupRelCreateDTO.java | 13 - .../entity/dto/data/DataGroupRelDTO.java | 53 ---- .../entity/dto/data/DataGroupRelQueryDTO.java | 44 --- .../dto/data/DataGroupRelUpdateDTO.java | 51 ---- .../entity/dto/data/DataGroupUpdateDTO.java | 11 - .../dto/history/HistoryValueCreateDTO.java | 1 - .../module/infra/enums/DataGroupTypeEnum.java | 31 +++ .../ops/module/infra/enums/TagTypeEnum.java | 12 + .../infra/api/impl/DataGroupApiImpl.java | 242 +++++------------ .../infra/api/impl/DataGroupRelApiImpl.java | 257 ++++++------------ .../convert/DataGroupProviderConvert.java | 19 +- .../convert/DataGroupRelProviderConvert.java | 11 +- .../ops/module/infra/dao/DataGroupDAO.java | 10 + .../define/cache/DataGroupCacheKeyDefine.java | 13 +- .../infra/entity/domain/DataGroupRelDO.java | 4 - .../infra/entity/dto/DataGroupCacheDTO.java | 7 +- .../entity/dto/DataGroupRelCacheDTO.java | 3 - .../request/data/DataGroupCreateRequest.java | 4 - .../data/DataGroupRelCreateRequest.java | 3 - .../module/infra/enums/DictValueTypeEnum.java | 2 - .../infra/service/DataGroupService.java | 12 +- .../service/impl/DataGroupRelServiceImpl.java | 8 - .../service/impl/DataGroupServiceImpl.java | 72 ++++- .../service/impl/SystemMenuServiceImpl.java | 2 +- .../main/resources/mapper/DataGroupMapper.xml | 8 + .../resources/mapper/DataGroupRelMapper.xml | 3 +- 32 files changed, 361 insertions(+), 772 deletions(-) delete mode 100644 orion-ops-module-infra/orion-ops-module-infra-provider/src/main/java/com/orion/ops/module/infra/entity/dto/data/DataGroupQueryDTO.java delete mode 100644 orion-ops-module-infra/orion-ops-module-infra-provider/src/main/java/com/orion/ops/module/infra/entity/dto/data/DataGroupRelDTO.java delete mode 100644 orion-ops-module-infra/orion-ops-module-infra-provider/src/main/java/com/orion/ops/module/infra/entity/dto/data/DataGroupRelQueryDTO.java delete mode 100644 orion-ops-module-infra/orion-ops-module-infra-provider/src/main/java/com/orion/ops/module/infra/entity/dto/data/DataGroupRelUpdateDTO.java create mode 100644 orion-ops-module-infra/orion-ops-module-infra-provider/src/main/java/com/orion/ops/module/infra/enums/DataGroupTypeEnum.java diff --git a/orion-ops-framework/orion-ops-framework-common/src/main/java/com/orion/ops/framework/common/constant/Const.java b/orion-ops-framework/orion-ops-framework-common/src/main/java/com/orion/ops/framework/common/constant/Const.java index 7ad8a785..e558e140 100644 --- a/orion-ops-framework/orion-ops-framework-common/src/main/java/com/orion/ops/framework/common/constant/Const.java +++ b/orion-ops-framework/orion-ops-framework-common/src/main/java/com/orion/ops/framework/common/constant/Const.java @@ -21,7 +21,7 @@ public interface Const extends com.orion.lang.constant.Const, FieldConst { String INTRANET_IP = "内网IP"; - Long ROOT_MENU_ID = 0L; + Long ROOT_PARENT_ID = 0L; Integer DEFAULT_SORT = 10; diff --git a/orion-ops-module-infra/orion-ops-module-infra-provider/src/main/java/com/orion/ops/module/infra/api/DataGroupApi.java b/orion-ops-module-infra/orion-ops-module-infra-provider/src/main/java/com/orion/ops/module/infra/api/DataGroupApi.java index 765dfb4d..ab78a5d0 100644 --- a/orion-ops-module-infra/orion-ops-module-infra-provider/src/main/java/com/orion/ops/module/infra/api/DataGroupApi.java +++ b/orion-ops-module-infra/orion-ops-module-infra-provider/src/main/java/com/orion/ops/module/infra/api/DataGroupApi.java @@ -1,6 +1,9 @@ package com.orion.ops.module.infra.api; -import com.orion.ops.module.infra.entity.dto.data.*; +import com.orion.ops.module.infra.entity.dto.data.DataGroupCreateDTO; +import com.orion.ops.module.infra.entity.dto.data.DataGroupDTO; +import com.orion.ops.module.infra.entity.dto.data.DataGroupUpdateDTO; +import com.orion.ops.module.infra.enums.DataGroupTypeEnum; import java.util.List; @@ -16,66 +19,37 @@ public interface DataGroupApi { /** * 创建数据分组 * - * @param dto dto + * @param type type + * @param dto dto * @return id */ - Long createDataGroup(DataGroupCreateDTO dto); + Long createDataGroup(DataGroupTypeEnum type, DataGroupCreateDTO dto); /** - * 更新数据分组 + * 重命名分组 * * @param dto dto * @return effect */ - Integer updateDataGroupById(DataGroupUpdateDTO dto); + Integer renameDataGroup(DataGroupUpdateDTO dto); - /** - * 根据条件更新数据分组 - * - * @param query query - * @param update update - * @return effect - */ - Integer updateDataGroup(DataGroupQueryDTO query, DataGroupUpdateDTO update); - - /** - * 查询数据分组 - * - * @param id id - * @return row - */ - DataGroupDTO getDataGroupById(Long id); - - /** - * 批量查询数据分组 - * - * @param idList idList - * @return rows - */ - List getDataGroupByIdList(List idList); - - /** - * 查询全部数据分组 - * - * @param dto dto - * @return rows - */ - List getDataGroupList(DataGroupQueryDTO dto); + // FIXME drag /** * 通过缓存查询数据分组 * + * @param type type * @return rows */ - List getDataGroupListByCache(); + List getDataGroupList(DataGroupTypeEnum type); /** - * 查询数据分组数量 + * 通过缓存查询数据分组 * - * @param dto dto - * @return count + * @param type type + * @return rows */ - Long getDataGroupCount(DataGroupQueryDTO dto); + List getDataGroupTree(DataGroupTypeEnum type); /** * 删除数据分组 @@ -85,20 +59,4 @@ public interface DataGroupApi { */ Integer deleteDataGroupById(Long id); - /** - * 批量删除数据分组 - * - * @param idList idList - * @return effect - */ - Integer deleteDataGroupByIdList(List idList); - - /** - * 根据条件删除数据分组 - * - * @param dto dto - * @return effect - */ - Integer deleteDataGroup(DataGroupQueryDTO dto); - } diff --git a/orion-ops-module-infra/orion-ops-module-infra-provider/src/main/java/com/orion/ops/module/infra/api/DataGroupRelApi.java b/orion-ops-module-infra/orion-ops-module-infra-provider/src/main/java/com/orion/ops/module/infra/api/DataGroupRelApi.java index a5461ba7..f3da663c 100644 --- a/orion-ops-module-infra/orion-ops-module-infra-provider/src/main/java/com/orion/ops/module/infra/api/DataGroupRelApi.java +++ b/orion-ops-module-infra/orion-ops-module-infra-provider/src/main/java/com/orion/ops/module/infra/api/DataGroupRelApi.java @@ -1,8 +1,11 @@ package com.orion.ops.module.infra.api; -import com.orion.ops.module.infra.entity.dto.data.*; +import com.orion.ops.module.infra.entity.dto.data.DataGroupRelCreateDTO; +import com.orion.ops.module.infra.enums.DataGroupTypeEnum; import java.util.List; +import java.util.Map; +import java.util.Set; /** * 数据分组关联 对外服务类 @@ -14,91 +17,63 @@ import java.util.List; public interface DataGroupRelApi { /** - * 创建数据分组关联 + * 添加关联 * * @param dto dto - * @return id */ - Long createDataGroupRel(DataGroupRelCreateDTO dto); + void addGroupRel(DataGroupRelCreateDTO dto); /** - * 更新数据分组关联 + * 添加关联 * - * @param dto dto - * @return effect + * @param list list */ - Integer updateDataGroupRelById(DataGroupRelUpdateDTO dto); + void addGroupRel(List list); /** - * 根据条件更新数据分组关联 + * 通过缓存查询数据分组关联 + *

+ * groupId - relId * - * @param query query - * @param update update - * @return effect - */ - Integer updateDataGroupRel(DataGroupRelQueryDTO query, DataGroupRelUpdateDTO update); - - /** - * 查询数据分组关联 - * - * @param id id - * @return row - */ - DataGroupRelDTO getDataGroupRelById(Long id); - - /** - * 批量查询数据分组关联 - * - * @param idList idList + * @param type type * @return rows */ - List getDataGroupRelByIdList(List idList); - - /** - * 查询全部数据分组关联 - * - * @param dto dto - * @return rows - */ - List getDataGroupRelList(DataGroupRelQueryDTO dto); + Map> getGroupRelList(DataGroupTypeEnum type); /** * 通过缓存查询数据分组关联 * + * @param type type + * @param groupId groupId * @return rows */ - List getDataGroupRelListByCache(); - - /** - * 查询数据分组关联数量 - * - * @param dto dto - * @return count - */ - Long getDataGroupRelCount(DataGroupRelQueryDTO dto); + Set getGroupRelList(DataGroupTypeEnum type, Long groupId); /** * 删除数据分组关联 * - * @param id id + * @param type type + * @param relId relId * @return effect */ - Integer deleteDataGroupRelById(Long id); + Integer deleteByRelId(DataGroupTypeEnum type, Long relId); /** * 批量删除数据分组关联 * - * @param idList idList + * @param type type + * @param relIdList relIdList * @return effect */ - Integer deleteDataGroupRelByIdList(List idList); + Integer deleteByRelIdList(DataGroupTypeEnum type, List relIdList); /** - * 根据条件删除数据分组关联 + * 批量删除数据分组关联 * - * @param dto dto + * @param type type + * @param groupIdList groupIdList * @return effect */ - Integer deleteDataGroupRel(DataGroupRelQueryDTO dto); + Integer deleteByGroupIdList(DataGroupTypeEnum type, List groupIdList); } diff --git a/orion-ops-module-infra/orion-ops-module-infra-provider/src/main/java/com/orion/ops/module/infra/entity/dto/data/DataGroupCreateDTO.java b/orion-ops-module-infra/orion-ops-module-infra-provider/src/main/java/com/orion/ops/module/infra/entity/dto/data/DataGroupCreateDTO.java index 7148504a..8cd9a3de 100644 --- a/orion-ops-module-infra/orion-ops-module-infra-provider/src/main/java/com/orion/ops/module/infra/entity/dto/data/DataGroupCreateDTO.java +++ b/orion-ops-module-infra/orion-ops-module-infra-provider/src/main/java/com/orion/ops/module/infra/entity/dto/data/DataGroupCreateDTO.java @@ -10,8 +10,6 @@ import javax.validation.constraints.NotBlank; import javax.validation.constraints.NotNull; import javax.validation.constraints.Size; import java.io.Serializable; -import java.util.*; -import java.math.*; /** * 数据分组 创建请求业务对象 @@ -36,13 +34,4 @@ public class DataGroupCreateDTO implements Serializable { @Schema(description = "组名称") private String name; - @NotBlank - @Size(max = 16) - @Schema(description = "组类型") - private String type; - - @NotNull - @Schema(description = "排序") - private Integer sort; - } diff --git a/orion-ops-module-infra/orion-ops-module-infra-provider/src/main/java/com/orion/ops/module/infra/entity/dto/data/DataGroupDTO.java b/orion-ops-module-infra/orion-ops-module-infra-provider/src/main/java/com/orion/ops/module/infra/entity/dto/data/DataGroupDTO.java index bd9d2f68..b98b0efd 100644 --- a/orion-ops-module-infra/orion-ops-module-infra-provider/src/main/java/com/orion/ops/module/infra/entity/dto/data/DataGroupDTO.java +++ b/orion-ops-module-infra/orion-ops-module-infra-provider/src/main/java/com/orion/ops/module/infra/entity/dto/data/DataGroupDTO.java @@ -1,11 +1,13 @@ package com.orion.ops.module.infra.entity.dto.data; import io.swagger.v3.oas.annotations.media.Schema; -import java.io.Serializable; -import lombok.*; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; -import java.util.*; -import java.math.*; +import java.io.Serializable; +import java.util.List; /** * 数据分组 业务对象 @@ -32,22 +34,10 @@ public class DataGroupDTO implements Serializable { @Schema(description = "组名称") private String name; - @Schema(description = "组类型") - private String type; - @Schema(description = "排序") private Integer sort; - @Schema(description = "创建时间") - private Date createTime; - - @Schema(description = "修改时间") - private Date updateTime; - - @Schema(description = "创建人") - private String creator; - - @Schema(description = "修改人") - private String updater; + @Schema(description = "子节点") + private List children; } diff --git a/orion-ops-module-infra/orion-ops-module-infra-provider/src/main/java/com/orion/ops/module/infra/entity/dto/data/DataGroupQueryDTO.java b/orion-ops-module-infra/orion-ops-module-infra-provider/src/main/java/com/orion/ops/module/infra/entity/dto/data/DataGroupQueryDTO.java deleted file mode 100644 index a7644f29..00000000 --- a/orion-ops-module-infra/orion-ops-module-infra-provider/src/main/java/com/orion/ops/module/infra/entity/dto/data/DataGroupQueryDTO.java +++ /dev/null @@ -1,45 +0,0 @@ -package com.orion.ops.module.infra.entity.dto.data; - -import io.swagger.v3.oas.annotations.media.Schema; -import lombok.AllArgsConstructor; -import lombok.Builder; -import lombok.Data; -import lombok.NoArgsConstructor; - -import javax.validation.constraints.Size; -import java.io.Serializable; -import java.util.*; -import java.math.*; - -/** - * 数据分组 查询请求业务对象 - * - * @author Jiahang Li - * @version 1.0.0 - * @since 2023-11-7 18:44 - */ -@Data -@Builder -@NoArgsConstructor -@AllArgsConstructor -@Schema(name = "DataGroupQueryDTO", description = "数据分组 查询请求业务对象") -public class DataGroupQueryDTO implements Serializable { - - @Schema(description = "id") - private Long id; - - @Schema(description = "父id") - private Long parentId; - - @Size(max = 32) - @Schema(description = "组名称") - private String name; - - @Size(max = 16) - @Schema(description = "组类型") - private String type; - - @Schema(description = "排序") - private Integer sort; - -} diff --git a/orion-ops-module-infra/orion-ops-module-infra-provider/src/main/java/com/orion/ops/module/infra/entity/dto/data/DataGroupRelCreateDTO.java b/orion-ops-module-infra/orion-ops-module-infra-provider/src/main/java/com/orion/ops/module/infra/entity/dto/data/DataGroupRelCreateDTO.java index 92a34401..2fc50469 100644 --- a/orion-ops-module-infra/orion-ops-module-infra-provider/src/main/java/com/orion/ops/module/infra/entity/dto/data/DataGroupRelCreateDTO.java +++ b/orion-ops-module-infra/orion-ops-module-infra-provider/src/main/java/com/orion/ops/module/infra/entity/dto/data/DataGroupRelCreateDTO.java @@ -6,12 +6,8 @@ import lombok.Builder; import lombok.Data; import lombok.NoArgsConstructor; -import javax.validation.constraints.NotBlank; import javax.validation.constraints.NotNull; -import javax.validation.constraints.Size; import java.io.Serializable; -import java.util.*; -import java.math.*; /** * 数据分组关联 创建请求业务对象 @@ -35,13 +31,4 @@ public class DataGroupRelCreateDTO implements Serializable { @Schema(description = "引用id") private Long relId; - @NotBlank - @Size(max = 16) - @Schema(description = "组类型") - private String type; - - @NotNull - @Schema(description = "排序") - private Integer sort; - } diff --git a/orion-ops-module-infra/orion-ops-module-infra-provider/src/main/java/com/orion/ops/module/infra/entity/dto/data/DataGroupRelDTO.java b/orion-ops-module-infra/orion-ops-module-infra-provider/src/main/java/com/orion/ops/module/infra/entity/dto/data/DataGroupRelDTO.java deleted file mode 100644 index 277446fe..00000000 --- a/orion-ops-module-infra/orion-ops-module-infra-provider/src/main/java/com/orion/ops/module/infra/entity/dto/data/DataGroupRelDTO.java +++ /dev/null @@ -1,53 +0,0 @@ -package com.orion.ops.module.infra.entity.dto.data; - -import io.swagger.v3.oas.annotations.media.Schema; -import java.io.Serializable; -import lombok.*; - -import java.util.*; -import java.math.*; - -/** - * 数据分组关联 业务对象 - * - * @author Jiahang Li - * @version 1.0.0 - * @since 2023-11-7 18:44 - */ -@Data -@Builder -@NoArgsConstructor -@AllArgsConstructor -@Schema(name = "DataGroupRelDTO", description = "数据分组关联 业务对象") -public class DataGroupRelDTO implements Serializable { - - private static final long serialVersionUID = 1L; - - @Schema(description = "id") - private Long id; - - @Schema(description = "组id") - private Long groupId; - - @Schema(description = "引用id") - private Long relId; - - @Schema(description = "组类型") - private String type; - - @Schema(description = "排序") - private Integer sort; - - @Schema(description = "创建时间") - private Date createTime; - - @Schema(description = "修改时间") - private Date updateTime; - - @Schema(description = "创建人") - private String creator; - - @Schema(description = "修改人") - private String updater; - -} diff --git a/orion-ops-module-infra/orion-ops-module-infra-provider/src/main/java/com/orion/ops/module/infra/entity/dto/data/DataGroupRelQueryDTO.java b/orion-ops-module-infra/orion-ops-module-infra-provider/src/main/java/com/orion/ops/module/infra/entity/dto/data/DataGroupRelQueryDTO.java deleted file mode 100644 index e87f0e65..00000000 --- a/orion-ops-module-infra/orion-ops-module-infra-provider/src/main/java/com/orion/ops/module/infra/entity/dto/data/DataGroupRelQueryDTO.java +++ /dev/null @@ -1,44 +0,0 @@ -package com.orion.ops.module.infra.entity.dto.data; - -import io.swagger.v3.oas.annotations.media.Schema; -import lombok.AllArgsConstructor; -import lombok.Builder; -import lombok.Data; -import lombok.NoArgsConstructor; - -import javax.validation.constraints.Size; -import java.io.Serializable; -import java.util.*; -import java.math.*; - -/** - * 数据分组关联 查询请求业务对象 - * - * @author Jiahang Li - * @version 1.0.0 - * @since 2023-11-7 18:44 - */ -@Data -@Builder -@NoArgsConstructor -@AllArgsConstructor -@Schema(name = "DataGroupRelQueryDTO", description = "数据分组关联 查询请求业务对象") -public class DataGroupRelQueryDTO implements Serializable { - - @Schema(description = "id") - private Long id; - - @Schema(description = "组id") - private Long groupId; - - @Schema(description = "引用id") - private Long relId; - - @Size(max = 16) - @Schema(description = "组类型") - private String type; - - @Schema(description = "排序") - private Integer sort; - -} diff --git a/orion-ops-module-infra/orion-ops-module-infra-provider/src/main/java/com/orion/ops/module/infra/entity/dto/data/DataGroupRelUpdateDTO.java b/orion-ops-module-infra/orion-ops-module-infra-provider/src/main/java/com/orion/ops/module/infra/entity/dto/data/DataGroupRelUpdateDTO.java deleted file mode 100644 index 8c240809..00000000 --- a/orion-ops-module-infra/orion-ops-module-infra-provider/src/main/java/com/orion/ops/module/infra/entity/dto/data/DataGroupRelUpdateDTO.java +++ /dev/null @@ -1,51 +0,0 @@ -package com.orion.ops.module.infra.entity.dto.data; - -import io.swagger.v3.oas.annotations.media.Schema; -import lombok.AllArgsConstructor; -import lombok.Builder; -import lombok.Data; -import lombok.NoArgsConstructor; - -import javax.validation.constraints.NotBlank; -import javax.validation.constraints.NotNull; -import javax.validation.constraints.Size; -import java.io.Serializable; -import java.util.*; -import java.math.*; - -/** - * 数据分组关联 更新请求业务对象 - * - * @author Jiahang Li - * @version 1.0.0 - * @since 2023-11-7 18:44 - */ -@Data -@Builder -@NoArgsConstructor -@AllArgsConstructor -@Schema(name = "DataGroupRelUpdateDTO", description = "数据分组关联 更新请求业务对象") -public class DataGroupRelUpdateDTO implements Serializable { - - @NotNull - @Schema(description = "id") - private Long id; - - @NotNull - @Schema(description = "组id") - private Long groupId; - - @NotNull - @Schema(description = "引用id") - private Long relId; - - @NotBlank - @Size(max = 16) - @Schema(description = "组类型") - private String type; - - @NotNull - @Schema(description = "排序") - private Integer sort; - -} diff --git a/orion-ops-module-infra/orion-ops-module-infra-provider/src/main/java/com/orion/ops/module/infra/entity/dto/data/DataGroupUpdateDTO.java b/orion-ops-module-infra/orion-ops-module-infra-provider/src/main/java/com/orion/ops/module/infra/entity/dto/data/DataGroupUpdateDTO.java index caaf90c7..7d52ac26 100644 --- a/orion-ops-module-infra/orion-ops-module-infra-provider/src/main/java/com/orion/ops/module/infra/entity/dto/data/DataGroupUpdateDTO.java +++ b/orion-ops-module-infra/orion-ops-module-infra-provider/src/main/java/com/orion/ops/module/infra/entity/dto/data/DataGroupUpdateDTO.java @@ -6,12 +6,9 @@ import lombok.Builder; import lombok.Data; import lombok.NoArgsConstructor; -import javax.validation.constraints.NotBlank; import javax.validation.constraints.NotNull; import javax.validation.constraints.Size; import java.io.Serializable; -import java.util.*; -import java.math.*; /** * 数据分组 更新请求业务对象 @@ -31,21 +28,13 @@ public class DataGroupUpdateDTO implements Serializable { @Schema(description = "id") private Long id; - @NotNull @Schema(description = "父id") private Long parentId; - @NotBlank @Size(max = 32) @Schema(description = "组名称") private String name; - @NotBlank - @Size(max = 16) - @Schema(description = "组类型") - private String type; - - @NotNull @Schema(description = "排序") private Integer sort; diff --git a/orion-ops-module-infra/orion-ops-module-infra-provider/src/main/java/com/orion/ops/module/infra/entity/dto/history/HistoryValueCreateDTO.java b/orion-ops-module-infra/orion-ops-module-infra-provider/src/main/java/com/orion/ops/module/infra/entity/dto/history/HistoryValueCreateDTO.java index fe85e333..2a6b8f75 100644 --- a/orion-ops-module-infra/orion-ops-module-infra-provider/src/main/java/com/orion/ops/module/infra/entity/dto/history/HistoryValueCreateDTO.java +++ b/orion-ops-module-infra/orion-ops-module-infra-provider/src/main/java/com/orion/ops/module/infra/entity/dto/history/HistoryValueCreateDTO.java @@ -8,7 +8,6 @@ import lombok.NoArgsConstructor; import javax.validation.constraints.NotBlank; import javax.validation.constraints.NotNull; -import javax.validation.constraints.Size; import java.io.Serializable; /** diff --git a/orion-ops-module-infra/orion-ops-module-infra-provider/src/main/java/com/orion/ops/module/infra/enums/DataGroupTypeEnum.java b/orion-ops-module-infra/orion-ops-module-infra-provider/src/main/java/com/orion/ops/module/infra/enums/DataGroupTypeEnum.java new file mode 100644 index 00000000..f3097ede --- /dev/null +++ b/orion-ops-module-infra/orion-ops-module-infra-provider/src/main/java/com/orion/ops/module/infra/enums/DataGroupTypeEnum.java @@ -0,0 +1,31 @@ +package com.orion.ops.module.infra.enums; + +/** + * 数据分组类型 + * + * @author Jiahang Li + * @version 1.0.0 + * @since 2023/11/8 18:57 + */ +public enum DataGroupTypeEnum { + + /** + * 主机 + */ + HOST, + + ; + + public static DataGroupTypeEnum of(String type) { + if (type == null) { + return null; + } + for (DataGroupTypeEnum value : values()) { + if (value.name().equals(type)) { + return value; + } + } + return null; + } + +} diff --git a/orion-ops-module-infra/orion-ops-module-infra-provider/src/main/java/com/orion/ops/module/infra/enums/TagTypeEnum.java b/orion-ops-module-infra/orion-ops-module-infra-provider/src/main/java/com/orion/ops/module/infra/enums/TagTypeEnum.java index ba718f53..fd709969 100644 --- a/orion-ops-module-infra/orion-ops-module-infra-provider/src/main/java/com/orion/ops/module/infra/enums/TagTypeEnum.java +++ b/orion-ops-module-infra/orion-ops-module-infra-provider/src/main/java/com/orion/ops/module/infra/enums/TagTypeEnum.java @@ -16,4 +16,16 @@ public enum TagTypeEnum { ; + public static TagTypeEnum of(String type) { + if (type == null) { + return null; + } + for (TagTypeEnum value : values()) { + if (value.name().equals(type)) { + return value; + } + } + return null; + } + } diff --git a/orion-ops-module-infra/orion-ops-module-infra-service/src/main/java/com/orion/ops/module/infra/api/impl/DataGroupApiImpl.java b/orion-ops-module-infra/orion-ops-module-infra-service/src/main/java/com/orion/ops/module/infra/api/impl/DataGroupApiImpl.java index a57a83c9..736d7e05 100644 --- a/orion-ops-module-infra/orion-ops-module-infra-service/src/main/java/com/orion/ops/module/infra/api/impl/DataGroupApiImpl.java +++ b/orion-ops-module-infra/orion-ops-module-infra-service/src/main/java/com/orion/ops/module/infra/api/impl/DataGroupApiImpl.java @@ -1,176 +1,66 @@ -// package com.orion.ops.module.infra.api.impl; -// -// import com.alibaba.fastjson.JSON; -// import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; -// import com.orion.lang.utils.collect.Lists; -// import com.orion.ops.framework.common.constant.ErrorMessage; -// import com.orion.ops.framework.common.utils.Valid; -// import com.orion.ops.module.infra.entity.vo.*; -// import com.orion.ops.module.infra.entity.request.data.*; -// import com.orion.ops.module.infra.convert.*; -// import com.orion.ops.module.infra.entity.dto.*; -// import com.orion.ops.module.infra.define.cache.*; -// import com.orion.ops.module.infra.define.operator.*; -// import com.orion.ops.module.infra.api.*; -// import com.orion.ops.module.infra.api.impl.*; -// import com.orion.ops.module.infra.entity.dto.data.*; -// import com.orion.ops.module.infra.convert.*; -// import com.orion.ops.module.infra.entity.domain.DataGroupDO; -// import com.orion.ops.module.infra.dao.DataGroupDAO; -// import com.orion.ops.module.infra.service.DataGroupService; -// import lombok.extern.slf4j.Slf4j; -// import org.springframework.stereotype.Service; -// -// import javax.annotation.Resource; -// import java.util.ArrayList; -// import java.util.List; -// import java.util.stream.Collectors; -// -// /** -// * 数据分组 对外服务实现类 -// * -// * @author Jiahang Li -// * @version 1.0.0 -// * @since 2023-11-7 18:44 -// */ -// @Slf4j -// @Service -// public class DataGroupApiImpl implements DataGroupApi { -// -// @Resource -// private DataGroupService dataGroupService; -// -// @Resource -// private DataGroupDAO dataGroupDAO; -// -// @Override -// public Long createDataGroup(DataGroupCreateDTO dto) { -// log.info("DataGroupApi.createDataGroup dto: {}", JSON.toJSONString(dto)); -// Valid.valid(dto); -// // 转换 -// DataGroupCreateRequest request = DataGroupProviderConvert.MAPPER.toRequest(dto); -// // 创建 -// return dataGroupService.createDataGroup(request); -// } -// -// @Override -// public Integer updateDataGroupById(DataGroupUpdateDTO dto) { -// log.info("DataGroupApi.updateDataGroupById dto: {}", JSON.toJSONString(dto)); -// Valid.valid(dto); -// // 转换 -// DataGroupUpdateRequest request = DataGroupProviderConvert.MAPPER.toRequest(dto); -// // 修改 -// return dataGroupService.updateDataGroupById(request); -// } -// -// @Override -// public Integer updateDataGroup(DataGroupQueryDTO query, DataGroupUpdateDTO update) { -// log.info("DataGroupApi.updateDataGroup query: {}, update: {}", JSON.toJSONString(query), JSON.toJSONString(update)); -// Valid.valid(query); -// Valid.valid(update); -// // 更新 -// int effect = dataGroupService.updateDataGroup(DataGroupProviderConvert.MAPPER.toRequest(query), -// DataGroupProviderConvert.MAPPER.toRequest(update)); -// log.info("DataGroupApi.updateDataGroup effect: {}", effect); -// return effect; -// } -// -// @Override -// public DataGroupDTO getDataGroupById(Long id) { -// log.info("DataGroupApi.getDataGroupById id: {}", id); -// Valid.notNull(id, ErrorMessage.ID_MISSING); -// // 修改 -// DataGroupDO record = dataGroupDAO.selectById(id); -// if (record == null) { -// return null; -// } -// // 转换 -// return DataGroupProviderConvert.MAPPER.to(record); -// } -// -// @Override -// public List getDataGroupByIdList(List idList) { -// log.info("DataGroupApi.getDataGroupByIdList idList: {}", idList); -// if (Lists.isEmpty(idList)) { -// return new ArrayList<>(); -// } -// // 查询 -// List rows = dataGroupDAO.selectBatchIds(idList); -// // 转换 -// return DataGroupProviderConvert.MAPPER.toList(rows); -// } -// -// @Override -// public List getDataGroupList(DataGroupQueryDTO dto) { -// log.info("DataGroupApi.getDataGroupList dto: {}", JSON.toJSONString(dto)); -// Valid.valid(dto); -// // 条件 -// LambdaQueryWrapper wrapper = this.buildQueryWrapper(dto); -// // 查询 -// return dataGroupDAO.of(wrapper).list(DataGroupProviderConvert.MAPPER::to); -// } -// -// @Override -// public List getDataGroupListByCache() { -// return dataGroupService.getDataGroupListByCache() -// .stream() -// .map(DataGroupProviderConvert.MAPPER::to) -// .collect(Collectors.toList()); -// } -// -// @Override -// public Long getDataGroupCount(DataGroupQueryDTO dto) { -// log.info("DataGroupApi.getDataGroupCount dto: {}", JSON.toJSONString(dto)); -// Valid.valid(dto); -// // 条件 -// LambdaQueryWrapper wrapper = this.buildQueryWrapper(dto); -// // 查询 -// return dataGroupDAO.selectCount(wrapper); -// } -// -// @Override -// public Integer deleteDataGroupById(Long id) { -// log.info("DataGroupApi.deleteDataGroupById id: {}", id); -// Valid.notNull(id, ErrorMessage.ID_MISSING); -// // 删除 -// Integer effect = dataGroupService.deleteDataGroupById(id); -// log.info("DataGroupApi.deleteDataGroupById id: {}, effect: {}", id, effect); -// return effect; -// } -// -// @Override -// public Integer deleteDataGroupByIdList(List idList) { -// log.info("DataGroupApi.deleteDataGroupByIdList idList: {}", idList); -// Valid.notEmpty(idList, ErrorMessage.ID_MISSING); -// // 删除 -// Integer effect = dataGroupService.deleteDataGroupByIdList(idList); -// log.info("DataGroupApi.deleteDataGroupByIdList effect: {}", effect); -// return effect; -// } -// -// @Override -// public Integer deleteDataGroup(DataGroupQueryDTO dto) { -// log.info("DataGroupApi.deleteDataGroup dto: {}", JSON.toJSONString(dto)); -// Valid.valid(dto); -// // 删除 -// Integer effect = dataGroupService.deleteDataGroup(DataGroupProviderConvert.MAPPER.toRequest(dto)); -// log.info("DataGroupApi.deleteDataGroup effect: {}", effect); -// return effect; -// } -// -// /** -// * 构建查询 wrapper -// * -// * @param dto dto -// * @return wrapper -// */ -// private LambdaQueryWrapper buildQueryWrapper(DataGroupQueryDTO dto) { -// return dataGroupDAO.wrapper() -// .eq(DataGroupDO::getId, dto.getId()) -// .eq(DataGroupDO::getParentId, dto.getParentId()) -// .eq(DataGroupDO::getName, dto.getName()) -// .eq(DataGroupDO::getType, dto.getType()) -// .eq(DataGroupDO::getSort, dto.getSort()); -// } -// -// } +package com.orion.ops.module.infra.api.impl; + +import com.orion.ops.framework.common.utils.Valid; +import com.orion.ops.module.infra.api.DataGroupApi; +import com.orion.ops.module.infra.convert.DataGroupProviderConvert; +import com.orion.ops.module.infra.entity.dto.DataGroupCacheDTO; +import com.orion.ops.module.infra.entity.dto.data.DataGroupCreateDTO; +import com.orion.ops.module.infra.entity.dto.data.DataGroupDTO; +import com.orion.ops.module.infra.entity.dto.data.DataGroupUpdateDTO; +import com.orion.ops.module.infra.entity.request.data.DataGroupCreateRequest; +import com.orion.ops.module.infra.entity.request.data.DataGroupUpdateRequest; +import com.orion.ops.module.infra.enums.DataGroupTypeEnum; +import com.orion.ops.module.infra.service.DataGroupService; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import java.util.List; + +/** + * 数据分组 对外服务实现类 + * + * @author Jiahang Li + * @version 1.0.0 + * @since 2023-11-7 18:44 + */ +@Slf4j +@Service +public class DataGroupApiImpl implements DataGroupApi { + + @Resource + private DataGroupService dataGroupService; + + @Override + public Long createDataGroup(DataGroupTypeEnum type, DataGroupCreateDTO dto) { + Valid.valid(dto); + DataGroupCreateRequest request = DataGroupProviderConvert.MAPPER.toRequest(dto); + request.setType(type.name()); + return dataGroupService.createDataGroup(request); + } + + @Override + public Integer renameDataGroup(DataGroupUpdateDTO dto) { + Valid.valid(dto); + DataGroupUpdateRequest request = DataGroupProviderConvert.MAPPER.toRequest(dto); + return dataGroupService.renameDataGroup(request); + } + + @Override + public List getDataGroupList(DataGroupTypeEnum type) { + List rows = dataGroupService.getDataGroupListByCache(type.name()); + return DataGroupProviderConvert.MAPPER.toList(rows); + } + + @Override + public List getDataGroupTree(DataGroupTypeEnum type) { + List rows = dataGroupService.getDataGroupTreeByCache(type.name()); + return DataGroupProviderConvert.MAPPER.toList(rows); + } + + @Override + public Integer deleteDataGroupById(Long id) { + return dataGroupService.deleteDataGroupById(id); + } + +} diff --git a/orion-ops-module-infra/orion-ops-module-infra-service/src/main/java/com/orion/ops/module/infra/api/impl/DataGroupRelApiImpl.java b/orion-ops-module-infra/orion-ops-module-infra-service/src/main/java/com/orion/ops/module/infra/api/impl/DataGroupRelApiImpl.java index b7299a43..e81fb8f7 100644 --- a/orion-ops-module-infra/orion-ops-module-infra-service/src/main/java/com/orion/ops/module/infra/api/impl/DataGroupRelApiImpl.java +++ b/orion-ops-module-infra/orion-ops-module-infra-service/src/main/java/com/orion/ops/module/infra/api/impl/DataGroupRelApiImpl.java @@ -1,176 +1,81 @@ -// package com.orion.ops.module.infra.api.impl; -// -// import com.alibaba.fastjson.JSON; -// import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; -// import com.orion.lang.utils.collect.Lists; -// import com.orion.ops.framework.common.constant.ErrorMessage; -// import com.orion.ops.framework.common.utils.Valid; -// import com.orion.ops.module.infra.entity.vo.*; -// import com.orion.ops.module.infra.entity.request.data.*; -// import com.orion.ops.module.infra.convert.*; -// import com.orion.ops.module.infra.entity.dto.*; -// import com.orion.ops.module.infra.define.cache.*; -// import com.orion.ops.module.infra.define.operator.*; -// import com.orion.ops.module.infra.api.*; -// import com.orion.ops.module.infra.api.impl.*; -// import com.orion.ops.module.infra.entity.dto.data.*; -// import com.orion.ops.module.infra.convert.*; -// import com.orion.ops.module.infra.entity.domain.DataGroupRelDO; -// import com.orion.ops.module.infra.dao.DataGroupRelDAO; -// import com.orion.ops.module.infra.service.DataGroupRelService; -// import lombok.extern.slf4j.Slf4j; -// import org.springframework.stereotype.Service; -// -// import javax.annotation.Resource; -// import java.util.ArrayList; -// import java.util.List; -// import java.util.stream.Collectors; -// -// /** -// * 数据分组关联 对外服务实现类 -// * -// * @author Jiahang Li -// * @version 1.0.0 -// * @since 2023-11-7 18:44 -// */ -// @Slf4j -// @Service -// public class DataGroupRelApiImpl implements DataGroupRelApi { -// -// @Resource -// private DataGroupRelService dataGroupRelService; -// -// @Resource -// private DataGroupRelDAO dataGroupRelDAO; -// -// @Override -// public Long createDataGroupRel(DataGroupRelCreateDTO dto) { -// log.info("DataGroupRelApi.createDataGroupRel dto: {}", JSON.toJSONString(dto)); -// Valid.valid(dto); -// // 转换 -// DataGroupRelCreateRequest request = DataGroupRelProviderConvert.MAPPER.toRequest(dto); -// // 创建 -// return dataGroupRelService.createDataGroupRel(request); -// } -// -// @Override -// public Integer updateDataGroupRelById(DataGroupRelUpdateDTO dto) { -// log.info("DataGroupRelApi.updateDataGroupRelById dto: {}", JSON.toJSONString(dto)); -// Valid.valid(dto); -// // 转换 -// DataGroupRelUpdateRequest request = DataGroupRelProviderConvert.MAPPER.toRequest(dto); -// // 修改 -// return dataGroupRelService.updateDataGroupRelById(request); -// } -// -// @Override -// public Integer updateDataGroupRel(DataGroupRelQueryDTO query, DataGroupRelUpdateDTO update) { -// log.info("DataGroupRelApi.updateDataGroupRel query: {}, update: {}", JSON.toJSONString(query), JSON.toJSONString(update)); -// Valid.valid(query); -// Valid.valid(update); -// // 更新 -// int effect = dataGroupRelService.updateDataGroupRel(DataGroupRelProviderConvert.MAPPER.toRequest(query), -// DataGroupRelProviderConvert.MAPPER.toRequest(update)); -// log.info("DataGroupRelApi.updateDataGroupRel effect: {}", effect); -// return effect; -// } -// -// @Override -// public DataGroupRelDTO getDataGroupRelById(Long id) { -// log.info("DataGroupRelApi.getDataGroupRelById id: {}", id); -// Valid.notNull(id, ErrorMessage.ID_MISSING); -// // 修改 -// DataGroupRelDO record = dataGroupRelDAO.selectById(id); -// if (record == null) { -// return null; -// } -// // 转换 -// return DataGroupRelProviderConvert.MAPPER.to(record); -// } -// -// @Override -// public List getDataGroupRelByIdList(List idList) { -// log.info("DataGroupRelApi.getDataGroupRelByIdList idList: {}", idList); -// if (Lists.isEmpty(idList)) { -// return new ArrayList<>(); -// } -// // 查询 -// List rows = dataGroupRelDAO.selectBatchIds(idList); -// // 转换 -// return DataGroupRelProviderConvert.MAPPER.toList(rows); -// } -// -// @Override -// public List getDataGroupRelList(DataGroupRelQueryDTO dto) { -// log.info("DataGroupRelApi.getDataGroupRelList dto: {}", JSON.toJSONString(dto)); -// Valid.valid(dto); -// // 条件 -// LambdaQueryWrapper wrapper = this.buildQueryWrapper(dto); -// // 查询 -// return dataGroupRelDAO.of(wrapper).list(DataGroupRelProviderConvert.MAPPER::to); -// } -// -// @Override -// public List getDataGroupRelListByCache() { -// return dataGroupRelService.getDataGroupRelListByCache() -// .stream() -// .map(DataGroupRelProviderConvert.MAPPER::to) -// .collect(Collectors.toList()); -// } -// -// @Override -// public Long getDataGroupRelCount(DataGroupRelQueryDTO dto) { -// log.info("DataGroupRelApi.getDataGroupRelCount dto: {}", JSON.toJSONString(dto)); -// Valid.valid(dto); -// // 条件 -// LambdaQueryWrapper wrapper = this.buildQueryWrapper(dto); -// // 查询 -// return dataGroupRelDAO.selectCount(wrapper); -// } -// -// @Override -// public Integer deleteDataGroupRelById(Long id) { -// log.info("DataGroupRelApi.deleteDataGroupRelById id: {}", id); -// Valid.notNull(id, ErrorMessage.ID_MISSING); -// // 删除 -// Integer effect = dataGroupRelService.deleteDataGroupRelById(id); -// log.info("DataGroupRelApi.deleteDataGroupRelById id: {}, effect: {}", id, effect); -// return effect; -// } -// -// @Override -// public Integer deleteDataGroupRelByIdList(List idList) { -// log.info("DataGroupRelApi.deleteDataGroupRelByIdList idList: {}", idList); -// Valid.notEmpty(idList, ErrorMessage.ID_MISSING); -// // 删除 -// Integer effect = dataGroupRelService.deleteDataGroupRelByIdList(idList); -// log.info("DataGroupRelApi.deleteDataGroupRelByIdList effect: {}", effect); -// return effect; -// } -// -// @Override -// public Integer deleteDataGroupRel(DataGroupRelQueryDTO dto) { -// log.info("DataGroupRelApi.deleteDataGroupRel dto: {}", JSON.toJSONString(dto)); -// Valid.valid(dto); -// // 删除 -// Integer effect = dataGroupRelService.deleteDataGroupRel(DataGroupRelProviderConvert.MAPPER.toRequest(dto)); -// log.info("DataGroupRelApi.deleteDataGroupRel effect: {}", effect); -// return effect; -// } -// -// /** -// * 构建查询 wrapper -// * -// * @param dto dto -// * @return wrapper -// */ -// private LambdaQueryWrapper buildQueryWrapper(DataGroupRelQueryDTO dto) { -// return dataGroupRelDAO.wrapper() -// .eq(DataGroupRelDO::getId, dto.getId()) -// .eq(DataGroupRelDO::getGroupId, dto.getGroupId()) -// .eq(DataGroupRelDO::getRelId, dto.getRelId()) -// .eq(DataGroupRelDO::getType, dto.getType()) -// .eq(DataGroupRelDO::getSort, dto.getSort()); -// } -// -// } +package com.orion.ops.module.infra.api.impl; + +import com.orion.ops.framework.common.utils.Valid; +import com.orion.ops.module.infra.api.DataGroupRelApi; +import com.orion.ops.module.infra.convert.DataGroupRelProviderConvert; +import com.orion.ops.module.infra.entity.dto.DataGroupRelCacheDTO; +import com.orion.ops.module.infra.entity.dto.data.DataGroupRelCreateDTO; +import com.orion.ops.module.infra.entity.request.data.DataGroupRelCreateRequest; +import com.orion.ops.module.infra.enums.DataGroupTypeEnum; +import com.orion.ops.module.infra.service.DataGroupRelService; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import java.util.List; +import java.util.Map; +import java.util.Set; +import java.util.stream.Collectors; + +/** + * 数据分组关联 对外服务实现类 + * + * @author Jiahang Li + * @version 1.0.0 + * @since 2023-11-7 18:44 + */ +@Slf4j +@Service +public class DataGroupRelApiImpl implements DataGroupRelApi { + + @Resource + private DataGroupRelService dataGroupRelService; + + @Override + public void addGroupRel(DataGroupRelCreateDTO dto) { + Valid.valid(dto); + DataGroupRelCreateRequest request = DataGroupRelProviderConvert.MAPPER.toRequest(dto); + dataGroupRelService.addGroupRel(request); + } + + @Override + public void addGroupRel(List list) { + Valid.valid(list); + List rows = DataGroupRelProviderConvert.MAPPER.toList(list); + dataGroupRelService.addGroupRel(rows); + } + + @Override + public Map> getGroupRelList(DataGroupTypeEnum type) { + List rows = dataGroupRelService.getGroupRelListByCache(type.name()); + return rows.stream().collect( + Collectors.groupingBy( + DataGroupRelCacheDTO::getGroupId, + Collectors.mapping(DataGroupRelCacheDTO::getRelId, Collectors.toSet()) + )); + } + + @Override + public Set getGroupRelList(DataGroupTypeEnum type, Long groupId) { + List rows = dataGroupRelService.getGroupRelListByCache(type.name(), groupId); + return rows.stream() + .map(DataGroupRelCacheDTO::getRelId) + .collect(Collectors.toSet()); + } + + @Override + public Integer deleteByRelId(DataGroupTypeEnum type, Long relId) { + return dataGroupRelService.deleteByRelId(type.name(), relId); + } + + @Override + public Integer deleteByRelIdList(DataGroupTypeEnum type, List relIdList) { + return dataGroupRelService.deleteByRelIdList(type.name(), relIdList); + } + + @Override + public Integer deleteByGroupIdList(DataGroupTypeEnum type, List groupIdList) { + return dataGroupRelService.deleteByGroupIdList(type.name(), groupIdList); + } + +} diff --git a/orion-ops-module-infra/orion-ops-module-infra-service/src/main/java/com/orion/ops/module/infra/convert/DataGroupProviderConvert.java b/orion-ops-module-infra/orion-ops-module-infra-service/src/main/java/com/orion/ops/module/infra/convert/DataGroupProviderConvert.java index 4604d898..e426387b 100644 --- a/orion-ops-module-infra/orion-ops-module-infra-service/src/main/java/com/orion/ops/module/infra/convert/DataGroupProviderConvert.java +++ b/orion-ops-module-infra/orion-ops-module-infra-service/src/main/java/com/orion/ops/module/infra/convert/DataGroupProviderConvert.java @@ -1,13 +1,12 @@ package com.orion.ops.module.infra.convert; -import com.orion.ops.module.infra.entity.domain.*; -import com.orion.ops.module.infra.entity.vo.*; -import com.orion.ops.module.infra.entity.request.data.*; -import com.orion.ops.module.infra.convert.*; -import com.orion.ops.module.infra.entity.dto.*; -import com.orion.ops.module.infra.define.cache.*; -import com.orion.ops.module.infra.define.operator.*; -import com.orion.ops.module.infra.entity.dto.data.*; +import com.orion.ops.module.infra.entity.domain.DataGroupDO; +import com.orion.ops.module.infra.entity.dto.DataGroupCacheDTO; +import com.orion.ops.module.infra.entity.dto.data.DataGroupCreateDTO; +import com.orion.ops.module.infra.entity.dto.data.DataGroupDTO; +import com.orion.ops.module.infra.entity.dto.data.DataGroupUpdateDTO; +import com.orion.ops.module.infra.entity.request.data.DataGroupCreateRequest; +import com.orion.ops.module.infra.entity.request.data.DataGroupUpdateRequest; import org.mapstruct.Mapper; import org.mapstruct.factory.Mappers; @@ -29,14 +28,12 @@ public interface DataGroupProviderConvert { DataGroupDTO to(DataGroupDO domain); - DataGroupDO to(DataGroupQueryDTO domain); - DataGroupDO to(DataGroupUpdateDTO update); DataGroupCreateRequest toRequest(DataGroupCreateDTO request); DataGroupUpdateRequest toRequest(DataGroupUpdateDTO request); - List toList(List list); + List toList(List list); } diff --git a/orion-ops-module-infra/orion-ops-module-infra-service/src/main/java/com/orion/ops/module/infra/convert/DataGroupRelProviderConvert.java b/orion-ops-module-infra/orion-ops-module-infra-service/src/main/java/com/orion/ops/module/infra/convert/DataGroupRelProviderConvert.java index b97aa7f7..a83a0cd2 100644 --- a/orion-ops-module-infra/orion-ops-module-infra-service/src/main/java/com/orion/ops/module/infra/convert/DataGroupRelProviderConvert.java +++ b/orion-ops-module-infra/orion-ops-module-infra-service/src/main/java/com/orion/ops/module/infra/convert/DataGroupRelProviderConvert.java @@ -1,9 +1,6 @@ package com.orion.ops.module.infra.convert; -import com.orion.ops.module.infra.entity.domain.DataGroupRelDO; import com.orion.ops.module.infra.entity.dto.data.DataGroupRelCreateDTO; -import com.orion.ops.module.infra.entity.dto.data.DataGroupRelDTO; -import com.orion.ops.module.infra.entity.dto.data.DataGroupRelUpdateDTO; import com.orion.ops.module.infra.entity.request.data.DataGroupRelCreateRequest; import org.mapstruct.Mapper; import org.mapstruct.factory.Mappers; @@ -22,14 +19,8 @@ public interface DataGroupRelProviderConvert { DataGroupRelProviderConvert MAPPER = Mappers.getMapper(DataGroupRelProviderConvert.class); - DataGroupRelDO to(DataGroupRelDTO dto); - - DataGroupRelDTO to(DataGroupRelDO domain); - - DataGroupRelDO to(DataGroupRelUpdateDTO update); - DataGroupRelCreateRequest toRequest(DataGroupRelCreateDTO request); - List toList(List list); + List toList(List list); } diff --git a/orion-ops-module-infra/orion-ops-module-infra-service/src/main/java/com/orion/ops/module/infra/dao/DataGroupDAO.java b/orion-ops-module-infra/orion-ops-module-infra-service/src/main/java/com/orion/ops/module/infra/dao/DataGroupDAO.java index a0c93218..d45af183 100644 --- a/orion-ops-module-infra/orion-ops-module-infra-service/src/main/java/com/orion/ops/module/infra/dao/DataGroupDAO.java +++ b/orion-ops-module-infra/orion-ops-module-infra-service/src/main/java/com/orion/ops/module/infra/dao/DataGroupDAO.java @@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.orion.ops.framework.mybatis.core.mapper.IMapper; import com.orion.ops.module.infra.entity.domain.DataGroupDO; import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; import java.util.List; @@ -17,6 +18,15 @@ import java.util.List; @Mapper public interface DataGroupDAO extends IMapper { + /** + * 查询最大排序 + * + * @param parentId parentId + * @param type type + * @return max(sort) + */ + Integer selectMaxSort(@Param("parentId") Long parentId, @Param("type") String type); + /** * 通过 parentId 查询 * diff --git a/orion-ops-module-infra/orion-ops-module-infra-service/src/main/java/com/orion/ops/module/infra/define/cache/DataGroupCacheKeyDefine.java b/orion-ops-module-infra/orion-ops-module-infra-service/src/main/java/com/orion/ops/module/infra/define/cache/DataGroupCacheKeyDefine.java index 0ee99964..57bad4a6 100644 --- a/orion-ops-module-infra/orion-ops-module-infra-service/src/main/java/com/orion/ops/module/infra/define/cache/DataGroupCacheKeyDefine.java +++ b/orion-ops-module-infra/orion-ops-module-infra-service/src/main/java/com/orion/ops/module/infra/define/cache/DataGroupCacheKeyDefine.java @@ -16,9 +16,16 @@ import java.util.concurrent.TimeUnit; */ public interface DataGroupCacheKeyDefine { - CacheKeyDefine DATA_GROUP = new CacheKeyBuilder() - .key("data:group:{}") - .desc("数据分组 ${type}") + CacheKeyDefine DATA_GROUP_LIST = new CacheKeyBuilder() + .key("data:group-list:{}") + .desc("数据分组列表结构 ${type}") + .type(DataGroupCacheDTO.class) + .timeout(1, TimeUnit.DAYS) + .build(); + + CacheKeyDefine DATA_GROUP_TREE = new CacheKeyBuilder() + .key("data:group-tree:{}") + .desc("数据分组树结构 ${type}") .type(DataGroupCacheDTO.class) .timeout(1, TimeUnit.DAYS) .build(); diff --git a/orion-ops-module-infra/orion-ops-module-infra-service/src/main/java/com/orion/ops/module/infra/entity/domain/DataGroupRelDO.java b/orion-ops-module-infra/orion-ops-module-infra-service/src/main/java/com/orion/ops/module/infra/entity/domain/DataGroupRelDO.java index dff7e46e..462d5cc3 100644 --- a/orion-ops-module-infra/orion-ops-module-infra-service/src/main/java/com/orion/ops/module/infra/entity/domain/DataGroupRelDO.java +++ b/orion-ops-module-infra/orion-ops-module-infra-service/src/main/java/com/orion/ops/module/infra/entity/domain/DataGroupRelDO.java @@ -42,8 +42,4 @@ public class DataGroupRelDO extends BaseDO { @TableField("type") private String type; - @Schema(description = "排序") - @TableField("sort") - private Integer sort; - } diff --git a/orion-ops-module-infra/orion-ops-module-infra-service/src/main/java/com/orion/ops/module/infra/entity/dto/DataGroupCacheDTO.java b/orion-ops-module-infra/orion-ops-module-infra-service/src/main/java/com/orion/ops/module/infra/entity/dto/DataGroupCacheDTO.java index ab79b7f1..526d356e 100644 --- a/orion-ops-module-infra/orion-ops-module-infra-service/src/main/java/com/orion/ops/module/infra/entity/dto/DataGroupCacheDTO.java +++ b/orion-ops-module-infra/orion-ops-module-infra-service/src/main/java/com/orion/ops/module/infra/entity/dto/DataGroupCacheDTO.java @@ -7,6 +7,7 @@ import lombok.Data; import lombok.NoArgsConstructor; import java.io.Serializable; +import java.util.List; /** * 数据分组 缓存对象 @@ -33,10 +34,10 @@ public class DataGroupCacheDTO implements Serializable { @Schema(description = "组名称") private String name; - @Schema(description = "组类型") - private String type; - @Schema(description = "排序") private Integer sort; + @Schema(description = "子节点") + private List children; + } diff --git a/orion-ops-module-infra/orion-ops-module-infra-service/src/main/java/com/orion/ops/module/infra/entity/dto/DataGroupRelCacheDTO.java b/orion-ops-module-infra/orion-ops-module-infra-service/src/main/java/com/orion/ops/module/infra/entity/dto/DataGroupRelCacheDTO.java index c9d650e7..09a1640a 100644 --- a/orion-ops-module-infra/orion-ops-module-infra-service/src/main/java/com/orion/ops/module/infra/entity/dto/DataGroupRelCacheDTO.java +++ b/orion-ops-module-infra/orion-ops-module-infra-service/src/main/java/com/orion/ops/module/infra/entity/dto/DataGroupRelCacheDTO.java @@ -33,7 +33,4 @@ public class DataGroupRelCacheDTO implements Serializable { @Schema(description = "引用id") private Long relId; - @Schema(description = "排序") - private Integer sort; - } diff --git a/orion-ops-module-infra/orion-ops-module-infra-service/src/main/java/com/orion/ops/module/infra/entity/request/data/DataGroupCreateRequest.java b/orion-ops-module-infra/orion-ops-module-infra-service/src/main/java/com/orion/ops/module/infra/entity/request/data/DataGroupCreateRequest.java index 5846df56..aba4bd6e 100644 --- a/orion-ops-module-infra/orion-ops-module-infra-service/src/main/java/com/orion/ops/module/infra/entity/request/data/DataGroupCreateRequest.java +++ b/orion-ops-module-infra/orion-ops-module-infra-service/src/main/java/com/orion/ops/module/infra/entity/request/data/DataGroupCreateRequest.java @@ -39,8 +39,4 @@ public class DataGroupCreateRequest implements Serializable { @Schema(description = "组类型") private String type; - @NotNull - @Schema(description = "排序") - private Integer sort; - } diff --git a/orion-ops-module-infra/orion-ops-module-infra-service/src/main/java/com/orion/ops/module/infra/entity/request/data/DataGroupRelCreateRequest.java b/orion-ops-module-infra/orion-ops-module-infra-service/src/main/java/com/orion/ops/module/infra/entity/request/data/DataGroupRelCreateRequest.java index 1d6664aa..2d478453 100644 --- a/orion-ops-module-infra/orion-ops-module-infra-service/src/main/java/com/orion/ops/module/infra/entity/request/data/DataGroupRelCreateRequest.java +++ b/orion-ops-module-infra/orion-ops-module-infra-service/src/main/java/com/orion/ops/module/infra/entity/request/data/DataGroupRelCreateRequest.java @@ -31,7 +31,4 @@ public class DataGroupRelCreateRequest implements Serializable { @Schema(description = "引用id") private Long relId; - @Schema(description = "排序") - private Integer sort; - } diff --git a/orion-ops-module-infra/orion-ops-module-infra-service/src/main/java/com/orion/ops/module/infra/enums/DictValueTypeEnum.java b/orion-ops-module-infra/orion-ops-module-infra-service/src/main/java/com/orion/ops/module/infra/enums/DictValueTypeEnum.java index 5667b5b6..b8868120 100644 --- a/orion-ops-module-infra/orion-ops-module-infra-service/src/main/java/com/orion/ops/module/infra/enums/DictValueTypeEnum.java +++ b/orion-ops-module-infra/orion-ops-module-infra-service/src/main/java/com/orion/ops/module/infra/enums/DictValueTypeEnum.java @@ -1,7 +1,6 @@ package com.orion.ops.module.infra.enums; import com.orion.lang.utils.convert.Converts; -import lombok.Getter; import java.math.BigDecimal; @@ -12,7 +11,6 @@ import java.math.BigDecimal; * @version 1.0.0 * @since 2023/10/17 11:18 */ -@Getter public enum DictValueTypeEnum { /** diff --git a/orion-ops-module-infra/orion-ops-module-infra-service/src/main/java/com/orion/ops/module/infra/service/DataGroupService.java b/orion-ops-module-infra/orion-ops-module-infra-service/src/main/java/com/orion/ops/module/infra/service/DataGroupService.java index b8e8b26b..135e77c9 100644 --- a/orion-ops-module-infra/orion-ops-module-infra-service/src/main/java/com/orion/ops/module/infra/service/DataGroupService.java +++ b/orion-ops-module-infra/orion-ops-module-infra-service/src/main/java/com/orion/ops/module/infra/service/DataGroupService.java @@ -27,20 +27,28 @@ public interface DataGroupService { * 重命名分组 * * @param request request - * @return id + * @return effect */ Integer renameDataGroup(DataGroupUpdateRequest request); // FIXME drag /** - * 通过缓存查询数据分组 + * 通过缓存查询数据分组 - 列表 * * @param type type * @return rows */ List getDataGroupListByCache(String type); + /** + * 通过缓存查询数据分组 - 树结构 + * + * @param type type + * @return rows + */ + List getDataGroupTreeByCache(String type); + /** * 删除数据分组 * diff --git a/orion-ops-module-infra/orion-ops-module-infra-service/src/main/java/com/orion/ops/module/infra/service/impl/DataGroupRelServiceImpl.java b/orion-ops-module-infra/orion-ops-module-infra-service/src/main/java/com/orion/ops/module/infra/service/impl/DataGroupRelServiceImpl.java index dc1de099..bd725746 100644 --- a/orion-ops-module-infra/orion-ops-module-infra-service/src/main/java/com/orion/ops/module/infra/service/impl/DataGroupRelServiceImpl.java +++ b/orion-ops-module-infra/orion-ops-module-infra-service/src/main/java/com/orion/ops/module/infra/service/impl/DataGroupRelServiceImpl.java @@ -51,7 +51,6 @@ public class DataGroupRelServiceImpl implements DataGroupRelService { DataGroupRelCreateRequest record = DataGroupRelCreateRequest.builder() .groupId(Valid.notNull(request.getGroupId())) .relId(Valid.notNull(request.getRelId())) - .sort(request.getSort()) .build(); // 插入 SpringHolder.getBean(DataGroupRelService.class) @@ -64,12 +63,6 @@ public class DataGroupRelServiceImpl implements DataGroupRelService { if (Lists.isEmpty(list)) { return; } - // 设置默认排序 - list.forEach(s -> { - if (s.getSort() == null) { - s.setSort(Const.DEFAULT_SORT); - } - }); // 通过 groupId 分组 Map> groupMapping = list.stream() .collect(Collectors.groupingBy(DataGroupRelCreateRequest::getGroupId)); @@ -105,7 +98,6 @@ public class DataGroupRelServiceImpl implements DataGroupRelService { .groupId(k) .type(groupTypeMapping.get(k)) .relId(s.getRelId()) - .sort(s.getSort()) .build())); }); // 插入 diff --git a/orion-ops-module-infra/orion-ops-module-infra-service/src/main/java/com/orion/ops/module/infra/service/impl/DataGroupServiceImpl.java b/orion-ops-module-infra/orion-ops-module-infra-service/src/main/java/com/orion/ops/module/infra/service/impl/DataGroupServiceImpl.java index 8be74dcf..0a9442b7 100644 --- a/orion-ops-module-infra/orion-ops-module-infra-service/src/main/java/com/orion/ops/module/infra/service/impl/DataGroupServiceImpl.java +++ b/orion-ops-module-infra/orion-ops-module-infra-service/src/main/java/com/orion/ops/module/infra/service/impl/DataGroupServiceImpl.java @@ -21,6 +21,7 @@ import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import javax.annotation.Resource; +import java.util.Comparator; import java.util.List; import java.util.stream.Collectors; @@ -48,12 +49,16 @@ public class DataGroupServiceImpl implements DataGroupService { DataGroupDO record = DataGroupConvert.MAPPER.to(request); // 查询数据是否冲突 this.checkDataGroupPresent(record); + // 查询最大排序 + Integer sort = dataGroupDAO.selectMaxSort(request.getParentId(), request.getType()); + record.setSort(sort + Const.DEFAULT_SORT); // 插入 int effect = dataGroupDAO.insert(record); Long id = record.getId(); log.info("DataGroupService-createDataGroup id: {}, effect: {}", id, effect); // 删除缓存 - RedisStrings.delete(DataGroupCacheKeyDefine.DATA_GROUP.format(request.getType())); + RedisStrings.delete(DataGroupCacheKeyDefine.DATA_GROUP_LIST.format(request.getType()), + DataGroupCacheKeyDefine.DATA_GROUP_TREE.format(request.getType())); return id; } @@ -75,15 +80,16 @@ public class DataGroupServiceImpl implements DataGroupService { // 更新 int effect = dataGroupDAO.updateById(updateRecord); // 删除缓存 - RedisStrings.delete(DataGroupCacheKeyDefine.DATA_GROUP.format(record.getType())); + RedisStrings.delete(DataGroupCacheKeyDefine.DATA_GROUP_LIST.format(record.getType()), + DataGroupCacheKeyDefine.DATA_GROUP_TREE.format(record.getType())); return effect; } @Override public List getDataGroupListByCache(String type) { // 查询缓存 - String key = DataGroupCacheKeyDefine.DATA_GROUP.format(type); - List list = RedisStrings.getJsonArray(key, DataGroupCacheKeyDefine.DATA_GROUP); + String key = DataGroupCacheKeyDefine.DATA_GROUP_LIST.format(type); + List list = RedisStrings.getJsonArray(key, DataGroupCacheKeyDefine.DATA_GROUP_LIST); if (list.isEmpty()) { // 查询数据库 list = dataGroupDAO.of() @@ -98,13 +104,66 @@ public class DataGroupServiceImpl implements DataGroupService { .build()); } // 设置缓存 - RedisStrings.setJson(key, DataGroupCacheKeyDefine.DATA_GROUP, list); + RedisStrings.setJson(key, DataGroupCacheKeyDefine.DATA_GROUP_LIST, list); } // 删除默认值 list.removeIf(s -> s.getId().equals(Const.NONE_ID)); return list; } + @Override + public List getDataGroupTreeByCache(String type) { + // 查询缓存 + String key = DataGroupCacheKeyDefine.DATA_GROUP_TREE.format(type); + List treeData = RedisStrings.getJsonArray(key, DataGroupCacheKeyDefine.DATA_GROUP_TREE); + if (treeData.isEmpty()) { + // 查询列表缓存 + List rows = this.getDataGroupListByCache(type); + // 添加默认值 防止穿透 + if (Lists.isEmpty(rows)) { + treeData = Lists.of(DataGroupCacheDTO.builder() + .id(Const.NONE_ID) + .build()); + } else { + // 构建树 + DataGroupCacheDTO rootNode = DataGroupCacheDTO.builder() + .parentId(Const.ROOT_PARENT_ID) + .sort(Const.DEFAULT_SORT) + .build(); + this.buildGroupTree(rootNode, rows); + treeData = rootNode.getChildren(); + } + // 设置缓存 + RedisStrings.setJson(key, DataGroupCacheKeyDefine.DATA_GROUP_LIST, treeData); + } + // 删除默认值 + treeData.removeIf(s -> s.getId().equals(Const.NONE_ID)); + return treeData; + } + + /** + * 构建树 + * + * @param parentNode parentNode + * @param nodes nodes + */ + private void buildGroupTree(DataGroupCacheDTO parentNode, + List nodes) { + // 获取子节点 + List childrenNodes = nodes.stream() + .filter(s -> parentNode.getParentId().equals(s.getParentId())) + .sorted(Comparator.comparing(DataGroupCacheDTO::getSort)) + .collect(Collectors.toList()); + if (childrenNodes.isEmpty()) { + return; + } + parentNode.setChildren(childrenNodes); + // 遍历子节点 + for (DataGroupCacheDTO childrenNode : childrenNodes) { + this.buildGroupTree(childrenNode, nodes); + } + } + @Override @Transactional(rollbackFor = Exception.class) public Integer deleteDataGroupById(Long id) { @@ -122,7 +181,8 @@ public class DataGroupServiceImpl implements DataGroupService { dataGroupRelService.deleteByGroupIdList(type, deleteIdList); log.info("DataGroupService-deleteDataGroupById id: {}, effect: {}", id, effect); // 删除缓存 - RedisStrings.delete(DataGroupCacheKeyDefine.DATA_GROUP.format(type)); + RedisStrings.delete(DataGroupCacheKeyDefine.DATA_GROUP_LIST.format(type), + DataGroupCacheKeyDefine.DATA_GROUP_TREE.format(type)); return effect; } diff --git a/orion-ops-module-infra/orion-ops-module-infra-service/src/main/java/com/orion/ops/module/infra/service/impl/SystemMenuServiceImpl.java b/orion-ops-module-infra/orion-ops-module-infra-service/src/main/java/com/orion/ops/module/infra/service/impl/SystemMenuServiceImpl.java index 766cd44a..42ddcc2b 100644 --- a/orion-ops-module-infra/orion-ops-module-infra-service/src/main/java/com/orion/ops/module/infra/service/impl/SystemMenuServiceImpl.java +++ b/orion-ops-module-infra/orion-ops-module-infra-service/src/main/java/com/orion/ops/module/infra/service/impl/SystemMenuServiceImpl.java @@ -295,7 +295,7 @@ public class SystemMenuServiceImpl implements SystemMenuService { // 验证父菜单参数 if (MenuTypeEnum.PARENT_MENU.equals(type)) { // 父菜单创建的 parentId 为 0 - domain.setParentId(Const.ROOT_MENU_ID); + domain.setParentId(Const.ROOT_PARENT_ID); // 验证必填参数 Valid.valid(SystemMenuConvert.MAPPER.toMenuValidate(domain)); return; diff --git a/orion-ops-module-infra/orion-ops-module-infra-service/src/main/resources/mapper/DataGroupMapper.xml b/orion-ops-module-infra/orion-ops-module-infra-service/src/main/resources/mapper/DataGroupMapper.xml index cd4ede03..24e5f7ef 100644 --- a/orion-ops-module-infra/orion-ops-module-infra-service/src/main/resources/mapper/DataGroupMapper.xml +++ b/orion-ops-module-infra/orion-ops-module-infra-service/src/main/resources/mapper/DataGroupMapper.xml @@ -21,4 +21,12 @@ id, parent_id, name, type, sort, create_time, update_time, creator, updater, deleted + + diff --git a/orion-ops-module-infra/orion-ops-module-infra-service/src/main/resources/mapper/DataGroupRelMapper.xml b/orion-ops-module-infra/orion-ops-module-infra-service/src/main/resources/mapper/DataGroupRelMapper.xml index e020ea90..a0666b89 100644 --- a/orion-ops-module-infra/orion-ops-module-infra-service/src/main/resources/mapper/DataGroupRelMapper.xml +++ b/orion-ops-module-infra/orion-ops-module-infra-service/src/main/resources/mapper/DataGroupRelMapper.xml @@ -8,7 +8,6 @@ - @@ -18,7 +17,7 @@ - id, group_id, rel_id, type, sort, create_time, update_time, creator, updater, deleted + id, group_id, rel_id, type, create_time, update_time, creator, updater, deleted