- main.go 改为 Web 服务入口(Gin + 内嵌前端 dist + 自动打开浏览器) - internal/service: 新增扫描整理后台任务,支持状态机与实时日志捕获 - internal/api: 新增统一响应、媒体列表/统计、扫描开始/状态接口 - internal/store: 追加 ListMedia/CountMedia/Stats 查询,MediaInfo 补 JSON tag - internal/config: application.properties 配置加载(端口/数据库/自动开浏览器) - frontend: Vue2 + ElementUI + Vite 工程,含扫描整理/统计看板/媒体库三页 - build.sh 整合前端构建,输出单一 kenaito-media-picker.exe
40 lines
828 B
Go
40 lines
828 B
Go
// Package api 提供 Web 管理接口(Gin),遵循统一响应与分页约定。
|
|
package api
|
|
|
|
import (
|
|
"net/http"
|
|
|
|
"github.com/gin-gonic/gin"
|
|
)
|
|
|
|
// Response 统一响应结构
|
|
type Response struct {
|
|
Code int `json:"code"`
|
|
Message string `json:"message"`
|
|
Data interface{} `json:"data"`
|
|
}
|
|
|
|
// Success 成功响应
|
|
func Success(c *gin.Context, data interface{}) {
|
|
c.JSON(http.StatusOK, Response{
|
|
Code: http.StatusOK,
|
|
Message: "success",
|
|
Data: data,
|
|
})
|
|
}
|
|
|
|
// Error 失败响应(仅允许 400 / 500)
|
|
func Error(c *gin.Context, statusCode int, message string) {
|
|
c.JSON(statusCode, Response{
|
|
Code: statusCode,
|
|
Message: message,
|
|
Data: nil,
|
|
})
|
|
}
|
|
|
|
// PageResult 分页响应体
|
|
type PageResult struct {
|
|
List []interface{} `json:"list"`
|
|
Total int64 `json:"total"`
|
|
}
|