This commit is contained in:
2026-09-15 23:04:13 +08:00
parent ade2453083
commit 8c2ea84939
17 changed files with 749 additions and 161 deletions
+25 -3
View File
@@ -19,8 +19,9 @@ func NewAIRecommendHandler() *AIRecommendHandler {
return &AIRecommendHandler{svc: service.NewAIRecommendService()}
}
// Create 发起 AI 穿搭推荐。
func (h *AIRecommendHandler) Create(c *gin.Context) {
// Submit 提交 AI 穿搭推荐任务(异步)。
// 立即返回 task_id,不等待大模型;生成在前端断开后仍会继续,结果通过 Status 轮询获取。
func (h *AIRecommendHandler) Submit(c *gin.Context) {
response := app.NewResponse(c)
userID, ok := middleware.GetUserID(c.Request.Context())
if !ok {
@@ -32,7 +33,28 @@ func (h *AIRecommendHandler) Create(c *gin.Context) {
response.ToErrorResponse(errcode.InvalidParams.WithDetails(err.Error()))
return
}
out, e := h.svc.Create(c.Request.Context(), userID, &request)
out, e := h.svc.Submit(c.Request.Context(), userID, &request)
if e != nil {
response.ToErrorResponse(e)
return
}
response.ToResponse(out)
}
// Status 查询 AI 穿搭推荐任务的状态与结果。
func (h *AIRecommendHandler) Status(c *gin.Context) {
response := app.NewResponse(c)
userID, ok := middleware.GetUserID(c.Request.Context())
if !ok {
response.ToErrorResponse(errcode.Unauthorized)
return
}
var request dto.AIRecommendStatusRequest
if err := c.ShouldBindQuery(&request); err != nil {
response.ToErrorResponse(errcode.InvalidParams.WithDetails(err.Error()))
return
}
out, e := h.svc.Status(c.Request.Context(), userID, &request)
if e != nil {
response.ToErrorResponse(e)
return
+3 -2
View File
@@ -134,8 +134,9 @@ func NewRouter() *gin.Engine {
// 广告激励额度
auth.POST("/ad-reward/grant", adRewardHandler.Grant)
// AI 推荐
auth.POST("/ai-recommend", aiHandler.Create)
// AI 推荐(异步:提交任务后轮询结果,避免长耗时请求被超时中断)
auth.POST("/ai-recommend", aiHandler.Submit)
auth.GET("/ai-recommend/status", aiHandler.Status)
auth.POST("/ai-recommend/save", aiHandler.Save)
}