Пример #1
0
 /// <summary>
 /// 获取用户扩展信息
 /// </summary>
 /// <param name="userInfo">用户信息</param>
 /// <returns></returns>
 public static UserExtendBase GetUserExtend(UserInfo userInfo)
 {
     if (userInfo == null)
     {
         return(null);
     }
     if (userInfo.ExtendUserObject != null)
     {
         return(userInfo.ExtendUserObject);
     }
     if (userInfo.EmpId.HasValue)
     {
         List <EmpExtendInfo> empExtends = new List <EmpExtendInfo>();
         List <Guid>          companyIds = OrgMOperate.GetEmpCompanys(userInfo.EmpId.Value).Select(x => x.Id).ToList();
         if (companyIds.Count > 0)
         {
             foreach (Guid companyId in companyIds)
             {
                 OrgM_Dept            mainDept         = OrgMOperate.GetEmpMainDept(userInfo.EmpId.Value, companyId);
                 OrgM_Duty            mainDuty         = OrgMOperate.GetEmpMainDuty(userInfo.EmpId.Value, companyId);
                 List <OrgM_Dept>     partimeDepts     = OrgMOperate.GetEmpPartTimeDepts(userInfo.EmpId.Value, companyId);
                 List <OrgM_DeptDuty> partimePositions = OrgMOperate.GetPartTimePositions(userInfo.EmpId.Value, companyId);
                 empExtends.Add(new EmpExtendInfo()
                 {
                     CompanyId            = companyId,
                     DeptId               = mainDept != null ? mainDept.Id : (Guid?)null,
                     DeptName             = mainDept != null ? (string.IsNullOrEmpty(mainDept.Alias) ? mainDept.Name : mainDept.Alias) : string.Empty,
                     DutyId               = mainDuty != null ? mainDuty.Id : (Guid?)null,
                     DutyName             = mainDuty != null ? mainDuty.Name : string.Empty,
                     PartimeDeptIds       = partimeDepts != null && partimeDepts.Count > 0 ? partimeDepts.Select(x => x.Id).ToList() : null,
                     PartimeDeptNames     = partimeDepts != null && partimeDepts.Count > 0 ? partimeDepts.Select(x => x.Name).ToList() : null,
                     PartimePositionIds   = partimePositions != null && partimePositions.Count > 0 ? partimePositions.Select(x => x.Id).ToList() : null,
                     PartimePositionNames = partimePositions != null && partimePositions.Count > 0 ? partimePositions.Select(x => x.Name).ToList() : null
                 });
             }
         }
         else
         {
             OrgM_Dept            mainDept         = OrgMOperate.GetEmpMainDept(userInfo.EmpId.Value);
             OrgM_Duty            mainDuty         = OrgMOperate.GetEmpMainDuty(userInfo.EmpId.Value);
             List <OrgM_Dept>     partimeDepts     = OrgMOperate.GetEmpPartTimeDepts(userInfo.EmpId.Value);
             List <OrgM_DeptDuty> partimePositions = OrgMOperate.GetPartTimePositions(userInfo.EmpId.Value);
             empExtends.Add(new EmpExtendInfo()
             {
                 CompanyId            = null,
                 DeptId               = mainDept != null ? mainDept.Id : (Guid?)null,
                 DeptName             = mainDept != null ? (string.IsNullOrEmpty(mainDept.Alias) ? mainDept.Name : mainDept.Alias) : string.Empty,
                 DutyId               = mainDuty != null ? mainDuty.Id : (Guid?)null,
                 DutyName             = mainDuty != null ? mainDuty.Name : string.Empty,
                 PartimeDeptIds       = partimeDepts != null && partimeDepts.Count > 0 ? partimeDepts.Select(x => x.Id).ToList() : null,
                 PartimeDeptNames     = partimeDepts != null && partimeDepts.Count > 0 ? partimeDepts.Select(x => x.Name).ToList() : null,
                 PartimePositionIds   = partimePositions != null && partimePositions.Count > 0 ? partimePositions.Select(x => x.Id).ToList() : null,
                 PartimePositionNames = partimePositions != null && partimePositions.Count > 0 ? partimePositions.Select(x => x.Name).ToList() : null
             });
         }
         UserExtendInfo userExtendInfo = new UserExtendInfo()
         {
             EmpExtend = empExtends
         };
         List <Sys_UserRole> userRoles = PermissionOperate.GetAllUserRoles(x => x.Sys_RoleId != null && x.Sys_UserId == userInfo.UserId);
         if (userRoles.Count > 0)
         {
             userExtendInfo.RoleIds   = userRoles.Select(x => x.Sys_RoleId).ToList();
             userExtendInfo.RoleNames = userRoles.Select(x => x.Sys_RoleName).ToList();
         }
         return(userExtendInfo);
     }
     else
     {
         UserExtendInfo      userExtendInfo = new UserExtendInfo();
         List <Sys_UserRole> userRoles      = PermissionOperate.GetAllUserRoles(x => x.Sys_RoleId != null && x.Sys_UserId == userInfo.UserId);
         if (userRoles.Count > 0)
         {
             userExtendInfo.RoleIds   = userRoles.Select(x => x.Sys_RoleId).ToList();
             userExtendInfo.RoleNames = userRoles.Select(x => x.Sys_RoleName).ToList();
         }
         return(userExtendInfo);
     }
 }