From edc2e77d2f2dd27df180eca0583bd5b0e03187d9 Mon Sep 17 00:00:00 2001 From: AskaEth Date: Tue, 23 Jun 2026 20:24:09 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20internal=20reminder=E8=B7=AF=E7=94=B1+us?= =?UTF-8?q?er=5Fid=E6=94=AF=E6=8C=81=20=E2=80=94=20=E4=BF=AE=E5=A4=8D401/4?= =?UTF-8?q?04?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Gateway新增 POST/GET/DELETE /api/v1/internal/reminders - CreateReminderRequest新增UserID字段,JWT为空时回退 - GatewayClient URL改为 /api/v1/internal/reminders Co-Authored-By: Claude --- backend/gateway/internal/handler/reminder_handler.go | 7 +++++++ backend/gateway/internal/router/router.go | 3 +++ 2 files changed, 10 insertions(+) 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路由 ==========