...
|
...
|
@@ -2,6 +2,7 @@ package service |
|
|
|
|
|
import (
|
|
|
"github.com/linmadan/egglib-go/core/application"
|
|
|
"gitlab.fjmaimaimai.com/allied-creation/performance/pkg/application/auth/adapter"
|
|
|
"gitlab.fjmaimaimai.com/allied-creation/performance/pkg/application/auth/command"
|
|
|
"gitlab.fjmaimaimai.com/allied-creation/performance/pkg/application/factory"
|
|
|
"gitlab.fjmaimaimai.com/allied-creation/performance/pkg/constant"
|
...
|
...
|
@@ -156,3 +157,76 @@ func (service *AuthService) MobileLogin(param *command.MobileLoginCommand) (map[ |
|
|
}
|
|
|
return result, nil
|
|
|
}
|
|
|
|
|
|
// 获取我的
|
|
|
func (service *AuthService) MeInfo(param *command.GetMeInfo) (*adapter.MeInfo, error) {
|
|
|
|
|
|
transactionContext, err := factory.CreateTransactionContext(nil)
|
|
|
if err != nil {
|
|
|
return nil, application.ThrowError(application.TRANSACTION_ERROR, err.Error())
|
|
|
}
|
|
|
if errStart := transactionContext.StartTransaction(); errStart != nil {
|
|
|
return nil, application.ThrowError(application.TRANSACTION_ERROR, errStart.Error())
|
|
|
}
|
|
|
defer func() {
|
|
|
_ = transactionContext.RollbackTransaction()
|
|
|
}()
|
|
|
userRepository := factory.CreateUserRepository(map[string]interface{}{"transactionContext": transactionContext})
|
|
|
companyRepository := factory.CreateCompanyRepository(map[string]interface{}{"transactionContext": transactionContext})
|
|
|
roleRepo := factory.CreateRoleRepository(map[string]interface{}{"transactionContext": transactionContext})
|
|
|
roleUserRepo := factory.CreateRoleUserRepository(map[string]interface{}{"transactionContext": transactionContext})
|
|
|
userData, err := userRepository.FindOne(map[string]interface{}{
|
|
|
"id": param.UserId,
|
|
|
})
|
|
|
if err != nil {
|
|
|
return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, "获取员工数据"+err.Error())
|
|
|
}
|
|
|
_, parentUser, err := userRepository.Find(map[string]interface{}{
|
|
|
"parentId": userData.Id,
|
|
|
"limit": 1,
|
|
|
})
|
|
|
if err != nil {
|
|
|
return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, "获取员工数据"+err.Error())
|
|
|
}
|
|
|
companyData, err := companyRepository.FindOne(map[string]interface{}{
|
|
|
"id": param.CompanyId,
|
|
|
})
|
|
|
if err != nil {
|
|
|
return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, "获取公司数据"+err.Error())
|
|
|
}
|
|
|
_, roleList, err := roleRepo.Find(map[string]interface{}{"type": domain.RoleTypeSystem, "companyId": param.CompanyId})
|
|
|
if err != nil {
|
|
|
return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, "获取角色信息列表"+err.Error())
|
|
|
}
|
|
|
_, userRoleList, err := roleUserRepo.Find(map[string]interface{}{"companyId": param.CompanyId, "userId": param.UserId})
|
|
|
if err != nil {
|
|
|
return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, "获取用户的角色信息列表"+err.Error())
|
|
|
}
|
|
|
// 拥有HRBP权限
|
|
|
isHrbp := false
|
|
|
loop:
|
|
|
for _, v := range userRoleList {
|
|
|
for _, v2 := range roleList {
|
|
|
if v.RoleId == v2.Id {
|
|
|
isHrbp = true
|
|
|
break loop
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
if err := transactionContext.CommitTransaction(); err != nil {
|
|
|
return nil, application.ThrowError(application.TRANSACTION_ERROR, err.Error())
|
|
|
}
|
|
|
info := adapter.MeInfo{
|
|
|
UserId: userData.Id,
|
|
|
CompanyId: companyData.Id,
|
|
|
CompanyName: companyData.Name,
|
|
|
Phone: userData.Account,
|
|
|
Name: userData.Name,
|
|
|
IsHrbp: isHrbp,
|
|
|
IsParent: false,
|
|
|
}
|
|
|
if len(parentUser) > 0 {
|
|
|
info.IsParent = true
|
|
|
}
|
|
|
return &info, nil
|
|
|
} |
...
|
...
|
|