mirror of https://gitee.com/stylefeng/roses
【7.2.2】【file】新增一个通用文件预览接口
parent
b7e3dc9487
commit
28885e5f77
|
@ -24,6 +24,7 @@
|
|||
*/
|
||||
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;
|
||||
|
||||
/**
|
||||
|
@ -75,4 +76,12 @@ public interface FileInfoApi {
|
|||
*/
|
||||
String getFileUnAuthUrl(Long fileId);
|
||||
|
||||
/**
|
||||
* 获取AntdV组件格式对应的文件信息封装
|
||||
*
|
||||
* @author fengshuonan
|
||||
* @date 2022/3/28 14:32
|
||||
*/
|
||||
AntdvFileInfo buildAntdvFileInfo(Long fileId);
|
||||
|
||||
}
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
package cn.stylefeng.roses.kernel.system.modular.theme.pojo;
|
||||
package cn.stylefeng.roses.kernel.file.api.pojo;
|
||||
|
||||
import lombok.Data;
|
||||
|
|
@ -25,7 +25,9 @@
|
|||
package cn.stylefeng.roses.kernel.file.modular.controller;
|
||||
|
||||
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.pojo.AntdvFileInfo;
|
||||
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.SysFileInfoResponse;
|
||||
|
@ -74,6 +76,9 @@ public class SysFileInfoController {
|
|||
@Resource
|
||||
private SysFileInfoService sysFileInfoService;
|
||||
|
||||
@Resource
|
||||
private FileInfoApi fileInfoApi;
|
||||
|
||||
/**
|
||||
* 上传文件
|
||||
* <p>
|
||||
|
@ -271,4 +276,15 @@ public class SysFileInfoController {
|
|||
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()));
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -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.enums.FileExceptionEnum;
|
||||
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.response.SysFileInfoListResponse;
|
||||
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;
|
||||
}
|
||||
|
||||
/**
|
||||
* 渲染被预览的文件到servlet的response流中
|
||||
*
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
package cn.stylefeng.roses.kernel.system.modular.theme.entity;
|
||||
|
||||
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.system.modular.theme.pojo.AntdvFileInfo;
|
||||
import com.baomidou.mybatisplus.annotation.IdType;
|
||||
import com.baomidou.mybatisplus.annotation.TableField;
|
||||
import com.baomidou.mybatisplus.annotation.TableId;
|
||||
|
|
|
@ -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.page.PageResult;
|
||||
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.response.SysFileInfoResponse;
|
||||
import cn.stylefeng.roses.kernel.file.modular.service.SysFileInfoService;
|
||||
import cn.stylefeng.roses.kernel.rule.enums.YesOrNotEnum;
|
||||
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.factory.DefaultThemeFactory;
|
||||
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.service.SysThemeService;
|
||||
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.JSONObject;
|
||||
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.service.impl.ServiceImpl;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
|
@ -196,20 +194,7 @@ public class SysThemeServiceImpl extends ServiceImpl<SysThemeMapper, SysTheme> i
|
|||
// 判断是否是文件类型
|
||||
boolean keyFileFlag = sysThemeTemplateFieldService.getKeyFileFlag(key);
|
||||
if (keyFileFlag) {
|
||||
AntdvFileInfo antdvFileInfo = new AntdvFileInfo();
|
||||
// 设置唯一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);
|
||||
AntdvFileInfo antdvFileInfo = this.fileInfoApi.buildAntdvFileInfo(Long.valueOf(value));
|
||||
tempFileList.put(key, new AntdvFileInfo[]{antdvFileInfo});
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue