增加添加收藏,取消收藏,收藏页数据接口
This commit is contained in:
parent
e097e6e1aa
commit
b08e515b11
|
|
@ -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));
|
||||
}
|
||||
}
|
||||
|
|
@ -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> {
|
||||
|
||||
}
|
||||
|
|
@ -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;
|
||||
|
||||
}
|
||||
|
|
@ -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;
|
||||
}
|
||||
|
|
@ -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);
|
||||
}
|
||||
|
|
@ -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);
|
||||
}
|
||||
}
|
||||
Loading…
Reference in New Issue