Files
erp_sb/CLAUDE.md
2025-09-22 11:51:16 +08:00

212 lines
5.8 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

---
# CLAUDE.md
This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.
## 项目概述
这是一个基于 **RuoYi-Vue 3.9.0** 的企业管理系统,集成了跨境电商 ERP 功能。项目包含:
* **RuoYi-Vue 核心**:基于 Spring Boot 2.5.15 后端和 Vue.js 2.6.12 前端的企业管理平台
* **ERP 客户端 (erp_client_sb)**:独立的跨境电商 ERP 桌面应用 (JavaFX + Spring Boot 3.5.4)
* **客户端监控扩展**实时监控、数据报表、API 集成等自定义功能
## 项目架构
### 主项目模块结构 (Maven 多模块)
```
ruoyi-admin/ # 主应用入口Web 控制器层
ruoyi-framework/ # 核心框架配置 (Spring Security, Redis, MyBatis)
ruoyi-system/ # 系统核心模块 (实体类、Mapper、Service)
ruoyi-common/ # 公共工具类和常量定义
ruoyi-quartz/ # 定时任务管理模块
ruoyi-generator/ # 代码生成器模块
ruoyi-ui/ # Vue.js 前端应用
erp_client_sb/ # 独立的跨境电商 ERP 客户端
```
### 技术栈详情
**后端 (Spring Boot 2.5.15)**
- Java 17 + Maven 3.11.0
- Spring Security 5.7.12 + JWT 0.9.1 认证
- MyBatis + PageHelper 1.4.7 分页
- MySQL + Redis 缓存
- Druid 1.2.23 连接池
- Swagger 3.0.0 API 文档
- FastJSON 2.0.57 JSON 处理
**前端 (Vue.js 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 图表库
- Webpack 构建 (vue-cli-service 4.4.6)
**ERP 客户端 (JavaFX + Spring Boot 3.5.4)**
- OpenJFX 17.0.1 桌面 UI
- SQLite 3.42.0 本地数据库 + JPA/Hibernate
- WebMagic 1.0.3 + Selenium 4.23.0 网页爬取
- HutoolUtils 5.8.36 工具库
- 七牛云 7.12.1 存储服务
## 常用开发命令
### 后端开发 (Maven)
```bash
# 启动主应用 (推荐)
cd ruoyi-admin && mvn spring-boot:run
# 从根目录启动
mvn spring-boot:run -pl ruoyi-admin
# 打包部署
mvn clean package -DskipTests
# 运行测试
mvn test
# 编译项目
mvn clean compile
```
### 前端开发 (npm)
```bash
cd ruoyi-ui
# 安装依赖 (建议使用国内镜像)
npm install --registry=https://registry.npmmirror.com
# 启动开发服务器 (端口 80)
npm run dev
# 生产环境构建
npm run build:prod
# 测试环境构建
npm run build:stage
```
### ERP 客户端开发
```bash
cd erp_client_sb
# 启动 JavaFX 应用
mvn spring-boot:run
# 或者
mvn javafx:run
# 打包可执行 JAR
mvn clean package
```
## 核心配置与架构要点
### Maven 依赖管理
- 使用阿里云 Maven 镜像 (maven.aliyun.com)
- 父 POM 统一管理版本号和依赖
- 安全版本覆盖Tomcat 9.0.106, Logback 1.2.13, Spring Framework 5.3.39
### 前端开发配置
- **开发服务器**:端口 80支持热重载
- **代理配置**`vue.config.js` 中配置后端 API 代理 (`http://8.138.23.49:8080`)
- **构建优化**Gzip 压缩、代码分割、Element UI 单独打包
### 数据库与缓存
- **MySQL**:主数据库,通过 Druid 连接池管理
- **Redis**:会话存储、缓存、分布式锁
- **SQLite**ERP 客户端本地数据存储
### 安全与认证
- **JWT 无状态认证**:支持多终端
- **RBAC 权限模型**:角色-菜单-按钮权限
- **跨域配置**:支持前后端分离部署
- **XSS 防护**:输入过滤和输出编码
## 开发工作流
### 新功能开发标准流程
1. **后端开发**
-`ruoyi-system/src/main/java/com/ruoyi/system/domain/` 创建实体类
-`ruoyi-system/src/main/java/com/ruoyi/system/mapper/` 创建 Mapper 接口
-`ruoyi-system/src/main/resources/mapper/system/` 创建 MyBatis XML
-`ruoyi-system/src/main/java/com/ruoyi/system/service/` 实现业务逻辑
-`ruoyi-admin/src/main/java/com/ruoyi/web/controller/` 创建 REST 控制器
2. **前端开发**
-`ruoyi-ui/src/api/` 创建 API 服务模块
-`ruoyi-ui/src/views/` 创建页面组件
- 更新路由配置和菜单权限
3. **代码生成器**
- 访问 `/tool/gen` 快速生成 CRUD 代码
- 支持 Java、Vue、SQL 代码自动生成
### 客户端集成开发
ERP 客户端提供的核心功能:
- 多平台数据采集 (Amazon, Rakuten, Shopee, 1688)
- 实时状态监控与错误上报
- 与主系统的 API 集成 (`/monitor/client/api/**`)
## 重要配置文件
### 后端配置
- **主配置**`ruoyi-admin/src/main/resources/application.yml`
- **数据源配置**`ruoyi-admin/src/main/resources/application-druid.yml`
- **Maven 配置**:根目录 `pom.xml` (父 POM)
### 前端配置
- **构建配置**`ruoyi-ui/vue.config.js`
- **包管理**`ruoyi-ui/package.json`
### ERP 客户端配置
- **应用配置**`erp_client_sb/src/main/resources/application.yml`
- **Maven 配置**`erp_client_sb/pom.xml`
## 系统监控与工具
### 内置监控功能
- 系统性能监控:`/monitor/server`
- Redis 缓存监控:缓存信息查询和命令统计
- Druid 连接池监控SQL 性能分析
- 在线用户监控:当前活跃用户状态
- 操作日志:系统操作记录和异常日志
### API 文档
- Swagger UI`/swagger-ui/index.html`
- 自动生成的接口文档
## 部署和环境
### 开发环境要求
- **Java**JDK 17
- **Node.js**>= 8.9
- **npm**>= 3.0.0
- **MySQL**5.7+ 或 8.0+
- **Redis**6.0+
### 常见问题排查
- **端口冲突**:前端默认 80 端口,可在 `vue.config.js` 修改
- **跨域问题**:检查 `vue.config.js` 代理配置和后端 CORS 设置
- **Maven 依赖**:已配置阿里云镜像加速
- **JavaFX 运行**:确保 JDK 包含 JavaFX 模块或单独安装 OpenJFX
---
⚠️ **额外要求**:回答时必须使用中文。
💡 **操作提示**:在每次修改代码前,我会先向您说明修改的思路和方案,请您确认同意后再进行代码更改。
---