using System; using System.Data; using System.Collections.Generic; using System.Linq; using System.Text; using QMFrameWork.Data; using QMAPP.Entity.Report; namespace QMAPP.DAL.Report { /// <summary> /// 用户权限查询 /// </summary> public class QueryUserPowerDAL:BaseDAL { #region 获取用户权限信息 /// <summary> /// 获取用户权限信息 /// </summary> /// <param name="condition">查询条件</param> /// <param name="page">数据页</param> public DataPage GetUserPowerList(PowerQyCondition condition, DataPage page) { string sql = ""; List<DataParameter> parameters = new List<DataParameter>(); try { sql = this.GetQuerySql(condition, parameters); using (IDataSession session = AppDataFactory.CreateMainSession()) { sql = this.ChangeSqlByDB(sql, session); if (string.IsNullOrEmpty(page.SortExpression)) { page.SortExpression = "USERNAME,ROLEID,AUTHORITYID"; } page = session.GetDataPage<PowerQueryResult>(sql, parameters.ToArray(), page); } return page; } catch (Exception ex) { throw; } } #endregion #region 获取导出的数据 /// <summary> /// 获取导出的数据 /// </summary> /// <param name="user">查询条件</param> /// <returns>数据</returns> public DataTable GetExportData(PowerQyCondition condition) { DataTable dt = null; string sql = null; List<DataParameter> parameters = new List<DataParameter>(); try { //构成查询语句 sql = this.GetQuerySql(condition,parameters); sql += " ORDER BY USERNAME,ROLEID,AUTHORITYID"; using (IDataSession session = AppDataFactory.CreateMainSession()) { dt = session.GetTable(sql, parameters.ToArray()); dt.TableName = "T_BD_CORP"; } return dt; } catch (Exception ex) { throw ex; } } #endregion #region 获取查询语句 private string GetQuerySql(PowerQyCondition condition,List<DataParameter> parameters) { string sql = ""; string where = ""; sql = @"SELECT U1.USERID,U1.LOGINUSERID,U1.USERNAME,U1.ORGANID,T1.AUTHORITYID,'' AS ROLEID,'' AS ROLENAME,'' AS ORGANNAME,'' AS AUTHORITYNAME FROM T_QM_ORGAIZATIONAUTHORITY T1,T_QM_USERORGAIZATION T2,T_QM_USER U1 WHERE T1.ORGAID = T2.ORGAID AND T2.USERID = U1.USERID [WHERE] UNION SELECT U1.USERID,U1.LOGINUSERID,U1.USERNAME,U1.ORGANID,T1.AUTHORITYID,T1.ROLEID,'' AS ROLENAME,'' AS ORGANNAME,'' AS AUTHORITYNAME FROM T_QM_ROLEAUTHORITY T1,T_QM_USERROLE T2,T_QM_USER U1 WHERE T1.ROLEID = T2.ROLEID AND T2.USERID = U1.USERID [WHERE] UNION SELECT U1.USERID,U1.LOGINUSERID,U1.USERNAME,U1.ORGANID,T2.AUTHORITYID,'' AS ROLEID,'' AS ROLENAME,'' AS ORGANNAME,'' AS AUTHORITYNAME FROM T_QM_USERAUTHORITY T2,T_QM_USER U1 WHERE T2.USERID = U1.USERID [WHERE]"; if (string.IsNullOrEmpty(condition.LOGINUSERID) == false) { where += " AND U1.LOGINUSERID = @LOGINUSERID"; parameters.Add(new DataParameter("LOGINUSERID", condition.LOGINUSERID)); } if (string.IsNullOrEmpty(condition.ORGANID) == false) { where += " AND U1.ORGANID = @ORGANID"; parameters.Add(new DataParameter("ORGANID", condition.ORGANID)); } sql = sql.Replace("[WHERE]", where); return sql; } #endregion } }