diff --git a/app/main/api/internal/logic/query/queryservicelogic.go b/app/main/api/internal/logic/query/queryservicelogic.go index 4830454..b432263 100644 --- a/app/main/api/internal/logic/query/queryservicelogic.go +++ b/app/main/api/internal/logic/query/queryservicelogic.go @@ -709,18 +709,28 @@ func (l *QueryServiceLogic) CacheData(params map[string]interface{}, Product str return outTradeNo, nil } -// GetOrCreateUser 鑾峰彇鎴栧垱寤虹敤鎴? -// 1. 濡傛灉涓婁笅鏂囦腑宸叉湁鐢ㄦ埛ID锛岀洿鎺ヨ繑鍥? -// 2. 濡傛灉鏄唬鐞嗘煡璇㈡垨APP璇锋眰锛屽垱寤烘柊鐢ㄦ埛 -// 3. 鍏朵粬鎯呭喌杩斿洖鏈櫥褰曢敊璇? +// GetOrCreateUser 获取或创建用户 +// 1. 如果已登录,使用当前登录用户 +// 2. 如果未登录,创建临时用户(UUID用户) +// 注意:查询服务不负责手机号绑定,手机号绑定由用户在其他地方自主选择 func (l *QueryServiceLogic) GetOrCreateUser() (string, error) { + // 获取当前登录态 claims, err := ctxdata.GetClaimsFromCtx(l.ctx) - if err == nil && claims != nil { + logx.Infof("claims: %+v", claims) + if err != nil && !errors.Is(err, ctxdata.ErrNoInCtx) { + return "", errors.Wrapf(xerr.NewErrCode(xerr.SERVER_COMMON_ERROR), "获取用户信息失败: %v", err) + } + + // 如果已登录,使用当前登录用户 + if claims != nil { return claims.UserId, nil } - userID, regErr := l.svcCtx.UserService.RegisterUUIDUser(l.ctx) - if regErr != nil { - return "", regErr + + // 未登录:创建临时用户(UUID用户) + userID, err := l.svcCtx.UserService.RegisterUUIDUser(l.ctx) + if err != nil { + return "", errors.Wrapf(xerr.NewErrCode(xerr.SERVER_COMMON_ERROR), "创建临时用户失败: %v", err) } + return userID, nil }