作者 yangfu

修改: 登录提示修改

@@ -4,9 +4,11 @@ import ( @@ -4,9 +4,11 @@ import (
4 "fmt" 4 "fmt"
5 "github.com/tiptok/gocomm/xa/eda" 5 "github.com/tiptok/gocomm/xa/eda"
6 "gitlab.fjmaimaimai.com/mmm-go/partner/pkg/application/factory" 6 "gitlab.fjmaimaimai.com/mmm-go/partner/pkg/application/factory"
  7 + "gitlab.fjmaimaimai.com/mmm-go/partner/pkg/constant"
7 "gitlab.fjmaimaimai.com/mmm-go/partner/pkg/domain" 8 "gitlab.fjmaimaimai.com/mmm-go/partner/pkg/domain"
8 "gitlab.fjmaimaimai.com/mmm-go/partner/pkg/domain/event" 9 "gitlab.fjmaimaimai.com/mmm-go/partner/pkg/domain/event"
9 "gitlab.fjmaimaimai.com/mmm-go/partner/pkg/infrastructure/domain_service" 10 "gitlab.fjmaimaimai.com/mmm-go/partner/pkg/infrastructure/domain_service"
  11 + http_gateway "gitlab.fjmaimaimai.com/mmm-go/partner/pkg/infrastructure/svr"
10 "gitlab.fjmaimaimai.com/mmm-go/partner/pkg/infrastructure/utils" 12 "gitlab.fjmaimaimai.com/mmm-go/partner/pkg/infrastructure/utils"
11 "gitlab.fjmaimaimai.com/mmm-go/partner/pkg/log" 13 "gitlab.fjmaimaimai.com/mmm-go/partner/pkg/log"
12 "gitlab.fjmaimaimai.com/mmm-go/partner/pkg/protocol" 14 "gitlab.fjmaimaimai.com/mmm-go/partner/pkg/protocol"
@@ -315,10 +317,10 @@ func CenterCompanys(header *protocol.RequestHeader, request *protocolx.CenterCom @@ -315,10 +317,10 @@ func CenterCompanys(header *protocol.RequestHeader, request *protocolx.CenterCom
315 rsp.Partner, _ = loginSvr.PartnerStaticInfo() 317 rsp.Partner, _ = loginSvr.PartnerStaticInfo()
316 rsp.Manager, _ = loginSvr.ManagerStaticInfo() 318 rsp.Manager, _ = loginSvr.ManagerStaticInfo()
317 //没有有效人的时候 319 //没有有效人的时候
318 - //if rsp.Partner ==nil && rsp.Manager ==nil{  
319 - // err = protocol.NewErrWithMessage(2002) //账号禁用  
320 - // return  
321 - //} 320 + if !loginSvr.AvailableCompany {
  321 + err = protocol.NewErrWithMessage(10008) //账号禁用
  322 + return
  323 + }
322 324
323 var nickName string 325 var nickName string
324 if len(loginSvr.Users) > 0 { 326 if len(loginSvr.Users) > 0 {
@@ -364,6 +366,11 @@ func Companys(header *protocol.RequestHeader, request *protocolx.CompanysRequest @@ -364,6 +366,11 @@ func Companys(header *protocol.RequestHeader, request *protocolx.CompanysRequest
364 loginSvr.Init(claim.Phone) 366 loginSvr.Init(claim.Phone)
365 rsp.Partner, _ = loginSvr.PartnerStaticInfo() 367 rsp.Partner, _ = loginSvr.PartnerStaticInfo()
366 rsp.Manager, _ = loginSvr.ManagerStaticInfo() 368 rsp.Manager, _ = loginSvr.ManagerStaticInfo()
  369 + //没有有效人的时候
  370 + if !loginSvr.AvailableCompany {
  371 + err = protocol.NewErrWithMessage(4140, err) //账号禁用
  372 + return
  373 + }
367 err = transactionContext.CommitTransaction() 374 err = transactionContext.CommitTransaction()
368 return 375 return
369 } 376 }
@@ -374,7 +381,9 @@ func LoginV2(header *protocol.RequestHeader, request *protocol.LoginRequestV2) ( @@ -374,7 +381,9 @@ func LoginV2(header *protocol.RequestHeader, request *protocol.LoginRequestV2) (
374 transactionContext, _ = factory.CreateTransactionContext(nil) 381 transactionContext, _ = factory.CreateTransactionContext(nil)
375 PartnerInfoRepository, _ = factory.CreatePartnerInfoRepositoryIn(transactionContext) 382 PartnerInfoRepository, _ = factory.CreatePartnerInfoRepositoryIn(transactionContext)
376 UsersRepository, _ = factory.CreateUsersRepository(transactionContext) 383 UsersRepository, _ = factory.CreateUsersRepository(transactionContext)
  384 + CompanyRepository, _ = factory.CreateCompanyRepository(transactionContext)
377 userId int64 385 userId int64
  386 + adminApiGateway = http_gateway.NewHttplibBusinessAdminApiServiceGateway()
378 ) 387 )
379 rsp = &protocol.LoginResponse{} 388 rsp = &protocol.LoginResponse{}
380 if err = transactionContext.StartTransaction(); err != nil { 389 if err = transactionContext.StartTransaction(); err != nil {
@@ -387,15 +396,35 @@ func LoginV2(header *protocol.RequestHeader, request *protocol.LoginRequestV2) ( @@ -387,15 +396,35 @@ func LoginV2(header *protocol.RequestHeader, request *protocol.LoginRequestV2) (
387 err = protocol.NewErrWithMessage(4140, err) 396 err = protocol.NewErrWithMessage(4140, err)
388 return 397 return
389 } 398 }
  399 + if company, e := CompanyRepository.FindOne(map[string]interface{}{"id": request.Cid, "enable": 1}); e != nil || company == nil {
  400 + err = protocol.NewErrWithMessage(10007, err)
  401 + return
  402 + }
390 switch request.IdType { 403 switch request.IdType {
391 case int(protocolx.AdminTypePartner): 404 case int(protocolx.AdminTypePartner):
392 - if p, e := PartnerInfoRepository.FindOne(map[string]interface{}{"account": claim.Phone, "companyId": request.Cid, "status": 1}); e == nil { 405 + if p, e := PartnerInfoRepository.FindOne(map[string]interface{}{"account": claim.Phone, "companyId": request.Cid}); e == nil {
393 userId = p.Id 406 userId = p.Id
  407 + if !p.IsEnable() {
  408 + err = protocol.NewErrWithMessage(10006, err) //当前账号已被禁用
  409 + return
  410 + }
394 } 411 }
395 break 412 break
396 case int(protocolx.AdminTypeManager): 413 case int(protocolx.AdminTypeManager):
397 - if p, e := UsersRepository.FindOne(map[string]interface{}{"phone": claim.Phone, "companyId": request.Cid, "status": 1}); e == nil { 414 + if p, e := UsersRepository.FindOne(map[string]interface{}{"phone": claim.Phone, "companyId": request.Cid}); e == nil {
398 userId = p.Id 415 userId = p.Id
  416 + if !p.IsEnable() {
  417 + err = protocol.NewErrWithMessage(10006, err) //当前账号已被禁用
  418 + return
  419 + }
  420 + }
  421 + //校验模块权限
  422 + if userId != 0 {
  423 + if code, e := adminApiGateway.UserAuth(userId, constant.BUSINESS_ADMIN_PLATFORM_ID); e != nil || code != 0 {
  424 + log.Debug("【检查权限】", userId, "【公司】", request.Cid, "【错误】:", code, e.Error())
  425 + err = protocol.NewErrWithMessage(10008, err) // 抱歉,企业管理员未帮您开通权限
  426 + return
  427 + }
399 } 428 }
400 break 429 break
401 default: 430 default:
@@ -403,7 +432,7 @@ func LoginV2(header *protocol.RequestHeader, request *protocol.LoginRequestV2) ( @@ -403,7 +432,7 @@ func LoginV2(header *protocol.RequestHeader, request *protocol.LoginRequestV2) (
403 return 432 return
404 } 433 }
405 if userId == 0 { 434 if userId == 0 {
406 - err = protocol.NewErrWithMessage(502, err) //账号不存在 435 + err = protocol.NewErrWithMessage(10001, err) //账号不存在
407 return 436 return
408 } 437 }
409 //根据simnum + cid 438 //根据simnum + cid
@@ -66,6 +66,11 @@ type UsersRepository interface { @@ -66,6 +66,11 @@ type UsersRepository interface {
66 Find(queryOptions map[string]interface{}) (int64, []*Users, error) 66 Find(queryOptions map[string]interface{}) (int64, []*Users, error)
67 } 67 }
68 68
  69 +//账号是否有效
  70 +func (m *Users) IsEnable() bool {
  71 + return m.Status == 1
  72 +}
  73 +
69 func (m *Users) Identify() interface{} { 74 func (m *Users) Identify() interface{} {
70 if m.Id == 0 { 75 if m.Id == 0 {
71 return nil 76 return nil
@@ -23,28 +23,27 @@ func NewPgAuthService(ctx *transaction.TransactionContext) *PgAuthService { @@ -23,28 +23,27 @@ func NewPgAuthService(ctx *transaction.TransactionContext) *PgAuthService {
23 func (s *PgAuthService) ChangeUserPhone(userId int64, newPhone, oldPhone string) (err error) { 23 func (s *PgAuthService) ChangeUserPhone(userId int64, newPhone, oldPhone string) (err error) {
24 errPartner := s.partner.ChangeUserPhone(userId, newPhone, oldPhone) 24 errPartner := s.partner.ChangeUserPhone(userId, newPhone, oldPhone)
25 errManager := s.manager.ChangeUserPhone(userId, newPhone, oldPhone) 25 errManager := s.manager.ChangeUserPhone(userId, newPhone, oldPhone)
26 - if errPartner != nil && errManager != nil {  
27 - log.Error("partner:", errPartner, "mannager:", errManager)  
28 - err = errPartner  
29 - return  
30 - }  
31 - return 26 + return errResolve(errPartner, errManager)
32 } 27 }
33 func (s *PgAuthService) ChangeUserPassword(userId int64, newPwd, oldPwd, phone string) (err error) { 28 func (s *PgAuthService) ChangeUserPassword(userId int64, newPwd, oldPwd, phone string) (err error) {
34 errPartner := s.partner.ChangeUserPassword(userId, newPwd, oldPwd, phone) 29 errPartner := s.partner.ChangeUserPassword(userId, newPwd, oldPwd, phone)
35 errManager := s.manager.ChangeUserPassword(userId, newPwd, oldPwd, phone) 30 errManager := s.manager.ChangeUserPassword(userId, newPwd, oldPwd, phone)
36 - if errPartner != nil && errManager != nil {  
37 - log.Error(errPartner, errManager)  
38 - err = errPartner  
39 - return  
40 - }  
41 - return 31 + return errResolve(errPartner, errManager)
42 } 32 }
43 func (s *PgAuthService) ResetUserPassword(userId int64, phone, password string) (err error) { 33 func (s *PgAuthService) ResetUserPassword(userId int64, phone, password string) (err error) {
44 errPartner := s.partner.ResetUserPassword(userId, phone, password) 34 errPartner := s.partner.ResetUserPassword(userId, phone, password)
45 errManager := s.manager.ResetUserPassword(userId, phone, password) 35 errManager := s.manager.ResetUserPassword(userId, phone, password)
  36 + return errResolve(errPartner, errManager)
  37 +}
  38 +
  39 +func errResolve(errPartner, errManager error) (err error) {
  40 + if errPartner != nil {
  41 + log.Error("partner:", errPartner)
  42 + }
  43 + if errManager != nil {
  44 + log.Error("mannager:", errManager)
  45 + }
46 if errPartner != nil && errManager != nil { 46 if errPartner != nil && errManager != nil {
47 - log.Error(errPartner, errManager)  
48 err = errPartner 47 err = errPartner
49 return 48 return
50 } 49 }
@@ -21,6 +21,7 @@ type PgLoginService struct { @@ -21,6 +21,7 @@ type PgLoginService struct {
21 PartnerInfo []*domain.PartnerInfo 21 PartnerInfo []*domain.PartnerInfo
22 Users []*domain.Users 22 Users []*domain.Users
23 transactionContext *transaction.TransactionContext 23 transactionContext *transaction.TransactionContext
  24 + AvailableCompany bool
24 } 25 }
25 26
26 func (svr *PgLoginService) Init(phone string) (err error) { 27 func (svr *PgLoginService) Init(phone string) (err error) {
@@ -142,6 +143,9 @@ func (svr *PgLoginService) PartnerStaticInfo() (interface{}, error) { @@ -142,6 +143,9 @@ func (svr *PgLoginService) PartnerStaticInfo() (interface{}, error) {
142 } 143 }
143 companys = append(companys, item) 144 companys = append(companys, item)
144 } 145 }
  146 + if len(companys) > 0 {
  147 + svr.AvailableCompany = true
  148 + }
145 149
146 response["companys"] = companys 150 response["companys"] = companys
147 return response, nil 151 return response, nil
@@ -170,7 +174,7 @@ func (svr *PgLoginService) ManagerStaticInfo() (interface{}, error) { @@ -170,7 +174,7 @@ func (svr *PgLoginService) ManagerStaticInfo() (interface{}, error) {
170 for i := range companyList { 174 for i := range companyList {
171 c := companyList[i] 175 c := companyList[i]
172 176
173 - if constant.POSTGRESQL_DB_NAME != "partner_dev" { 177 + if constant.POSTGRESQL_DB_NAME != "partner_dev1" {
174 //通过企业平台 校验模块权限 178 //通过企业平台 校验模块权限
175 var user *domain.Users 179 var user *domain.Users
176 for j := range svr.Users { 180 for j := range svr.Users {
@@ -179,6 +183,11 @@ func (svr *PgLoginService) ManagerStaticInfo() (interface{}, error) { @@ -179,6 +183,11 @@ func (svr *PgLoginService) ManagerStaticInfo() (interface{}, error) {
179 break 183 break
180 } 184 }
181 } 185 }
  186 + // 删除跳过
  187 + if user.DeleteAt.Unix() > 0 {
  188 + log.Debug("【检查权限】", svr.Phone, "【公司】", c.Id, user.Id, 0, "已删除,跳过")
  189 + continue
  190 + }
182 if user != nil { 191 if user != nil {
183 if code, e := adminApiGateway.UserAuth(user.Id, constant.BUSINESS_ADMIN_PLATFORM_ID); e != nil || code != 0 { 192 if code, e := adminApiGateway.UserAuth(user.Id, constant.BUSINESS_ADMIN_PLATFORM_ID); e != nil || code != 0 {
184 log.Debug("【检查权限】", svr.Phone, "【公司】", c.Id, user.Id, code, e.Error()) 193 log.Debug("【检查权限】", svr.Phone, "【公司】", c.Id, user.Id, code, e.Error())
@@ -191,6 +200,9 @@ func (svr *PgLoginService) ManagerStaticInfo() (interface{}, error) { @@ -191,6 +200,9 @@ func (svr *PgLoginService) ManagerStaticInfo() (interface{}, error) {
191 item := newCompanyBase(c) 200 item := newCompanyBase(c)
192 companys = append(companys, item) 201 companys = append(companys, item)
193 } 202 }
  203 + if len(companys) > 0 {
  204 + svr.AvailableCompany = true
  205 + }
194 206
195 response["companys"] = companys 207 response["companys"] = companys
196 return response, nil 208 return response, nil
@@ -300,5 +312,6 @@ type joinWay struct { @@ -300,5 +312,6 @@ type joinWay struct {
300 func NewPgLoginService(ctx *transaction.TransactionContext) *PgLoginService { 312 func NewPgLoginService(ctx *transaction.TransactionContext) *PgLoginService {
301 return &PgLoginService{ 313 return &PgLoginService{
302 transactionContext: ctx, 314 transactionContext: ctx,
  315 + AvailableCompany: false,
303 } 316 }
304 } 317 }
@@ -26,4 +26,18 @@ var errmessge ErrorMap = map[int]string{ @@ -26,4 +26,18 @@ var errmessge ErrorMap = map[int]string{
26 4140: "refreshToken过期,需要重新登录授权", 26 4140: "refreshToken过期,需要重新登录授权",
27 4141: "accessToken过期或无效,需要进行重新获取令牌", 27 4141: "accessToken过期或无效,需要进行重新获取令牌",
28 4142: "Uuid已存在,请求失败", 28 4142: "Uuid已存在,请求失败",
  29 +
  30 + // 平台级错误
  31 + 10001: "用户不存在",
  32 + 10002: "登录凭证已过期,请重新登陆",
  33 + 10003: "验证码不能为空",
  34 + 10004: "登录凭证不能为空",
  35 + 10005: "密码不能为空",
  36 +
  37 + 10006: "当前账号已被禁用",
  38 + 10007: "该企业已被禁用,无法正常访问!重新选择其他企业进入,或退出登录",
  39 + 10008: "抱歉,企业管理员未帮您开通权限。如需访问,请联系企业管理员",
  40 +
  41 + 10009: "密码错误",
  42 + 10010: " 验证码错误",
29 } 43 }