Example #1
0
 /// <summary>
 /// 扮演用户
 /// </summary>
 /// <param name="id">用户主键</param>
 /// <returns>用户类</returns>
 public BaseUserInfo Impersonation(string id, out string statusCode)
 {
     BaseUserInfo userInfo = null;
     // 获得登录信息
     DataTable dataTableLogOn = this.GetDataTableById(id);
     BaseUserEntity userEntity = new BaseUserEntity();
     userEntity.GetSingle(dataTableLogOn);
     // 只允许登录一次,需要检查是否自己重新登录了,或者自己扮演自己了
     if (!UserInfo.Id.Equals(id))
     {
         if (BaseSystemInfo.CheckOnLine)
         {
             if (userEntity.UserOnLine > 0)
             {
                 statusCode = StatusCode.ErrorOnLine.ToString();
                 return userInfo;
             }
         }
     }
     userInfo = this.ConvertToUserInfo(userEntity);
     if (userEntity.IsStaff.Equals("1"))
     {
         // 获得员工的信息
         BaseStaffEntity staffEntity = new BaseStaffEntity();
         BaseStaffManager staffManager = new BaseStaffManager(DbHelper, UserInfo);
         DataTable dataTableStaff = staffManager.GetDataTableById(id);
         staffEntity.GetSingle(dataTableStaff);
         userInfo = staffManager.ConvertToUserInfo(staffEntity, userInfo);
     }
     statusCode = StatusCode.OK.ToString();
     // 登录、重新登录、扮演时的在线状态进行更新
     this.ChangeOnLine(id);
     return userInfo;
 }