1、示例报告改未登录可访问
2、增加代理推广报告查询注册UUID账户
This commit is contained in:
		| @@ -2,12 +2,10 @@ package query | ||||
|  | ||||
| import ( | ||||
| 	"context" | ||||
| 	"database/sql" | ||||
| 	"encoding/hex" | ||||
| 	"encoding/json" | ||||
| 	"fmt" | ||||
| 	"qnc-server/app/user/cmd/api/internal/service" | ||||
| 	"qnc-server/app/user/model" | ||||
| 	"qnc-server/common/ctxdata" | ||||
| 	jwtx "qnc-server/common/jwt" | ||||
| 	"qnc-server/common/xerr" | ||||
| @@ -17,7 +15,6 @@ import ( | ||||
|  | ||||
| 	"github.com/pkg/errors" | ||||
| 	"github.com/zeromicro/go-zero/core/stores/redis" | ||||
| 	"github.com/zeromicro/go-zero/core/stores/sqlx" | ||||
|  | ||||
| 	"qnc-server/app/user/cmd/api/internal/svc" | ||||
| 	"qnc-server/app/user/cmd/api/internal/types" | ||||
| @@ -120,9 +117,9 @@ func (l *QueryServiceLogic) ProcessMarriageLogic(req *types.QueryServiceReq) (*t | ||||
| 		"id_card": data.IDCard, | ||||
| 		"mobile":  data.Mobile, | ||||
| 	} | ||||
| 	userID, err := l.GetOrCreateUser(data.Mobile) | ||||
| 	userID, err := l.GetOrCreateUser() | ||||
| 	if err != nil { | ||||
| 		return nil, errors.Wrapf(xerr.NewErrCode(xerr.SERVER_COMMON_ERROR), "查询服务, 解密后的数据格式不正确: %v", err) | ||||
| 		return nil, errors.Wrapf(xerr.NewErrCode(xerr.SERVER_COMMON_ERROR), "查询服务, 处理用户失败: %v", err) | ||||
| 	} | ||||
| 	cacheNo, cacheDataErr := l.CacheData(params, "marriage", userID) | ||||
| 	if cacheDataErr != nil { | ||||
| @@ -180,9 +177,9 @@ func (l *QueryServiceLogic) ProcessHomeServiceLogic(req *types.QueryServiceReq) | ||||
| 		"id_card": data.IDCard, | ||||
| 		"mobile":  data.Mobile, | ||||
| 	} | ||||
| 	userID, err := l.GetOrCreateUser(data.Mobile) | ||||
| 	userID, err := l.GetOrCreateUser() | ||||
| 	if err != nil { | ||||
| 		return nil, errors.Wrapf(xerr.NewErrCode(xerr.SERVER_COMMON_ERROR), "查询服务, 解密后的数据格式不正确: %v", err) | ||||
| 		return nil, errors.Wrapf(xerr.NewErrCode(xerr.SERVER_COMMON_ERROR), "查询服务, 处理用户失败: %v", err) | ||||
| 	} | ||||
| 	cacheNo, cacheDataErr := l.CacheData(params, "homeservice", userID) | ||||
| 	if cacheDataErr != nil { | ||||
| @@ -241,9 +238,9 @@ func (l *QueryServiceLogic) ProcessRiskAssessmentLogic(req *types.QueryServiceRe | ||||
| 		"id_card": data.IDCard, | ||||
| 		"mobile":  data.Mobile, | ||||
| 	} | ||||
| 	userID, err := l.GetOrCreateUser(data.Mobile) | ||||
| 	userID, err := l.GetOrCreateUser() | ||||
| 	if err != nil { | ||||
| 		return nil, errors.Wrapf(xerr.NewErrCode(xerr.SERVER_COMMON_ERROR), "查询服务, 解密后的数据格式不正确: %v", err) | ||||
| 		return nil, errors.Wrapf(xerr.NewErrCode(xerr.SERVER_COMMON_ERROR), "查询服务, 处理用户失败: %v", err) | ||||
| 	} | ||||
| 	cacheNo, cacheDataErr := l.CacheData(params, "riskassessment", userID) | ||||
| 	if cacheDataErr != nil { | ||||
| @@ -301,9 +298,9 @@ func (l *QueryServiceLogic) ProcessCompanyInfoLogic(req *types.QueryServiceReq) | ||||
| 		"id_card": data.IDCard, | ||||
| 		"mobile":  data.Mobile, | ||||
| 	} | ||||
| 	userID, err := l.GetOrCreateUser(data.Mobile) | ||||
| 	userID, err := l.GetOrCreateUser() | ||||
| 	if err != nil { | ||||
| 		return nil, errors.Wrapf(xerr.NewErrCode(xerr.SERVER_COMMON_ERROR), "查询服务, 解密后的数据格式不正确: %v", err) | ||||
| 		return nil, errors.Wrapf(xerr.NewErrCode(xerr.SERVER_COMMON_ERROR), "查询服务, 处理用户失败: %v", err) | ||||
| 	} | ||||
| 	cacheNo, cacheDataErr := l.CacheData(params, "companyinfo", userID) | ||||
| 	if cacheDataErr != nil { | ||||
| @@ -362,9 +359,9 @@ func (l *QueryServiceLogic) ProcessRentalInfoLogic(req *types.QueryServiceReq) ( | ||||
| 		"id_card": data.IDCard, | ||||
| 		"mobile":  data.Mobile, | ||||
| 	} | ||||
| 	userID, err := l.GetOrCreateUser(data.Mobile) | ||||
| 	userID, err := l.GetOrCreateUser() | ||||
| 	if err != nil { | ||||
| 		return nil, errors.Wrapf(xerr.NewErrCode(xerr.SERVER_COMMON_ERROR), "查询服务, 解密后的数据格式不正确: %v", err) | ||||
| 		return nil, errors.Wrapf(xerr.NewErrCode(xerr.SERVER_COMMON_ERROR), "查询服务, 处理用户失败: %v", err) | ||||
| 	} | ||||
| 	cacheNo, cacheDataErr := l.CacheData(params, "rentalinfo", userID) | ||||
| 	if cacheDataErr != nil { | ||||
| @@ -423,9 +420,9 @@ func (l *QueryServiceLogic) ProcessPreLoanBackgroundCheckLogic(req *types.QueryS | ||||
| 		"id_card": data.IDCard, | ||||
| 		"mobile":  data.Mobile, | ||||
| 	} | ||||
| 	userID, err := l.GetOrCreateUser(data.Mobile) | ||||
| 	userID, err := l.GetOrCreateUser() | ||||
| 	if err != nil { | ||||
| 		return nil, errors.Wrapf(xerr.NewErrCode(xerr.SERVER_COMMON_ERROR), "查询服务, 解密后的数据格式不正确: %v", err) | ||||
| 		return nil, errors.Wrapf(xerr.NewErrCode(xerr.SERVER_COMMON_ERROR), "查询服务, 处理用户失败: %v", err) | ||||
| 	} | ||||
| 	cacheNo, cacheDataErr := l.CacheData(params, "preloanbackgroundcheck", userID) | ||||
| 	if cacheDataErr != nil { | ||||
| @@ -483,9 +480,9 @@ func (l *QueryServiceLogic) ProcessBackgroundCheckLogic(req *types.QueryServiceR | ||||
| 		"id_card": data.IDCard, | ||||
| 		"mobile":  data.Mobile, | ||||
| 	} | ||||
| 	userID, err := l.GetOrCreateUser(data.Mobile) | ||||
| 	userID, err := l.GetOrCreateUser() | ||||
| 	if err != nil { | ||||
| 		return nil, errors.Wrapf(xerr.NewErrCode(xerr.SERVER_COMMON_ERROR), "查询服务, 解密后的数据格式不正确: %v", err) | ||||
| 		return nil, errors.Wrapf(xerr.NewErrCode(xerr.SERVER_COMMON_ERROR), "查询服务, 处理用户失败: %v", err) | ||||
| 	} | ||||
| 	cacheNo, cacheDataErr := l.CacheData(params, "backgroundcheck", userID) | ||||
| 	if cacheDataErr != nil { | ||||
| @@ -773,7 +770,7 @@ func (l *QueryServiceLogic) ProcessTocPhoneThreeElementsLogic(req *types.QuerySe | ||||
| func (l *QueryServiceLogic) ProcessTocPhoneTwoElementsLogic(req *types.QueryServiceReq) (*types.QueryServiceResp, error) { | ||||
| 	userID, getUidErr := ctxdata.GetUidFromCtx(l.ctx) | ||||
| 	if getUidErr != nil { | ||||
| 		return nil, errors.Wrapf(xerr.NewErrCode(xerr.SERVER_COMMON_ERROR), "查询服务, 获取用户信息失败, %+v", getUidErr) | ||||
| 		return nil, getUidErr | ||||
| 	} | ||||
|  | ||||
| 	// AES解密 | ||||
| @@ -1390,51 +1387,36 @@ func (l *QueryServiceLogic) CacheData(params map[string]interface{}, Product str | ||||
| 	return outTradeNo, nil | ||||
| } | ||||
|  | ||||
| func (l *QueryServiceLogic) GetOrCreateUser(mobile string) (int64, error) { | ||||
| 	agentIdentifier, ok := l.ctx.Value("agentIdentifier").(string) | ||||
| 	app, appOk := l.ctx.Value("app").(bool) | ||||
| 	if (!ok || agentIdentifier == "") && (!appOk || app == false) { | ||||
| 		// 不是代理查询 | ||||
| 		userID, getUidErr := ctxdata.GetUidFromCtx(l.ctx) | ||||
| 		if getUidErr != nil { | ||||
| 			return 0, getUidErr | ||||
| 		} | ||||
| 		return userID, nil | ||||
| // GetOrCreateUser 获取或创建用户 | ||||
| // 1. 如果上下文中已有用户ID,直接返回 | ||||
| // 2. 如果是代理查询或APP请求,创建新用户 | ||||
| // 3. 其他情况返回未登录错误 | ||||
| func (l *QueryServiceLogic) GetOrCreateUser() (int64, error) { | ||||
| 	// 尝试获取用户ID | ||||
| 	userID, err := ctxdata.GetUidFromCtx(l.ctx) | ||||
| 	if err == nil { | ||||
| 		return userID, nil // 已有用户ID,直接返回 | ||||
| 	} | ||||
|  | ||||
| 	userModel, err := l.svcCtx.UserModel.FindOneByMobile(l.ctx, sql.NullString{String: mobile, Valid: true}) | ||||
| 	if err != nil && !errors.Is(err, model.ErrNotFound) { | ||||
| 	// 如果不是未登录错误,说明是其他错误,直接返回 | ||||
| 	if !ctxdata.IsNoUserIdError(err) { | ||||
| 		return 0, err | ||||
| 	} | ||||
| 	// 没有则创建账号 | ||||
| 	if userModel == nil { | ||||
| 		userModel = &model.User{Mobile: sql.NullString{String: mobile, Valid: true}} | ||||
| 		// if len(userModel.Nickname) == 0 { | ||||
| 		// 	userModel.Nickname = mobile | ||||
| 		// } | ||||
| 		if transErr := l.svcCtx.UserModel.Trans(l.ctx, func(ctx context.Context, session sqlx.Session) error { | ||||
| 			insertResult, userInsertErr := l.svcCtx.UserModel.Insert(ctx, session, userModel) | ||||
| 			if userInsertErr != nil { | ||||
| 				return userInsertErr | ||||
| 			} | ||||
| 			lastId, lastInsertIdErr := insertResult.LastInsertId() | ||||
| 			if lastInsertIdErr != nil { | ||||
| 				return lastInsertIdErr | ||||
| 			} | ||||
| 			userModel.Id = lastId | ||||
|  | ||||
| 			userAuth := new(model.UserAuth) | ||||
| 			userAuth.UserId = lastId | ||||
| 			userAuth.AuthKey = mobile | ||||
| 			userAuth.AuthType = model.UserAuthTypeAgentPromote | ||||
| 			if _, userAuthInsertErr := l.svcCtx.UserAuthModel.Insert(ctx, session, userAuth); userAuthInsertErr != nil { | ||||
| 				return userAuthInsertErr | ||||
| 			} | ||||
|  | ||||
| 			return nil | ||||
| 		}); transErr != nil { | ||||
| 			return 0, transErr | ||||
| 		} | ||||
| 	// 检查是否是代理查询或APP请求 | ||||
| 	isAgentQuery := false | ||||
| 	if agentID, ok := l.ctx.Value("agentIdentifier").(string); ok && agentID != "" { | ||||
| 		isAgentQuery = true | ||||
| 	} | ||||
| 	return userModel.Id, nil | ||||
| 	if app, ok := l.ctx.Value("app").(bool); ok && app { | ||||
| 		isAgentQuery = true | ||||
| 	} | ||||
|  | ||||
| 	// 如果不是代理查询或APP请求,返回未登录错误 | ||||
| 	if !isAgentQuery { | ||||
| 		return 0, ctxdata.ErrNoUserIdInCtx | ||||
| 	} | ||||
|  | ||||
| 	// 创建新用户 | ||||
| 	return l.svcCtx.UserService.RegisterUUIDUser(l.ctx) | ||||
| } | ||||
|   | ||||
		Reference in New Issue
	
	Block a user