代码优化
This commit is contained in:
parent
77cf01c372
commit
851c7e0d47
|
|
@ -9,6 +9,6 @@ import org.apache.ibatis.annotations.Select;
|
|||
@Mapper
|
||||
public interface EdTagLibraryMapper extends BaseMapper<EdTagLibrary> {
|
||||
|
||||
@Select("SELECT MAX(order_by) FROM ed_tag_library WHERE type = #{type} and parent_id = #{parentId}")
|
||||
Integer selectMaxOrder(@Param("type") int type, @Param("parentId") String parentId);
|
||||
// @Select("SELECT MAX(order_by) FROM ed_tag_library WHERE type = #{type} and parent_id = #{parentId}")
|
||||
// Integer selectMaxOrder(@Param("type") int type, @Param("parentId") String parentId);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,16 +1,23 @@
|
|||
package com.electromagnetic.industry.software.manage.pojo.models;
|
||||
|
||||
import cn.hutool.core.util.RandomUtil;
|
||||
import com.baomidou.mybatisplus.annotation.FieldFill;
|
||||
import com.baomidou.mybatisplus.annotation.TableField;
|
||||
import com.baomidou.mybatisplus.annotation.TableId;
|
||||
import com.baomidou.mybatisplus.annotation.TableName;
|
||||
import com.electromagnetic.industry.software.common.cons.UserConstants;
|
||||
import com.electromagnetic.industry.software.common.enums.EffectFlagEnum;
|
||||
import com.electromagnetic.industry.software.common.enums.PublishEnum;
|
||||
import com.electromagnetic.industry.software.common.util.IdWorker;
|
||||
import com.electromagnetic.industry.software.common.util.SignUtils;
|
||||
import com.electromagnetic.industry.software.common.util.UserThreadLocal;
|
||||
import lombok.Data;
|
||||
|
||||
import java.util.Date;
|
||||
|
||||
@Data
|
||||
@TableName("ed_tag_library")
|
||||
public class EdTagLibrary {
|
||||
public class EdTagLibrary extends BaseModel{
|
||||
|
||||
@TableId
|
||||
private String tagId; // 主键 ID
|
||||
|
|
@ -19,14 +26,18 @@ public class EdTagLibrary {
|
|||
private String tagName; // 标签库或标签名称
|
||||
private Integer orderBy; // 排序字段
|
||||
private Integer isPublished; // 是否已发布(0: 未发布, 1: 已发布)
|
||||
private String createdBy; // 创建人
|
||||
|
||||
@TableField(fill = FieldFill.INSERT)
|
||||
private Date createdTime; // 创建时间
|
||||
|
||||
private String updatedBy; // 更新人
|
||||
|
||||
@TableField(fill = FieldFill.UPDATE)
|
||||
private Date updatedTime; // 更新时间
|
||||
public void newInit() {
|
||||
String id = IdWorker.getSnowFlakeIdString();
|
||||
String userId = UserThreadLocal.getUserId();
|
||||
this.setTagId(id);
|
||||
Date now = new Date();
|
||||
this.setCreatedTime(now);
|
||||
this.setUpdatedTime(now);
|
||||
this.setCreatedBy(userId);
|
||||
this.setUpdatedBy(userId);
|
||||
this.setEffectFlag(EffectFlagEnum.EFFECT.code);
|
||||
this.setIsPublished(PublishEnum.UNPUBLISHED.getCode()); //默认未发布
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -3,15 +3,32 @@ package com.electromagnetic.industry.software.manage.pojo.models;
|
|||
import com.baomidou.mybatisplus.annotation.IdType;
|
||||
import com.baomidou.mybatisplus.annotation.TableId;
|
||||
import com.baomidou.mybatisplus.annotation.TableName;
|
||||
import com.electromagnetic.industry.software.common.enums.EffectFlagEnum;
|
||||
import com.electromagnetic.industry.software.common.util.IdWorker;
|
||||
import com.electromagnetic.industry.software.common.util.UserThreadLocal;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
|
||||
import java.util.Date;
|
||||
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@Data
|
||||
@TableName("file_tag_relations")
|
||||
public class FileTagRelation extends BaseModel {
|
||||
@TableId(type = IdType.ASSIGN_UUID)
|
||||
|
||||
private String id;
|
||||
private String fileId;
|
||||
private String tagId;
|
||||
|
||||
public void newInit() {
|
||||
String newId = IdWorker.getSnowFlakeIdString();
|
||||
Date now = new Date();
|
||||
String userId = UserThreadLocal.getUserId();
|
||||
this.setId(newId);
|
||||
this.setCreatedTime(now);
|
||||
this.setCreatedBy(userId);
|
||||
this.setUpdatedTime(now);
|
||||
this.setUpdatedBy(userId);
|
||||
this.setEffectFlag(EffectFlagEnum.EFFECT.code);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -33,4 +33,5 @@ public interface FileTagRelationService extends IService<FileTagRelation> {
|
|||
* @return
|
||||
*/
|
||||
List<String> getFileIdsByTagIds(List<String> tagIds);
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1359,20 +1359,33 @@ public class EdFileInfoServiceImpl extends ServiceImpl<EdFileInfoMapper, EdFileI
|
|||
LambdaQueryWrapper<EdFileFavorite> queryWrapper = new LambdaQueryWrapper<>();
|
||||
queryWrapper.eq(EdFileFavorite::getUserId, userId)
|
||||
.eq(EdFileFavorite::getFileId, fileId);
|
||||
if (fileFavoriteService.getOne(queryWrapper) != null) {
|
||||
throw new BizException("文件已收藏,无法重复收藏!");
|
||||
EdFileFavorite existingFavorite = fileFavoriteService.getOne(queryWrapper);
|
||||
|
||||
boolean result;
|
||||
|
||||
if (existingFavorite != null) {
|
||||
// 如果收藏记录已存在且有效
|
||||
if (Objects.equals(existingFavorite.getEffectFlag(), EffectFlagEnum.EFFECT.code)) {
|
||||
throw new BizException("文件已收藏,无法重复收藏!");
|
||||
}
|
||||
// 恢复失效的收藏记录
|
||||
existingFavorite.setEffectFlag(EffectFlagEnum.EFFECT.code);
|
||||
existingFavorite.newInit(); // 重置更新时间等信息
|
||||
result = fileFavoriteService.updateById(existingFavorite);
|
||||
} else {
|
||||
// 插入收藏记录
|
||||
EdFileFavorite favorite = new EdFileFavorite();
|
||||
favorite.newInit();
|
||||
favorite.setUserId(userId);
|
||||
favorite.setFileId(fileId);
|
||||
result = fileFavoriteService.save(favorite);
|
||||
}
|
||||
|
||||
// 插入收藏记录
|
||||
EdFileFavorite favorite = new EdFileFavorite();
|
||||
favorite.setUserId(userId);
|
||||
favorite.setFileId(fileId);
|
||||
boolean isSaved = fileFavoriteService.save(favorite);
|
||||
if (isSaved) {
|
||||
if (result) {
|
||||
EdFileInfo fileInfo = this.baseMapper.selectById(fileId);
|
||||
UserThreadLocal.setSuccessInfo(Optional.ofNullable(fileInfo).map(EdFileInfo::getParentId).orElse(""), fileId, StrFormatter.format("收藏了文件"));
|
||||
}
|
||||
return isSaved;
|
||||
return result;
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
|||
|
|
@ -5,12 +5,13 @@ import cn.hutool.core.text.StrFormatter;
|
|||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
|
||||
import com.baomidou.mybatisplus.core.toolkit.StringUtils;
|
||||
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import com.electromagnetic.industry.software.common.enums.EffectFlagEnum;
|
||||
import com.electromagnetic.industry.software.common.enums.PublishEnum;
|
||||
import com.electromagnetic.industry.software.common.enums.TagTypeEnum;
|
||||
import com.electromagnetic.industry.software.common.exception.BizException;
|
||||
import com.electromagnetic.industry.software.common.pojo.TreeNode;
|
||||
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;
|
||||
|
|
@ -19,6 +20,7 @@ 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.EdTagLibraryService;
|
||||
import com.electromagnetic.industry.software.manage.service.FileTagRelationService;
|
||||
import jakarta.annotation.Resource;
|
||||
import org.springframework.beans.BeanUtils;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
|
@ -45,15 +47,13 @@ public class EdTagLibraryServiceImpl extends ServiceImpl<EdTagLibraryMapper, EdT
|
|||
|
||||
Assert.isTrue(!checkNameExist(tagName), StrFormatter.format("该标签组 {} 已存在", tagName));
|
||||
// 查询当前最大排序值
|
||||
Integer maxOrder = selectMaxOrder(TagTypeEnum.GROUP.getCode(), "0");
|
||||
int maxOrder = selectMaxOrder(TagTypeEnum.GROUP.getCode(), "0");
|
||||
EdTagLibrary tagGroup = new EdTagLibrary();
|
||||
tagGroup.setTagId(IdWorker.getSnowFlakeIdString());
|
||||
tagGroup.newInit();
|
||||
tagGroup.setParentId("0"); // 标签组父节点为"0"
|
||||
tagGroup.setType(TagTypeEnum.GROUP.getCode());
|
||||
tagGroup.setTagName(tagName);
|
||||
tagGroup.setOrderBy(maxOrder + 1); // 排在最后
|
||||
tagGroup.setIsPublished(PublishEnum.UNPUBLISHED.getCode());
|
||||
tagGroup.setCreatedBy(createdBy);
|
||||
boolean isSuccess = this.save(tagGroup);
|
||||
if (isSuccess) {
|
||||
UserThreadLocal.setSuccessInfo("", tagGroup.getTagId(), StrFormatter.format("新建了标签组{}", tagName));
|
||||
|
|
@ -72,9 +72,9 @@ public class EdTagLibraryServiceImpl extends ServiceImpl<EdTagLibraryMapper, EdT
|
|||
public Boolean createTag(String parentId, String tagName, String createdBy) {
|
||||
Assert.isTrue(!checkNameExist(tagName), StrFormatter.format("该标签名 {} 已存在", tagName));
|
||||
// 查询当前组内最大排序值
|
||||
Integer maxOrder = selectMaxOrder(TagTypeEnum.TAG.getCode(), parentId);
|
||||
int maxOrder = selectMaxOrder(TagTypeEnum.TAG.getCode(), parentId);
|
||||
EdTagLibrary tag = new EdTagLibrary();
|
||||
tag.setTagId(IdWorker.getSnowFlakeIdString());
|
||||
tag.newInit();
|
||||
tag.setParentId(parentId);
|
||||
tag.setType(TagTypeEnum.TAG.getCode()); // 标签
|
||||
tag.setTagName(tagName);
|
||||
|
|
@ -87,7 +87,7 @@ public class EdTagLibraryServiceImpl extends ServiceImpl<EdTagLibraryMapper, EdT
|
|||
tag.setCreatedBy(createdBy);
|
||||
boolean isSuccess = this.save(tag);
|
||||
if (isSuccess) {
|
||||
UserThreadLocal.setSuccessInfo("", tag.getTagId(), StrFormatter.format("新建了标签{}", tagName));
|
||||
UserThreadLocal.setSuccessInfo("", tag.getTagId(), StrFormatter.format("新建了标签 {} ", tagName));
|
||||
}
|
||||
return isSuccess;
|
||||
}
|
||||
|
|
@ -187,27 +187,51 @@ public class EdTagLibraryServiceImpl extends ServiceImpl<EdTagLibraryMapper, EdT
|
|||
@Override
|
||||
@Transactional
|
||||
public Boolean deleteTagOrGroup(String tagId) {
|
||||
EdTagLibrary tag = this.getById(tagId);
|
||||
EdTagLibrary tag = this.getOne(
|
||||
Wrappers.lambdaQuery(EdTagLibrary.class)
|
||||
.eq(EdTagLibrary::getTagId, tagId)
|
||||
.eq(EdTagLibrary::getEffectFlag, EffectFlagEnum.EFFECT.code)
|
||||
);
|
||||
Assert.notNull(tag, "标签不存在");
|
||||
// 如果是标签组,级联删除其下的所有标签
|
||||
if (tag.getType() == 0) {
|
||||
if (Objects.equals(tag.getType(), TagTypeEnum.GROUP.getCode())) {
|
||||
|
||||
// 逻辑删除子标签
|
||||
this.update(
|
||||
Wrappers.lambdaUpdate(EdTagLibrary.class)
|
||||
.set(EdTagLibrary::getEffectFlag, EffectFlagEnum.NOT_EFFECTIVE.code)
|
||||
.eq(EdTagLibrary::getParentId, tagId)
|
||||
);
|
||||
|
||||
// 查询所有子标签
|
||||
List<EdTagLibrary> tags = this.list(new LambdaQueryWrapper<EdTagLibrary>()
|
||||
.eq(EdTagLibrary::getParentId, tagId));
|
||||
// 删除所有子标签的关联关系
|
||||
fileTagRelationMapper.delete(new LambdaQueryWrapper<FileTagRelation>().in(FileTagRelation::getTagId, tags.stream().map(EdTagLibrary::getTagId).collect(Collectors.toList())));
|
||||
// 删除所有子标签
|
||||
this.remove(new LambdaQueryWrapper<EdTagLibrary>().eq(EdTagLibrary::getParentId, tagId));
|
||||
// 逻辑删除子标签的关联关系
|
||||
if (!tags.isEmpty()) {
|
||||
fileTagRelationMapper.update(
|
||||
Wrappers.lambdaUpdate(FileTagRelation.class)
|
||||
.set(FileTagRelation::getEffectFlag, EffectFlagEnum.NOT_EFFECTIVE.code)
|
||||
.in(FileTagRelation::getTagId, tags.stream().map(EdTagLibrary::getTagId).collect(Collectors.toList()))
|
||||
);
|
||||
}
|
||||
}
|
||||
// 删除本身
|
||||
boolean isDeleted = this.removeById(tagId);
|
||||
// 删除本身的关联关系
|
||||
fileTagRelationMapper.delete(new LambdaQueryWrapper<FileTagRelation>().eq(FileTagRelation::getTagId, tagId));
|
||||
if (isDeleted) {
|
||||
|
||||
// 逻辑删除当前标签/组
|
||||
boolean mainDeleted = this.update(
|
||||
Wrappers.lambdaUpdate(EdTagLibrary.class)
|
||||
.set(EdTagLibrary::getEffectFlag, EffectFlagEnum.NOT_EFFECTIVE.code)
|
||||
.eq(EdTagLibrary::getTagId, tagId)
|
||||
);
|
||||
// 逻辑删除本身的关联关系
|
||||
fileTagRelationMapper.update(
|
||||
Wrappers.lambdaUpdate(FileTagRelation.class)
|
||||
.set(FileTagRelation::getEffectFlag, EffectFlagEnum.NOT_EFFECTIVE.code)
|
||||
.eq(FileTagRelation::getTagId, tagId)
|
||||
);
|
||||
if (mainDeleted) {
|
||||
UserThreadLocal.setSuccessInfo("", tagId, StrFormatter.format("删除了标签 {} ", tag.getTagName()));
|
||||
}
|
||||
return isDeleted;
|
||||
return mainDeleted;
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
@ -221,11 +245,13 @@ public class EdTagLibraryServiceImpl extends ServiceImpl<EdTagLibraryMapper, EdT
|
|||
// 查询所有标签组
|
||||
List<EdTagLibrary> groups = this.list(new LambdaQueryWrapper<EdTagLibrary>()
|
||||
.eq(EdTagLibrary::getType, TagTypeEnum.GROUP.getCode())
|
||||
.eq(EdTagLibrary::getEffectFlag, EffectFlagEnum.EFFECT.code)
|
||||
.orderByAsc(EdTagLibrary::getOrderBy));
|
||||
|
||||
// 查询所有标签
|
||||
List<EdTagLibrary> tags = this.list(new LambdaQueryWrapper<EdTagLibrary>()
|
||||
.eq(EdTagLibrary::getType, TagTypeEnum.TAG.getCode())
|
||||
.eq(EdTagLibrary::getEffectFlag, EffectFlagEnum.EFFECT.code)
|
||||
.orderByAsc(EdTagLibrary::getOrderBy));
|
||||
|
||||
// 构造分组数据
|
||||
|
|
@ -296,7 +322,8 @@ public class EdTagLibraryServiceImpl extends ServiceImpl<EdTagLibraryMapper, EdT
|
|||
public List<TreeNode> listTagTree() {
|
||||
|
||||
LambdaQueryWrapper<EdTagLibrary> queryWrapper = new LambdaQueryWrapper<>();
|
||||
queryWrapper.eq(EdTagLibrary::getIsPublished, PublishEnum.PUBLISHED.getCode());
|
||||
queryWrapper.eq(EdTagLibrary::getIsPublished, PublishEnum.PUBLISHED.getCode())
|
||||
.eq(EdTagLibrary::getEffectFlag, EffectFlagEnum.EFFECT.code);
|
||||
List<EdTagLibrary> tags = this.list(queryWrapper);
|
||||
Map<String, TreeNode> map = new HashMap<>();
|
||||
List<TreeNode> list = new ArrayList<>();
|
||||
|
|
@ -343,7 +370,8 @@ public class EdTagLibraryServiceImpl extends ServiceImpl<EdTagLibraryMapper, EdT
|
|||
public List<FileTagInfo> listAllTags() {
|
||||
LambdaQueryWrapper<EdTagLibrary> queryWrapper = new LambdaQueryWrapper<>();
|
||||
queryWrapper.eq(EdTagLibrary::getIsPublished, PublishEnum.PUBLISHED.getCode())
|
||||
.eq(EdTagLibrary::getType, TagTypeEnum.TAG.getCode());
|
||||
.eq(EdTagLibrary::getType, TagTypeEnum.TAG.getCode())
|
||||
.eq(EdTagLibrary::getEffectFlag, EffectFlagEnum.EFFECT.code);
|
||||
return this.list(queryWrapper).stream()
|
||||
.map(tag -> {
|
||||
FileTagInfo info = new FileTagInfo();
|
||||
|
|
@ -360,7 +388,7 @@ public class EdTagLibraryServiceImpl extends ServiceImpl<EdTagLibraryMapper, EdT
|
|||
*/
|
||||
private boolean checkNameExist(String tagName) {
|
||||
LambdaQueryWrapper<EdTagLibrary> queryWrapper = new LambdaQueryWrapper<>();
|
||||
queryWrapper.eq(EdTagLibrary::getTagName, tagName);
|
||||
queryWrapper.eq(EdTagLibrary::getTagName, tagName).eq(EdTagLibrary::getEffectFlag, EffectFlagEnum.EFFECT.code);
|
||||
return this.count(queryWrapper) > 0;
|
||||
}
|
||||
|
||||
|
|
@ -371,8 +399,19 @@ public class EdTagLibraryServiceImpl extends ServiceImpl<EdTagLibraryMapper, EdT
|
|||
*/
|
||||
private int selectMaxOrder(int typeCode, String parentId) {
|
||||
// 查询当前最大排序值
|
||||
int maxOrder = Optional.ofNullable(this.getBaseMapper().selectMaxOrder(typeCode, parentId)).orElse(0);
|
||||
return maxOrder;
|
||||
// int maxOrder = Optional.ofNullable(this.getBaseMapper().selectMaxOrder(typeCode, parentId)).orElse(0);
|
||||
return this.baseMapper.selectObjs(
|
||||
Wrappers.lambdaQuery(EdTagLibrary.class)
|
||||
.select(EdTagLibrary::getOrderBy)
|
||||
.eq(EdTagLibrary::getType, typeCode)
|
||||
.eq(EdTagLibrary::getParentId, parentId)
|
||||
.eq(EdTagLibrary::getEffectFlag, EffectFlagEnum.EFFECT.code)
|
||||
.orderByDesc(EdTagLibrary::getOrderBy)
|
||||
.last("LIMIT 1") // 取最大值
|
||||
).stream()
|
||||
.findFirst()
|
||||
.map(obj -> (Integer) obj)
|
||||
.orElse(0); // 处理空值
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -2,7 +2,10 @@ 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.core.conditions.update.LambdaUpdateWrapper;
|
||||
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import com.electromagnetic.industry.software.common.enums.EffectFlagEnum;
|
||||
import com.electromagnetic.industry.software.common.enums.PublishEnum;
|
||||
import com.electromagnetic.industry.software.common.util.IdWorker;
|
||||
import com.electromagnetic.industry.software.common.util.UserThreadLocal;
|
||||
|
|
@ -39,20 +42,29 @@ public class FileTagRelationServiceImpl extends ServiceImpl<FileTagRelationMappe
|
|||
// 检查标签是否存在并且已发布
|
||||
EdTagLibrary tag = edTagLibraryMapper.selectOne(new LambdaQueryWrapper<EdTagLibrary>()
|
||||
.eq(EdTagLibrary::getTagId, tagId)
|
||||
.eq(EdTagLibrary::getIsPublished, PublishEnum.PUBLISHED.getCode()));
|
||||
.eq(EdTagLibrary::getIsPublished, PublishEnum.PUBLISHED.getCode())
|
||||
.eq(EdTagLibrary::getEffectFlag, EffectFlagEnum.EFFECT.code));
|
||||
Assert.notNull(tag, "标签不存在或未发布");
|
||||
|
||||
// 创建文件与标签关系
|
||||
FileTagRelation relation = new FileTagRelation();
|
||||
relation.setId(IdWorker.getSnowFlakeIdString());
|
||||
relation.setFileId(fileId);
|
||||
relation.setTagId(tagId);
|
||||
relation.setCreatedBy(createdBy);
|
||||
|
||||
return this.saveOrUpdate(relation, new LambdaQueryWrapper<FileTagRelation>()
|
||||
// 查询或创建关联关系
|
||||
FileTagRelation relation = this.getOne(new LambdaQueryWrapper<FileTagRelation>()
|
||||
.eq(FileTagRelation::getFileId, fileId)
|
||||
.eq(FileTagRelation::getTagId, tagId));
|
||||
|
||||
boolean result;
|
||||
if (relation == null) {
|
||||
relation = new FileTagRelation();
|
||||
relation.newInit();
|
||||
relation.setFileId(fileId);
|
||||
relation.setTagId(tagId);
|
||||
result = this.save(relation);
|
||||
} else {
|
||||
// 恢复已删除的关联
|
||||
relation.setEffectFlag(EffectFlagEnum.EFFECT.code);
|
||||
relation.setUpdatedBy(createdBy);
|
||||
result = this.updateById(relation);
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
@ -66,6 +78,8 @@ public class FileTagRelationServiceImpl extends ServiceImpl<FileTagRelationMappe
|
|||
@Override
|
||||
@Transactional
|
||||
public boolean addTagsToFile(String fileId, List<String> tagIds, String createdBy) {
|
||||
|
||||
Assert.notEmpty(tagIds, "标签列表不能为空");
|
||||
boolean isSuccess = true;
|
||||
for (String tagId : tagIds) {
|
||||
isSuccess &= addTagToFile(fileId, tagId, createdBy);
|
||||
|
|
@ -75,6 +89,7 @@ public class FileTagRelationServiceImpl extends ServiceImpl<FileTagRelationMappe
|
|||
String tags = edTagLibraryMapper.selectList(new LambdaQueryWrapper<EdTagLibrary>()
|
||||
.in(EdTagLibrary::getTagId, tagIds)
|
||||
.select(EdTagLibrary::getTagName)
|
||||
.eq(EdTagLibrary::getEffectFlag, EffectFlagEnum.EFFECT.code)
|
||||
.eq(EdTagLibrary::getIsPublished, PublishEnum.PUBLISHED.getCode())).stream().map(EdTagLibrary::getTagName).collect(Collectors.joining(","));
|
||||
|
||||
EdFileInfo fileInfo = edFileInfoMapper.selectById(fileId);
|
||||
|
|
@ -93,7 +108,8 @@ public class FileTagRelationServiceImpl extends ServiceImpl<FileTagRelationMappe
|
|||
@Override
|
||||
public List<FileTagInfo> getFileTags(String fileId) {
|
||||
LambdaQueryWrapper<FileTagRelation> queryWrapper = new LambdaQueryWrapper<>();
|
||||
queryWrapper.eq(FileTagRelation::getFileId, fileId);
|
||||
queryWrapper.eq(FileTagRelation::getFileId, fileId)
|
||||
.eq(FileTagRelation::getEffectFlag, EffectFlagEnum.EFFECT.code);
|
||||
List<FileTagRelation> relations = this.list(queryWrapper);
|
||||
List<FileTagInfo> result = new ArrayList<>();
|
||||
for (FileTagRelation relation : relations) {
|
||||
|
|
@ -117,11 +133,13 @@ public class FileTagRelationServiceImpl extends ServiceImpl<FileTagRelationMappe
|
|||
@Override
|
||||
public List<String> getFileIdsByTagIds(List<String> tagIds) {
|
||||
LambdaQueryWrapper<FileTagRelation> queryWrapper = new LambdaQueryWrapper<>();
|
||||
queryWrapper.in(FileTagRelation::getTagId, tagIds);
|
||||
queryWrapper.in(FileTagRelation::getTagId, tagIds)
|
||||
.eq(FileTagRelation::getEffectFlag, EffectFlagEnum.EFFECT.code);
|
||||
List<FileTagRelation> relations = this.list(queryWrapper);
|
||||
return relations.stream()
|
||||
.map(FileTagRelation::getFileId)
|
||||
.distinct()
|
||||
.toList();
|
||||
}
|
||||
|
||||
}
|
||||
Loading…
Reference in New Issue