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; }
}
}