feat: 增强用户搜索功能,支持通过设备ID哈希进行查找。
All checks were successful
Build docker and publish / build (20.15.1) (push) Successful in 8m42s
All checks were successful
Build docker and publish / build (20.15.1) (push) Successful in 8m42s
This commit is contained in:
parent
79a1eeca1f
commit
1d2f2a594a
@ -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").
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user