fix:修改文件收藏表及相应功能

This commit is contained in:
s2042968 2025-04-16 14:58:04 +08:00
parent 98d8b621b3
commit 08310e1606
5 changed files with 79 additions and 21 deletions

View File

@ -4,11 +4,17 @@ import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName; import com.baomidou.mybatisplus.annotation.TableName;
import com.electromagnetic.industry.software.common.enums.EffectFlagEnum;
import com.electromagnetic.industry.software.common.util.EleCommonUtil;
import com.electromagnetic.industry.software.common.util.IdWorker;
import com.electromagnetic.industry.software.common.util.UserThreadLocal;
import lombok.Data; import lombok.Data;
import java.util.Date;
@Data @Data
@TableName("ed_file_favorite") @TableName("ed_file_favorite")
public class EdFileFavorite { public class EdFileFavorite extends BaseModel{
@TableId(type = IdType.ASSIGN_UUID) @TableId(type = IdType.ASSIGN_UUID)
private String id; private String id;
@ -19,4 +25,15 @@ public class EdFileFavorite {
@TableField("file_id") @TableField("file_id")
private String fileId; private String fileId;
public void newInit() {
String userId = UserThreadLocal.getUserId();
String newId = IdWorker.getSnowFlakeIdString();
Date now = new Date();
this.setId(newId);
this.setCreatedTime(now);
this.setCreatedBy(userId);
this.setUpdatedTime(now);
this.setUpdatedBy(userId);
this.setEffectFlag(EffectFlagEnum.EFFECT.code);
}
} }

View File

@ -4,4 +4,13 @@ import com.baomidou.mybatisplus.extension.service.IService;
import com.electromagnetic.industry.software.manage.pojo.models.EdFileFavorite; import com.electromagnetic.industry.software.manage.pojo.models.EdFileFavorite;
public interface EdFileFavoriteService extends IService<EdFileFavorite> { public interface EdFileFavoriteService extends IService<EdFileFavorite> {
/**
* 逻辑删除
* @param userId
* @param fileId
* @return
*/
public boolean logicRemove (String userId, String fileId);
} }

View File

@ -1,6 +1,10 @@
package com.electromagnetic.industry.software.manage.service.serviceimpl; package com.electromagnetic.industry.software.manage.service.serviceimpl;
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.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.electromagnetic.industry.software.common.enums.EffectFlagEnum;
import com.electromagnetic.industry.software.manage.mapper.EdFileFavoriteMapper; import com.electromagnetic.industry.software.manage.mapper.EdFileFavoriteMapper;
import com.electromagnetic.industry.software.manage.pojo.models.EdFileFavorite; import com.electromagnetic.industry.software.manage.pojo.models.EdFileFavorite;
import com.electromagnetic.industry.software.manage.service.EdFileFavoriteService; import com.electromagnetic.industry.software.manage.service.EdFileFavoriteService;
@ -8,4 +12,19 @@ import org.springframework.stereotype.Service;
@Service @Service
public class EdFileFavoriteServiceImpl extends ServiceImpl<EdFileFavoriteMapper, EdFileFavorite> implements EdFileFavoriteService { public class EdFileFavoriteServiceImpl extends ServiceImpl<EdFileFavoriteMapper, EdFileFavorite> implements EdFileFavoriteService {
/**
* 逻辑删除
* @param userId
* @param fileId
* @return
*/
public boolean logicRemove (String userId, String fileId) {
LambdaUpdateWrapper <EdFileFavorite> updateWrapper = Wrappers.lambdaUpdate(EdFileFavorite.class)
.eq(EdFileFavorite::getUserId, userId)
.eq(EdFileFavorite::getFileId, fileId)
.set(EdFileFavorite::getEffectFlag, EffectFlagEnum.NOT_EFFECTIVE.code);
return update(updateWrapper);
}
} }

View File

@ -1615,24 +1615,37 @@ public class EdFileInfoServiceImpl extends ServiceImpl<EdFileInfoMapper, EdFileI
* @return * @return
*/ */
@Override @Override
@Transactional
public boolean addFavorite(String userId, String fileId) { public boolean addFavorite(String userId, String fileId) {
// 查询是否已存在 EdFileInfo fileInfo = this.baseMapper.selectById(fileId);
LambdaQueryWrapper<EdFileFavorite> queryWrapper = new LambdaQueryWrapper<>(); // 文件是否有效
queryWrapper.eq(EdFileFavorite::getUserId, userId) Assert.isTrue(fileInfo != null && fileInfo.getEffectFlag().equals(EffectFlagEnum.EFFECT.code), StrFormatter.format("文件已删除,无法收藏!"));
.eq(EdFileFavorite::getFileId, fileId);
if (fileFavoriteService.getOne(queryWrapper) != null) { EdFileFavorite favorite = fileFavoriteService.getOne(
Wrappers.<EdFileFavorite>lambdaQuery()
.eq(EdFileFavorite::getUserId, userId)
.eq(EdFileFavorite::getFileId, fileId)
);
// 检查是否已存在有效收藏
if (favorite != null && EffectFlagEnum.EFFECT.code.equals(favorite.getEffectFlag())) {
throw new BizException("文件已收藏,无法重复收藏!"); throw new BizException("文件已收藏,无法重复收藏!");
} }
// 插入收藏记录 boolean isSaved;
EdFileFavorite favorite = new EdFileFavorite(); if (favorite != null) {
favorite.setUserId(userId); favorite.setEffectFlag(EffectFlagEnum.EFFECT.code);
favorite.setFileId(fileId); isSaved = fileFavoriteService.updateById(favorite);
boolean isSaved = fileFavoriteService.save(favorite); } else {
EdFileFavorite fileFavorite = new EdFileFavorite();
fileFavorite.newInit();
fileFavorite.setUserId(userId);
fileFavorite.setFileId(fileId);
isSaved = fileFavoriteService.save(fileFavorite);
}
if (isSaved) { if (isSaved) {
EdFileInfo fileInfo = this.baseMapper.selectById(fileId); UserThreadLocal.setSuccessInfo("", fileId, StrFormatter.format("收藏了文件"));
UserThreadLocal.setSuccessInfo(Optional.ofNullable(fileInfo).map(EdFileInfo::getParentId).orElse(""), fileId, StrFormatter.format("收藏了文件"));
} }
return isSaved; return isSaved;
} }
@ -1648,7 +1661,8 @@ public class EdFileInfoServiceImpl extends ServiceImpl<EdFileInfoMapper, EdFileI
public boolean isFavorite(String userId, String fileId) { public boolean isFavorite(String userId, String fileId) {
LambdaQueryWrapper<EdFileFavorite> queryWrapper = new LambdaQueryWrapper<>(); LambdaQueryWrapper<EdFileFavorite> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.eq(EdFileFavorite::getUserId, userId) queryWrapper.eq(EdFileFavorite::getUserId, userId)
.eq(EdFileFavorite::getFileId, fileId); .eq(EdFileFavorite::getFileId, fileId)
.eq(EdFileFavorite::getEffectFlag, EffectFlagEnum.EFFECT.code);
return fileFavoriteService.getOne(queryWrapper) != null; return fileFavoriteService.getOne(queryWrapper) != null;
} }
@ -1661,10 +1675,7 @@ public class EdFileInfoServiceImpl extends ServiceImpl<EdFileInfoMapper, EdFileI
*/ */
@Override @Override
public boolean removeFavorite(String userId, String fileId) { public boolean removeFavorite(String userId, String fileId) {
LambdaQueryWrapper<EdFileFavorite> queryWrapper = new LambdaQueryWrapper<>(); boolean isRemoved = fileFavoriteService.logicRemove(userId, fileId);
queryWrapper.eq(EdFileFavorite::getUserId, userId)
.eq(EdFileFavorite::getFileId, fileId);
boolean isRemoved = fileFavoriteService.remove(queryWrapper);
if (isRemoved) { if (isRemoved) {
UserThreadLocal.setSuccessInfo("", fileId, StrFormatter.format("取消了收藏")); UserThreadLocal.setSuccessInfo("", fileId, StrFormatter.format("取消了收藏"));
} }
@ -1693,7 +1704,9 @@ public class EdFileInfoServiceImpl extends ServiceImpl<EdFileInfoMapper, EdFileI
fileIds = this.baseMapper.selectList(queryWrapper).stream().map(EdFileInfo::getFileId).toList(); fileIds = this.baseMapper.selectList(queryWrapper).stream().map(EdFileInfo::getFileId).toList();
} else { } else {
LambdaQueryWrapper<EdFileFavorite> queryWrapper = new LambdaQueryWrapper<>(); LambdaQueryWrapper<EdFileFavorite> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.select(EdFileFavorite::getFileId).eq(EdFileFavorite::getUserId, userId); queryWrapper.select(EdFileFavorite::getFileId)
.eq(EdFileFavorite::getUserId, userId)
.eq(EdFileFavorite::getEffectFlag, EffectFlagEnum.EFFECT.code);
fileIds = fileFavoriteService.listObjs(queryWrapper, Object::toString); fileIds = fileFavoriteService.listObjs(queryWrapper, Object::toString);
} }

View File

@ -31,8 +31,8 @@
</dependency> </dependency>
<dependency> <dependency>
<groupId>org.bouncycastle</groupId> <groupId>org.bouncycastle</groupId>
<artifactId>bcprov-jdk16</artifactId> <artifactId>bcprov-jdk18on</artifactId>
<version>1.46</version> <version>1.77</version>
</dependency> </dependency>
<dependency> <dependency>
<groupId>cn.hutool</groupId> <groupId>cn.hutool</groupId>