From 04dc9c51aad776a9f0bffa5e9c1280e9f905e305 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BE=90=E6=B6=9B?= Date: Fri, 2 Jun 2023 06:26:22 +0800 Subject: [PATCH] =?UTF-8?q?fix(user):=E6=A0=B9=E6=8D=AE=E8=A1=8C=E6=94=BF?= =?UTF-8?q?=E5=8C=BA=E5=88=92=E9=83=A8=E5=88=86=E7=9A=84=E6=B5=8B=E8=AF=95?= =?UTF-8?q?=E7=BB=93=E8=AE=BA=EF=BC=8C=E4=BF=AE=E6=AD=A3=E7=94=A8=E6=88=B7?= =?UTF-8?q?=E9=83=A8=E5=88=86=E7=9A=84=E6=A8=A1=E5=9E=8B=E6=89=AB=E6=8F=8F?= =?UTF-8?q?=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- repository/user.go | 34 +++++++++++++++++----------------- 1 file changed, 17 insertions(+), 17 deletions(-) diff --git a/repository/user.go b/repository/user.go index d3588dc..8d59a85 100644 --- a/repository/user.go +++ b/repository/user.go @@ -226,7 +226,7 @@ func (ur _UserRepository) CreateUser(user model.User, detail model.UserDetail, o } // 根据给定的条件检索用户 -func (ur _UserRepository) FindUser(keyword *string, userType int16, state *bool, page uint) ([]model.UserWithDetail, int64, error) { +func (ur _UserRepository) FindUser(keyword *string, userType int16, state *bool, page uint) ([]*model.UserWithDetail, int64, error) { ur.log.Info("根据给定的条件检索用户。", zap.Uint("page", page), zap.Stringp("keyword", keyword), zap.Int16("user type", userType), zap.Boolp("state", state)) cacheConditions := []string{ fmt.Sprintf("%d", page), @@ -241,7 +241,7 @@ func (ur _UserRepository) FindUser(keyword *string, userType int16, state *bool, tools.DefaultStrTo("%s", state, "UNDEF"), tools.DefaultTo(keyword, ""), } - if users, total, err := cache.RetrievePagedSearch[[]model.UserWithDetail]("user_with_detail", cacheConditions...); err == nil && users != nil && total != -1 { + if users, total, err := cache.RetrievePagedSearch[[]*model.UserWithDetail]("user_with_detail", cacheConditions...); err == nil && users != nil && total != -1 { return *users, total, nil } @@ -249,7 +249,7 @@ func (ur _UserRepository) FindUser(keyword *string, userType int16, state *bool, defer cancel() var ( - userWithDetails []model.UserWithDetail + userWithDetails []*model.UserWithDetail userCount int64 ) userQuery := ur.ds. @@ -303,11 +303,11 @@ func (ur _UserRepository) FindUser(keyword *string, userType int16, state *bool, countSql, countParams, _ := countQuery.Prepared(true).ToSQL() if err := pgxscan.Select(ctx, global.DB, &userWithDetails, userSql, userParams...); err != nil { ur.log.Error("从数据库查询用户列表失败。", zap.Error(err)) - return make([]model.UserWithDetail, 0), 0, err + return make([]*model.UserWithDetail, 0), 0, err } if err := pgxscan.Get(ctx, global.DB, &userCount, countSql, countParams...); err != nil { ur.log.Error("从数据库查询用户列表总数失败。", zap.Error(err)) - return make([]model.UserWithDetail, 0), 0, err + return make([]*model.UserWithDetail, 0), 0, err } cache.CachePagedSearch( userWithDetails, @@ -397,7 +397,7 @@ func (ur _UserRepository) ChangeState(uid string, state bool) (bool, error) { } // 检索条目数量有限的用户详细信息 -func (ur _UserRepository) SearchUsersWithLimit(userType *int16, keyword *string, limit uint) (*[]model.UserDetail, error) { +func (ur _UserRepository) SearchUsersWithLimit(userType *int16, keyword *string, limit uint) ([]*model.UserDetail, error) { ur.log.Info("检索条目数量有限的用户详细信息。", zap.Int16p("user type", userType), zap.Uint("limit", limit), zap.Stringp("keyword", keyword)) actualUserType := tools.DefaultTo(userType, model.USER_TYPE_ENT) cacheConditions := []string{ @@ -405,13 +405,13 @@ func (ur _UserRepository) SearchUsersWithLimit(userType *int16, keyword *string, tools.DefaultTo(keyword, ""), fmt.Sprintf("%d", limit), } - if users, err := cache.RetrieveSearch[[]model.UserDetail]("user_with_detail_limited", cacheConditions...); err == nil && users != nil { - return users, nil + if users, err := cache.RetrieveSearch[[]*model.UserDetail]("user_with_detail_limited", cacheConditions...); err == nil && users != nil { + return *users, nil } ctx, cancel := global.TimeoutContext() defer cancel() - var users []model.UserDetail + var users []*model.UserDetail userQuery := ur.ds. From(goqu.T("user").As("u")). Join(goqu.T("user_detail").As("ud"), goqu.On(goqu.Ex{"ud.id": goqu.I("u.id")})). @@ -438,12 +438,12 @@ func (ur _UserRepository) SearchUsersWithLimit(userType *int16, keyword *string, userQuery.Order(goqu.I("u.created_at").Desc()).Limit(limit) userSql, userParams, _ := userQuery.Prepared(true).ToSQL() - if err := pgxscan.Select(ctx, global.DB, &users, userSql, userParams...); err != nil { + if err := pgxscan.Select(ctx, global.DB, users, userSql, userParams...); err != nil { ur.log.Error("从数据库查询用户列表失败。", zap.Error(err)) return nil, err } cache.CacheSearch(users, []string{"user"}, "user_with_detail_limited", cacheConditions...) - return &users, nil + return users, nil } // 更新指定用户的服务有效期限 @@ -470,29 +470,29 @@ func (ur _UserRepository) UpdateServiceExpiration(uid string, expiration stdTime } // 检索指定用户列表的详细信息 -func (ur _UserRepository) RetrieveUsersDetail(uids []string) ([]model.UserDetail, error) { +func (ur _UserRepository) RetrieveUsersDetail(uids []string) ([]*model.UserDetail, error) { ur.log.Info("检索指定用户列表的详细信息。", zap.Strings("user ids", uids)) if len(uids) == 0 { - return make([]model.UserDetail, 0), nil + return make([]*model.UserDetail, 0), nil } cacheConditions := []string{ strings.Join(uids, ","), } - if users, err := cache.RetrieveSearch[[]model.UserDetail]("user_detail", cacheConditions...); err == nil && users != nil { + if users, err := cache.RetrieveSearch[[]*model.UserDetail]("user_detail", cacheConditions...); err == nil && users != nil { return *users, nil } ctx, cancel := global.TimeoutContext() defer cancel() - var users []model.UserDetail + var users []*model.UserDetail userQuery := ur.ds. From("user_detail"). Where(goqu.Ex{"id": goqu.Any(uids)}) userSql, userParams, _ := userQuery.Prepared(true).ToSQL() - if err := pgxscan.Select(ctx, global.DB, &users, userSql, userParams...); err != nil { + if err := pgxscan.Select(ctx, global.DB, users, userSql, userParams...); err != nil { ur.log.Error("从数据库查询用户列表失败。", zap.Error(err)) - return make([]model.UserDetail, 0), err + return make([]*model.UserDetail, 0), err } cache.CacheSearch(users, []string{"user", "user_detail"}, "user", cacheConditions...) return users, nil