Files
senmesh-zc/db/upgrade-20260914-upload-config.sql
leijiaping c305ca946e feat: 用户启停/注销、机构账号查询、手机号查记录、机构上传配置
1. 用户管理:新增启用(user/enable)/禁用(user/disable)/注销(user/admin_cancel)接口,
   平台超管可操作全部用户,机构管理员限本机构;注销带分布式锁、禁自己/超管守卫
2. 禁用/注销立即踢下线:Redis黑名单(user:disabled:{uid}) + JWT过滤器拦截,
   TTL与token有效期一致
3. 系统管理员查看各机构账号:GET user/page/org_account(机构/账号/手机号等筛选)
4. 按手机号查上传/发送/接收记录:GET user_file/record/page_by_phone,
   发送/接收方向按部署侧 file.transfer.location 自动映射
5. 机构上传配置:新表 x_upload_config + upload_config/info|modify|check 接口,
   上传总开关/后缀白名单/单文件大小限制,网盘落库时强制校验
6. 加固:UserInfoDTO.setPassword 缺省密码未配置时不再抛 rawPassword cannot be null
7. 新增 x_upload_config 建表脚本(upgrade-20260915-release.sql 为上线版)、
   生产部署说明、前端接口文档×2、运维脚本 sfile-ctl.sh、AGENTS.md
2026-09-15 12:14:27 +08:00

63 lines
3.7 KiB
SQL
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
-- =============================================================
-- 升级脚本:机构上传配置(文件上传类型/大小限制)
-- 日期:2026-09-14
-- 说明:新增 x_upload_config 表(一行对应一个机构)。
-- 机构管理员可配置本机构允许上传的文件后缀白名单、
-- 单文件大小上限、上传总开关;未配置的机构默认允许全部。
-- 拦截点:网盘上传落库(normal_user_file/create)。
-- 执行方式:MySQL/达梦(DM8 MySQL兼容模式)执行第 1 节;
-- PostgreSQL 执行第 2 节。
-- =============================================================
-- -------------------------------------------------------------
-- 1. MySQL / 达梦 DM8
-- -------------------------------------------------------------
CREATE TABLE `x_upload_config` (
`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键ID',
`org_id` bigint(20) DEFAULT NULL COMMENT '机构id',
`upload_enabled` bit(1) DEFAULT b'1' COMMENT '是否允许上传',
`allow_all_type` bit(1) DEFAULT b'1' COMMENT '是否允许全部类型(false时按allowed_suffixes白名单校验)',
`allowed_suffixes` varchar(1024) DEFAULT NULL COMMENT '允许的文件后缀(逗号分隔,小写),allow_all_type=false时生效',
`max_file_size` bigint(20) DEFAULT NULL COMMENT '单文件大小上限(MB),空或0不限制',
`deleted` bit(1) DEFAULT b'0' COMMENT '是否删除',
`create_by` bigint(20) DEFAULT NULL COMMENT '创建人',
`create_time` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`update_by` bigint(20) DEFAULT NULL COMMENT '修改人',
`update_time` datetime DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP COMMENT '修改时间',
`proxy_by` bigint(20) DEFAULT NULL COMMENT '代理人',
PRIMARY KEY (`id`) USING BTREE,
UNIQUE KEY `uk_org_id` (`org_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='机构上传配置';
-- -------------------------------------------------------------
-- 2. PostgreSQL
-- -------------------------------------------------------------
CREATE TABLE x_upload_config (
id BIGSERIAL PRIMARY KEY,
org_id BIGINT DEFAULT NULL,
upload_enabled BOOLEAN DEFAULT TRUE,
allow_all_type BOOLEAN DEFAULT TRUE,
allowed_suffixes VARCHAR(1024) DEFAULT NULL,
max_file_size BIGINT DEFAULT NULL,
deleted BOOLEAN DEFAULT FALSE,
create_by BIGINT DEFAULT NULL,
create_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
update_by BIGINT DEFAULT NULL,
update_time TIMESTAMP DEFAULT NULL,
proxy_by BIGINT DEFAULT NULL,
CONSTRAINT uk_upload_config_org_id UNIQUE (org_id)
);
COMMENT ON TABLE x_upload_config IS '机构上传配置';
COMMENT ON COLUMN x_upload_config.id IS '主键ID';
COMMENT ON COLUMN x_upload_config.org_id IS '机构id';
COMMENT ON COLUMN x_upload_config.upload_enabled IS '是否允许上传';
COMMENT ON COLUMN x_upload_config.allow_all_type IS '是否允许全部类型(false时按allowed_suffixes白名单校验)';
COMMENT ON COLUMN x_upload_config.allowed_suffixes IS '允许的文件后缀(逗号分隔,小写),allow_all_type=false时生效';
COMMENT ON COLUMN x_upload_config.max_file_size IS '单文件大小上限(MB),空或0不限制';
COMMENT ON COLUMN x_upload_config.deleted IS '是否删除';
COMMENT ON COLUMN x_upload_config.create_by IS '创建人';
COMMENT ON COLUMN x_upload_config.create_time IS '创建时间';
COMMENT ON COLUMN x_upload_config.update_by IS '修改人';
COMMENT ON COLUMN x_upload_config.update_time IS '修改时间';
COMMENT ON COLUMN x_upload_config.proxy_by IS '代理人';