diff --git a/internal/db/models/user_dao.go b/internal/db/models/user_dao.go index 3114a83e..f4a4a66c 100644 --- a/internal/db/models/user_dao.go +++ b/internal/db/models/user_dao.go @@ -322,8 +322,8 @@ func (this *UserDAO) UpdateUserPassword(tx *dbs.Tx, userId int64, password strin } // CountAllEnabledUsers 计算用户数量 -func (this *UserDAO) CountAllEnabledUsers(tx *dbs.Tx, clusterId int64, keyword string, isVerifying bool) (int64, error) { - query := this.Query(tx) +func (this *UserDAO) CountAllEnabledUsers(tx *dbs.Tx, clusterId int64, keyword string, isVerifying bool, mobileIsVerifiedFlag int32) (int64, error) { + var query = this.Query(tx) query.State(UserStateEnabled) if clusterId > 0 { query.Attr("clusterId", clusterId) @@ -336,6 +336,14 @@ func (this *UserDAO) CountAllEnabledUsers(tx *dbs.Tx, clusterId int64, keyword s query.Where("(isVerified=0 OR (id IN (SELECT userId FROM " + SharedUserIdentityDAO.Table + " WHERE status=:identityStatus AND state=1)))") query.Param("identityStatus", userconfigs.UserIdentityStatusSubmitted) } + + // 手机号是否已验证 + if mobileIsVerifiedFlag == 1 { + query.Where("LENGTH(verifiedMobile)>0") + } else if mobileIsVerifiedFlag == 0 { + query.Where("(verifiedMobile IS NULL OR LENGTH(verifiedMobile)=0)") + } + return query.Count() } @@ -349,8 +357,8 @@ func (this *UserDAO) CountAllVerifyingUsers(tx *dbs.Tx) (int64, error) { } // ListEnabledUsers 列出单页用户 -func (this *UserDAO) ListEnabledUsers(tx *dbs.Tx, clusterId int64, keyword string, isVerifying bool, offset int64, size int64) (result []*User, err error) { - query := this.Query(tx) +func (this *UserDAO) ListEnabledUsers(tx *dbs.Tx, clusterId int64, keyword string, isVerifying bool, mobileIsVerifiedFlag int32, offset int64, size int64) (result []*User, err error) { + var query = this.Query(tx) query.State(UserStateEnabled) if clusterId > 0 { query.Attr("clusterId", clusterId) @@ -363,6 +371,14 @@ func (this *UserDAO) ListEnabledUsers(tx *dbs.Tx, clusterId int64, keyword strin query.Where("(isVerified=0 OR (id IN (SELECT userId FROM " + SharedUserIdentityDAO.Table + " WHERE status=:identityStatus AND state=1)))") query.Param("identityStatus", userconfigs.UserIdentityStatusSubmitted) } + + // 手机号是否已验证 + if mobileIsVerifiedFlag == 1 { + query.Where("LENGTH(verifiedMobile)>0") + } else if mobileIsVerifiedFlag == 0 { + query.Where("(verifiedMobile IS NULL OR LENGTH(verifiedMobile)=0)") + } + _, err = query. DescPk(). Offset(offset). diff --git a/internal/rpc/services/service_admin.go b/internal/rpc/services/service_admin.go index f93bc852..77306c1b 100644 --- a/internal/rpc/services/service_admin.go +++ b/internal/rpc/services/service_admin.go @@ -593,7 +593,7 @@ func (this *AdminService) ComposeAdminDashboard(ctx context.Context, req *pb.Com // 用户数 this.BeginTag(ctx, "SharedUserDAO.CountAllEnabledUsers") - countUsers, err := models.SharedUserDAO.CountAllEnabledUsers(tx, 0, "", false) + countUsers, err := models.SharedUserDAO.CountAllEnabledUsers(tx, 0, "", false, -1) this.EndTag(ctx, "SharedUserDAO.CountAllEnabledUsers") if err != nil { return nil, err diff --git a/internal/rpc/services/service_server_stat_board.go b/internal/rpc/services/service_server_stat_board.go index 6a554555..00146162 100644 --- a/internal/rpc/services/service_server_stat_board.go +++ b/internal/rpc/services/service_server_stat_board.go @@ -73,7 +73,7 @@ func (this *ServerStatBoardService) ComposeServerStatNodeClusterBoard(ctx contex } result.CountInactiveNodes = countInactiveNodes - countUsers, err := models.SharedUserDAO.CountAllEnabledUsers(tx, req.NodeClusterId, "", false) + countUsers, err := models.SharedUserDAO.CountAllEnabledUsers(tx, req.NodeClusterId, "", false, -1) if err != nil { return nil, err } diff --git a/internal/rpc/services/users/service_user.go b/internal/rpc/services/users/service_user.go index 202512c9..afe7ee35 100644 --- a/internal/rpc/services/users/service_user.go +++ b/internal/rpc/services/users/service_user.go @@ -123,7 +123,7 @@ func (this *UserService) CountAllEnabledUsers(ctx context.Context, req *pb.Count var tx = this.NullTx() - count, err := models.SharedUserDAO.CountAllEnabledUsers(tx, 0, req.Keyword, req.IsVerifying) + count, err := models.SharedUserDAO.CountAllEnabledUsers(tx, 0, req.Keyword, req.IsVerifying, req.MobileIsVerified) if err != nil { return nil, err } @@ -139,7 +139,7 @@ func (this *UserService) ListEnabledUsers(ctx context.Context, req *pb.ListEnabl var tx = this.NullTx() - users, err := models.SharedUserDAO.ListEnabledUsers(tx, 0, req.Keyword, req.IsVerifying, req.Offset, req.Size) + users, err := models.SharedUserDAO.ListEnabledUsers(tx, 0, req.Keyword, req.IsVerifying, req.MobileIsVerified, req.Offset, req.Size) if err != nil { return nil, err } @@ -160,19 +160,20 @@ func (this *UserService) ListEnabledUsers(ctx context.Context, req *pb.ListEnabl } result = append(result, &pb.User{ - Id: int64(user.Id), - Username: user.Username, - Fullname: user.Fullname, - Mobile: user.Mobile, - Tel: user.Tel, - Email: user.Email, - Remark: user.Remark, - IsOn: user.IsOn, - RegisteredIP: user.RegisteredIP, - IsVerified: user.IsVerified, - IsRejected: user.IsRejected, - CreatedAt: int64(user.CreatedAt), - NodeCluster: pbCluster, + Id: int64(user.Id), + Username: user.Username, + Fullname: user.Fullname, + Mobile: user.Mobile, + VerifiedMobile: user.VerifiedMobile, + Tel: user.Tel, + Email: user.Email, + Remark: user.Remark, + IsOn: user.IsOn, + RegisteredIP: user.RegisteredIP, + IsVerified: user.IsVerified, + IsRejected: user.IsRejected, + CreatedAt: int64(user.CreatedAt), + NodeCluster: pbCluster, }) } @@ -646,7 +647,7 @@ func (this *UserService) ComposeUserGlobalBoard(ctx context.Context, req *pb.Com var result = &pb.ComposeUserGlobalBoardResponse{} var tx = this.NullTx() - totalUsers, err := models.SharedUserDAO.CountAllEnabledUsers(tx, 0, "", false) + totalUsers, err := models.SharedUserDAO.CountAllEnabledUsers(tx, 0, "", false, -1) if err != nil { return nil, err }