实体代码审核
代号 entity_code_review 版本 v1
分类 代码审核 输出格式 Markdown
类型 系统模板

对指定实体的 Controller/Model/Service/View 进行代码质量和安全审核

原始模板内容

展开
# 任务:对"{{metamodelName}}"实体进行代码审核

## 审核目标
- 实体名称:{{metamodelName}}
- 实体代号:{{metamodelCode}}
- 所属模块:{{moduleName}}({{moduleCode}})
- 数据库表:{{tableName}}
- 主键字段:{{primaryKey}}
- 字段数量:{{fieldCount}}

## 已有字段
{{fieldSummary}}

## 已有行为
{{behaviorSummary}}

## 已有关系
{{relationSummary}}

## 审核范围
请依次检查以下文件(如存在):
1. `{{moduleCode}}/{{metamodelCode}}/models/{{metamodelCode}}.php` — Model
2. `{{moduleCode}}/{{metamodelCode}}/controllers/{{metamodelCode}}Controller.php` — Controller
3. `{{moduleCode}}/{{metamodelCode}}/services/{{metamodelCode}}Service.php` — Service
4. `{{moduleCode}}/{{metamodelCode}}/repositories/{{metamodelCode}}Repository.php` — Repository
5. `{{moduleCode}}/{{metamodelCode}}/views/` — 视图文件

## 审核要点

### 1. 安全性(最高优先级)
- SQL 注入:是否使用参数化查询,禁止字符串拼接 SQL
- XSS:输出是否经过 `Html::encode()` 转义
- CSRF:表单是否通过 `X-CSRF-Token` header 提交
- 权限:Controller 是否有适当的访问控制
- 敏感数据:密码/Token 是否明文存储

### 2. 架构规范
- 分层是否清晰:Controller → Service → Repository → Model
- Controller 是否只做参数接收和响应,不含业务逻辑
- Service 是否使用事务处理数据库操作
- 命名空间是否符合 `{{moduleCode}}\{{metamodelCode}}\{layer}\{Class}`

### 3. 数据库
- Migration 是否同时实现 `up()` 和 `down()`
- 字段命名是否符合规范(驼峰、entity 前缀主键)
- 是否有缺失的索引
- 软删除是否正确使用 `deleted = '0'`

### 4. 前端规范
- 资源路径:PC → `@web/pc/css/` `@web/pc/js/`,H5 → `@web/h5/`
- 按钮颜色:primary(蓝)=主操作, warning(黄)=次要, danger(红)=仅删除, success(绿)=引导
- 禁止使用 btn-info、渐变、图标(删除按钮除外)
- URL 是否带 `.html` 后缀

### 5. PHP 环境约束
- 禁止使用 `mb_substr()`(无 mbstring 扩展),改用 `substr()`
- CLI 禁止使用 `curl_init()`,改用 `\GuzzleHttp\Client`

## 输出格式
请按以下格式输出审核结果:

### 文件:{文件路径}
| 级别 | 行号 | 问题 | 建议修复 |
|------|------|------|---------|
| 严重/警告/建议 | L{n} | 问题描述 | 修复方案 |

最后给出总结评分(A/B/C/D)和优先修复建议。
选择元数据
渲染结果
番茄钟
25:00
工作
已完成 0 个番茄
478 呼吸法
准备
-
循环:0 / 30