From 374ce4ffd0c459bb4067e8d5765f972668aff9b1 Mon Sep 17 00:00:00 2001
From: wzp <2040239371@qq.com>
Date: 星期四, 02 三月 2023 14:56:23 +0800
Subject: [PATCH] 变更oracle访问组件

---
 web/Dao/GwOrderDao.cs |  122 ++++++++++++++++++++++++++++++++++++----
 1 files changed, 109 insertions(+), 13 deletions(-)

diff --git a/web/Dao/GwOrderDao.cs b/web/Dao/GwOrderDao.cs
index 84b510b..7dcdcd4 100644
--- a/web/Dao/GwOrderDao.cs
+++ b/web/Dao/GwOrderDao.cs
@@ -4,7 +4,7 @@
 using System.Text;
 using Model;
 using Common;
-using Oracle.DataAccess.Client;
+using Oracle.ManagedDataAccess.Client;
 using System.Data.Common;
 
 namespace Dao
@@ -32,7 +32,7 @@
 
 
         //flag: 0-寰呭鏍歌鍗�(宸叉彁浜ゃ�佸鏍镐腑)锛�1-宸插畬鎴愯鍗曪紙瀹℃牳閫氳繃銆佸鏍镐笉閫氳繃銆佸彇娑堬級
-        public List<GwOrder> LoadInfoList(string spId, string clientId, string clientName, int flag, DateTime startDate, DateTime endDate, int pageSize, int PageIndex, out int recordcount)
+        public List<GwOrder> LoadInfoList(string spId, string clientId, string compay, int flag, DateTime startDate, DateTime endDate, int pageSize, int PageIndex, string permissionsSQL, out int recordcount)
         {
             
             List<GwOrder> list = new List<GwOrder>();
@@ -41,8 +41,9 @@
             {
                 StringBuilder stringBuilder = new StringBuilder();
                 stringBuilder.Append(" FROM ( ");
-                stringBuilder.Append("SELECT GWO.*, GWC.CLIENT_NAME  ");
+                stringBuilder.Append("SELECT GWO.*, GWC.CLIENT_NAME, GWC.COMPANY, GWOA.AUDITOR  ");
                 stringBuilder.Append(" FROM GW_ORDER GWO ");
+                stringBuilder.Append(" LEFT JOIN (select ORDER_ID, wm_concat(SU.USER_NAME) AUDITOR from (select ORDER_ID, AUDITOR FROM GW_ORDER_AUDIT order by ORDER_ID, AUDIT_SORT) GOA LEFT JOIN SYS_USER SU ON SU.ACCOUNT = GOA.AUDITOR group by ORDER_ID ) GWOA ON GWOA.ORDER_ID = GWO.ORDER_ID   ");
                 stringBuilder.Append(" LEFT JOIN GW_SP GWS ON GWS.SP_ID = GWO.SP_ID ");
                 stringBuilder.Append(" LEFT JOIN GW_CLIENT GWC ON GWC.CLIENT_ID = GWO.CLIENT_ID ");
                 stringBuilder.Append(" WHERE 1=1 ");
@@ -81,10 +82,13 @@
                 {
                     stringBuilder.Append(" and GWO.CLIENT_ID like '%" + clientId + "%'");
                 }
-                if ((clientName != null) && (clientName != ""))
+                if ((compay != null) && (compay != ""))
                 {
-                    stringBuilder.Append(" and GWC.CLIENT_NAME like '%" + clientName + "%'");
+                    stringBuilder.Append(" and GWC.COMPANY like '%" + compay + "%'");
                 }
+                //瀹㈡埛鏉冮檺SQL鑴氭湰
+                stringBuilder.Append(permissionsSQL);
+
                 stringBuilder.Append(" ) T ");
 
                 OracleParameter[] parameterArray = new OracleParameter[] { new OracleParameter(":START_TIME", startDate), new OracleParameter(":END_TIME", endDate) };
@@ -165,16 +169,16 @@
         }
 
 
-        //娣诲姞浜у搧鎴栦骇鍝佸垎绫讳俊鎭�
+        //娣诲姞淇℃伅
         public bool Add(GwOrder o)
         {
             StringBuilder stringBuilder = new StringBuilder();
             stringBuilder.Append("INSERT INTO GW_ORDER ( ");
-            stringBuilder.Append(" ORDER_ID, SP_ID, CLIENT_ID, PRODUCT_ID, COMBO_ID, BASIC_NUM, GIVING_NUM, PRICE, ORDER_NUM_TOTAL, ORDER_AMOUNT_TOTAL, BEFORE_BALANCE_NUM ");
+            stringBuilder.Append(" ORDER_ID, SP_ID, CLIENT_ID, PRODUCT_ID, COMBO_ID, BASIC_NUM, GIVING_NUM, PRICE, ORDER_NUM_TOTAL, ORDER_AMOUNT_TOTAL, PAY_AMOUNT, BEFORE_BALANCE_NUM ");
             stringBuilder.Append(" , CREATOR, CREATE_TIME, STATUS, REMARK ");
             //stringBuilder.Append(" , AUDITOR, AUDIT_TIME ");
             stringBuilder.Append(" ) ");
-            stringBuilder.Append(" VALUES (:ORDER_ID, :SP_ID, :CLIENT_ID, :PRODUCT_ID, :COMBO_ID, :BASIC_NUM, :GIVING_NUM, :PRICE, :ORDER_NUM_TOTAL, :ORDER_AMOUNT_TOTAL, :BEFORE_BALANCE_NUM ");
+            stringBuilder.Append(" VALUES (:ORDER_ID, :SP_ID, :CLIENT_ID, :PRODUCT_ID, :COMBO_ID, :BASIC_NUM, :GIVING_NUM, :PRICE, :ORDER_NUM_TOTAL, :ORDER_AMOUNT_TOTAL, :PAY_AMOUNT, :BEFORE_BALANCE_NUM ");
             stringBuilder.Append(" , :CREATOR, :CREATE_TIME, :STATUS, :REMARK ");
             //stringBuilder.Append(" , :AUDITOR, :AUDIT_TIME ");
             stringBuilder.Append("  ) ");
@@ -193,6 +197,7 @@
                 new OracleParameter(":PRICE", (object)o.Price),
                 new OracleParameter(":ORDER_NUM_TOTAL", (object)o.OrderNumTotal),
                 new OracleParameter(":ORDER_AMOUNT_TOTAL", (object)o.OrderAmountTotal),
+                new OracleParameter(":PAY_AMOUNT", (object)o.PayAmount),
                 new OracleParameter(":BEFORE_BALANCE_NUM", (object)o.BeforeBalanceNum),
                 new OracleParameter(":CREATOR", (object)o.Creator),
                 new OracleParameter(":CREATE_TIME", (object)o.CreateTime),
@@ -218,7 +223,24 @@
             return OracleHelper.ExecuteSql("update GW_ORDER SET STATUS = :STATUS where ORDER_ID=:ORDER_ID", OracleHelper.Connection, new OracleParameter(":STATUS", (object)status), new OracleParameter(":ORDER_ID", (object)orderId)) > 0;
         }
 
-        //鏇存柊浜у搧鎴栦骇鍝佸垎绫讳俊鎭�
+        //鏇存柊璁㈠崟淇敼鍓嶄綑棰�
+        public bool UpdateBalanceAndStatus(Int64 basicNum, Int64 givingNum, Int64 orderNumTotal, Int64 orderAmountTotal, Int64 payAmount , Int64 beforeGivingNum, int orderStatus, string orderId )
+        {
+            if (string.IsNullOrEmpty(orderId))
+                return false;
+            //status:4-鍙栨秷
+            return OracleHelper.ExecuteSql("update GW_ORDER SET BASIC_NUM=:BASIC_NUM, GIVING_NUM=:GIVING_NUM, ORDER_NUM_TOTAL=:ORDER_NUM_TOTAL, ORDER_AMOUNT_TOTAL=:ORDER_AMOUNT_TOTAL, PAY_AMOUNT=:PAY_AMOUNT, STATUS = :STATUS where ORDER_ID=:ORDER_ID", OracleHelper.Connection
+                , new OracleParameter(":BASIC_NUM", (object)basicNum)
+                , new OracleParameter(":GIVING_NUM", (object)givingNum)
+                , new OracleParameter(":ORDER_NUM_TOTAL", (object)orderNumTotal)
+                , new OracleParameter(":ORDER_AMOUNT_TOTAL", (object)orderAmountTotal)
+                , new OracleParameter(":PAY_AMOUNT", (object)payAmount)
+                , new OracleParameter(":STATUS", (object)orderStatus)
+                , new OracleParameter(":ORDER_ID", (object)orderId)
+                ) > 0;
+        }
+
+        //鏇存柊淇℃伅
         public bool Update(GwOrder o)
         {
             OracleParameter[] cmdParms = new OracleParameter[] {
@@ -232,6 +254,7 @@
                 new OracleParameter(":PRICE", (object)o.Price),
                 new OracleParameter(":ORDER_NUM_TOTAL", (object)o.OrderNumTotal),
                 new OracleParameter(":ORDER_AMOUNT_TOTAL", (object)o.OrderAmountTotal),
+                new OracleParameter(":PAY_AMOUNT", (object)o.PayAmount),
                 new OracleParameter(":BEFORE_BALANCE_NUM", (object)o.BeforeBalanceNum),
                 new OracleParameter(":CREATOR", (object)o.Creator),
                 new OracleParameter(":CREATE_TIME", (object)o.CreateTime),
@@ -247,7 +270,7 @@
             stringBuilder.Append(" , PRODUCT_ID =:PRODUCT_ID ");
             stringBuilder.Append(" , COMBO_ID =:COMBO_ID ");
             stringBuilder.Append(" , BASIC_NUM=:BASIC_NUM, GIVING_NUM=:GIVING_NUM, PRICE=:PRICE, ORDER_NUM_TOTAL=:ORDER_NUM_TOTAL, ORDER_AMOUNT_TOTAL=:ORDER_AMOUNT_TOTAL ");
-            stringBuilder.Append(" , BEFORE_BALANCE_NUM =:BEFORE_BALANCE_NUM, CREATOR=:CREATOR, CREATE_TIME=:CREATE_TIME ");
+            stringBuilder.Append(" , PAY_AMOUNT =:PAY_AMOUNT, BEFORE_BALANCE_NUM =:BEFORE_BALANCE_NUM, CREATOR=:CREATOR, CREATE_TIME=:CREATE_TIME ");
             stringBuilder.Append(" , STATUS=:STATUS, REMARK=:REMARK ");
             stringBuilder.Append(" WHERE ORDER_ID=:ORDER_ID ");
 
@@ -261,7 +284,7 @@
             GwOrder o = new GwOrder();
             if (string.IsNullOrEmpty(orderId))
                 return o;
-            using (OracleDataReader reader = OracleHelper.ExecuteReader(string.Format("select * from GW_ORDER where ORDER_ID=:ORDER_ID"), OracleHelper.Connection, new OracleParameter(":ORDER_ID", (object)orderId)))
+            using (OracleDataReader reader = OracleHelper.ExecuteReader(string.Format("select gwo.*, gc.Client_Name, gp.name PRODUCT_NAME from gw_order gwo left join gw_client gc on gc.client_id = gwo.client_id left join gw_product gp on gp.id = gwo.product_id where gwo.ORDER_ID=:ORDER_ID"), OracleHelper.Connection, new OracleParameter(":ORDER_ID", (object)orderId)))
             {
                 if (((DbDataReader)reader).Read())
                 {
@@ -270,6 +293,76 @@
                 }
             }
             return o;
+        }
+
+        //浠婃棩宸插畬鎴愯鍗曟暟鍙婃�婚
+        public List<Dictionary<string, object>> GetOrderDay(string permissionsSQL)
+        {
+            List<Dictionary<string, object>> list = new List<Dictionary<string, object>>();
+            StringBuilder builder = new StringBuilder();
+            builder.Append(" SELECT COUNT(1) order_num, SUM(order_amount_total) order_amount_total FROM ( ");
+            builder.Append(" SELECT a.order_id, a.client_id, a.status, a.order_amount_total ");
+            builder.Append(" , CASE WHEN b.update_time is null then TO_CHAR(a.create_time, 'yyyyMMdd') ELSE TO_CHAR(b.update_time, 'yyyyMMdd') END AS update_time ");
+            builder.Append(" FROM gw_order a ");
+            builder.Append(" LEFT JOIN ( ");
+            builder.Append(" SELECT order_id, max(audit_time) update_time FROM gw_order_audit goa ");
+            builder.Append(" GROUP BY order_id ");
+            builder.Append($" ) b ON b.order_id = a.order_id where update_time>=TO_date('{DateTime.Now.Date}','yyyy-MM-dd HH24:mi:ss')  ");
+            builder.Append(" ) ");
+            builder.Append(" WHERE 1=1 AND status=2 ");
+            //builder.Append(" AND update_time=:UPDATE_TIME ");
+            builder.Append(permissionsSQL);
+
+            //using (OracleDataReader reader = OracleHelper.ExecuteReader(builder.ToString(), OracleHelper.Connection, new OracleParameter(":UPDATE_TIME", (object)DateTime.Now.ToString("yyyyMMdd"))))
+            using (OracleDataReader reader = OracleHelper.ExecuteReader(builder.ToString(), OracleHelper.Connection))
+            {
+                while (reader != null && ((DbDataReader)reader).Read())
+                {
+                    OracleReaderWrapper oracleReaderWrapper = new OracleReaderWrapper(reader);
+                    int orderNum = oracleReaderWrapper.GetInt("ORDER_NUM", 0);
+                    int orderAmountTotal = oracleReaderWrapper.GetInt("ORDER_AMOUNT_TOTAL", 0);
+
+                    Dictionary<string, object> map = new Dictionary<string, object>();
+                    map.Add("orderNum", orderNum);
+                    map.Add("orderAmountTotal", orderAmountTotal);
+                    list.Add(map);
+                }
+            }
+            return list;
+        }
+
+        //寰呭鏍歌鍗曟暟鍙婃�婚
+        public List<Dictionary<string, object>> GetOrderAudit(string permissionsSQL)
+        {
+            List<Dictionary<string, object>> list = new List<Dictionary<string, object>>();
+            StringBuilder builder = new StringBuilder();
+            builder.Append(" SELECT COUNT(1) order_num, SUM(order_amount_total) order_amount_total FROM ( ");
+            builder.Append(" SELECT a.order_id, a.client_id, a.status, a.order_amount_total ");
+            //builder.Append(" , CASE WHEN b.update_time is null then TO_CHAR(a.create_time, 'yyyyMMdd') ELSE TO_CHAR(b.update_time, 'yyyyMMdd') END AS update_time ");
+            builder.Append(" FROM gw_order a ");
+            builder.Append(" LEFT JOIN ( ");
+            builder.Append(" SELECT order_id, max(audit_time) update_time FROM gw_order_audit goa ");
+            builder.Append(" GROUP BY order_id ");
+            builder.Append(" ) b ON b.order_id = a.order_id ");
+            builder.Append(" ) ");
+            builder.Append(" WHERE 1=1 AND status IN (0,1) ");
+            builder.Append(permissionsSQL);
+
+            using (OracleDataReader reader = OracleHelper.ExecuteReader(builder.ToString(), OracleHelper.Connection))
+            {
+                while (reader != null && ((DbDataReader)reader).Read())
+                {
+                    OracleReaderWrapper oracleReaderWrapper = new OracleReaderWrapper(reader);
+                    int orderNum = oracleReaderWrapper.GetInt("ORDER_NUM", 0);
+                    int orderAmountTotal = oracleReaderWrapper.GetInt("ORDER_AMOUNT_TOTAL", 0);
+
+                    Dictionary<string, object> map = new Dictionary<string, object>();
+                    map.Add("orderNum", orderNum);
+                    map.Add("orderAmountTotal", orderAmountTotal);
+                    list.Add(map);
+                }
+            }
+            return list;
         }
 
         //缁熻璁板綍鏁�
@@ -285,19 +378,22 @@
             OracleReaderWrapper oracleReaderWrapper = new OracleReaderWrapper(reader);
             o.OrderId = oracleReaderWrapper.GetString("ORDER_ID", "");
             o.SpId = oracleReaderWrapper.GetString("SP_ID", "");
-            o.ClientId = oracleReaderWrapper.GetString("CLIENT_ID", "");
+            o.ClientId = oracleReaderWrapper.GetString("CLIENT_ID", ""); 
+            o.Company = oracleReaderWrapper.GetString("COMPANY", "");
             o.ClientName = oracleReaderWrapper.GetString("CLIENT_NAME", "");
             o.ProductId = oracleReaderWrapper.GetString("PRODUCT_ID", "");
+            o.ProductName = oracleReaderWrapper.GetString("PRODUCT_NAME", "");
             o.ComboId = oracleReaderWrapper.GetString("COMBO_ID", "");
             o.BasicNum = oracleReaderWrapper.GetInt("BASIC_NUM", 0);
             o.GivingNum = oracleReaderWrapper.GetInt("GIVING_NUM", 0);
             o.Price = oracleReaderWrapper.GetInt("PRICE", 0);
             o.OrderNumTotal = oracleReaderWrapper.GetInt("ORDER_NUM_TOTAL", 0);
             o.OrderAmountTotal = oracleReaderWrapper.GetInt("ORDER_AMOUNT_TOTAL", 0);
+            o.PayAmount = oracleReaderWrapper.GetInt("PAY_AMOUNT", 0);
             o.BeforeBalanceNum = oracleReaderWrapper.GetInt("BEFORE_BALANCE_NUM", 0);
             o.Creator = oracleReaderWrapper.GetString("CREATOR", "");
             o.CreateTime = oracleReaderWrapper.GetDateTime("CREATE_TIME");
-            //o.Auditor = oracleReaderWrapper.GetString("AUDITOR", "");
+            o.Auditor = oracleReaderWrapper.GetString("AUDITOR", "");   //鍚勭骇瀹℃牳浜�
             //o.AuditTime = oracleReaderWrapper.GetDateTime("AUDIT_TIME");
             o.Status = oracleReaderWrapper.GetInt("STATUS", 0);
             o.Remark = oracleReaderWrapper.GetString("REMARK", "");

--
Gitblit v1.9.1