From 3d908e23b67de70b2ea3380d76e8321fe5e169b7 Mon Sep 17 00:00:00 2001 From: s2042968 Date: Wed, 5 Mar 2025 09:49:23 +0800 Subject: [PATCH 1/2] =?UTF-8?q?fix=EF=BC=9A=E8=A7=92=E8=89=B2=E6=9D=83?= =?UTF-8?q?=E9=99=90=E5=85=B3=E7=B3=BB=E4=B8=BB=E9=94=AEid=E6=94=B9?= =?UTF-8?q?=E4=B8=BA=E5=AD=97=E7=AC=A6=E4=B8=B2=E7=B1=BB=E5=9E=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../software/manage/pojo/models/RolePermission.java | 8 ++++++-- .../service/serviceimpl/RolePermissionServiceImpl.java | 2 +- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/pojo/models/RolePermission.java b/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/pojo/models/RolePermission.java index 9fe91f8..5935dfa 100644 --- a/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/pojo/models/RolePermission.java +++ b/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/pojo/models/RolePermission.java @@ -1,10 +1,14 @@ package com.electromagnetic.industry.software.manage.pojo.models; +import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import lombok.AllArgsConstructor; import lombok.Data; +import java.util.UUID; + @Data @TableName("ed_role_permission") @AllArgsConstructor @@ -13,8 +17,8 @@ public class RolePermission { /** * 主键id */ - @TableField(value = "id") - private Long id; + @TableId(type = IdType.ASSIGN_UUID) + private String id; /** * 角色编码 diff --git a/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/service/serviceimpl/RolePermissionServiceImpl.java b/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/service/serviceimpl/RolePermissionServiceImpl.java index 4ec2c99..cc17801 100644 --- a/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/service/serviceimpl/RolePermissionServiceImpl.java +++ b/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/service/serviceimpl/RolePermissionServiceImpl.java @@ -54,7 +54,7 @@ public class RolePermissionServiceImpl extends ServiceImpl idsToDelete = permissionsToDelete.stream() + List idsToDelete = permissionsToDelete.stream() .map(RolePermission::getId) .collect(Collectors.toList()); this.removeBatchByIds(idsToDelete); From a750c3cb62d5d9de2f696fd1de591f28b1eee2b4 Mon Sep 17 00:00:00 2001 From: s2042968 Date: Wed, 5 Mar 2025 10:26:32 +0800 Subject: [PATCH 2/2] =?UTF-8?q?feat:=20=E4=BF=AE=E6=94=B9=E6=96=87?= =?UTF-8?q?=E4=BB=B6=E6=95=B0=E6=8D=AE=E6=8E=A5=E5=8F=A3=E7=9A=84=E8=BF=94?= =?UTF-8?q?=E5=9B=9E=E7=BB=93=E6=9E=9C=EF=BC=8C=E5=A2=9E=E6=B7=BB=E6=94=B6?= =?UTF-8?q?=E8=97=8F=E6=A0=87=E8=AF=86=EF=BC=8C=E4=B8=AA=E4=BA=BA=E6=96=87?= =?UTF-8?q?=E4=BB=B6=E6=A0=87=E8=AF=86=E5=92=8C=E6=A0=87=E7=AD=BE=E5=88=97?= =?UTF-8?q?=E8=A1=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/EdFileInfoController.java | 6 +- .../controller/EdTagLibraryController.java | 5 +- .../controller/UserEdFileInfoController.java | 16 +-- .../manage/pojo/models/EdFileFavorite.java | 4 +- .../manage/pojo/models/EdTagLibrary.java | 1 + .../manage/pojo/other/FileInfoVO.java | 5 + .../manage/pojo/req/TagCreateDTO.java | 13 +++ .../manage/service/EdFileFavoriteService.java | 35 ------ .../manage/service/EdFileInfoService.java | 32 ++++++ .../service/FileTagRelationService.java | 17 ++- .../EdFileFavoriteServiceImpl.java | 75 ------------- .../serviceimpl/EdFileInfoServiceImpl.java | 103 +++++++++++++++++- .../FileTagRelationServiceImpl.java | 48 ++++++-- 13 files changed, 214 insertions(+), 146 deletions(-) create mode 100644 electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/pojo/req/TagCreateDTO.java 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 4ad52cb..1050083 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 @@ -175,7 +175,7 @@ public class EdFileInfoController { @UserOperation(value="收藏了文件", modelName = UserOperationModuleEnum.DATABASE) public ElectromagneticResult addFavorite(@RequestParam String id) { String userId = UserThreadLocal.getUserId(); - return ElectromagneticResultUtil.success(edFileFavoriteService.addFavorite(userId, id)); + return ElectromagneticResultUtil.success(edFileInfoService.addFavorite(userId, id)); } /** @@ -187,7 +187,7 @@ public class EdFileInfoController { @UserOperation(value="从收藏夹移除了文件", modelName = UserOperationModuleEnum.DATABASE) public ElectromagneticResult removeFavorite(@RequestParam String id) { String userId = UserThreadLocal.getUserId(); - return ElectromagneticResultUtil.success(edFileFavoriteService.removeFavorite(userId, id)); + return ElectromagneticResultUtil.success(edFileInfoService.removeFavorite(userId, id)); } /** @@ -198,6 +198,6 @@ public class EdFileInfoController { @UserOperation(value="查看了收藏夹", modelName = UserOperationModuleEnum.DATABASE) public ElectromagneticResult listFavorite(@RequestBody FileInfoQueryDTO fileInfoQueryDTO) { String userId = UserThreadLocal.getUserId(); - return ElectromagneticResultUtil.success(edFileFavoriteService.findFavorite(userId, fileInfoQueryDTO)); + return ElectromagneticResultUtil.success(edFileInfoService.findFavorite(userId, fileInfoQueryDTO)); } } diff --git a/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/controller/EdTagLibraryController.java b/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/controller/EdTagLibraryController.java index 0579e21..196ff41 100644 --- a/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/controller/EdTagLibraryController.java +++ b/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/controller/EdTagLibraryController.java @@ -5,6 +5,7 @@ import com.electromagnetic.industry.software.common.enums.UserOperationModuleEnu import com.electromagnetic.industry.software.common.resp.ElectromagneticResult; import com.electromagnetic.industry.software.common.util.ElectromagneticResultUtil; import com.electromagnetic.industry.software.common.util.UserThreadLocal; +import com.electromagnetic.industry.software.manage.pojo.req.TagCreateDTO; import com.electromagnetic.industry.software.manage.service.EdTagLibraryService; import com.electromagnetic.industry.software.manage.service.FileTagRelationService; import org.springframework.web.bind.annotation.*; @@ -91,8 +92,8 @@ public class EdTagLibraryController { // 批量添加标签到文件 @PostMapping("/addTagsToFile") @UserOperation(value="批量添加了标签到文件", modelName = UserOperationModuleEnum.TAG) - public ElectromagneticResult addTagsToFile(@RequestParam String fileId, @RequestParam List tagIds) { + public ElectromagneticResult addTagsToFile(@RequestBody TagCreateDTO dto) { String createdBy = UserThreadLocal.getUserId(); - return ElectromagneticResultUtil.success(fileTagRelationService.addTagsToFile(fileId, tagIds, createdBy)); + return ElectromagneticResultUtil.success(fileTagRelationService.addTagsToFile(dto.getFileId(), dto.getTagIds(), createdBy)); } } \ No newline at end of file diff --git a/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/controller/UserEdFileInfoController.java b/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/controller/UserEdFileInfoController.java index 4d31472..29f4f9f 100644 --- a/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/controller/UserEdFileInfoController.java +++ b/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/controller/UserEdFileInfoController.java @@ -161,7 +161,7 @@ public class UserEdFileInfoController { @UserOperation(value="收藏文件", modelName = UserOperationModuleEnum.USER_PRJ) public ElectromagneticResult addFavorite(@RequestParam String id) { String userId = UserThreadLocal.getUserId(); - return ElectromagneticResultUtil.success(edFileFavoriteService.addFavorite(userId, id)); + return ElectromagneticResultUtil.success(edFileInfoService.addFavorite(userId, id)); } /** @@ -173,19 +173,7 @@ public class UserEdFileInfoController { @UserOperation(value="从收藏夹移除文件", modelName = UserOperationModuleEnum.USER_PRJ) public ElectromagneticResult removeFavorite(@RequestParam String id) { String userId = UserThreadLocal.getUserId(); - return ElectromagneticResultUtil.success(edFileFavoriteService.removeFavorite(userId, id)); + return ElectromagneticResultUtil.success(edFileInfoService.removeFavorite(userId, id)); } - /** - * 展示当前用户收藏夹文件 - * @return - */ - @PostMapping("/listCollection") - @UserOperation(value="查看收藏夹", modelName = UserOperationModuleEnum.USER_PRJ) - public ElectromagneticResult listFavorite(@RequestBody FileInfoQueryDTO fileInfoQueryDTO) { - String userId = UserThreadLocal.getUserId(); - return ElectromagneticResultUtil.success(edFileFavoriteService.findFavorite(userId, fileInfoQueryDTO)); - } - - } diff --git a/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/pojo/models/EdFileFavorite.java b/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/pojo/models/EdFileFavorite.java index 0594a53..4ac9077 100644 --- a/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/pojo/models/EdFileFavorite.java +++ b/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/pojo/models/EdFileFavorite.java @@ -10,8 +10,8 @@ import lombok.Data; @TableName("ed_file_favorite") public class EdFileFavorite { - @TableId(type = IdType.AUTO) - private Long id; + @TableId(type = IdType.ASSIGN_UUID) + private String id; @TableField("user_id") private String userId; diff --git a/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/pojo/models/EdTagLibrary.java b/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/pojo/models/EdTagLibrary.java index a76b1ac..8055022 100644 --- a/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/pojo/models/EdTagLibrary.java +++ b/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/pojo/models/EdTagLibrary.java @@ -11,6 +11,7 @@ import java.util.Date; @TableName("ed_tag_library") public class EdTagLibrary { + @TableId private String tagId; // 主键 ID private String parentId; // 父 ID,"" 代表是标签组 private Integer type; // 0: 标签组, 1: 标签 diff --git a/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/pojo/other/FileInfoVO.java b/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/pojo/other/FileInfoVO.java index 377a2e4..9ec59fc 100644 --- a/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/pojo/other/FileInfoVO.java +++ b/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/pojo/other/FileInfoVO.java @@ -48,4 +48,9 @@ public class FileInfoVO { private List labels; + // 是否是收藏数据,1是,0否 + private Integer isFavorite; + + // 是否是个人数据,1是,0否 + private Integer isPersonal; } diff --git a/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/pojo/req/TagCreateDTO.java b/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/pojo/req/TagCreateDTO.java new file mode 100644 index 0000000..7828d41 --- /dev/null +++ b/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/pojo/req/TagCreateDTO.java @@ -0,0 +1,13 @@ +package com.electromagnetic.industry.software.manage.pojo.req; + +import lombok.Data; + +import java.util.List; + +@Data +public class TagCreateDTO { + + private String fileId; + + private List tagIds; +} diff --git a/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/service/EdFileFavoriteService.java b/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/service/EdFileFavoriteService.java index 620b2c6..95d3310 100644 --- a/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/service/EdFileFavoriteService.java +++ b/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/service/EdFileFavoriteService.java @@ -1,42 +1,7 @@ package com.electromagnetic.industry.software.manage.service; -import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.service.IService; import com.electromagnetic.industry.software.manage.pojo.models.EdFileFavorite; -import com.electromagnetic.industry.software.manage.pojo.other.FileInfoVO; -import com.electromagnetic.industry.software.manage.pojo.req.FileInfoQueryDTO; public interface EdFileFavoriteService extends IService { - - /** - * 添加收藏 - * @param userId - * @param fileId - * @return - */ - boolean addFavorite(String userId, String fileId); - - /** - * 移除收藏 - * @param userId - * @param fileId - * @return - */ - boolean removeFavorite(String userId, String fileId); - - /** - * 判断是否已收藏 - * @param userId - * @param fileId - * @return - */ - boolean isFavorite(String userId, String fileId); - - /** - * 查询当前用户收藏文件信息 - * @param userId 用户id - * @param fileInfoQueryDTO 分页信息 - * @return - */ - IPage findFavorite(String userId, FileInfoQueryDTO fileInfoQueryDTO); } 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 1fcb6b5..f1f9175 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 @@ -199,4 +199,36 @@ public interface EdFileInfoService { * @return */ public boolean isFolder(String id); + + /** + * 添加收藏 + * @param userId + * @param fileId + * @return + */ + boolean addFavorite(String userId, String fileId); + + /** + * 判断是否已收藏 + * @param userId + * @param fileId + * @return + */ + boolean isFavorite(String userId, String fileId); + + /** + * 移除收藏 + * @param userId + * @param fileId + * @return + */ + boolean removeFavorite(String userId, String fileId); + + /** + * 查询当前用户收藏文件信息 + * @param userId 用户id + * @param fileInfoQueryDTO 分页信息 + * @return + */ + IPage findFavorite(String userId, FileInfoQueryDTO fileInfoQueryDTO); } diff --git a/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/service/FileTagRelationService.java b/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/service/FileTagRelationService.java index 9a2cb3a..ffa41f3 100644 --- a/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/service/FileTagRelationService.java +++ b/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/service/FileTagRelationService.java @@ -2,11 +2,26 @@ package com.electromagnetic.industry.software.manage.service; import com.baomidou.mybatisplus.extension.service.IService; import com.electromagnetic.industry.software.manage.pojo.models.FileTagRelation; +import com.electromagnetic.industry.software.manage.pojo.resp.FileTagInfo; +import com.electromagnetic.industry.software.manage.pojo.resp.TagListVO; import java.util.List; public interface FileTagRelationService extends IService { - boolean addTagToFile(String fileId, String tagId, String createdBy); + /** + * 批量添加标签到文件 + * @param fileId + * @param tagIds + * @param createdBy + * @return + */ boolean addTagsToFile(String fileId, List tagIds, String createdBy); + + /** + * 获取文件标签 + * @param fileId + * @return + */ + List getFileTags (String fileId); } diff --git a/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/service/serviceimpl/EdFileFavoriteServiceImpl.java b/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/service/serviceimpl/EdFileFavoriteServiceImpl.java index 9e10eec..3ebae53 100644 --- a/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/service/serviceimpl/EdFileFavoriteServiceImpl.java +++ b/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/service/serviceimpl/EdFileFavoriteServiceImpl.java @@ -1,86 +1,11 @@ package com.electromagnetic.industry.software.manage.service.serviceimpl; -import cn.hutool.core.text.StrFormatter; -import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; -import com.baomidou.mybatisplus.core.metadata.IPage; -import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; -import com.electromagnetic.industry.software.common.enums.EffectFlagEnum; -import com.electromagnetic.industry.software.common.enums.EleDataSaveStatusEnum; -import com.electromagnetic.industry.software.common.exception.BizException; -import com.electromagnetic.industry.software.common.util.EleCommonUtil; -import com.electromagnetic.industry.software.common.util.UserThreadLocal; import com.electromagnetic.industry.software.manage.mapper.EdFileFavoriteMapper; import com.electromagnetic.industry.software.manage.pojo.models.EdFileFavorite; -import com.electromagnetic.industry.software.manage.pojo.other.FileInfoVO; -import com.electromagnetic.industry.software.manage.pojo.req.FileInfoQueryDTO; import com.electromagnetic.industry.software.manage.service.EdFileFavoriteService; -import com.electromagnetic.industry.software.manage.service.EdFileInfoService; import org.springframework.stereotype.Service; -import javax.annotation.Resource; -import java.util.List; - @Service public class EdFileFavoriteServiceImpl extends ServiceImpl implements EdFileFavoriteService { - - @Resource - private EdFileInfoService fileInfoService; - - @Override - public boolean addFavorite(String userId, String fileId) { - - // 查询是否已存在 - LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); - queryWrapper.eq(EdFileFavorite::getUserId, userId) - .eq(EdFileFavorite::getFileId, fileId); - if (this.getOne(queryWrapper) != null) { - throw new BizException("文件已收藏,无法重复收藏!"); - } - - // 插入收藏记录 - EdFileFavorite favorite = new EdFileFavorite(); - favorite.setUserId(userId); - favorite.setFileId(fileId); - boolean isSaved = this.save(favorite); - if (isSaved) { - UserThreadLocal.setSuccessInfo("", fileId, StrFormatter.format("收藏了文件")); - } - return isSaved; - } - - @Override - public boolean removeFavorite(String userId, String fileId) { - LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); - queryWrapper.eq(EdFileFavorite::getUserId, userId) - .eq(EdFileFavorite::getFileId, fileId); - boolean isRemoved = this.remove(queryWrapper); - if (isRemoved) { - UserThreadLocal.setSuccessInfo("", fileId, StrFormatter.format("取消了收藏")); - } - return isRemoved; - } - - @Override - public boolean isFavorite(String userId, String fileId) { - LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); - queryWrapper.eq(EdFileFavorite::getUserId, userId) - .eq(EdFileFavorite::getFileId, fileId); - return this.getOne(queryWrapper) != null; - } - - @Override - public IPage findFavorite(String userId, FileInfoQueryDTO fileInfoQueryDTO) { - // 查询该用户收藏的文件id - LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); - queryWrapper.select(EdFileFavorite::getFileId).eq(EdFileFavorite::getUserId, userId); - List fileIds = this.listObjs(queryWrapper, Object::toString); - - // 创建分页对象 - Page page = new Page<>(fileInfoQueryDTO.getPageNum(), fileInfoQueryDTO.getPageSize()); - IPage fileInfoVOIPage = fileInfoService.queryFileList(page, fileIds, fileInfoQueryDTO, EleDataSaveStatusEnum.SUCCESS.code, EffectFlagEnum.EFFECT.code); - fileInfoVOIPage.getRecords().forEach(e -> e.setFileSizeShow(EleCommonUtil.convertFileSize(e.getFileSize()))); - UserThreadLocal.setSuccessInfo("", "", "查询了收藏列表"); - return fileInfoVOIPage; - } } 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 6bd09c9..6a9fc1a 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 @@ -27,16 +27,14 @@ import com.electromagnetic.industry.software.common.util.*; import com.electromagnetic.industry.software.manage.config.ElePropertyConfig; import com.electromagnetic.industry.software.manage.mapper.EdFileInfoMapper; import com.electromagnetic.industry.software.manage.mapper.UserMapper; +import com.electromagnetic.industry.software.manage.pojo.models.EdFileFavorite; import com.electromagnetic.industry.software.manage.pojo.models.EdFileInfo; import com.electromagnetic.industry.software.manage.pojo.models.User; 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.*; -import com.electromagnetic.industry.software.manage.service.EdFileInfoService; -import com.electromagnetic.industry.software.manage.service.EdTagLibraryService; -import com.electromagnetic.industry.software.manage.service.FileSystemService; -import com.electromagnetic.industry.software.manage.service.PermissionService; +import com.electromagnetic.industry.software.manage.service.*; import org.springframework.core.io.FileSystemResource; import org.springframework.core.io.InputStreamResource; import org.springframework.http.HttpHeaders; @@ -79,7 +77,10 @@ public class EdFileInfoServiceImpl extends ServiceImpl edFileInfoPage = this.baseMapper.selectPage(new Page<>(pars.getPageNum(), pars.getPageSize()), queryWrapper); long total = edFileInfoPage.getTotal(); List records = BeanUtil.copyToList(edFileInfoPage.getRecords(), FileInfoVO.class); - records.forEach(e -> e.setFileSizeShow(EleCommonUtil.convertFileSize(e.getFileSize()))); + records.forEach(e -> { + e.setFileSizeShow(EleCommonUtil.convertFileSize(e.getFileSize())); + e.setIsFavorite(isFavorite(UserThreadLocal.getUserId(), e.getId()) ? 1 : 0); + e.setIsPersonal(dataOwnCode == DataOwnEnum.USER_FILE.code ? 1 : 0); + e.setLabels(fileTagRelationService.getFileTags(e.getId())); + }); UserThreadLocal.setSuccessInfo("", "", "查询文件成功"); return ElectromagneticResultUtil.success(new RespPageVO<>(total, records)); } @@ -1323,4 +1329,89 @@ public class EdFileInfoServiceImpl extends ServiceImpl queryWrapper = new LambdaQueryWrapper<>(); + queryWrapper.eq(EdFileFavorite::getUserId, userId) + .eq(EdFileFavorite::getFileId, fileId); + if (fileFavoriteService.getOne(queryWrapper) != null) { + throw new BizException("文件已收藏,无法重复收藏!"); + } + + // 插入收藏记录 + EdFileFavorite favorite = new EdFileFavorite(); + favorite.setUserId(userId); + favorite.setFileId(fileId); + boolean isSaved = fileFavoriteService.save(favorite); + if (isSaved) { + UserThreadLocal.setSuccessInfo("", fileId, StrFormatter.format("收藏了文件")); + } + return isSaved; + } + + /** + * 判断是否已收藏 + * @param userId + * @param fileId + * @return + */ + @Override + public boolean isFavorite(String userId, String fileId) { + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); + queryWrapper.eq(EdFileFavorite::getUserId, userId) + .eq(EdFileFavorite::getFileId, fileId); + return fileFavoriteService.getOne(queryWrapper) != null; + } + + /** + * 移除收藏 + * @param userId + * @param fileId + * @return + */ + @Override + public boolean removeFavorite(String userId, String fileId) { + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); + queryWrapper.eq(EdFileFavorite::getUserId, userId) + .eq(EdFileFavorite::getFileId, fileId); + boolean isRemoved = fileFavoriteService.remove(queryWrapper); + if (isRemoved) { + UserThreadLocal.setSuccessInfo("", fileId, StrFormatter.format("取消了收藏")); + } + return isRemoved; + } + + /** + * 查询当前用户收藏文件信息 + * @param userId 用户id + * @param fileInfoQueryDTO 分页信息 + * @return + */ + @Override + public IPage findFavorite(String userId, FileInfoQueryDTO fileInfoQueryDTO) { + // 查询该用户收藏的文件id + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); + queryWrapper.select(EdFileFavorite::getFileId).eq(EdFileFavorite::getUserId, userId); + List fileIds = fileFavoriteService.listObjs(queryWrapper, Object::toString); + + // 创建分页对象 + Page page = new Page<>(fileInfoQueryDTO.getPageNum(), fileInfoQueryDTO.getPageSize()); + IPage fileInfoVOIPage = queryFileList(page, fileIds, fileInfoQueryDTO, EleDataSaveStatusEnum.SUCCESS.code, EffectFlagEnum.EFFECT.code); + fileInfoVOIPage.getRecords().forEach(e -> { + e.setFileSizeShow(EleCommonUtil.convertFileSize(e.getFileSize())); + e.setIsFavorite(isFavorite(UserThreadLocal.getUserId(), e.getId()) ? 1 : 0); + e.setIsPersonal(e.getCreatedBy() == UserThreadLocal.getUserId() ? 1 : 0); + }); + UserThreadLocal.setSuccessInfo("", "", "查询了收藏列表"); + return fileInfoVOIPage; + } + } diff --git a/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/service/serviceimpl/FileTagRelationServiceImpl.java b/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/service/serviceimpl/FileTagRelationServiceImpl.java index defc64d..5ce8028 100644 --- a/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/service/serviceimpl/FileTagRelationServiceImpl.java +++ b/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/service/serviceimpl/FileTagRelationServiceImpl.java @@ -9,20 +9,23 @@ import com.electromagnetic.industry.software.manage.mapper.EdTagLibraryMapper; import com.electromagnetic.industry.software.manage.mapper.FileTagRelationMapper; import com.electromagnetic.industry.software.manage.pojo.models.EdTagLibrary; import com.electromagnetic.industry.software.manage.pojo.models.FileTagRelation; +import com.electromagnetic.industry.software.manage.pojo.resp.FileTagInfo; +import com.electromagnetic.industry.software.manage.pojo.resp.TagListVO; import com.electromagnetic.industry.software.manage.service.FileTagRelationService; +import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.context.annotation.Bean; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; +import java.util.ArrayList; import java.util.List; @Service public class FileTagRelationServiceImpl extends ServiceImpl implements FileTagRelationService { @Autowired private EdTagLibraryMapper edTagLibraryMapper; - @Override - @Transactional - public boolean addTagToFile(String fileId, String tagId, String createdBy) { + private boolean addTagToFile(String fileId, String tagId, String createdBy) { // 检查标签是否存在并且已发布 EdTagLibrary tag = edTagLibraryMapper.selectOne(new LambdaQueryWrapper() .eq(EdTagLibrary::getTagId, tagId) @@ -36,13 +39,19 @@ public class FileTagRelationServiceImpl extends ServiceImpl() + .eq(FileTagRelation::getFileId, fileId) + .eq(FileTagRelation::getTagId, tagId)); + } + /** + * 批量添加标签到文件 + * @param fileId + * @param tagIds + * @param createdBy + * @return + */ @Override @Transactional public boolean addTagsToFile(String fileId, List tagIds, String createdBy) { @@ -50,6 +59,29 @@ public class FileTagRelationServiceImpl extends ServiceImpl getFileTags (String fileId) { + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); + queryWrapper.eq(FileTagRelation::getFileId, fileId); + List relations = this.list(queryWrapper); + List result = new ArrayList<>(); + for (FileTagRelation relation : relations) { + EdTagLibrary tagInfo = edTagLibraryMapper.selectById(relation.getTagId()); + FileTagInfo vo = new FileTagInfo(); + BeanUtils.copyProperties(tagInfo, vo); + result.add(vo); + } + UserThreadLocal.setSuccessInfo("", "", "获取了标签数据"); + return result; + } } \ No newline at end of file