Compare commits

..

2 Commits

6 changed files with 222 additions and 0 deletions

View File

@ -0,0 +1,51 @@
package com.electromagnetic.industry.software.manage.controller;
import com.electromagnetic.industry.software.common.exception.BizException;
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.PageDTO;
import com.electromagnetic.industry.software.manage.service.EdFileFavoriteService;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
@RestController
@RequestMapping("/data/ed/favorite")
public class EdFileFavoriteController {
@Resource
EdFileFavoriteService edFileFavoriteService;
/**
* 添加进收藏夹
* @param id 文件id
* @return
*/
@PostMapping("/add")
public ElectromagneticResult<?> addFavorite(@RequestParam String id) {
String userId = UserThreadLocal.getUserId();
return ElectromagneticResultUtil.success(edFileFavoriteService.addFavorite(userId, id));
}
/**
* 从收藏夹移除
* @param id 文件id
* @return
*/
@PostMapping("/remove")
public ElectromagneticResult<?> removeFavorite(@RequestParam String id) {
String userId = UserThreadLocal.getUserId();
return ElectromagneticResultUtil.success(edFileFavoriteService.removeFavorite(userId, id));
}
/**
* 展示当前用户收藏夹文件
* @return
*/
@PostMapping("/list")
public ElectromagneticResult<?> listFavorite(@RequestBody PageDTO pageDTO) {
String userId = UserThreadLocal.getUserId();
return ElectromagneticResultUtil.success(edFileFavoriteService.findFavorite(userId, pageDTO));
}
}

View File

@ -0,0 +1,10 @@
package com.electromagnetic.industry.software.manage.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.electromagnetic.industry.software.manage.pojo.models.EdFileFavorite;
import org.apache.ibatis.annotations.Mapper;
@Mapper
public interface EdFileFavoriteMapper extends BaseMapper<EdFileFavorite> {
}

View File

@ -0,0 +1,22 @@
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.Data;
@Data
@TableName("ed_file_favorite")
public class EdFileFavorite {
@TableId(type = IdType.AUTO)
private Long id;
@TableField("user_id")
private String userId;
@TableField("file_id")
private String fileId;
}

View File

@ -0,0 +1,17 @@
package com.electromagnetic.industry.software.manage.pojo.req;
import lombok.Data;
@Data
public class PageDTO {
/**
* 页码
*/
private Integer pageIndex = 1;
/**
* 页数据量
*/
private Integer pageSize = 10;
}

View File

@ -0,0 +1,42 @@
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.models.EdFileInfo;
import com.electromagnetic.industry.software.manage.pojo.req.PageDTO;
public interface EdFileFavoriteService extends IService<EdFileFavorite> {
/**
* 添加收藏
* @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 pageDTO 分页信息
* @return
*/
IPage<EdFileInfo> findFavorite(String userId, PageDTO pageDTO);
}

View File

@ -0,0 +1,80 @@
package com.electromagnetic.industry.software.manage.service.serviceimpl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
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.manage.mapper.EdFileFavoriteMapper;
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.req.PageDTO;
import com.electromagnetic.industry.software.manage.pojo.req.RoleDTO;
import com.electromagnetic.industry.software.manage.service.EdFileFavoriteService;
import com.electromagnetic.industry.software.manage.service.EdFileInfoService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource;
import java.util.List;
@Service
public class EdFileFavoriteServiceImpl extends ServiceImpl<EdFileFavoriteMapper, EdFileFavorite> implements EdFileFavoriteService {
@Resource
private EdFileInfoServiceImpl fileInfoServiceImpl;
@Override
public boolean addFavorite(String userId, String fileId) {
// 查询是否已存在
LambdaQueryWrapper<EdFileFavorite> 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);
return this.save(favorite);
}
@Override
public boolean removeFavorite(String userId, String fileId) {
LambdaQueryWrapper<EdFileFavorite> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.eq(EdFileFavorite::getUserId, userId)
.eq(EdFileFavorite::getFileId, fileId);
return this.remove(queryWrapper);
}
@Override
public boolean isFavorite(String userId, String fileId) {
LambdaQueryWrapper<EdFileFavorite> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.eq(EdFileFavorite::getUserId, userId)
.eq(EdFileFavorite::getFileId, fileId);
return this.getOne(queryWrapper) != null;
}
@Override
public IPage<EdFileInfo> findFavorite(String userId, PageDTO pageDTO) {
// 查询该用户收藏的文件id
LambdaQueryWrapper<EdFileFavorite> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.select(EdFileFavorite::getFileId).eq(EdFileFavorite::getUserId, userId);
List<String> fileIds = this.listObjs(queryWrapper, Object::toString);
// 创建分页对象
Page<EdFileInfo> page = new Page<>(pageDTO.getPageIndex(), pageDTO.getPageSize());
LambdaQueryWrapper<EdFileInfo> queryWrapper2 = Wrappers.lambdaQuery(EdFileInfo.class)
.eq(EdFileInfo::getSaveStatus, EleDataSaveStatusEnum.SUCCESS.code)
.eq(EdFileInfo::getEffectFlag, EffectFlagEnum.EFFECT.code)
.in(EdFileInfo::getFileId, fileIds);
return fileInfoServiceImpl.page(page, queryWrapper2);
}
}