6.5 职级管理
概述
职级模块(goframe_level,租户级表)管理用户职级属性:标准 CRUD + 状态切换 + Excel 导入导出(与 user/example 并列的三个导入导出示范模块之一),列表带 user_count 引用统计。
接口清单
| 方法 | 路由 | 权限 | 说明 |
|---|---|---|---|
| GET | /api/level/page | sys:level:page | 分页 |
| GET | /api/level/list | sys:level:list | 列表 |
| GET | /api/level/detail/:id | sys:level:detail | 详情 |
| POST | /api/level/add | sys:level:add | 新增 |
| PUT | /api/level/update | sys:level:update | 修改 |
| PUT | /api/level/status | sys:level:status | 状态切换 |
| DELETE | /api/level/delete/:id | sys:level:delete | 软删 |
| DELETE | /api/level/batchDelete | sys:level:batchDelete | 批量删除 |
| POST | /api/level/import | sys:level:import | Excel 导入 |
| GET | /api/level/export | sys:level:export | Excel 导出 |
模块特征
| 特征 | 实现 |
|---|---|
| 导入导出 | excel.ReadSheet / WriteSheet + ChunkQuery 分批导出 |
| 引用统计 | fillUserCount:按 level_id 统计引用用户数(base.go 共享能力,level/position 复用) |
| 唯一性 | 租户内名称唯一(uk_tenant_name);未声明预检,1062 兜底 |
| 字典 | status → 字典驱动 {field}Text |
与其他模块的关系
text
user.level_id → level.id 用户归属职级(用户表单职级选择)
fillUserCount 列表/详情展示 user_count(该职级下用户数)
—— 删除前可据此判断是否被引用导入导出模式(与 user/example 同款)
text
Import:multipart file(*ghttp.UploadFile + p:"file")
→ excel.ReadSheet(首行表头,全单元格字符串,空行跳过)
→ 逐行映射/校验(唯一、字典值)→ 批量 Insert → 返回导入统计
Export:与列表同筛选 → ChunkQuery 分批(默认 500/页,防 OOM)
→ excel.WriteSheet 写临时文件 → 返回文件 URL(/upload/temp/...)管理建议
- 职级是租户级数据——各租户独立维护自己的职级体系
- 删除前查 user_count 引用;有引用先调整用户职级
- 导入模板与导出列保持一致(表头=表单字段名);批量导入注意租户内唯一名称