207 lines
5.6 KiB
Markdown
207 lines
5.6 KiB
Markdown
|
|
# CLAUDE.md
|
|||
|
|
|
|||
|
|
This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.
|
|||
|
|
|
|||
|
|
<!-- OPENSPEC:START -->
|
|||
|
|
# OpenSpec Instructions
|
|||
|
|
|
|||
|
|
These instructions are for AI assistants working in this project.
|
|||
|
|
|
|||
|
|
Always open `@/openspec/AGENTS.md` when the request:
|
|||
|
|
- Mentions planning or proposals (words like proposal, spec, change, plan)
|
|||
|
|
- Introduces new capabilities, breaking changes, architecture shifts, or big performance/security work
|
|||
|
|
- Sounds ambiguous and you need the authoritative spec before coding
|
|||
|
|
|
|||
|
|
Use `@/openspec/AGENTS.md` to learn:
|
|||
|
|
- How to create and apply change proposals
|
|||
|
|
- Spec format and conventions
|
|||
|
|
- Project structure and guidelines
|
|||
|
|
|
|||
|
|
Keep this managed block so 'openspec update' can refresh the instructions.
|
|||
|
|
|
|||
|
|
<!-- OPENSPEC:END -->
|
|||
|
|
|
|||
|
|
## 项目架构
|
|||
|
|
|
|||
|
|
RuoYi-Vue 是一个基于 Spring Boot + Vue 的前后端分离快速开发框架(v3.8.8)。
|
|||
|
|
|
|||
|
|
### 整体结构
|
|||
|
|
|
|||
|
|
```
|
|||
|
|
RuoYi-Vue-master/
|
|||
|
|
├── ruoyi-ui/ # 前端项目(Vue 2 + Element UI)
|
|||
|
|
├── ruoyi-admin/ # Web 服务入口(Spring Boot 主应用)
|
|||
|
|
├── ruoyi-framework/ # 核心框架模块(认证、权限、缓存)
|
|||
|
|
├── ruoyi-system/ # 系统管理模块(用户、角色、菜单等)
|
|||
|
|
├── ruoyi-common/ # 通用工具模块
|
|||
|
|
├── ruoyi-quartz/ # 定时任务模块
|
|||
|
|
├── ruoyi-generator/ # 代码生成模块
|
|||
|
|
├── ibs/ # 数字支行模块(自定义业务模块)
|
|||
|
|
├── sql/ # SQL 脚本
|
|||
|
|
├── openspec/ # OpenSpec 规范管理
|
|||
|
|
└── pom.xml # Maven 父项目配置
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
### 后端模块依赖关系
|
|||
|
|
|
|||
|
|
- **ruoyi-admin**: 主应用,依赖所有其他模块
|
|||
|
|
- **ruoyi-framework**: 核心框架,提供 Spring Security、JWT、Redis 等基础功能
|
|||
|
|
- **ruoyi-system**: 系统管理功能(用户、角色、菜单、部门、岗位、字典、参数、通知公告等)
|
|||
|
|
- **ruoyi-common**: 通用工具类(注解、常量、异常处理、工具类等)
|
|||
|
|
- **ruoyi-quartz**: Quartz 定时任务调度
|
|||
|
|
- **ruoyi-generator**: 代码生成器,支持前后端代码生成
|
|||
|
|
- **ibs**: 自定义业务模块
|
|||
|
|
|
|||
|
|
### 前端目录结构(ruoyi-ui/)
|
|||
|
|
|
|||
|
|
```
|
|||
|
|
ruoyi-ui/
|
|||
|
|
├── src/
|
|||
|
|
│ ├── api/ # API 接口定义
|
|||
|
|
│ ├── assets/ # 静态资源
|
|||
|
|
│ ├── components/ # 通用组件
|
|||
|
|
│ ├── layout/ # 布局组件
|
|||
|
|
│ ├── router/ # 路由配置
|
|||
|
|
│ ├── store/ # Vuex 状态管理
|
|||
|
|
│ ├── utils/ # 工具函数
|
|||
|
|
│ └── views/ # 页面组件
|
|||
|
|
├── public/ # 公共静态资源
|
|||
|
|
├── vue.config.js # Vue CLI 配置
|
|||
|
|
└── package.json # 前端依赖管理
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
## 开发命令
|
|||
|
|
|
|||
|
|
### 后端开发
|
|||
|
|
|
|||
|
|
```bash
|
|||
|
|
# 编译整个项目
|
|||
|
|
mvn clean install
|
|||
|
|
|
|||
|
|
# 编译单个模块
|
|||
|
|
mvn clean install -pl ruoyi-admin
|
|||
|
|
|
|||
|
|
# 跳过测试编译
|
|||
|
|
mvn clean install -DskipTests
|
|||
|
|
|
|||
|
|
# 运行主应用(需先编译)
|
|||
|
|
cd ruoyi-admin/target
|
|||
|
|
java -jar ruoyi-admin.jar
|
|||
|
|
|
|||
|
|
# 或使用 Maven 插件运行
|
|||
|
|
cd ruoyi-admin
|
|||
|
|
mvn spring-boot:run
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
### 前端开发
|
|||
|
|
|
|||
|
|
```bash
|
|||
|
|
cd ruoyi-ui
|
|||
|
|
|
|||
|
|
# 安装依赖
|
|||
|
|
npm install
|
|||
|
|
|
|||
|
|
# 开发模式运行
|
|||
|
|
npm run dev
|
|||
|
|
|
|||
|
|
# 生产环境构建
|
|||
|
|
npm run build:prod
|
|||
|
|
|
|||
|
|
# 预发布环境构建
|
|||
|
|
npm run build:stage
|
|||
|
|
|
|||
|
|
# 代码检查
|
|||
|
|
npm run lint
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
### 启动脚本
|
|||
|
|
|
|||
|
|
项目提供了启动脚本:
|
|||
|
|
- Windows: `ry.bat`
|
|||
|
|
- Linux: `./ry.bat` 或 `./ry.sh`
|
|||
|
|
|
|||
|
|
## 技术栈
|
|||
|
|
|
|||
|
|
### 后端
|
|||
|
|
|
|||
|
|
- Spring Boot 2.5.14
|
|||
|
|
- Spring Security 5.7.12(认证授权)
|
|||
|
|
- JWT(Token 认证)
|
|||
|
|
- MyBatis(ORM)
|
|||
|
|
- Redis(缓存)
|
|||
|
|
- Druid(数据库连接池)
|
|||
|
|
- Swagger 3.0(API 文档)
|
|||
|
|
- Quartz(定时任务)
|
|||
|
|
- WebSocket(实时通信)
|
|||
|
|
- EasyExcel(Excel 处理)
|
|||
|
|
|
|||
|
|
### 前端
|
|||
|
|
|
|||
|
|
- Vue 2.6.12
|
|||
|
|
- Element UI 2.15.14
|
|||
|
|
- Vue Router 3.4.9
|
|||
|
|
- Vuex 3.6.0
|
|||
|
|
- Axios 0.28.1(HTTP 客户端)
|
|||
|
|
- ECharts 5.4.0(数据可视化)
|
|||
|
|
|
|||
|
|
## 核心概念
|
|||
|
|
|
|||
|
|
### 认证授权
|
|||
|
|
|
|||
|
|
- 基于 Spring Security + JWT 的无状态认证
|
|||
|
|
- 支持动态权限菜单
|
|||
|
|
- 数据权限控制(基于部门的数据范围)
|
|||
|
|
- Token 存储在 Redis 中,支持过期续期
|
|||
|
|
|
|||
|
|
### 权限控制
|
|||
|
|
|
|||
|
|
- 菜单权限:控制用户可见的功能模块
|
|||
|
|
- 按钮权限:细粒度的操作控制
|
|||
|
|
- 数据权限:控制用户可访问的数据范围
|
|||
|
|
|
|||
|
|
### 代码生成器
|
|||
|
|
|
|||
|
|
使用代码生成器可以一键生成前后端 CRUD 代码:
|
|||
|
|
1. 在数据库中创建表
|
|||
|
|
2. 通过系统菜单的"代码生成"功能导入表
|
|||
|
|
3. 编辑字段信息
|
|||
|
|
4. 生成代码并下载
|
|||
|
|
|
|||
|
|
## 重要配置文件
|
|||
|
|
|
|||
|
|
| 文件路径 | 用途 |
|
|||
|
|
|---------|------|
|
|||
|
|
| [ruoyi-admin/src/main/resources/application.yml](ruoyi-admin/src/main/resources/application.yml) | Spring Boot 主配置 |
|
|||
|
|
| [ruoyi-ui/.env.development](ruoyi-ui/.env.development) | 前端开发环境配置 |
|
|||
|
|
| [ruoyi-ui/vue.config.js](ruoyi-ui/vue.config.js) | Vue CLI 配置 |
|
|||
|
|
| [pom.xml](pom.xml) | Maven 依赖配置 |
|
|||
|
|
|
|||
|
|
## 开发注意事项
|
|||
|
|
|
|||
|
|
### 后端开发
|
|||
|
|
|
|||
|
|
- Controller 层位于各模块的 `controller/` 包
|
|||
|
|
- Service 层分为接口(`service/`)和实现(`service/impl/`)
|
|||
|
|
- Mapper 层使用 MyBatis 注解或 XML 映射
|
|||
|
|
- 实体类使用 JPA 注解(`@Table`, `@Column` 等)
|
|||
|
|
- 使用 `@RequiresPermissions` 注解控制权限
|
|||
|
|
|
|||
|
|
### 前端开发
|
|||
|
|
|
|||
|
|
- API 请求统一在 `src/api/` 目录下定义
|
|||
|
|
- 页面组件放在 `src/views/` 目录下,按模块分组
|
|||
|
|
- 使用 Vuex 管理全局状态(用户信息、权限等)
|
|||
|
|
- 路由配置在 `src/router/` 目录下
|
|||
|
|
- 静态资源放在 `src/assets/` 目录下
|
|||
|
|
|
|||
|
|
### 数据库
|
|||
|
|
|
|||
|
|
- SQL 脚本位于 `sql/` 目录
|
|||
|
|
- 表命名规范:`sys_` 前缀为系统表,业务表可自定义
|
|||
|
|
- 字段包含通用字段:`create_by`, `create_time`, `update_by`, `update_time`, `remark`
|
|||
|
|
|
|||
|
|
## 默认账号
|
|||
|
|
|
|||
|
|
- 用户名: `admin`
|
|||
|
|
- 密码: `admin123`
|