From f63d8ead25bdb3c32dacca817a059bd30390e9bc Mon Sep 17 00:00:00 2001
From: yzh <snbbt@21cn.com>
Date: 星期三, 15 六月 2022 22:20:07 +0800
Subject: [PATCH] 1.系统账户数据库优化:   修改“账户类型”的数据类型为VARCHAR2(1024),多个角色时以半角“,”分隔。   加密盐。 密码加密优化;账户登录优化;角色权限管理(作废用户权限); 2.字典类型管理(定义:用户角色) 3.字典数据管理(初始化用户角色数据) 3.角色权限管理 4.系统账户管理,账户类型对应用户角色(可多选)。

---
 web/Dao/GwClientDao.cs |  121 ++++++++++++++++++++++++++++++++++-----
 1 files changed, 104 insertions(+), 17 deletions(-)

diff --git a/web/Dao/GwClientDao.cs b/web/Dao/GwClientDao.cs
index 4a7c3c8..a8de674 100644
--- a/web/Dao/GwClientDao.cs
+++ b/web/Dao/GwClientDao.cs
@@ -131,6 +131,90 @@
             return list;
         }
 
+        //瀵煎嚭瀹㈡埛淇℃伅
+        /// <returns></returns>
+        public DataTable LoadClientDataTable(string clientID, string clientName, string telephone, string agent, string company, string salesman, string supportStaff, string productId, int isEnable, string permissionsSQL)
+        {
+
+            StringBuilder stringBuilder = new StringBuilder();
+            stringBuilder.Append(" SELECT CLIENT_ID, COMPANY, CLIENT_NAME, TELEPHONE, Balance/1000 BALANCE, Top_up_Amount_Total/1000 TOP_UP_AMOUNT_TOTAL, SALESMAN_NAME, PRODUCT_IDS ");
+            stringBuilder.Append(" , CASE WHEN (Is_Enable=1) then '鍚敤' WHEN(Is_Enable=0) then '鍋滅敤' end as Is_Enable ");
+            stringBuilder.Append(" FROM ( ");
+            stringBuilder.Append("SELECT gwc.*, t.PRODUCT_IDS, su.user_name SALESMAN_NAME  FROM GW_CLIENT gwc ");
+            stringBuilder.Append(" LEFT JOIN ( ");
+            stringBuilder.Append(" select gc.client_id, wm_concat( gp.name) PRODUCT_IDS from GW_CLIENT gc ");
+            stringBuilder.Append(" LEFT JOIN gw_product gp on INSTR (CLIENT_IDS, gc.client_id) > 0 ");
+            stringBuilder.Append(" GROUP BY gc.client_id ");
+            stringBuilder.Append(" ) t on t.client_id = gwc.client_id ");
+            stringBuilder.Append(" LEFT JOIN sys_user su on su.user_id = gwc.salesman ");
+            //stringBuilder.Append("from GW_CLIENT where 1=1");
+            stringBuilder.Append(" WHERE 1=1");
+            OracleParameter[] oracleParameterArray = new OracleParameter[8];
+            if (clientID != null && clientID != "")
+            {
+                oracleParameterArray[0] = new OracleParameter(":ClientID", (OracleDbType)126);
+                ((DbParameter)oracleParameterArray[0]).Value = (object)('%' + clientID + '%');
+                stringBuilder.Append(" and gwc.CLIENT_ID like :ClientID");
+            }
+            if (clientName != null && clientName != "")
+            {
+                oracleParameterArray[1] = new OracleParameter(":ClientName", (OracleDbType)126);
+                ((DbParameter)oracleParameterArray[1]).Value = (object)('%' + clientName + '%');
+                stringBuilder.Append(" and gwc.CLIENT_NAME like :ClientName");
+            }
+            if (telephone != null && telephone != "")
+            {
+                oracleParameterArray[2] = new OracleParameter(":Telephone", (OracleDbType)126);
+                ((DbParameter)oracleParameterArray[2]).Value = (object)('%' + telephone + '%');
+                stringBuilder.Append(" and gwc.TELEPHONE like :Telephone");
+            }
+            if (company != null && company != "")
+            {
+                oracleParameterArray[3] = new OracleParameter(":Company", (OracleDbType)126);
+                ((DbParameter)oracleParameterArray[3]).Value = (object)('%' + company + '%');
+                stringBuilder.Append(" and gwc.Company like :Company");
+            }
+            if (salesman != null && salesman != "")
+            {
+                oracleParameterArray[4] = new OracleParameter(":Salesman", (OracleDbType)126);
+                ((DbParameter)oracleParameterArray[4]).Value = (object)(salesman);
+                stringBuilder.Append(" and gwc.Salesman = :Salesman");
+            }
+            if (agent != null && agent != "")
+            {
+                oracleParameterArray[5] = new OracleParameter(":Agent", (OracleDbType)126);
+                ((DbParameter)oracleParameterArray[5]).Value = (object)("%" + agent + "%");
+                stringBuilder.Append(" and gwc.Agent like :Agent");
+            }
+
+            if (supportStaff != null && supportStaff != "")
+            {
+                oracleParameterArray[6] = new OracleParameter(":SupportStaff", (OracleDbType)126);
+                ((DbParameter)oracleParameterArray[6]).Value = (object)(supportStaff);
+                stringBuilder.Append(" and gwc.SUPPORT_STAFF = :SupportStaff");
+            }
+            if (isEnable != -1)
+            {
+                oracleParameterArray[7] = new OracleParameter(":IS_ENABLE", (OracleDbType)112);
+                ((DbParameter)oracleParameterArray[7]).Value = (object)(isEnable);
+                stringBuilder.Append(" and gwc.IS_ENABLE = :IS_ENABLE");
+            }
+
+            if (productId != null && productId != "")
+            {
+                stringBuilder.Append(" and gwc.CLIENT_ID IN ( SELECT distinct CLIENT_ID  FROM GW_SP WHERE PRODUCT_ID = '" + productId + "' )");
+            }
+
+            //瀹㈡埛鏉冮檺SQL鑴氭湰
+            stringBuilder.Append(permissionsSQL);
+
+            stringBuilder.Append(" ) T ");
+
+            stringBuilder.Append(" order by CREATE_TIME DESC,CLIENT_ID DESC");
+
+            return OracleHelper.Execute(PubConstant.doOracleSql(100000, stringBuilder.ToString()).ToString(), OracleHelper.Connection, oracleParameterArray);
+        }
+
         /**
          * 鏌ヨ缁熻鍔熻兘
          */
@@ -271,7 +355,7 @@
 
         public bool Add(GwClient item)
         {
-            return OracleHelper.ExecuteSql("INSERT INTO GW_CLIENT(CLIENT_ID,CLIENT_NAME,TELEPHONE,ADDRESS,AGENT,SALESMAN,CUSTOMER_MANAGER,SUPPORT_STAFF,FINANCIAL_STAFF,CHARGE_TYPE,SMS_STATUS_REPORT,MMS_STATUS_REPORT,COMPANY,REMARK,PASSWORD,PERMISSION_DATA, IS_ENABLE_WHITE, IS_ENABLE_BLACK, IS_REMOTE_LOGIN_NOTICE, IS_MOBILE_CAPTCHA, IS_HIDE_MOBILE, IS_DISPLAY_STATUS, IS_LOGIN_IP_RESTRICT, IS_LOGIN_IP_ALLOW_GATHER, IS_LOGIN_CITY_RESTRICT, IS_LOGIN_CITY_ALLOW_GATHER,CREATE_TIME,PARENTID,Certification_Status) VALUES(:CLIENTID,:CLIENTNAME,:TELEPHONE,:ADDRESS,:AGENT,:SALESMAN,:CUSTOMER_MANAGER,:SUPPORT_STAFF,:FINANCIAL_STAFF,:CHARGE_TYPE,:SMS_STATUS_REPORT,:MMS_STATUS_REPORT,:COMPANY,:REMARK,:PASSWORD,:PERMISSION_DATA, :IS_ENABLE_WHITE, :IS_ENABLE_BLACK, :IS_REMOTE_LOGIN_NOTICE, :IS_MOBILE_CAPTCHA, :IS_HIDE_MOBILE, :IS_DISPLAY_STATUS, :IS_LOGIN_IP_RESTRICT, :IS_LOGIN_IP_ALLOW_GATHER, :IS_LOGIN_CITY_RESTRICT, :IS_LOGIN_CITY_ALLOW_GATHER,SYSDATE,:PARENTID,:Certification_Status)", OracleHelper.Connection, new OracleParameter(":CLIENTID", (object)item.ClientID), new OracleParameter(":CLIENTNAME", (object)item.ClientName), new OracleParameter(":TELEPHONE", (object)item.Telephone), new OracleParameter(":ADDRESS", (object)item.Address), new OracleParameter(":AGENT", (object)item.Agent), new OracleParameter(":SALESMAN", (object)item.Salesman), new OracleParameter(":CUSTOMER_MANAGER", (object)item.CustomerManager), new OracleParameter(":SUPPORT_STAFF", (object)item.SupportStaff), new OracleParameter(":FINANCIAL_STAFF", (object)item.FinancialStaff), new OracleParameter(":CHARGE_TYPE", (object)item.ChargeType), new OracleParameter(":SMS_STATUS_REPORT", (object)item.SmsStatusReport), new OracleParameter(":MMS_STATUS_REPORT", (object)item.MmsStatusReport), new OracleParameter(":COMPANY", (object)item.Company), new OracleParameter(":REMARK", (object)item.Remark), new OracleParameter(":PASSWORD", (object)item.Password), new OracleParameter(":PERMISSION_DATA", (object)item.PermissionData), new OracleParameter(":PARENTID", (object)item.ParentId), new OracleParameter(":Certification_Status", (object)item.Certification_Status), new OracleParameter(":IS_ENABLE_WHITE", (object)item.IsEnableWhite), new OracleParameter(":IS_ENABLE_BLACK", (object)item.IsEnableBlack), new OracleParameter(":IS_REMOTE_LOGIN_NOTICE", (object)item.IsRemoteLoginNotice), new OracleParameter(":IS_MOBILE_CAPTCHA", (object)item.IsMobileCaptcha), new OracleParameter(":IS_HIDE_MOBILE", (object)item.IsHideMobile), new OracleParameter(":IS_DISPLAY_STATUS", (object)item.IsDisplayStatus), new OracleParameter(":IS_LOGIN_IP_RESTRICT", (object)item.IsLoginIpRestrict), new OracleParameter(":IS_LOGIN_IP_ALLOW_GATHER", (object)item.IsLoginIpAllowGather), new OracleParameter(":IS_LOGIN_CITY_RESTRICT", (object)item.IsLoginCityRestrict), new OracleParameter(":IS_LOGIN_CITY_ALLOW_GATHER", (object)item.IsLoginCityAllowGather) ) > 0;
+            return OracleHelper.ExecuteSql("INSERT INTO GW_CLIENT(CLIENT_ID,CLIENT_NAME,TELEPHONE,ADDRESS,AGENT,SALESMAN,CUSTOMER_MANAGER,SUPPORT_STAFF,FINANCIAL_STAFF,CHARGE_TYPE,SMS_STATUS_REPORT,MMS_STATUS_REPORT,COMPANY,REMARK,PASSWORD, SALT, PERMISSION_DATA, IS_ENABLE_WHITE, IS_ENABLE_BLACK, IS_REMOTE_LOGIN_NOTICE, IS_MOBILE_CAPTCHA, IS_HIDE_MOBILE, IS_DISPLAY_STATUS, IS_LOGIN_IP_RESTRICT, IS_LOGIN_IP_ALLOW_GATHER, IS_LOGIN_CITY_RESTRICT, IS_LOGIN_CITY_ALLOW_GATHER,CREATE_TIME,PARENTID,Certification_Status) VALUES(:CLIENTID,:CLIENTNAME,:TELEPHONE,:ADDRESS,:AGENT,:SALESMAN,:CUSTOMER_MANAGER,:SUPPORT_STAFF,:FINANCIAL_STAFF,:CHARGE_TYPE,:SMS_STATUS_REPORT,:MMS_STATUS_REPORT,:COMPANY,:REMARK,:PASSWORD, :SALT,:PERMISSION_DATA, :IS_ENABLE_WHITE, :IS_ENABLE_BLACK, :IS_REMOTE_LOGIN_NOTICE, :IS_MOBILE_CAPTCHA, :IS_HIDE_MOBILE, :IS_DISPLAY_STATUS, :IS_LOGIN_IP_RESTRICT, :IS_LOGIN_IP_ALLOW_GATHER, :IS_LOGIN_CITY_RESTRICT, :IS_LOGIN_CITY_ALLOW_GATHER,SYSDATE,:PARENTID,:Certification_Status)", OracleHelper.Connection, new OracleParameter(":CLIENTID", (object)item.ClientID), new OracleParameter(":CLIENTNAME", (object)item.ClientName), new OracleParameter(":TELEPHONE", (object)item.Telephone), new OracleParameter(":ADDRESS", (object)item.Address), new OracleParameter(":AGENT", (object)item.Agent), new OracleParameter(":SALESMAN", (object)item.Salesman), new OracleParameter(":CUSTOMER_MANAGER", (object)item.CustomerManager), new OracleParameter(":SUPPORT_STAFF", (object)item.SupportStaff), new OracleParameter(":FINANCIAL_STAFF", (object)item.FinancialStaff), new OracleParameter(":CHARGE_TYPE", (object)item.ChargeType), new OracleParameter(":SMS_STATUS_REPORT", (object)item.SmsStatusReport), new OracleParameter(":MMS_STATUS_REPORT", (object)item.MmsStatusReport), new OracleParameter(":COMPANY", (object)item.Company), new OracleParameter(":REMARK", (object)item.Remark), new OracleParameter(":PASSWORD", (object)item.Password), new OracleParameter(":SALT", (object)item.Salt), new OracleParameter(":PERMISSION_DATA", (object)item.PermissionData), new OracleParameter(":PARENTID", (object)item.ParentId), new OracleParameter(":Certification_Status", (object)item.Certification_Status), new OracleParameter(":IS_ENABLE_WHITE", (object)item.IsEnableWhite), new OracleParameter(":IS_ENABLE_BLACK", (object)item.IsEnableBlack), new OracleParameter(":IS_REMOTE_LOGIN_NOTICE", (object)item.IsRemoteLoginNotice), new OracleParameter(":IS_MOBILE_CAPTCHA", (object)item.IsMobileCaptcha), new OracleParameter(":IS_HIDE_MOBILE", (object)item.IsHideMobile), new OracleParameter(":IS_DISPLAY_STATUS", (object)item.IsDisplayStatus), new OracleParameter(":IS_LOGIN_IP_RESTRICT", (object)item.IsLoginIpRestrict), new OracleParameter(":IS_LOGIN_IP_ALLOW_GATHER", (object)item.IsLoginIpAllowGather), new OracleParameter(":IS_LOGIN_CITY_RESTRICT", (object)item.IsLoginCityRestrict), new OracleParameter(":IS_LOGIN_CITY_ALLOW_GATHER", (object)item.IsLoginCityAllowGather) ) > 0;
         }
 
         public GwClient Get(string clientID)
@@ -367,6 +451,7 @@
             o.Company = oracleReaderWrapper.GetString("COMPANY", "");
             o.Remark = oracleReaderWrapper.GetString("REMARK", "");
             o.Password = oracleReaderWrapper.GetString("PASSWORD", "");
+            o.Salt = oracleReaderWrapper.GetString("SALT", "");
             o.Agent = oracleReaderWrapper.GetString("AGENT", "");
             o.AlarmMobile = oracleReaderWrapper.GetString("ALARM_MOBILE", "");
             o.BalanceThreshold = oracleReaderWrapper.GetInt("BALANCE_THRESHOLD", 0);
@@ -511,8 +596,8 @@
 
                 list = new List<KeyValuePair<string, OracleParameter[]>>();
                 list.Add(new KeyValuePair<string, OracleParameter[]>(key2, oracleParameterArray2));
-                OracleHelper.ExecuteSqlTran(list, OracleHelper.Connection);
             }
+            OracleHelper.ExecuteSqlTran(list, OracleHelper.Connection);
 
 
             //鏇存柊涓�у垎閰嶅鎴烽泦闀垮害涓�0鏃�
@@ -527,18 +612,18 @@
 
                 list = new List<KeyValuePair<string, OracleParameter[]>>();
                 list.Add(new KeyValuePair<string, OracleParameter[]>(key3, oracleParameterArray2));
-                OracleHelper.ExecuteSqlTran(list, OracleHelper.Connection);
             }
+            OracleHelper.ExecuteSqlTran(list, OracleHelper.Connection);
         }
 
 
         /**
          * 鍑芥暟鎻忚堪锛� 鏍规嵁绯荤粺鐢ㄦ埛鑾峰彇鏈夋潈闄愬鎴�
          * userId: 鐢ㄦ埛ID
-         * userType: 鐢ㄦ埛绫诲瀷锛�1-绠$悊鍛�;2-涓氬姟鍛�--鍏ㄥ憳;3-涓氬姟涓荤;4-涓氬姟鎬荤洃;5-瀹㈡湇浜哄憳;6-璐㈠姟浜哄憳;99-鍏朵粬
+         * userType: 鐢ㄦ埛绫诲瀷锛屽涓椂浠モ��,鈥濆垎闅旓細1-绠$悊鍛�;2-涓氬姟鍛�--鍏ㄥ憳;3-瀹㈡埛缁忕悊;4-瀹㈡湇浜哄憳;5-璐㈠姟浜哄憳
          * return: SQL瀛楃涓�
          * */
-        public string GetClientPermissions(int userId, int userType, string alias)
+        public string GetClientPermissions(int userId, string userType, string alias)
         {
             if (!string.IsNullOrEmpty(alias))
             {
@@ -546,17 +631,18 @@
             }
 
             string sqlStr = "";
-            //涓氬姟鍛樺拰鍏朵粬
-            if(userType==2 || userType == 99)
+            //涓氬姟鍛�
+            if(DataConverter.checkStrForArrayStr(2, userType))
             {
                 sqlStr  += " AND " + alias + "CLIENT_ID IN (SELECT CLIENT_ID FROM GW_CLIENT WHERE IS_ENABLE=1 AND (SALESMAN='" + userId + "' ) ) ";
             }
-            //涓氬姟涓荤
-            else if (userType == 3)
+            //瀹㈡埛缁忕悊
+            else if (DataConverter.checkStrForArrayStr(3, userType) )
             {
                 sqlStr += " AND " + alias + "CLIENT_ID IN (SELECT CLIENT_ID FROM GW_CLIENT WHERE IS_ENABLE=1 AND (SALESMAN='" + userId + "' or CUSTOMER_MANAGER='" + userId + "' ) ) ";
             }
-            else
+            //绠$悊鍛�
+            else if (DataConverter.checkStrForArrayStr(1, userType))
             {
                 //sqlStr += " AND CLIENT_ID IN (SELECT CLIENT_ID FROM GW_CLIENT WHERE IS_ENABLE=1 ) ";
             }
@@ -567,10 +653,10 @@
         /**
          * 鍑芥暟鎻忚堪锛� 鏍规嵁绯荤粺鐢ㄦ埛鑾峰彇鏈夋潈闄愬鎴疯处鍙�
          * userId: 鐢ㄦ埛ID
-         * userType: 鐢ㄦ埛绫诲瀷锛�1-绠$悊鍛�;2-涓氬姟鍛�--鍏ㄥ憳;3-涓氬姟涓荤;4-涓氬姟鎬荤洃;5-瀹㈡湇浜哄憳;6-璐㈠姟浜哄憳;99-鍏朵粬
+         * userType: 鐢ㄦ埛绫诲瀷锛屽涓椂浠モ��,鈥濆垎闅旓細1-绠$悊鍛�;2-涓氬姟鍛�--鍏ㄥ憳;3-瀹㈡埛缁忕悊;4-瀹㈡湇浜哄憳;5-璐㈠姟浜哄憳
          * return: SQL瀛楃涓�
          * */
-        public string GetSpPermissions(int userId, int userType, string alias)
+        public string GetSpPermissions(int userId, string userType, string alias)
         {
             if (!string.IsNullOrEmpty(alias))
             {
@@ -578,17 +664,18 @@
             }
 
             string sqlStr = "";
-            //涓氬姟鍛樺拰鍏朵粬
-            if (userType == 2 || userType == 99)
+            //涓氬姟鍛�
+            if (DataConverter.checkStrForArrayStr(2, userType))
             {
                 sqlStr += " AND " + alias + "SP_ID IN (SELECT SP_ID from GW_SP where DEL_FLAG = 0 and CLIENT_ID IN (SELECT CLIENT_ID FROM GW_CLIENT WHERE IS_ENABLE=1 AND (SALESMAN='" + userId + "' ) ) ) ";
             }
-            //涓氬姟涓荤
-            else if (userType == 3)
+            //瀹㈡埛缁忕悊
+            else if (DataConverter.checkStrForArrayStr(3, userType))
             {
                 sqlStr += " AND " + alias + "SP_ID IN (SELECT SP_ID from GW_SP where DEL_FLAG = 0 and CLIENT_ID IN (SELECT CLIENT_ID FROM GW_CLIENT WHERE IS_ENABLE=1 AND (SALESMAN='" + userId + "' or CUSTOMER_MANAGER='" + userId + "' ) ) ) ";
             }
-            else
+            //绠$悊鍛�
+            else if (DataConverter.checkStrForArrayStr(1, userType))
             {
                 //sqlStr += " AND CLIENT_ID IN (SELECT CLIENT_ID FROM GW_CLIENT WHERE IS_ENABLE=1 ) ";
             }

--
Gitblit v1.9.1