|
|
@@ -221,20 +221,21 @@ func (us *UserService) RegisterByGoogle(name string, email string) *model.User {
|
|
221
|
221
|
|
|
222
|
222
|
// RegisterByOauth 注册
|
|
223
|
223
|
func (us *UserService) RegisterByOauth(thirdType, thirdName, uid string) *model.User {
|
|
|
224
|
+ global.Lock.Lock("registerByOauth")
|
|
|
225
|
+ defer global.Lock.UnLock("registerByOauth")
|
|
|
226
|
+ ut := AllService.OauthService.UserThirdInfo(thirdType, uid)
|
|
|
227
|
+ if ut.Id != 0 {
|
|
|
228
|
+ u := &model.User{}
|
|
|
229
|
+ global.DB.Where("id = ?", ut.UserId).First(u)
|
|
|
230
|
+ return u
|
|
|
231
|
+ }
|
|
|
232
|
+
|
|
224
|
233
|
tx := global.DB.Begin()
|
|
225
|
|
- ut := &model.UserThird{
|
|
|
234
|
+ ut = &model.UserThird{
|
|
226
|
235
|
OpenId: uid,
|
|
227
|
236
|
ThirdName: thirdName,
|
|
228
|
237
|
ThirdType: thirdType,
|
|
229
|
238
|
}
|
|
230
|
|
- //global.DB.Where("open_id = ?", githubId).First(ut)
|
|
231
|
|
- //这种情况不应该出现,如果出现说明有bug
|
|
232
|
|
- //if ut.Id != 0 {
|
|
233
|
|
- // u := &model.User{}
|
|
234
|
|
- // global.DB.Where("id = ?", ut.UserId).First(u)
|
|
235
|
|
- // tx.Commit()
|
|
236
|
|
- // return u
|
|
237
|
|
- //}
|
|
238
|
239
|
|
|
239
|
240
|
username := us.GenerateUsernameByOauth(thirdName)
|
|
240
|
241
|
u := &model.User{
|
|
|
@@ -242,6 +243,10 @@ func (us *UserService) RegisterByOauth(thirdType, thirdName, uid string) *model.
|
|
242
|
243
|
GroupId: 1,
|
|
243
|
244
|
}
|
|
244
|
245
|
global.DB.Create(u)
|
|
|
246
|
+ if u.Id == 0 {
|
|
|
247
|
+ tx.Rollback()
|
|
|
248
|
+ return u
|
|
|
249
|
+ }
|
|
245
|
250
|
|
|
246
|
251
|
ut.UserId = u.Id
|
|
247
|
252
|
global.DB.Create(ut)
|