From 318d349fc009011a135dbce5a25e392b492c0718 Mon Sep 17 00:00:00 2001
From: yzh <snbbt@21cn.com>
Date: 星期五, 20 五月 2022 16:49:20 +0800
Subject: [PATCH] 客户分配个性产品 系统数据权限隔离

---
 web/Dao/GwClientDao.cs |   63 ++++++++++++++++++++++++++++++-
 1 files changed, 60 insertions(+), 3 deletions(-)

diff --git a/web/Dao/GwClientDao.cs b/web/Dao/GwClientDao.cs
index 460f299..d2626d9 100644
--- a/web/Dao/GwClientDao.cs
+++ b/web/Dao/GwClientDao.cs
@@ -25,7 +25,7 @@
         /// <param name="agent">涓氬姟鍛�</param>
         /// <returns></returns>
         //public List<GwClient> LoadInfoList(out int recordCount, int pageIndex, int pageSizestring, string clientID, string clientName, string telphone, string agent)
-        public List<GwClient> LoadInfoList(out int recordCount, int pageIndex, int pageSizestring, string clientID, string clientName, string telphone, string agent, string company, string salesman, string productId)
+        public List<GwClient> LoadInfoList(out int recordCount, int pageIndex, int pageSizestring, string clientID, string clientName, string telphone, string agent, string company, string salesman, string productId, string permissionsSQL )
         {
 
             List<GwClient> list = new List<GwClient>();
@@ -34,7 +34,7 @@
             {
                 StringBuilder stringBuilder = new StringBuilder();
                 stringBuilder.Append("from GW_CLIENT where 1=1");
-                OracleParameter[] oracleParameterArray = new OracleParameter[4];
+                OracleParameter[] oracleParameterArray = new OracleParameter[6];
                 if (clientID != null && clientID != "")
                 {
                     oracleParameterArray[0] = new OracleParameter(":ClientID", (OracleDbType)126);
@@ -61,7 +61,7 @@
                 }
                 if (salesman != null && salesman != "")
                 {
-                    oracleParameterArray[4] = new OracleParameter(":Salesman", (OracleDbType)112);
+                    oracleParameterArray[4] = new OracleParameter(":Salesman", (OracleDbType)126);
                     ((DbParameter)oracleParameterArray[4]).Value = (object)( salesman );
                     stringBuilder.Append(" and Salesman = :Salesman");
                 }
@@ -76,6 +76,9 @@
                 {
                     stringBuilder.Append(" and CLIENT_ID IN ( SELECT distinct CLIENT_ID  FROM GW_SP WHERE PRODUCT_ID = '" + productId + "' )");
                 }
+
+                //瀹㈡埛鏉冮檺SQL鑴氭湰
+                stringBuilder.Append(permissionsSQL);
 
                 stringBuilder.Append(" order by CREATE_TIME DESC,CLIENT_ID DESC");
                 using (OracleDataReader reader = OracleHelper.ExecuteReader("select count(*) as count " + stringBuilder.ToString(), OracleHelper.Connection, oracleParameterArray))
@@ -100,6 +103,10 @@
             }
             return list;
         }
+
+        /**
+         * 鏌ヨ缁熻鍔熻兘
+         */
         public List<GwClient> LoadInfoList(string clientID, string clientName, string company, string agent)
         {
             
@@ -184,6 +191,23 @@
         public bool UpdateClientAmount(int AddBalance, int payAmount, string clientId )
         {
             return OracleHelper.ExecuteSql("UPDATE GW_CLIENT SET BALANCE=(BALANCE + :BALANCE), TOP_UP_AMOUNT_TOTAL=(TOP_UP_AMOUNT_TOTAL + :TOP_UP_AMOUNT_TOTAL) WHERE CLIENT_ID=:CLIENT_ID", OracleHelper.Connection, new OracleParameter(":BALANCE", (object)AddBalance), new OracleParameter(":TOP_UP_AMOUNT_TOTAL", (object)payAmount), new OracleParameter(":CLIENT_ID", (object)clientId)) > 0;
+        }
+
+        public bool UpdateClientProduct(string clientId, string productId)
+        {
+            List<KeyValuePair<string, OracleParameter[]>> list = new List<KeyValuePair<string, OracleParameter[]>>();
+            if (string.IsNullOrEmpty(productId) )
+            {
+                string key = "UPDATE GW_CLIENT_PRODUCT SET PRODUCT_ID=:PRODUCT_ID WHERE CLIENT_ID=:CLIENT_ID";
+                OracleParameter[] oracleParameterArray = new OracleParameter[2]
+                {
+                  new OracleParameter(":PRODUCT_ID", (object) productId),
+                  new OracleParameter(":CLIENT_ID", (object) clientId)
+                };
+                list.Add(new KeyValuePair<string, OracleParameter[]>(key, oracleParameterArray));
+            }
+            OracleHelper.ExecuteSqlTran(list, OracleHelper.Connection);
+            return true;
         }
 
         /// <summary>
@@ -369,6 +393,39 @@
             }
             return true;
         }
+
+
+        /**
+         * 鍑芥暟鎻忚堪锛� 鏍规嵁绯荤粺鐢ㄦ埛鑾峰彇鏈夋潈闄愬鎴�
+         * userId: 鐢ㄦ埛ID
+         * userType: 鐢ㄦ埛绫诲瀷锛�1-绠$悊鍛�;2-涓氬姟鍛�--鍏ㄥ憳;3-涓氬姟涓荤;4-涓氬姟鎬荤洃;5-瀹㈡湇浜哄憳;6-璐㈠姟浜哄憳;99-鍏朵粬
+         * return: SQL瀛楃涓�
+         * */
+        public string GetClientPermissions(int userId, int userType, string alias)
+        {
+            if (!string.IsNullOrEmpty(alias))
+            {
+                alias += ".";
+            }
+
+            string sqlStr = "";
+            //涓氬姟鍛樺拰鍏朵粬
+            if(userType==2 || userType == 99)
+            {
+                sqlStr  += " AND " + alias + "CLIENT_ID IN (SELECT CLIENT_ID FROM GW_CLIENT WHERE IS_ENABLE=1 AND (SALESMAN='" + userId + "' ) ) ";
+            }
+            //涓氬姟涓荤
+            else if (userType == 3)
+            {
+                sqlStr += " AND " + alias + "CLIENT_ID IN (SELECT CLIENT_ID FROM GW_CLIENT WHERE IS_ENABLE=1 AND (SALESMAN='" + userId + "' or CUSTOMER_MANAGER='" + userId + "' ) ) ";
+            }
+            else
+            {
+                //sqlStr += " AND CLIENT_ID IN (SELECT CLIENT_ID FROM GW_CLIENT WHERE IS_ENABLE=1 ) ";
+            }
+
+            return sqlStr ;
+        }
     }
 }
 

--
Gitblit v1.9.1