修正文件管理两个bug:不显示“上传人”的问题、图片无法预览问题

This commit is contained in:
dataprince 2023-12-11 09:05:20 +08:00
parent 731b5e60b2
commit 154bc3e187
5 changed files with 27 additions and 18 deletions

View File

@ -5,7 +5,7 @@
<h4 align="center">Ruoyi-Flex是基于JDK21、Spring Boot V3.2.X+平台 前后端分离的Java快速开发框架</h4> <h4 align="center">Ruoyi-Flex是基于JDK21、Spring Boot V3.2.X+平台 前后端分离的Java快速开发框架</h4>
#### 平台简介 ## 1、平台简介
Ruoyi-Flex是一套全部开源的快速开发平台使用MIT开源许可协议毫无保留给个人及企业免费使用。基于RuoYi-Vue、RuoYi-Vue-Plus集成MyBatis-Flex、JDK21、SpringBootV3.2.X+、Lombok、Sa-Token、SpringDoc、Hutool、SpringBoot Admin、PowerJob、Vue3、Element-Plus、MinIO等优秀开源软件 Ruoyi-Flex是一套全部开源的快速开发平台使用MIT开源许可协议毫无保留给个人及企业免费使用。基于RuoYi-Vue、RuoYi-Vue-Plus集成MyBatis-Flex、JDK21、SpringBootV3.2.X+、Lombok、Sa-Token、SpringDoc、Hutool、SpringBoot Admin、PowerJob、Vue3、Element-Plus、MinIO等优秀开源软件
@ -18,10 +18,10 @@ Ruoyi-Flex是一套全部开源的快速开发平台使用MIT开源许可协
* 性能卓越功能全面开发高效可免除手写SQL之苦甚至写错字段名称IDEA都会立即报警。 * 性能卓越功能全面开发高效可免除手写SQL之苦甚至写错字段名称IDEA都会立即报警。
* 写得更少、运行更快、编译除错、效率更高! * 写得更少、运行更快、编译除错、效率更高!
#### 前端项目 ## 2、前端项目
Ruoyi-Flex实行前后端分离仓库本项目是java后端部分前端项目是flex-elementplus-ui前端项目地址: [flex-elementplus-ui](https://gitee.com/dataprince/flex-elementplus-ui) Ruoyi-Flex实行前后端分离仓库本项目是java后端部分前端项目是flex-elementplus-ui前端项目地址: [flex-elementplus-ui](https://gitee.com/dataprince/flex-elementplus-ui)
#### 内置功能 ## 3、内置功能
1. 用户管理:用户是系统操作者,该功能主要完成系统用户配置。 1. 用户管理:用户是系统操作者,该功能主要完成系统用户配置。
2. 部门管理:配置系统组织机构(公司、部门、小组),树结构展现支持数据权限。 2. 部门管理:配置系统组织机构(公司、部门、小组),树结构展现支持数据权限。
@ -33,21 +33,21 @@ Ruoyi-Flex实行前后端分离仓库本项目是java后端部分前端项
8. 通知公告:系统通知公告信息发布维护。 8. 通知公告:系统通知公告信息发布维护。
9. 操作日志:系统正常操作日志记录和查询;系统异常信息日志记录和查询。 9. 操作日志:系统正常操作日志记录和查询;系统异常信息日志记录和查询。
10. 登录日志:系统登录日志记录查询包含登录异常。 10. 登录日志:系统登录日志记录查询包含登录异常。
11. 文件管理将文件存储到MinIO、七牛、阿里、腾讯等OSS服务器上。 11. 文件管理:引入云存储服务,将文件存储到MinIO、七牛、阿里、腾讯等OSS服务器上,支持上传、下载
12. 在线用户:当前系统中活跃用户状态监控。 12. 在线用户:当前系统中活跃用户状态监控。
13. 调度中心集成PowerJob全新一代分布式任务调度与计算框架。 13. 调度中心集成PowerJob全新一代分布式任务调度与计算框架。
14. 代码生成前后端代码的生成java、html、xml、sql支持单表、树表、主子表 14. 代码生成前后端代码的生成java、html、vue、js支持单表、树表、主子表减少70%以上的开发工作量
15. 系统接口集成springdoc根据文档注释自动生成相关的api接口文档。 15. 系统接口集成springdoc根据文档注释自动生成相关的api接口文档。
16. 监控中心集成Spring Boot Admin监视集群系统CPU、内存、磁盘、堆栈、在线日志、Spring相关配置等。 16. 监控中心集成Spring Boot Admin监视集群系统CPU、内存、磁盘、堆栈、在线日志、Spring相关配置等。
17. 缓存监控:对系统的缓存信息查询,命令统计等。 17. 缓存监控:对系统的缓存信息查询,命令统计等。
18. 演示模块mybatis、mybatis-flex两种格式代码的单表、树表、主子表三种类型的演示程序。 18. 演示模块mybatis、mybatis-flex两种格式代码的单表、树表、主子表三种类型的演示程序。
#### 开发文档 ## 4、开发文档
本项目提供保姆级开发文档,零基础手把手入门教程,位于/doc文件夹下面 本项目提供保姆级开发文档,零基础手把手入门教程,位于/doc文件夹下面
入门必读,请下载到本地查看:《[Ruoyi-Flex开发编译手册.docx](https://gitee.com/dataprince/ruoyi-flex/raw/master/doc/Ruoyi-Flex-Guide.docx)》。 入门必读,请下载到本地查看:《[Ruoyi-Flex开发编译手册.docx](https://gitee.com/dataprince/ruoyi-flex/raw/master/doc/Ruoyi-Flex-Guide.docx)》。
#### Ruoyi-Flex交流群 ## 5、Ruoyi-Flex交流群
本软件完全开源作者很忙如果您在使用过程中遇到问题请付点小费扫码支付199元后申请加入QQ群或者微信群寻求帮助 本软件完全开源作者很忙如果您在使用过程中遇到问题请付点小费扫码支付199元后申请加入QQ群或者微信群寻求帮助
<table> <table>
@ -61,7 +61,7 @@ Ruoyi-Flex实行前后端分离仓库本项目是java后端部分前端项
</tr> </tr>
</table> </table>
#### 开源协议 ## 6、开源协议
**为什么推荐使用本项目?** **为什么推荐使用本项目?**
@ -71,7 +71,7 @@ Ruoyi-Flex实行前后端分离仓库本项目是java后端部分前端项
如果这个项目让您有所收获,记得 Star 关注哦,这对我是非常不错的鼓励与支持。 如果这个项目让您有所收获,记得 Star 关注哦,这对我是非常不错的鼓励与支持。
#### 演示图 ## 7、演示图
<table> <table>
<tr> <tr>
@ -96,7 +96,7 @@ Ruoyi-Flex实行前后端分离仓库本项目是java后端部分前端项
</tr> </tr>
</table> </table>
#### 参与贡献 ## 8、参与贡献
1. Fork 本仓库 1. Fork 本仓库
2. 新建 Feat_xxx 分支 2. 新建 Feat_xxx 分支
@ -104,7 +104,7 @@ Ruoyi-Flex实行前后端分离仓库本项目是java后端部分前端项
4. 新建 Pull Request 4. 新建 Pull Request
#### 特别鸣谢 ## 9、特别鸣谢
- [RuoYi-Vue](https://gitee.com/y_project/RuoYi-Vue) - [RuoYi-Vue](https://gitee.com/y_project/RuoYi-Vue)
- [RuoYi-Vue-Plus](https://gitee.com/dromara/RuoYi-Vue-Plus) - [RuoYi-Vue-Plus](https://gitee.com/dromara/RuoYi-Vue-Plus)
- [MyBatis-Flex](https://gitee.com/mybatis-flex/mybatis-flex) - [MyBatis-Flex](https://gitee.com/mybatis-flex/mybatis-flex)

View File

@ -73,7 +73,7 @@ public class SysConfigController extends BaseController {
@SaCheckPermission("system:config:query") @SaCheckPermission("system:config:query")
@GetMapping(value = "/configKey/{configKey}") @GetMapping(value = "/configKey/{configKey}")
public R<String> getConfigKey(@PathVariable String configKey) { public R<String> getConfigKey(@PathVariable String configKey) {
return R.ok("操作成功", configService.selectConfigByKey(configKey)); return R.ok(configService.selectConfigByKey(configKey),"操作成功");
} }
/** /**

View File

@ -1,5 +1,6 @@
package com.ruoyi.system.domain.vo; package com.ruoyi.system.domain.vo;
import com.mybatisflex.annotation.RelationOneToOne;
import com.ruoyi.system.domain.SysOss; import com.ruoyi.system.domain.SysOss;
import io.github.linpeilie.annotations.AutoMapper; import io.github.linpeilie.annotations.AutoMapper;
import lombok.Data; import lombok.Data;
@ -58,6 +59,12 @@ public class SysOssVo implements Serializable {
/** /**
* 上传人名称 * 上传人名称
*/ */
@RelationOneToOne(
selfField = "createBy",
targetTable = "sys_user",
targetField = "userId",
valueField = "userName"
)
private String createByName; private String createByName;
/** /**

View File

@ -178,9 +178,11 @@ public class SysConfigServiceImpl extends BaseServiceImpl<SysConfigMapper, SysCo
SysConfig config = MapstructUtils.convert(configBo, SysConfig.class); SysConfig config = MapstructUtils.convert(configBo, SysConfig.class);
QueryWrapper queryWrapper=query().where(SYS_CONFIG.CONFIG_KEY.eq(config.getConfigKey())); QueryWrapper queryWrapper=query().where(SYS_CONFIG.CONFIG_KEY.eq(config.getConfigKey()));
SysConfig sysConfig = this.getOne(queryWrapper); SysConfig sysConfig = this.getOne(queryWrapper);
sysConfig.setConfigValue(config.getConfigValue());
queryWrapper.and(SYS_CONFIG.CONFIG_VALUE.eq(config.getConfigValue())); SysConfig configUpdate = new SysConfig();
return this.update(sysConfig,queryWrapper); configUpdate.setConfigId(sysConfig.getConfigId());
configUpdate.setConfigValue(config.getConfigValue());
return this.updateById(configUpdate);
} }
/** /**

View File

@ -50,7 +50,7 @@ import static com.ruoyi.system.domain.table.SysOssTableDef.SYS_OSS;
@Service @Service
public class SysOssServiceImpl extends BaseServiceImpl<SysOssMapper, SysOss> implements ISysOssService, OssService { public class SysOssServiceImpl extends BaseServiceImpl<SysOssMapper, SysOss> implements ISysOssService, OssService {
private final SysOssMapper baseMapper; private final SysOssMapper ossMapper;
@Override @Override
public QueryWrapper query() { public QueryWrapper query() {
@ -86,7 +86,7 @@ public class SysOssServiceImpl extends BaseServiceImpl<SysOssMapper, SysOss> imp
@Override @Override
public TableDataInfo<SysOssVo> queryPageList(SysOssBo bo) { public TableDataInfo<SysOssVo> queryPageList(SysOssBo bo) {
QueryWrapper queryWrapper = buildQueryWrapper(bo); QueryWrapper queryWrapper = buildQueryWrapper(bo);
Page<SysOssVo> result = this.pageAs(PageQuery.build(), queryWrapper, SysOssVo.class); Page<SysOssVo> result = ossMapper.paginateWithRelationsAs(PageQuery.build(), queryWrapper, SysOssVo.class);
List<SysOssVo> filterResult = StreamUtils.toList(result.getRecords(), this::matchingUrl); List<SysOssVo> filterResult = StreamUtils.toList(result.getRecords(), this::matchingUrl);
result.setRecords(filterResult); result.setRecords(filterResult);
return TableDataInfo.build(result); return TableDataInfo.build(result);
@ -132,7 +132,7 @@ public class SysOssServiceImpl extends BaseServiceImpl<SysOssMapper, SysOss> imp
@Override @Override
public SysOssVo getById(Long ossId) { public SysOssVo getById(Long ossId) {
QueryWrapper queryWrapper=query().where(SYS_OSS.OSS_ID.eq(ossId)); QueryWrapper queryWrapper=query().where(SYS_OSS.OSS_ID.eq(ossId));
return this.getOneAs(queryWrapper,SysOssVo.class); return ossMapper.selectOneWithRelationsByQueryAs(queryWrapper,SysOssVo.class);
} }
@Override @Override