From bbb56d63bf0b7a5dd8e545137c424e74bd1a1904 Mon Sep 17 00:00:00 2001 From: lijiahangmax Date: Mon, 18 Dec 2023 22:25:43 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E6=95=B0=E6=8D=AE=E5=88=AB=E5=90=8D?= =?UTF-8?q?=E6=9C=8D=E5=8A=A1.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../asset/controller/HostController.http | 11 + .../asset/controller/HostController.java | 18 ++ .../request/host/HostAliasUpdateRequest.java | 35 +++ .../asset/service/impl/HostServiceImpl.java | 7 + .../ops/module/infra/api/DataAliasApi.java | 159 +++++------- .../entity/dto/data/DataAliasCreateDTO.java | 50 ---- .../infra/entity/dto/data/DataAliasDTO.java | 53 ---- .../entity/dto/data/DataAliasQueryDTO.java | 47 ---- .../entity/dto/data/DataAliasUpdateDTO.java | 15 +- .../module/infra/enums/DataAliasTypeEnum.java | 31 +++ .../infra/api/impl/DataAliasApiImpl.java | 232 +++++------------- .../convert/DataAliasProviderConvert.java | 37 --- .../ops/module/infra/dao/DataAliasDAO.java | 13 + .../operator/DataAliasOperatorType.java | 34 --- .../request/data/DataAliasUpdateRequest.java | 1 - .../infra/service/DataAliasService.java | 4 +- .../service/impl/DataAliasServiceImpl.java | 48 ++-- .../service/impl/SystemUserServiceImpl.java | 5 + 18 files changed, 284 insertions(+), 516 deletions(-) create mode 100644 orion-ops-module-asset/orion-ops-module-asset-service/src/main/java/com/orion/ops/module/asset/entity/request/host/HostAliasUpdateRequest.java delete mode 100644 orion-ops-module-infra/orion-ops-module-infra-provider/src/main/java/com/orion/ops/module/infra/entity/dto/data/DataAliasCreateDTO.java delete mode 100644 orion-ops-module-infra/orion-ops-module-infra-provider/src/main/java/com/orion/ops/module/infra/entity/dto/data/DataAliasDTO.java delete mode 100644 orion-ops-module-infra/orion-ops-module-infra-provider/src/main/java/com/orion/ops/module/infra/entity/dto/data/DataAliasQueryDTO.java create mode 100644 orion-ops-module-infra/orion-ops-module-infra-provider/src/main/java/com/orion/ops/module/infra/enums/DataAliasTypeEnum.java delete mode 100644 orion-ops-module-infra/orion-ops-module-infra-service/src/main/java/com/orion/ops/module/infra/convert/DataAliasProviderConvert.java delete mode 100644 orion-ops-module-infra/orion-ops-module-infra-service/src/main/java/com/orion/ops/module/infra/define/operator/DataAliasOperatorType.java diff --git a/orion-ops-module-asset/orion-ops-module-asset-service/src/main/java/com/orion/ops/module/asset/controller/HostController.http b/orion-ops-module-asset/orion-ops-module-asset-service/src/main/java/com/orion/ops/module/asset/controller/HostController.http index 3c1b1adb..15d56501 100644 --- a/orion-ops-module-asset/orion-ops-module-asset-service/src/main/java/com/orion/ops/module/asset/controller/HostController.http +++ b/orion-ops-module-asset/orion-ops-module-asset-service/src/main/java/com/orion/ops/module/asset/controller/HostController.http @@ -53,4 +53,15 @@ DELETE {{baseUrl}}/asset/host/delete?id=1 Authorization: {{token}} +### 更新主机别名 +PUT {{baseUrl}}/asset/host/update-alias +Content-Type: application/json +Authorization: {{token}} + +{ + "id": 1, + "name": "alias" +} + + ### diff --git a/orion-ops-module-asset/orion-ops-module-asset-service/src/main/java/com/orion/ops/module/asset/controller/HostController.java b/orion-ops-module-asset/orion-ops-module-asset-service/src/main/java/com/orion/ops/module/asset/controller/HostController.java index 13778313..a5c99de5 100644 --- a/orion-ops-module-asset/orion-ops-module-asset-service/src/main/java/com/orion/ops/module/asset/controller/HostController.java +++ b/orion-ops-module-asset/orion-ops-module-asset-service/src/main/java/com/orion/ops/module/asset/controller/HostController.java @@ -5,6 +5,7 @@ import com.orion.ops.framework.biz.operator.log.core.annotation.OperatorLog; import com.orion.ops.framework.common.validator.group.Page; import com.orion.ops.framework.log.core.annotation.IgnoreLog; import com.orion.ops.framework.log.core.enums.IgnoreLogMode; +import com.orion.ops.framework.security.core.utils.SecurityUtils; import com.orion.ops.framework.web.core.annotation.RestWrapper; import com.orion.ops.module.asset.define.operator.HostOperatorType; import com.orion.ops.module.asset.entity.request.host.*; @@ -12,6 +13,9 @@ import com.orion.ops.module.asset.entity.vo.HostConfigVO; import com.orion.ops.module.asset.entity.vo.HostVO; import com.orion.ops.module.asset.service.HostConfigService; import com.orion.ops.module.asset.service.HostService; +import com.orion.ops.module.infra.api.DataAliasApi; +import com.orion.ops.module.infra.entity.dto.data.DataAliasUpdateDTO; +import com.orion.ops.module.infra.enums.DataAliasTypeEnum; import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.Parameter; import io.swagger.v3.oas.annotations.tags.Tag; @@ -45,6 +49,9 @@ public class HostController { @Resource private HostConfigService hostConfigService; + @Resource + private DataAliasApi dataAliasApi; + @OperatorLog(HostOperatorType.CREATE) @PostMapping("/create") @Operation(summary = "创建主机") @@ -95,6 +102,17 @@ public class HostController { return hostService.deleteHostById(id); } + @PutMapping("/update-alias") + @Operation(summary = "修改主机别名") + public Integer updateHostAlias(@Validated @RequestBody HostAliasUpdateRequest request) { + DataAliasUpdateDTO update = DataAliasUpdateDTO.builder() + .userId(SecurityUtils.getLoginUserId()) + .relId(request.getId()) + .alias(request.getName()) + .build(); + return dataAliasApi.updateDataAlias(update, DataAliasTypeEnum.HOST); + } + @IgnoreLog(IgnoreLogMode.RET) @GetMapping("/get-config") @Operation(summary = "查询主机配置") diff --git a/orion-ops-module-asset/orion-ops-module-asset-service/src/main/java/com/orion/ops/module/asset/entity/request/host/HostAliasUpdateRequest.java b/orion-ops-module-asset/orion-ops-module-asset-service/src/main/java/com/orion/ops/module/asset/entity/request/host/HostAliasUpdateRequest.java new file mode 100644 index 00000000..8a8b8011 --- /dev/null +++ b/orion-ops-module-asset/orion-ops-module-asset-service/src/main/java/com/orion/ops/module/asset/entity/request/host/HostAliasUpdateRequest.java @@ -0,0 +1,35 @@ +package com.orion.ops.module.asset.entity.request.host; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import javax.validation.constraints.NotNull; +import javax.validation.constraints.Size; +import java.io.Serializable; + +/** + * 主机别名 更新请求对象 + * + * @author Jiahang Li + * @version 1.0.0 + * @since 2023-9-13 14:31 + */ +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +@Schema(name = "HostAliasUpdateRequest", description = "主机别名 更新请求对象") +public class HostAliasUpdateRequest implements Serializable { + + @NotNull + @Schema(description = "id") + private Long id; + + @Size(max = 32) + @Schema(description = "别名") + private String name; + +} diff --git a/orion-ops-module-asset/orion-ops-module-asset-service/src/main/java/com/orion/ops/module/asset/service/impl/HostServiceImpl.java b/orion-ops-module-asset/orion-ops-module-asset-service/src/main/java/com/orion/ops/module/asset/service/impl/HostServiceImpl.java index 03ff9f03..b875a1f3 100644 --- a/orion-ops-module-asset/orion-ops-module-asset-service/src/main/java/com/orion/ops/module/asset/service/impl/HostServiceImpl.java +++ b/orion-ops-module-asset/orion-ops-module-asset-service/src/main/java/com/orion/ops/module/asset/service/impl/HostServiceImpl.java @@ -23,11 +23,13 @@ import com.orion.ops.module.asset.entity.request.host.HostUpdateRequest; import com.orion.ops.module.asset.entity.vo.HostVO; import com.orion.ops.module.asset.service.HostConfigService; import com.orion.ops.module.asset.service.HostService; +import com.orion.ops.module.infra.api.DataAliasApi; import com.orion.ops.module.infra.api.DataGroupRelApi; import com.orion.ops.module.infra.api.FavoriteApi; import com.orion.ops.module.infra.api.TagRelApi; import com.orion.ops.module.infra.entity.dto.data.DataGroupRelCreateDTO; import com.orion.ops.module.infra.entity.dto.tag.TagDTO; +import com.orion.ops.module.infra.enums.DataAliasTypeEnum; import com.orion.ops.module.infra.enums.DataGroupTypeEnum; import com.orion.ops.module.infra.enums.FavoriteTypeEnum; import com.orion.ops.module.infra.enums.TagTypeEnum; @@ -71,6 +73,9 @@ public class HostServiceImpl implements HostService { @Resource private DataGroupRelApi dataGroupRelApi; + @Resource + private DataAliasApi dataAliasApi; + @Override public Long createHost(HostCreateRequest request) { log.info("HostService-createHost request: {}", JSON.toJSONString(request)); @@ -213,6 +218,8 @@ public class HostServiceImpl implements HostService { tagRelApi.deleteRelId(TagTypeEnum.HOST, id); // 删除收藏引用 favoriteApi.deleteByRelId(FavoriteTypeEnum.HOST, id); + // 删除主机别名 + dataAliasApi.deleteByRelId(DataAliasTypeEnum.HOST, id); } /** diff --git a/orion-ops-module-infra/orion-ops-module-infra-provider/src/main/java/com/orion/ops/module/infra/api/DataAliasApi.java b/orion-ops-module-infra/orion-ops-module-infra-provider/src/main/java/com/orion/ops/module/infra/api/DataAliasApi.java index e8ffd5a1..bbd3868c 100644 --- a/orion-ops-module-infra/orion-ops-module-infra-provider/src/main/java/com/orion/ops/module/infra/api/DataAliasApi.java +++ b/orion-ops-module-infra/orion-ops-module-infra-provider/src/main/java/com/orion/ops/module/infra/api/DataAliasApi.java @@ -1,95 +1,64 @@ -// package com.orion.ops.module.infra.api; -// -// import com.orion.ops.module.infra.entity.dto.data.*; -// -// import java.util.List; -// -// /** -// * 数据别名 对外服务类 -// * -// * @author Jiahang Li -// * @version 1.0.0 -// * @since 2023-12-18 17:37 -// */ -// public interface DataAliasApi { -// -// /** -// * 创建数据别名 -// * -// * @param dto dto -// * @return id -// */ -// Long createDataAlias(DataAliasCreateDTO dto); -// -// /** -// * 更新数据别名 -// * -// * @param dto dto -// * @return effect -// */ -// Integer updateDataAliasById(DataAliasUpdateDTO dto); -// -// /** -// * 查询数据别名 -// * -// * @param id id -// * @return row -// */ -// DataAliasDTO getDataAliasById(Long id); -// -// /** -// * 批量查询数据别名 -// * -// * @param idList idList -// * @return rows -// */ -// List getDataAliasByIdList(List idList); -// -// /** -// * 查询全部数据别名 -// * -// * @param dto dto -// * @return rows -// */ -// List getDataAliasList(DataAliasQueryDTO dto); -// -// /** -// * 通过缓存查询数据别名 -// * -// * @return rows -// */ -// List getDataAliasListByCache(); -// -// /** -// * 查询数据别名数量 -// * -// * @param dto dto -// * @return count -// */ -// Long getDataAliasCount(DataAliasQueryDTO dto); -// -// /** -// * 删除数据别名 -// * -// * @param id id -// * @return effect -// */ -// Integer deleteDataAliasById(Long id); -// -// /** -// * 批量删除数据别名 -// * -// * @param idList idList -// * @return effect -// */ -// Integer deleteDataAliasByIdList(List idList); -// -// /** -// * 根据条件删除数据别名 -// * -// * @param dto dto -// * @return effect -// */ -// Integer deleteDataAlias(DataAliasQueryDTO dto); -// -// } +package com.orion.ops.module.infra.api; + +import com.orion.ops.module.infra.entity.dto.data.DataAliasUpdateDTO; +import com.orion.ops.module.infra.enums.DataAliasTypeEnum; + +import java.util.Map; +import java.util.concurrent.Future; + +/** + * 数据别名 对外服务类 + * + * @author Jiahang Li + * @version 1.0.0 + * @since 2023-12-18 17:37 + */ +public interface DataAliasApi { + + /** + * 更新数据别名 + * + * @param dto dto + * @param type type + * @return effect + */ + Integer updateDataAlias(DataAliasUpdateDTO dto, DataAliasTypeEnum type); + + /** + * 查询数据别名 + * + * @param userId userId + * @param type type + * @param relId relId + * @return aliasName + */ + String getDataAlias(Long userId, DataAliasTypeEnum type, Long relId); + + /** + * 查询数据别名 + * + * @param userId userId + * @param type type + * @return relId:aliasName + */ + Map getDataAlias(Long userId, DataAliasTypeEnum type); + + /** + * 异步查询数据别名 + * + * @param userId userId + * @param type type + * @return relId:aliasName + */ + Future> getDataAliasAsync(Long userId, DataAliasTypeEnum type); + + /** + * 删除数据别名 + * + * @param type type + * @param relId relId + * @return effect + */ + Integer deleteByRelId(DataAliasTypeEnum type, Long relId); + +} diff --git a/orion-ops-module-infra/orion-ops-module-infra-provider/src/main/java/com/orion/ops/module/infra/entity/dto/data/DataAliasCreateDTO.java b/orion-ops-module-infra/orion-ops-module-infra-provider/src/main/java/com/orion/ops/module/infra/entity/dto/data/DataAliasCreateDTO.java deleted file mode 100644 index 64a7e89c..00000000 --- a/orion-ops-module-infra/orion-ops-module-infra-provider/src/main/java/com/orion/ops/module/infra/entity/dto/data/DataAliasCreateDTO.java +++ /dev/null @@ -1,50 +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-12-18 17:37 - */ -@Data -@Builder -@NoArgsConstructor -@AllArgsConstructor -@Schema(name = "DataAliasCreateDTO", description = "数据别名 创建请求业务对象") -public class DataAliasCreateDTO implements Serializable { - - private static final long serialVersionUID = 1L; - - @NotNull - @Schema(description = "用户id") - private Long userId; - - @NotNull - @Schema(description = "数据id") - private Long relId; - - @NotBlank - @Size(max = 32) - @Schema(description = "数据类型") - private String type; - - @NotBlank - @Size(max = 32) - @Schema(description = "别名") - private String alias; - -} diff --git a/orion-ops-module-infra/orion-ops-module-infra-provider/src/main/java/com/orion/ops/module/infra/entity/dto/data/DataAliasDTO.java b/orion-ops-module-infra/orion-ops-module-infra-provider/src/main/java/com/orion/ops/module/infra/entity/dto/data/DataAliasDTO.java deleted file mode 100644 index 1e4f45a5..00000000 --- a/orion-ops-module-infra/orion-ops-module-infra-provider/src/main/java/com/orion/ops/module/infra/entity/dto/data/DataAliasDTO.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-12-18 17:37 - */ -@Data -@Builder -@NoArgsConstructor -@AllArgsConstructor -@Schema(name = "DataAliasDTO", description = "数据别名 业务对象") -public class DataAliasDTO implements Serializable { - - private static final long serialVersionUID = 1L; - - @Schema(description = "id") - private Long id; - - @Schema(description = "用户id") - private Long userId; - - @Schema(description = "数据id") - private Long relId; - - @Schema(description = "数据类型") - private String type; - - @Schema(description = "别名") - private String alias; - - @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/DataAliasQueryDTO.java b/orion-ops-module-infra/orion-ops-module-infra-provider/src/main/java/com/orion/ops/module/infra/entity/dto/data/DataAliasQueryDTO.java deleted file mode 100644 index dcd33d00..00000000 --- a/orion-ops-module-infra/orion-ops-module-infra-provider/src/main/java/com/orion/ops/module/infra/entity/dto/data/DataAliasQueryDTO.java +++ /dev/null @@ -1,47 +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-12-18 17:37 - */ -@Data -@Builder -@NoArgsConstructor -@AllArgsConstructor -@Schema(name = "DataAliasQueryDTO", description = "数据别名 查询请求业务对象") -public class DataAliasQueryDTO implements Serializable { - - private static final long serialVersionUID = 1L; - - @Schema(description = "id") - private Long id; - - @Schema(description = "用户id") - private Long userId; - - @Schema(description = "数据id") - private Long relId; - - @Size(max = 32) - @Schema(description = "数据类型") - private String type; - - @Size(max = 32) - @Schema(description = "别名") - private String alias; - -} diff --git a/orion-ops-module-infra/orion-ops-module-infra-provider/src/main/java/com/orion/ops/module/infra/entity/dto/data/DataAliasUpdateDTO.java b/orion-ops-module-infra/orion-ops-module-infra-provider/src/main/java/com/orion/ops/module/infra/entity/dto/data/DataAliasUpdateDTO.java index 09db310b..fef6dae6 100644 --- a/orion-ops-module-infra/orion-ops-module-infra-provider/src/main/java/com/orion/ops/module/infra/entity/dto/data/DataAliasUpdateDTO.java +++ b/orion-ops-module-infra/orion-ops-module-infra-provider/src/main/java/com/orion/ops/module/infra/entity/dto/data/DataAliasUpdateDTO.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.*; /** * 数据别名 更新请求业务对象 @@ -24,15 +21,11 @@ import java.math.*; @Builder @NoArgsConstructor @AllArgsConstructor -@Schema(name = "DataAliasUpdateDTO", description = "数据别名 更新请求业务对象") +@Schema(name = "DataAliasUpdateDTO", description = "数据别名 创建请求业务对象") public class DataAliasUpdateDTO implements Serializable { private static final long serialVersionUID = 1L; - @NotNull - @Schema(description = "id") - private Long id; - @NotNull @Schema(description = "用户id") private Long userId; @@ -41,12 +34,6 @@ public class DataAliasUpdateDTO implements Serializable { @Schema(description = "数据id") private Long relId; - @NotBlank - @Size(max = 32) - @Schema(description = "数据类型") - private String type; - - @NotBlank @Size(max = 32) @Schema(description = "别名") private String alias; diff --git a/orion-ops-module-infra/orion-ops-module-infra-provider/src/main/java/com/orion/ops/module/infra/enums/DataAliasTypeEnum.java b/orion-ops-module-infra/orion-ops-module-infra-provider/src/main/java/com/orion/ops/module/infra/enums/DataAliasTypeEnum.java new file mode 100644 index 00000000..aac86ec5 --- /dev/null +++ b/orion-ops-module-infra/orion-ops-module-infra-provider/src/main/java/com/orion/ops/module/infra/enums/DataAliasTypeEnum.java @@ -0,0 +1,31 @@ +package com.orion.ops.module.infra.enums; + +/** + * 数据别名类型 + * + * @author Jiahang Li + * @version 1.0.0 + * @since 2023/12/18 21:51 + */ +public enum DataAliasTypeEnum { + + /** + * 主机 + */ + HOST, + + ; + + public static DataAliasTypeEnum of(String type) { + if (type == null) { + return null; + } + for (DataAliasTypeEnum 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/DataAliasApiImpl.java b/orion-ops-module-infra/orion-ops-module-infra-service/src/main/java/com/orion/ops/module/infra/api/impl/DataAliasApiImpl.java index ba4785c5..83345073 100644 --- a/orion-ops-module-infra/orion-ops-module-infra-service/src/main/java/com/orion/ops/module/infra/api/impl/DataAliasApiImpl.java +++ b/orion-ops-module-infra/orion-ops-module-infra-service/src/main/java/com/orion/ops/module/infra/api/impl/DataAliasApiImpl.java @@ -1,165 +1,67 @@ -// 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.DataAliasDO; -// import com.orion.ops.module.infra.dao.DataAliasDAO; -// import com.orion.ops.module.infra.service.DataAliasService; -// 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-12-18 17:37 -// */ -// @Slf4j -// @Service -// public class DataAliasApiImpl implements DataAliasApi { -// -// @Resource -// private DataAliasService dataAliasService; -// -// @Resource -// private DataAliasDAO dataAliasDAO; -// -// @Override -// public Long createDataAlias(DataAliasCreateDTO dto) { -// log.info("DataAliasApi.createDataAlias dto: {}", JSON.toJSONString(dto)); -// Valid.valid(dto); -// // 转换 -// DataAliasCreateRequest request = DataAliasProviderConvert.MAPPER.toRequest(dto); -// // 创建 -// return dataAliasService.createDataAlias(request); -// } -// -// @Override -// public Integer updateDataAliasById(DataAliasUpdateDTO dto) { -// log.info("DataAliasApi.updateDataAliasById dto: {}", JSON.toJSONString(dto)); -// Valid.valid(dto); -// // 转换 -// DataAliasUpdateRequest request = DataAliasProviderConvert.MAPPER.toRequest(dto); -// // 修改 -// return dataAliasService.updateDataAliasById(request); -// } -// -// -// @Override -// public DataAliasDTO getDataAliasById(Long id) { -// log.info("DataAliasApi.getDataAliasById id: {}", id); -// Valid.notNull(id, ErrorMessage.ID_MISSING); -// // 修改 -// DataAliasDO record = dataAliasDAO.selectById(id); -// if (record == null) { -// return null; -// } -// // 转换 -// return DataAliasProviderConvert.MAPPER.to(record); -// } -// -// @Override -// public List getDataAliasByIdList(List idList) { -// log.info("DataAliasApi.getDataAliasByIdList idList: {}", idList); -// if (Lists.isEmpty(idList)) { -// return new ArrayList<>(); -// } -// // 查询 -// List rows = dataAliasDAO.selectBatchIds(idList); -// // 转换 -// return DataAliasProviderConvert.MAPPER.toList(rows); -// } -// -// @Override -// public List getDataAliasList(DataAliasQueryDTO dto) { -// log.info("DataAliasApi.getDataAliasList dto: {}", JSON.toJSONString(dto)); -// Valid.valid(dto); -// // 条件 -// LambdaQueryWrapper wrapper = this.buildQueryWrapper(dto); -// // 查询 -// return dataAliasDAO.of(wrapper).list(DataAliasProviderConvert.MAPPER::to); -// } -// -// @Override -// public List getDataAliasListByCache() { -// return dataAliasService.getDataAliasListByCache() -// .stream() -// .map(DataAliasProviderConvert.MAPPER::to) -// .collect(Collectors.toList()); -// } -// -// @Override -// public Long getDataAliasCount(DataAliasQueryDTO dto) { -// log.info("DataAliasApi.getDataAliasCount dto: {}", JSON.toJSONString(dto)); -// Valid.valid(dto); -// // 条件 -// LambdaQueryWrapper wrapper = this.buildQueryWrapper(dto); -// // 查询 -// return dataAliasDAO.selectCount(wrapper); -// } -// -// @Override -// public Integer deleteDataAliasById(Long id) { -// log.info("DataAliasApi.deleteDataAliasById id: {}", id); -// Valid.notNull(id, ErrorMessage.ID_MISSING); -// // 删除 -// Integer effect = dataAliasService.deleteDataAliasById(id); -// log.info("DataAliasApi.deleteDataAliasById id: {}, effect: {}", id, effect); -// return effect; -// } -// -// @Override -// public Integer deleteDataAliasByIdList(List idList) { -// log.info("DataAliasApi.deleteDataAliasByIdList idList: {}", idList); -// Valid.notEmpty(idList, ErrorMessage.ID_MISSING); -// // 删除 -// Integer effect = dataAliasService.deleteDataAliasByIdList(idList); -// log.info("DataAliasApi.deleteDataAliasByIdList effect: {}", effect); -// return effect; -// } -// -// @Override -// public Integer deleteDataAlias(DataAliasQueryDTO dto) { -// log.info("DataAliasApi.deleteDataAlias dto: {}", JSON.toJSONString(dto)); -// Valid.valid(dto); -// // 删除 -// Integer effect = dataAliasService.deleteDataAlias(DataAliasProviderConvert.MAPPER.toRequest(dto)); -// log.info("DataAliasApi.deleteDataAlias effect: {}", effect); -// return effect; -// } -// -// /** -// * 构建查询 wrapper -// * -// * @param dto dto -// * @return wrapper -// */ -// private LambdaQueryWrapper buildQueryWrapper(DataAliasQueryDTO dto) { -// return dataAliasDAO.wrapper() -// .eq(DataAliasDO::getId, dto.getId()) -// .eq(DataAliasDO::getUserId, dto.getUserId()) -// .eq(DataAliasDO::getRelId, dto.getRelId()) -// .eq(DataAliasDO::getType, dto.getType()) -// .eq(DataAliasDO::getAlias, dto.getAlias()); -// } -// -// } +package com.orion.ops.module.infra.api.impl; + +import com.orion.ops.framework.common.utils.Valid; +import com.orion.ops.module.infra.api.DataAliasApi; +import com.orion.ops.module.infra.entity.dto.data.DataAliasUpdateDTO; +import com.orion.ops.module.infra.entity.request.data.DataAliasUpdateRequest; +import com.orion.ops.module.infra.enums.DataAliasTypeEnum; +import com.orion.ops.module.infra.service.DataAliasService; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import java.util.Map; +import java.util.concurrent.CompletableFuture; +import java.util.concurrent.Future; + +/** + * 数据别名 对外服务实现类 + * + * @author Jiahang Li + * @version 1.0.0 + * @since 2023-12-18 17:37 + */ +@Slf4j +@Service +public class DataAliasApiImpl implements DataAliasApi { + + @Resource + private DataAliasService dataAliasService; + + @Override + public Integer updateDataAlias(DataAliasUpdateDTO dto, DataAliasTypeEnum type) { + Valid.valid(dto); + DataAliasUpdateRequest update = DataAliasUpdateRequest.builder() + .userId(dto.getUserId()) + .type(type.name()) + .relId(dto.getRelId()) + .alias(dto.getAlias()) + .build(); + return dataAliasService.updateDataAlias(update); + } + + @Override + public String getDataAlias(Long userId, DataAliasTypeEnum type, Long relId) { + Valid.allNotNull(userId, relId); + return dataAliasService.getDataAlias(userId, type.name(), relId); + } + + @Override + public Map getDataAlias(Long userId, DataAliasTypeEnum type) { + Valid.notNull(userId); + return dataAliasService.getDataAlias(userId, type.name()); + } + + @Override + public Future> getDataAliasAsync(Long userId, DataAliasTypeEnum type) { + Valid.notNull(userId); + return CompletableFuture.completedFuture(dataAliasService.getDataAlias(userId, type.name())); + } + + @Override + public Integer deleteByRelId(DataAliasTypeEnum type, Long relId) { + Valid.notNull(relId); + return dataAliasService.deleteByRelId(type.name(), relId); + } + +} diff --git a/orion-ops-module-infra/orion-ops-module-infra-service/src/main/java/com/orion/ops/module/infra/convert/DataAliasProviderConvert.java b/orion-ops-module-infra/orion-ops-module-infra-service/src/main/java/com/orion/ops/module/infra/convert/DataAliasProviderConvert.java deleted file mode 100644 index b31d48f8..00000000 --- a/orion-ops-module-infra/orion-ops-module-infra-service/src/main/java/com/orion/ops/module/infra/convert/DataAliasProviderConvert.java +++ /dev/null @@ -1,37 +0,0 @@ -package com.orion.ops.module.infra.convert; - -import com.orion.ops.module.infra.entity.domain.DataAliasDO; -import com.orion.ops.module.infra.entity.dto.data.DataAliasDTO; -import com.orion.ops.module.infra.entity.dto.data.DataAliasQueryDTO; -import com.orion.ops.module.infra.entity.dto.data.DataAliasUpdateDTO; -import com.orion.ops.module.infra.entity.request.data.DataAliasUpdateRequest; -import org.mapstruct.Mapper; -import org.mapstruct.factory.Mappers; - -import java.util.List; - -/** - * 数据别名 对外服务对象转换器 - * - * @author Jiahang Li - * @version 1.0.0 - * @since 2023-12-18 17:37 - */ -@Mapper -public interface DataAliasProviderConvert { - - DataAliasProviderConvert MAPPER = Mappers.getMapper(DataAliasProviderConvert.class); - - DataAliasDO to(DataAliasDTO dto); - - DataAliasDTO to(DataAliasDO domain); - - DataAliasDO to(DataAliasQueryDTO domain); - - DataAliasDO to(DataAliasUpdateDTO update); - - DataAliasUpdateRequest toRequest(DataAliasUpdateDTO request); - - 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/DataAliasDAO.java b/orion-ops-module-infra/orion-ops-module-infra-service/src/main/java/com/orion/ops/module/infra/dao/DataAliasDAO.java index 46961913..10ab978b 100644 --- a/orion-ops-module-infra/orion-ops-module-infra-service/src/main/java/com/orion/ops/module/infra/dao/DataAliasDAO.java +++ b/orion-ops-module-infra/orion-ops-module-infra-service/src/main/java/com/orion/ops/module/infra/dao/DataAliasDAO.java @@ -1,5 +1,6 @@ package com.orion.ops.module.infra.dao; +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.DataAliasDO; import org.apache.ibatis.annotations.Mapper; @@ -14,4 +15,16 @@ import org.apache.ibatis.annotations.Mapper; @Mapper public interface DataAliasDAO extends IMapper { + /** + * 通过 userId 删除 + * + * @param userId userId + * @return effect + */ + default int deleteByUserId(Long userId) { + LambdaQueryWrapper wrapper = this.lambda() + .eq(DataAliasDO::getUserId, userId); + return this.delete(wrapper); + } + } diff --git a/orion-ops-module-infra/orion-ops-module-infra-service/src/main/java/com/orion/ops/module/infra/define/operator/DataAliasOperatorType.java b/orion-ops-module-infra/orion-ops-module-infra-service/src/main/java/com/orion/ops/module/infra/define/operator/DataAliasOperatorType.java deleted file mode 100644 index 9aceebc9..00000000 --- a/orion-ops-module-infra/orion-ops-module-infra-service/src/main/java/com/orion/ops/module/infra/define/operator/DataAliasOperatorType.java +++ /dev/null @@ -1,34 +0,0 @@ -package com.orion.ops.module.infra.define.operator; - -import com.orion.ops.framework.biz.operator.log.core.annotation.Module; -import com.orion.ops.framework.biz.operator.log.core.factory.InitializingOperatorTypes; -import com.orion.ops.framework.biz.operator.log.core.model.OperatorType; - -import static com.orion.ops.framework.biz.operator.log.core.enums.OperatorRiskLevel.*; - -/** - * 数据别名 操作日志类型 - * - * @author Jiahang Li - * @version 1.0.0 - * @since 2023-12-18 17:37 - */ -@Module("infra:data-alias") -public class DataAliasOperatorType extends InitializingOperatorTypes { - - public static final String CREATE = "data-alias:create"; - - public static final String UPDATE = "data-alias:update"; - - public static final String DELETE = "data-alias:delete"; - - @Override - public OperatorType[] types() { - return new OperatorType[]{ - new OperatorType(L, CREATE, "创建数据别名"), - new OperatorType(M, UPDATE, "更新数据别名"), - new OperatorType(H, DELETE, "删除数据别名"), - }; - } - -} diff --git a/orion-ops-module-infra/orion-ops-module-infra-service/src/main/java/com/orion/ops/module/infra/entity/request/data/DataAliasUpdateRequest.java b/orion-ops-module-infra/orion-ops-module-infra-service/src/main/java/com/orion/ops/module/infra/entity/request/data/DataAliasUpdateRequest.java index cc81803a..3490fcb7 100644 --- a/orion-ops-module-infra/orion-ops-module-infra-service/src/main/java/com/orion/ops/module/infra/entity/request/data/DataAliasUpdateRequest.java +++ b/orion-ops-module-infra/orion-ops-module-infra-service/src/main/java/com/orion/ops/module/infra/entity/request/data/DataAliasUpdateRequest.java @@ -40,7 +40,6 @@ public class DataAliasUpdateRequest implements Serializable { @Schema(description = "数据类型") private String type; - @NotBlank @Size(max = 32) @Schema(description = "别名") private String alias; diff --git a/orion-ops-module-infra/orion-ops-module-infra-service/src/main/java/com/orion/ops/module/infra/service/DataAliasService.java b/orion-ops-module-infra/orion-ops-module-infra-service/src/main/java/com/orion/ops/module/infra/service/DataAliasService.java index f2e7d47b..98f06516 100644 --- a/orion-ops-module-infra/orion-ops-module-infra-service/src/main/java/com/orion/ops/module/infra/service/DataAliasService.java +++ b/orion-ops-module-infra/orion-ops-module-infra-service/src/main/java/com/orion/ops/module/infra/service/DataAliasService.java @@ -46,7 +46,7 @@ public interface DataAliasService { * @param userId userId * @return effect */ - Integer deleteDataAliasByUserId(Long userId); + Integer deleteByUserId(Long userId); /** * 删除数据别名 @@ -55,6 +55,6 @@ public interface DataAliasService { * @param relId relId * @return effect */ - Integer deleteDataAliasByRelId(String type, Long relId); + Integer deleteByRelId(String type, Long relId); } diff --git a/orion-ops-module-infra/orion-ops-module-infra-service/src/main/java/com/orion/ops/module/infra/service/impl/DataAliasServiceImpl.java b/orion-ops-module-infra/orion-ops-module-infra-service/src/main/java/com/orion/ops/module/infra/service/impl/DataAliasServiceImpl.java index 79c9ebce..c8026786 100644 --- a/orion-ops-module-infra/orion-ops-module-infra-service/src/main/java/com/orion/ops/module/infra/service/impl/DataAliasServiceImpl.java +++ b/orion-ops-module-infra/orion-ops-module-infra-service/src/main/java/com/orion/ops/module/infra/service/impl/DataAliasServiceImpl.java @@ -1,5 +1,6 @@ package com.orion.ops.module.infra.service.impl; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.orion.lang.function.Functions; import com.orion.lang.utils.collect.Maps; import com.orion.ops.framework.redis.core.utils.RedisMaps; @@ -14,6 +15,7 @@ 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.function.Function; import java.util.stream.Collectors; @@ -31,18 +33,6 @@ public class DataAliasServiceImpl implements DataAliasService { @Resource private DataAliasDAO dataAliasDAO; - // @Override - // public Integer deleteDataAlias(DataAliasQueryRequest request) { - // log.info("DataAliasService.deleteDataAlias request: {}", JSON.toJSONString(request)); - // // 条件 - // LambdaQueryWrapper wrapper = this.buildQueryWrapper(request); - // // 删除 - // int effect = dataAliasDAO.delete(wrapper); - // log.info("DataAliasService.deleteDataAlias effect: {}", effect); - // // 删除缓存 - // RedisMaps.delete(DataAliasCacheKeyDefine.DATA_ALIAS); - // return effect; - // } @Override public Integer updateDataAlias(DataAliasUpdateRequest request) { @@ -77,7 +67,7 @@ public class DataAliasServiceImpl implements DataAliasService { @Override public String getDataAlias(Long userId, String type, Long relId) { - return null; + return this.getDataAlias(userId, type).get(relId); } @Override @@ -98,7 +88,6 @@ public class DataAliasServiceImpl implements DataAliasService { DataAliasDO::getAlias, Functions.right()) ); - // 设置屏障 防止穿透 CacheBarriers.MAP.check(entities); // 设置缓存 @@ -111,13 +100,36 @@ public class DataAliasServiceImpl implements DataAliasService { } @Override - public Integer deleteDataAliasByUserId(Long userId) { - return null; + public Integer deleteByUserId(Long userId) { + // 删除 + int effect = dataAliasDAO.deleteByUserId(userId); + // 删除缓存 + RedisMaps.scanKeysDelete(DataAliasCacheKeyDefine.DATA_ALIAS.format(userId, "*")); + return effect; } @Override - public Integer deleteDataAliasByRelId(String type, Long relId) { - return null; + public Integer deleteByRelId(String type, Long relId) { + LambdaQueryWrapper wrapper = dataAliasDAO.lambda() + .eq(DataAliasDO::getType, type) + .eq(DataAliasDO::getRelId, relId); + // 查询 + List userIdList = dataAliasDAO.selectList(wrapper) + .stream() + .map(DataAliasDO::getUserId) + .distinct() + .collect(Collectors.toList()); + if (userIdList.isEmpty()) { + return 0; + } + // 删除 + int effect = dataAliasDAO.delete(wrapper); + // 删除缓存 + List keys = userIdList.stream() + .map(s -> DataAliasCacheKeyDefine.DATA_ALIAS.format(s, type)) + .collect(Collectors.toList()); + RedisMaps.delete(keys); + return effect; } } diff --git a/orion-ops-module-infra/orion-ops-module-infra-service/src/main/java/com/orion/ops/module/infra/service/impl/SystemUserServiceImpl.java b/orion-ops-module-infra/orion-ops-module-infra-service/src/main/java/com/orion/ops/module/infra/service/impl/SystemUserServiceImpl.java index 6a1a0cb2..578f66a5 100644 --- a/orion-ops-module-infra/orion-ops-module-infra-service/src/main/java/com/orion/ops/module/infra/service/impl/SystemUserServiceImpl.java +++ b/orion-ops-module-infra/orion-ops-module-infra-service/src/main/java/com/orion/ops/module/infra/service/impl/SystemUserServiceImpl.java @@ -69,6 +69,9 @@ public class SystemUserServiceImpl implements SystemUserService { @Resource private DataPermissionService dataPermissionService; + @Resource + private DataAliasService dataAliasService; + @Override public Long createSystemUser(SystemUserCreateRequest request) { // 转换 @@ -246,6 +249,8 @@ public class SystemUserServiceImpl implements SystemUserService { preferenceService.deletePreferenceByUserId(id); // 删除用户数据权限 dataPermissionService.deleteByUserId(id); + // 删除用户数据别名 + dataAliasService.deleteByUserId(id); } @Override