From d2e72aea568a2533adb909234eae51a4975ab99d Mon Sep 17 00:00:00 2001 From: lijiahang Date: Fri, 28 Mar 2025 15:32:08 +0800 Subject: [PATCH] =?UTF-8?q?:hammer:=20=E4=BF=AE=E6=94=B9=E5=9F=BA=E7=A1=80?= =?UTF-8?q?=E6=9F=A5=E8=AF=A2.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../visor/common/constant/ErrorMessage.java | 2 ++ .../module/asset/enums/HostTypeEnum.java | 18 +++++++++++++++ .../visor/module/infra/api/DataExtraApi.java | 8 +++++++ .../module/infra/api/DataGroupRelApi.java | 9 ++++++++ .../entity/dto/data/DataExtraSetDTO.java | 2 +- .../infra/api/impl/DataExtraApiImpl.java | 12 ++++++++++ .../infra/api/impl/DataGroupRelApiImpl.java | 8 +++++++ .../controller/SystemUserController.java | 2 -- .../infra/service/DataExtraService.java | 7 ++++++ .../infra/service/DataGroupRelService.java | 10 +++++++++ .../service/impl/DataExtraServiceImpl.java | 22 +++++++++++++++++++ .../service/impl/DataGroupRelServiceImpl.java | 11 ++++++++++ 12 files changed, 108 insertions(+), 3 deletions(-) diff --git a/orion-visor-common/src/main/java/org/dromara/visor/common/constant/ErrorMessage.java b/orion-visor-common/src/main/java/org/dromara/visor/common/constant/ErrorMessage.java index 7657bb0d..292af480 100644 --- a/orion-visor-common/src/main/java/org/dromara/visor/common/constant/ErrorMessage.java +++ b/orion-visor-common/src/main/java/org/dromara/visor/common/constant/ErrorMessage.java @@ -90,6 +90,8 @@ public interface ErrorMessage { String HOST_NOT_ENABLED = "主机未启用"; + String CONFIG_NOT_ENABLED = "配置未启用"; + String UNABLE_OPERATE_ADMIN_ROLE = "无法操作管理员账号"; String UNSUPPORTED_CHARSET = "不支持的编码 [{}]"; diff --git a/orion-visor-modules/orion-visor-module-asset/orion-visor-module-asset-service/src/main/java/org/dromara/visor/module/asset/enums/HostTypeEnum.java b/orion-visor-modules/orion-visor-module-asset/orion-visor-module-asset-service/src/main/java/org/dromara/visor/module/asset/enums/HostTypeEnum.java index 3d1d0bf6..61852b18 100644 --- a/orion-visor-modules/orion-visor-module-asset/orion-visor-module-asset-service/src/main/java/org/dromara/visor/module/asset/enums/HostTypeEnum.java +++ b/orion-visor-modules/orion-visor-module-asset/orion-visor-module-asset-service/src/main/java/org/dromara/visor/module/asset/enums/HostTypeEnum.java @@ -24,11 +24,18 @@ package org.dromara.visor.module.asset.enums; import lombok.AllArgsConstructor; import lombok.Getter; +import org.dromara.visor.common.constant.Const; import org.dromara.visor.common.handler.data.GenericsStrategyDefinition; import org.dromara.visor.common.handler.data.model.GenericsDataModel; import org.dromara.visor.common.handler.data.strategy.GenericsDataStrategy; import org.dromara.visor.module.asset.handler.host.config.strategy.HostSshConfigStrategy; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; +import java.util.Objects; +import java.util.stream.Collectors; + /** * 主机配置类型枚举 * @@ -61,4 +68,15 @@ public enum HostTypeEnum implements GenericsStrategyDefinition { return null; } + public static List split(String types) { + if (types == null) { + return new ArrayList<>(); + } + return Arrays.stream(types.split(Const.COMMA)) + .map(HostTypeEnum::of) + .filter(Objects::nonNull) + .map(Enum::name) + .collect(Collectors.toList()); + } + } diff --git a/orion-visor-modules/orion-visor-module-infra/orion-visor-module-infra-provider/src/main/java/org/dromara/visor/module/infra/api/DataExtraApi.java b/orion-visor-modules/orion-visor-module-infra/orion-visor-module-infra-provider/src/main/java/org/dromara/visor/module/infra/api/DataExtraApi.java index 909607df..71eefd52 100644 --- a/orion-visor-modules/orion-visor-module-infra/orion-visor-module-infra-provider/src/main/java/org/dromara/visor/module/infra/api/DataExtraApi.java +++ b/orion-visor-modules/orion-visor-module-infra/orion-visor-module-infra-provider/src/main/java/org/dromara/visor/module/infra/api/DataExtraApi.java @@ -58,6 +58,14 @@ public interface DataExtraApi { */ Long addExtraItem(DataExtraSetDTO dto, DataExtraTypeEnum type); + /** + * 新增数据拓展信息 + * + * @param rows rows + * @param type type + */ + void addExtraItems(List rows, DataExtraTypeEnum type); + /** * 更新数据拓展信息 * diff --git a/orion-visor-modules/orion-visor-module-infra/orion-visor-module-infra-provider/src/main/java/org/dromara/visor/module/infra/api/DataGroupRelApi.java b/orion-visor-modules/orion-visor-module-infra/orion-visor-module-infra-provider/src/main/java/org/dromara/visor/module/infra/api/DataGroupRelApi.java index 1d7a761b..c9914a8b 100644 --- a/orion-visor-modules/orion-visor-module-infra/orion-visor-module-infra-provider/src/main/java/org/dromara/visor/module/infra/api/DataGroupRelApi.java +++ b/orion-visor-modules/orion-visor-module-infra/orion-visor-module-infra-provider/src/main/java/org/dromara/visor/module/infra/api/DataGroupRelApi.java @@ -100,6 +100,15 @@ public interface DataGroupRelApi { */ Future> getGroupIdByRelIdAsync(DataGroupTypeEnum type, Long relId); + /** + * 通过 relIdList 查询 groupRel + * + * @param type type + * @param relIdList relIdList + * @return rows + */ + Map> getGroupRelByRelIdList(DataGroupTypeEnum type, List relIdList); + /** * 删除数据分组关联 * diff --git a/orion-visor-modules/orion-visor-module-infra/orion-visor-module-infra-provider/src/main/java/org/dromara/visor/module/infra/entity/dto/data/DataExtraSetDTO.java b/orion-visor-modules/orion-visor-module-infra/orion-visor-module-infra-provider/src/main/java/org/dromara/visor/module/infra/entity/dto/data/DataExtraSetDTO.java index fd48fdcb..dbf84b6f 100644 --- a/orion-visor-modules/orion-visor-module-infra/orion-visor-module-infra-provider/src/main/java/org/dromara/visor/module/infra/entity/dto/data/DataExtraSetDTO.java +++ b/orion-visor-modules/orion-visor-module-infra/orion-visor-module-infra-provider/src/main/java/org/dromara/visor/module/infra/entity/dto/data/DataExtraSetDTO.java @@ -62,7 +62,7 @@ public class DataExtraSetDTO implements Serializable { @Schema(description = "配置项") private String item; - @NotBlank + @NotNull @Schema(description = "配置值") private String value; diff --git a/orion-visor-modules/orion-visor-module-infra/orion-visor-module-infra-service/src/main/java/org/dromara/visor/module/infra/api/impl/DataExtraApiImpl.java b/orion-visor-modules/orion-visor-module-infra/orion-visor-module-infra-service/src/main/java/org/dromara/visor/module/infra/api/impl/DataExtraApiImpl.java index 146f0586..60b93b10 100644 --- a/orion-visor-modules/orion-visor-module-infra/orion-visor-module-infra-service/src/main/java/org/dromara/visor/module/infra/api/impl/DataExtraApiImpl.java +++ b/orion-visor-modules/orion-visor-module-infra/orion-visor-module-infra-service/src/main/java/org/dromara/visor/module/infra/api/impl/DataExtraApiImpl.java @@ -79,6 +79,18 @@ public class DataExtraApiImpl implements DataExtraApi { return dataExtraService.addExtraItem(request); } + @Override + public void addExtraItems(List rows, DataExtraTypeEnum type) { + for (DataExtraSetDTO row : rows) { + Valid.valid(row); + } + List extras = rows.stream() + .map(DataExtraProviderConvert.MAPPER::to) + .peek(s -> s.setType(type.name())) + .collect(Collectors.toList()); + dataExtraService.addExtraItems(extras); + } + @Override public Integer updateExtraValue(Long id, String value) { return dataExtraService.updateExtraValue(id, value); diff --git a/orion-visor-modules/orion-visor-module-infra/orion-visor-module-infra-service/src/main/java/org/dromara/visor/module/infra/api/impl/DataGroupRelApiImpl.java b/orion-visor-modules/orion-visor-module-infra/orion-visor-module-infra-service/src/main/java/org/dromara/visor/module/infra/api/impl/DataGroupRelApiImpl.java index c6f02a08..e19dd177 100644 --- a/orion-visor-modules/orion-visor-module-infra/orion-visor-module-infra-service/src/main/java/org/dromara/visor/module/infra/api/impl/DataGroupRelApiImpl.java +++ b/orion-visor-modules/orion-visor-module-infra/orion-visor-module-infra-service/src/main/java/org/dromara/visor/module/infra/api/impl/DataGroupRelApiImpl.java @@ -107,6 +107,14 @@ public class DataGroupRelApiImpl implements DataGroupRelApi { return CompletableFuture.completedFuture(groupIdList); } + @Override + public Map> getGroupRelByRelIdList(DataGroupTypeEnum type, List relIdList) { + return dataGroupRelService.getGroupRelByRelIdList(type.name(), Const.SYSTEM_USER_ID, relIdList) + .stream() + .collect(Collectors.groupingBy(DataGroupRelDO::getRelId, + Collectors.mapping(DataGroupRelDO::getGroupId, Collectors.toSet()))); + } + @Override public Integer deleteByRelId(DataGroupTypeEnum type, Long relId) { return dataGroupRelService.deleteByRelId(type.name(), Const.SYSTEM_USER_ID, relId); diff --git a/orion-visor-modules/orion-visor-module-infra/orion-visor-module-infra-service/src/main/java/org/dromara/visor/module/infra/controller/SystemUserController.java b/orion-visor-modules/orion-visor-module-infra/orion-visor-module-infra-service/src/main/java/org/dromara/visor/module/infra/controller/SystemUserController.java index 71532fa8..f814e1d9 100644 --- a/orion-visor-modules/orion-visor-module-infra/orion-visor-module-infra-service/src/main/java/org/dromara/visor/module/infra/controller/SystemUserController.java +++ b/orion-visor-modules/orion-visor-module-infra/orion-visor-module-infra-service/src/main/java/org/dromara/visor/module/infra/controller/SystemUserController.java @@ -95,8 +95,6 @@ public class SystemUserController { return systemUserService.updateSystemUserById(request); } - // TODO 修改头像 最后再说 可有可无的功能 要是有 http 文件需求就写 - @DemoDisableApi @OperatorLog(SystemUserOperatorType.UPDATE_STATUS) @PutMapping("/update-status") diff --git a/orion-visor-modules/orion-visor-module-infra/orion-visor-module-infra-service/src/main/java/org/dromara/visor/module/infra/service/DataExtraService.java b/orion-visor-modules/orion-visor-module-infra/orion-visor-module-infra-service/src/main/java/org/dromara/visor/module/infra/service/DataExtraService.java index 750ba7c2..eacea114 100644 --- a/orion-visor-modules/orion-visor-module-infra/orion-visor-module-infra-service/src/main/java/org/dromara/visor/module/infra/service/DataExtraService.java +++ b/orion-visor-modules/orion-visor-module-infra/orion-visor-module-infra-service/src/main/java/org/dromara/visor/module/infra/service/DataExtraService.java @@ -54,6 +54,13 @@ public interface DataExtraService { */ Long addExtraItem(DataExtraSetRequest request); + /** + * 批量新增数据拓展信息 + * + * @param rows rows + */ + void addExtraItems(List rows); + /** * 更新数据拓展信息 * diff --git a/orion-visor-modules/orion-visor-module-infra/orion-visor-module-infra-service/src/main/java/org/dromara/visor/module/infra/service/DataGroupRelService.java b/orion-visor-modules/orion-visor-module-infra/orion-visor-module-infra-service/src/main/java/org/dromara/visor/module/infra/service/DataGroupRelService.java index c2b16602..d8e5ac1e 100644 --- a/orion-visor-modules/orion-visor-module-infra/orion-visor-module-infra-service/src/main/java/org/dromara/visor/module/infra/service/DataGroupRelService.java +++ b/orion-visor-modules/orion-visor-module-infra/orion-visor-module-infra-service/src/main/java/org/dromara/visor/module/infra/service/DataGroupRelService.java @@ -102,6 +102,16 @@ public interface DataGroupRelService { */ List getGroupRelByRelId(String type, Long userId, Long relId); + /** + * 通过 relId 查询 groupRel + * + * @param type type + * @param userId userId + * @param relIdList relIdList + * @return rows + */ + List getGroupRelByRelIdList(String type, Long userId, List relIdList); + /** * 删除数据分组关联 * diff --git a/orion-visor-modules/orion-visor-module-infra/orion-visor-module-infra-service/src/main/java/org/dromara/visor/module/infra/service/impl/DataExtraServiceImpl.java b/orion-visor-modules/orion-visor-module-infra/orion-visor-module-infra-service/src/main/java/org/dromara/visor/module/infra/service/impl/DataExtraServiceImpl.java index f69be9cd..7a8b4749 100644 --- a/orion-visor-modules/orion-visor-module-infra/orion-visor-module-infra-service/src/main/java/org/dromara/visor/module/infra/service/impl/DataExtraServiceImpl.java +++ b/orion-visor-modules/orion-visor-module-infra/orion-visor-module-infra-service/src/main/java/org/dromara/visor/module/infra/service/impl/DataExtraServiceImpl.java @@ -42,6 +42,7 @@ import org.springframework.stereotype.Service; import javax.annotation.Resource; import java.util.List; import java.util.Map; +import java.util.Set; import java.util.function.Function; import java.util.stream.Collectors; @@ -95,6 +96,27 @@ public class DataExtraServiceImpl implements DataExtraService { return insert.getId(); } + @Override + public void addExtraItems(List rows) { + // 插入 + List list = rows.stream() + .map(s -> { + DataExtraDO row = new DataExtraDO(); + row.setUserId(s.getUserId()); + row.setRelId(s.getRelId()); + row.setType(s.getType()); + row.setItem(s.getItem()); + row.setValue(s.getValue()); + return row; + }).collect(Collectors.toList()); + dataExtraDAO.insertBatch(list); + // 删除缓存 + Set keys = rows.stream() + .map(s -> DataExtraCacheKeyDefine.DATA_EXTRA.format(s.getUserId(), s.getType(), s.getItem())) + .collect(Collectors.toSet()); + RedisMaps.delete(keys); + } + @Override public Integer updateExtraValue(Long id, String value) { // 查询数据 diff --git a/orion-visor-modules/orion-visor-module-infra/orion-visor-module-infra-service/src/main/java/org/dromara/visor/module/infra/service/impl/DataGroupRelServiceImpl.java b/orion-visor-modules/orion-visor-module-infra/orion-visor-module-infra-service/src/main/java/org/dromara/visor/module/infra/service/impl/DataGroupRelServiceImpl.java index 57c850ca..9acba84a 100644 --- a/orion-visor-modules/orion-visor-module-infra/orion-visor-module-infra-service/src/main/java/org/dromara/visor/module/infra/service/impl/DataGroupRelServiceImpl.java +++ b/orion-visor-modules/orion-visor-module-infra/orion-visor-module-infra-service/src/main/java/org/dromara/visor/module/infra/service/impl/DataGroupRelServiceImpl.java @@ -228,6 +228,17 @@ public class DataGroupRelServiceImpl implements DataGroupRelService { .list(); } + @Override + public List getGroupRelByRelIdList(String type, Long userId, List relIdList) { + return dataGroupRelDAO.of() + .createWrapper() + .eq(DataGroupRelDO::getType, type) + .eq(DataGroupRelDO::getUserId, userId) + .in(DataGroupRelDO::getRelId, relIdList) + .then() + .list(); + } + @Override @Transactional(rollbackFor = Exception.class) public Integer deleteByRelId(String type, Long userId, Long relId) {