岗位管理
岗位管理
业务用途
岗位(Post)用于标识用户在组织中的职能角色(如「前端工程师」「财务主管」)。一个用户可关联多个岗位(通过 sys_user_post 关联表),岗位信息常用于数据权限中的「岗位数据」规则(参见的 ruleType=6)。
岗位管理是典型的扁平 CRUD(无树形结构),提供列表、增删改查及下拉选项接口。

涉及文件
| 层 | 文件路径 |
|---|---|
| 控制器 | backend/src/main/java/com/lowcode/controller/system/SysPostController.java |
| 服务实现 | backend/src/main/java/com/lowcode/service/impl/SysPostServiceImpl.java |
| 实体 | backend/src/main/java/com/lowcode/entity/SysPost.java |
| 关联实体 | backend/src/main/java/com/lowcode/entity/SysUserPost.java |
| 前端页面 | frontend/src/views/system/post/index.vue |
数据库表
sys_post(岗位表)
| 字段 | 类型 | 说明 |
|---|---|---|
post_code | String | 岗位编码(如 dev_frontend,业务标识) |
post_name | String | 岗位名称(如「前端工程师」) |
sort | Integer | 显示顺序 |
status | String | 状态(0正常 1禁用) |
remark | String | 备注 |
sys_user_post(用户-岗位关联表)
| 字段 | 类型 | 说明 |
|---|---|---|
user_id | Long | 用户 ID |
post_id | Long | 岗位 ID |
后端实现
端点一览
SysPostController 基础路径:/api/system/post(与部门一样采用 /create /update /delete /get 风格)
| HTTP 方法 | 路径 | 方法名 | 说明 |
|---|---|---|---|
| GET | /api/system/post/list | list | 获取岗位列表(支持 postName/status 过滤) |
| GET | /api/system/post/get?id= | get | 获取岗位详情 |
| POST | /api/system/post/create | create | 创建岗位 |
| PUT | /api/system/post/update | update | 更新岗位 |
| DELETE | /api/system/post/delete?id= | delete | 删除岗位 |
| GET | /api/system/post/options | options | 获取所有启用岗位(下拉选项用,固定 status=0) |
关键代码
options 端点专为前端下拉选择设计,只返回启用状态的岗位:
@GetMapping("/options")
public Result<List<SysPost>> options() {
return Result.success(postService.getPostList(null, "0"));
}SysPostServiceImpl.getPostList 按租户隔离并按 sort 排序:
public List<SysPost> getPostList(String postName, String status) {
Long tenantId = currentTenantId();
LambdaQueryWrapper<SysPost> wrapper = new LambdaQueryWrapper<>();
wrapper.eq(SysPost::getTenantId, tenantId);
if (StringUtils.hasText(postName)) wrapper.like(SysPost::getPostName, postName);
if (StringUtils.hasText(status)) wrapper.eq(SysPost::getStatus, status);
wrapper.eq(SysPost::getDeleted, 0);
wrapper.orderByAsc(SysPost::getSort);
return list(wrapper);
}岗位与用户的关系
用户新增/编辑时,SysUserController 接收 postIds 数组,由 SysUserServiceImpl.createUser/updateUser 写入 sys_user_post。岗位本身的增删改不联动清理用户关联,删除岗位前请确认无用户引用。
前端实现
- 页面
frontend/src/views/system/post/index.vue:el-table列表 + 弹窗表单,支持按岗位名称、状态筛选。

- 岗位下拉数据通过
/system/post/options获取,在的用户编辑表单中作为多选候选项。
操作步骤
- 进入「系统管理 -> 岗位管理」。
- 新增岗位:填写岗位编码、名称、排序、状态、备注。
- 在编辑用户时,从下拉中勾选该用户的岗位。
常见问题
postCode 有什么用?
postCode 是岗位的业务编码,用于程序中按编码识别岗位(类似角色的 roleCode)。建议用英文小写加下划线,保证唯一。
删除岗位后用户上的关联会清理吗?
岗位控制器删除时不清理 sys_user_post。如需保持数据整洁,删除岗位前应先在用户管理中移除该岗位引用,或自行扩展删除逻辑联动清理。
