From 1d2f2a594a603cfabd282914aa5f81491fdbeac3 Mon Sep 17 00:00:00 2001 From: shanshanzhong Date: Sun, 15 Mar 2026 22:02:23 -0700 Subject: [PATCH] =?UTF-8?q?feat:=20=E5=A2=9E=E5=BC=BA=E7=94=A8=E6=88=B7?= =?UTF-8?q?=E6=90=9C=E7=B4=A2=E5=8A=9F=E8=83=BD=EF=BC=8C=E6=94=AF=E6=8C=81?= =?UTF-8?q?=E9=80=9A=E8=BF=87=E8=AE=BE=E5=A4=87ID=E5=93=88=E5=B8=8C?= =?UTF-8?q?=E8=BF=9B=E8=A1=8C=E6=9F=A5=E6=89=BE=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- internal/model/user/model.go | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/internal/model/user/model.go b/internal/model/user/model.go index b03f399..d457520 100644 --- a/internal/model/user/model.go +++ b/internal/model/user/model.go @@ -8,6 +8,7 @@ import ( "github.com/perfect-panel/server/internal/model/order" "github.com/perfect-panel/server/internal/model/subscribe" + "github.com/perfect-panel/server/pkg/tool" "github.com/redis/go-redis/v9" "gorm.io/gorm" @@ -173,8 +174,16 @@ func (m *customUserModel) QueryPageList(ctx context.Context, page, size int, fil conn = conn.Where("user.id =?", *filter.UserId) } if filter.Search != "" { - conn = conn.Joins("LEFT JOIN user_auth_methods ON user.id = user_auth_methods.user_id"). - Where("user_auth_methods.auth_identifier LIKE ?", "%"+filter.Search+"%").Or("user.refer_code like ?", "%"+filter.Search+"%") + // 尝试将搜索词解码为 device_no(8位hex → device id) + if deviceId, err := tool.HashToDeviceId(filter.Search); err == nil && deviceId > 0 { + conn = conn.Joins("LEFT JOIN user_auth_methods ON user.id = user_auth_methods.user_id"). + Joins("LEFT JOIN user_device ON user.id = user_device.user_id"). + Where("user_auth_methods.auth_identifier LIKE ? OR user.refer_code LIKE ? OR user_device.id = ?", + "%"+filter.Search+"%", "%"+filter.Search+"%", deviceId) + } else { + conn = conn.Joins("LEFT JOIN user_auth_methods ON user.id = user_auth_methods.user_id"). + Where("user_auth_methods.auth_identifier LIKE ?", "%"+filter.Search+"%").Or("user.refer_code like ?", "%"+filter.Search+"%") + } } if filter.UserSubscribeId != nil { conn = conn.Joins("LEFT JOIN user_subscribe ON user.id = user_subscribe.user_id").