【7.2.2】【file】新增一个通用文件预览接口

pull/29/head
fengshuonan 2022-03-28 14:52:26 +08:00
parent b7e3dc9487
commit 28885e5f77
6 changed files with 49 additions and 19 deletions

View File

@ -24,6 +24,7 @@
*/ */
package cn.stylefeng.roses.kernel.file.api; package cn.stylefeng.roses.kernel.file.api;
import cn.stylefeng.roses.kernel.file.api.pojo.AntdvFileInfo;
import cn.stylefeng.roses.kernel.file.api.pojo.response.SysFileInfoResponse; import cn.stylefeng.roses.kernel.file.api.pojo.response.SysFileInfoResponse;
/** /**
@ -75,4 +76,12 @@ public interface FileInfoApi {
*/ */
String getFileUnAuthUrl(Long fileId); String getFileUnAuthUrl(Long fileId);
/**
* AntdV
*
* @author fengshuonan
* @date 2022/3/28 14:32
*/
AntdvFileInfo buildAntdvFileInfo(Long fileId);
} }

View File

@ -1,4 +1,4 @@
package cn.stylefeng.roses.kernel.system.modular.theme.pojo; package cn.stylefeng.roses.kernel.file.api.pojo;
import lombok.Data; import lombok.Data;

View File

@ -25,7 +25,9 @@
package cn.stylefeng.roses.kernel.file.modular.controller; package cn.stylefeng.roses.kernel.file.modular.controller;
import cn.stylefeng.roses.kernel.db.api.pojo.page.PageResult; import cn.stylefeng.roses.kernel.db.api.pojo.page.PageResult;
import cn.stylefeng.roses.kernel.file.api.FileInfoApi;
import cn.stylefeng.roses.kernel.file.api.constants.FileConstants; import cn.stylefeng.roses.kernel.file.api.constants.FileConstants;
import cn.stylefeng.roses.kernel.file.api.pojo.AntdvFileInfo;
import cn.stylefeng.roses.kernel.file.api.pojo.request.SysFileInfoRequest; import cn.stylefeng.roses.kernel.file.api.pojo.request.SysFileInfoRequest;
import cn.stylefeng.roses.kernel.file.api.pojo.response.SysFileInfoListResponse; import cn.stylefeng.roses.kernel.file.api.pojo.response.SysFileInfoListResponse;
import cn.stylefeng.roses.kernel.file.api.pojo.response.SysFileInfoResponse; import cn.stylefeng.roses.kernel.file.api.pojo.response.SysFileInfoResponse;
@ -74,6 +76,9 @@ public class SysFileInfoController {
@Resource @Resource
private SysFileInfoService sysFileInfoService; private SysFileInfoService sysFileInfoService;
@Resource
private FileInfoApi fileInfoApi;
/** /**
* *
* <p> * <p>
@ -271,4 +276,15 @@ public class SysFileInfoController {
return new SuccessResponseData<>(sysFileInfoService.detail(sysFileInfoRequest)); return new SuccessResponseData<>(sysFileInfoService.detail(sysFileInfoRequest));
} }
/**
* antdv
*
* @author fengshuonan
* @date 2022/3/28 14:37
*/
@GetResource(name = "获取antdv类型的文件详情信息", path = "/sysFileInfo/getAntdVInfo")
public ResponseData<AntdvFileInfo> getAntdVInfo(@Validated(SysFileInfoRequest.detail.class) SysFileInfoRequest sysFileInfoRequest) {
return new SuccessResponseData<>(fileInfoApi.buildAntdvFileInfo(sysFileInfoRequest.getFileId()));
}
} }

View File

@ -42,6 +42,7 @@ import cn.stylefeng.roses.kernel.file.api.enums.FileStatusEnum;
import cn.stylefeng.roses.kernel.file.api.exception.FileException; import cn.stylefeng.roses.kernel.file.api.exception.FileException;
import cn.stylefeng.roses.kernel.file.api.exception.enums.FileExceptionEnum; import cn.stylefeng.roses.kernel.file.api.exception.enums.FileExceptionEnum;
import cn.stylefeng.roses.kernel.file.api.expander.FileConfigExpander; import cn.stylefeng.roses.kernel.file.api.expander.FileConfigExpander;
import cn.stylefeng.roses.kernel.file.api.pojo.AntdvFileInfo;
import cn.stylefeng.roses.kernel.file.api.pojo.request.SysFileInfoRequest; import cn.stylefeng.roses.kernel.file.api.pojo.request.SysFileInfoRequest;
import cn.stylefeng.roses.kernel.file.api.pojo.response.SysFileInfoListResponse; import cn.stylefeng.roses.kernel.file.api.pojo.response.SysFileInfoListResponse;
import cn.stylefeng.roses.kernel.file.api.pojo.response.SysFileInfoResponse; import cn.stylefeng.roses.kernel.file.api.pojo.response.SysFileInfoResponse;
@ -465,6 +466,25 @@ public class SysFileInfoServiceImpl extends ServiceImpl<SysFileInfoMapper, SysFi
} }
} }
@Override
public AntdvFileInfo buildAntdvFileInfo(Long fileId) {
AntdvFileInfo antdvFileInfo = new AntdvFileInfo();
// 设置唯一id
antdvFileInfo.setUid(IdWorker.getIdStr());
// 设置文件名称
SysFileInfoResponse fileInfoWithoutContent;
try {
fileInfoWithoutContent = this.getFileInfoWithoutContent(fileId);
antdvFileInfo.setName(fileInfoWithoutContent.getFileOriginName());
} catch (Exception e) {
// 未存在文件信息,忽略
}
// 设置文件访问url
String fileAuthUrl = this.getFileAuthUrl(fileId);
antdvFileInfo.setThumbUrl(fileAuthUrl);
return antdvFileInfo;
}
/** /**
* servletresponse * servletresponse
* *

View File

@ -1,8 +1,8 @@
package cn.stylefeng.roses.kernel.system.modular.theme.entity; package cn.stylefeng.roses.kernel.system.modular.theme.entity;
import cn.stylefeng.roses.kernel.db.api.pojo.entity.BaseEntity; import cn.stylefeng.roses.kernel.db.api.pojo.entity.BaseEntity;
import cn.stylefeng.roses.kernel.file.api.pojo.AntdvFileInfo;
import cn.stylefeng.roses.kernel.rule.annotation.ChineseDescription; import cn.stylefeng.roses.kernel.rule.annotation.ChineseDescription;
import cn.stylefeng.roses.kernel.system.modular.theme.pojo.AntdvFileInfo;
import com.baomidou.mybatisplus.annotation.IdType; 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;

View File

@ -9,8 +9,8 @@ import cn.stylefeng.roses.kernel.db.api.factory.PageResultFactory;
import cn.stylefeng.roses.kernel.db.api.pojo.entity.BaseEntity; import cn.stylefeng.roses.kernel.db.api.pojo.entity.BaseEntity;
import cn.stylefeng.roses.kernel.db.api.pojo.page.PageResult; import cn.stylefeng.roses.kernel.db.api.pojo.page.PageResult;
import cn.stylefeng.roses.kernel.file.api.FileInfoApi; import cn.stylefeng.roses.kernel.file.api.FileInfoApi;
import cn.stylefeng.roses.kernel.file.api.pojo.AntdvFileInfo;
import cn.stylefeng.roses.kernel.file.api.pojo.request.SysFileInfoRequest; import cn.stylefeng.roses.kernel.file.api.pojo.request.SysFileInfoRequest;
import cn.stylefeng.roses.kernel.file.api.pojo.response.SysFileInfoResponse;
import cn.stylefeng.roses.kernel.file.modular.service.SysFileInfoService; import cn.stylefeng.roses.kernel.file.modular.service.SysFileInfoService;
import cn.stylefeng.roses.kernel.rule.enums.YesOrNotEnum; import cn.stylefeng.roses.kernel.rule.enums.YesOrNotEnum;
import cn.stylefeng.roses.kernel.system.api.ThemeServiceApi; import cn.stylefeng.roses.kernel.system.api.ThemeServiceApi;
@ -26,7 +26,6 @@ import cn.stylefeng.roses.kernel.system.modular.theme.entity.SysThemeTemplateRel
import cn.stylefeng.roses.kernel.system.modular.theme.enums.ThemeFieldTypeEnum; import cn.stylefeng.roses.kernel.system.modular.theme.enums.ThemeFieldTypeEnum;
import cn.stylefeng.roses.kernel.system.modular.theme.factory.DefaultThemeFactory; import cn.stylefeng.roses.kernel.system.modular.theme.factory.DefaultThemeFactory;
import cn.stylefeng.roses.kernel.system.modular.theme.mapper.SysThemeMapper; import cn.stylefeng.roses.kernel.system.modular.theme.mapper.SysThemeMapper;
import cn.stylefeng.roses.kernel.system.modular.theme.pojo.AntdvFileInfo;
import cn.stylefeng.roses.kernel.system.modular.theme.pojo.DefaultTheme; import cn.stylefeng.roses.kernel.system.modular.theme.pojo.DefaultTheme;
import cn.stylefeng.roses.kernel.system.modular.theme.service.SysThemeService; import cn.stylefeng.roses.kernel.system.modular.theme.service.SysThemeService;
import cn.stylefeng.roses.kernel.system.modular.theme.service.SysThemeTemplateFieldService; import cn.stylefeng.roses.kernel.system.modular.theme.service.SysThemeTemplateFieldService;
@ -35,7 +34,6 @@ import cn.stylefeng.roses.kernel.system.modular.theme.service.SysThemeTemplateSe
import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.IdWorker;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
@ -196,20 +194,7 @@ public class SysThemeServiceImpl extends ServiceImpl<SysThemeMapper, SysTheme> i
// 判断是否是文件类型 // 判断是否是文件类型
boolean keyFileFlag = sysThemeTemplateFieldService.getKeyFileFlag(key); boolean keyFileFlag = sysThemeTemplateFieldService.getKeyFileFlag(key);
if (keyFileFlag) { if (keyFileFlag) {
AntdvFileInfo antdvFileInfo = new AntdvFileInfo(); AntdvFileInfo antdvFileInfo = this.fileInfoApi.buildAntdvFileInfo(Long.valueOf(value));
// 设置唯一id
antdvFileInfo.setUid(IdWorker.getIdStr());
// 设置文件名称
SysFileInfoResponse fileInfoWithoutContent = null;
try {
fileInfoWithoutContent = fileInfoApi.getFileInfoWithoutContent(Long.valueOf(value));
antdvFileInfo.setName(fileInfoWithoutContent.getFileOriginName());
} catch (Exception e) {
// 未查询到文件继续查询下一个文件
}
// 设置文件访问url
String fileAuthUrl = fileInfoApi.getFileAuthUrl(Long.valueOf(value));
antdvFileInfo.setThumbUrl(fileAuthUrl);
tempFileList.put(key, new AntdvFileInfo[]{antdvFileInfo}); tempFileList.put(key, new AntdvFileInfo[]{antdvFileInfo});
} }
} }