From ffe589ff7737fcb6baf275669289581e9fd23182 Mon Sep 17 00:00:00 2001 From: EUForest Date: Sat, 31 Jan 2026 11:52:09 +0800 Subject: [PATCH] feat: Device short code lookup --- apis/admin/user.api | 1 + internal/handler/routes.go | 4 ++-- internal/logic/admin/user/getUserListLogic.go | 1 + internal/model/user/model.go | 5 +++++ internal/types/types.go | 1 + 5 files changed, 10 insertions(+), 2 deletions(-) diff --git a/apis/admin/user.api b/apis/admin/user.api index 923f197..9caddce 100644 --- a/apis/admin/user.api +++ b/apis/admin/user.api @@ -22,6 +22,7 @@ type ( Unscoped bool `form:"unscoped,omitempty"` SubscribeId *int64 `form:"subscribe_id,omitempty"` UserSubscribeId *int64 `form:"user_subscribe_id,omitempty"` + ShortCode string `form:"short_code,omitempty"` } // GetUserListResponse GetUserListResponse { diff --git a/internal/handler/routes.go b/internal/handler/routes.go index d95465a..ff26e9f 100644 --- a/internal/handler/routes.go +++ b/internal/handler/routes.go @@ -939,10 +939,10 @@ func RegisterHandlers(router *gin.Engine, serverCtx *svc.ServiceContext) { serverGroupRouter.GET("/user", server.GetServerUserListHandler(serverCtx)) } - serverGroupRouterV2 := router.Group("/v2/server") + serverV2GroupRouter := router.Group("/v2/server") { // Get Server Protocol Config - serverGroupRouterV2.GET("/:server_id", server.QueryServerProtocolConfigHandler(serverCtx)) + serverV2GroupRouter.GET("/:server_id", server.QueryServerProtocolConfigHandler(serverCtx)) } } diff --git a/internal/logic/admin/user/getUserListLogic.go b/internal/logic/admin/user/getUserListLogic.go index 8935af1..0258cdc 100644 --- a/internal/logic/admin/user/getUserListLogic.go +++ b/internal/logic/admin/user/getUserListLogic.go @@ -33,6 +33,7 @@ func (l *GetUserListLogic) GetUserList(req *types.GetUserListRequest) (*types.Ge Unscoped: req.Unscoped, SubscribeId: req.SubscribeId, UserSubscribeId: req.UserSubscribeId, + ShortCode: req.ShortCode, Order: "DESC", }) if err != nil { diff --git a/internal/model/user/model.go b/internal/model/user/model.go index e0c2a29..944869c 100644 --- a/internal/model/user/model.go +++ b/internal/model/user/model.go @@ -61,6 +61,7 @@ type UserFilterParams struct { UserId *int64 SubscribeId *int64 UserSubscribeId *int64 + ShortCode string Order string // Order by id, e.g., "desc" Unscoped bool // Whether to include soft-deleted records } @@ -146,6 +147,10 @@ func (m *customUserModel) QueryPageList(ctx context.Context, page, size int, fil conn = conn.Joins("LEFT JOIN user_subscribe ON user.id = user_subscribe.user_id"). Where("user_subscribe.subscribe_id =? and `status` IN (0,1)", *filter.SubscribeId) } + if filter.ShortCode != "" { + conn = conn.Joins("LEFT JOIN user_device ON user.id = user_device.user_id"). + Where("user_device.short_code LIKE ?", "%"+filter.ShortCode+"%") + } if filter.Order != "" { conn = conn.Order(fmt.Sprintf("user.id %s", filter.Order)) } diff --git a/internal/types/types.go b/internal/types/types.go index 7fe6027..70954a9 100644 --- a/internal/types/types.go +++ b/internal/types/types.go @@ -1100,6 +1100,7 @@ type GetUserListRequest struct { Unscoped bool `form:"unscoped,omitempty"` SubscribeId *int64 `form:"subscribe_id,omitempty"` UserSubscribeId *int64 `form:"user_subscribe_id,omitempty"` + ShortCode string `form:"short_code,omitempty"` } type GetUserListResponse struct {