diff --git a/backend/gateway/internal/handler/reminder_handler.go b/backend/gateway/internal/handler/reminder_handler.go index 88bce45..0cc017c 100644 --- a/backend/gateway/internal/handler/reminder_handler.go +++ b/backend/gateway/internal/handler/reminder_handler.go @@ -35,6 +35,7 @@ type CreateReminderRequest struct { RemindAt string `json:"remind_at" binding:"required"` // ISO 8601 格式 RepeatType string `json:"repeat_type"` // none, daily, weekly, monthly SessionID string `json:"session_id"` + UserID string `json:"user_id,omitempty"` // 内部调用时直接传 userID } // UpdateReminderRequest 更新提醒请求体 @@ -95,6 +96,12 @@ func (h *ReminderHandler) Create(c *gin.Context) { // 从 JWT 获取 userID userID := middleware.GetUserID(c) + if userID == "" { + userID = req.UserID + } + if userID == "" { + userID = req.UserID + } if userID == "" { c.JSON(http.StatusUnauthorized, gin.H{"error": "未认证"}) return diff --git a/backend/gateway/internal/router/router.go b/backend/gateway/internal/router/router.go index 1ab548e..3d9d002 100644 --- a/backend/gateway/internal/router/router.go +++ b/backend/gateway/internal/router/router.go @@ -234,6 +234,9 @@ func Setup(r *gin.Engine, hub *ws.Hub, cfg *config.Config, sessionStore *store.S { internal.POST("/notify", notificationHandler.InternalNotify) internal.POST("/proactive-message", chatHandler.HandleProactiveMessage) + internal.POST("/reminders", reminderHandler.Create) + internal.GET("/reminders", reminderHandler.List) + internal.DELETE("/reminders/:id", reminderHandler.Delete) } // ========== WebSocket路由 ==========