作者 陈志颖

合并分支 'dev' 到 'test'

fix:修改游客密码登录



查看合并请求 !42
@@ -390,25 +390,12 @@ func CompaniesLogin(header *protocol.RequestHeader, request *protocolx.CenterCom @@ -390,25 +390,12 @@ func CompaniesLogin(header *protocol.RequestHeader, request *protocolx.CenterCom
390 // loginSvr 初始化 390 // loginSvr 初始化
391 _ = loginSvr.Init(request.Phone) 391 _ = loginSvr.Init(request.Phone)
392 392
393 - // 高管标志位初始化  
394 - _ = loginSvr.InitSenior(request.Phone)  
395 -  
396 - // 合伙人标志位初始化  
397 - _ = loginSvr.InitPartner(request.Phone)  
398 -  
399 - // 普通合伙人标志位  
400 - _ = loginSvr.InitNormal(request.Phone)  
401 - 393 + // 所有公司有效用户不存在、所有公司有效合伙人不存在、所有公司合伙人不存在
402 if len(loginSvr.Users) == 0 && len(loginSvr.PartnerInfo) == 0 && len(loginSvr.NormalPartnerInfo) == 0 { 394 if len(loginSvr.Users) == 0 && len(loginSvr.PartnerInfo) == 0 && len(loginSvr.NormalPartnerInfo) == 0 {
403 - err = protocol.NewErrWithMessage(10001) 395 + err = protocol.NewErrWithMessage(10001) // 用户不存在
404 return 396 return
405 } 397 }
406 398
407 - //if len(loginSvr.PartnerInfo) == 0 {  
408 - // err = protocol.NewErrWithMessage(10008)  
409 - // return  
410 - //}  
411 -  
412 switch request.GrantType { 399 switch request.GrantType {
413 case protocol.LoginByPassword: 400 case protocol.LoginByPassword:
414 if len(request.Password) == 0 { 401 if len(request.Password) == 0 {
@@ -416,9 +403,25 @@ func CompaniesLogin(header *protocol.RequestHeader, request *protocolx.CenterCom @@ -416,9 +403,25 @@ func CompaniesLogin(header *protocol.RequestHeader, request *protocolx.CenterCom
416 return 403 return
417 } 404 }
418 405
419 - if loginSvr.ManagerLogin(request.Phone, request.Password) != nil && loginSvr.PartnerLogin(request.Phone, request.Password) != nil { 406 + manageLoginErr := loginSvr.ManagerLogin(request.Phone, request.Password)
  407 + fmt.Print("用户登录:", manageLoginErr, "\n")
  408 + partnerLoginErr := loginSvr.PartnerLogin(request.Phone, request.Password)
  409 + fmt.Print("合伙人登录:", partnerLoginErr, "\n")
  410 +
  411 + if manageLoginErr != nil && partnerLoginErr != nil {
  412 + if len(loginSvr.PartnerInfo) == 0 { // 不存在有效用户
  413 + err = protocol.NewErrWithMessage(10008)
  414 + return
  415 + }
420 err = protocol.NewCustomMessage(1, "密码输入有误!") 416 err = protocol.NewCustomMessage(1, "密码输入有误!")
421 return 417 return
  418 + } else if manageLoginErr != nil && partnerLoginErr == nil {
  419 + if len(loginSvr.PartnerInfo) == 1 && len(loginSvr.NormalUsers) == 0 {
  420 + if loginSvr.PartnerInfo[0].CompanyId == int64(constant.DEFAULT_GUEST_COMPANY) {
  421 + err = protocol.NewCustomMessage(1, "密码输入有误!")
  422 + return
  423 + }
  424 + }
422 } 425 }
423 break 426 break
424 case protocol.LoginBySmsCode: 427 case protocol.LoginBySmsCode:
@@ -21,15 +21,18 @@ import ( @@ -21,15 +21,18 @@ import (
21 type PgLoginService struct { 21 type PgLoginService struct {
22 Phone string 22 Phone string
23 eda.EventCenterPublisher 23 eda.EventCenterPublisher
24 - PartnerInfo []*domain.PartnerInfo  
25 - NormalPartnerInfo []*domain.PartnerInfo  
26 - IsPartnerInfo []*domain.PartnerInfo  
27 - Users []*domain.Users  
28 - IsSenior []*domain.Users  
29 - transactionContext *transaction.TransactionContext 24 + PartnerInfo []*domain.PartnerInfo // 所有公司有效合伙人
  25 + GuestPartnerInfo []*domain.PartnerInfo // 游客公司合伙人
  26 + GuestPartnerInfoAvailable []*domain.PartnerInfo // 游客公司有效合伙人
  27 + NormalPartnerInfo []*domain.PartnerInfo // 所有公司合伙人
  28 + IsPartnerInfo []*domain.PartnerInfo // 真实公司有效合伙人
  29 + Users []*domain.Users // 所有公司有效用户
  30 + NormalUsers []*domain.Users // 所有公司用户
  31 + IsSenior []*domain.Users // 所有公司有效高管
  32 + transactionContext *transaction.TransactionContext
30 // 标识:登录的账号信息是否有可用的公司, true:有 false:没有 33 // 标识:登录的账号信息是否有可用的公司, true:有 false:没有
31 - HasAvailableCompany bool  
32 - HasAvailableManagerCompany bool 34 + HasAvailableCompany bool // 是否有可访问的合伙公司
  35 + HasAvailableManagerCompany bool // 是否有可访问的高管公司
33 } 36 }
34 37
35 func (svr *PgLoginService) Init(phone string) (err error) { 38 func (svr *PgLoginService) Init(phone string) (err error) {
@@ -40,8 +43,25 @@ func (svr *PgLoginService) Init(phone string) (err error) { @@ -40,8 +43,25 @@ func (svr *PgLoginService) Init(phone string) (err error) {
40 43
41 svr.Phone = phone 44 svr.Phone = phone
42 45
  46 + // 所有公司合伙人
  47 + _, svr.NormalPartnerInfo, err = PartnerInfoService.Find(map[string]interface{}{"account": phone, "sortByCreateTime": "ASC"})
  48 + // 所有公司有效合伙人
43 _, svr.PartnerInfo, err = PartnerInfoService.Find(map[string]interface{}{"account": phone, "status": 1, "sortByCreateTime": "ASC"}) 49 _, svr.PartnerInfo, err = PartnerInfoService.Find(map[string]interface{}{"account": phone, "status": 1, "sortByCreateTime": "ASC"})
  50 +
  51 + // 所有公司用户
  52 + _, svr.NormalUsers, err = UsersRepository.Find(map[string]interface{}{"phone": phone, "sortByCreateTime": "ASC", "deleteAtIsNull": true})
  53 + // 所有公司有效用户
44 _, svr.Users, err = UsersRepository.Find(map[string]interface{}{"phone": phone, "status": 1, "sortByCreateTime": "ASC", "deleteAtIsNull": true}) 54 _, svr.Users, err = UsersRepository.Find(map[string]interface{}{"phone": phone, "status": 1, "sortByCreateTime": "ASC", "deleteAtIsNull": true})
  55 + // 所有公司有效高管
  56 + _, svr.IsSenior, err = UsersRepository.Find(map[string]interface{}{"phone": phone, "status": 1, "sortByCreateTime": "ASC", "deleteAtIsNull": true, "isSenior": 1})
  57 +
  58 + // 真实公司有效合伙人
  59 + _, svr.IsPartnerInfo, err = PartnerInfoService.Find(map[string]interface{}{"account": phone, "status": 1, "sortByCreateTime": "ASC", "isNot": constant.DEFAULT_GUEST_COMPANY})
  60 +
  61 + // 游客公司合伙人
  62 + _, svr.IsPartnerInfo, err = PartnerInfoService.Find(map[string]interface{}{"account": phone, "sortByCreateTime": "ASC", "companyId": constant.DEFAULT_GUEST_COMPANY})
  63 + // 游客公司有效合伙人
  64 + _, svr.IsPartnerInfo, err = PartnerInfoService.Find(map[string]interface{}{"account": phone, "status": 1, "sortByCreateTime": "ASC", "companyId": constant.DEFAULT_GUEST_COMPANY})
45 65
46 return nil 66 return nil
47 } 67 }
@@ -140,7 +160,7 @@ func (svr *PgLoginService) PartnerLogin(phone string, password string) (err erro @@ -140,7 +160,7 @@ func (svr *PgLoginService) PartnerLogin(phone string, password string) (err erro
140 return 160 return
141 } 161 }
142 if !strings.EqualFold(svr.PartnerInfo[0].Password, password) { 162 if !strings.EqualFold(svr.PartnerInfo[0].Password, password) {
143 - err = protocol.NewCustomMessage(1, "密码输入误!") 163 + err = protocol.NewCustomMessage(1, "密码输入误!")
144 return 164 return
145 } 165 }
146 return 166 return
@@ -479,30 +499,30 @@ func (svr *PgLoginService) RegistryUser(phone string) error { @@ -479,30 +499,30 @@ func (svr *PgLoginService) RegistryUser(phone string) error {
479 fmt.Print("用户高管?", isUserSenior, "\n") 499 fmt.Print("用户高管?", isUserSenior, "\n")
480 500
481 // 用户在正常公司存在且无效或者不存在、合伙人在正常公司存在且无效或者不存在、合伙人在游客公司存在且无效,更新游客公司合伙人状态 501 // 用户在正常公司存在且无效或者不存在、合伙人在正常公司存在且无效或者不存在、合伙人在游客公司存在且无效,更新游客公司合伙人状态
482 - if (isUser && !isUserAvailable || !isUser) && (isPartner && !isPartnerAvailable || !isPartner) && (isGuestPartner && !isGuestPartnerAvailable) {  
483 - _, err := svr.transactionContext.PgTx.Model(&models.PartnerInfo{  
484 - CompanyId: int64(constant.DEFAULT_GUEST_COMPANY),  
485 - PartnerName: phone,  
486 - Account: phone,  
487 - Password: "7c4a8d09ca3762af61e59520943dc26494f8941b",  
488 - PartnerCategory: 1,  
489 - RegionInfo: &domain.RegionInfo{  
490 - RegionName: "客户区域",  
491 - RegionId: 0,  
492 - },  
493 - Status: 1,  
494 - CooperateTime: time.Now(),  
495 - CreateAt: time.Now(),  
496 - UpdateAt: time.Now(),  
497 - PartnerCategoryInfos: []*models.PartnerCategoryInfo{&models.PartnerCategoryInfo{Id: 1, Code: phone}},  
498 - Salesman: []*domain.Salesman{&domain.Salesman{Name: phone, Telephone: phone}}}).  
499 - Where("partner_info.account = ?", phone).  
500 - Where("partner_info.company_id = ?", constant.DEFAULT_GUEST_COMPANY).  
501 - Update()  
502 - if err != nil {  
503 - return err  
504 - }  
505 - } 502 + //if (isUser && !isUserAvailable || !isUser) && (isPartner && !isPartnerAvailable || !isPartner) && (isGuestPartner && !isGuestPartnerAvailable) {
  503 + // _, err := svr.transactionContext.PgTx.Model(&models.PartnerInfo{
  504 + // CompanyId: int64(constant.DEFAULT_GUEST_COMPANY),
  505 + // PartnerName: phone,
  506 + // Account: phone,
  507 + // Password: "7c4a8d09ca3762af61e59520943dc26494f8941b",
  508 + // PartnerCategory: 1,
  509 + // RegionInfo: &domain.RegionInfo{
  510 + // RegionName: "客户区域",
  511 + // RegionId: 0,
  512 + // },
  513 + // Status: 1,
  514 + // CooperateTime: time.Now(),
  515 + // CreateAt: time.Now(),
  516 + // UpdateAt: time.Now(),
  517 + // PartnerCategoryInfos: []*models.PartnerCategoryInfo{&models.PartnerCategoryInfo{Id: 1, Code: phone}},
  518 + // Salesman: []*domain.Salesman{&domain.Salesman{Name: phone, Telephone: phone}}}).
  519 + // Where("partner_info.account = ?", phone).
  520 + // Where("partner_info.company_id = ?", constant.DEFAULT_GUEST_COMPANY).
  521 + // Update()
  522 + // if err != nil {
  523 + // return err
  524 + // }
  525 + //}
506 526
507 // 合伙人存在、用户存在、是高管(高管合伙人) 527 // 合伙人存在、用户存在、是高管(高管合伙人)
508 // 合伙人不存在、用户存在、是高管(高管)|| partnerInfo == nil && user != nil && senior != nil 528 // 合伙人不存在、用户存在、是高管(高管)|| partnerInfo == nil && user != nil && senior != nil
@@ -511,6 +531,9 @@ func (svr *PgLoginService) RegistryUser(phone string) error { @@ -511,6 +531,9 @@ func (svr *PgLoginService) RegistryUser(phone string) error {
511 //if partnerInfo != nil && user != nil && senior != nil || partnerInfo != nil && user != nil && senior == nil || guestInfo != nil { 531 //if partnerInfo != nil && user != nil && senior != nil || partnerInfo != nil && user != nil && senior == nil || guestInfo != nil {
512 // return nil 532 // return nil
513 //} 533 //}
  534 + if guestInfo != nil {
  535 + return nil
  536 + }
514 537
515 // 用户在正常公司存在且无效或者存在非高管或者不存在、合伙人在正常公司存在且无效或者不存在、合伙人在游客公司不存在、注册合伙人到游客公司 538 // 用户在正常公司存在且无效或者存在非高管或者不存在、合伙人在正常公司存在且无效或者不存在、合伙人在游客公司不存在、注册合伙人到游客公司
516 if !isGuestPartner && (isUser && !isUserAvailable || isUser && !isUserSenior || !isUser) && (isPartner && !isPartnerAvailable || !isPartner) { 539 if !isGuestPartner && (isUser && !isUserAvailable || isUser && !isUserSenior || !isUser) && (isPartner && !isPartnerAvailable || !isPartner) {