- 工单编号改为业务格式 TK-yyMMdd-NNN
- 类型断言加 comma-ok 防 panic
- priority 用指针区分未传/P0
- json.Marshal 错误处理
- 提取 ParseID 公共函数消除重复
- HTTP client 包级别复用
- LIKE 查询特殊字符转义
- interface{} → any
- auth 中间件用 dto.Fail 统一响应
Ticket Workbench Backend
Go Gin 工单管理系统后端服务。
环境要求
- Go 1.24+
- MySQL 5.7+
配置文件
编辑 config.yaml:
server:
port: 8090
db:
host: 39.99.243.191
port: 3306
user: root
password: Lake@2019
dbname: ticket_dev
glm:
api_key: 7f83dc939a60488b8cf48a2ee1c8150e.NY3aOR0qlVS8m37a
base_url: https://open.bigmodel.cn/api/paas/v4
model: glm-4-flash
启动方式
# 安装依赖
go mod tidy
# 运行
go run .
# 编译
go build -o ticket-workbench.exe .
# 运行编译后的程序
./ticket-workbench.exe
API 接口
认证
POST /api/login- 登录POST /api/logout- 登出GET /api/user/info- 当前用户信息
工单
GET /api/tickets- 工单列表POST /api/tickets- 创建工单GET /api/tickets/:id- 工单详情PUT /api/tickets/:id- 更新工单PUT /api/tickets/:id/status- 更新状态
AI 分析
POST /api/tickets/:id/analyze- 触发 AI 分析GET /api/tickets/:id/analysis- 获取分析结果PUT /api/tickets/:id/analysis- 确认/修改分析结果
备注
GET /api/tickets/:id/notes- 获取备注列表POST /api/tickets/:id/notes- 添加备注
日志
GET /api/tickets/:id/logs- 获取操作日志
认证方式
所有 API(除登录/登出外)需要通过 Authorization header 或 jsessionid cookie 携带 token。
Authorization: {token}
项目结构
backend/
├── main.go # 入口文件
├── config.yaml # 配置文件
├── go.mod / go.sum # 依赖管理
└── internal/
├── config/ # 配置读取
├── model/ # GORM 模型
├── dto/ # 请求/响应 DTO
├── handler/ # Gin handler
├── service/ # 业务逻辑
└── middleware/ # 中间件