fix:修改文件收藏表及相应功能
This commit is contained in:
parent
98d8b621b3
commit
08310e1606
|
|
@ -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);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -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);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -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);
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -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);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -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>
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue