- 在扫描页面添加目录输入框和选择按钮 - 实现文件系统浏览器,支持Windows盘符和目录浏览 - 添加扫描目录参数传递到后端服务 - 显示当前扫描目录路径信息 - 修复前端空数组访问错误 - 更新文档说明扫描功能变化
44 lines
1.0 KiB
Go
44 lines
1.0 KiB
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}
|
|
}
|
|
|
|
// scanStartReq 扫描启动请求;dir 为空时使用服务当前运行目录
|
|
type scanStartReq struct {
|
|
Dir string `json:"dir"`
|
|
}
|
|
|
|
// Start POST /api/scan/start 触发一次扫描整理
|
|
func (c *ScanController) Start(ctx *gin.Context) {
|
|
var req scanStartReq
|
|
if err := ctx.ShouldBindJSON(&req); err != nil {
|
|
Error(ctx, http.StatusBadRequest, "请求参数错误:"+err.Error())
|
|
return
|
|
}
|
|
if err := c.service.Start(req.Dir); 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())
|
|
}
|