diff --git a/app/mix/dao/mongo.go b/app/mix/dao/mongo.go index ba8057a8..62572a0f 100644 --- a/app/mix/dao/mongo.go +++ b/app/mix/dao/mongo.go @@ -1177,6 +1177,26 @@ func (m *Mongo) GetAccountListByUserId(ctx *gin.Context, req *accountproto.OpLis return account, err } +func (m *Mongo) GetAccountListByPhoneHash(ctx *gin.Context, phonehash string) ([]*dbstruct.Account, error) { + col := m.getColAccount() + list := make([]*dbstruct.Account, 0) + + query := qmgo.M{ + "phone_hash": phonehash, + "del_flag": 0, + } + + err := col.Find(ctx, query).All(&list) + if err == qmgo.ErrNoSuchDocuments { + err = nil + return nil, err + } + if err != nil { + return nil, err + } + return list, err +} + func (m *Mongo) GetAccountListFuzzilyByName(ctx *gin.Context, req *accountproto.OpListFuzzilyByNameReq) ([]*dbstruct.Account, error) { list := make([]*dbstruct.Account, 0) col := m.getColAccount() diff --git a/app/mix/service/logic/account.go b/app/mix/service/logic/account.go index 57227006..8fa6ec81 100644 --- a/app/mix/service/logic/account.go +++ b/app/mix/service/logic/account.go @@ -273,3 +273,12 @@ func (p *Account) OpCreateHis(ctx *gin.Context, accounts []*dbstruct.Account) er } return nil } + +func (p *Account) OpListByPhoneHash(ctx *gin.Context, phonehash string) ([]*dbstruct.Account, error) { + list, err := p.store.GetAccountListByPhoneHash(ctx, phonehash) + if err != nil { + logger.Error("GetAccountListByMid fail, err: %v", err) + return nil, err + } + return list, nil +} diff --git a/app/mix/service/utilservice.go b/app/mix/service/utilservice.go index 5a17efe3..ca66120f 100644 --- a/app/mix/service/utilservice.go +++ b/app/mix/service/utilservice.go @@ -46,6 +46,19 @@ func (s *Service) utilRegisterUser(ctx *gin.Context, req *loginproto.MobilePhone ec = errcode.ErrCodeLoginSrvOk + //查询是否已经创建账号 + list, err := _DefaultAccount.OpListByPhoneHash(ctx, req.PhoneHash) + if err != nil { + logger.Error("_DefaultAccount OpListByPhoneHashfail, err: %v", err) + ec = errcode.ErrCodeAccountSrvFail + return + } + if len(list) > 0 { + logger.Error("Account OpCreate failed, err: %v", err) + ec = errcode.ErrCodeAccountSrvFail + return + } + //判断邀请人是否是主播 if inviter != nil { account, err := _DefaultAccount.OpListByUserId(ctx, &accountproto.OpListByUserIdReq{