From 4bd12e3761135abc14223773eee0ce002beb36cd Mon Sep 17 00:00:00 2001 From: lizhanhao Date: Tue, 4 Mar 2025 17:19:08 +0800 Subject: [PATCH] =?UTF-8?q?=E6=96=B0=E5=A2=9E=E6=89=B9=E9=87=8F=E6=B7=BB?= =?UTF-8?q?=E5=8A=A0=E6=A0=87=E7=AD=BE=E5=88=B0=E6=96=87=E4=BB=B6=E5=8A=9F?= =?UTF-8?q?=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/EdTagLibraryController.java | 13 ++++- .../manage/mapper/FileTagRelationMapper.java | 9 +++ .../manage/pojo/models/FileTagRelation.java | 18 ++++++ .../service/FileTagRelationService.java | 12 ++++ .../FileTagRelationServiceImpl.java | 55 +++++++++++++++++++ 5 files changed, 106 insertions(+), 1 deletion(-) create mode 100644 electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/mapper/FileTagRelationMapper.java create mode 100644 electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/pojo/models/FileTagRelation.java create mode 100644 electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/service/FileTagRelationService.java create mode 100644 electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/service/serviceimpl/FileTagRelationServiceImpl.java 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 eee28e2..0579e21 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 @@ -6,6 +6,7 @@ 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.service.EdTagLibraryService; +import com.electromagnetic.industry.software.manage.service.FileTagRelationService; import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; import java.util.List; @@ -17,6 +18,9 @@ public class EdTagLibraryController { @Resource private EdTagLibraryService edTagLibraryService; + @Resource + private FileTagRelationService fileTagRelationService; + // 新建标签组 @PostMapping("/createGroup") @UserOperation(value="创建了标签组", modelName = UserOperationModuleEnum.TAG) @@ -83,5 +87,12 @@ public class EdTagLibraryController { public ElectromagneticResult listAllTags() { return ElectromagneticResultUtil.success(edTagLibraryService.listAllTags()); } -} + // 批量添加标签到文件 + @PostMapping("/addTagsToFile") + @UserOperation(value="批量添加了标签到文件", modelName = UserOperationModuleEnum.TAG) + public ElectromagneticResult addTagsToFile(@RequestParam String fileId, @RequestParam List tagIds) { + String createdBy = UserThreadLocal.getUserId(); + return ElectromagneticResultUtil.success(fileTagRelationService.addTagsToFile(fileId, tagIds, createdBy)); + } +} \ No newline at end of file diff --git a/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/mapper/FileTagRelationMapper.java b/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/mapper/FileTagRelationMapper.java new file mode 100644 index 0000000..34bb4fd --- /dev/null +++ b/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/mapper/FileTagRelationMapper.java @@ -0,0 +1,9 @@ +package com.electromagnetic.industry.software.manage.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.electromagnetic.industry.software.manage.pojo.models.FileTagRelation; +import org.apache.ibatis.annotations.Mapper; + +@Mapper +public interface FileTagRelationMapper extends BaseMapper { +} \ No newline at end of file diff --git a/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/pojo/models/FileTagRelation.java b/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/pojo/models/FileTagRelation.java new file mode 100644 index 0000000..dff366b --- /dev/null +++ b/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/pojo/models/FileTagRelation.java @@ -0,0 +1,18 @@ +package com.electromagnetic.industry.software.manage.pojo.models; + +import com.baomidou.mybatisplus.annotation.*; +import lombok.Data; + +import java.util.Date; + +@Data +@TableName("file_tag_relations") +public class FileTagRelation { + @TableId(type = IdType.ASSIGN_UUID) + private String id; + private String fileId; + private String tagId; + @TableField(fill = FieldFill.INSERT) + private Date createdTime; + private String createdBy; +} 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 new file mode 100644 index 0000000..9a2cb3a --- /dev/null +++ b/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/service/FileTagRelationService.java @@ -0,0 +1,12 @@ +package com.electromagnetic.industry.software.manage.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import com.electromagnetic.industry.software.manage.pojo.models.FileTagRelation; + +import java.util.List; + +public interface FileTagRelationService extends IService { + boolean addTagToFile(String fileId, String tagId, String createdBy); + + boolean addTagsToFile(String fileId, List tagIds, String createdBy); +} 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 new file mode 100644 index 0000000..defc64d --- /dev/null +++ b/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/service/serviceimpl/FileTagRelationServiceImpl.java @@ -0,0 +1,55 @@ +package com.electromagnetic.industry.software.manage.service.serviceimpl; +import cn.hutool.core.lang.Assert; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.electromagnetic.industry.software.common.enums.PublishEnum; +import com.electromagnetic.industry.software.common.util.IdWorker; +import com.electromagnetic.industry.software.common.util.UserThreadLocal; +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.service.FileTagRelationService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +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) { + // 检查标签是否存在并且已发布 + EdTagLibrary tag = edTagLibraryMapper.selectOne(new LambdaQueryWrapper() + .eq(EdTagLibrary::getTagId, tagId) + .eq(EdTagLibrary::getIsPublished, PublishEnum.PUBLISHED.getCode())); + Assert.notNull(tag, "标签不存在或未发布"); + + // 创建文件与标签关系 + FileTagRelation relation = new FileTagRelation(); + relation.setId(IdWorker.getSnowFlakeIdString()); + relation.setFileId(fileId); + relation.setTagId(tagId); + relation.setCreatedBy(createdBy); + + boolean isSuccess = this.save(relation); + if (isSuccess) { + UserThreadLocal.setSuccessInfo("", relation.getId(), "添加了标签到文件"); + } + return isSuccess; + } + + @Override + @Transactional + public boolean addTagsToFile(String fileId, List tagIds, String createdBy) { + boolean isSuccess = true; + for (String tagId : tagIds) { + isSuccess &= addTagToFile(fileId, tagId, createdBy); + } + return isSuccess; + } +} \ No newline at end of file