作者 yangfu

factory

  1 +package repository
  2 +
  3 +import "sync"
  4 +
  5 +var(
  6 + mutex sync.RWMutex
  7 + DefaultUserRepository IUserRepository
  8 + DefaultConfigRepository IConfigRepository
  9 +)
  10 +
  11 +func init(){
  12 + DefaultUserRepository = UserRepositoryFactory()
  13 +}
  14 +
  15 +func UserRepositoryFactory()IUserRepository{
  16 + if DefaultUserRepository==nil{
  17 + mutex.Lock()
  18 + defer mutex.Unlock()
  19 + if DefaultUserRepository==nil{
  20 + DefaultUserRepository = &UserRepository{}
  21 + }
  22 + }
  23 + return DefaultUserRepository
  24 +}
  25 +
  26 +func ConfigRepositoryFactory()IConfigRepository{
  27 + if DefaultConfigRepository==nil{
  28 + mutex.Lock()
  29 + defer mutex.Unlock()
  30 + if DefaultConfigRepository==nil{
  31 + DefaultConfigRepository = &ConfigRepository{}
  32 + }
  33 + }
  34 + return DefaultConfigRepository
  35 +}
@@ -44,9 +44,9 @@ func assertImplement() { @@ -44,9 +44,9 @@ func assertImplement() {
44 var ( 44 var (
45 //服务 45 //服务
46 sms s_sms.ISmsService = &s_sms.YunPianSmsService{} 46 sms s_sms.ISmsService = &s_sms.YunPianSmsService{}
47 - ConfigRepository repository.IConfigRepository = &repository.ConfigRepository{}  
48 - //仓储  
49 - UserRepository repository.IUserRepository = &repository.UserRepository{} 47 + //ConfigRepository repository.IConfigRepository = &repository.ConfigRepository{}
  48 + ////仓储
  49 + //UserRepository repository.IUserRepository = &repository.UserRepository{}
50 ) 50 )
51 51
52 //登录 52 //登录
@@ -57,7 +57,7 @@ func (s *AuthService) Login(request *protocol.LoginRequest) (rsp *protocol.Login @@ -57,7 +57,7 @@ func (s *AuthService) Login(request *protocol.LoginRequest) (rsp *protocol.Login
57 result bool 57 result bool
58 checkImResponse *protocol.CheckImResponse 58 checkImResponse *protocol.CheckImResponse
59 ) 59 )
60 - user, err = UserRepository.GetUsersByMobile(request.Phone) 60 + user, err = repository.UserRepositoryFactory().GetUsersByMobile(request.Phone)
61 if err != nil { 61 if err != nil {
62 log.Error(err) 62 log.Error(err)
63 err = protocol.NewErrWithMessage(2020, err) //账号不存在 63 err = protocol.NewErrWithMessage(2020, err) //账号不存在
@@ -84,7 +84,7 @@ func (s *AuthService) Login(request *protocol.LoginRequest) (rsp *protocol.Login @@ -84,7 +84,7 @@ func (s *AuthService) Login(request *protocol.LoginRequest) (rsp *protocol.Login
84 } 84 }
85 Success: 85 Success:
86 { 86 {
87 - userInfo, err = UserRepository.GetUserInfoByMobile(request.Phone) 87 + userInfo, err = repository.UserRepositoryFactory().GetUserInfoByMobile(request.Phone)
88 if err != nil { 88 if err != nil {
89 log.Error(err) 89 log.Error(err)
90 return 90 return
@@ -107,7 +107,7 @@ Success: @@ -107,7 +107,7 @@ Success:
107 userInfo.CsAccount = imGetRandomCSAccount() 107 userInfo.CsAccount = imGetRandomCSAccount()
108 } 108 }
109 userInfo.AuthExp = time.Now().Add(time.Second * protocol.TokenExpire) 109 userInfo.AuthExp = time.Now().Add(time.Second * protocol.TokenExpire)
110 - if err = UserRepository.UpdateUserInfoById(userInfo); err != nil { 110 + if err = repository.UserRepositoryFactory().UpdateUserInfoById(userInfo); err != nil {
111 return 111 return
112 } 112 }
113 rsp = &protocol.LoginResponse{AuthCode: userInfo.Auth} 113 rsp = &protocol.LoginResponse{AuthCode: userInfo.Auth}
@@ -196,19 +196,19 @@ func (s *AuthService) AccessToken(request *protocol.AccessTokenRequest) (rsp *pr @@ -196,19 +196,19 @@ func (s *AuthService) AccessToken(request *protocol.AccessTokenRequest) (rsp *pr
196 var ( 196 var (
197 userInfo *models.UserInfo 197 userInfo *models.UserInfo
198 ) 198 )
199 - _, err = ConfigRepository.GetCfgClient(request.ClientId, request.ClientSecret) 199 + _, err = repository.ConfigRepositoryFactory().GetCfgClient(request.ClientId, request.ClientSecret)
200 if err != nil { 200 if err != nil {
201 err = protocol.NewErrWithMessage(101, err) 201 err = protocol.NewErrWithMessage(101, err)
202 return 202 return
203 } 203 }
204 - userInfo, err = UserRepository.GetUserInfoByAuthCode(request.AuthCode) 204 + userInfo, err = repository.UserRepositoryFactory().GetUserInfoByAuthCode(request.AuthCode)
205 if err != nil { 205 if err != nil {
206 err = protocol.NewErrWithMessage(4139, err) 206 err = protocol.NewErrWithMessage(4139, err)
207 return 207 return
208 } 208 }
209 userInfo.AccessToken = uid.NewV1().StringNoDash() 209 userInfo.AccessToken = uid.NewV1().StringNoDash()
210 userInfo.RefreshToken = uid.NewV1().StringNoDash() 210 userInfo.RefreshToken = uid.NewV1().StringNoDash()
211 - if err = UserRepository.UpdateUserInfoById(userInfo); err != nil { 211 + if err = repository.UserRepositoryFactory().UpdateUserInfoById(userInfo); err != nil {
212 log.Error(err) 212 log.Error(err)
213 return 213 return
214 } 214 }
@@ -226,18 +226,18 @@ func (s *AuthService) RefreshToken(request *protocol.RefreshTokenRequest) (rsp * @@ -226,18 +226,18 @@ func (s *AuthService) RefreshToken(request *protocol.RefreshTokenRequest) (rsp *
226 var ( 226 var (
227 userInfo *models.UserInfo 227 userInfo *models.UserInfo
228 ) 228 )
229 - _, err = ConfigRepository.GetCfgClient(request.ClientId, request.ClientSecret) 229 + _, err = repository.ConfigRepositoryFactory().GetCfgClient(request.ClientId, request.ClientSecret)
230 if err != nil { 230 if err != nil {
231 protocol.NewErrWithMessage(101, err) 231 protocol.NewErrWithMessage(101, err)
232 return 232 return
233 } 233 }
234 - userInfo, err = UserRepository.GetUserInfoByRefreshToken(request.RefreshToken) 234 + userInfo, err = repository.UserRepositoryFactory().GetUserInfoByRefreshToken(request.RefreshToken)
235 if err != nil { 235 if err != nil {
236 protocol.NewErrWithMessage(4139, err) 236 protocol.NewErrWithMessage(4139, err)
237 return 237 return
238 } 238 }
239 userInfo.AccessToken = uid.NewV1().StringNoDash() 239 userInfo.AccessToken = uid.NewV1().StringNoDash()
240 - if err = UserRepository.UpdateUserInfoById(userInfo); err != nil { 240 + if err = repository.UserRepositoryFactory().UpdateUserInfoById(userInfo); err != nil {
241 return 241 return
242 } 242 }
243 rsp = &protocol.RefreshTokenResponse{ 243 rsp = &protocol.RefreshTokenResponse{
@@ -10,8 +10,8 @@ import ( @@ -10,8 +10,8 @@ import (
10 10
11 func init() { 11 func init() {
12 tests.Init() 12 tests.Init()
13 - UserRepository = &repository.UserMockRepository{}  
14 - ConfigRepository = &repository.ConfigMockeRepository{} 13 + repository.DefaultUserRepository = &repository.UserMockRepository{}
  14 + repository.DefaultConfigRepository = &repository.ConfigMockeRepository{}
15 } 15 }
16 16
17 var auth = AuthService{} 17 var auth = AuthService{}