From 203edd6bbdf883e897a0075037a4ef68cd519ac9 Mon Sep 17 00:00:00 2001 From: yzh <snbbt@21cn.com> Date: 星期四, 23 六月 2022 00:07:56 +0800 Subject: [PATCH] 系统账户管理列表用户角色显示优化 --- web/Dao/UserDao.cs | 18 ++++++++++++++++-- 1 files changed, 16 insertions(+), 2 deletions(-) diff --git a/web/Dao/UserDao.cs b/web/Dao/UserDao.cs index 8ae5992..3e8e6d3 100644 --- a/web/Dao/UserDao.cs +++ b/web/Dao/UserDao.cs @@ -34,12 +34,25 @@ { List<SysUser> list = new List<SysUser>(); recordCount = 0; - using (OracleDataReader reader = OracleHelper.ExecuteReader("select count(*) as count from Sys_User", OracleHelper.Connection)) + StringBuilder stringBuilder = new StringBuilder(); + stringBuilder.Append(" FROM ( "); + stringBuilder.Append(" SELECT su.*, t.ROLE_NAMES FROM sys_user su "); + stringBuilder.Append(" LEFT JOIN ( "); + stringBuilder.Append(" select su.user_id, wm_concat( sdd.dict_label) ROLE_NAMES from sys_user su "); + stringBuilder.Append(" LEFT JOIN (select DICT_VALUE, DICT_LABEL from sys_dict_data where dict_type='USER_ROLE' ) sdd "); + stringBuilder.Append(" on INSTR (user_type, sdd.dict_value) > 0 "); + stringBuilder.Append(" GROUP BY su.user_id "); + stringBuilder.Append(" ) t on t.user_id = su.user_id "); + stringBuilder.Append(" ) "); + + //using (OracleDataReader reader = OracleHelper.ExecuteReader("select count(*) as count from Sys_User", OracleHelper.Connection)) + using (OracleDataReader reader = OracleHelper.ExecuteReader("select count(*) as count " + stringBuilder.ToString(), OracleHelper.Connection)) { while (((DbDataReader)reader).Read()) recordCount = this.ReadCount(reader); } - using (OracleDataReader reader = OracleHelper.ExecuteReader(PubConstant.doOracleSql(pageIndex, pageSize, recordCount, "select * from Sys_User").ToString(), OracleHelper.Connection)) + //using (OracleDataReader reader = OracleHelper.ExecuteReader(PubConstant.doOracleSql(pageIndex, pageSize, recordCount, "select * from Sys_User").ToString(), OracleHelper.Connection)) + using (OracleDataReader reader = OracleHelper.ExecuteReader(PubConstant.doOracleSql(pageIndex, pageSize, recordCount, "select * " + stringBuilder.ToString() ).ToString(), OracleHelper.Connection)) { while (((DbDataReader)reader).Read()) { @@ -197,6 +210,7 @@ e.Salt = oracleReaderWrapper.GetString("SALT", ""); e.UserName = oracleReaderWrapper.GetString("USER_NAME", ""); e.UserType = oracleReaderWrapper.GetString("USER_TYPE", ""); + e.RoleNames = oracleReaderWrapper.GetString("ROLE_NAMES", ""); e.ExpireTime = oracleReaderWrapper.GetDateTime("EXPIRE_TIME"); e.CreateTime = oracleReaderWrapper.GetDateTime("CREATE_TIME"); e.Remark = oracleReaderWrapper.GetString("REMARK", ""); -- Gitblit v1.9.1