Files
hzdyjs/.cursorrules
T
2025-08-08 03:59:16 +08:00

303 lines
14 KiB
Plaintext
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.
# Cursor Rules - 项目开发规范总览
## 🎯 项目概述
**项目名称**: 校园管理系统 (hzdyjs_xg)
**技术架构**: 前后端分离 + 移动端
**工作目录**: `/Users/wuzilong/work/00code/hzdyjs_xg`
### 项目结构
- **前端工程**: `web/` (Vue 3 + TypeScript + Element Plus)
- **后端工程**: `backend/` (Spring Boot 3.4.6 + MyBatis-Plus)
- **移动端工程**: `mobile/` (Vue 2.6.14 + uni-app 2.x + uview-ui 2.0.38 - 智慧校园移动应用)
- **文档管理**: `docs/` (完整的项目文档体系)
---
## 📚 规范文件引用
**重要说明**: 本项目的开发规范已按技术栈模块化拆分,请根据开发场景参考对应规范:
### 🔗 专门规范文件
```
.cursor/
├── cursorrules-docs.md # 📋 文档管理规范
├── cursorrules-frontend.md # 🎨 前端开发规范 (Vue 3)
├── cursorrules-backend.md # ⚙️ 后端开发规范 (Spring Boot)
├── cursorrules-mobile.md # 📱 移动端开发规范 (uniapp)
├── cursorrules-workflow.md # 🔄 工作流开发规范 (Warm-Flow)
└── cursorrules-api-test.md # 🧪 API测试规范
```
### 📖 规范文件详情
#### 📋 文档管理规范 (.cursor/cursorrules-docs.md)
- 文档目录组织(中文化架构)
- **🚨 强制性文档同步更新规则**
- 变更记录管理规范(按日期和用户分文件)
- 业务模块文档管理(为AI提供完整上下文)
- **📊 API文档拆分管理规范** (2025-07-01新增,文件夹重组):
- **📁 文件夹结构**: 所有API文档统一存放在 `docs/开发文档/API/` 文件夹下
- **📝 文件组织**: 按业务模块拆分:基础规范、认证登录、物业报修、满意度调查
- **🔤 命名规范**: 中文文件命名,便于快速识别和查找
- **🔗 模块化管理**: 独立维护,减少冲突,交叉引用基础规范
- **📚 主入口**: API文档总览.md 作为统一导航入口
- **📋 模板支持**: API文档模板.md 用于新API文档生成
- **🔄 自动生成规则**: 新增API模块时,优先在API文件夹下创建对应文档
- 测试文档管理规范
#### 🎨 前端开发规范 (.cursor/cursorrules-frontend.md)
- Vue 3.5.13 + TypeScript 5.8.3 技术栈
- Art Design Pro UI 设计规范
- 轮廓式按钮设计系统
- 组件开发标准和页面模板
- API接口定义和状态管理
- 项目架构和性能优化
#### ⚙️ 后端开发规范 (.cursor/cursorrules-backend.md)
- Spring Boot 3.4.6 技术栈
- **🔴 数据库规范(强制性)** - 雪花ID、逻辑删除、多租户
- **🔴 API接口规范(强制性)** - 统一响应格式、Token认证
- **🔐 菜单界面和接口权限配置规范**
- 标准代码模板 (Controller/Service/Mapper)
#### 📱 移动端开发规范 (.cursor/cursorrules-mobile.md)
- Vue 2.6.14 + uni-app 2.x + uview-ui 2.0.38 技术栈(智慧校园移动应用)
- 基于Vue 2的响应式项目架构(包含Vuex状态管理)
- 现代CSS变量设计系统和响应式布局适配
- 完整的用户体验优化(动画、手势识别、无障碍访问)
- 智能缓存策略和网络请求优化
- 多端发布支持(H5、微信小程序、App、鸿蒙)
#### 🔄 工作流开发规范 (.cursor/cursorrules-workflow.md)
- **Warm-Flow工作流框架** - 基于dromara社区开源的轻量级工作流引擎
- **🔴 强制性VO类规范(避免MyBatis映射错误)** - 所有工作流业务VO类必须包含四个基础字段
- **工作流状态管理** - 7种标准业务状态(draft、waiting、complete等)
- **标准工作流模式** - 普通流程、排他网关、并行网关、会签等6种模式
- **前端工作流组件** - approvalButton、submitVerify、approvalRecord标准组件使用
- **工作流权限配置** - @ConditionalOnEnable条件开启和Sa-Token权限控制
- **请假工作流示例** - 完整的工作流开发实践模板
#### 🧪 API测试规范 (.cursor/cursorrules-api-test.md)
- **✅ AES+RSA双重加密登录方法(已完全解决)**
- API测试最佳实践和通用测试方法
- 自动化测试脚本和性能测试
- 测试记录模板
---
## 🚨 核心开发原则(必须遵循)
### 1. 📝 强制性文档同步更新
**⚠️ 超级重要**: 每次代码调整都必须立即同步更新相应文档!
#### 必须更新的文档
- **API变更** → 按业务模块更新对应的API文档(2025-07-01重新组织到API文件夹):
- 基础规范变更 → `docs/开发文档/API/API文档基础规范.md`
- 认证登录变更 → `docs/开发文档/API/用户认证登录API.md`
- 物业报修变更 → `docs/开发文档/API/物业报修管理API.md`
- 满意度调查变更 → `docs/开发文档/API/后勤满意度调查API.md`
- API文档总览 → `docs/开发文档/API/API文档总览.md`
- **数据库变更** → `docs/设计文档/database/`
- **业务逻辑变更** → `docs/业务模块/[模块名称]/`
- **配置变更** → `docs/中间件配置/` 或 `docs/部署文档/`
- **📱 移动端变更** → 移动端工程相关文档必须同步更新:
- **移动端API新增/变更** → 相应的API文档必须补充移动端实现章节
- **移动端页面开发** → `docs/开发文档/` 移动端相关文档
- **移动端功能变更** → `docs/业务模块/[模块名称]/` 移动端部分
- **移动端技术规范变更** → `.cursor/cursorrules-mobile.md`
#### 变更记录规范
- **文件格式**: `docs/变更管理/code-adjust-record-YYYY-MM-DD-{username}.md`
- **排序要求**: 按时间倒序排列,最新记录在最上面
- **时间填写**: 必须填写真实的当前时间(YYYY-MM-DD HH:mm:ss)
### 2. 🔴 数据库开发强制要求
- **标准基础字段**: 所有业务表必须包含统一的基础字段
- **雪花ID主键**: 统一使用 `bigint(20)` 作为主键
- **逻辑删除**: 禁止物理删除,使用 `deleted` 字段
- **多租户支持**: 必须包含 `tenant_id` 字段
- **参考规范**: `docs/设计文档/database/mysql-database-standard.md`
### 3. 🔴 API接口开发强制要求
- **统一响应格式**: 分页用TableDataInfo,非分页用R类型
- **Token认证**: Bearer格式,包含clientid、referer等必需Header
- **权限注解**: 每个接口必须有@SaCheckPermission注解
- **参数验证**: 使用Bean Validation进行参数校验
### 4. 🎯 技术要求
- **Node.js**: 20.15.x+, npm 10.7.x+
- **Java**: JDK 17/21
- **前端访问**: http://localhost (默认80端口)
- **后端服务**: http://localhost:8080
- **移动端**: Vue 2.6.14 + uni-app 2.x + uview-ui 2.0.38(智慧校园移动应用,端口8081)
---
## 🔄 Cursor AI 工作流程
### 📋 开发工作流程
```
1. **确定开发场景** → 自动应用对应技术栈规范
2. **编写/修改代码** → 遵循相应的编码规范
3. **立即更新文档** → 同步更新API文档和相关文档
4. **记录变更日志** → 在当日变更文件中记录
5. **验证和测试** → 确保功能正常和文档准确
```
### 🤖 Cursor AI 规范应用
- **前端开发**: 自动参考 `cursorrules-frontend.md`
- **后端开发**: 自动参考 `cursorrules-backend.md`
- **移动端开发**: 自动参考 `cursorrules-mobile.md`
- **工作流开发**: 自动参考 `cursorrules-workflow.md`
- **文档更新**: 自动参考 `cursorrules-docs.md`
- **API测试**: 自动参考 `cursorrules-api-test.md`
### 👍 点赞后知识总结机制
**⚠️ 重要提醒:当用户对Cursor回答点赞时,请主动询问是否需要进行总结归档**
#### 点赞触发规则
- **触发条件**: 用户对Cursor的回答点赞(👍)
- **自动提醒**: "检测到您对本次回答满意,是否需要将相关经验总结归档到项目规范中?"
- **总结目标**: 将成功的解决方案、最佳实践、经验教训整理到规范文档中
#### 总结内容建议
1. **技术解决方案**: 将有效的技术方案整理到对应的cursorrules文档
2. **开发流程优化**: 将改进的工作流程补充到开发规范中
3. **最佳实践**: 将成功经验添加到最佳实践文档
4. **问题解决方案**: 将常见问题和解决方案整理到知识库
5. **规范完善**: 根据实际应用效果完善和优化现有规范
#### 总结文档位置
- **技术规范**: 对应的`.cursor/cursorrules-*.md`文件
- **最佳实践**: `docs/开发文档/API开发最佳实践总结.md`
- **项目知识库**: `docs/知识库/`目录
- **变更记录**: `docs/变更管理/code-adjust-record-YYYY-MM-DD-{username}.md`
#### 总结流程
```
用户点赞 → Cursor主动询问 → 确认总结 → 分析价值点 → 整理到规范 → 更新相关文档
```
#### 价值目标
- 📚 **知识积累**: 将零散的经验系统化整理
- 🔄 **规范优化**: 基于实际应用持续改进规范
- 📖 **团队共享**: 将个人经验转化为团队资产
- 🚀 **效率提升**: 为后续类似问题提供标准解决方案
### 💡 API开发最佳实践
**⚠️ 基于场地预约管理系统开发实践制定的标准流程**
#### 完整开发流程(6个阶段)
1. **需求分析和文档创建** → 业务需求+技术架构文档
2. **数据库设计和初始化** → 表结构+字典+权限+示例数据
3. **后端模块开发** → 完整ruoyi模块(16个API接口)
4. **API文档编写** → 400+行详细API文档
5. **自动化测试脚本** → 450+行Python测试脚本
6. **变更记录和验证** → 完整的变更日志
#### 16个标准API接口模式
- **基础管理接口(6个)**: list、详情、新增、修改、删除、可用选项
- **业务功能接口(4个)**: 我的数据、待处理、规则检查、审批
- **辅助功能接口(6个)**: 导出、导入、统计、批量、启用、禁用
#### 🔴 VO类基础字段统一规范(新增 2025-07-01)
**⚠️ 超级重要:所有VO类必须包含统一的基础字段!**
**背景问题**:
- MyBatis-Plus自动查询:不包含继承字段
- 自定义SQL查询:明确包含字段,VO类必须有对应属性
- 导致运行时字段缺失错误:`Could not set property 'createBy'`
**统一解决方案**:
```java
// 所有VO类必须包含的四个基础字段
private Long createBy; // 创建者
private Date createTime; // 创建时间(含JSON格式化)
private Long updateBy; // 更新者
private Date updateTime; // 更新时间(含JSON格式化)
```
**强制要求**:
- ✅ 新增VO类必须包含四个基础字段
- ✅ 修复现有VO类时必须补全缺失字段
- ✅ 时间字段使用`@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")`
- ✅ 详细规范见:`.cursor/cursorrules-backend.md` → "VO类基础字段规范"
#### 质量保证标准
- ✅ **完整交付物**: 2个需求文档+3个SQL脚本+18个代码文件+1个API文档+1个测试脚本
- ✅ **开发时长**: 约3.5天完成完整API模块
- ✅ **文档同步**: 代码完成立即更新相关文档
- ✅ **测试覆盖**: 强制AES+RSA加密登录+完整功能测试
- ✅ **VO类规范**: 所有VO类包含统一基础字段,避免MyBatis映射错误
#### 参考文档
- **完整实践总结**: `docs/开发文档/API开发最佳实践总结.md`
- **成功案例**: `docs/开发文档/API/场地预约管理API.md`
- **测试脚本模板**: `test/场地预约API测试脚本.py`
- **VO类规范**: `.cursor/cursorrules-backend.md` → "VO类基础字段规范(强制性)"
---
## 🎯 快速开始
### 💡 开发提示
1. **查看具体规范**: 打开对应的 `.cursor/cursorrules-*.md` 文件
2. **遵循强制要求**: 特别注意标记为🔴和🚨的强制性规范
3. **使用标准模板**: 参考各规范文件中的代码模板
4. **及时更新文档**: 代码完成后立即更新相关文档
### 📚 重要文档位置
- **项目启动指南**: `工程本地启动指导.md`
- **API文档拆分架构** (按业务模块拆分,2025-07-01优化并重新组织到API文件夹):
- 📚 **API文档总览**: `docs/开发文档/API/API文档总览.md` (主入口导航)
- 📋 **基础规范**: `docs/开发文档/API/API文档基础规范.md` (通用规范)
- 🔐 **认证登录**: `docs/开发文档/API/用户认证登录API.md` (登录、用户信息)
- 🛠️ **物业报修**: `docs/开发文档/API/物业报修管理API.md` (报修工单管理)
- 📊 **满意度调查**: `docs/开发文档/API/后勤满意度调查API.md` (问卷答题)
- 📝 **API文档模板**: `docs/开发文档/API/API文档模板.md` (新API文档生成模板)
- **数据库设计**: `docs/设计文档/database/`
- **业务模块文档**: `docs/业务模块/`
- **测试脚本**: `test/` 目录
---
## 📞 规范说明
### 🔧 规范更新
- **规范文件更新**: 直接编辑对应的专门文件
- **跨模块变更**: 需要在相关文件中保持一致
- **重大变更**: 需要同步更新本主配置文件
### 📋 使用原则
1. **技术栈导向**: 根据当前开发的技术栈参考对应规范
2. **强制性要求**: 必须严格遵循标记为强制性的规范
3. **文档同步**: 代码变更必须同步更新文档
4. **质量保证**: 确保代码和文档的一致性
---
**🎯 目标**: 通过模块化规范管理和强制性文档同步,为Cursor AI提供准确的开发上下文,确保高质量的代码生成和完善的项目文档!
**📝 维护**: 拆分完成于 2025-07-01,所有原有内容完整保留
**📁 文件**: 5个专门规范文件 + 1个主配置文件
**🔄 加载**: Cursor自动识别和应用相关规范
# 原型文件存放规范(2025-07-01 新增)
- 所有后续生成的原型文件(如HTML原型、交互原型等),必须统一存放在 docs/原型文件/ 目录下的相应子目录中。
- 子目录应按端(如 web、移动端、小程序等)或业务模块分类,确保结构清晰、便于查找和维护。
- 禁止将原型文件存放在源码目录(如 web/src、mobile/src 等)或其他非文档目录。
- 迁移或生成原型文件时,需同步更新目录结构说明文档(如 docs/原型文件/README.md )。
# uview-ui 图标组件规范(2025-01-03 更新)
- 移动端UI开发中,图标组件统一使用 <u-icon />(uview-ui 2.x 官方标准),同时支持iconfont自定义图标。
- 推荐通过 easycom 自动全局注册,无需手动 import。
- 标准用法示例:
```vue
<u-icon name="account" size="22" color="#b0b8c9" />
<u-icon name="lock-open" size="22" color="#b0b8c9" />
```
- 图标名称请参考 uview-ui 官方文档:https://www.uviewui.com/components/icon.html