Files
hzdyjs/.serena/memories/code_style_conventions.md
T
zlwuandCursor AI 90b13a6e0c feat: 完善数据库表命名规范,新增后勤管理和系统公共模块前缀
📋 主要变更:
- ✅ 补充完整的7个业务模块表命名规范
- ✅ 新增后勤管理模块:hq_ 前缀
- ✅ 明确系统公共模块:common_ 前缀
- ✅ 提供完整的命名示例和实体类映射规则
- ✅ 更新变更记录文档

🎯 覆盖模块:
- 后勤管理(hq_)、人事管理(rs_)、财务管理(cw_)
- 学工管理(xg_)、招生就业(zsjy_)、安全保卫(aqbw_)
- 系统公共(common_)

📚 文件变更:
- .cursor/cursorrules-backend.md - 数据库表命名规范
- docs/变更管理/code-adjust-record-2025-01-23-wuzilong.md - 变更记录
- 各业务模块工程文件和前端结构文件

Co-authored-by: Cursor AI <cursor@cursor.sh>
2025-07-08 14:11:12 +08:00

128 lines
3.5 KiB
Markdown

# 代码风格和约定规范
## Java后端代码规范
### 命名约定
- **类名**: 使用PascalCase,如 `PmRepairOrderController`
- **方法名**: 使用camelCase,如 `updateRepairOrder`
- **常量**: 使用UPPER_SNAKE_CASE,如 `DEFAULT_PAGE_SIZE`
- **包名**: 使用小写,如 `org.dromara.hq.service`
### 项目结构模式
```
org.dromara.zhxy.hq/
├── controller/ # 控制器层
├── service/ # 服务层
│ └── impl/ # 服务实现
├── mapper/ # 数据访问层
├── domain/ # 实体类
│ ├── vo/ # 视图对象
│ └── bo/ # 业务对象
└── config/ # 配置类
```
### 注解使用
- **Controller**: `@RestController`, `@RequestMapping`
- **Service**: `@Service`, `@Transactional`
- **Mapper**: `@Mapper`
- **权限校验**: `@RequiresPermissions("hq:repair:list")`
- **日志记录**: `@Log(title = "报修管理", businessType = BusinessType.UPDATE)`
### 数据库设计规范
- **主键**: 使用雪花ID `@TableId(type = IdType.ASSIGN_ID)`
- **基础字段**: 继承 `BaseEntity` (id, create_time, create_by, update_time, update_by, tenant_id)
- **命名**: 使用下划线命名法,如 `repair_order`, `user_name`
- **多租户**: 所有业务表包含 `tenant_id` 字段
## Vue前端代码规范
### 命名约定
- **组件名**: 使用PascalCase,如 `RepairOrderList.vue`
- **文件名**: 使用kebab-case,如 `repair-order-list.vue`
- **变量名**: 使用camelCase,如 `repairOrderList`
- **常量**: 使用UPPER_SNAKE_CASE,如 `API_BASE_URL`
### 组件结构
```vue
<template>
<!-- 模板内容 -->
</template>
<script setup lang="ts">
// 导入
// 类型定义
// 响应式数据
// 计算属性
// 生命周期钩子
// 方法定义
</script>
<style scoped>
/* 样式 */
</style>
```
### TypeScript类型定义
- **接口命名**: 使用PascalCase + Interface后缀,如 `RepairOrderInterface`
- **类型导出**: 统一在 `types/` 目录管理
- **API响应**: 使用泛型 `R<RepairOrderVo>`
### API调用规范
```typescript
// API定义
export const getRepairOrderList = (params: RepairOrderQuery) => {
return request<RepairOrderVo[]>({
url: '/hq/repair/list',
method: 'get',
params
})
}
// 组件中使用
const { data, loading, refresh } = useRequest(getRepairOrderList)
```
## 通用开发规范
### 注释规范
```java
/**
* 获取报修订单列表
*
* @param bo 查询条件
* @return 报修订单列表
* @author wuzilong
* @date 2025-07-01
*/
public List<PmRepairOrderVo> queryPageList(PmRepairOrderBo bo)
```
### 错误处理
- **后端**: 使用统一异常处理 `@ControllerAdvice`
- **前端**: 使用统一的错误提示组件
- **日志记录**: 使用 `@Log` 注解记录关键操作
### 权限控制
- **接口级**: `@RequiresPermissions("hq:repair:add")`
- **按钮级**: `v-hasPermi="['hq:repair:edit']"`
- **数据级**: 使用 `@DataPermission` 注解
### 多租户规范
- **数据隔离**: 自动注入 `tenant_id` 条件
- **缓存隔离**: 使用租户前缀
- **权限隔离**: 基于租户的权限控制
### 国际化支持
- **前端**: 使用 `$t('message.key')`
- **后端**: 使用 `MessageUtils.message("key")`
- **配置文件**: 统一在 `i18n/` 目录管理
### 测试规范
- **单元测试**: 使用JUnit 5 + Mockito
- **接口测试**: 使用 `@Test` 注解
- **覆盖率**: 要求 >80%
### 文档规范
- **API文档**: 使用Swagger/OpenAPI注解自动生成
- **代码文档**: 重要方法必须有JavaDoc
- **变更记录**: 每次变更必须更新变更日志