/// <summary> /// 扮演用户 /// </summary> /// <param name="id">用户主键</param> /// <returns>用户类</returns> public BaseUserInfo Impersonation(string id, out string statusCode) { BaseUserInfo userInfo = null; // 获得登录信息 BaseUserLogOnEntity entity = new BaseUserLogOnManager(this.DbHelper, this.UserInfo).GetObject(id); // 只允许登录一次,需要检查是否自己重新登录了,或者自己扮演自己了 if (!UserInfo.Id.Equals(id)) { if (BaseSystemInfo.CheckOnLine) { if (entity.UserOnLine > 0) { statusCode = Status.ErrorOnLine.ToString(); return(userInfo); } } } BaseUserEntity userEntity = this.GetObject(id); 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(userInfo, staffEntity); } statusCode = Status.OK.ToString(); // 登录、重新登录、扮演时的在线状态进行更新 BaseUserLogOnManager userLogOnManager = new BaseUserLogOnManager(this.DbHelper, this.UserInfo); userLogOnManager.ChangeOnLine(id); return(userInfo); }