3.1 KiB
3.1 KiB
3.11 完整代码清单
:::tip 概述 本页汇总 example 模块的全部文件与职责,作为手工开发的核对清单。各文件完整实现见本章对应小节。 :::
文件总览
| 文件 | 层 | 核心内容 |
|---|---|---|
数据库 gin_example |
— | 11 列(含审计四件套 + del_flag),3 个普通索引 |
internal/model/dto/example.go |
契约 | ExampleItem / PageReq / ListReq / DetailReq / AddReq / UpdateReq / StatusReq / DeleteReq / BatchDeleteReq / ImportReq+UnmarshalBody / ImportRes+ResMsg / ExportReq / ExportRes |
internal/repository/example.go |
数据访问 | ExampleRepo + NewExampleRepo(表名 gin_example)+ Ctx |
internal/service/example.go |
业务 | sExample 三段式;exampleSpec(ModuleSpec 声明);exampleToData;标准七方法 + Status/Import/Export 手写 |
internal/handler/example.go |
接口 | CExample + 十个委托方法 |
internal/router/router.go |
路由 | CExample 的 RouteSpec 表(10 条声明) |
ui/src/api/tool/example.ts |
前端 API | 与十个接口对应的请求函数 |
ui/src/views/tool/example/ |
前端页面 | 列表 + 编辑 |
接口一览(RouteSpec 派生)
| 方法 | 路径 | 权限码 | 日志类型 |
|---|---|---|---|
| Page | GET /api/example/page | sys:example:page | query |
| List | GET /api/example/list | sys:example:list | query |
| Detail | GET /api/example/detail/:id | sys:example:detail | query |
| Add | POST /api/example/add | sys:example:add | add |
| Update | PUT /api/example/update | sys:example:update | update |
| Status | PUT /api/example/status | sys:example:status | update |
| Delete | DELETE /api/example/delete/:id | sys:example:delete | delete |
| BatchDelete | DELETE /api/example/batchDelete | sys:example:batchDelete | delete |
| Import | POST /api/example/import | sys:example:import | import |
| Export | GET /api/example/export | sys:example:export | export |
能力与实现对照
| 能力 | 实现位置 |
|---|---|
| name 模糊 / type、status 等值过滤 | exampleSpec.LikeFields / EqFields |
| status → statusText 字典回填 | exampleSpec.SerializeMaps |
| avatar 写侧转正、读侧补域名 | exampleSpec.FileFields + FileSaveDir |
| 全量表单语义更新 | ToData + 全局 Update 钩子盖章 |
| 软删除 | 基座 Delete/BatchDelete(del_flag=1) |
| 单列状态更新 | 手写 Status |
| 导入逐行校验 | 手写 Import + UnmarshalBody |
| 导出过滤复用 + 字典翻译 | 手写 Export(applyFilters + DictGetText) |
| 权限/日志 | RouteSpec.Permission / Log 声明,中间件执行 |
自检
完成后逐项核对:
- 十个接口全部可访问,权限码与菜单节点一致
- 分页返回
PageData五字段(records/total/size/current/pages) - statusText 有值(字典 example_status 已配置项)
- avatar 上传后转正到
upload/example/yyyymmdd/,读侧返回完整 URL - 导入失败行有逐行原因,ResMsg 提示语正确
- 导出返回可下载的文件 URL
- 删除后列表不可见(软删),数据库 del_flag=1