- 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
34 lines
752 B
Go
34 lines
752 B
Go
package api
|
|
|
|
import (
|
|
"net/http"
|
|
|
|
"github.com/gin-gonic/gin"
|
|
|
|
"kenaito-media-picker/internal/service"
|
|
)
|
|
|
|
// ScanController 扫描整理接口
|
|
type ScanController struct {
|
|
service *service.ScanService
|
|
}
|
|
|
|
// NewScanController 创建扫描控制器
|
|
func NewScanController(svc *service.ScanService) *ScanController {
|
|
return &ScanController{service: svc}
|
|
}
|
|
|
|
// Start POST /api/scan/start 触发一次扫描整理
|
|
func (c *ScanController) Start(ctx *gin.Context) {
|
|
if err := c.service.Start(); err != nil {
|
|
Error(ctx, http.StatusBadRequest, err.Error())
|
|
return
|
|
}
|
|
Success(ctx, c.service.Status())
|
|
}
|
|
|
|
// Status GET /api/scan/status 查询扫描状态与日志
|
|
func (c *ScanController) Status(ctx *gin.Context) {
|
|
Success(ctx, c.service.Status())
|
|
}
|