diff --git a/project/src/main/java/com/sdm/project/model/req/SpdmNodeListReq.java b/common/src/main/java/com/sdm/common/entity/req/project/SpdmNodeListReq.java similarity index 94% rename from project/src/main/java/com/sdm/project/model/req/SpdmNodeListReq.java rename to common/src/main/java/com/sdm/common/entity/req/project/SpdmNodeListReq.java index f834e7e2..65e5427e 100644 --- a/project/src/main/java/com/sdm/project/model/req/SpdmNodeListReq.java +++ b/common/src/main/java/com/sdm/common/entity/req/project/SpdmNodeListReq.java @@ -1,4 +1,4 @@ -package com.sdm.project.model.req; +package com.sdm.common.entity.req.project; import jakarta.validation.constraints.NotNull; import lombok.Data; diff --git a/common/src/main/java/com/sdm/common/feign/impl/project/SimulationNodeFeignClientImpl.java b/common/src/main/java/com/sdm/common/feign/impl/project/SimulationNodeFeignClientImpl.java index 0e9802b5..10eb4c23 100644 --- a/common/src/main/java/com/sdm/common/feign/impl/project/SimulationNodeFeignClientImpl.java +++ b/common/src/main/java/com/sdm/common/feign/impl/project/SimulationNodeFeignClientImpl.java @@ -2,7 +2,7 @@ package com.sdm.common.feign.impl.project; import com.sdm.common.common.SdmResponse; import com.sdm.common.entity.req.project.DelNodeReq; -import com.sdm.common.entity.req.project.RenameNodeReq; +import com.sdm.common.entity.req.project.SpdmNodeListReq; import com.sdm.common.entity.resp.AllNodeByProjectIdAndTypeResp; import com.sdm.common.feign.inter.project.ISimulationNodeFeignClient; import lombok.extern.slf4j.Slf4j; @@ -77,4 +77,21 @@ public class SimulationNodeFeignClientImpl implements ISimulationNodeFeignClient } return response; } + + @Override + public SdmResponse list(SpdmNodeListReq req) { + SdmResponse response; + try { + response = ISimulationNodeFeignClient.list(req); + if (!response.isSuccess()) { + return SdmResponse.failed("查询失败"); + } + } catch (Exception e) { + log.error("查询失败", e); + return SdmResponse.failed("查询失败"); + } + return response; + } + + } diff --git a/common/src/main/java/com/sdm/common/feign/inter/project/ISimulationNodeFeignClient.java b/common/src/main/java/com/sdm/common/feign/inter/project/ISimulationNodeFeignClient.java index 91626925..02fc702b 100644 --- a/common/src/main/java/com/sdm/common/feign/inter/project/ISimulationNodeFeignClient.java +++ b/common/src/main/java/com/sdm/common/feign/inter/project/ISimulationNodeFeignClient.java @@ -2,9 +2,8 @@ package com.sdm.common.feign.inter.project; import com.sdm.common.common.SdmResponse; import com.sdm.common.entity.req.project.DelNodeReq; -import com.sdm.common.entity.req.project.RenameNodeReq; +import com.sdm.common.entity.req.project.SpdmNodeListReq; import com.sdm.common.entity.resp.AllNodeByProjectIdAndTypeResp; -import io.swagger.v3.oas.annotations.Operation; import org.springframework.cloud.openfeign.FeignClient; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PostMapping; @@ -35,4 +34,10 @@ public interface ISimulationNodeFeignClient { @PostMapping("node/delteNode") SdmResponse delteNode(@RequestBody DelNodeReq req); + + // 项目列表 + @GetMapping("/list") + SdmResponse list(@RequestBody SpdmNodeListReq req); + + } diff --git a/common/src/main/java/com/sdm/common/utils/CidSysUserUtil.java b/common/src/main/java/com/sdm/common/utils/CidSysUserUtil.java new file mode 100644 index 00000000..333bcfde --- /dev/null +++ b/common/src/main/java/com/sdm/common/utils/CidSysUserUtil.java @@ -0,0 +1,35 @@ +package com.sdm.common.utils; + +import com.sdm.common.entity.resp.system.CIDUserResp; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.util.CollectionUtils; + +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; + +public class CidSysUserUtil { + private static final Logger LOG = LoggerFactory.getLogger(CidSysUserUtil.class); + + // List cidUserRespList ---> Map + public static Map getCidUserToMap(List cidUserRespList) { + try { + if(CollectionUtils.isEmpty(cidUserRespList)){ + return new HashMap<>(); + } + Map userMap = cidUserRespList.stream() + .collect(Collectors.toMap( + CIDUserResp::getUserId, + user -> user + )); + return userMap; + } catch (Exception e) { + LOG.error("getCidUserToMap error", e); + } + return new HashMap<>(); + } + + +} diff --git a/data/src/main/java/com/sdm/data/model/entity/FileMetadataInfo.java b/data/src/main/java/com/sdm/data/model/entity/FileMetadataInfo.java index dd5ae52a..7b0f037f 100644 --- a/data/src/main/java/com/sdm/data/model/entity/FileMetadataInfo.java +++ b/data/src/main/java/com/sdm/data/model/entity/FileMetadataInfo.java @@ -97,6 +97,10 @@ public class FileMetadataInfo implements Serializable { @TableField("creatorId") private Long creatorId; + @Schema(description= "创建者名称,列表展示使用") + @TableField(value = "creatorName", insertStrategy = FieldStrategy.NEVER,select = false,updateStrategy = FieldStrategy.NEVER) + private String creatorName; + @Schema(description= "创建时间") @TableField("createTime") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") diff --git a/data/src/main/java/com/sdm/data/service/impl/MinioFileIDataFileServiceImpl.java b/data/src/main/java/com/sdm/data/service/impl/MinioFileIDataFileServiceImpl.java index de36c7f5..15583e82 100644 --- a/data/src/main/java/com/sdm/data/service/impl/MinioFileIDataFileServiceImpl.java +++ b/data/src/main/java/com/sdm/data/service/impl/MinioFileIDataFileServiceImpl.java @@ -12,17 +12,16 @@ import com.sdm.common.entity.enums.*; import com.sdm.common.entity.req.data.CreateDirReq; import com.sdm.common.entity.req.data.DelDirReq; import com.sdm.common.entity.req.data.RenameDirReq; -import com.sdm.data.model.req.RenameFileReq; -import com.sdm.common.entity.req.project.DelNodeReq; -import com.sdm.common.entity.req.project.RenameNodeReq; import com.sdm.common.entity.req.system.LaunchApproveReq; import com.sdm.common.entity.req.system.UserListReq; +import com.sdm.common.entity.req.system.UserQueryReq; import com.sdm.common.entity.resp.PageDataResp; import com.sdm.common.entity.resp.data.FileMetadataInfoResp; import com.sdm.common.entity.resp.system.CIDUserResp; import com.sdm.common.feign.impl.project.SimulationNodeFeignClientImpl; import com.sdm.common.feign.impl.system.SysUserFeignClientImpl; import com.sdm.common.feign.inter.system.IApproveFeignClient; +import com.sdm.common.utils.CidSysUserUtil; import com.sdm.common.utils.PageUtils; import com.sdm.data.model.bo.ApprovalFileDataContentsModel; import com.sdm.data.model.entity.FileMetadataExtension; @@ -617,6 +616,7 @@ public class MinioFileIDataFileServiceImpl implements IDataFileService { // 这里是知识库文件只展示已经审批通过的文件 .in(FileMetadataInfo::getApproveType,fileDatdList) .list(); + setCreatorNames(files); PageDataResp> page = new PageDataResp<>(); page.setData(files); page.setTotal(pageDataResp.getTotal()); @@ -668,12 +668,8 @@ public class MinioFileIDataFileServiceImpl implements IDataFileService { // 审核完成 ,元数据修改审核中,文件修改审核中,删除文件审核中 .in(FileMetadataInfo::getApproveType,fileDatdList) .list(); - if (ObjectUtils.isNotEmpty(list)) { - list.forEach(fileMetadataInfo -> { - Long creatorId = fileMetadataInfo.getCreatorId(); - }); - } - + // 创建人赋值 + setCreatorNames(list); PageInfo page = new PageInfo<>(list); return PageUtils.getJsonObjectSdmResponse(list, page); } @@ -1640,5 +1636,41 @@ public class MinioFileIDataFileServiceImpl implements IDataFileService { return JSONObject.toJSONString(contentsModel); } + private void setCreatorNames(List list) { + try { + if (ObjectUtils.isNotEmpty(list)) { + // 提取去重的 creatorId + List creatorIds = list.stream() + .map(FileMetadataInfo::getCreatorId) + .filter(Objects::nonNull) + .distinct() + .toList(); + + // 远程查询用户信息 + SdmResponse> userListSdmRsp = sysUserFeignClient.listUserByIds( + UserQueryReq.builder().userIds(creatorIds).build() + ); + + // 批量设置 creatorName + if (userListSdmRsp.isSuccess() && CollectionUtils.isNotEmpty(userListSdmRsp.getData())) { + Map cidUserMap = CidSysUserUtil.getCidUserToMap(userListSdmRsp.getData()); + list.forEach(fileMetadataInfo -> { + Long creatorId = fileMetadataInfo.getCreatorId(); + CIDUserResp cidUser = cidUserMap.get(creatorId); + String username = Objects.isNull(cidUser) ? "" : org.apache.commons.lang3.StringUtils.firstNonBlank( + cidUser.getNickname(), + cidUser.getUsername(), + cidUser.getRealName() + ); + fileMetadataInfo.setCreatorName(username); + }); + } + } + } catch (Exception e) { + log.error("setCreatorNames error:{}",e.getMessage()); + } + } + + } \ No newline at end of file diff --git a/project/src/main/java/com/sdm/project/controller/SimulationNodeController.java b/project/src/main/java/com/sdm/project/controller/SimulationNodeController.java index 9f49387d..18dd26c2 100644 --- a/project/src/main/java/com/sdm/project/controller/SimulationNodeController.java +++ b/project/src/main/java/com/sdm/project/controller/SimulationNodeController.java @@ -3,6 +3,7 @@ package com.sdm.project.controller; import com.sdm.common.common.SdmResponse; import com.sdm.common.entity.req.project.DelNodeReq; import com.sdm.common.entity.req.project.RenameNodeReq; +import com.sdm.common.entity.req.project.SpdmNodeListReq; import com.sdm.common.entity.resp.AllNodeByProjectIdAndTypeResp; import com.sdm.common.feign.inter.project.ISimulationNodeFeignClient; import com.sdm.project.model.req.*; diff --git a/project/src/main/java/com/sdm/project/service/INodeService.java b/project/src/main/java/com/sdm/project/service/INodeService.java index d0a10406..e5a973bb 100644 --- a/project/src/main/java/com/sdm/project/service/INodeService.java +++ b/project/src/main/java/com/sdm/project/service/INodeService.java @@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.extension.service.IService; import com.sdm.common.common.SdmResponse; import com.sdm.common.entity.req.project.DelNodeReq; import com.sdm.common.entity.req.project.RenameNodeReq; +import com.sdm.common.entity.req.project.SpdmNodeListReq; import com.sdm.common.entity.resp.AllNodeByProjectIdAndTypeResp; import com.sdm.project.model.entity.SimulationNode; import com.sdm.project.model.req.*; diff --git a/project/src/main/java/com/sdm/project/service/impl/NodeServiceImpl.java b/project/src/main/java/com/sdm/project/service/impl/NodeServiceImpl.java index f09a2363..1accc369 100644 --- a/project/src/main/java/com/sdm/project/service/impl/NodeServiceImpl.java +++ b/project/src/main/java/com/sdm/project/service/impl/NodeServiceImpl.java @@ -10,6 +10,7 @@ import com.sdm.common.entity.enums.NodeTypeEnum; import com.sdm.common.entity.req.data.CreateDirReq; import com.sdm.common.entity.req.project.DelNodeReq; import com.sdm.common.entity.req.project.RenameNodeReq; +import com.sdm.common.entity.req.project.SpdmNodeListReq; import com.sdm.common.entity.req.system.UserQueryReq; import com.sdm.common.entity.resp.AllNodeByProjectIdAndTypeResp; import com.sdm.common.entity.resp.system.CIDUserResp;