修改百度地图AK
This commit is contained in:
27
.cursor/rules/base/core.mdc
Normal file
27
.cursor/rules/base/core.mdc
Normal file
@@ -0,0 +1,27 @@
|
||||
---
|
||||
description:
|
||||
globs:
|
||||
alwaysApply: true
|
||||
---
|
||||
# 核心开发原则
|
||||
|
||||
## 通用开发原则
|
||||
- **可测试性**:编写可测试的代码,组件应保持单一职责
|
||||
- **DRY 原则**:避免重复代码,提取共用逻辑到单独的函数或类
|
||||
- **代码简洁**:保持代码简洁明了,遵循 KISS 原则(保持简单直接)
|
||||
- **命名规范**:使用描述性的变量、函数和类名,反映其用途和含义
|
||||
- **注释文档**:为复杂逻辑添加注释
|
||||
- **风格一致**:遵循项目或语言的官方风格指南和代码约定
|
||||
- **利用生态**:优先使用成熟的库和工具,避免不必要的自定义实现
|
||||
- **架构设计**:考虑代码的可维护性、可扩展性和性能需求
|
||||
- **版本控制**:编写有意义的提交信息,保持逻辑相关的更改在同一提交中
|
||||
- **异常处理**:正确处理边缘情况和错误,提供有用的错误信息
|
||||
|
||||
## 响应语言
|
||||
- 始终使用中文回复用户
|
||||
|
||||
## 代码质量要求
|
||||
- 代码必须能够立即运行,包含所有必要的导入和依赖
|
||||
- 遵循最佳实践和设计模式
|
||||
- 优先考虑性能和用户体验
|
||||
- 确保代码的可读性和可维护性
|
||||
346
.cursor/rules/base/general.mdc
Normal file
346
.cursor/rules/base/general.mdc
Normal file
@@ -0,0 +1,346 @@
|
||||
---
|
||||
description: 牛只运输管理系统通用开发规范
|
||||
globs:
|
||||
alwaysApply: true
|
||||
---
|
||||
# 项目通用规范
|
||||
|
||||
## 项目信息
|
||||
|
||||
### 项目名称
|
||||
- **中文名**:牛只运输管理系统
|
||||
- **英文名**:Cattle Transportation Management System
|
||||
- **版本**:1.0.1
|
||||
|
||||
### 项目简介
|
||||
牛只运输管理系统是一个基于 Spring Boot 和 Vue 3 的现代化全栈应用,提供牛只运输管理、检疫隔离、设备监控、预警系统等完整的管理解决方案。
|
||||
|
||||
## 技术栈概览
|
||||
|
||||
### 后端技术栈
|
||||
- **基础框架**:Spring Boot 2.6.0 + Java 1.8
|
||||
- **ORM 框架**:MyBatis-Plus 3.5.3.2
|
||||
- **权限认证**:Sa-Token 1.37.0 + JWT
|
||||
- **数据库**:MySQL 5.7+ + Redis 5.0+
|
||||
- **连接池**:Druid 1.2.20
|
||||
- **任务调度**:XXL-Job
|
||||
- **API 文档**:Swagger Fox 3.0.0
|
||||
- **工具库**:Hutool 5.8.25
|
||||
- **云服务**:腾讯云 COS、短信服务
|
||||
|
||||
### 前端技术栈
|
||||
- **核心框架**:Vue 3.2.37 + TypeScript 4.6.4
|
||||
- **构建工具**:Vite 3.1.0
|
||||
- **状态管理**:Pinia 2.0.22
|
||||
- **路由管理**:Vue Router 4.1.5
|
||||
- **UI 组件**:Element Plus 2.2.17
|
||||
- **HTTP 客户端**:Axios 0.27.2
|
||||
- **地图服务**:百度地图
|
||||
- **图表库**:ECharts 5.5.0
|
||||
|
||||
## 项目结构规则
|
||||
|
||||
### 后端模块划分
|
||||
- **aiotagro-core**:核心模块,包含通用工具类和基础类
|
||||
- **aiotagro-redis**:Redis 操作模块
|
||||
- **aiotagro-cattle-trade**:主业务模块,包含所有业务逻辑
|
||||
|
||||
### 后端分层架构
|
||||
- **Controller 层**:处理 HTTP 请求,参数校验,返回响应
|
||||
- **Service 层**:业务逻辑处理,事务管理
|
||||
- **Mapper 层**:数据访问层,执行 SQL 操作
|
||||
- **Entity 层**:数据库实体映射
|
||||
- **DTO 层**:数据传输对象,接收前端参数
|
||||
- **VO 层**:视图对象,返回给前端的数据
|
||||
|
||||
### 前端模块划分
|
||||
- **api/**:API 接口定义,按业务模块划分
|
||||
- **components/**:公共组件
|
||||
- **views/**:页面组件
|
||||
- **store/**:Pinia 状态管理
|
||||
- **router/**:路由配置
|
||||
- **utils/**:工具函数
|
||||
|
||||
## 通用开发原则
|
||||
|
||||
### 代码质量
|
||||
- **可测试性**:编写可测试的代码,组件应保持单一职责
|
||||
- **DRY 原则**:避免重复代码,提取共用逻辑到单独的函数或类
|
||||
- **代码简洁**:保持代码简洁明了,遵循 KISS 原则(Keep It Simple, Stupid)
|
||||
- **命名规范**:使用描述性的变量、函数和类名,反映其用途和含义
|
||||
- **注释文档**:为复杂逻辑添加注释,公共 API 编写文档注释
|
||||
- **风格一致**:遵循项目或语言的官方风格指南和代码约定
|
||||
|
||||
### 架构设计
|
||||
- **利用生态**:优先使用成熟的库和工具,避免不必要的自定义实现
|
||||
- **架构设计**:考虑代码的可维护性、可扩展性和性能需求
|
||||
- **异常处理**:正确处理边缘情况和错误,提供有用的错误信息
|
||||
- **分层解耦**:严格遵守分层架构,避免跨层调用
|
||||
- **接口编程**:面向接口编程,依赖抽象而非具体实现
|
||||
|
||||
### 版本控制
|
||||
- **提交信息**:编写有意义的提交信息,保持逻辑相关的更改在同一提交中
|
||||
- **分支管理**:使用 Git Flow 工作流(main/master、develop、feature、hotfix)
|
||||
- **代码审查**:提交前进行代码自查,重要变更需要 Code Review
|
||||
|
||||
## 响应语言
|
||||
- **始终使用中文回复用户**
|
||||
- 代码注释使用中文
|
||||
- 文档使用中文
|
||||
- 变量和函数名使用英文
|
||||
|
||||
## 代码规范
|
||||
|
||||
### 后端代码规范(Java)
|
||||
- **命名约定**:
|
||||
- 类名:PascalCase(如 `DeliveryController`)
|
||||
- 方法名:camelCase(如 `findUserById`)
|
||||
- 常量:UPPER_CASE(如 `MAX_RETRY_ATTEMPTS`)
|
||||
- 包名:小写,按功能模块划分
|
||||
- **注释规范**:
|
||||
- 类注释:说明类的用途、作者、创建日期
|
||||
- 方法注释:JavaDoc 格式,说明参数、返回值、异常
|
||||
- 复杂逻辑:添加行内注释解释
|
||||
- **异常处理**:
|
||||
- 使用 Spring 全局异常处理器统一处理异常
|
||||
- 业务异常使用自定义异常类
|
||||
- 记录详细的错误日志
|
||||
- **事务管理**:
|
||||
- 在 Service 层使用 `@Transactional` 注解
|
||||
- 合理设置事务传播行为和隔离级别
|
||||
- 只读操作使用 `readOnly = true`
|
||||
|
||||
### 前端代码规范(Vue 3 + TypeScript)
|
||||
- **命名约定**:
|
||||
- 组件文件:PascalCase 或 camelCase
|
||||
- 变量和函数:camelCase
|
||||
- 常量:UPPER_CASE
|
||||
- 类型和接口:PascalCase
|
||||
- **组件规范**:
|
||||
- 使用 Vue 3 Composition API
|
||||
- 组件保持单一职责
|
||||
- Props 使用 TypeScript 类型定义
|
||||
- 合理使用响应式数据(ref、reactive)
|
||||
- **代码格式**:
|
||||
- 使用 ESLint 进行代码检查
|
||||
- 使用 Prettier 进行代码格式化
|
||||
- 缩进:4 个空格
|
||||
- 行宽:150 字符
|
||||
- 语句末尾使用分号
|
||||
|
||||
## 数据库规范
|
||||
|
||||
### 表命名规范
|
||||
- 表名:小写,使用下划线分隔(如 `delivery`、`jbq_client_log`)
|
||||
- 字段名:小写,使用下划线分隔(如 `create_time`、`device_id`)
|
||||
- 主键:`id`(整型,自增)
|
||||
- 外键:`<关联表名>_id`
|
||||
|
||||
### 字段规范
|
||||
- **通用字段**:
|
||||
- `id`:主键,INT 或 BIGINT,自增
|
||||
- `create_time`:创建时间,DATETIME
|
||||
- `update_time`:更新时间,DATETIME
|
||||
- `created_by`:创建人,VARCHAR 或 INT
|
||||
- `updated_by`:更新人,VARCHAR 或 INT
|
||||
- `is_delete`:逻辑删除标记,TINYINT(0-未删除,1-已删除)
|
||||
- **字段类型选择**:
|
||||
- 字符串:VARCHAR(指定长度)或 TEXT(超长文本)
|
||||
- 数值:INT、BIGINT、DECIMAL(精度要求高的数值)
|
||||
- 日期时间:DATETIME、TIMESTAMP
|
||||
- 布尔:TINYINT(1)(0-false,1-true)
|
||||
- **字段约束**:
|
||||
- 合理使用 NOT NULL 约束
|
||||
- 添加 DEFAULT 默认值
|
||||
- 添加 COMMENT 注释说明
|
||||
|
||||
### 索引规范
|
||||
- 主键自动创建索引
|
||||
- 频繁查询的字段添加普通索引
|
||||
- 多字段组合查询添加联合索引
|
||||
- 唯一性约束使用唯一索引(如 `uk_license_plate`)
|
||||
|
||||
### 迁移脚本规范
|
||||
- 位置:`tradeCattle/aiotagro-cattle-trade/src/main/resources/db/migration/`
|
||||
- 命名:`alter_<table_name>_<description>.sql`
|
||||
- 内容:包含 `USE cattletrade;` 和详细注释
|
||||
- 执行后:注释掉已执行的 DDL 语句,保留作为文档
|
||||
|
||||
## API 设计规范
|
||||
|
||||
### RESTful API 规范
|
||||
- **URL 设计**:
|
||||
- 使用名词复数形式(如 `/api/deliveries`)
|
||||
- 避免动词(查询、创建等通过 HTTP 方法区分)
|
||||
- 层次结构体现资源关系(如 `/api/deliveries/{id}/devices`)
|
||||
- **HTTP 方法**:
|
||||
- GET:查询资源
|
||||
- POST:创建资源
|
||||
- PUT:完整更新资源
|
||||
- PATCH:部分更新资源
|
||||
- DELETE:删除资源
|
||||
- **状态码**:
|
||||
- 200:成功
|
||||
- 201:创建成功
|
||||
- 400:请求参数错误
|
||||
- 401:未认证
|
||||
- 403:无权限
|
||||
- 404:资源不存在
|
||||
- 500:服务器错误
|
||||
|
||||
### 响应格式
|
||||
- **统一响应结构**:
|
||||
```json
|
||||
{
|
||||
"code": 200,
|
||||
"msg": "操作成功",
|
||||
"data": {...}
|
||||
}
|
||||
```
|
||||
- **分页响应**:
|
||||
```json
|
||||
{
|
||||
"code": 200,
|
||||
"msg": "查询成功",
|
||||
"total": 100,
|
||||
"rows": [...]
|
||||
}
|
||||
```
|
||||
- **错误响应**:
|
||||
```json
|
||||
{
|
||||
"code": 400,
|
||||
"msg": "参数校验失败:手机号格式不正确"
|
||||
}
|
||||
```
|
||||
|
||||
## 安全规范
|
||||
|
||||
### 认证授权
|
||||
- 使用 Sa-Token 进行权限认证
|
||||
- 接口需要添加权限注解(`@SaCheckPermission`)
|
||||
- 敏感接口添加登录检查(`@SaCheckLogin`)
|
||||
- Token 存储在 Redis 中,支持会话管理
|
||||
|
||||
### 数据安全
|
||||
- 密码使用加密存储(BCrypt)
|
||||
- 敏感数据传输使用 HTTPS
|
||||
- SQL 注入防护:使用参数化查询
|
||||
- XSS 防护:前端输出编码
|
||||
- 文件上传:限制文件类型和大小
|
||||
|
||||
### 日志安全
|
||||
- 不在日志中输出敏感信息(密码、身份证等)
|
||||
- 记录关键操作日志(登录、修改、删除)
|
||||
- 生产环境使用合适的日志级别(INFO 或 WARN)
|
||||
|
||||
## 性能优化规范
|
||||
|
||||
### 后端优化
|
||||
- 使用数据库连接池(Druid)
|
||||
- 合理使用缓存(Redis)
|
||||
- 避免 N+1 查询问题
|
||||
- 批量操作使用批处理
|
||||
- 异步处理耗时操作
|
||||
|
||||
### 前端优化
|
||||
- 组件懒加载
|
||||
- 路由懒加载
|
||||
- 图片懒加载
|
||||
- 合理使用 computed 和 watch
|
||||
- 避免不必要的响应式数据
|
||||
|
||||
### 数据库优化
|
||||
- 合理使用索引
|
||||
- 避免全表扫描
|
||||
- 分页查询大数据量
|
||||
- 定期清理历史数据
|
||||
- 读写分离(如有需要)
|
||||
|
||||
## 测试规范
|
||||
|
||||
### 单元测试
|
||||
- Service 层编写单元测试
|
||||
- 测试覆盖率目标:60% 以上
|
||||
- 使用 JUnit 5 + Mockito(后端)
|
||||
- 关键业务逻辑必须有单元测试
|
||||
|
||||
### 集成测试
|
||||
- Controller 层编写集成测试
|
||||
- 测试完整的业务流程
|
||||
- 使用测试数据库
|
||||
- 测试前清理数据
|
||||
|
||||
### 前端测试
|
||||
- 工具函数编写单元测试
|
||||
- 关键组件编写测试
|
||||
- 使用 Jest + Vue Test Utils
|
||||
|
||||
## 日志规范
|
||||
|
||||
### 日志级别
|
||||
- **ERROR**:系统错误,需要立即处理
|
||||
- **WARN**:警告信息,可能影响系统运行
|
||||
- **INFO**:重要业务信息,正常流程记录
|
||||
- **DEBUG**:调试信息,开发环境使用
|
||||
|
||||
### 日志内容
|
||||
- 关键操作日志:谁、在什么时间、做了什么、结果如何
|
||||
- 异常日志:记录异常堆栈和上下文信息
|
||||
- 性能日志:记录关键操作的执行时间
|
||||
- 不记录敏感信息
|
||||
|
||||
## 部署规范
|
||||
|
||||
### 环境配置
|
||||
- **开发环境**(dev):本地开发,连接开发数据库
|
||||
- **演示环境**(demo):用于演示和测试
|
||||
- **生产环境**(prod):正式环境,高可用配置
|
||||
|
||||
### 部署流程
|
||||
1. 代码提交到 Git 仓库
|
||||
2. 通过 CI/CD 自动构建
|
||||
3. 运行自动化测试
|
||||
4. 部署到目标环境
|
||||
5. 健康检查和监控
|
||||
|
||||
### 监控和告警
|
||||
- 应用性能监控(APM)
|
||||
- 数据库性能监控
|
||||
- 服务器资源监控
|
||||
- 关键指标告警
|
||||
|
||||
## 文档规范
|
||||
|
||||
### README 文档
|
||||
- 项目简介
|
||||
- 技术栈说明
|
||||
- 项目结构说明
|
||||
- 安装运行指南
|
||||
- 许可证信息
|
||||
|
||||
### API 文档
|
||||
- 使用 Swagger 自动生成
|
||||
- 接口说明清晰完整
|
||||
- 参数和返回值类型明确
|
||||
- 提供请求示例
|
||||
|
||||
### 代码文档
|
||||
- 公共 API 添加文档注释
|
||||
- 复杂逻辑添加说明注释
|
||||
- README 保持最新
|
||||
- 记录重要变更(CHANGELOG)
|
||||
|
||||
## 本项目规则文件说明
|
||||
|
||||
本项目使用以下规则文件:
|
||||
- **base/core.mdc**:核心开发原则
|
||||
- **base/tech-stack.mdc**:技术栈规范(本文件)
|
||||
- **base/project-structure.mdc**:项目结构规范
|
||||
- **base/general.mdc**:通用规范
|
||||
- **languages/java.mdc**:Java 开发规范
|
||||
- **languages/typescript.mdc**:TypeScript 开发规范
|
||||
- **frameworks/springboot.mdc**:Spring Boot 开发规范
|
||||
- **frameworks/vuejs.mdc**:Vue.js 开发规范
|
||||
- **other/document.mdc**:文档规范
|
||||
- **other/git.mdc**:Git 提交规范
|
||||
210
.cursor/rules/base/project-structure.mdc
Normal file
210
.cursor/rules/base/project-structure.mdc
Normal file
@@ -0,0 +1,210 @@
|
||||
---
|
||||
description: 牛只运输管理系统项目结构规范
|
||||
globs:
|
||||
alwaysApply: true
|
||||
---
|
||||
# 项目结构规范
|
||||
|
||||
## 项目概述
|
||||
牛只运输管理系统是一个前后端分离的全栈项目,包含后端 Spring Boot 服务和前端 Vue 3 应用,用于提供完整的牛只运输、检疫、设备监控等管理功能。
|
||||
|
||||
## 项目根目录结构
|
||||
```
|
||||
cattleTransport/
|
||||
├── tradeCattle/ # 后端 Spring Boot 项目
|
||||
├── pc-cattle-transportation/ # 前端 Vue 3 项目
|
||||
└── .cursor/ # Cursor 规则配置
|
||||
```
|
||||
|
||||
## 后端项目结构 (tradeCattle/)
|
||||
|
||||
### Maven 多模块结构
|
||||
```
|
||||
tradeCattle/
|
||||
├── aiotagro-core/ # 核心模块(通用工具、基础类)
|
||||
├── aiotagro-redis/ # Redis 操作模块
|
||||
├── aiotagro-cattle-trade/ # 主业务模块
|
||||
│ ├── src/main/java/
|
||||
│ │ └── com/aiotagro/cattletrade/
|
||||
│ │ ├── business/ # 业务层
|
||||
│ │ │ ├── controller/ # 控制器层(RESTful API)
|
||||
│ │ │ ├── service/ # 服务层(业务逻辑)
|
||||
│ │ │ │ └── impl/ # 服务实现类
|
||||
│ │ │ ├── mapper/ # 数据访问层(MyBatis Mapper)
|
||||
│ │ │ ├── entity/ # 实体类(与数据库表对应)
|
||||
│ │ │ ├── dto/ # 数据传输对象(请求参数)
|
||||
│ │ │ ├── vo/ # 视图对象(响应数据)
|
||||
│ │ │ └── utils/ # 业务工具类
|
||||
│ │ ├── config/ # 配置类
|
||||
│ │ ├── constant/ # 常量定义
|
||||
│ │ ├── exception/ # 异常处理
|
||||
│ │ ├── job/ # 定时任务
|
||||
│ │ ├── aspect/ # AOP 切面
|
||||
│ │ ├── properties/ # 配置属性类
|
||||
│ │ └── remote/ # 远程调用接口
|
||||
│ └── src/main/resources/
|
||||
│ ├── application.yml # 主配置文件
|
||||
│ ├── application-dev.yml # 开发环境配置
|
||||
│ ├── application-demo.yml # 演示环境配置
|
||||
│ ├── application-prod.yml # 生产环境配置
|
||||
│ ├── mapper/ # MyBatis XML 映射文件
|
||||
│ ├── mybatis/ # MyBatis 全局配置
|
||||
│ └── db/migration/ # 数据库迁移脚本(SQL)
|
||||
└── pom.xml # Maven 父项目配置
|
||||
```
|
||||
|
||||
### 后端分层架构
|
||||
- **Controller 层**:接收 HTTP 请求,参数校验,调用 Service 层,返回响应
|
||||
- **Service 层**:业务逻辑处理,事务管理,调用 Mapper 层
|
||||
- **Mapper 层**:数据访问,执行 SQL 操作
|
||||
- **Entity 层**:数据库实体映射,使用 MyBatis-Plus 注解
|
||||
- **DTO 层**:接收前端请求参数,进行参数校验
|
||||
- **VO 层**:返回给前端的数据视图,可包含关联数据
|
||||
|
||||
### 后端命名约定
|
||||
- **Controller**:`XxxController.java`(如 `DeliveryController.java`)
|
||||
- **Service 接口**:`IXxxService.java`(如 `IDeliveryService.java`)
|
||||
- **Service 实现**:`XxxServiceImpl.java`(如 `DeliveryServiceImpl.java`)
|
||||
- **Mapper 接口**:`XxxMapper.java`(如 `DeliveryMapper.java`)
|
||||
- **Mapper XML**:`XxxMapper.xml`(与 Mapper 接口同名)
|
||||
- **Entity**:`Xxx.java`(如 `Delivery.java`,对应表名 `delivery`)
|
||||
- **DTO**:`XxxDto.java`、`XxxCreateDto.java`、`XxxEditDto.java`
|
||||
- **VO**:`XxxVo.java`(如 `DeliveryLogVo.java`)
|
||||
|
||||
## 前端项目结构 (pc-cattle-transportation/)
|
||||
|
||||
### Vue 3 + TypeScript 结构
|
||||
```
|
||||
pc-cattle-transportation/
|
||||
├── src/
|
||||
│ ├── api/ # API 接口定义
|
||||
│ │ ├── common/ # 通用 API
|
||||
│ │ ├── abroad.js # 出境管理
|
||||
│ │ ├── device.js # 设备管理
|
||||
│ │ ├── shipping.js # 运输管理
|
||||
│ │ ├── sys.js # 系统管理
|
||||
│ │ └── userManage.js # 用户管理
|
||||
│ ├── assets/ # 静态资源
|
||||
│ │ ├── icons/svg/ # SVG 图标
|
||||
│ │ └── images/ # 图片资源
|
||||
│ ├── components/ # 公共组件
|
||||
│ │ ├── common/ # 通用组件
|
||||
│ │ │ ├── searchCustom/ # 自定义搜索组件
|
||||
│ │ │ └── tableCustom/ # 自定义表格组件
|
||||
│ │ ├── layout/ # 布局组件
|
||||
│ │ ├── Editor/ # 富文本编辑器
|
||||
│ │ ├── Pagination/ # 分页组件
|
||||
│ │ └── SvgIcon/ # SVG 图标组件
|
||||
│ ├── directive/ # 自定义指令
|
||||
│ │ ├── permission/ # 权限指令
|
||||
│ │ └── common/ # 通用指令
|
||||
│ ├── plugins/ # 插件配置
|
||||
│ │ ├── auth.js # 权限认证
|
||||
│ │ └── cache.js # 缓存管理
|
||||
│ ├── router/ # 路由配置
|
||||
│ │ └── index.ts # 路由主文件
|
||||
│ ├── store/ # Pinia 状态管理
|
||||
│ │ ├── index.ts # Store 主文件
|
||||
│ │ ├── user.ts # 用户状态
|
||||
│ │ └── permission.js # 权限状态
|
||||
│ ├── styles/ # 全局样式
|
||||
│ │ └── index.scss # 样式主文件
|
||||
│ ├── utils/ # 工具函数
|
||||
│ │ ├── axios.ts # Axios 实例配置
|
||||
│ │ ├── request.js # 请求封装
|
||||
│ │ ├── auth.js # 认证工具
|
||||
│ │ ├── permission.js # 权限工具
|
||||
│ │ └── validate.js # 表单验证
|
||||
│ ├── views/ # 页面组件
|
||||
│ │ ├── shipping/ # 运输管理页面
|
||||
│ │ │ ├── shippingList.vue # 运输列表
|
||||
│ │ │ ├── createDeliveryDialog.vue # 创建运单对话框
|
||||
│ │ │ ├── detailDialog.vue # 详情对话框
|
||||
│ │ │ └── editDialog.vue # 编辑对话框
|
||||
│ │ ├── userManage/ # 用户管理页面
|
||||
│ │ │ ├── driver.vue # 司机管理
|
||||
│ │ │ ├── vehicle.vue # 车辆管理
|
||||
│ │ │ └── user.vue # 用户管理
|
||||
│ │ ├── hardware/ # 硬件设备页面
|
||||
│ │ ├── entry/ # 数据录入页面
|
||||
│ │ ├── earlywarning/ # 预警系统页面
|
||||
│ │ └── system/ # 系统管理页面
|
||||
│ ├── App.vue # 根组件
|
||||
│ ├── main.ts # 应用入口
|
||||
│ └── permission.js # 路由权限控制
|
||||
├── public/ # 静态资源(不经过构建)
|
||||
├── vite.config.ts # Vite 配置
|
||||
├── tsconfig.json # TypeScript 配置
|
||||
├── package.json # 依赖配置
|
||||
└── .eslintrc.cjs # ESLint 配置
|
||||
```
|
||||
|
||||
### 前端组织规则
|
||||
- **API 按模块分离**:每个业务模块对应一个 API 文件
|
||||
- **组件按功能分类**:通用组件放在 `components/common/`,业务组件放在对应的 `views/` 子目录
|
||||
- **页面与对话框分离**:列表页面与弹窗对话框分开定义(如 `shippingList.vue` 与 `createDeliveryDialog.vue`)
|
||||
- **状态管理按模块**:每个业务模块有独立的 Store 文件
|
||||
- **工具函数分类**:按功能分类(如 `auth.js`、`permission.js`、`validate.js`)
|
||||
|
||||
### 前端命名约定
|
||||
- **组件文件**:使用 PascalCase 或 camelCase(如 `Pagination/index.vue`、`createDeliveryDialog.vue`)
|
||||
- **页面文件**:使用 camelCase(如 `shippingList.vue`、`driver.vue`)
|
||||
- **API 文件**:使用 camelCase(如 `shipping.js`、`userManage.js`)
|
||||
- **工具文件**:使用 camelCase(如 `axios.ts`、`auth.js`)
|
||||
|
||||
## 数据库迁移脚本规范
|
||||
|
||||
### 位置
|
||||
- 后端项目:`tradeCattle/aiotagro-cattle-trade/src/main/resources/db/migration/`
|
||||
|
||||
### 命名约定
|
||||
- 格式:`alter_<table_name>_<description>.sql`
|
||||
- 示例:
|
||||
- `alter_vehicle_record_code.sql` - 修改车辆表的备案码字段
|
||||
- `alter_delivery_add_estimated_departure_time.sql` - 添加预计出发时间字段
|
||||
- `alter_client_logs_latlng.sql` - 扩展经纬度字段长度
|
||||
|
||||
### 脚本规范
|
||||
- 每个脚本必须以 `USE cattletrade;` 开头
|
||||
- 包含详细的注释说明变更目的
|
||||
- 对于已执行的脚本,注释掉 `ALTER TABLE` 语句,保留作为文档
|
||||
- 提供数据迁移语句(如有必要)
|
||||
|
||||
## 配置文件规范
|
||||
|
||||
### 后端配置
|
||||
- **主配置**:`application.yml` - 包含通用配置和环境切换
|
||||
- **环境配置**:
|
||||
- `application-dev.yml` - 开发环境(本地数据库)
|
||||
- `application-demo.yml` - 演示环境
|
||||
- `application-prod.yml` - 生产环境
|
||||
- **敏感信息**:不要硬编码到配置文件,使用环境变量或配置中心
|
||||
|
||||
### 前端配置
|
||||
- **Vite 配置**:`vite.config.ts` - 包含代理、插件、别名等
|
||||
- **环境变量**:`.env`、`.env.development`、`.env.production`
|
||||
- **代理配置**:开发环境代理 `/api` 到后端 `http://127.0.0.1:16200`
|
||||
|
||||
## 模块依赖关系
|
||||
|
||||
### 后端模块依赖
|
||||
```
|
||||
aiotagro-cattle-trade (主业务模块)
|
||||
├── depends on: aiotagro-core (核心模块)
|
||||
└── depends on: aiotagro-redis (Redis 模块)
|
||||
```
|
||||
|
||||
### 前端模块依赖
|
||||
- **核心依赖**:Vue 3、Vite、Pinia、Vue Router、Element Plus
|
||||
- **工具依赖**:Axios、Moment.js、ECharts
|
||||
- **地图依赖**:百度地图(vue-baidu-map-3x)
|
||||
- **视频依赖**:@liveqing/liveplayer-v3
|
||||
|
||||
## 文件组织原则
|
||||
|
||||
1. **按功能模块组织**:相关的 Controller、Service、Mapper、Entity 放在同一业务包下
|
||||
2. **保持层次清晰**:严格遵守分层架构,避免跨层调用
|
||||
3. **避免循环依赖**:Service 之间可以相互调用,但需注意避免循环依赖
|
||||
4. **分离通用逻辑**:通用工具类放在 `core` 模块,业务工具类放在 `utils` 包
|
||||
5. **配置与代码分离**:配置文件放在 `resources` 目录,代码放在 `java` 目录
|
||||
6. **前端组件复用**:通用组件放在 `components/common/`,业务组件就近放置
|
||||
195
.cursor/rules/base/tech-stack.mdc
Normal file
195
.cursor/rules/base/tech-stack.mdc
Normal file
@@ -0,0 +1,195 @@
|
||||
---
|
||||
description: 牛只运输管理系统技术栈规范
|
||||
globs:
|
||||
alwaysApply: true
|
||||
---
|
||||
# 技术栈规范
|
||||
|
||||
## 项目技术栈总览
|
||||
|
||||
本项目采用前后端分离架构,使用现代化技术栈构建企业级应用。
|
||||
|
||||
## 后端技术栈 (tradeCattle/)
|
||||
|
||||
### 核心框架
|
||||
- **Spring Boot** 2.6.0 - 应用基础框架
|
||||
- **Java** 1.8 - 编程语言
|
||||
- **Maven** - 项目构建和依赖管理
|
||||
|
||||
### 数据持久层
|
||||
- **MyBatis-Plus** 3.5.3.2 - ORM 框架,基于 MyBatis 增强
|
||||
- **Druid** 1.2.20 - 阿里巴巴数据库连接池
|
||||
- **MySQL** 5.7+ - 关系型数据库
|
||||
- **Redis** 5.0+ - 缓存和会话存储
|
||||
|
||||
### 权限认证
|
||||
- **Sa-Token** 1.37.0 - 轻量级权限认证框架
|
||||
- 支持多种登录方式
|
||||
- 整合 Redis 会话存储
|
||||
- 整合 JWT 令牌
|
||||
- **JWT (jjwt)** 0.9.1 - JSON Web Token 实现
|
||||
|
||||
### 任务调度
|
||||
- **XXL-Job** - 分布式任务调度平台
|
||||
- **Spring @Scheduled** - Spring 内置定时任务
|
||||
|
||||
### API 文档
|
||||
- **Swagger Fox** 3.0.0 - 在线 API 文档和调试工具
|
||||
- **OpenAPI** - API 规范
|
||||
|
||||
### 工具库
|
||||
- **Hutool** 5.8.25 - Java 工具类库
|
||||
- **Commons IO** 2.13.0 - Apache IO 工具
|
||||
- **Fastjson2** 2.0.43 - JSON 解析器
|
||||
- **Apache POI** 4.1.2 - Excel 操作工具
|
||||
- **Velocity** 2.3 - 模板引擎(代码生成)
|
||||
|
||||
### 云服务集成
|
||||
- **腾讯云 COS** 5.6.89 - 对象存储服务
|
||||
- **腾讯云 SDK** 3.1.423 - 腾讯云 Java SDK
|
||||
- **腾讯云短信** - 短信通知服务
|
||||
|
||||
### 其他依赖
|
||||
- **Lombok** - 简化 Java Bean 代码
|
||||
- **transmittable-thread-local** 2.14.4 - 线程间参数传递
|
||||
- **bizlog-sdk** 3.0.6 - 业务日志记录
|
||||
- **Retrofit** 2.2.18 - HTTP 客户端(远程调用)
|
||||
- **oshi-core** 6.4.11 - 系统信息获取
|
||||
- **UserAgentUtils** 1.21 - 浏览器和系统识别
|
||||
|
||||
### 开发工具
|
||||
- **Spring Boot DevTools** - 热部署
|
||||
- **MyBatis-Plus Generator** 3.5.1 - 代码生成器
|
||||
- **FreeMarker** - 模板引擎(代码生成)
|
||||
|
||||
## 前端技术栈 (pc-cattle-transportation/)
|
||||
|
||||
### 核心框架
|
||||
- **Vue** 3.2.37 - 渐进式 JavaScript 框架
|
||||
- **TypeScript** 4.6.4 - JavaScript 超集,类型安全
|
||||
- **Vite** 3.1.0 - 下一代前端构建工具
|
||||
|
||||
### 状态管理和路由
|
||||
- **Pinia** 2.0.22 - Vue 3 官方状态管理库
|
||||
- **pinia-plugin-persist** 1.0.0 - Pinia 持久化插件
|
||||
- **Vue Router** 4.1.5 - Vue 官方路由管理器
|
||||
|
||||
### UI 组件库
|
||||
- **Element Plus** 2.2.17 - Vue 3 企业级 UI 组件库
|
||||
- **@element-plus/icons-vue** 2.3.1 - Element Plus 图标
|
||||
- **WindiCSS** 3.5.6 - 按需原子化 CSS 框架
|
||||
|
||||
### HTTP 客户端
|
||||
- **Axios** 0.27.2 - 基于 Promise 的 HTTP 客户端
|
||||
- **nprogress** 0.2.0 - 顶部进度条
|
||||
|
||||
### 地图服务
|
||||
- **vue-baidu-map-3x** 1.0.38 - 百度地图 Vue 3 组件
|
||||
- **vue3-baidu-map** 1.0.0 - 百度地图集成
|
||||
|
||||
### 富文本和视频
|
||||
- **@wangeditor/editor** 5.1.23 - 富文本编辑器
|
||||
- **@wangeditor/editor-for-vue** 5.1.12 - WangEditor Vue 3 集成
|
||||
- **@liveqing/liveplayer-v3** 3.7.30 - 视频播放器
|
||||
- **longze-vue3-video-player** 1.1.7 - Vue 3 视频播放器
|
||||
|
||||
### 数据可视化
|
||||
- **ECharts** 5.5.0 - 数据可视化图表库
|
||||
- **vue-chartjs** 5.3.0 - Vue Chart.js 封装
|
||||
|
||||
### 工具库
|
||||
- **@vueuse/core** 10.10.0 - Vue Composition API 工具集
|
||||
- **moment** 2.30.1 - 日期时间处理
|
||||
- **js-cookie** 3.0.5 - Cookie 操作
|
||||
- **mitt** 3.0.1 - 事件总线
|
||||
- **qrcode** 1.5.4 - 二维码生成
|
||||
- **file-saver** 2.0.5 - 文件下载
|
||||
- **vue3-json-viewer** 2.2.2 - JSON 可视化
|
||||
- **vue3-print-nb** 0.1.4 - 打印功能
|
||||
- **vue-draggable-plus** 0.5.2 - 拖拽功能
|
||||
- **element-china-area-data** 6.1.0 - 中国省市区数据
|
||||
|
||||
### 开发工具
|
||||
- **ESLint** 8.57.0 - 代码检查工具
|
||||
- **Prettier** 2.7.1 - 代码格式化工具
|
||||
- **TypeScript ESLint** 5.38.1 - TypeScript 代码检查
|
||||
- **Vue TSC** 0.40.4 - Vue TypeScript 编译器
|
||||
|
||||
### 构建插件
|
||||
- **unplugin-auto-import** 0.11.2 - 自动导入 API
|
||||
- **unplugin-vue-components** 0.22.7 - 组件自动导入
|
||||
- **vite-plugin-svg-icons** 2.0.1 - SVG 图标集成
|
||||
- **vite-plugin-windicss** 1.9.3 - WindiCSS 插件
|
||||
|
||||
### Git 提交规范
|
||||
- **commitizen** 4.2.5 - Git 提交规范化工具
|
||||
- **cz-customizable** 7.0.0 - 自定义提交规范
|
||||
- **@commitlint/cli** 17.1.2 - 提交信息检查
|
||||
- **@commitlint/config-conventional** 17.1.0 - 常规提交规范
|
||||
|
||||
### 样式预处理
|
||||
- **Sass** 1.55.0 - CSS 预处理器
|
||||
- **Less** 4.1.3 - CSS 预处理器
|
||||
|
||||
## 开发环境要求
|
||||
|
||||
### 后端开发环境
|
||||
- **JDK** 1.8 或更高版本
|
||||
- **Maven** 3.6+
|
||||
- **MySQL** 5.7+
|
||||
- **Redis** 5.0+
|
||||
- **IDE**:IntelliJ IDEA / Eclipse
|
||||
|
||||
### 前端开发环境
|
||||
- **Node.js** 16.0.0 或更高版本
|
||||
- **Yarn** 1.22.0+ 或 pnpm 7.0.0+
|
||||
- **IDE**:VS Code / WebStorm
|
||||
|
||||
### 数据库工具
|
||||
- **Navicat** / **DataGrip** / **MySQL Workbench**
|
||||
|
||||
## 部署环境
|
||||
|
||||
### 生产环境配置
|
||||
- **服务器**:Linux (CentOS 7+ / Ubuntu 18.04+)
|
||||
- **Web 服务器**:Nginx (反向代理和静态资源)
|
||||
- **应用服务器**:Spring Boot 内置 Tomcat
|
||||
- **数据库**:MySQL 5.7+ (主从配置)
|
||||
- **缓存**:Redis 5.0+ (集群或哨兵模式)
|
||||
|
||||
### 部署端口
|
||||
- **后端端口**:16200
|
||||
- **前端端口**:8080 (开发) / 80/443 (生产)
|
||||
- **上下文路径**:`/api` (后端)
|
||||
|
||||
## 技术选型原则
|
||||
|
||||
1. **稳定性优先**:选择成熟稳定的框架和库
|
||||
2. **社区活跃**:优先选择社区活跃、文档完善的技术
|
||||
3. **性能考虑**:选择高性能的组件(如 Druid、MyBatis-Plus)
|
||||
4. **易维护性**:使用主流技术栈,便于团队协作
|
||||
5. **安全性**:集成安全认证和授权框架(Sa-Token)
|
||||
6. **可扩展性**:支持分布式部署和横向扩展
|
||||
|
||||
## 技术栈版本管理
|
||||
|
||||
- 后端依赖版本统一在父 `pom.xml` 的 `<properties>` 中管理
|
||||
- 前端依赖版本统一在 `package.json` 中管理
|
||||
- 定期检查依赖更新和安全漏洞
|
||||
- 升级依赖前进行充分测试
|
||||
|
||||
## 官方文档链接
|
||||
|
||||
### 后端技术文档
|
||||
- Spring Boot: https://spring.io/projects/spring-boot
|
||||
- MyBatis-Plus: https://baomidou.com/
|
||||
- Sa-Token: https://sa-token.cc/
|
||||
- Druid: https://github.com/alibaba/druid
|
||||
- Hutool: https://hutool.cn/
|
||||
|
||||
### 前端技术文档
|
||||
- Vue 3: https://cn.vuejs.org/
|
||||
- Vite: https://cn.vitejs.dev/
|
||||
- Pinia: https://pinia.vuejs.org/zh/
|
||||
- Element Plus: https://element-plus.org/zh-CN/
|
||||
- TypeScript: https://www.typescriptlang.org/zh/
|
||||
Reference in New Issue
Block a user