feat(storage): 集成 MinIO 存储系统并支持用户签名功能

- 添加 MinIO 配置和依赖项,包括 minio、okhttp、okio 和 kotlin 库
- 创建通用文件服务接口和实现,支持文件上传到 MinIO 并记录元数据
- 添加用户签名服务接口和数据库表结构,支持签名文件管理
- 修改用户服务以支持签名文件上传,在新增和更新用户时可上传签名文件
- 实现文件预览服务测试用例的注释调整
- 创建 SysFile 和 SysUserSignature 数据库实体及对应常量类
- 实现 MinIO 存储组件,提供文件上传、下载和删除功能
- 在用户实体中添加签名相关字段用于展示签名信息
This commit is contained in:
dk
2026-07-13 22:00:39 +08:00
parent 42911e35bb
commit 46ae986db2
37 changed files with 8340 additions and 794 deletions

6406
tmp/cn_tool.sql Normal file

File diff suppressed because one or more lines are too long

20
tmp/sys-file.sql Normal file
View File

@@ -0,0 +1,20 @@
DROP TABLE IF EXISTS `sys_file`;
CREATE TABLE `sys_file` (
`id` char(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL COMMENT '文件ID',
`biz_type` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL COMMENT '业务类型',
`file_name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL COMMENT '原始文件名',
`bucket_name` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL COMMENT 'MinIO桶名称',
`object_name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL COMMENT 'MinIO对象名称',
`content_type` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '文件类型',
`file_size` bigint(20) NULL DEFAULT NULL COMMENT '文件大小(字节)',
`storage_type` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL COMMENT '存储类型',
`status` tinyint(1) NOT NULL COMMENT '状态(0删除 1正常)',
`create_by` char(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '创建用户',
`create_time` datetime NULL DEFAULT NULL COMMENT '创建时间',
`update_by` char(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '更新用户',
`update_time` datetime NULL DEFAULT NULL COMMENT '更新时间',
PRIMARY KEY (`id`) USING BTREE,
UNIQUE KEY `uk_sys_file_bucket_object` (`bucket_name`,`object_name`) USING BTREE,
KEY `idx_sys_file_biz_type` (`biz_type`) USING BTREE,
KEY `idx_sys_file_status` (`status`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_bin COMMENT = '通用文件表' ROW_FORMAT = DYNAMIC;

View File

@@ -0,0 +1,16 @@
DROP TABLE IF EXISTS `sys_user_signature`;
CREATE TABLE `sys_user_signature` (
`id` char(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL COMMENT '用户签名ID',
`user_id` char(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL COMMENT '用户ID',
`user_name` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL COMMENT '用户名',
`file_id` char(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL COMMENT '通用文件ID',
`status` tinyint(1) NOT NULL COMMENT '状态(0删除 1正常)',
`create_by` char(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '创建用户',
`create_time` datetime NULL DEFAULT NULL COMMENT '创建时间',
`update_by` char(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '更新用户',
`update_time` datetime NULL DEFAULT NULL COMMENT '更新时间',
PRIMARY KEY (`id`) USING BTREE,
UNIQUE KEY `uk_sys_user_signature_user_id` (`user_id`) USING BTREE,
UNIQUE KEY `uk_sys_user_signature_file_id` (`file_id`) USING BTREE,
KEY `idx_sys_user_signature_status` (`status`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_bin COMMENT = '用户签名表' ROW_FORMAT = DYNAMIC;