using System; using System.Collections.Generic; using System.Data; using System.Linq; using System.Text; namespace WebService.SDK { public class SellMasterHelper { /// /// 获取实时流水数据(1小时) /// /// 数据库连接类 /// 授权验证码 /// 查询参数Json集合 /// public string GetSellMaster(OracleHelper oracleHelper, string code, string jsonData) { try { string _ServerPartCode = ""; try { _ServerPartCode = code.ToDecrypt(); } catch { return Newtonsoft.Json.JsonConvert.SerializeObject(new SellMasterResult { ResultCode = 201, ResultDesc = "授权码错误。" }); } JsonData _JsonData = Newtonsoft.Json.JsonConvert.DeserializeObject(jsonData); DateTime _StartDate = DateTime.MinValue; if (!string.IsNullOrWhiteSpace(_JsonData.StartDate)) { DateTime.TryParse(_JsonData.StartDate, out _StartDate); } if (_StartDate == DateTime.MinValue) { _StartDate = DateTime.Now.AddHours(-1); } DataTable _SellMasterTable = oracleHelper.ExcuteSqlGetDataSet( $@"SELECT A.SELLMASTER_CODE,A.SERVERPARTCODE, A.SERVERPART_NAME,A.SHOPCODE,A.SHOPNAME, A.MACHINECODE,A.SELLWORKER_CODE,A.SELLWORKER_NAME, A.SELLMASTER_DATE,A.SELLMASTER_COUNT, A.SELLMASTER_OFFPRICE,A.SELLMASTER_AMOUNT, A.CASHPAY,A.BANKPAY,A.MOBILEPAY,B.COMMODITY_BARCODE, B.COMMODITY_NAME,B.SELLDETAILS_PRICE, SUM(B.SELLDETAILS_COUNT) AS SELLDETAILS_COUNT, SUM(B.SELLDETAILS_AMOUNT) AS SELLDETAILS_AMOUNT, SUM(B.SELLDETAILS_OFFPRICE) AS SELLDETAILS_OFFPRICE FROM HIGHWAY_EXCHANGE.T_SELLMASTER A, HIGHWAY_EXCHANGE.T_SELLDETAILS B WHERE A.SELLMASTER_CODE = B.SELLMASTER_CODE AND A.SERVERPARTCODE = '{_ServerPartCode}' AND A.SELLMASTER_DATE >= TO_DATE('{_StartDate.ToString("yyyy/MM/dd HH:mm:ss")}','YYYY/MM/DD HH24:MI:SS') AND A.SELLMASTER_DATE < TO_DATE('{_StartDate.AddHours(1).ToString("yyyy/MM/dd HH:mm:ss")}','YYYY/MM/DD HH24:MI:SS') GROUP BY A.SELLMASTER_CODE,A.SERVERPARTCODE, A.SERVERPART_NAME,A.SHOPCODE,A.SHOPNAME, A.MACHINECODE,A.SELLWORKER_CODE,A.SELLWORKER_NAME, A.SELLMASTER_DATE,A.SELLMASTER_COUNT, A.SELLMASTER_OFFPRICE,A.SELLMASTER_AMOUNT, A.CASHPAY,A.BANKPAY,A.MOBILEPAY,B.COMMODITY_BARCODE, B.COMMODITY_NAME,B.SELLDETAILS_PRICE").Tables[0]; var SellMasterList = from t in _SellMasterTable.AsEnumerable() group t by new { SELLMASTER_CODE = t.Field("SELLMASTER_CODE"), } into m select new { m.Key.SELLMASTER_CODE }; List ServerPartSellMasterData = new List(); SellMasterList.ToList().ForEach(p => { DataRow[] _DataRow = _SellMasterTable.Select("SELLMASTER_CODE='" + p.SELLMASTER_CODE + "'"); if (_DataRow != null && _DataRow.Count() > 0) { Model.ServerPartSellMasterModel _SellMaster = new Model.ServerPartSellMasterModel(); _SellMaster.ServerPartCode = _DataRow[0]["SERVERPARTCODE"].ToString(); _SellMaster.ServerPartName = _DataRow[0]["SERVERPART_NAME"].ToString(); _SellMaster.ShopCode = _DataRow[0]["SHOPCODE"].ToString(); _SellMaster.ShopName = _DataRow[0]["SHOPNAME"].ToString(); _SellMaster.MachineCode = _DataRow[0]["MACHINECODE"].ToString(); _SellMaster.SellWorkerCode = _DataRow[0]["SELLWORKER_CODE"].ToString(); _SellMaster.SellWorerName = _DataRow[0]["SELLWORKER_NAME"].ToString(); _SellMaster.SellMasterCode = _DataRow[0]["SELLMASTER_CODE"].ToString(); _SellMaster.TotalCount = decimal.Parse(_DataRow[0]["SELLMASTER_COUNT"].ToString()); _SellMaster.TotalAmount = decimal.Parse(_DataRow[0]["SELLMASTER_AMOUNT"].ToString()); _SellMaster.TotalDiscount = decimal.Parse(_DataRow[0]["SELLMASTER_OFFPRICE"].ToString()); _SellMaster.CashPay = decimal.Parse(_DataRow[0]["CASHPAY"].ToString()); _SellMaster.BankPay = decimal.Parse(_DataRow[0]["BANKPAY"].ToString()); _SellMaster.MobilePay = decimal.Parse(_DataRow[0]["MOBILEPAY"].ToString()); _SellMaster.SellMasterDate = _DataRow[0]["SELLMASTER_DATE"].ToString(); List _SellDetailList = new List(); for (int i = 0; i < _DataRow.Count(); i++) { Model.SellDetail _SellDetail = new Model.SellDetail(); _SellDetail.CommodityBarcode = _DataRow[i]["COMMODITY_BARCODE"].ToString(); _SellDetail.CommodityName = _DataRow[i]["COMMODITY_NAME"].ToString(); _SellDetail.SellCount = decimal.Parse(_DataRow[i]["SELLDETAILS_COUNT"].ToString()); _SellDetail.Price = decimal.Parse(_DataRow[i]["SELLDETAILS_PRICE"].ToString()); _SellDetail.SellAmount = decimal.Parse(_DataRow[i]["SELLDETAILS_AMOUNT"].ToString()); _SellDetail.Discount = decimal.Parse(_DataRow[i]["SELLDETAILS_OFFPRICE"].ToString()); _SellDetailList.Add(_SellDetail); } _SellMaster.SellDetails = _SellDetailList; ServerPartSellMasterData.Add(_SellMaster); } }); return Newtonsoft.Json.JsonConvert.SerializeObject( new SellMasterResult { ResultCode = 100, ResultDesc = "查询成功。", PageIndex = 1, PageSize = ServerPartSellMasterData.Count(), TotalCount = ServerPartSellMasterData.Count(), Data = ServerPartSellMasterData }); } catch (Exception ex) { return Newtonsoft.Json.JsonConvert.SerializeObject(new SellMasterResult { ResultCode = 999, ResultDesc = "系统错误:" + ex.Message }); } } } public class SellMasterResult { public int ResultCode { get; set; } public string ResultDesc { get; set; } public int PageIndex { get; set; } public int PageSize { get; set; } public int TotalCount { get; set; } public List Data { get; set; } } public class JsonData { /// /// 交易记录起始时间 /// public string StartDate { get; set; } } }