- 替换 Beego 框架为 GoFrame v2 - 重构项目结构: controller/service/dao/middleware 分层 - 替换自定义 crons 包为 gcron - 模板从 views/ 迁移到 resource/template/ - 配置从 conf/app.conf 迁移到 config.yml - 数据库从 MySQL 切换为 SQLite (modernc.org/sqlite) - 移除 agent/ 远程执行器(待后续迁移) - 移除 crons/ 自定义定时器包 - 静态资源整理到 resource/static/
3.4 KiB
3.4 KiB
CLAUDE.md
This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.
Project
PPGo_Job — 定时任务管理系统,GoFrame v2 重构版。
框架: GoFrame v2(原版基于 Beego v1)
数据库: SQLite(纯 Go 驱动 modernc.org/sqlite,无需 CGO)
定时任务: GoFrame gcron(原版自定义 crons/ 包)
Build & Run
# 编译(纯 Go,不需要 gcc/MinGW)
CGO_ENABLED=0 go build -o ppgo_job.exe .
# 运行
./ppgo_job.exe
# 访问 http://localhost:8082
# 默认账号 admin / 123456
Architecture
main.go # GoFrame 启动入口
config.yml # YAML 配置
boot/ # 启动初始化
db.go # 数据库初始化
router.go # 路由注册
tplfunc.go # 自定义模板函数(urlfor/date/substr 等)
init.go # 启动后初始化(加载任务到调度器)
controller/ # HTTP 层
base.go # display/ajaxMsg/ajaxList/parseFilters 辅助函数
login.go # 登录/登出
home.go # 首页/仪表盘/帮助
task.go # 任务 CRUD + 服务器/分组/日志/权限管理
service/ # 业务逻辑
scheduler/ # gcron 调度 + 任务执行引擎
dao/ # 数据访问层
model/entity/ # 数据库实体(含 Cols 字段常量)
middleware/ # 认证中间件(Cookie + RBAC 权限)
consts/ # 常量、表名定义
resource/
template/ # LayUI 模板(从原 views/ 迁移)
static/ # 静态资源(layui/css/js)
sql/schema.sql # 建表 DDL + 初始数据
_old/ # 原 Beego 旧代码(参考用)
agent/ # 远程执行器(独立二进制,后续迁移)
Layer Rules
- controller:参数解析 → 调用 Service/DAO → 渲染模板或返回 JSON。不含业务逻辑。
- service:业务逻辑。不含 HTTP 概念。
- dao:数据访问。纯 CRUD。
- middleware:认证、权限检查。
Key Packages
| Package | Purpose |
|---|---|
controller |
All HTTP handlers (flat package, organized by file) |
dao |
Database CRUD operations, singleton pattern (var Xxx = new(xxxDao)) |
model/entity |
DB structs with orm tags and Cols constants |
service/scheduler |
Cron job scheduling + task execution engine |
middleware |
Cookie auth + RBAC permission checking |
consts |
Table names, status constants, message codes |
Template Convention
LayUI 模板使用 {{include "MainContent" .}} 布局模式(layout.html 中定义)。
display(r, "page.html", data)— 渲染带布局的页面displayTpl(r, "page.html", data)— 直接渲染模板ajaxMsg(r, msg, code)— JSON 消息响应ajaxList(r, msg, code, count, data)— LayUI table JSON 格式
Database
SQLite 建表脚本:sql/schema.sql
首次启动自动创建 ./data/ppgo_job.db
Migration Status
| Phase | Status |
|---|---|
| 1 项目骨架 | ✅ |
| 2 数据访问层 | ✅ |
| 3 路由+控制器框架 | ✅ |
| 4 认证系统 | ✅ |
| 5 模板渲染 | ✅ |
| 6 任务调度器 | ✅ |
| 7 服务层 | ✅ |
| 8 清理 | ✅ |
待办:SSH/Telnet/Agent 远程执行器(参考 _old/jobs/job.go)、通知渠道(参考 _old/notify/)