Compare commits

..

2 Commits

Author SHA1 Message Date
s2042968 b099734668 合并冲突 2025-02-20 15:37:09 +08:00
s2042968 5e118c9d10 收藏页面数据查询接口 2025-02-20 15:22:35 +08:00
10 changed files with 158 additions and 56 deletions

View File

@ -3,7 +3,7 @@ package com.electromagnetic.industry.software.manage.controller;
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.pojo.req.FileInfoQueryDTO;
import com.electromagnetic.industry.software.manage.service.EdFileFavoriteService;
import org.springframework.web.bind.annotation.*;
@ -43,8 +43,8 @@ public class EdFileFavoriteController {
* @return
*/
@PostMapping("/list")
public ElectromagneticResult<?> listFavorite(@RequestBody PageDTO pageDTO) {
public ElectromagneticResult<?> listFavorite(@RequestBody FileInfoQueryDTO fileInfoQueryDTO) {
String userId = UserThreadLocal.getUserId();
return ElectromagneticResultUtil.success(edFileFavoriteService.findFavorite(userId, pageDTO));
return ElectromagneticResultUtil.success(edFileFavoriteService.findFavorite(userId, fileInfoQueryDTO));
}
}

View File

@ -1,12 +1,31 @@
package com.electromagnetic.industry.software.manage.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.electromagnetic.industry.software.manage.pojo.models.EdFileInfo;
import com.electromagnetic.industry.software.manage.pojo.other.FileInfoVO;
import com.electromagnetic.industry.software.manage.pojo.req.FileInfoQueryDTO;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import java.util.List;
@Mapper
public interface EdFileInfoMapper extends BaseMapper<EdFileInfo> {
String maxPrjId();
/**
* 收藏页 数据查询
* @param page
* @param ids
* @param queryDTO
* @return
*/
IPage<FileInfoVO> queryFileList (Page<FileInfoVO> page,
@Param("ids")List<String> ids,
@Param("pars") FileInfoQueryDTO queryDTO,
@Param("saveStatus") int saveStatus,
@Param("effectFlag") int effectFlag);
}

View File

@ -54,7 +54,7 @@ public class FileInfoQueryDTO {
/**
* 版本号0-升序1-降序
*/
private Integer fileVersion;
private Integer versionSort;
/**
* 文件大小0-升序1-降序

View File

@ -1,17 +0,0 @@
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

@ -3,8 +3,8 @@ 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;
import com.electromagnetic.industry.software.manage.pojo.other.FileInfoVO;
import com.electromagnetic.industry.software.manage.pojo.req.FileInfoQueryDTO;
public interface EdFileFavoriteService extends IService<EdFileFavorite> {
@ -35,8 +35,8 @@ public interface EdFileFavoriteService extends IService<EdFileFavorite> {
/**
* 查询当前用户收藏文件信息
* @param userId 用户id
* @param pageDTO 分页信息
* @param fileInfoQueryDTO 分页信息
* @return
*/
IPage<EdFileInfo> findFavorite(String userId, PageDTO pageDTO);
IPage<FileInfoVO> findFavorite(String userId, FileInfoQueryDTO fileInfoQueryDTO);
}

View File

@ -1,16 +1,21 @@
package com.electromagnetic.industry.software.manage.service;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.electromagnetic.industry.software.common.resp.ElectromagneticResult;
import com.electromagnetic.industry.software.manage.pojo.other.FileInfoVO;
import com.electromagnetic.industry.software.manage.pojo.req.CreateFolderDTO;
import com.electromagnetic.industry.software.manage.pojo.req.FileChunkDTO;
import com.electromagnetic.industry.software.manage.pojo.req.FileInfoQueryDTO;
import com.electromagnetic.industry.software.manage.pojo.req.UpdateFileInfoDTO;
import org.apache.ibatis.annotations.Param;
import org.springframework.core.io.InputStreamResource;
import org.springframework.http.ResponseEntity;
import org.springframework.web.multipart.MultipartFile;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.util.List;
public interface EdFileInfoService {
@ -171,4 +176,18 @@ public interface EdFileInfoService {
* @param response
*/
ResponseEntity<InputStreamResource> preview(String id, HttpServletResponse response, int dataOwnCode);
/**
* 计算fileSizeShow字段
* @param records
*/
void resetFileSize(List<FileInfoVO> records);
/**
* 收藏页 数据查询
* @param page
* @param ids
* @param queryDTO
* @return
*/
IPage<FileInfoVO> queryFileList (Page<FileInfoVO> page, List<String> ids, FileInfoQueryDTO queryDTO, int saveStatus, int effectFlag);
}

View File

@ -2,7 +2,6 @@ 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;
@ -10,15 +9,11 @@ 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.pojo.other.FileInfoVO;
import com.electromagnetic.industry.software.manage.pojo.req.FileInfoQueryDTO;
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 org.thymeleaf.util.ListUtils;
import javax.annotation.Resource;
import java.util.List;
@ -27,7 +22,7 @@ import java.util.List;
public class EdFileFavoriteServiceImpl extends ServiceImpl<EdFileFavoriteMapper, EdFileFavorite> implements EdFileFavoriteService {
@Resource
private EdFileInfoServiceImpl fileInfoServiceImpl;
private EdFileInfoService fileInfoService;
@Override
public boolean addFavorite(String userId, String fileId) {
@ -63,26 +58,18 @@ public class EdFileFavoriteServiceImpl extends ServiceImpl<EdFileFavoriteMapper,
}
@Override
public IPage<EdFileInfo> findFavorite(String userId, PageDTO pageDTO) {
public IPage<FileInfoVO> findFavorite(String userId, FileInfoQueryDTO fileInfoQueryDTO) {
// 查询该用户收藏的文件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());
Page<FileInfoVO> page = new Page<>(fileInfoQueryDTO.getPageNum(), fileInfoQueryDTO.getPageSize());
LambdaQueryWrapper<EdFileInfo> queryWrapper2 = Wrappers.lambdaQuery(EdFileInfo.class)
.eq(EdFileInfo::getSaveStatus, EleDataSaveStatusEnum.SUCCESS.code)
.eq(EdFileInfo::getEffectFlag, EffectFlagEnum.EFFECT.code);
IPage<FileInfoVO> fileInfoVOIPage = fileInfoService.queryFileList(page, fileIds, fileInfoQueryDTO, EleDataSaveStatusEnum.SUCCESS.code, EffectFlagEnum.EFFECT.code);
// 只有 fileIds 不为空时才添加 in 条件否则添加一个 false 条件
if (fileIds != null && !fileIds.isEmpty()) {
queryWrapper2.in(EdFileInfo::getFileId, fileIds);
} else {
queryWrapper2.apply("1 = 0"); // 保证 fileIds 为空时查询结果为空
}
return fileInfoServiceImpl.page(page, queryWrapper2);
fileInfoService.resetFileSize(fileInfoVOIPage.getRecords());
return fileInfoVOIPage;
}
}

View File

@ -15,6 +15,7 @@ import cn.hutool.crypto.SecureUtil;
import cn.hutool.crypto.symmetric.AES;
import cn.hutool.json.JSONUtil;
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;
@ -34,6 +35,7 @@ import com.electromagnetic.industry.software.manage.pojo.resp.*;
import com.electromagnetic.industry.software.manage.service.EdFileInfoService;
import com.electromagnetic.industry.software.manage.service.FileSystemService;
import com.electromagnetic.industry.software.manage.service.PermissionService;
import org.apache.ibatis.annotations.Param;
import org.springframework.core.env.Environment;
import org.springframework.core.io.FileSystemResource;
import org.springframework.core.io.InputStreamResource;
@ -112,10 +114,10 @@ public class EdFileInfoServiceImpl extends ServiceImpl<EdFileInfoMapper, EdFileI
.eq(StrUtil.isNotEmpty(pars.getFileType()), EdFileInfo::getFileType, pars.getFileType())
.orderByAsc(ObjUtil.equals(pars.getCreatedTime(), 0), EdFileInfo::getCreatedTime)
.orderByDesc(ObjUtil.equals(pars.getCreatedTime(), 1), EdFileInfo::getCreatedTime)
.orderByDesc(ObjUtil.isAllEmpty(pars.getCreatedTime(), pars.getFileVersion(), pars.getFileSizeSort(), pars.getFileNameSort(), pars.getUpdatedTime(), pars.getFileTypeSort()), EdFileInfo::getCreatedTime)
.orderByDesc(ObjUtil.isAllEmpty(pars.getCreatedTime(), pars.getVersionSort(), pars.getFileSizeSort(), pars.getFileNameSort(), pars.getUpdatedTime(), pars.getFileTypeSort()), EdFileInfo::getCreatedTime)
.orderByAsc(ObjUtil.equals(pars.getFileVersion(), 0), EdFileInfo::getFileVersion)
.orderByDesc(ObjUtil.equals(pars.getFileVersion(), 1), EdFileInfo::getFileVersion)
.orderByAsc(ObjUtil.equals(pars.getVersionSort(), 0), EdFileInfo::getFileVersion)
.orderByDesc(ObjUtil.equals(pars.getVersionSort(), 1), EdFileInfo::getFileVersion)
.orderByAsc(ObjUtil.equals(pars.getFileSizeSort(), 0), EdFileInfo::getFileSize)
.orderByDesc(ObjUtil.equals(pars.getFileSizeSort(), 1), EdFileInfo::getFileSize)
@ -145,7 +147,8 @@ public class EdFileInfoServiceImpl extends ServiceImpl<EdFileInfoMapper, EdFileI
return ElectromagneticResultUtil.success(new FileInfoQueryPageVO(total, records));
}
private void resetFileSize(List<FileInfoVO> records) {
@Override
public void resetFileSize(List<FileInfoVO> records) {
for (FileInfoVO fileInfoDTO : records) {
if (fileInfoDTO.getFileSize() < 1024) {
fileInfoDTO.setFileSizeShow(fileInfoDTO.getFileSize() + "B");
@ -1240,4 +1243,15 @@ public class EdFileInfoServiceImpl extends ServiceImpl<EdFileInfoMapper, EdFileI
}
}
/**
* 收藏页 数据查询
* @param page
* @param ids
* @param queryDTO
* @return
*/
@Override
public IPage<FileInfoVO> queryFileList (Page<FileInfoVO> page, List<String> ids, FileInfoQueryDTO queryDTO, int saveStatus, int effectFlag) {
return this.baseMapper.queryFileList(page, ids, queryDTO, saveStatus, effectFlag);
}
}

View File

@ -8,10 +8,7 @@ import com.baomidou.mybatisplus.core.toolkit.StringUtils;
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.EleDataStatusEnum;
import com.electromagnetic.industry.software.common.enums.EleDataTypeEnum;
import com.electromagnetic.industry.software.common.enums.FilePermission;
import com.electromagnetic.industry.software.common.enums.*;
import com.electromagnetic.industry.software.common.exception.BizException;
import com.electromagnetic.industry.software.common.util.EleLog;
import com.electromagnetic.industry.software.common.util.IdWorker;
@ -173,7 +170,7 @@ public class RoleServiceImpl extends ServiceImpl<RoleMapper, Role> implements Ro
roleDTO.setRoleName(role.getRoleName());
roleDTO.setRoleDesc(role.getRoleDesc());
List<EdFileInfo> infos = getFiles();
List<EdFileInfo> infos = getFiles(DataOwnEnum.SYS_PRJ.code);
List<RolePermissionDTO> nodes = new ArrayList<>();
for (EdFileInfo info : infos) {
@ -277,7 +274,7 @@ public class RoleServiceImpl extends ServiceImpl<RoleMapper, Role> implements Ro
public RoleDTO getRoleTemplate() {
RoleDTO roleDTO = new RoleDTO();
List<EdFileInfo> infos = getFiles();
List<EdFileInfo> infos = getFiles(DataOwnEnum.SYS_PRJ.code);
List<RolePermissionDTO> nodes = new ArrayList<>();
for (EdFileInfo info : infos) {

View File

@ -3,9 +3,92 @@
<mapper namespace="com.electromagnetic.industry.software.manage.mapper.EdFileInfoMapper">
<resultMap id="FileInfoResultMap" type="com.electromagnetic.industry.software.manage.pojo.other.FileInfoVO">
<id column="id" property="id"/>
<result column="file_id" property="fileId"/>
<result column="file_type" property="fileType"/>
<result column="file_name" property="fileName"/>
<result column="file_note" property="fileNote"/>
<result column="file_version" property="fileVersion"/>
<result column="parent_id" property="parentId"/>
<result column="data_type" property="dataType"/>
<result column="data_status" property="dataStatus"/>
<result column="save_status" property="saveStatus"/>
<result column="file_size" property="fileSize"/>
<result column="file_size_show" property="fileSizeShow"/>
<result column="updated_time" property="updatedTime" jdbcType="TIMESTAMP"/>
<result column="created_time" property="createdTime" jdbcType="TIMESTAMP"/>
<result column="file_code" property="fileCode"/>
<result column="created_by" property="createdBy"/>
</resultMap>
<select id="maxPrjId" resultType="java.lang.String">
select max(id)
from ed_file_info
where prj_dir = true
</select>
<select id="queryFileList" resultMap="FileInfoResultMap" >
SELECT *
FROM ed_file_info
<where>
<if test="ids != null and ids.size() > 0">
AND id IN
<foreach collection="ids" item="id" open="(" separator="," close=")">
#{id}
</foreach>
</if>
<if test="pars.dataStatus != null">
AND data_status = #{pars.dataStatus}
</if>
<if test="pars.fileType != null and pars.fileType != ''">
AND file_type = #{pars.fileType}
</if>
AND save_status = #{saveStatus}
AND effect_flag = #{effectFlag}
</where>
<choose>
<when test="pars.fileNameSort == 0">
ORDER BY file_name ASC
</when>
<when test="pars.fileNameSort == 1">
ORDER BY file_name DESC
</when>
<when test="pars.fileTypeSort == 0">
ORDER BY file_type ASC
</when>
<when test="pars.fileTypeSort == 1">
ORDER BY file_type DESC
</when>
<when test="pars.createdTime == 0">
ORDER BY created_time ASC
</when>
<when test="pars.createdTime == 1">
ORDER BY created_time DESC
</when>
<when test="pars.versionSort == 0">
ORDER BY file_version ASC
</when>
<when test="pars.versionSort == 1">
ORDER BY file_version DESC
</when>
<when test="pars.fileSize == 0">
ORDER BY file_size ASC
</when>
<when test="pars.fileSize == 1">
ORDER BY file_size DESC
</when>
<otherwise>
ORDER BY created_time DESC
</otherwise>
</choose>
</select>
</mapper>