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;
|
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);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -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;
|
||||||
|
|
|
@ -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()));
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -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;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 渲染被预览的文件到servlet的response流中
|
* 渲染被预览的文件到servlet的response流中
|
||||||
*
|
*
|
||||||
|
|
|
@ -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;
|
||||||
|
|
|
@ -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});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue