作者 tangxvhui

更新获取个人信息

  1 +package adapter
  2 +
  3 +type MeInfo struct {
  4 + UserId int64 `json:"userId"` //用户名称
  5 + CompanyId int64 `json:"companyId"` //公司id
  6 + CompanyName string `json:"companyName"` //公司名称
  7 + Phone string `json:"phone"` // 手机号
  8 + Name string `json:"name"` // 员工名称
  9 + IsHrbp bool `json:"isHrbp"` //是否 是hrbp
  10 + IsParent bool `json:"isParent"` //是否 是上级
  11 +}
  1 +package command
  2 +
  3 +type GetMeInfo struct {
  4 + UserId int64 `json:"-"`
  5 + CompanyId int64 `json:"-"`
  6 +}
@@ -2,6 +2,7 @@ package service @@ -2,6 +2,7 @@ package service
2 2
3 import ( 3 import (
4 "github.com/linmadan/egglib-go/core/application" 4 "github.com/linmadan/egglib-go/core/application"
  5 + "gitlab.fjmaimaimai.com/allied-creation/performance/pkg/application/auth/adapter"
5 "gitlab.fjmaimaimai.com/allied-creation/performance/pkg/application/auth/command" 6 "gitlab.fjmaimaimai.com/allied-creation/performance/pkg/application/auth/command"
6 "gitlab.fjmaimaimai.com/allied-creation/performance/pkg/application/factory" 7 "gitlab.fjmaimaimai.com/allied-creation/performance/pkg/application/factory"
7 "gitlab.fjmaimaimai.com/allied-creation/performance/pkg/constant" 8 "gitlab.fjmaimaimai.com/allied-creation/performance/pkg/constant"
@@ -156,3 +157,76 @@ func (service *AuthService) MobileLogin(param *command.MobileLoginCommand) (map[ @@ -156,3 +157,76 @@ func (service *AuthService) MobileLogin(param *command.MobileLoginCommand) (map[
156 } 157 }
157 return result, nil 158 return result, nil
158 } 159 }
  160 +
  161 +// 获取我的
  162 +func (service *AuthService) MeInfo(param *command.GetMeInfo) (*adapter.MeInfo, error) {
  163 +
  164 + transactionContext, err := factory.CreateTransactionContext(nil)
  165 + if err != nil {
  166 + return nil, application.ThrowError(application.TRANSACTION_ERROR, err.Error())
  167 + }
  168 + if errStart := transactionContext.StartTransaction(); errStart != nil {
  169 + return nil, application.ThrowError(application.TRANSACTION_ERROR, errStart.Error())
  170 + }
  171 + defer func() {
  172 + _ = transactionContext.RollbackTransaction()
  173 + }()
  174 + userRepository := factory.CreateUserRepository(map[string]interface{}{"transactionContext": transactionContext})
  175 + companyRepository := factory.CreateCompanyRepository(map[string]interface{}{"transactionContext": transactionContext})
  176 + roleRepo := factory.CreateRoleRepository(map[string]interface{}{"transactionContext": transactionContext})
  177 + roleUserRepo := factory.CreateRoleUserRepository(map[string]interface{}{"transactionContext": transactionContext})
  178 + userData, err := userRepository.FindOne(map[string]interface{}{
  179 + "id": param.UserId,
  180 + })
  181 + if err != nil {
  182 + return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, "获取员工数据"+err.Error())
  183 + }
  184 + _, parentUser, err := userRepository.Find(map[string]interface{}{
  185 + "parentId": userData.Id,
  186 + "limit": 1,
  187 + })
  188 + if err != nil {
  189 + return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, "获取员工数据"+err.Error())
  190 + }
  191 + companyData, err := companyRepository.FindOne(map[string]interface{}{
  192 + "id": param.CompanyId,
  193 + })
  194 + if err != nil {
  195 + return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, "获取公司数据"+err.Error())
  196 + }
  197 + _, roleList, err := roleRepo.Find(map[string]interface{}{"type": domain.RoleTypeSystem, "companyId": param.CompanyId})
  198 + if err != nil {
  199 + return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, "获取角色信息列表"+err.Error())
  200 + }
  201 + _, userRoleList, err := roleUserRepo.Find(map[string]interface{}{"companyId": param.CompanyId, "userId": param.UserId})
  202 + if err != nil {
  203 + return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, "获取用户的角色信息列表"+err.Error())
  204 + }
  205 + // 拥有HRBP权限
  206 + isHrbp := false
  207 +loop:
  208 + for _, v := range userRoleList {
  209 + for _, v2 := range roleList {
  210 + if v.RoleId == v2.Id {
  211 + isHrbp = true
  212 + break loop
  213 + }
  214 + }
  215 + }
  216 + if err := transactionContext.CommitTransaction(); err != nil {
  217 + return nil, application.ThrowError(application.TRANSACTION_ERROR, err.Error())
  218 + }
  219 + info := adapter.MeInfo{
  220 + UserId: userData.Id,
  221 + CompanyId: companyData.Id,
  222 + CompanyName: companyData.Name,
  223 + Phone: userData.Account,
  224 + Name: userData.Name,
  225 + IsHrbp: isHrbp,
  226 + IsParent: false,
  227 + }
  228 + if len(parentUser) > 0 {
  229 + info.IsParent = true
  230 + }
  231 + return &info, nil
  232 +}
@@ -20,11 +20,16 @@ func (controller *AuthController) Login() { @@ -20,11 +20,16 @@ func (controller *AuthController) Login() {
20 controller.Response(resp, err) 20 controller.Response(resp, err)
21 } 21 }
22 22
  23 +// 获取个人信息
23 func (controller *AuthController) User() { 24 func (controller *AuthController) User() {
24 userAuth := controller.Ctx.Input.GetData(domain.UserAuth{}).(*domain.UserAuth) 25 userAuth := controller.Ctx.Input.GetData(domain.UserAuth{}).(*domain.UserAuth)
25 - controller.Response(map[string]interface{}{  
26 - "user": userAuth,  
27 - }, nil) 26 + authService := &service.AuthService{}
  27 + param := &command.GetMeInfo{
  28 + UserId: userAuth.UserId,
  29 + CompanyId: userAuth.CompanyId,
  30 + }
  31 + resp, err := authService.MeInfo(param)
  32 + controller.Response(resp, err)
28 } 33 }
29 34
30 // Login 手机端登录 35 // Login 手机端登录