Files
TARE-Learn/slidev/pages/day1/m2-ruoyi-objects.md
T
2026-06-12 01:27:11 +08:00

153 lines
4.6 KiB
Markdown

# 模块 2:若依核心业务对象
<div class="mt-4 text-sm">
```mermaid {scale: 0.8}
graph LR
U[User 用户] -->|绑定| R[Role 角色]
R -->|授权| M[Menu 菜单]
M -->|包含| P[Permission 权限字符]
P -->|控制| A[页面/按钮/接口]
U -->|属于| D[Dept 部门]
```
核心对象:User 用户 · Role 角色 · Menu 菜单 · Permission 权限字符 · Dept 部门 · Post 岗位 · OperLog 操作日志 · Dict 字典 · GenTable 代码生成
</div>
<!--
理解若依,不能只看目录,要先看核心对象。
若依最核心的是用户、角色、菜单和权限。用户属于部门,可以拥有岗位,可以绑定角色。角色拥有菜单权限和数据权限。菜单不仅控制左侧菜单和动态路由,也关联按钮权限字符。操作日志记录关键操作。代码生成模块帮助生成 CRUD 代码。
今天我们重点看用户、角色、菜单、权限这条主线。
-->
---
# 若依模块总览
<div class="mt-6 grid grid-cols-2 gap-4 text-sm">
<div>
- 登录认证
- 用户管理
- 角色管理
- 菜单管理
- 部门管理
</div>
<div>
- 岗位管理
- 权限控制
- 操作日志
- 登录日志
- 代码生成
</div>
</div>
<!--
若依常见模块包括登录认证、用户管理、角色管理、菜单管理、部门管理、岗位管理、权限控制、操作日志、登录日志、代码生成。
这些模块组合起来,构成一个典型企业后台系统。
今天不是要讲完所有模块,而是通过权限和菜单这条主线,学习如何理解陌生项目。
-->
---
# 用户、角色、菜单、权限关系
<div class="mt-6 text-center text-sm">
用户 User → 绑定 → 角色 Role → 授权 → 菜单 Menu → 包含 → 权限字符 Permission → 控制 → 页面访问 / 按钮显示 / 接口访问
</div>
<!--
若依权限体系可以先用这张图理解。
用户绑定角色。角色被授予菜单。菜单可以是目录、菜单页面,也可以是按钮权限。按钮权限通常通过权限字符表示,比如用户新增、用户修改、用户删除。
前端根据这些权限字符控制按钮显示,后端接口也应基于权限注解或权限判断控制访问。今天我们要追踪的就是这条链路从后端到前端如何生效。
-->
---
# 若依中的三类权限
<div class="grid grid-cols-3 gap-4 mt-8">
<div class="p-4 rounded-xl bg-blue-500/10 border border-blue-500/30 text-sm">
**页面权限**
能不能看到某个菜单页面
</div>
<div class="p-4 rounded-xl bg-emerald-500/10 border border-emerald-500/30 text-sm">
**按钮权限**
能不能看到新增、修改、删除按钮
</div>
<div class="p-4 rounded-xl bg-amber-500/10 border border-amber-500/30 text-sm">
**数据权限**
能看到哪些部门或范围的数据
</div>
</div>
<!--
若依里我们可以把权限分成三类。
第一,页面权限。用户能不能看到某个菜单页面。
第二,按钮权限。比如用户管理页面上的新增、修改、删除、导出按钮是否显示。
第三,数据权限。比如某个角色只能看本部门数据,还是可以看全部数据。
这三类权限不能混在一起。页面能看到不代表按钮能操作。按钮隐藏也不代表后端接口安全。数据能看到多少又是另外一套规则。
-->
---
# 若依业务导览 Prompt
<div class="mt-4 p-4 rounded-xl bg-blue-500/10 border border-blue-500/30 text-sm">
```
@workspace 请从业务视角分析若依项目。
重点说明:
1. 系统主要解决什么问题
2. 核心业务对象有哪些
3. 用户、角色、菜单、权限如何协作
4. 前端和后端分别负责什么
5. 哪些结论需要人工验证
```
</div>
<!--
这一页是若依业务导览 Prompt。注意我们不是让 TRAE 泛泛总结项目,而是指定业务视角。
我们让它说明系统解决什么问题、核心业务对象有哪些、用户、角色、菜单、权限如何协作、前端和后端分别负责什么。同时必须列出需要人工验证的内容。
这能帮助我们快速建立若依的模块认知图。
-->
---
# 产出:若依模块认知图
<div class="mt-6 text-sm">
产出内容:核心业务对象 · 核心模块 · 模块职责 · 模块依赖关系 · 权限链路 · 风险点 · 不确定点
</div>
<!--
这一部分的产出是若依模块认知图。
大家要整理出核心业务对象、核心模块、模块职责、模块依赖关系、权限链路、风险点和不确定点。
例如用户模块依赖部门、岗位和角色;角色模块关联菜单和数据权限;菜单模块既影响动态路由,也影响按钮权限;操作日志模块记录关键操作。
-->