diff --git a/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/controller/EdFileInfoController.java b/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/controller/EdFileInfoController.java index e5555e0..c915d14 100644 --- a/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/controller/EdFileInfoController.java +++ b/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/controller/EdFileInfoController.java @@ -109,4 +109,9 @@ public class EdFileInfoController { public ElectromagneticResult uploadRecord(@RequestParam int pageNum, @RequestParam int pageSize) { return edFileInfoService.uploadRecord(pageNum, pageSize); } + + @RequestMapping(value = "/detail", method = RequestMethod.GET) + public ElectromagneticResult detail(@RequestParam String id) { + return edFileInfoService.detail(id); + } } diff --git a/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/pojo/other/FileInfoDTO.java b/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/pojo/other/FileInfoVO.java similarity index 96% rename from electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/pojo/other/FileInfoDTO.java rename to electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/pojo/other/FileInfoVO.java index d344440..8e9f74c 100644 --- a/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/pojo/other/FileInfoDTO.java +++ b/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/pojo/other/FileInfoVO.java @@ -6,7 +6,7 @@ import lombok.Data; import java.util.Date; @Data -public class FileInfoDTO { +public class FileInfoVO { private String id; diff --git a/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/pojo/other/UploadRecordDTO.java b/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/pojo/other/UploadRecordDTO.java index 85ef7f7..93513e6 100644 --- a/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/pojo/other/UploadRecordDTO.java +++ b/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/pojo/other/UploadRecordDTO.java @@ -10,6 +10,7 @@ public class UploadRecordDTO { private String id; private String fileName; private Integer saveStatus; + private String fileType; @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") private Date createdTime; diff --git a/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/pojo/resp/FileInfoQueryPageVO.java b/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/pojo/resp/FileInfoQueryPageVO.java index 1db19a0..47fe205 100644 --- a/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/pojo/resp/FileInfoQueryPageVO.java +++ b/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/pojo/resp/FileInfoQueryPageVO.java @@ -1,6 +1,6 @@ package com.electromagnetic.industry.software.manage.pojo.resp; -import com.electromagnetic.industry.software.manage.pojo.other.FileInfoDTO; +import com.electromagnetic.industry.software.manage.pojo.other.FileInfoVO; import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor; @@ -15,5 +15,5 @@ public class FileInfoQueryPageVO { private long total; - private List records = new ArrayList<>(); + private List records = new ArrayList<>(); } diff --git a/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/pojo/resp/FileVersionViewVO.java b/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/pojo/resp/FileVersionViewVO.java index dd48a27..86c53d0 100644 --- a/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/pojo/resp/FileVersionViewVO.java +++ b/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/pojo/resp/FileVersionViewVO.java @@ -10,4 +10,5 @@ public class FileVersionViewVO { private Integer preVersion; private String fileCode; private Integer effectFlag; + private String parentId; } diff --git a/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/pojo/resp/ProjectVO.java b/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/pojo/resp/ProjectVO.java index eac9a69..eae56d4 100644 --- a/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/pojo/resp/ProjectVO.java +++ b/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/pojo/resp/ProjectVO.java @@ -1,10 +1,12 @@ package com.electromagnetic.industry.software.manage.pojo.resp; import lombok.Data; +import lombok.experimental.FieldNameConstants; import java.util.ArrayList; import java.util.List; +@FieldNameConstants @Data public class ProjectVO { @@ -13,6 +15,7 @@ public class ProjectVO { private String parentId; private int sort; private Integer dataStatus; + private String title; private List children = new ArrayList<>(); } diff --git a/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/service/EdFileInfoService.java b/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/service/EdFileInfoService.java index 37645ae..819bec8 100644 --- a/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/service/EdFileInfoService.java +++ b/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/service/EdFileInfoService.java @@ -143,4 +143,11 @@ public interface EdFileInfoService { * @return */ ElectromagneticResult uploadRecord(int pageNum, int pageSize); + + /** + * 查询文件详情 + * @param id + * @return + */ + ElectromagneticResult detail(String id); } diff --git a/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/service/serviceimpl/CommonService.java b/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/service/serviceimpl/CommonService.java index 622898b..dbc356c 100644 --- a/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/service/serviceimpl/CommonService.java +++ b/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/service/serviceimpl/CommonService.java @@ -228,6 +228,8 @@ public class CommonService { List edFileInfos = selectAllAdminFolder(id); if (!isAdminQuery) { edFileInfos = edFileInfos.stream().filter(e -> e.getDataStatus().equals(EleDataStatusEnum.PUBLISHED.code)).collect(Collectors.toList()); + } else { + edFileInfos = edFileInfos.stream().filter(e -> !e.getDataStatus().equals(EleDataStatusEnum.DELETED.code)).collect(Collectors.toList()); } // 转换为树 if (isAdminQuery) { @@ -236,11 +238,12 @@ public class CommonService { config.setParentIdKey(EdFileInfo.Fields.parentId); config.setWeightKey(EdFileInfo.Fields.sort); List> trees = TreeUtil.build(edFileInfos, PRJ_PARENT_ID, config, ((obj, treeNode) -> { - treeNode.putExtra("id", obj.getId()); - treeNode.putExtra(EdFileInfo.Fields.parentId, obj.getParentId()); - treeNode.putExtra(EdFileInfo.Fields.sort, obj.getSort()); - treeNode.putExtra(EdFileInfo.Fields.fileName, obj.getFileName()); - treeNode.putExtra(EdFileInfo.Fields.dataStatus, obj.getDataStatus()); + treeNode.putExtra(ProjectVO.Fields.id, obj.getId()); + treeNode.putExtra(ProjectVO.Fields.parentId, obj.getParentId()); + treeNode.putExtra(ProjectVO.Fields.sort, obj.getSort()); + treeNode.putExtra(ProjectVO.Fields.fileName, obj.getFileName()); + treeNode.putExtra(ProjectVO.Fields.title, obj.getFileName()); + treeNode.putExtra(ProjectVO.Fields.dataStatus, obj.getDataStatus()); })); String jsonStr = JSONUtil.toJsonStr(trees); ProjectVO projectVO = JSONUtil.toList(jsonStr, ProjectVO.class).get(0); @@ -272,6 +275,8 @@ public class CommonService { public ElectromagneticResult deleteFolder(String id) { // 如果文件夹下存在文件(包括文件夹和已经逻辑删除的文件),则不允许删除。后面管理员选择会有物理删除文件夹和文件的功能,此时MySQL和文件系统则会进行物理删除该文件。 + Date now = new Date(); + String currentUserId = UserThreadLocal.getUserId(); try { // 这里要分两种情况,1是删除层级目录,2是删除用户创建的文件夹 EdFileInfo fileInfo = edFileInfoMapper.selectOne(Wrappers.lambdaQuery().eq(EdFileInfo::getId, id)); @@ -290,6 +295,8 @@ public class CommonService { edFileInfoMapper.update(null, Wrappers.lambdaUpdate() .eq(EdFileInfo::getId, id) .set(EdFileInfo::getSort, -1) + .set(EdFileInfo::getUpdatedBy, currentUserId) + .set(EdFileInfo::getUpdatedTime, now) .set(EdFileInfo::getDataStatus, EleDataStatusEnum.DELETED.code)); // 层级文件夹重排序 List edFileInfos1 = edFileInfoMapper.selectList(Wrappers.lambdaQuery(EdFileInfo.class) @@ -297,9 +304,9 @@ public class CommonService { .eq(EdFileInfo::getEffectFlag, EffectFlagEnum.EFFECT.code) .ne(EdFileInfo::getDataStatus, EleDataStatusEnum.DELETED.code) .eq(EdFileInfo::getParentId, parentId) + .orderByAsc(EdFileInfo::getSort)); - Date now = new Date(); - String currentUserId = UserThreadLocal.getUserId(); + for (int i = 0; i < edFileInfos1.size(); i++) { String tmp = edFileInfos1.get(i).getId(); edFileInfoMapper.update(null, Wrappers.lambdaUpdate(EdFileInfo.class) @@ -322,6 +329,8 @@ public class CommonService { // 逻辑文件夹重排序 edFileInfoMapper.update(null, Wrappers.lambdaUpdate() .eq(EdFileInfo::getId, id) + .set(EdFileInfo::getUpdatedBy, currentUserId) + .set(EdFileInfo::getUpdatedTime, now) .set(EdFileInfo::getEffectFlag, EffectFlagEnum.NOT_EFFECTIVE.code)); } } diff --git a/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/service/serviceimpl/EdFileInfoServiceImpl.java b/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/service/serviceimpl/EdFileInfoServiceImpl.java index c487f47..ca4c227 100644 --- a/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/service/serviceimpl/EdFileInfoServiceImpl.java +++ b/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/service/serviceimpl/EdFileInfoServiceImpl.java @@ -24,15 +24,15 @@ import com.electromagnetic.industry.software.common.resp.ElectromagneticResult; import com.electromagnetic.industry.software.common.util.*; import com.electromagnetic.industry.software.manage.mapper.EdFileInfoMapper; import com.electromagnetic.industry.software.manage.pojo.models.EdFileInfo; -import com.electromagnetic.industry.software.manage.pojo.other.FileInfoDTO; +import com.electromagnetic.industry.software.manage.pojo.other.FileInfoVO; import com.electromagnetic.industry.software.manage.pojo.other.UploadRecordDTO; import com.electromagnetic.industry.software.manage.pojo.req.*; import com.electromagnetic.industry.software.manage.pojo.resp.FileInfoQueryPageVO; import com.electromagnetic.industry.software.manage.pojo.resp.FileVersionViewVO; -import com.electromagnetic.industry.software.manage.pojo.resp.ProjectVO; import com.electromagnetic.industry.software.manage.pojo.resp.UploadRecordVO; import com.electromagnetic.industry.software.manage.service.EdFileInfoService; import com.electromagnetic.industry.software.manage.service.FileSystemService; +import com.electromagnetic.industry.software.manage.service.PermissionService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; import org.springframework.core.env.Environment; @@ -62,11 +62,13 @@ public class EdFileInfoServiceImpl extends ServiceImpl edFileInfoPage = this.baseMapper.selectPage(new Page<>(fileInfoQueryDTO.getPageNum(), fileInfoQueryDTO.getPageSize()), queryWrapper); long total = edFileInfoPage.getTotal(); - List records = BeanUtil.copyToList(edFileInfoPage.getRecords(), FileInfoDTO.class); + List records = BeanUtil.copyToList(edFileInfoPage.getRecords(), FileInfoVO.class); resetFileSize(records); return ElectromagneticResultUtil.success(new FileInfoQueryPageVO(total, records)); } - private void resetFileSize(List records) { - for (FileInfoDTO fileInfoDTO : records) { + private void resetFileSize(List records) { + for (FileInfoVO fileInfoDTO : records) { if (fileInfoDTO.getFileSize() < 1024) { fileInfoDTO.setFileSizeShow(fileInfoDTO.getFileSize() + "B"); } else if (fileInfoDTO.getFileSize() < 1024 * 1024) { @@ -179,8 +181,11 @@ public class EdFileInfoServiceImpl extends ServiceImpl download(String id, HttpServletResponse response) { try { - EdFileInfo fileInfo = this.baseMapper.selectOne(Wrappers.lambdaQuery().eq(EdFileInfo::getId, id)); + EdFileInfo fileInfo = this.baseMapper.selectById(id); String fileSysPath = commonService.getFileSysPath(fileInfo.getFilePath()); Assert.isTrue(FileUtil.exist(fileSysPath), "下载文件不存在。"); FileSystemResource fileSystemResource = new FileSystemResource(fileSysPath); @@ -255,8 +260,12 @@ public class EdFileInfoServiceImpl extends ServiceImpl versionView(String fileId) { List edFileInfos = this.baseMapper.selectList(Wrappers.lambdaQuery(EdFileInfo.class) - .select(EdFileInfo::getId, EdFileInfo::getFileId, EdFileInfo::getFileVersion, EdFileInfo::getPreVersion, EdFileInfo::getFileCode, EdFileInfo::getEffectFlag, EdFileInfo::getFileName) + .select(EdFileInfo::getParentId, EdFileInfo::getId, EdFileInfo::getFileId, EdFileInfo::getFileVersion, EdFileInfo::getPreVersion, EdFileInfo::getFileCode, EdFileInfo::getEffectFlag, EdFileInfo::getFileName) .eq(EdFileInfo::getFileId, fileId)); List fileVersionViewVOS = BeanUtil.copyToList(edFileInfos, FileVersionViewVO.class); return ElectromagneticResultUtil.success(fileVersionViewVOS); @@ -848,9 +857,9 @@ public class EdFileInfoServiceImpl extends ServiceImpl uploadRecord(int pageNum, int pageSize) { - List prjIds = ListUtil.list(false, "100001", "100002"); //TODO 从权限处获取该用户有哪些工程的权限,这里先写静态,方便调试 + List prjIds = permissionService.getAccessibleTree(); //TODO 从权限处获取该用户有哪些工程的权限,这里先写静态,方便调试 LambdaQueryWrapper lambdaQuery = Wrappers.lambdaQuery(EdFileInfo.class) - .select(EdFileInfo::getId, EdFileInfo::getFileName, EdFileInfo::getSaveStatus, EdFileInfo::getCreatedTime) + .select(EdFileInfo::getId, EdFileInfo::getFileName, EdFileInfo::getSaveStatus, EdFileInfo::getCreatedTime, EdFileInfo::getFileType) .eq(EdFileInfo::getDataType, EleDataTypeEnum.FILE.code) .eq(EdFileInfo::getEffectFlag, EffectFlagEnum.EFFECT.code) .likeRight(EdFileInfo::getFilePath, prjIds.get(0)); @@ -863,6 +872,19 @@ public class EdFileInfoServiceImpl extends ServiceImpl detail(String id) { + EdFileInfo fileInfo = this.baseMapper.selectById(id); + FileInfoVO fileInfoVO = BeanUtil.copyProperties(fileInfo, FileInfoVO.class); + return ElectromagneticResultUtil.success(fileInfoVO); + } + private ElectromagneticResult handCopyConflict(String targetFolderId, Integer strategy, EdFileInfo srcFileInfo, EdFileInfo destFolderInfo) { // 禁止同目录下移动和复制 if (srcFileInfo.getParentId().equals(destFolderInfo.getId())) { diff --git a/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/service/serviceimpl/EdPrjServiceImpl.java b/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/service/serviceimpl/EdPrjServiceImpl.java index c860ecd..9ebe8ee 100644 --- a/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/service/serviceimpl/EdPrjServiceImpl.java +++ b/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/service/serviceimpl/EdPrjServiceImpl.java @@ -227,10 +227,14 @@ public class EdPrjServiceImpl extends ServiceImpl @Override @Transactional(rollbackFor = Exception.class) public ElectromagneticResult folderResort(List folderResortDTOList) { + Date now = new Date(); + String currentUserId = UserThreadLocal.getUserId(); try { for (FolderResortDTO folderResortDTO : folderResortDTOList) { LambdaUpdateWrapper updateWrapper = Wrappers.lambdaUpdate(EdFileInfo.class) .set(EdFileInfo::getSort, folderResortDTO.getSort()) + .set(EdFileInfo::getUpdatedBy, currentUserId) + .set(EdFileInfo::getUpdatedTime, now) .eq(EdFileInfo::getId, folderResortDTO.getId()); this.update(updateWrapper); } @@ -252,16 +256,21 @@ public class EdPrjServiceImpl extends ServiceImpl @Transactional(rollbackFor = Exception.class) public ElectromagneticResult publish(String prjId) { try { - + Date now = new Date(); + String currentUserId = UserThreadLocal.getUserId(); // 将已经处于删除状态设置成逻辑删除 this.update(Wrappers.lambdaUpdate(EdFileInfo.class) .eq(EdFileInfo::getDataStatus, EleDataStatusEnum.DELETED.code) .set(EdFileInfo::getEffectFlag, EffectFlagEnum.NOT_EFFECTIVE.code) + .set(EdFileInfo::getUpdatedBy, currentUserId) + .set(EdFileInfo::getUpdatedTime, now) .likeRight(EdFileInfo::getFilePath, prjId)); // 其余置为发布状态 LambdaUpdateWrapper updateWrapper = Wrappers.lambdaUpdate(EdFileInfo.class) .set(EdFileInfo::getDataStatus, EleDataStatusEnum.PUBLISHED.code) .eq(EdFileInfo::getDataStatus, EleDataStatusEnum.NOT_PUBLISHED.code) + .set(EdFileInfo::getUpdatedBy, currentUserId) + .set(EdFileInfo::getUpdatedTime, now) .likeRight(EdFileInfo::getFilePath, prjId); this.update(updateWrapper); return ElectromagneticResultUtil.success(true); diff --git a/electromagnetic-common/src/main/java/com/electromagnetic/industry/software/common/enums/EffectFlagEnum.java b/electromagnetic-common/src/main/java/com/electromagnetic/industry/software/common/enums/EffectFlagEnum.java index 8b044c8..164baef 100644 --- a/electromagnetic-common/src/main/java/com/electromagnetic/industry/software/common/enums/EffectFlagEnum.java +++ b/electromagnetic-common/src/main/java/com/electromagnetic/industry/software/common/enums/EffectFlagEnum.java @@ -15,7 +15,7 @@ public enum EffectFlagEnum { */ EFFECT(1, "有效"), /** - * 无效 + * 无效PermisionService */ NOT_EFFECTIVE(0, "无效");