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
This commit is contained in:
2026-09-15 12:14:27 +08:00
parent 54b7e9a555
commit c305ca946e
39 changed files with 2637 additions and 8 deletions

View File

@@ -0,0 +1,43 @@
package com.senmesh.sfile.entity;
import com.baomidou.mybatisplus.annotation.TableName;
import com.senmesh.common.entity.BaseEntity;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;
import lombok.experimental.SuperBuilder;
/**
* 机构上传配置
* 一行对应一个机构,用于限制该机构用户在网盘中可上传的文件类型/大小
*
* @author liu on 2026-09-14
*/
@TableName("x_upload_config")
@NoArgsConstructor
@AllArgsConstructor
@EqualsAndHashCode(callSuper = true)
@SuperBuilder
@Data
public class UploadConfig extends BaseEntity {
private static final long serialVersionUID = 1L;
/** 机构id(唯一) */
private Long orgId;
/** 是否允许上传 */
private Boolean uploadEnabled;
/** 是否允许全部类型(false时按allowed_suffixes白名单校验) */
private Boolean allowAllType;
/** 允许的文件后缀(逗号分隔,小写存储),allow_all_type=false时生效 */
private String allowedSuffixes;
/** 单文件大小上限(MB),空或0不限制 */
private Long maxFileSize;
}