/// <summary> /// 获得用户 /// </summary> /// <param name="strColName">列名</param> /// <param name="strValue">用户或帐号</param> /// <param name="binclude"></param> private static User GetUser(string strColName, string strValue, bool binclude) { User user = null; ViewUser vwUser = new ViewUser(true); vwUser.BaseCondition = binclude ? (strColName + "='" + strValue + "'") : (strColName + "='" + strValue + "' AND IsCancel = 1"); if (vwUser.Count > 0) { user = vwUser.GetItem(0) as User; } return user; }
/// <summary> /// 登陆验证,返回验证结果 /// 登陆成功:返回LoginResult.Succeed的枚举,同时返回对应的User /// 登陆失败:返回 LoginResult.UserIDError或LoginResult.PwdError的枚举,并且返回User为null /// </summary> /// <param name="strID">帐号</param> /// <param name="strPWD">密码</param> /// <param name="user">用户对象(帐号或密码错误,返回null)</param> /// <returns></returns> public static LoginResult Login(string strID, string strPWD, out User user) { ViewUser vwUser = new ViewUser(true); LoginResult emStatus = LoginResult.UserIDError; user = null; vwUser.BaseCondition = "a.UserID='" + strID + "'"; switch (vwUser.Count) { case 0: break; case 1: user = vwUser.GetItem(0) as User; if (user.PWD.Equals(strPWD, StringComparison.CurrentCultureIgnoreCase))//密码正确 { emStatus = LoginResult.Succeed; } else { user = null; emStatus = LoginResult.PwdError; } break; default: throw (new Exception("存在多个帐号相同的用户")); } return emStatus; }
/// <summary> /// 根据部门ID获得用户,支持多个部门 /// </summary> /// <param name="sDeptIDs">部门ID,用','连接</param> /// <returns></returns> public static ViewBase GetUserByDeptIDs(string sDeptIDs) { ViewBase vwUser = new ViewUser(); vwUser.Field = @"DISTINCT a.ID,a.NO,a.Name,a.Domain,a.UserID,a.PWD,a.OfficePhone,a.MobilePhone,a.Email,a.SortNum, a.Remark,a.EditDate,D_Class,a.ID AS UID,a.UserID AS ADCode, CASE a.IsCancel WHEN '1' THEN '启用' ELSE '注销'END AS HideStatue"; vwUser.BaseCondition = sDeptIDs.Length > 0 ? "b.FK_DeptID IN (" + sDeptIDs + ")" : "1<>1"; return vwUser; }
/// <summary> /// 返回某部门(大于,小于,等于..)某角色的人员 /// </summary> /// <param name="strRoleName">角色名称(多个以“,”分隔)</param> /// <param name="enumOp">操作符枚举</param> /// <param name="strDeptId">部门ID(多个以“,”分隔)</param> /// <param name="iFloorCode">iFCode:部门层 0自己,>0 子部门层数,-1所有</param> /// <returns></returns> public static ViewBase GetUserByRole(string strRoleName, Common.Operators enumOp, string strDeptId, int iFloorCode) { ViewUser vUser = new ViewUser(true); vUser.Field = @" Distinct a.ID,a.NO,a.Name,a.Domain,a.UserID,a.PWD,a.OfficePhone,a.MobilePhone,a.Email,a.SortNum, a.Remark,a.EditDate,D_Class,a.ID AS UID,a.UserID AS ADCode, CASE a.IsCancel WHEN '1' THEN '启用' ELSE '注销'END AS HideStatue"; vUser.SetJoin(); StringBuilder strWhere = new StringBuilder(100); strWhere.Append(" A.RecordStatus = 1 and RU.RecordStatus = 1 and R.RecordStatus = 1 and DPU.RecordStatus = 1 and A.IsCancel = 1 "); if (!string.IsNullOrEmpty(strRoleName)) { string[] strRoleNames = strRoleName.Split(','); for (int i = 0; i < strRoleNames.Length; i++) { if (enumOp == Common.Operators.ne) { strWhere.Append(" and R.Name " + Common.GetOperator(enumOp) + "'" + strRoleNames[i] + "'"); } else { if (i == 0) { strWhere.Append(" and ( R.Name " + Common.GetOperator(enumOp) + "'" + strRoleNames[i] + "'"); } else { strWhere.Append(" or R.Name " + Common.GetOperator(enumOp) + "'" + strRoleNames[i] + "'"); } } } if (enumOp != Common.Operators.ne) { strWhere.Append(" ) "); } } if(!string.IsNullOrEmpty(strDeptId)) { strWhere.Append(" and DPU.FK_DeptID in ( "); string[] strDeptIds = strDeptId.Split(','); Department enDept = new Department(); for (int i = 0; i < strDeptIds.Length; i++) { strWhere.Append(strDeptIds[i] + "," + enDept.GetChildDeptID(int.Parse(strDeptIds[i]), iFloorCode)); if (!strWhere.ToString().EndsWith(",")) { strWhere.Append(","); } } strWhere.Remove(strWhere.Length - 1,1); strWhere.Append(" ) "); } vUser.BaseCondition = strWhere.ToString(); return vUser; }
/// <summary> /// 获得所有非注销用户 /// </summary> /// <returns></returns> public static ViewBase GetAllUser() { ViewBase vbUser = new ViewUser(true); vbUser.BaseCondition = "a.IsCancel = 1"; return vbUser; }