【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;
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);
}

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;

View File

@ -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()));
}
}

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.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;
}
/**
* servletresponse
*

View File

@ -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;

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.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});
}
}