Excel 导入导出
用户管理使用 Alibaba EasyExcel 提供模板下载、批量导入和导出。
模板下载
模板由后端实时生成并返回,不需要在服务器保存模板文件。模板包含数据填写页和字段说明,状态与性别的可选值会直接写入标题或说明。
导入流程
text
上传 Excel
→ 检查文件大小
→ 读取行数
→ 校验必填和格式
→ 检查用户名重复
→ 生成或编码密码
→ 批量写入
→ 返回导入数量核心校验:
- 用户名必填,长度 2~32,全局唯一。
- 初始密码选填。
- 昵称最多 32 个字符。
- 状态只能为
1或2。 - 性别只能为
0、1、2。 - 手机号和邮箱格式合法。
- 文件大小、行数和错误展示数量受动态参数限制。
初始密码为空时,PasswordService 使用 SecureRandom 生成默认 16 位随机密码,再通过密码编码器哈希保存。结果只统计自动生成数量,不返回密码明文。
事务
导入应在明确事务中执行。推荐采用“发现任何无效行则整批不落库”的策略,避免用户误以为失败行也已经成功;如果以后需要部分成功,必须返回逐行结果并明确重试方式。
导出
SysUserQueryDto 支持用户 ID 集合:
- 前端有勾选项:提交
ids,只导出选中用户。 - 没有勾选项:提交当前查询条件,导出符合条件的用户。
后端始终应用最大导出条数,避免大查询占用过多内存。需要百万级数据导出时应改为异步任务和分片文件,而不是提高当前同步上限。
安全注意
- 导出不包含密码哈希。
- 模板示例不填写真实账号和联系方式。
- 导入错误日志对密码字段脱敏。
- 公开 Demo 应限制导入、导出权限和文件大小。