3211 lines
190 KiB
C#
3211 lines
190 KiB
C#
using System;
|
||
using System.Collections;
|
||
using System.Collections.Generic;
|
||
using System.Configuration;
|
||
using System.Data;
|
||
using System.Drawing;
|
||
using System.IO;
|
||
using System.Linq;
|
||
using System.Net;
|
||
using System.Net.NetworkInformation;
|
||
using System.Net.Security;
|
||
using System.Security.Cryptography.X509Certificates;
|
||
using System.Text;
|
||
using System.Threading;
|
||
using System.Web;
|
||
using System.Web.Services;
|
||
using System.Xml;
|
||
using Newtonsoft.Json;
|
||
using Newtonsoft.Json.Linq;
|
||
using WebService.SDK;
|
||
using WebService.SDK.BaiduAI;
|
||
using WebService.SDK.BaiduAI.Model.FaceModel;
|
||
|
||
namespace PayService
|
||
{
|
||
/// <summary>
|
||
/// Service1 的摘要说明
|
||
/// </summary>
|
||
[WebService(Namespace = "http://tempuri.org/")]
|
||
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
|
||
[System.ComponentModel.ToolboxItem(false)]
|
||
// 若要允许使用 ASP.NET AJAX 从脚本中调用此 Web 服务,请取消注释以下行。
|
||
[System.Web.Script.Services.ScriptService]
|
||
public class Service : System.Web.Services.WebService
|
||
{
|
||
protected static string _connectstring = ConfigurationManager.AppSettings["connectstring"].ToString();
|
||
protected static string _connectstringbld = ConfigurationManager.AppSettings["connectstringbld"].ToString();
|
||
protected static string _OracleHelperString = ConfigurationManager.AppSettings["OracleHelperString"].ToString();
|
||
protected static string _OracleHelperStringsp = ConfigurationManager.AppSettings["OracleHelperStringsp"].ToString();
|
||
protected static string _OracleHelperStringps = ConfigurationManager.AppSettings["OracleHelperStringps"].ToString();
|
||
private const String host = "https://ali-barcode.showapi.com";
|
||
private const String path = "/barcode";
|
||
private const String method = "GET";
|
||
private const String appcode = "99f7d21d35e647e98706f75109f4b655";
|
||
private static int _MaxDataQuantity = 4;
|
||
|
||
#region 创建对应的支付
|
||
[WebMethod]
|
||
/// <summary>
|
||
/// 支付参数
|
||
/// </summary>
|
||
/// <param name="TICKETCODE">交易订单号</param>
|
||
/// <param name="TICKETPRICE">交易金额</param>
|
||
/// <param name="USERPAYCODE">支付授权码</param>
|
||
/// <param name="PAYTYPE">支付方式</param>
|
||
/// <param name="PAYDESC">商品说明</param>
|
||
/// <returns></returns>
|
||
public string createpay(string TICKETCODE, string TICKETPRICE, string USERPAYCODE, string PAYTYPE = "ALIPAY", string PAYDESC = "服务区商品")
|
||
{
|
||
int TimeOutCount = 0;
|
||
string RetString = "", ticket_price = "", _mchnt_cd = "", _term_id = "";
|
||
string PayTime = TICKETCODE.Substring(TICKETCODE.Length - 14, 14);
|
||
PayTime = PayTime.Substring(0, 4) + "/" + PayTime.Substring(4, 2) + "/" + PayTime.Substring(6, 2) + " " +
|
||
PayTime.Substring(8, 2) + ":" + PayTime.Substring(10, 2) + ":" + PayTime.Substring(12, 2);
|
||
|
||
try
|
||
{
|
||
ticket_price = Math.Round(decimal.Parse(TICKETPRICE) * 100, 0).ToString();
|
||
}
|
||
catch { }
|
||
PayService.LogHelper.WriteServiceLog("接收到的参数:订单编码(TICKETCODE):" + TICKETCODE +
|
||
",金额(TICKETPRICE):" + TICKETPRICE + "," + (PAYTYPE == "ALIPAY" ? "支付宝" :
|
||
(PAYTYPE == "WECHAT" ? "微信" : "")) + "用户编码(USERPAYCODE):" + USERPAYCODE);
|
||
|
||
if (!Directory.Exists(AppDomain.CurrentDomain.BaseDirectory + "\\ErrorLog\\" + DateTime.Now.ToString("yyyyMMdd")))
|
||
{
|
||
Directory.CreateDirectory(AppDomain.CurrentDomain.BaseDirectory + "\\ErrorLog\\" + DateTime.Now.ToString("yyyyMMdd"));
|
||
}
|
||
CommonHelper.SaveTextFile("ErrorLog\\" + DateTime.Now.ToString("yyyyMMdd") + "\\" + TICKETCODE + ".txt", "");
|
||
|
||
Dictionary<string, string> micropay = Builder.buildmicropay(PAYTYPE, "高速驿网服务区", ticket_price, TICKETCODE, USERPAYCODE);
|
||
Dictionary<string, string> reqs = new Dictionary<string, string>();
|
||
Dictionary<string, string> nvs = new Dictionary<string, string>();
|
||
|
||
foreach (KeyValuePair<string, string> kvp in micropay)
|
||
{
|
||
reqs.Add(kvp.Key, kvp.Value);
|
||
switch (kvp.Key)
|
||
{
|
||
case "mchnt_cd":
|
||
_mchnt_cd = kvp.Value;
|
||
break;
|
||
case "term_id":
|
||
_term_id = kvp.Value;
|
||
break;
|
||
}
|
||
}
|
||
|
||
string sign = Utils.getSign(reqs);
|
||
reqs.Remove("sign");
|
||
reqs.Add("sign", sign);
|
||
|
||
XmlDocument _XmlDocument = new XmlDocument();
|
||
XmlElement _XmlElement = _XmlDocument.CreateElement("xml");
|
||
_XmlDocument.AppendChild(_XmlElement);
|
||
|
||
foreach (KeyValuePair<string, string> kvp in reqs)
|
||
{
|
||
XmlElement elem2 = _XmlDocument.CreateElement(kvp.Key);
|
||
elem2.InnerText = kvp.Value;
|
||
_XmlElement.AppendChild(elem2);
|
||
}
|
||
|
||
string reqBody = "<?xml version=\"1.0\" encoding=\"GBK\" standalone=\"yes\"?>" + _XmlDocument.OuterXml;
|
||
|
||
Console.WriteLine("==============================待编码字符串==============================\r\n" + reqBody);
|
||
|
||
reqBody = Utils.UrlEncode(reqBody, Encoding.GetEncoding(Const.charset));
|
||
|
||
Console.WriteLine("==============================编码后字符串==============================\r\n" + reqBody);
|
||
|
||
nvs.Add("req", reqBody);
|
||
|
||
|
||
StringBuilder result = new StringBuilder("");
|
||
PayCreateResult _PayCreateResult = new PayCreateResult();
|
||
|
||
try
|
||
{
|
||
try
|
||
{
|
||
TimeOutCount = int.Parse(ConfigurationManager.AppSettings["TimeOutCount"].ToString());
|
||
TimeOutCount = new Random().Next(1, TimeOutCount);
|
||
if (TimeOutCount > 0 && !TICKETCODE.EndsWith(TimeOutCount.ToString()))
|
||
{
|
||
StringBuilder buffer = new StringBuilder();
|
||
foreach (KeyValuePair<string, string> kvp in nvs)
|
||
{
|
||
if (buffer != null && buffer.ToString() != "")
|
||
{
|
||
buffer.AppendFormat("&{0}={1}", kvp.Key, Utils.UrlEncode(kvp.Value, Encoding.GetEncoding(Const.charset)));
|
||
}
|
||
else
|
||
{
|
||
buffer.AppendFormat("{0}={1}", kvp.Key, Utils.UrlEncode(kvp.Value, Encoding.GetEncoding(Const.charset)));
|
||
}
|
||
}
|
||
PayService.LogHelper.WriteServiceLog(buffer.ToString());
|
||
Thread.Sleep(TimeOutCount * 1000);
|
||
PayService.LogHelper.WriteServiceLog("操作超时");
|
||
_PayCreateResult.result_code = ((int)Common.RetCode.系统异常).ToString();
|
||
_PayCreateResult.result_desc = "操作超时";
|
||
_PayCreateResult.trade_no = TICKETCODE;
|
||
_PayCreateResult.trade_num = USERPAYCODE;
|
||
|
||
if (!Directory.Exists(AppDomain.CurrentDomain.BaseDirectory + "\\InsertData"))
|
||
{
|
||
Directory.CreateDirectory(AppDomain.CurrentDomain.BaseDirectory + "\\InsertData");
|
||
}
|
||
CommonHelper.SaveTextFile("InsertData\\" + TICKETCODE + ".txt", TICKETCODE + "|" + PAYTYPE + "|" + TICKETPRICE + "|" +
|
||
_PayCreateResult.result_code + "|" + _PayCreateResult.result_desc + "|" + _PayCreateResult.trade_no + "|" +
|
||
_PayCreateResult.trade_num + "|" + JSonHelper.ObjectToJson<PayCreateResult>(_PayCreateResult, false) + "|" +
|
||
((int)CommonHelper.MobilePayOperators.fuiou).ToString());
|
||
PayService.LogHelper.WriteServiceLog("接收到的参数:订单编码(TICKETCODE):" + TICKETCODE + ",金额(TICKETPRICE):" +
|
||
TICKETPRICE + "," + (PAYTYPE == "ALIPAY" ? "支付宝" : (PAYTYPE == "WECHAT" ? "微信" : "")) + "用户编码(USERPAYCODE):" +
|
||
USERPAYCODE + ",商户编码(mchnt_cd):" + _mchnt_cd + ",终端编码(term_id):" + _term_id + " 数据返回值:" +
|
||
JsonHelper.ObjectToJson<PayCreateResult>(_PayCreateResult, false));
|
||
|
||
return JsonHelper.ObjectToJson<PayCreateResult>(_PayCreateResult, false);
|
||
}
|
||
}
|
||
catch { }
|
||
HttpUtils httpUtils = new HttpUtils();
|
||
httpUtils.post(Const.micropay_url, nvs, result, 5);
|
||
RetString = HttpUtility.UrlDecode(result.ToString(), Encoding.GetEncoding(Const.charset));
|
||
//Console.WriteLine("==============================输出字符串==============================\r\n" + RetString);
|
||
_XmlDocument = new XmlDocument();
|
||
_XmlDocument.LoadXml(RetString);
|
||
RetString = JsonConvert.SerializeXmlNode(_XmlDocument);
|
||
|
||
try
|
||
{
|
||
//string PostUrl = Common.CreatUrl(TICKETPRICE, USERPAYCODE, TICKETCODE, PAYTYPE, PAYDESC);
|
||
//RetString = Common.Get_Http(PostUrl, 5000);
|
||
//判断类型
|
||
if (RetString != "")
|
||
{
|
||
JObject _JObject = JObject.Parse(RetString);
|
||
switch (_JObject["xml"]["result_code"].ToString())
|
||
{
|
||
case "000000":
|
||
_PayCreateResult.result_code = ((int)(Common.RetCode.成功)).ToString();
|
||
_PayCreateResult.result_desc = _JObject["xml"]["result_msg"].ToString();
|
||
_PayCreateResult.trade_no = _JObject["xml"]["reserved_mchnt_order_no"].ToString();
|
||
_PayCreateResult.trade_num = USERPAYCODE;
|
||
break;
|
||
case "030010":
|
||
_JObject = JObject.Parse(querypay(TICKETCODE, PAYTYPE, _mchnt_cd, _term_id));
|
||
_PayCreateResult.result_code = _JObject["result_code"].ToString();
|
||
_PayCreateResult.result_desc = _JObject["result_desc"].ToString();
|
||
_PayCreateResult.trade_no = _JObject["trade_no"].ToString();
|
||
_PayCreateResult.trade_num = _JObject["trade_num"].ToString();
|
||
break;
|
||
default:
|
||
_PayCreateResult.result_code = ((int)(Common.RetCode.请求参数错误)).ToString();
|
||
_PayCreateResult.result_desc = _JObject["xml"]["result_code"].ToString() + ":" +
|
||
_JObject["xml"]["result_msg"].ToString();
|
||
_PayCreateResult.trade_no = _JObject["xml"]["reserved_mchnt_order_no"].ToString();
|
||
_PayCreateResult.trade_num = USERPAYCODE;
|
||
break;
|
||
}
|
||
}
|
||
else
|
||
{
|
||
_PayCreateResult.result_code = ((int)Common.RetCode.系统异常).ToString();
|
||
_PayCreateResult.result_desc = "系统异常";
|
||
_PayCreateResult.trade_no = TICKETCODE;
|
||
_PayCreateResult.trade_num = USERPAYCODE;
|
||
}
|
||
|
||
}
|
||
catch (Exception ex)
|
||
{
|
||
_PayCreateResult.result_code = ((int)Common.RetCode.系统异常).ToString();
|
||
_PayCreateResult.result_desc = "错误为:" + RetString;// +"____其他错误:" + ex.Message;
|
||
_PayCreateResult.trade_no = TICKETCODE;
|
||
_PayCreateResult.trade_num = USERPAYCODE;
|
||
PayService.LogHelper.WriteServiceLog(ex.Message);
|
||
}
|
||
}
|
||
catch (Exception ex)
|
||
{
|
||
_PayCreateResult.result_code = ((int)Common.RetCode.订单待支付).ToString();
|
||
_PayCreateResult.result_desc = "等待支付";// +"____其他错误:" + ex.Message;
|
||
_PayCreateResult.trade_no = TICKETCODE;
|
||
_PayCreateResult.trade_num = USERPAYCODE;
|
||
PayService.LogHelper.WriteServiceLog(ex.Message);
|
||
}
|
||
|
||
if (!Directory.Exists(AppDomain.CurrentDomain.BaseDirectory + "\\InsertData"))
|
||
{
|
||
Directory.CreateDirectory(AppDomain.CurrentDomain.BaseDirectory + "\\InsertData");
|
||
}
|
||
CommonHelper.SaveTextFile("InsertData\\" + TICKETCODE + ".txt", TICKETCODE + "|" + PAYTYPE + "|" + TICKETPRICE + "|" +
|
||
_PayCreateResult.result_code + "|" + _PayCreateResult.result_desc + "|" + _PayCreateResult.trade_no + "|" +
|
||
_PayCreateResult.trade_num + "|" + JSonHelper.ObjectToJson<PayCreateResult>(_PayCreateResult, false) + "|" +
|
||
((int)CommonHelper.MobilePayOperators.fuiou).ToString());
|
||
|
||
#region 已注释
|
||
/*try
|
||
{
|
||
OracleHelper _OracleHelper = new OracleHelper();
|
||
_OracleHelper.ConnString = _connectstring;
|
||
|
||
string str = "SELECT * FROM HIGHWAY_EXCHANGE.T_MOBILE_PAYCHECK WHERE TICKET_CODE = '" + TICKETCODE + "'";
|
||
DataTable _DataTable = _OracleHelper.ExcuteSqlGetDataSet(str, "T_MOBILE_PAYCHECK").Tables[0];
|
||
if (_DataTable.Rows.Count == 0)
|
||
{
|
||
str = @"INSERT INTO HIGHWAY_EXCHANGE.T_MOBILE_PAYCHECK (MOBILE_PAYCHECK_ID,MOBILEPAY_DATE,
|
||
MOBILEPAY_TYPE,TICKET_CODE,TICKET_PRICE,TRADE_NO,TRADE_NUM,RESULT_CODE,RESULT_DESC,JSON_STRING)
|
||
VALUES (1,TO_DATE('" + PayTime + "','YYYY/MM/DD HH24:MI:SS'),'" + PAYTYPE + "','" + TICKETCODE + "'," +
|
||
TICKETPRICE + ",'" + _PayCreateResult.trade_no + "','" + _PayCreateResult.trade_num + "','" +
|
||
_PayCreateResult.result_code + "','" + _PayCreateResult.result_desc + "','" +
|
||
JsonHelper.ObjectToJson<PayCreateResult>(_PayCreateResult, false) + "')";
|
||
_OracleHelper.ExcuteSql(str);
|
||
}
|
||
else if (_DataTable.Rows[0]["TRADE_NO"].ToString() == "")
|
||
{
|
||
str = "UPDATE HIGHWAY_EXCHANGE.T_MOBILE_PAYCHECK SET TRADE_NO = '" + _PayCreateResult.trade_no +
|
||
"' WHERE TICKET_CODE = '" + TICKETCODE + "'";
|
||
_OracleHelper.ExcuteSql(str);
|
||
}
|
||
str = @"INSERT INTO HIGHWAY_EXCHANGE.T_SELLDATA_EXTRA (SELLDATA_ID,SELLDATA_TYPE,
|
||
SELLDATA_DATE,SERVERPARTCODE,SHOPCODE,MACHINECODE,TICKETCODE,FACTAMOUNT,SELLDATA_EXTRA_DESC)
|
||
VALUES(HIGHWAY_EXCHANGE.SEQ_SELLDATA_EXTRA.NEXTVAL,'" + PAYTYPE + "',TO_DATE('" + PayTime +
|
||
"','YYYY/MM/DD HH24:MI:SS'),'" + TICKETCODE.Substring(0, 6) +
|
||
"','" + (TICKETCODE.Length == 28 ? TICKETCODE.Substring(6, 4) : TICKETCODE.Substring(6, 6)) +
|
||
"','" + (TICKETCODE.Length == 28 ? (TICKETCODE.Substring(10, 4).StartsWith("0") ?
|
||
TICKETCODE.Substring(11, 3) : TICKETCODE.Substring(10, 4)) : (TICKETCODE.Substring(12, 4).StartsWith("0") ?
|
||
TICKETCODE.Substring(13, 3) : TICKETCODE.Substring(12, 4))) + "','" + TICKETCODE + "'," +
|
||
TICKETPRICE + ",'" + _PayCreateResult.result_desc + "')";
|
||
_OracleHelper.ExcuteSql(str);
|
||
|
||
CommonHelper.SaveTextFile("ErrorLog\\" + DateTime.Now.ToString("yyyyMMdd") +
|
||
"\\" + TICKETCODE + ".txt", _PayCreateResult.result_desc);
|
||
}
|
||
catch (Exception ex)
|
||
{
|
||
PayService.LogHelper.WriteServiceLog(ex.Message);
|
||
try
|
||
{
|
||
OracleHelper _OracleHelper = new OracleHelper(_OracleHelperString.Split(',')[0],
|
||
_OracleHelperString.Split(',')[1], _OracleHelperString.Split(',')[2], _OracleHelperString.Split(',')[3]);
|
||
string str = @"INSERT INTO HIGHWAY_EXCHANGE.T_SELLDATA_EXTRA (SELLDATA_ID,SELLDATA_TYPE,
|
||
SELLDATA_DATE,SERVERPARTCODE,SHOPCODE,MACHINECODE,TICKETCODE,FACTAMOUNT,SELLDATA_EXTRA_DESC)
|
||
VALUES(HIGHWAY_EXCHANGE.SEQ_SELLDATA_EXTRA.NEXTVAL,'" + PAYTYPE + "',TO_DATE('" + PayTime +
|
||
"','YYYY/MM/DD HH24:MI:SS'),'" + TICKETCODE.Substring(0, 6) +
|
||
"','" + (TICKETCODE.Length == 28 ? TICKETCODE.Substring(6, 4) : TICKETCODE.Substring(6, 6)) +
|
||
"','" + (TICKETCODE.Length == 28 ? (TICKETCODE.Substring(10, 4).StartsWith("0") ?
|
||
TICKETCODE.Substring(11, 3) : TICKETCODE.Substring(10, 4)) : (TICKETCODE.Substring(12, 4).StartsWith("0") ?
|
||
TICKETCODE.Substring(13, 3) : TICKETCODE.Substring(12, 4))) + "','" + TICKETCODE + "'," +
|
||
TICKETPRICE + ",'" + _PayCreateResult.result_desc + "')";
|
||
_OracleHelper.ExcuteSql(str);
|
||
|
||
CommonHelper.SaveTextFile("ErrorLog\\" + DateTime.Now.ToString("yyyyMMdd") +
|
||
"\\" + TICKETCODE + ".txt", _PayCreateResult.result_desc);
|
||
}
|
||
catch (Exception _Exception)
|
||
{
|
||
PayService.LogHelper.WriteServiceLog(_Exception.Message);
|
||
}
|
||
}*/
|
||
#endregion
|
||
|
||
PayService.LogHelper.WriteServiceLog("接收到的参数:订单编码(TICKETCODE):" + TICKETCODE + ",金额(TICKETPRICE):" +
|
||
TICKETPRICE + "," + (PAYTYPE == "ALIPAY" ? "支付宝" : (PAYTYPE == "WECHAT" ? "微信" : "")) + "用户编码(USERPAYCODE):" +
|
||
USERPAYCODE + ",商户编码(mchnt_cd):" + _mchnt_cd + ",终端编码(term_id):" + _term_id + " 数据返回值:" +
|
||
JsonHelper.ObjectToJson<PayCreateResult>(_PayCreateResult, false));
|
||
return JsonHelper.ObjectToJson<PayCreateResult>(_PayCreateResult, false);
|
||
}
|
||
#endregion
|
||
|
||
#region 查询对应的支付
|
||
[WebMethod]
|
||
/// <summary>
|
||
/// 查询参数
|
||
/// </summary>
|
||
/// <param name="TICKETCODE">交易订单号</param>
|
||
/// <param name="PAYTYPE">支付方式</param>
|
||
/// <param name="_mchnt_cd">商户号</param>
|
||
/// <param name="_term_id">台牌号</param>
|
||
/// <param name="InsertType">插入标志</param>
|
||
/// <returns></returns>
|
||
public string querypay(string TICKETCODE, //string OUT_TRADE_NO, string TICKETPRICE,
|
||
string PAYTYPE, string _mchnt_cd = "", string _term_id = "", string InsertType = "0")
|
||
{
|
||
string RetString = "";
|
||
|
||
Dictionary<string, string> micropay = Builder.querymicropay(PAYTYPE, TICKETCODE, _mchnt_cd, _term_id);
|
||
Dictionary<string, string> reqs = new Dictionary<string, string>();
|
||
Dictionary<string, string> nvs = new Dictionary<string, string>();
|
||
//PayService.LogHelper.WriteServiceLog(PAYDESC);
|
||
|
||
foreach (KeyValuePair<string, string> kvp in micropay)
|
||
{
|
||
reqs.Add(kvp.Key, kvp.Value);
|
||
switch (kvp.Key)
|
||
{
|
||
case "mchnt_cd":
|
||
_mchnt_cd = kvp.Value;
|
||
break;
|
||
case "term_id":
|
||
_term_id = kvp.Value;
|
||
break;
|
||
}
|
||
}
|
||
|
||
string sign = Utils.getSign(reqs);
|
||
reqs.Remove("sign");
|
||
reqs.Add("sign", sign);
|
||
|
||
XmlDocument _XmlDocument = new XmlDocument();
|
||
XmlElement _XmlElement = _XmlDocument.CreateElement("xml");
|
||
_XmlDocument.AppendChild(_XmlElement);
|
||
|
||
foreach (KeyValuePair<string, string> kvp in reqs)
|
||
{
|
||
XmlElement elem2 = _XmlDocument.CreateElement(kvp.Key);
|
||
elem2.InnerText = kvp.Value;
|
||
_XmlElement.AppendChild(elem2);
|
||
}
|
||
|
||
string reqBody = "<?xml version=\"1.0\" encoding=\"GBK\" standalone=\"yes\"?>" + _XmlDocument.OuterXml;
|
||
|
||
Console.WriteLine("==============================待编码字符串==============================\r\n" + reqBody);
|
||
|
||
reqBody = Utils.UrlEncode(reqBody, Encoding.GetEncoding(Const.charset));
|
||
|
||
Console.WriteLine("==============================编码后字符串==============================\r\n" + reqBody);
|
||
|
||
nvs.Add("req", reqBody);
|
||
|
||
StringBuilder result = new StringBuilder("");
|
||
PayQueryResult _PayQueryResult = new PayQueryResult();
|
||
|
||
try
|
||
{
|
||
HttpUtils httpUtils = new HttpUtils();
|
||
httpUtils.post(Const.commonQuery_url, nvs, result);
|
||
RetString = HttpUtility.UrlDecode(result.ToString(), Encoding.GetEncoding(Const.charset));
|
||
//Console.WriteLine("==============================输出字符串==============================\r\n" + RetString);
|
||
_XmlDocument = new XmlDocument();
|
||
_XmlDocument.LoadXml(RetString);
|
||
RetString = JsonConvert.SerializeXmlNode(_XmlDocument);
|
||
|
||
try
|
||
{
|
||
//查询数据
|
||
//string PostUrl = string.Empty;
|
||
//PostUrl = Common.trade_query(OUT_TRADE_NO, PAYTYPE);
|
||
//RetString = Common.Get_Http(PostUrl, 5000);
|
||
if (RetString != "")
|
||
{
|
||
JObject _JObject = JObject.Parse(RetString);
|
||
switch (_JObject["xml"]["result_code"].ToString())
|
||
{
|
||
case "000000":
|
||
switch (_JObject["xml"]["trans_stat"].ToString().ToLower())
|
||
{
|
||
case "success":
|
||
_PayQueryResult.result_code = ((int)(Common.RetCode.成功)).ToString();
|
||
_PayQueryResult.result_desc = _JObject["xml"]["trans_stat"].ToString();
|
||
_PayQueryResult.trade_no = _JObject["xml"]["mchnt_order_no"].ToString();
|
||
_PayQueryResult.trade_num = _JObject["xml"]["transaction_id"].ToString();
|
||
if (InsertType == "1")
|
||
{
|
||
InsertData(TICKETCODE, PAYTYPE, _JObject, _PayQueryResult);
|
||
}
|
||
break;
|
||
case "userpaying":
|
||
PayService.LogHelper.WriteServiceLog(TICKETCODE + "等待支付中......");
|
||
//System.Threading.Thread.Sleep(5 * 1000);
|
||
|
||
_JObject = JObject.Parse(query(TICKETCODE, _mchnt_cd, _term_id, PAYTYPE));
|
||
_PayQueryResult.result_code = _JObject["result_code"].ToString();
|
||
_PayQueryResult.result_desc = _JObject["result_desc"].ToString();
|
||
_PayQueryResult.trade_no = _JObject["trade_no"].ToString();
|
||
_PayQueryResult.trade_num = _JObject["trade_num"].ToString();
|
||
break;
|
||
case "refund":
|
||
_PayQueryResult.result_code = ((int)(Common.RetCode.转入退款)).ToString();
|
||
_PayQueryResult.result_desc = _JObject["xml"]["trans_stat"].ToString();
|
||
_PayQueryResult.trade_no = TICKETCODE;
|
||
_PayQueryResult.trade_num = "";
|
||
if (InsertType == "1")
|
||
{
|
||
InsertData(TICKETCODE, PAYTYPE, _JObject, _PayQueryResult);
|
||
}
|
||
break;
|
||
case "notpay":
|
||
_PayQueryResult.result_code = ((int)(Common.RetCode.未支付)).ToString();
|
||
_PayQueryResult.result_desc = _JObject["xml"]["trans_stat"].ToString();
|
||
_PayQueryResult.trade_no = TICKETCODE;
|
||
_PayQueryResult.trade_num = "";
|
||
break;
|
||
case "closed":
|
||
_PayQueryResult.result_code = ((int)(Common.RetCode.已关闭)).ToString();
|
||
_PayQueryResult.result_desc = _JObject["xml"]["trans_stat"].ToString();
|
||
_PayQueryResult.trade_no = TICKETCODE;
|
||
_PayQueryResult.trade_num = "";
|
||
break;
|
||
case "revoked":
|
||
_PayQueryResult.result_code = ((int)(Common.RetCode.已撤销)).ToString();
|
||
_PayQueryResult.result_desc = _JObject["xml"]["trans_stat"].ToString();
|
||
_PayQueryResult.trade_no = TICKETCODE;
|
||
_PayQueryResult.trade_num = "";
|
||
break;
|
||
case "payerror":
|
||
_PayQueryResult.result_code = ((int)(Common.RetCode.支付失败)).ToString();
|
||
_PayQueryResult.result_desc = _JObject["xml"]["trans_stat"].ToString();
|
||
_PayQueryResult.trade_no = TICKETCODE;
|
||
_PayQueryResult.trade_num = "";
|
||
break;
|
||
default:
|
||
_PayQueryResult.result_code = ((int)(Common.RetCode.请求参数错误)).ToString();
|
||
_PayQueryResult.result_desc = _JObject["xml"]["result_code"].ToString() + ":" +
|
||
_JObject["xml"]["trans_stat"].ToString();
|
||
_PayQueryResult.trade_no = _JObject["xml"]["mchnt_order_no"].ToString();
|
||
_PayQueryResult.trade_num = "";
|
||
break;
|
||
}
|
||
break;
|
||
default:
|
||
switch (_JObject["xml"]["trans_stat"].ToString().ToLower())
|
||
{
|
||
case "userpaying":
|
||
PayService.LogHelper.WriteServiceLog(TICKETCODE + "等待支付中......");
|
||
//System.Threading.Thread.Sleep(5 * 1000);
|
||
|
||
_JObject = JObject.Parse(query(TICKETCODE, _mchnt_cd, _term_id, PAYTYPE));
|
||
_PayQueryResult.result_code = _JObject["result_code"].ToString();
|
||
_PayQueryResult.result_desc = _JObject["result_desc"].ToString();
|
||
_PayQueryResult.trade_no = _JObject["trade_no"].ToString();
|
||
_PayQueryResult.trade_num = _JObject["trade_num"].ToString();
|
||
break;
|
||
default:
|
||
_PayQueryResult.result_code = ((int)(Common.RetCode.请求参数错误)).ToString();
|
||
_PayQueryResult.result_desc = _JObject["xml"]["result_code"].ToString() + ":" +
|
||
(string.IsNullOrEmpty(_JObject["xml"]["trans_stat"].ToString()) ?
|
||
_JObject["xml"]["result_msg"].ToString() : _JObject["xml"]["trans_stat"].ToString());
|
||
_PayQueryResult.trade_no = _JObject["xml"]["mchnt_order_no"].ToString();
|
||
_PayQueryResult.trade_num = "";
|
||
break;
|
||
}
|
||
break;
|
||
}
|
||
}
|
||
else
|
||
{
|
||
_PayQueryResult.result_code = ((int)Common.RetCode.系统异常).ToString();
|
||
_PayQueryResult.result_desc = "系统异常";
|
||
_PayQueryResult.trade_no = TICKETCODE;
|
||
_PayQueryResult.trade_num = "";
|
||
}
|
||
}
|
||
catch (Exception ex)
|
||
{
|
||
_PayQueryResult.result_code = ((int)Common.RetCode.系统异常).ToString();
|
||
_PayQueryResult.result_desc = "错误为:" + RetString; //"____其他错误:" + ex.Message;
|
||
_PayQueryResult.trade_no = TICKETCODE;
|
||
_PayQueryResult.trade_num = "";
|
||
PayService.LogHelper.WriteServiceLog(ex.Message);
|
||
}
|
||
}
|
||
catch (Exception ex)
|
||
{
|
||
_PayQueryResult.result_code = ((int)Common.RetCode.系统异常).ToString();
|
||
_PayQueryResult.result_desc = ex.Message;// +"____其他错误:" + ex.Message;
|
||
_PayQueryResult.trade_no = TICKETCODE;
|
||
_PayQueryResult.trade_num = "";
|
||
PayService.LogHelper.WriteServiceLog(ex.Message);
|
||
}
|
||
|
||
|
||
PayService.LogHelper.WriteServiceLog("查询接收到的参数:订单编码(TICKETCODE):" + TICKETCODE + ",支付方式(PAYTYPE):" +
|
||
PAYTYPE + ",商户编码(mchnt_cd):" + _mchnt_cd + ",终端编码(term_id):" + _term_id + " 数据返回值:" +
|
||
JsonHelper.ObjectToJson<PayQueryResult>(_PayQueryResult, false));
|
||
return JsonHelper.ObjectToJson<PayQueryResult>(_PayQueryResult, false);
|
||
}
|
||
#endregion
|
||
|
||
#region 移动支付退款
|
||
[WebMethod]
|
||
/// <summary>
|
||
/// 退款参数
|
||
/// </summary>
|
||
/// <param name="mchnt_order_no">交易订单号</param>
|
||
/// <param name="refund_amt">交易金额</param>
|
||
/// <param name="refund_order_no">退货订单号</param>
|
||
/// <param name="order_type">支付方式</param>
|
||
/// <returns></returns>
|
||
public string refundpay(string mchnt_order_no, string refund_order_no, string refund_amt, string order_type)
|
||
{
|
||
string RetString = "";
|
||
string ticket_price = "", _mchnt_cd = "", _term_id = "";
|
||
string PayTime = refund_order_no.Substring(refund_order_no.Length - 14, 14);
|
||
PayTime = PayTime.Substring(0, 4) + "/" + PayTime.Substring(4, 2) + "/" + PayTime.Substring(6, 2) + " " +
|
||
PayTime.Substring(8, 2) + ":" + PayTime.Substring(10, 2) + ":" + PayTime.Substring(12, 2);
|
||
|
||
try
|
||
{
|
||
ticket_price = Math.Round(decimal.Parse(refund_amt) * 100, 0).ToString();
|
||
}
|
||
catch { }
|
||
|
||
PayService.LogHelper.WriteServiceLog("接收到的参数:订单编码(TICKETCODE):" + refund_order_no + ",退款金额(TICKETPRICE):" +
|
||
refund_amt + "," + CommonHelper.GetPayType(order_type) + "退款码(USERPAYCODE):" + mchnt_order_no);
|
||
|
||
if (!Directory.Exists(AppDomain.CurrentDomain.BaseDirectory + "\\ErrorLog\\" + DateTime.Now.ToString("yyyyMMdd")))
|
||
{
|
||
Directory.CreateDirectory(AppDomain.CurrentDomain.BaseDirectory + "\\ErrorLog\\" + DateTime.Now.ToString("yyyyMMdd"));
|
||
}
|
||
CommonHelper.SaveTextFile("ErrorLog\\" + DateTime.Now.ToString("yyyyMMdd") + "\\R" + refund_order_no + ".txt", "");
|
||
|
||
Dictionary<string, string> micropay = Builder.refundmicropay(mchnt_order_no, refund_order_no, ticket_price, order_type);
|
||
Dictionary<string, string> reqs = new Dictionary<string, string>();
|
||
Dictionary<string, string> nvs = new Dictionary<string, string>();
|
||
|
||
foreach (KeyValuePair<string, string> kvp in micropay)
|
||
{
|
||
reqs.Add(kvp.Key, kvp.Value);
|
||
switch (kvp.Key)
|
||
{
|
||
case "mchnt_cd":
|
||
_mchnt_cd = kvp.Value;
|
||
break;
|
||
case "term_id":
|
||
_term_id = kvp.Value;
|
||
break;
|
||
}
|
||
}
|
||
|
||
string sign = Utils.getSign(reqs);
|
||
reqs.Remove("sign");
|
||
reqs.Add("sign", sign);
|
||
|
||
XmlDocument _XmlDocument = new XmlDocument();
|
||
XmlElement _XmlElement = _XmlDocument.CreateElement("xml");
|
||
_XmlDocument.AppendChild(_XmlElement);
|
||
|
||
foreach (KeyValuePair<string, string> kvp in reqs)
|
||
{
|
||
XmlElement elem2 = _XmlDocument.CreateElement(kvp.Key);
|
||
elem2.InnerText = kvp.Value;
|
||
_XmlElement.AppendChild(elem2);
|
||
}
|
||
|
||
string reqBody = "<?xml version=\"1.0\" encoding=\"GBK\" standalone=\"yes\"?>" + _XmlDocument.OuterXml;
|
||
|
||
Console.WriteLine("==============================待编码字符串==============================\r\n" + reqBody);
|
||
|
||
reqBody = Utils.UrlEncode(reqBody, Encoding.GetEncoding(Const.charset));
|
||
|
||
Console.WriteLine("==============================编码后字符串==============================\r\n" + reqBody);
|
||
|
||
nvs.Add("req", reqBody);
|
||
|
||
StringBuilder result = new StringBuilder("");
|
||
PayQueryResult _PayQueryResult = new PayQueryResult();
|
||
|
||
try
|
||
{
|
||
HttpUtils httpUtils = new HttpUtils();
|
||
httpUtils.post(Const.commonRefund_url, nvs, result);
|
||
RetString = HttpUtility.UrlDecode(result.ToString(), Encoding.GetEncoding(Const.charset));
|
||
//Console.WriteLine("==============================输出字符串==============================\r\n" + RetString);
|
||
_XmlDocument = new XmlDocument();
|
||
_XmlDocument.LoadXml(RetString);
|
||
RetString = JsonConvert.SerializeXmlNode(_XmlDocument);
|
||
|
||
|
||
try
|
||
{
|
||
//查询数据
|
||
if (RetString != "")
|
||
{
|
||
JObject _JObject = JObject.Parse(RetString);
|
||
switch (_JObject["xml"]["result_code"].ToString())
|
||
{
|
||
case "000000":
|
||
_PayQueryResult.result_code = ((int)(Common.RetCode.成功)).ToString();
|
||
_PayQueryResult.result_desc = _JObject["xml"]["result_msg"].ToString();
|
||
_PayQueryResult.trade_no = _JObject["xml"]["mchnt_order_no"].ToString();
|
||
_PayQueryResult.trade_num = refund_order_no;
|
||
break;
|
||
case "1012":
|
||
_PayQueryResult.result_code = ((int)(Common.RetCode.余额不足)).ToString();
|
||
_PayQueryResult.result_desc = _JObject["xml"]["result_msg"].ToString();
|
||
_PayQueryResult.trade_no = mchnt_order_no;
|
||
_PayQueryResult.trade_num = refund_order_no;
|
||
break;
|
||
default:
|
||
_PayQueryResult.result_code = ((int)(Common.RetCode.请求参数错误)).ToString();
|
||
_PayQueryResult.result_desc = _JObject["xml"]["result_code"].ToString() + ":" +
|
||
_JObject["xml"]["result_msg"].ToString();
|
||
_PayQueryResult.trade_no = mchnt_order_no;
|
||
_PayQueryResult.trade_num = refund_order_no;
|
||
break;
|
||
}
|
||
}
|
||
else
|
||
{
|
||
_PayQueryResult.result_code = ((int)Common.RetCode.系统异常).ToString();
|
||
_PayQueryResult.result_desc = "系统异常";
|
||
_PayQueryResult.trade_no = mchnt_order_no;
|
||
_PayQueryResult.trade_num = refund_order_no;
|
||
}
|
||
}
|
||
catch (Exception ex)
|
||
{
|
||
_PayQueryResult.result_code = ((int)Common.RetCode.系统异常).ToString();
|
||
_PayQueryResult.result_desc = "错误为:" + RetString; //"____其他错误:" + ex.Message;
|
||
_PayQueryResult.trade_no = mchnt_order_no;
|
||
_PayQueryResult.trade_num = refund_order_no;
|
||
PayService.LogHelper.WriteServiceLog(ex.Message);
|
||
}
|
||
}
|
||
catch (Exception ex)
|
||
{
|
||
|
||
_PayQueryResult.result_code = ((int)Common.RetCode.系统异常).ToString();
|
||
_PayQueryResult.result_desc = ex.Message;// +"____其他错误:" + ex.Message;
|
||
_PayQueryResult.trade_no = mchnt_order_no;
|
||
_PayQueryResult.trade_num = refund_order_no;
|
||
PayService.LogHelper.WriteServiceLog(ex.Message);
|
||
}
|
||
|
||
try
|
||
{
|
||
OracleHelper _OracleHelper = new OracleHelper();
|
||
_OracleHelper.ConnString = _connectstring;
|
||
|
||
string str = "";
|
||
DataTable _DataTable = new DataTable();
|
||
str = @"INSERT INTO HIGHWAY_EXCHANGE.T_SELLDATA_EXTRA (SELLDATA_ID,SELLDATA_TYPE,SELLDATA_DATE,
|
||
SERVERPARTCODE,SHOPCODE,MACHINECODE,TICKETCODE,FACTAMOUNT,SELLDATA_EXTRA_DESC,LINENUM)
|
||
VALUES(HIGHWAY_EXCHANGE.SEQ_SELLDATA_EXTRA.NEXTVAL,'" + order_type + "',TO_DATE('" + PayTime +
|
||
"','YYYY/MM/DD HH24:MI:SS'),'" + refund_order_no.Substring(0, 6) + "','" + (refund_order_no.Length == 28 ?
|
||
refund_order_no.Substring(6, 4) : refund_order_no.Substring(6, 6)) + "','" +
|
||
(refund_order_no.Length == 28 ? (refund_order_no.Substring(10, 4).StartsWith("0") ?
|
||
refund_order_no.Substring(11, 3) : refund_order_no.Substring(10, 4)) :
|
||
(refund_order_no.Substring(12, 4).StartsWith("0") ? refund_order_no.Substring(13, 3) :
|
||
refund_order_no.Substring(12, 4))) + "','" + refund_order_no + "',-" + refund_amt + ",'" +
|
||
_PayQueryResult.result_desc + "(" + mchnt_order_no + ")'," + (int)CommonHelper.MobilePayOperators.fuiou + ")";
|
||
_OracleHelper.ExcuteSql(str);
|
||
|
||
CommonHelper.SaveTextFile("ErrorLog\\" + DateTime.Now.ToString("yyyyMMdd") +
|
||
"\\R" + refund_order_no + ".txt", _PayQueryResult.result_desc);
|
||
}
|
||
catch (Exception ex)
|
||
{
|
||
string LocalPath = System.AppDomain.CurrentDomain.BaseDirectory + "\\bin\\ErrorLog";
|
||
if (!Directory.Exists(LocalPath))
|
||
{
|
||
Directory.CreateDirectory(LocalPath);
|
||
}
|
||
if (!File.Exists(LocalPath + "\\" + refund_order_no + ".txt"))
|
||
{
|
||
CommonHelper.SaveTextFile("bin\\ErrorLog\\" + refund_order_no + ".txt",
|
||
refund_order_no + "|" + order_type + "|-" + refund_amt + "|" + _PayQueryResult.result_code + "|" +
|
||
_PayQueryResult.result_desc + "(" + mchnt_order_no + ")|" + _PayQueryResult.trade_no + "|" +
|
||
_PayQueryResult.trade_num + "|" + JSonHelper.ObjectToJson<PayQueryResult>(_PayQueryResult, false) + "|" +
|
||
((int)CommonHelper.MobilePayOperators.fuiou).ToString());
|
||
}
|
||
PayService.LogHelper.WriteServiceLog("退款单号:" + refund_order_no + "," + ex.Message);
|
||
try
|
||
{
|
||
OracleHelper _OracleHelper = new OracleHelper(_OracleHelperString.Split(',')[0],
|
||
_OracleHelperString.Split(',')[1], _OracleHelperString.Split(',')[2], _OracleHelperString.Split(',')[3]);
|
||
string str = @"INSERT INTO HIGHWAY_EXCHANGE.T_SELLDATA_EXTRA (SELLDATA_ID,SELLDATA_TYPE,SELLDATA_DATE,
|
||
SERVERPARTCODE,SHOPCODE,MACHINECODE,TICKETCODE,FACTAMOUNT,SELLDATA_EXTRA_DESC,LINENUM)
|
||
VALUES(HIGHWAY_EXCHANGE.SEQ_SELLDATA_EXTRA.NEXTVAL,'" + order_type + "',TO_DATE('" + PayTime +
|
||
"','YYYY/MM/DD HH24:MI:SS'),'" + refund_order_no.Substring(0, 6) + "','" + (refund_order_no.Length == 28 ?
|
||
refund_order_no.Substring(6, 4) : refund_order_no.Substring(6, 6)) + "','" +
|
||
(refund_order_no.Length == 28 ? (refund_order_no.Substring(10, 4).StartsWith("0") ?
|
||
refund_order_no.Substring(11, 3) : refund_order_no.Substring(10, 4)) :
|
||
(refund_order_no.Substring(12, 4).StartsWith("0") ? refund_order_no.Substring(13, 3) :
|
||
refund_order_no.Substring(12, 4))) + "','" + refund_order_no +
|
||
"',-" + refund_amt + ",'" + _PayQueryResult.result_desc + "(" + mchnt_order_no +
|
||
")'," + (int)CommonHelper.MobilePayOperators.fuiou + ")";
|
||
_OracleHelper.ExcuteSql(str);
|
||
|
||
CommonHelper.SaveTextFile("ErrorLog\\" + DateTime.Now.ToString("yyyyMMdd") +
|
||
"\\R" + refund_order_no + ".txt", _PayQueryResult.result_desc + "(" + mchnt_order_no + ")");
|
||
}
|
||
catch (Exception _Exception)
|
||
{
|
||
PayService.LogHelper.WriteServiceLog("退款单号:" + refund_order_no + "," + _Exception.Message);
|
||
}
|
||
}
|
||
PayService.LogHelper.WriteServiceLog("接收到的退款参数:退款单号(refund_order_no):" + refund_order_no +
|
||
",退款金额(refund_amt):" + refund_amt + "," + (order_type == "ALIPAY" ? "支付宝" :
|
||
(order_type == "WECHAT" ? "微信" : "")) + "订单编码(USERPAYCODE):" + mchnt_order_no +
|
||
",商户编码(mchnt_cd):" + _mchnt_cd + ",终端编码(term_id):" + _term_id +
|
||
" 数据返回值:" + JsonHelper.ObjectToJson<PayQueryResult>(_PayQueryResult, false));
|
||
return JsonHelper.ObjectToJson<PayQueryResult>(_PayQueryResult, false);
|
||
}
|
||
#endregion
|
||
|
||
#region 获取门店对应商户号
|
||
/// <summary>
|
||
/// 获取门店商户号及支付服务商
|
||
/// </summary>
|
||
/// <param name="ticketCode"></param>
|
||
/// <returns></returns>
|
||
[WebMethod]
|
||
public string GetMerchant(string serverPartCode, string shopCode)
|
||
{
|
||
PayCreateResult _PayCreateResult = new PayCreateResult();
|
||
_PayCreateResult.result_code = ((int)CommonHelper.ResCode.成功).ToString();
|
||
_PayCreateResult.result_desc = "1001";
|
||
_PayCreateResult.trade_no = "";
|
||
_PayCreateResult.trade_num = "";
|
||
return JSonHelper.ObjectToJson<PayCreateResult>(_PayCreateResult, false);
|
||
}
|
||
#endregion
|
||
|
||
#region 结账通知
|
||
[WebMethod]
|
||
/// <summary>
|
||
/// 结账通知参数
|
||
/// </summary>
|
||
/// <param name="SERVERPARTCODE">服务区码</param>
|
||
/// <param name="SHOPCODE">门店编码</param>
|
||
/// <param name="MACHINECODE">收银机号</param>
|
||
/// <param name="CASHPAY">结账金额</param>
|
||
/// <param name="TOTALSELLAMOUNT">销售金额</param>
|
||
/// <param name="ENDACCOUNT_DATE">结账时间</param>
|
||
/// <param name="SHOPNAME">商家名称</param>
|
||
/// <returns></returns>
|
||
public string endaccountinfo(string SERVERPARTCODE, string SHOPCODE, string MACHINECODE, string CASHPAY,
|
||
string TOTALSELLAMOUNT, string ENDACCOUNT_DATE, string SHOPNAME)
|
||
{
|
||
PayQueryResult _PayQueryResult = new PayQueryResult();
|
||
try
|
||
{
|
||
OracleHelper _OracleHelper = new OracleHelper();
|
||
_OracleHelper.ConnString = _connectstringbld;
|
||
string str = @"INSERT INTO HIGHWAY_EXCHANGE.T_OPERATELOG (OPERATELOG_ID,SERVERPARTCODE,
|
||
SHOPCODE,MACHINECODE,CASHPAY,TOTALSELLAMOUNT,ENDACCOUNT_DATE,SHOPNAME)
|
||
VALUES(HIGHWAY_EXCHANGE.SEQ_OPERATELOG.NEXTVAL,'" + SERVERPARTCODE + "','" + SHOPCODE +
|
||
"','" + MACHINECODE + "'," + CASHPAY + "," + TOTALSELLAMOUNT + ",TO_DATE('" +
|
||
ENDACCOUNT_DATE + "','YYYY/MM/DD HH24:MI:SS'),'" + SHOPNAME + "')";
|
||
_OracleHelper.ExcuteSql(str);
|
||
//查询数据
|
||
_PayQueryResult.result_code = ((int)(Common.RetCode.成功)).ToString();
|
||
_PayQueryResult.result_desc = "记录成功";
|
||
_PayQueryResult.trade_no = SHOPCODE;
|
||
_PayQueryResult.trade_num = SERVERPARTCODE;
|
||
}
|
||
catch (Exception ex)
|
||
{
|
||
_PayQueryResult.result_code = ((int)Common.RetCode.系统异常).ToString();
|
||
_PayQueryResult.result_desc = "记录失败"; //"____其他错误:" + ex.Message;
|
||
_PayQueryResult.trade_no = SHOPCODE;
|
||
_PayQueryResult.trade_num = SERVERPARTCODE;
|
||
LogHelper.WriteServiceLog(ex.Message);
|
||
}
|
||
|
||
LogHelper.WriteServiceLog("接收到的结账信息参数:服务区码(SERVERPARTCODE):" + SERVERPARTCODE +
|
||
",门店编码(SHOPCODE):" + SHOPCODE + ",收银机号(MACHINECODE):" + MACHINECODE +
|
||
",结账金额(CASHPAY):" + CASHPAY + ",销售金额(TOTALSELLAMOUNT):" + TOTALSELLAMOUNT +
|
||
",结账时间(ENDACCOUNT_DATE):" + ENDACCOUNT_DATE + ",商家名称(SHOPNAME):" + SHOPNAME +
|
||
" 数据返回值:" + JsonHelper.ObjectToJson<PayQueryResult>(_PayQueryResult, false));
|
||
return JsonHelper.ObjectToJson<PayQueryResult>(_PayQueryResult, false);
|
||
}
|
||
#endregion
|
||
|
||
#region 会员卡消费
|
||
[WebMethod]
|
||
/// <summary>
|
||
/// 会员卡消费参数
|
||
/// </summary>
|
||
/// <param name="MEMBERSHIP_ID">会员内码</param>
|
||
/// <param name="SERVERPARTCODE">服务区码</param>
|
||
/// <param name="SHOPCODE">门店编码</param>
|
||
/// <param name="MACHINECODE">收银机号</param>
|
||
/// <param name="RECODE_AMOUNT">消费金额</param>
|
||
/// <param name="RECODE_DATE">消费日期</param>
|
||
/// <param name="ICCARD_CODE">IC卡号</param>
|
||
/// <param name="RECODE_TYPE">消费类型</param>
|
||
/// <param name="ACCOUNT_BALANCE">卡内余额</param>
|
||
/// <param name="TICKETCODE">会员码</param>
|
||
/// <returns></returns>
|
||
public string consumptionpay(string MEMBERSHIP_ID, string SERVERPARTCODE, string SHOPCODE, string MACHINECODE,
|
||
string RECODE_AMOUNT, string RECODE_DATE, string ICCARD_CODE, string RECODE_TYPE, string ACCOUNT_BALANCE, string TICKETCODE)
|
||
{
|
||
string _ACCOUNT_BALANCE = ACCOUNT_BALANCE;
|
||
PayQueryResult _PayQueryResult = new PayQueryResult();
|
||
try
|
||
{
|
||
OracleHelper _OracleHelper = new OracleHelper();
|
||
string str = "";
|
||
if (RECODE_TYPE == "3010")
|
||
{
|
||
_OracleHelper = new OracleHelper(_OracleHelperStringsp.Split(',')[0], _OracleHelperStringsp.Split(',')[1],
|
||
_OracleHelperStringsp.Split(',')[2], _OracleHelperStringsp.Split(',')[3]);
|
||
str = "UPDATE HIGHWAY_EXCHANGE.T_MEMBERSHIP SET ACCOUNT_BALANCE = ACCOUNT_BALANCE - " +
|
||
RECODE_AMOUNT + " WHERE MEMBERSHIP_ID = " + MEMBERSHIP_ID;
|
||
_OracleHelper.ExcuteSql(str);
|
||
|
||
str = "SELECT ACCOUNT_BALANCE FROM HIGHWAY_EXCHANGE.T_MEMBERSHIP WHERE MEMBERSHIP_ID = " + MEMBERSHIP_ID;
|
||
DataTable _DataTable = _OracleHelper.ExcuteSqlGetDataSet(str).Tables[0];
|
||
if (_DataTable.Rows.Count > 0)
|
||
{
|
||
_ACCOUNT_BALANCE = _DataTable.Rows[0][0].ToString();
|
||
}
|
||
}
|
||
_OracleHelper.ConnString = _connectstring;
|
||
str = @"INSERT INTO HIGHWAY_EXCHANGE.T_OPERATELOG (OPERATELOG_ID,MEMBERSHIP_ID,SERVERPARTCODE,
|
||
SHOPCODE,MACHINECODE,RECODE_AMOUNT,RECODE_DATE,RECODE_TYPE,ACCOUNT_BALANCE,TICKETCODE)
|
||
SELECT HIGHWAY_EXCHANGE.SEQ_OPERATELOG.NEXTVAL," + MEMBERSHIP_ID + ",'" + SERVERPARTCODE +
|
||
"','" + SHOPCODE + "','" + MACHINECODE + "'," + RECODE_AMOUNT + ",TO_DATE('" + RECODE_DATE +
|
||
"','YYYY/MM/DD HH24:MI:SS')," + RECODE_TYPE + "," + _ACCOUNT_BALANCE + ",'" + TICKETCODE + "'" +
|
||
" FROM HIGHWAY_EXCHANGE.T_MEMBERSHIP WHERE MEMBERSHIP_ID = " + MEMBERSHIP_ID;
|
||
_OracleHelper.ExcuteSql(str);
|
||
|
||
if (RECODE_TYPE == "3000")
|
||
{
|
||
_OracleHelper = new OracleHelper(_OracleHelperString.Split(',')[0], _OracleHelperString.Split(',')[1],
|
||
_OracleHelperString.Split(',')[2], _OracleHelperString.Split(',')[3]);
|
||
str = @"INSERT INTO HIGHWAY_EXCHANGE.T_RECHARGERECORD (RECHARGERECORD_ID,MEMBERSHIP_ID,
|
||
SERVERPARTCODE,SHOPCODE,MACHINECODE,RECODE_AMOUNT,RECODE_DATE,ICCARD_CODE,RECODE_TYPE)
|
||
VALUES(1," + MEMBERSHIP_ID + ",'" + SERVERPARTCODE + "','" + SHOPCODE + "','" + MACHINECODE +
|
||
"'," + RECODE_AMOUNT + ",TO_DATE('" + RECODE_DATE + "','YYYY/MM/DD HH24:MI:SS'),'" +
|
||
ICCARD_CODE + "'," + RECODE_TYPE + ")";
|
||
_OracleHelper.ExcuteSql(str);
|
||
}
|
||
else if (RECODE_TYPE == "3010")
|
||
{
|
||
_OracleHelper = new OracleHelper(_OracleHelperStringsp.Split(',')[0], _OracleHelperStringsp.Split(',')[1],
|
||
_OracleHelperStringsp.Split(',')[2], _OracleHelperStringsp.Split(',')[3]);
|
||
str = @"INSERT INTO HIGHWAY_EXCHANGE.T_OPERATELOG (OPERATELOG_ID,MEMBERSHIP_ID,SERVERPARTCODE,
|
||
SHOPCODE,MACHINECODE,RECODE_AMOUNT,RECODE_DATE,RECODE_TYPE,TICKETCODE)
|
||
VALUES (1," + MEMBERSHIP_ID + ",'" + SERVERPARTCODE + "','" + SHOPCODE + "','" +
|
||
MACHINECODE + "'," + RECODE_AMOUNT + ",TO_DATE('" + RECODE_DATE +
|
||
"','YYYY/MM/DD HH24:MI:SS')," + RECODE_TYPE + ",'" + TICKETCODE + "')";
|
||
_OracleHelper.ExcuteSql(str);
|
||
}
|
||
//查询数据
|
||
_PayQueryResult.result_code = ((int)(Common.RetCode.成功)).ToString();
|
||
_PayQueryResult.result_desc = "记录成功";
|
||
_PayQueryResult.trade_no = MEMBERSHIP_ID;
|
||
_PayQueryResult.trade_num = SERVERPARTCODE;
|
||
}
|
||
catch (Exception ex)
|
||
{
|
||
_PayQueryResult.result_code = ((int)Common.RetCode.系统异常).ToString();
|
||
_PayQueryResult.result_desc = "记录失败"; //"____其他错误:" + ex.Message;
|
||
_PayQueryResult.trade_no = MEMBERSHIP_ID;
|
||
_PayQueryResult.trade_num = SERVERPARTCODE;
|
||
LogHelper.WriteServiceLog(ex.Message);
|
||
}
|
||
|
||
LogHelper.WriteServiceLog("接收到的会员消费参数:会员内码(MEMBERSHIP_ID):" + MEMBERSHIP_ID +
|
||
",服务区码(SERVERPARTCODE):" + SERVERPARTCODE + ",门店编码(SHOPCODE):" + SHOPCODE +
|
||
",收银机号(MACHINECODE):" + MACHINECODE + ",消费金额(RECODE_AMOUNT):" + RECODE_AMOUNT +
|
||
",消费日期(RECODE_DATE):" + RECODE_DATE + ",IC卡号(ICCARD_CODE):" + ICCARD_CODE +
|
||
",消费类型(RECODE_TYPE):" + RECODE_TYPE + ",卡内余额(ACCOUNT_BALANCE):" + ACCOUNT_BALANCE +
|
||
",交易单号(TICKETCODE):" + TICKETCODE + " 数据返回值:" +
|
||
JsonHelper.ObjectToJson<PayQueryResult>(_PayQueryResult, false));
|
||
return JsonHelper.ObjectToJson<PayQueryResult>(_PayQueryResult, false);
|
||
}
|
||
#endregion
|
||
|
||
#region 会员码校验
|
||
[WebMethod]
|
||
/// <summary>
|
||
/// 会员码校验参数
|
||
/// </summary>
|
||
/// <param name="MEMBERSHIP_CODE">会员条码</param>
|
||
/// <returns></returns>
|
||
public string BarcodeCheck(string MEMBERSHIP_CODE)
|
||
{
|
||
PayQueryResult _PayQueryResult = new PayQueryResult();
|
||
try
|
||
{
|
||
string _time = DateTime.Now.Year + "/" + MEMBERSHIP_CODE.Substring(0, 2) + "/" +
|
||
MEMBERSHIP_CODE.Substring(MEMBERSHIP_CODE.Length - 4, 2) + " " + MEMBERSHIP_CODE.Substring(12, 2) + ":" +
|
||
MEMBERSHIP_CODE.Substring(10, 2) + ":" + MEMBERSHIP_CODE.Substring(2, 2);
|
||
if (DateTime.Parse(_time) >= DateTime.Now.AddMinutes(-5) && DateTime.Parse(_time) <= DateTime.Now.AddMinutes(5))
|
||
{
|
||
OracleHelper _OracleHelper = new OracleHelper();
|
||
_OracleHelper.ConnString = _connectstring;
|
||
string str = @"SELECT B.ICCARD_CODE,A.ACCOUNT_BALANCE,A.MEMBERSHIP_CARD
|
||
FROM HIGHWAY_EXCHANGE.T_MEMBERSHIP A,HIGHWAY_EXCHANGE.T_ICCARDINFO B
|
||
WHERE A.MEMBERSHIP_ID = B.MEMBERSHIP_ID AND A.MEMBERSHIP_ID = " +
|
||
int.Parse(MEMBERSHIP_CODE.Substring(4, 6)) + " AND A.MEMBERSHIP_STATE = 1";
|
||
DataTable _DataTable = _OracleHelper.ExcuteSqlGetDataSet(str).Tables[0];
|
||
if (_DataTable.Rows.Count > 0)
|
||
{
|
||
//查询数据
|
||
_PayQueryResult.result_code = ((int)(Common.RetCode.成功)).ToString();
|
||
_PayQueryResult.result_desc = "会员码有效";
|
||
_PayQueryResult.trade_no = _DataTable.Rows[0][0].ToString();
|
||
_PayQueryResult.trade_num = _DataTable.Rows[0][1].ToString();
|
||
}
|
||
else
|
||
{
|
||
_PayQueryResult.result_code = ((int)(Common.RetCode.会员已经注销)).ToString();
|
||
_PayQueryResult.result_desc = "会员码无效";
|
||
_PayQueryResult.trade_no = MEMBERSHIP_CODE.Substring(4, 6);
|
||
_PayQueryResult.trade_num = DateTime.Now.ToString();
|
||
}
|
||
}
|
||
else
|
||
{
|
||
_PayQueryResult.result_code = ((int)(Common.RetCode.安全验证不通过)).ToString();
|
||
_PayQueryResult.result_desc = "会员码无效";
|
||
_PayQueryResult.trade_no = _time;
|
||
_PayQueryResult.trade_num = DateTime.Now.ToString();
|
||
}
|
||
}
|
||
catch (Exception ex)
|
||
{
|
||
_PayQueryResult.result_code = ((int)Common.RetCode.系统异常).ToString();
|
||
_PayQueryResult.result_desc = "会员码无效"; //"____其他错误:" + ex.Message;
|
||
_PayQueryResult.trade_no = MEMBERSHIP_CODE;
|
||
_PayQueryResult.trade_num = "";
|
||
LogHelper.WriteServiceLog(ex.Message);
|
||
}
|
||
|
||
LogHelper.WriteServiceLog("接收到的会员消费参数:会员条码(MEMBERSHIP_CODE):" + MEMBERSHIP_CODE +
|
||
",数据返回值:" + JsonHelper.ObjectToJson<PayQueryResult>(_PayQueryResult, false));
|
||
return JsonHelper.ObjectToJson<PayQueryResult>(_PayQueryResult, false);
|
||
}
|
||
#endregion
|
||
|
||
#region 创建盘点单
|
||
[WebMethod]
|
||
/// <summary>
|
||
/// 创建盘点单
|
||
/// </summary>
|
||
/// <param name="SERVERPART_CODE">服务区编号</param>
|
||
/// <param name="SERVERPARTSHOP_CODE">门店编号</param>
|
||
/// <param name="CHECKDATE">盘存日期</param>
|
||
/// <param name="CHECKPERSON">盘存人</param>
|
||
/// <param name="CHECKSTATE">盘存状态,发起:1000;开始:2000</param>
|
||
/// <returns></returns>
|
||
public string CreateCheckBill(string SERVERPART_CODE, string SERVERPARTSHOP_CODE, string CHECKDATE, string CHECKPERSON, string CHECKSTATE)
|
||
{
|
||
string Str = "", SERVERPART_ID = "", SERVERPARTSHOP_ID = "", SQL_STARTDATE = "", CHECKCOMMODITY_ID = "", _Result = "";
|
||
DataTable dt = null; DataTable STARTDATEDT = null;
|
||
DataSet ds = new DataSet();
|
||
string _ValidationType = "";
|
||
try
|
||
{
|
||
_ValidationType = ConfigurationManager.AppSettings["ValidationType"].ToString();
|
||
}
|
||
catch { }
|
||
PayQueryResult _PayQueryResult = new PayQueryResult();
|
||
try
|
||
{
|
||
OracleHelper _OracleHelperDownLoad = new OracleHelper(_OracleHelperStringsp.Split(',')[0],
|
||
_OracleHelperStringsp.Split(',')[1], _OracleHelperStringsp.Split(',')[2], _OracleHelperStringsp.Split(',')[3]);
|
||
//获取服务器内码
|
||
Str = "SELECT SERVERPART_ID FROM HIGHWAY_STORAGE.T_SERVERPART@HWS WHERE SERVERPART_CODE = '" + SERVERPART_CODE + "'";
|
||
dt = _OracleHelperDownLoad.ExcuteSqlGetDataSet(Str).Tables[0];
|
||
SERVERPART_ID = dt.Rows[0][0].ToString();
|
||
//获取门店内码
|
||
Str = "SELECT SERVERPARTSHOP_ID FROM HIGHWAY_STORAGE.T_SERVERPARTSHOP@HWS " +
|
||
"WHERE SHOPCODE = '" + SERVERPARTSHOP_CODE + "' AND SERVERPART_ID = " + SERVERPART_ID;
|
||
dt = _OracleHelperDownLoad.ExcuteSqlGetDataSet(Str).Tables[0];
|
||
SERVERPARTSHOP_ID = dt.Rows[0][0].ToString();
|
||
if (SERVERPARTSHOP_ID == "")
|
||
{
|
||
_Result = ((int)(Common.RetCode_Check.门店不存在)).ToString();
|
||
_PayQueryResult.trade_no = "";
|
||
_PayQueryResult.trade_num = "";
|
||
_PayQueryResult.result_code = ((int)(Common.RetCode_Check.门店不存在)).ToString();
|
||
_PayQueryResult.result_desc = "门店不存在";
|
||
}
|
||
//判断门店在办业务
|
||
Str = "SELECT 1 FROM SALESTORE_STORAGE.T_SERVERPARTSTOCK@SSSB WHERE SERVERPARTSHOP_ID = " + SERVERPARTSHOP_ID +
|
||
" AND OPERATE_STATE > 1000 AND OPERATE_STATE < 2000 AND SERVERPART_ID = " + SERVERPART_ID;
|
||
dt = _OracleHelperDownLoad.ExcuteSqlGetDataSet(Str).Tables[0];
|
||
if (dt.Rows.Count > 0)
|
||
{
|
||
_Result = ((int)(Common.RetCode_Check.门店存在调拨退货业务)).ToString();
|
||
_PayQueryResult.trade_no = "";
|
||
_PayQueryResult.trade_num = "";
|
||
_PayQueryResult.result_code = ((int)(Common.RetCode_Check.门店存在调拨退货业务)).ToString();
|
||
_PayQueryResult.result_desc = "门店存在调拨退货业务";
|
||
}
|
||
else
|
||
{
|
||
//判断门店是否在盘存
|
||
Str = "SELECT * FROM SALESTORE_STORAGE.T_CHECKCOMMODITY@SSSB WHERE SERVERPART_ID = " +
|
||
SERVERPART_ID + "AND SERVERPARTSHOP_ID = " + SERVERPARTSHOP_ID + " AND CHECK_STATE = 0";
|
||
dt = _OracleHelperDownLoad.ExcuteSqlGetDataSet(Str).Tables[0];
|
||
if (dt.Rows.Count > 0)
|
||
{
|
||
//Str = "SELECT * FROM SALESTORE_STORAGE.T_CHECKCOMMODITY@HWS WHERE SERVERPART_ID = " +
|
||
// SERVERPART_ID + "AND SERVERPARTSHOP_ID = " + SERVERPARTSHOP_ID + " AND CHECK_STATE = 0";
|
||
//dt = _OracleHelperDownLoad.ExcuteSqlGetDataSet(Str).Tables[0];
|
||
DataRow[] _RowList = dt.Select("CHECKDATE = '" + CHECKDATE + "'");
|
||
if (_RowList.Length > 0)
|
||
{
|
||
if (CHECKSTATE == "1000")
|
||
{
|
||
_Result = dt == null ? "" : JsonHelper.DataTableToJson(_RowList.CopyToDataTable(), "CheckBill").ToString();
|
||
}
|
||
else
|
||
{
|
||
Str = "SELECT * FROM SALESTORE_STORAGE.T_CHECKCOMMODITYDETAIL@SSSB WHERE CHECKCOMMODITY_ID = " +
|
||
"(SELECT CHECKCOMMODITY_ID FROM SALESTORE_STORAGE.T_CHECKCOMMODITY@SSSB WHERE SERVERPART_ID = " +
|
||
SERVERPART_ID + "AND SERVERPARTSHOP_ID = " + SERVERPARTSHOP_ID + " AND CHECKDATE = TO_DATE('" +
|
||
CHECKDATE + "','YYYY/MM/DD HH24:MI:SS') AND CHECK_STATE = 0 )";
|
||
dt = _OracleHelperDownLoad.ExcuteSqlGetDataSet(Str, "T_CHECKCOMMODITYDETAIL").Tables[0];
|
||
if (dt.Rows.Count > 0)
|
||
{
|
||
_PayQueryResult.trade_no = System.RealEstate_Extend.ToEncrypt(JsonHelper.DataTableToJson(_RowList.CopyToDataTable(), "T_CHECKCOMMODITY"));
|
||
_PayQueryResult.trade_num = System.RealEstate_Extend.ToEncrypt(JsonHelper.DataTableToJson(dt, "T_CHECKCOMMODITYDETAIL"));
|
||
_PayQueryResult.result_code = ((int)(Common.RetCode_Check.成功)).ToString();
|
||
_PayQueryResult.result_desc = "创建成功";
|
||
}
|
||
else
|
||
{
|
||
_PayQueryResult.trade_no = "";
|
||
_PayQueryResult.trade_num = "";
|
||
_PayQueryResult.result_code = ((int)(Common.RetCode_Check.等待生成)).ToString();
|
||
_PayQueryResult.result_desc = "盘点明细正在生成,请稍候......";
|
||
}
|
||
}
|
||
}
|
||
else
|
||
{
|
||
_Result = ((int)(Common.RetCode_Check.门店正在盘存)).ToString();
|
||
_PayQueryResult.trade_no = "";
|
||
_PayQueryResult.trade_num = "";
|
||
_PayQueryResult.result_code = ((int)(Common.RetCode_Check.门店正在盘存)).ToString();
|
||
_PayQueryResult.result_desc = "门店正在盘存";
|
||
}
|
||
}
|
||
else
|
||
{
|
||
bool Flag = true;
|
||
Str = "SELECT 1 FROM HIGHWAY_SELLDATA.T_ENDACCOUNT@HWS A WHERE SERVERPARTCODE = '" +
|
||
SERVERPART_CODE + "' AND SHOPCODE = '" + SERVERPARTSHOP_CODE +
|
||
"' AND ENDACCOUNT_DATE = TO_DATE('" + CHECKDATE + "','YYYY/MM/DD HH24:MI:SS')";
|
||
dt = _OracleHelperDownLoad.ExcuteSqlGetDataSet(Str).Tables[0];
|
||
if (dt.Rows.Count == 0)
|
||
{
|
||
Str = "SELECT 1 FROM HIGHWAY_SELLDATA.T_ENDACCOUNT_TEMP@HWS A WHERE SERVERPARTCODE = '" +
|
||
SERVERPART_CODE + "' AND SHOPCODE = '" + SERVERPARTSHOP_CODE +
|
||
"' AND ENDACCOUNT_DATE = TO_DATE('" + CHECKDATE + "','YYYY/MM/DD HH24:MI:SS')";
|
||
dt = _OracleHelperDownLoad.ExcuteSqlGetDataSet(Str).Tables[0];
|
||
if (dt.Rows.Count == 0)
|
||
{
|
||
_Result = ((int)(CommonHelper.ResCode_Check.结账信息未上传)).ToString();
|
||
_PayQueryResult.trade_no = "";
|
||
_PayQueryResult.trade_num = "";
|
||
_PayQueryResult.result_code = ((int)(CommonHelper.ResCode_Check.结账信息未上传)).ToString();
|
||
_PayQueryResult.result_desc = "结账信息未上传";
|
||
Flag = false;
|
||
}
|
||
}
|
||
if (Flag)
|
||
{
|
||
//判断是否有未结账的信息
|
||
Str = "SELECT 1 FROM HIGHWAY_SELLDATA.V_ENDACCOUNT@HWS A WHERE TREATMENT_MARK < 2 AND SERVERPARTSHOP_ID = " +
|
||
SERVERPARTSHOP_ID + " AND ENDACCOUNT_DATE <= TO_DATE('" + CHECKDATE +
|
||
"','YYYY/MM/DD HH24:MI:SS') AND ENDACCOUNT_DATE > (SELECT MAX(CHECKDATE) " +
|
||
"FROM SALESTORE_STORAGE.T_CHECKCOMMODITY@SSSB B WHERE A.SERVERPARTSHOP_ID = B.SERVERPARTSHOP_ID)";
|
||
dt = _OracleHelperDownLoad.ExcuteSqlGetDataSet(Str).Tables[0];
|
||
if (dt.Rows.Count > 0 && _ValidationType != "0")
|
||
{
|
||
_Result = ((int)(Common.RetCode_Check.有未校验的结账信息)).ToString();
|
||
_PayQueryResult.trade_no = "";
|
||
_PayQueryResult.trade_num = "";
|
||
_PayQueryResult.result_code = ((int)(Common.RetCode_Check.有未校验的结账信息)).ToString();
|
||
_PayQueryResult.result_desc = "有未校验的结账信息";
|
||
}
|
||
else
|
||
{
|
||
//判断是否有未扣除的单品
|
||
Str = "SELECT 1 FROM SALESTORE_STORAGE.V_COMMODITYSALESEARCH@SSSB WHERE ENDDATE <= TO_DATE('" +
|
||
CHECKDATE + "','YYYY/MM/DD HH24:MI:SS') + 1 / 1440 AND SERVERPARTSHOP_ID = " +
|
||
SERVERPARTSHOP_ID + " AND TOTALCOUNT <> 0";
|
||
dt = _OracleHelperDownLoad.ExcuteSqlGetDataSet(Str).Tables[0];
|
||
if (dt.Rows.Count > 0 && _ValidationType != "0")
|
||
{
|
||
_Result = ((int)(Common.RetCode_Check.有未扣除库存的单品信息)).ToString();
|
||
_PayQueryResult.trade_no = "";
|
||
_PayQueryResult.trade_num = "";
|
||
_PayQueryResult.result_code = ((int)(Common.RetCode_Check.有未扣除库存的单品信息)).ToString();
|
||
_PayQueryResult.result_desc = "有未扣除库存的单品信息";
|
||
}
|
||
else
|
||
{
|
||
//获取盘存单内码
|
||
Str = "SELECT SALESTORE_STORAGE.SEQ_CHECKCOMMODITY.NEXTVAL@SSSB FROM dual";
|
||
CHECKCOMMODITY_ID = _OracleHelperDownLoad.ExcuteSqlGetDataSet(Str).Tables[0].Rows[0][0].ToString();
|
||
|
||
Str = @"INSERT INTO SALESTORE_STORAGE.T_CHECKCOMMODITY@SSSB (CHECKCOMMODITY_ID,CHECKPERSON,CHECKDATE,
|
||
SERVERPART_ID,SERVERPARTSHOP_ID,CHECKCOMMODITY_DESC,CHECK_STATE,CHECK_PASSPORT_GUID,CHECK_TYPE)
|
||
VALUES(" + CHECKCOMMODITY_ID + ",'" + CHECKPERSON + "',TO_DATE('" + CHECKDATE +
|
||
"','YYYY/MM/DD HH24:MI:SS')," + SERVERPART_ID + "," + SERVERPARTSHOP_ID + ",'',0,'',1000)";
|
||
_OracleHelperDownLoad.ExcuteSql(Str);
|
||
//更新库存状态
|
||
Str = "UPDATE SALESTORE_STORAGE.T_SERVERPARTSTOCK@SSSB SET OPERATE_STATE = 2000 WHERE SERVERPART_ID = " +
|
||
SERVERPART_ID + " AND SERVERPARTSHOP_ID = " + SERVERPARTSHOP_ID + " AND OPERATE_STATE != 8000";
|
||
_OracleHelperDownLoad.ExcuteSql(Str);
|
||
|
||
#region 盘点明细,暂注释
|
||
////获取门店库存
|
||
//string sql_stock = "SELECT * FROM SALESTORE_STORAGE.T_SERVERPARTSTOCK@HWS WHERE SERVERPART_ID = " +
|
||
// SERVERPART_ID + " AND SERVERPARTSHOP_ID = " + SERVERPARTSHOP_ID +
|
||
// " AND OPERATE_STATE != 8000 ORDER BY CHECK_INDEX,TO_NUMBER(COMMODITY_CODE)";
|
||
//DataTable dt_stock = _OracleHelperDownLoad.ExcuteSqlGetDataSet(sql_stock).Tables[0];
|
||
//for (int i = 0; i < dt_stock.Rows.Count; i++)
|
||
//{
|
||
// //判断是否存在数据
|
||
// string sql_detail = "SELECT COUNT(1) FROM SALESTORE_STORAGE.T_CHECKCOMMODITYDETAIL@HWS WHERE CHECKCOMMODITY_ID = " +
|
||
// CHECKCOMMODITY_ID + " AND SERVERPARTSTOCK_ID = " + dt_stock.Rows[i]["SERVERPARTSTOCK_ID"];
|
||
// if (_OracleHelperDownLoad.ExcuteSqlGetDataSet(sql_detail).Tables[0].Rows[0][0].ToString() == "0")
|
||
// {
|
||
// //取最大盘存时间
|
||
// SQL_STARTDATE = "SELECT MAX(END_DATE) FROM SALESTORE_STORAGE.V_CHECKCOMMODITYDETAIL@HWS WHERE SERVERPARTSTOCK_ID = " +
|
||
// dt_stock.Rows[i]["SERVERPARTSTOCK_ID"] + " AND CHECK_STATE = 1 AND CHECK_TYPE IN (1000,3000)";
|
||
// STARTDATEDT = _OracleHelperDownLoad.ExcuteSqlGetDataSet(SQL_STARTDATE).Tables[0];
|
||
// if (STARTDATEDT.Rows.Count == 0 || string.IsNullOrEmpty(STARTDATEDT.Rows[0][0].ToString()))
|
||
// {
|
||
// //取最大盘存时间
|
||
// SQL_STARTDATE = "SELECT MAX(CHECKDATE) FROM SALESTORE_STORAGE.T_CHECKCOMMODITY@HWS WHERE SERVERPARTSHOP_ID = " +
|
||
// SERVERPARTSHOP_ID + " AND CHECK_STATE = 1 AND CHECK_TYPE IN (1000,3000)";
|
||
// STARTDATEDT = _OracleHelperDownLoad.ExcuteSqlGetDataSet(SQL_STARTDATE).Tables[0];
|
||
// if (STARTDATEDT.Rows.Count == 0 || string.IsNullOrEmpty(STARTDATEDT.Rows[0][0].ToString()))
|
||
// {
|
||
// //取最小入库时间
|
||
// SQL_STARTDATE = @"SELECT MIN(RECEIVECENTER_DATE) FROM SALESTORE_STORAGE.T_RECEIVESERVERPART@HWS A,
|
||
// SALESTORE_STORAGE.T_RECEIVEDETAILSERVERPART@HWS B WHERE A.SERVERPARTSHOP_ID = " +
|
||
// SERVERPARTSHOP_ID + " AND B.COMMODITY_ID = " + dt_stock.Rows[i]["COMMODITY_ID"] +
|
||
// " AND A.RECEIVESERVERPART_ID = B.RECEIVESERVERPART_ID";
|
||
// STARTDATEDT = _OracleHelperDownLoad.ExcuteSqlGetDataSet(SQL_STARTDATE).Tables[0];
|
||
// }
|
||
// }
|
||
// //插入明细表
|
||
// Str = @"INSERT INTO SALESTORE_STORAGE.T_CHECKCOMMODITYDETAIL@HWS (CHECKCOMMODITYDETAIL_ID,
|
||
// CHECKCOMMODITY_ID,SERVERPARTSTOCK_ID,OVERPLUSCOUNT,CHECKDATE,COMMODITY_ID,COMMODITY_CODE,
|
||
// CUROVERPLUSCOUNT,COMMODITY_BARCODE,CHECKDESC,COMMODITY_NAME,COMMODITY_SALECOUNT,
|
||
// COMMODITY_TOTALCOUNT,START_DATE,END_DATE,SERVERPART_ID)
|
||
// VALUES (SALESTORE_STORAGE.SEQ_CHECKCOMMODITYDETAIL.NEXTVAL@HWS," + CHECKCOMMODITY_ID + "," +
|
||
// dt_stock.Rows[i]["SERVERPARTSTOCK_ID"] + "," + dt_stock.Rows[i]["OVERPLUSCOUNT"] +
|
||
// ",TO_DATE('" + CHECKDATE + "','YYYY/MM/DD HH24:MI:SS')," + dt_stock.Rows[i]["COMMODITY_ID"] +
|
||
// ",'" + dt_stock.Rows[i]["COMMODITY_CODE"] + "'," + dt_stock.Rows[i]["OVERPLUSCOUNT"] +
|
||
// ",'" + dt_stock.Rows[i]["COMMODITY_BARCODE"] + "','','" + dt_stock.Rows[i]["COMMODITY_NAME"].ToString().Replace("'", "") +
|
||
// "',NULL,NULL,TO_DATE('" + STARTDATEDT.Rows[0][0].ToString() + "','YYYY/MM/DD HH24:MI:SS'),TO_DATE('" +
|
||
// CHECKDATE + "','YYYY/MM/DD HH24:MI:SS')," + SERVERPART_ID + ")";
|
||
// _OracleHelperDownLoad.ExcuteSql(Str);
|
||
// }
|
||
//}
|
||
#endregion
|
||
|
||
//将插入的主单放入DataTable
|
||
Str = "SELECT * FROM SALESTORE_STORAGE.T_CHECKCOMMODITY@SSSB WHERE CHECKCOMMODITY_ID = " + CHECKCOMMODITY_ID;
|
||
dt = _OracleHelperDownLoad.ExcuteSqlGetDataSet(Str, "T_CHECKCOMMODITY").Tables[0];
|
||
_Result = dt == null ? "" : JsonHelper.DataTableToJson(dt, "CheckBill");
|
||
_PayQueryResult.trade_no = System.RealEstate_Extend.ToEncrypt(JsonHelper.DataTableToJson(dt, "T_CHECKCOMMODITY"));
|
||
//将插入的明细放入DataTable
|
||
Str = "SELECT * FROM SALESTORE_STORAGE.T_CHECKCOMMODITYDETAIL@SSSB WHERE CHECKCOMMODITY_ID = " + CHECKCOMMODITY_ID;
|
||
dt = _OracleHelperDownLoad.ExcuteSqlGetDataSet(Str, "T_CHECKCOMMODITYDETAIL").Tables[0];
|
||
if (dt.Rows.Count > 0)
|
||
{
|
||
_PayQueryResult.trade_num = System.RealEstate_Extend.ToEncrypt(JsonHelper.DataTableToJson(dt, "T_CHECKCOMMODITYDETAIL"));
|
||
_PayQueryResult.result_code = ((int)(Common.RetCode_Check.成功)).ToString();
|
||
_PayQueryResult.result_desc = "创建成功";
|
||
}
|
||
else
|
||
{
|
||
_PayQueryResult.trade_no = "";
|
||
_PayQueryResult.trade_num = "";
|
||
_PayQueryResult.result_code = ((int)(Common.RetCode_Check.等待生成)).ToString();
|
||
_PayQueryResult.result_desc = "盘点明细正在生成,请稍候";
|
||
}
|
||
#region 插入本地数据库,暂注释
|
||
//string SqlString = "";
|
||
////插入T_CHECKCOMMODITYEX表
|
||
//OracleHelper _OracleHelper = new OracleHelper(_connectstring.Split(',')[0],
|
||
// _connectstring.Split(',')[1], _connectstring.Split(',')[2], _connectstring.Split(',')[3]);
|
||
//Str = @"INSERT INTO HIGHWAY_EXCHANGE.T_CHECKCOMMODITYEX (CHECKCOMMODITY_ID,CHECKPERSON,CHECKDATE,
|
||
// SERVERPART_ID,SERVERPARTSHOP_ID,CHECKCOMMODITY_DESC,CHECK_STATE,CHECK_PASSPORT_GUID,CHECK_TYPE)
|
||
//VALUES(" + CHECKCOMMODITY_ID + ",'" + CHECKPERSON + "',TO_DATE('" + CHECKDATE +
|
||
// "','YYYY/MM/DD HH24:MI:SS')," + SERVERPART_ID + "," + SERVERPARTSHOP_ID + ",'',0,'',1000)";
|
||
//_OracleHelper.ExcuteSql(Str);
|
||
//try
|
||
//{
|
||
// SqlString = "SELECT DISTINCT * FROM SALESTORE_STORAGE.T_CHECKCOMMODITY@HWS WHERE CHECK_STATE = 0";
|
||
// DataTable _DataTable = _OracleHelperDownLoad.ExcuteSqlGetDataSet(SqlString, "T_CHECKCOMMODITY").Tables[0];
|
||
// if (_DataTable.Rows.Count > 0)
|
||
// {
|
||
// foreach (DataRow _DataRow in _DataTable.Rows)
|
||
// {
|
||
// List<string> SQLStringArray = new List<string>();
|
||
|
||
// SqlString = "DELETE FROM HIGHWAY_EXCHANGE.T_CHECKCOMMODITYDETAIL WHERE CHECKCOMMODITY_ID = " +
|
||
// _DataRow["CHECKCOMMODITY_ID"].ToString();
|
||
// SQLStringArray.Add(SqlString);
|
||
// SqlString = "DELETE FROM HIGHWAY_EXCHANGE.T_CHECKCOMMODITYEX WHERE CHECKCOMMODITY_ID = " +
|
||
// _DataRow["CHECKCOMMODITY_ID"].ToString();
|
||
// SQLStringArray.Add(SqlString);
|
||
// _OracleHelper.ExecuteSqlTran(SQLStringArray);
|
||
|
||
// SqlString = @"INSERT INTO HIGHWAY_EXCHANGE.T_CHECKCOMMODITYEX (CHECKCOMMODITY_ID,CHECKPERSON,CHECKDATE,
|
||
// SERVERPART_ID,SERVERPARTSHOP_ID,CHECKCOMMODITY_DESC,CHECK_STATE,CHECK_PASSPORT_GUID,CHECK_TYPE)
|
||
// VALUES (" + CHECKCOMMODITY_ID + ",'" + _DataRow["CHECKPERSON"].ToString() + "',TO_DATE('" +
|
||
// _DataRow["CHECKDATE"].ToString() + "','YYYY/MM/DD HH24:MI:SS')," +
|
||
// (_DataRow["SERVERPART_ID"].ToString() == "" ? "NULL" : _DataRow["SERVERPART_ID"].ToString()) +
|
||
// "," + (_DataRow["SERVERPARTSHOP_ID"].ToString() == "" ? "NULL" :
|
||
// _DataRow["SERVERPARTSHOP_ID"].ToString()) + ",'" + _DataRow["CHECKCOMMODITY_DESC"].ToString() +
|
||
// "'," + (_DataRow["CHECK_STATE"].ToString() == "" ? "0" : _DataRow["CHECK_STATE"].ToString()) +
|
||
// ",'" + _DataRow["CHECK_PASSPORT_GUID"].ToString() + "'," +
|
||
// (_DataRow["CHECK_TYPE"].ToString() == "" ? "NULL" : _DataRow["CHECK_TYPE"].ToString()) + ")";
|
||
// _OracleHelper.ExcuteSql(SqlString);
|
||
|
||
// SQLStringArray.Clear();
|
||
// SqlString = "SELECT DISTINCT * FROM SALESTORE_STORAGE.T_CHECKCOMMODITYDETAIL@HWS WHERE CHECKCOMMODITY_ID = " +
|
||
// _DataRow["CHECKCOMMODITY_ID"].ToString();
|
||
// foreach (DataRow _DataRowDetail in _OracleHelperDownLoad.ExcuteSqlGetDataSet(
|
||
// SqlString, "T_CHECKCOMMODITYDETAIL").Tables[0].Rows)
|
||
// {
|
||
// SqlString = @"INSERT INTO HIGHWAY_EXCHANGE.T_CHECKCOMMODITYDETAIL (CHECKCOMMODITYDETAIL_ID,
|
||
// CHECKCOMMODITY_ID,SERVERPARTSTOCK_ID,OVERPLUSCOUNT,CHECKDATE,COMMODITY_ID,
|
||
// COMMODITY_CODE,CUROVERPLUSCOUNT,COMMODITY_BARCODE,CHECKDESC,COMMODITY_NAME,
|
||
// COMMODITY_SALECOUNT,COMMODITY_TOTALCOUNT,START_DATE,END_DATE,SERVERPART_ID)
|
||
// VALUES (" + _DataRowDetail["CHECKCOMMODITYDETAIL_ID"].ToString() + "," +
|
||
// CHECKCOMMODITY_ID + "," + (_DataRowDetail["SERVERPARTSTOCK_ID"].ToString() == "" ?
|
||
// "NULL" : _DataRowDetail["SERVERPARTSTOCK_ID"].ToString()) + "," +
|
||
// (_DataRowDetail["OVERPLUSCOUNT"].ToString() == "" ? "NULL" :
|
||
// _DataRowDetail["OVERPLUSCOUNT"].ToString()) +
|
||
// ",TO_DATE('" + _DataRowDetail["CHECKDATE"].ToString() + "','YYYY/MM/DD HH24:MI:SS')," +
|
||
// (_DataRowDetail["COMMODITY_ID"].ToString() == "" ? "NULL" :
|
||
// _DataRowDetail["COMMODITY_ID"].ToString()) + ",'" +
|
||
// _DataRowDetail["COMMODITY_CODE"].ToString() + "'," +
|
||
// (_DataRowDetail["CUROVERPLUSCOUNT"].ToString() == "" ? "NULL" :
|
||
// _DataRowDetail["CUROVERPLUSCOUNT"].ToString()) + ",'" +
|
||
// _DataRowDetail["COMMODITY_BARCODE"].ToString() + "','" +
|
||
// _DataRowDetail["CHECKDESC"].ToString() + "','" +
|
||
// _DataRowDetail["COMMODITY_NAME"].ToString() + "'," +
|
||
// (_DataRowDetail["COMMODITY_SALECOUNT"].ToString() == "" ? "NULL" :
|
||
// _DataRowDetail["COMMODITY_SALECOUNT"].ToString()) + "," +
|
||
// (_DataRowDetail["COMMODITY_TOTALCOUNT"].ToString() == "" ? "NULL" :
|
||
// _DataRowDetail["COMMODITY_TOTALCOUNT"].ToString()) + ",TO_DATE('" +
|
||
// _DataRowDetail["START_DATE"].ToString() + "','YYYY/MM/DD HH24:MI:SS'),TO_DATE('" +
|
||
// _DataRowDetail["END_DATE"].ToString() + "','YYYY/MM/DD HH24:MI:SS')," +
|
||
// (_DataRowDetail["SERVERPART_ID"].ToString() == "" ? "NULL" :
|
||
// _DataRowDetail["SERVERPART_ID"].ToString()) + ")";
|
||
// SQLStringArray.Add(SqlString);
|
||
// }
|
||
// if (SQLStringArray.Count > 0)
|
||
// {
|
||
// _OracleHelper.ExecuteSqlTran(SQLStringArray);
|
||
// }
|
||
|
||
// SQLStringArray.Clear();
|
||
// SqlString = "DELETE FROM HIGHWAY_EXCHANGE.T_CHECKCOMMODITYDETAIL WHERE CHECKCOMMODITY_ID = " +
|
||
// _DataRow["CHECKCOMMODITY_ID"].ToString();
|
||
// SQLStringArray.Add(SqlString);
|
||
// SqlString = "DELETE FROM HIGHWAY_EXCHANGE.T_CHECKCOMMODITY WHERE CHECKCOMMODITY_ID = " +
|
||
// _DataRow["CHECKCOMMODITY_ID"].ToString();
|
||
// SQLStringArray.Add(SqlString);
|
||
|
||
// _OracleHelperDownLoad.ExecuteSqlTran(SQLStringArray);
|
||
// }
|
||
// }
|
||
//}
|
||
//catch (Exception ex)
|
||
//{
|
||
// LogHelper.WriteServiceLog(ex.Message + "[" + Str + "]");
|
||
//}
|
||
#endregion
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|
||
catch (Exception ex)
|
||
{
|
||
LogHelper.WriteServiceLog(ex.Message + "[" + Str + "]");
|
||
|
||
_Result = ((int)(Common.RetCode_Check.系统异常)).ToString();
|
||
_PayQueryResult.trade_no = "";
|
||
_PayQueryResult.trade_num = "";
|
||
_PayQueryResult.result_code = ((int)(Common.RetCode_Check.系统异常)).ToString();
|
||
_PayQueryResult.result_desc = ex.Message;
|
||
}
|
||
LogHelper.WriteServiceLog("SERVERPART_CODE(" + SERVERPART_CODE + "),SERVERPARTSHOP_CODE(" + SERVERPARTSHOP_CODE +
|
||
"),CHECKDATE(" + CHECKDATE + "),CHECKPERSON(" + CHECKPERSON + ") 数据返回值:result_code=" +
|
||
_PayQueryResult.result_code + ",result_desc=" + _PayQueryResult.result_desc);
|
||
if (CHECKSTATE == "1000")
|
||
{
|
||
return _Result;
|
||
}
|
||
else
|
||
{
|
||
return JsonHelper.ObjectToJson<PayQueryResult>(_PayQueryResult, false);
|
||
}
|
||
}
|
||
#endregion
|
||
|
||
#region 配送单扫码入库
|
||
[WebMethod]
|
||
/// <summary>
|
||
/// 配送单扫码入库参数
|
||
/// </summary>
|
||
/// <param name="GOODSDELIVER_CODE">配送单号</param>
|
||
/// <param name="PURCHASE_ID">采购单内码</param>
|
||
/// <param name="CASHWORKER_NAME">收银员名称</param>
|
||
/// <param name="RTWECHATPUSH_ID">微信内码</param>
|
||
/// <param name="WECHAT_OPENID">微信OPENID</param>
|
||
/// <param name="StorageType">接口类型:0查询,1入库</param>
|
||
/// <returns></returns>
|
||
public string DeliverCodeCheck(string GOODSDELIVER_CODE, string PURCHASE_ID = "0", string CASHWORKER_NAME = "",
|
||
string RTWECHATPUSH_ID = "NULL", string WECHAT_OPENID = "", string StorageType = "0")
|
||
{
|
||
PayQueryResult _PayQueryResult = new PayQueryResult();
|
||
try
|
||
{
|
||
OracleHelper _OracleHelper = new OracleHelper(_OracleHelperStringps.Split(',')[0],
|
||
_OracleHelperStringps.Split(',')[1], _OracleHelperStringps.Split(',')[2], _OracleHelperStringps.Split(',')[3]);
|
||
string str = @"SELECT * FROM SELLER_STORAGE.V_GOODSDELIVER WHERE GOODSDELIVER_CODE = '" +
|
||
GOODSDELIVER_CODE + "' AND PURCHASE_ID = " + PURCHASE_ID;
|
||
DataTable _DataTable = _OracleHelper.ExcuteSqlGetDataSet(str).Tables[0];
|
||
if (_DataTable.Rows.Count > 0)
|
||
{
|
||
switch (_DataTable.Rows[0]["PURCHASE_STATE"].ToString())
|
||
{
|
||
case "2000":
|
||
_PayQueryResult.result_code = ((int)(Common.RetCode.订单待支付)).ToString();
|
||
_PayQueryResult.result_desc = "等待配送";
|
||
_PayQueryResult.trade_no = _DataTable.Rows[0]["SERVERPART_NAME"].ToString();
|
||
_PayQueryResult.trade_num = _DataTable.Rows[0]["SERVERPARTSHOP_NAME"].ToString();
|
||
break;
|
||
case "2010":
|
||
_PayQueryResult.result_code = ((int)(Common.RetCode.成功)).ToString();
|
||
_PayQueryResult.result_desc = "单据有效,入库中...";
|
||
_PayQueryResult.trade_no = _DataTable.Rows[0]["SERVERPART_NAME"].ToString();
|
||
_PayQueryResult.trade_num = _DataTable.Rows[0]["SERVERPARTSHOP_NAME"].ToString();
|
||
if (StorageType == "1")
|
||
{
|
||
str = "SELECT 1 FROM SELLER_STORAGE.T_OPERATELOG WHERE GOODSDELIVER_CODE = '" +
|
||
GOODSDELIVER_CODE + "' AND PURCHASE_ID = " + PURCHASE_ID;
|
||
if (_OracleHelper.ExcuteSqlGetDataSet(str).Tables[0].Rows.Count == 0)
|
||
{
|
||
str = @"INSERT INTO SELLER_STORAGE.T_OPERATELOG (OPERATELOG_ID,GOODSDELIVER_CODE,PURCHASE_ID,
|
||
SERVERPARTSHOP_ID,CASHWORKER_NAME,RTWECHATPUSH_ID,WECHAT_OPENID,OPERATELOG_DATE)
|
||
SELECT SELLER_STORAGE.SEQ_OPERATELOG.NEXTVAL,GOODSDELIVER_CODE,PURCHASE_ID,
|
||
SERVERPARTSHOP_ID,'" + CASHWORKER_NAME + "'," + RTWECHATPUSH_ID + ",'" + WECHAT_OPENID +
|
||
"',SYSDATE FROM SELLER_STORAGE.V_GOODSDELIVER WHERE GOODSDELIVER_CODE = '" +
|
||
GOODSDELIVER_CODE + "' AND PURCHASE_ID = " + PURCHASE_ID;
|
||
|
||
_OracleHelper.ExcuteSql(str);
|
||
}
|
||
}
|
||
break;
|
||
case "3000":
|
||
_PayQueryResult.result_code = ((int)(Common.RetCode.单据已接收)).ToString();
|
||
_PayQueryResult.result_desc = "单据已接收";
|
||
_PayQueryResult.trade_no = _DataTable.Rows[0]["SERVERPART_NAME"].ToString();
|
||
_PayQueryResult.trade_num = _DataTable.Rows[0]["SERVERPARTSHOP_NAME"].ToString();
|
||
break;
|
||
case "4000":
|
||
_PayQueryResult.result_code = ((int)(Common.RetCode.单据已入库)).ToString();
|
||
_PayQueryResult.result_desc = "单据已入库";
|
||
_PayQueryResult.trade_no = _DataTable.Rows[0]["SERVERPART_NAME"].ToString();
|
||
_PayQueryResult.trade_num = _DataTable.Rows[0]["SERVERPARTSHOP_NAME"].ToString();
|
||
break;
|
||
}
|
||
}
|
||
else
|
||
{
|
||
_PayQueryResult.result_code = ((int)(Common.RetCode.用户不存在)).ToString();
|
||
_PayQueryResult.result_desc = "单据无效";
|
||
_PayQueryResult.trade_no = GOODSDELIVER_CODE;
|
||
_PayQueryResult.trade_num = "";
|
||
}
|
||
}
|
||
catch (Exception ex)
|
||
{
|
||
_PayQueryResult.result_code = ((int)Common.RetCode.系统异常).ToString();
|
||
_PayQueryResult.result_desc = "网络异常"; //"____其他错误:" + ex.Message;
|
||
_PayQueryResult.trade_no = GOODSDELIVER_CODE;
|
||
_PayQueryResult.trade_num = "";
|
||
LogHelper.WriteServiceLog(ex.Message);
|
||
}
|
||
|
||
LogHelper.WriteServiceLog("查询到的配送单扫码入库参数:配送单号(GOODSDELIVER_CODE):" + GOODSDELIVER_CODE +
|
||
",采购单内码(PURCHASE_ID):" + PURCHASE_ID + ",数据返回值:" +
|
||
JsonHelper.ObjectToJson<PayQueryResult>(_PayQueryResult, false));
|
||
return JsonHelper.ObjectToJson<PayQueryResult>(_PayQueryResult, false);
|
||
}
|
||
#endregion
|
||
|
||
#region 查询方法
|
||
private string query(string TICKETCODE, string _mchnt_cd, string _term_id, string PAYTYPE, int QueryCount = 0)
|
||
{
|
||
string RetString = "";
|
||
|
||
Dictionary<string, string> micropay = Builder.querymicropay(PAYTYPE, TICKETCODE, _mchnt_cd, _term_id);
|
||
Dictionary<string, string> reqs = new Dictionary<string, string>();
|
||
Dictionary<string, string> nvs = new Dictionary<string, string>();
|
||
//PayService.LogHelper.WriteServiceLog(PAYDESC);
|
||
|
||
foreach (KeyValuePair<string, string> kvp in micropay)
|
||
{
|
||
reqs.Add(kvp.Key, kvp.Value);
|
||
switch (kvp.Key)
|
||
{
|
||
case "mchnt_cd":
|
||
_mchnt_cd = kvp.Value;
|
||
break;
|
||
case "term_id":
|
||
_term_id = kvp.Value;
|
||
break;
|
||
}
|
||
}
|
||
|
||
string sign = Utils.getSign(reqs);
|
||
reqs.Remove("sign");
|
||
reqs.Add("sign", sign);
|
||
|
||
XmlDocument _XmlDocument = new XmlDocument();
|
||
XmlElement _XmlElement = _XmlDocument.CreateElement("xml");
|
||
_XmlDocument.AppendChild(_XmlElement);
|
||
|
||
foreach (KeyValuePair<string, string> kvp in reqs)
|
||
{
|
||
XmlElement elem2 = _XmlDocument.CreateElement(kvp.Key);
|
||
elem2.InnerText = kvp.Value;
|
||
_XmlElement.AppendChild(elem2);
|
||
}
|
||
|
||
string reqBody = "<?xml version=\"1.0\" encoding=\"GBK\" standalone=\"yes\"?>" + _XmlDocument.OuterXml;
|
||
//待编码字符串
|
||
reqBody = Utils.UrlEncode(reqBody, Encoding.GetEncoding(Const.charset));
|
||
//编码后字符串
|
||
nvs.Add("req", reqBody);
|
||
|
||
StringBuilder result = new StringBuilder("");
|
||
PayQueryResult _PayQueryResult = new PayQueryResult();
|
||
|
||
try
|
||
{
|
||
HttpUtils httpUtils = new HttpUtils();
|
||
httpUtils.post(Const.commonQuery_url, nvs, result);
|
||
RetString = HttpUtility.UrlDecode(result.ToString(), Encoding.GetEncoding(Const.charset));
|
||
//输出字符串
|
||
_XmlDocument = new XmlDocument();
|
||
_XmlDocument.LoadXml(RetString);
|
||
RetString = JsonConvert.SerializeXmlNode(_XmlDocument);
|
||
|
||
|
||
try
|
||
{
|
||
//查询数据
|
||
if (RetString != "")
|
||
{
|
||
JObject _JObject = JObject.Parse(RetString);
|
||
switch (_JObject["xml"]["result_code"].ToString())
|
||
{
|
||
case "000000":
|
||
switch (_JObject["xml"]["trans_stat"].ToString().ToLower())
|
||
{
|
||
case "success":
|
||
_PayQueryResult.result_code = ((int)(Common.RetCode.成功)).ToString();
|
||
_PayQueryResult.result_desc = _JObject["xml"]["trans_stat"].ToString();
|
||
_PayQueryResult.trade_no = _JObject["xml"]["mchnt_order_no"].ToString();
|
||
_PayQueryResult.trade_num = _JObject["xml"]["transaction_id"].ToString();
|
||
break;
|
||
case "userpaying":
|
||
if (QueryCount == 0)
|
||
{
|
||
_PayQueryResult.result_code = ((int)(Common.RetCode.订单待支付)).ToString();
|
||
_PayQueryResult.result_desc = _JObject["xml"]["trans_stat"].ToString();
|
||
_PayQueryResult.trade_no = TICKETCODE;
|
||
_PayQueryResult.trade_num = "";
|
||
}
|
||
else
|
||
{
|
||
PayService.LogHelper.WriteServiceLog(TICKETCODE + "等待支付中......");
|
||
System.Threading.Thread.Sleep(1 * 1000);
|
||
|
||
_JObject = JObject.Parse(query(TICKETCODE, _mchnt_cd, _term_id, PAYTYPE, QueryCount - 1));
|
||
_PayQueryResult.result_code = _JObject["result_code"].ToString();
|
||
_PayQueryResult.result_desc = _JObject["result_desc"].ToString();
|
||
_PayQueryResult.trade_no = _JObject["trade_no"].ToString();
|
||
_PayQueryResult.trade_num = _JObject["trade_num"].ToString();
|
||
}
|
||
break;
|
||
case "refund":
|
||
_PayQueryResult.result_code = ((int)(Common.RetCode.转入退款)).ToString();
|
||
_PayQueryResult.result_desc = _JObject["xml"]["trans_stat"].ToString();
|
||
_PayQueryResult.trade_no = TICKETCODE;
|
||
_PayQueryResult.trade_num = "";
|
||
break;
|
||
case "notpay":
|
||
_PayQueryResult.result_code = ((int)(Common.RetCode.未支付)).ToString();
|
||
_PayQueryResult.result_desc = _JObject["xml"]["trans_stat"].ToString();
|
||
_PayQueryResult.trade_no = TICKETCODE;
|
||
_PayQueryResult.trade_num = "";
|
||
break;
|
||
case "closed":
|
||
_PayQueryResult.result_code = ((int)(Common.RetCode.已关闭)).ToString();
|
||
_PayQueryResult.result_desc = _JObject["xml"]["trans_stat"].ToString();
|
||
_PayQueryResult.trade_no = TICKETCODE;
|
||
_PayQueryResult.trade_num = "";
|
||
break;
|
||
case "revoked":
|
||
_PayQueryResult.result_code = ((int)(Common.RetCode.已撤销)).ToString();
|
||
_PayQueryResult.result_desc = _JObject["xml"]["trans_stat"].ToString();
|
||
_PayQueryResult.trade_no = TICKETCODE;
|
||
_PayQueryResult.trade_num = "";
|
||
break;
|
||
case "payerror":
|
||
_PayQueryResult.result_code = ((int)(Common.RetCode.支付失败)).ToString();
|
||
_PayQueryResult.result_desc = _JObject["xml"]["trans_stat"].ToString();
|
||
_PayQueryResult.trade_no = TICKETCODE;
|
||
_PayQueryResult.trade_num = "";
|
||
break;
|
||
default:
|
||
_PayQueryResult.result_code = ((int)(Common.RetCode.请求参数错误)).ToString();
|
||
_PayQueryResult.result_desc = _JObject["xml"]["result_code"].ToString() + ":" +
|
||
_JObject["xml"]["trans_stat"].ToString();
|
||
_PayQueryResult.trade_no = TICKETCODE;
|
||
_PayQueryResult.trade_num = "";
|
||
break;
|
||
}
|
||
break;
|
||
default:
|
||
switch (_JObject["xml"]["trans_stat"].ToString().ToLower())
|
||
{
|
||
case "userpaying":
|
||
if (QueryCount == 0)
|
||
{
|
||
_PayQueryResult.result_code = ((int)(Common.RetCode.订单待支付)).ToString();
|
||
_PayQueryResult.result_desc = _JObject["xml"]["trans_stat"].ToString();
|
||
_PayQueryResult.trade_no = TICKETCODE;
|
||
_PayQueryResult.trade_num = "";
|
||
}
|
||
else
|
||
{
|
||
PayService.LogHelper.WriteServiceLog(TICKETCODE + "等待支付中......");
|
||
System.Threading.Thread.Sleep(1 * 1000);
|
||
|
||
_JObject = JObject.Parse(query(TICKETCODE, _mchnt_cd, _term_id, PAYTYPE, QueryCount - 1));
|
||
_PayQueryResult.result_code = _JObject["result_code"].ToString();
|
||
_PayQueryResult.result_desc = _JObject["result_desc"].ToString();
|
||
_PayQueryResult.trade_no = _JObject["trade_no"].ToString();
|
||
_PayQueryResult.trade_num = _JObject["trade_num"].ToString();
|
||
}
|
||
break;
|
||
default:
|
||
_PayQueryResult.result_code = ((int)(Common.RetCode.请求参数错误)).ToString();
|
||
_PayQueryResult.result_desc = _JObject["xml"]["result_code"].ToString() + ":" +
|
||
(string.IsNullOrEmpty(_JObject["xml"]["trans_stat"].ToString()) ?
|
||
_JObject["xml"]["result_msg"].ToString() : _JObject["xml"]["trans_stat"].ToString());
|
||
_PayQueryResult.trade_no = _JObject["xml"]["mchnt_order_no"].ToString();
|
||
_PayQueryResult.trade_num = "";
|
||
break;
|
||
}
|
||
break;
|
||
}
|
||
}
|
||
else
|
||
{
|
||
_PayQueryResult.result_code = ((int)Common.RetCode.系统异常).ToString();
|
||
_PayQueryResult.result_desc = "系统异常";
|
||
_PayQueryResult.trade_no = TICKETCODE;
|
||
_PayQueryResult.trade_num = "";
|
||
}
|
||
}
|
||
catch (Exception ex)
|
||
{
|
||
_PayQueryResult.result_code = ((int)Common.RetCode.系统异常).ToString();
|
||
_PayQueryResult.result_desc = "错误为:" + RetString; //"____其他错误:" + ex.Message;
|
||
_PayQueryResult.trade_no = TICKETCODE;
|
||
_PayQueryResult.trade_num = "";
|
||
PayService.LogHelper.WriteServiceLog(ex.Message);
|
||
}
|
||
}
|
||
catch (Exception ex)
|
||
{
|
||
_PayQueryResult.result_code = ((int)Common.RetCode.系统异常).ToString();
|
||
_PayQueryResult.result_desc = ex.Message;// +"____其他错误:" + ex.Message;
|
||
_PayQueryResult.trade_no = TICKETCODE;
|
||
_PayQueryResult.trade_num = "";
|
||
PayService.LogHelper.WriteServiceLog(ex.Message);
|
||
}
|
||
|
||
return JsonHelper.ObjectToJson<PayQueryResult>(_PayQueryResult, false);
|
||
}
|
||
#endregion
|
||
|
||
#region 插入数据
|
||
private void InsertData(string TICKETCODE, string PAYTYPE, JObject _JObject, PayQueryResult _PayQueryResult)
|
||
{
|
||
string PayTime = TICKETCODE.Substring(TICKETCODE.Length - 14, 14);
|
||
string FilePath = "ErrorLog\\" + PayTime.Substring(0, 8);
|
||
try
|
||
{
|
||
PayTime = PayTime.Substring(0, 4) + "/" + PayTime.Substring(4, 2) + "/" + PayTime.Substring(6, 2) + " " +
|
||
PayTime.Substring(8, 2) + ":" + PayTime.Substring(10, 2) + ":" + PayTime.Substring(12, 2);
|
||
OracleHelper _OracleHelper = new OracleHelper
|
||
{
|
||
ConnString = _connectstring
|
||
};
|
||
|
||
using (DataTable _DataTable = _OracleHelper.ExcuteSqlGetDataSet(
|
||
"SELECT TICKETCODE,UPPER(SELLDATA_EXTRA_DESC) AS SELLDATA_EXTRA_DESC " +
|
||
"FROM HIGHWAY_EXCHANGE.T_SELLDATA_EXTRA " +
|
||
"WHERE TICKETCODE = '" + TICKETCODE + "' AND SELLDATA_TYPE = '" + PAYTYPE + "'").Tables[0])
|
||
{
|
||
if (_DataTable.Rows.Count == 0 || _DataTable.Select("UPPER(SELLDATA_EXTRA_DESC) LIKE 'SUCCESS%'").Count() == 0)
|
||
{
|
||
string str = @"INSERT INTO HIGHWAY_EXCHANGE.T_SELLDATA_EXTRA (SELLDATA_ID,SELLDATA_TYPE,SELLDATA_DATE,
|
||
SERVERPARTCODE,SHOPCODE,MACHINECODE,TICKETCODE,FACTAMOUNT,SELLDATA_EXTRA_DESC,LINENUM)
|
||
VALUES(HIGHWAY_EXCHANGE.SEQ_SELLDATA_EXTRA.NEXTVAL,'" + PAYTYPE + "',TO_DATE('" + PayTime +
|
||
"','YYYY/MM/DD HH24:MI:SS'),'" + TICKETCODE.Substring(0, 6) + "','" + (TICKETCODE.Length == 28 ?
|
||
TICKETCODE.Substring(6, 4) : TICKETCODE.Substring(6, 6)) +
|
||
"','" + (TICKETCODE.Length == 28 ? (TICKETCODE.Substring(10, 4).StartsWith("0") ?
|
||
TICKETCODE.Substring(11, 3) : TICKETCODE.Substring(10, 4)) :
|
||
(TICKETCODE.Substring(12, 4).StartsWith("0") ? TICKETCODE.Substring(13, 3) :
|
||
TICKETCODE.Substring(12, 4))) + "','" + TICKETCODE + "'," +
|
||
(double.Parse(_JObject["xml"]["order_amt"].ToString()) / 100.00).ToString("0.00") +
|
||
",'SUCCESS'," + (int)CommonHelper.MobilePayOperators.fuiou + ")";
|
||
_OracleHelper.ExcuteSql(str);
|
||
}
|
||
}
|
||
#region 插入数据库(原方式)
|
||
//if (_OracleHelper.ExcuteSqlGetDataSet("SELECT 1 FROM HIGHWAY_EXCHANGE.T_SELLDATA_EXTRA WHERE TICKETCODE = '" +
|
||
// TICKETCODE + "' AND SELLDATA_TYPE = '" + PAYTYPE + "'").Tables[0].Rows.Count == 0)
|
||
//{
|
||
// string str = @"INSERT INTO HIGHWAY_EXCHANGE.T_SELLDATA_EXTRA (SELLDATA_ID,SELLDATA_TYPE,
|
||
// SELLDATA_DATE,SERVERPARTCODE,SHOPCODE,MACHINECODE,TICKETCODE,FACTAMOUNT,SELLDATA_EXTRA_DESC)
|
||
// VALUES(HIGHWAY_EXCHANGE.SEQ_SELLDATA_EXTRA.NEXTVAL,'" + PAYTYPE + "',TO_DATE('" + PayTime +
|
||
// "','YYYY/MM/DD HH24:MI:SS'),'" + TICKETCODE.Substring(0, 6) + "','" + (TICKETCODE.Length == 28 ?
|
||
// TICKETCODE.Substring(6, 4) : TICKETCODE.Substring(6, 6)) +
|
||
// "','" + (TICKETCODE.Length == 28 ? (TICKETCODE.Substring(10, 4).StartsWith("0") ?
|
||
// TICKETCODE.Substring(11, 3) : TICKETCODE.Substring(10, 4)) :
|
||
// (TICKETCODE.Substring(12, 4).StartsWith("0") ? TICKETCODE.Substring(13, 3) :
|
||
// TICKETCODE.Substring(12, 4))) + "','" + TICKETCODE + "'," +
|
||
// (double.Parse(_JObject["xml"]["order_amt"].ToString()) / 100.00).ToString("0.00") + ",'SUCCESS')";
|
||
// _OracleHelper.ExcuteSql(str);
|
||
//}
|
||
//else if (_OracleHelper.ExcuteSqlGetDataSet("SELECT 1 FROM HIGHWAY_EXCHANGE.T_SELLDATA_EXTRA WHERE TICKETCODE = '" +
|
||
// TICKETCODE + "' AND SELLDATA_TYPE = '" + PAYTYPE +
|
||
// "' AND UPPER(SELLDATA_EXTRA_DESC) LIKE 'SUCCESS%'").Tables[0].Rows.Count == 0)
|
||
//{
|
||
// string str = @"INSERT INTO HIGHWAY_EXCHANGE.T_SELLDATA_EXTRA (SELLDATA_ID,SELLDATA_TYPE,
|
||
// SELLDATA_DATE,SERVERPARTCODE,SHOPCODE,MACHINECODE,TICKETCODE,FACTAMOUNT,SELLDATA_EXTRA_DESC)
|
||
// VALUES(HIGHWAY_EXCHANGE.SEQ_SELLDATA_EXTRA.NEXTVAL,'" + PAYTYPE + "',TO_DATE('" + PayTime +
|
||
// "','YYYY/MM/DD HH24:MI:SS'),'" + TICKETCODE.Substring(0, 6) + "','" + (TICKETCODE.Length == 28 ?
|
||
// TICKETCODE.Substring(6, 4) : TICKETCODE.Substring(6, 6)) +
|
||
// "','" + (TICKETCODE.Length == 28 ? (TICKETCODE.Substring(10, 4).StartsWith("0") ?
|
||
// TICKETCODE.Substring(11, 3) : TICKETCODE.Substring(10, 4)) :
|
||
// (TICKETCODE.Substring(12, 4).StartsWith("0") ? TICKETCODE.Substring(13, 3) :
|
||
// TICKETCODE.Substring(12, 4))) + "','" + TICKETCODE + "'," +
|
||
// (double.Parse(_JObject["xml"]["order_amt"].ToString()) / 100.00).ToString("0.00") + ",'SUCCESS')";
|
||
// _OracleHelper.ExcuteSql(str);
|
||
//}
|
||
#endregion
|
||
if (Directory.Exists(AppDomain.CurrentDomain.BaseDirectory + "\\" + FilePath))
|
||
{
|
||
CommonHelper.SaveTextFile(FilePath + "\\" + TICKETCODE + ".txt", _PayQueryResult.result_desc);
|
||
}
|
||
}
|
||
catch (Exception ex)
|
||
{
|
||
string LocalPath = System.AppDomain.CurrentDomain.BaseDirectory + "\\bin\\ErrorLog";
|
||
if (!Directory.Exists(LocalPath))
|
||
{
|
||
Directory.CreateDirectory(LocalPath);
|
||
}
|
||
if (!File.Exists(LocalPath + "\\" + TICKETCODE + ".txt"))
|
||
{
|
||
CommonHelper.SaveTextFile("bin\\ErrorLog\\" + TICKETCODE + ".txt", TICKETCODE + "|" + PAYTYPE + "|" +
|
||
(double.Parse(_JObject["xml"]["order_amt"].ToString()) / 100.00).ToString("0.00") + "|" +
|
||
_PayQueryResult.result_code + "|" + _PayQueryResult.result_desc + "|" + _PayQueryResult.trade_no + "|" +
|
||
_PayQueryResult.trade_num + "|" + JSonHelper.ObjectToJson<PayQueryResult>(_PayQueryResult, false) + "|" +
|
||
((int)CommonHelper.MobilePayOperators.fuiou).ToString());
|
||
}
|
||
LogHelper.WriteServiceLog("订单号:" + TICKETCODE + "," + ex.Message);
|
||
try
|
||
{
|
||
OracleHelper _OracleHelper = new OracleHelper(_OracleHelperString.Split(',')[0],
|
||
_OracleHelperString.Split(',')[1], _OracleHelperString.Split(',')[2], _OracleHelperString.Split(',')[3]);
|
||
using (DataTable _DataTable = _OracleHelper.ExcuteSqlGetDataSet(
|
||
"SELECT TICKETCODE,UPPER(SELLDATA_EXTRA_DESC) AS SELLDATA_EXTRA_DESC " +
|
||
"FROM HIGHWAY_EXCHANGE.T_SELLDATA_EXTRA " +
|
||
"WHERE TICKETCODE = '" + TICKETCODE + "' AND SELLDATA_TYPE = '" + PAYTYPE + "'").Tables[0])
|
||
{
|
||
if (_DataTable.Rows.Count == 0 || _DataTable.Select("UPPER(SELLDATA_EXTRA_DESC) LIKE 'SUCCESS%'").Count() == 0)
|
||
{
|
||
string str = @"INSERT INTO HIGHWAY_EXCHANGE.T_SELLDATA_EXTRA (SELLDATA_ID,SELLDATA_TYPE,SELLDATA_DATE,
|
||
SERVERPARTCODE,SHOPCODE,MACHINECODE,TICKETCODE,FACTAMOUNT,SELLDATA_EXTRA_DESC,LINENUM)
|
||
VALUES(HIGHWAY_EXCHANGE.SEQ_SELLDATA_EXTRA.NEXTVAL,'" + PAYTYPE + "',TO_DATE('" + PayTime +
|
||
"','YYYY/MM/DD HH24:MI:SS'),'" + TICKETCODE.Substring(0, 6) + "','" + (TICKETCODE.Length == 28 ?
|
||
TICKETCODE.Substring(6, 4) : TICKETCODE.Substring(6, 6)) +
|
||
"','" + (TICKETCODE.Length == 28 ? (TICKETCODE.Substring(10, 4).StartsWith("0") ?
|
||
TICKETCODE.Substring(11, 3) : TICKETCODE.Substring(10, 4)) :
|
||
(TICKETCODE.Substring(12, 4).StartsWith("0") ? TICKETCODE.Substring(13, 3) :
|
||
TICKETCODE.Substring(12, 4))) + "','" + TICKETCODE + "'," +
|
||
(double.Parse(_JObject["xml"]["order_amt"].ToString()) / 100.00).ToString("0.00") +
|
||
",'SUCCESS'," + (int)CommonHelper.MobilePayOperators.fuiou + ")";
|
||
_OracleHelper.ExcuteSql(str);
|
||
}
|
||
}
|
||
#region 插入本地数据库(原方式)
|
||
//if (_OracleHelper.ExcuteSqlGetDataSet("SELECT 1 FROM HIGHWAY_EXCHANGE.T_SELLDATA_EXTRA WHERE TICKETCODE = '" +
|
||
// TICKETCODE + "' AND SELLDATA_TYPE = '" + PAYTYPE + "'").Tables[0].Rows.Count == 0)
|
||
//{
|
||
// string str = @"INSERT INTO HIGHWAY_EXCHANGE.T_SELLDATA_EXTRA (SELLDATA_ID,SELLDATA_TYPE,SELLDATA_DATE,
|
||
// SERVERPARTCODE,SHOPCODE,MACHINECODE,TICKETCODE,FACTAMOUNT,SELLDATA_EXTRA_DESC,LINENUM)
|
||
// VALUES(HIGHWAY_EXCHANGE.SEQ_SELLDATA_EXTRA.NEXTVAL,'" + PAYTYPE + "',TO_DATE('" + PayTime +
|
||
// "','YYYY/MM/DD HH24:MI:SS'),'" + TICKETCODE.Substring(0, 6) + "','" + (TICKETCODE.Length == 28 ?
|
||
// TICKETCODE.Substring(6, 4) : TICKETCODE.Substring(6, 6)) +
|
||
// "','" + (TICKETCODE.Length == 28 ? (TICKETCODE.Substring(10, 4).StartsWith("0") ?
|
||
// TICKETCODE.Substring(11, 3) : TICKETCODE.Substring(10, 4)) :
|
||
// (TICKETCODE.Substring(12, 4).StartsWith("0") ? TICKETCODE.Substring(13, 3) :
|
||
// TICKETCODE.Substring(12, 4))) + "','" + TICKETCODE + "'," +
|
||
// (double.Parse(_JObject["xml"]["order_amt"].ToString()) / 100.00).ToString("0.00") +
|
||
// ",'SUCCESS'," + (int)CommonHelper.MobilePayOperators.fuiou + ")";
|
||
// _OracleHelper.ExcuteSql(str);
|
||
//}
|
||
//else if (_OracleHelper.ExcuteSqlGetDataSet("SELECT 1 FROM HIGHWAY_EXCHANGE.T_SELLDATA_EXTRA WHERE TICKETCODE = '" +
|
||
// TICKETCODE + "' AND SELLDATA_TYPE = '" + PAYTYPE +
|
||
// "' AND UPPER(SELLDATA_EXTRA_DESC) LIKE 'SUCCESS%'").Tables[0].Rows.Count == 0)
|
||
//{
|
||
// string str = @"INSERT INTO HIGHWAY_EXCHANGE.T_SELLDATA_EXTRA (SELLDATA_ID,SELLDATA_TYPE,
|
||
// SELLDATA_DATE,SERVERPARTCODE,SHOPCODE,MACHINECODE,TICKETCODE,FACTAMOUNT,SELLDATA_EXTRA_DESC)
|
||
// VALUES(HIGHWAY_EXCHANGE.SEQ_SELLDATA_EXTRA.NEXTVAL,'" + PAYTYPE + "',TO_DATE('" + PayTime +
|
||
// "','YYYY/MM/DD HH24:MI:SS'),'" + TICKETCODE.Substring(0, 6) + "','" + (TICKETCODE.Length == 28 ?
|
||
// TICKETCODE.Substring(6, 4) : TICKETCODE.Substring(6, 6)) +
|
||
// "','" + (TICKETCODE.Length == 28 ? (TICKETCODE.Substring(10, 4).StartsWith("0") ?
|
||
// TICKETCODE.Substring(11, 3) : TICKETCODE.Substring(10, 4)) :
|
||
// (TICKETCODE.Substring(12, 4).StartsWith("0") ? TICKETCODE.Substring(13, 3) :
|
||
// TICKETCODE.Substring(12, 4))) + "','" + TICKETCODE + "'," +
|
||
// (double.Parse(_JObject["xml"]["order_amt"].ToString()) / 100.00).ToString("0.00") +
|
||
// ",'SUCCESS'," + (int)CommonHelper.MobilePayOperators.fuiou + ")";
|
||
// _OracleHelper.ExcuteSql(str);
|
||
//}
|
||
#endregion
|
||
if (Directory.Exists(AppDomain.CurrentDomain.BaseDirectory + "\\" + FilePath))
|
||
{
|
||
CommonHelper.SaveTextFile(FilePath + "\\" + TICKETCODE + ".txt", _PayQueryResult.result_desc);
|
||
}
|
||
}
|
||
catch (Exception _Exception)
|
||
{
|
||
LogHelper.WriteServiceLog("订单号:" + TICKETCODE + "," + _Exception.Message);
|
||
}
|
||
}
|
||
}
|
||
#endregion
|
||
|
||
#region 查询条码库
|
||
[WebMethod]
|
||
/// <summary>
|
||
/// 查询条码库参数
|
||
/// </summary>
|
||
/// <param name="Barcode">商品条码</param>
|
||
public string BarcodeLibraryQuery(string Barcode)
|
||
{
|
||
DataTable BarcodeLibrary = null;
|
||
try
|
||
{
|
||
OracleHelper _OracleHelper = new OracleHelper();
|
||
_OracleHelper.ConnString = _connectstring;
|
||
string str = @"SELECT COMMODITY_TYPE,COMMODITY_NAME,COMMODITY_BARCODE,COMMODITY_UNIT,
|
||
COMMODITY_RULE,COMMODITY_ORI,COMMODITY_RETAILPRICE,ADDTIME
|
||
FROM HIGHWAY_EXCHANGE.T_BARCODELIBRARY WHERE COMMODITY_BARCODE = '" + Barcode + "'";
|
||
BarcodeLibrary = _OracleHelper.ExcuteSqlGetDataSet(str).Tables[0];
|
||
if (BarcodeLibrary.Rows.Count > 0)
|
||
{
|
||
LogHelper.WriteServiceLog("查询到的商品信息参数:商品条码(COMMODITY_BARCODE):" + Barcode +
|
||
",数据返回值:" + JsonHelper.DataTableToJson(BarcodeLibrary, "BarcodeLibrary"));
|
||
return JsonHelper.DataTableToJson(BarcodeLibrary, "BarcodeLibrary");
|
||
}
|
||
else
|
||
{
|
||
JObject _JObject = GetBarcodeJson(Barcode);
|
||
if (_JObject != null && _JObject["showapi_res_body"] != null && _JObject["showapi_res_body"].ToString() != "")
|
||
{
|
||
string _COMMODITY_TYPE = "", _COMMODITY_NAME = "", _COMMODITY_UNIT = "",
|
||
_COMMODITY_RULE = "", _COMMODITY_ORI = "", _COMMODITY_RETAILPRICE = "";
|
||
|
||
try
|
||
{
|
||
//商品类型
|
||
_COMMODITY_TYPE = _JObject["showapi_res_body"]["goodsType"].ToString();
|
||
_COMMODITY_TYPE = _COMMODITY_TYPE.Split('>').Length > 0 ?
|
||
_COMMODITY_TYPE.Split('>')[_COMMODITY_TYPE.Split('>').Length - 1] : _COMMODITY_TYPE;
|
||
}
|
||
catch
|
||
{
|
||
_COMMODITY_TYPE = "便利店商品";
|
||
}
|
||
try
|
||
{
|
||
//商品名称
|
||
_COMMODITY_NAME = _JObject["showapi_res_body"]["goodsName"].ToString();
|
||
}
|
||
catch
|
||
{
|
||
_COMMODITY_NAME = "便利店商品";
|
||
}
|
||
try
|
||
{
|
||
//商品单位
|
||
_COMMODITY_UNIT = _JObject["showapi_res_body"]["units"].ToString();
|
||
}
|
||
catch
|
||
{
|
||
_COMMODITY_UNIT = "个";
|
||
}
|
||
try
|
||
{
|
||
//商品规格
|
||
_COMMODITY_RULE = _JObject["showapi_res_body"]["spec"].ToString();
|
||
}
|
||
catch
|
||
{
|
||
_COMMODITY_RULE = "个";
|
||
}
|
||
try
|
||
{
|
||
//商品产地
|
||
_COMMODITY_ORI = _JObject["showapi_res_body"]["ycg"].ToString();
|
||
}
|
||
catch
|
||
{
|
||
_COMMODITY_ORI = "*";
|
||
}
|
||
try
|
||
{
|
||
//商品价格
|
||
_COMMODITY_RETAILPRICE = string.IsNullOrEmpty(_JObject["showapi_res_body"]["price"].ToString()) ?
|
||
"NULL" : _JObject["showapi_res_body"]["price"].ToString();
|
||
}
|
||
catch
|
||
{
|
||
_COMMODITY_RETAILPRICE = "NULL";
|
||
}
|
||
str = @"INSERT INTO HIGHWAY_EXCHANGE.T_BARCODELIBRARY (BARCODELIBRARY_ID,COMMODITY_TYPE,COMMODITY_NAME,
|
||
COMMODITY_BARCODE,COMMODITY_UNIT,COMMODITY_RULE,COMMODITY_ORI,COMMODITY_RETAILPRICE,ADDTIME)
|
||
VALUES (HIGHWAY_EXCHANGE.SEQ_BARCODELIBRARY.NEXTVAL,'" + _COMMODITY_TYPE + "','" +
|
||
_COMMODITY_NAME + "','" + Barcode + "','" + _COMMODITY_UNIT + "','" +
|
||
_COMMODITY_RULE + "','" + _COMMODITY_ORI + "'," + _COMMODITY_RETAILPRICE + ",SYSDATE)";
|
||
_OracleHelper.ExcuteSql(str);
|
||
|
||
str = @"SELECT COMMODITY_TYPE,COMMODITY_NAME,COMMODITY_BARCODE,COMMODITY_UNIT,
|
||
COMMODITY_RULE,COMMODITY_ORI,COMMODITY_RETAILPRICE,ADDTIME
|
||
FROM HIGHWAY_EXCHANGE.T_BARCODELIBRARY WHERE COMMODITY_BARCODE = '" + Barcode + "'";
|
||
BarcodeLibrary = _OracleHelper.ExcuteSqlGetDataSet(str).Tables[0];
|
||
}
|
||
}
|
||
}
|
||
catch (Exception ex)
|
||
{
|
||
LogHelper.WriteServiceLog(ex.Message);
|
||
}
|
||
|
||
LogHelper.WriteServiceLog("查询到的商品信息参数:商品条码(COMMODITY_BARCODE):" + Barcode +
|
||
",数据返回值:" + JsonHelper.DataTableToJson(BarcodeLibrary, "BarcodeLibrary"));
|
||
return BarcodeLibrary == null ? "" : JsonHelper.DataTableToJson(BarcodeLibrary, "BarcodeLibrary").ToString();
|
||
}
|
||
|
||
protected JObject GetBarcodeJson(string Barcode)
|
||
{
|
||
string querys = "code=" + Barcode, bodys = "", url = host + path;
|
||
HttpWebRequest httpRequest = null;
|
||
HttpWebResponse httpResponse = null;
|
||
|
||
if (0 < querys.Length)
|
||
{
|
||
url = url + "?" + querys;
|
||
}
|
||
|
||
if (host.Contains("https://"))
|
||
{
|
||
ServicePointManager.ServerCertificateValidationCallback = new RemoteCertificateValidationCallback(CheckValidationResult);
|
||
httpRequest = (HttpWebRequest)WebRequest.CreateDefault(new Uri(url));
|
||
}
|
||
else
|
||
{
|
||
httpRequest = (HttpWebRequest)WebRequest.Create(url);
|
||
}
|
||
httpRequest.Method = method;
|
||
httpRequest.Headers.Add("Authorization", "APPCODE " + appcode);
|
||
if (0 < bodys.Length)
|
||
{
|
||
byte[] data = Encoding.UTF8.GetBytes(bodys);
|
||
using (Stream stream = httpRequest.GetRequestStream())
|
||
{
|
||
stream.Write(data, 0, data.Length);
|
||
}
|
||
}
|
||
try
|
||
{
|
||
httpResponse = (HttpWebResponse)httpRequest.GetResponse();
|
||
|
||
//using作为语句,用于定义一个范围,在此范围的末尾将释放对象
|
||
using (StreamReader sr = new StreamReader(httpResponse.GetResponseStream()))
|
||
{
|
||
//ReadToEnd适用于小文件的读取,一次性的返回整个文件
|
||
JObject _JObject = (JObject)JsonConvert.DeserializeObject(sr.ReadToEnd());
|
||
sr.Close();
|
||
return _JObject;
|
||
}
|
||
}
|
||
catch (WebException ex)
|
||
{
|
||
LogHelper.WriteServiceLog(ex.Message);
|
||
return null;
|
||
}
|
||
}
|
||
|
||
public static bool CheckValidationResult(object sender, X509Certificate certificate, X509Chain chain, SslPolicyErrors errors)
|
||
{
|
||
return true;
|
||
}
|
||
#endregion
|
||
|
||
#region 指定IP地址Ping状态
|
||
/// <summary>
|
||
/// 指定IP地址Ping状态
|
||
/// </summary>
|
||
/// <param name="HostNetIP"></param>
|
||
/// <returns></returns>
|
||
[WebMethod]
|
||
public string HostNetConnect(string HostNetIP)
|
||
{
|
||
int _timeout = 0;
|
||
int _testcount = 0;
|
||
long _RoundtripTime = 0;
|
||
//构造Ping实例
|
||
Ping pingSender = new Ping();
|
||
//Ping 选项设置
|
||
PingOptions options = new PingOptions();
|
||
options.DontFragment = true;
|
||
//测试数据
|
||
string data = "";
|
||
byte[] buffer = Encoding.ASCII.GetBytes(data);
|
||
//设置超时时间
|
||
int timeout = 120;
|
||
//调用同步 send 方法发送数据,将返回结果保存至PingReply实例
|
||
|
||
for (int i = 0; i < 10; i++)
|
||
{
|
||
try
|
||
{
|
||
_testcount++;
|
||
PingReply reply = pingSender.Send(HostNetIP, timeout, buffer, options);
|
||
if (reply.Status == IPStatus.Success)
|
||
{
|
||
_RoundtripTime += reply.RoundtripTime;
|
||
}
|
||
else if (reply.Status == IPStatus.TimedOut)
|
||
{
|
||
_timeout++;
|
||
_RoundtripTime += 120;
|
||
}
|
||
else
|
||
{
|
||
_timeout++;
|
||
_RoundtripTime += 120;
|
||
}
|
||
}
|
||
catch (Exception ex)
|
||
{
|
||
_timeout++;
|
||
_RoundtripTime += 1000;
|
||
}
|
||
}
|
||
return (_RoundtripTime / _testcount).ToString();
|
||
}
|
||
#endregion
|
||
|
||
#region 收银机添加商品同步上传
|
||
/// <summary>
|
||
/// 收银机添加商品同步上传
|
||
/// </summary>
|
||
/// <param name="JsonString"></param>
|
||
/// <returns></returns>
|
||
[WebMethod]
|
||
public string LocalCommodityExUpLoad(string JsonString)
|
||
{
|
||
using (DataTable _DataTable = JsonHelper.ToDataTable(JsonString))
|
||
{
|
||
if (_DataTable.Rows.Count > 0)
|
||
{
|
||
List<string> ListSQL = new List<string>();
|
||
OracleHelper _OracleHelper = new OracleHelper();
|
||
_OracleHelper.ConnString = _connectstring;
|
||
for (int i = 0; i < _DataTable.Rows.Count; i++)
|
||
{
|
||
//定义字段值
|
||
string COMMODITYEX_ID = _DataTable.Rows[i]["COMMODITYEX_ID"].ToString(),
|
||
SERVERPARTCODE = _DataTable.Rows[i]["SERVERPARTCODE"].ToString(),
|
||
COMMODITY_TYPE = _DataTable.Rows[i]["COMMODITY_TYPE"].ToString(),
|
||
COMMODITY_CODE = _DataTable.Rows[i]["COMMODITY_CODE"].ToString(),
|
||
COMMODITY_BARCODE = _DataTable.Rows[i]["COMMODITY_BARCODE"].ToString(),
|
||
COMMODITY_NAME = _DataTable.Rows[i]["COMMODITY_NAME"].ToString(),
|
||
COMMODITY_RULE = _DataTable.Rows[i]["COMMODITY_RULE"].ToString(),
|
||
COMMODITY_UNIT = _DataTable.Rows[i]["COMMODITY_UNIT"].ToString(),
|
||
COMMODITY_RETAILPRICE = _DataTable.Rows[i]["COMMODITY_RETAILPRICE"].ToString(),
|
||
COMMODITY_MEMBERPRICE = _DataTable.Rows[i]["COMMODITY_MEMBERPRICE"].ToString(),
|
||
CANCHANGEPRICE = _DataTable.Rows[i]["CANCHANGEPRICE"].ToString(),
|
||
ISVALID = _DataTable.Rows[i]["ISVALID"].ToString(),
|
||
COMMODITY_EN = _DataTable.Rows[i]["COMMODITY_EN"].ToString(),
|
||
ISBULK = _DataTable.Rows[i]["ISBULK"].ToString(),
|
||
METERINGMETHOD = _DataTable.Rows[i]["METERINGMETHOD"].ToString(),
|
||
DOWNLOADDATE = _DataTable.Rows[i]["DOWNLOADDATE"].ToString(),
|
||
FLAG = _DataTable.Rows[i]["FLAG"].ToString(),
|
||
BUSINESSTYPE = _DataTable.Rows[i]["BUSINESSTYPE"].ToString(),
|
||
SERVERPARTSHOP_ID = _DataTable.Rows[i]["SERVERPARTSHOP_ID"].ToString();
|
||
if (BUSINESSTYPE != "" && SERVERPARTSHOP_ID != "")
|
||
{
|
||
string _SelectSQL = string.Format("SELECT 1 FROM HIGHWAY_EXCHANGE.T_COMMODITYEX " +
|
||
"WHERE COMMODITY_BARCODE = '{0}' AND SERVERPARTSHOP_ID = {1} ", COMMODITY_BARCODE, SERVERPARTSHOP_ID);
|
||
if (_OracleHelper.ExcuteSqlGetDataSet(_SelectSQL).Tables[0].Rows.Count == 0)
|
||
{
|
||
long _MaxId = 0;
|
||
try
|
||
{
|
||
_MaxId = long.Parse(_OracleHelper.ExcuteSqlGetDataSet("SELECT MAX(COMMODITYEX_ID) " +
|
||
"FROM HIGHWAY_EXCHANGE.T_COMMODITYEX WHERE SERVERPARTSHOP_ID = " +
|
||
SERVERPARTSHOP_ID).Tables[0].Rows[0][0].ToString()) + 1;
|
||
}
|
||
catch
|
||
{
|
||
_MaxId = 1;
|
||
}
|
||
string _InsertSQL = "INSERT INTO HIGHWAY_EXCHANGE.T_COMMODITYEX " +
|
||
"( COMMODITYEX_ID, SERVERPARTCODE, COMMODITY_TYPE, " +
|
||
"COMMODITY_CODE, COMMODITY_BARCODE, COMMODITY_NAME, " +
|
||
"COMMODITY_RULE, COMMODITY_UNIT, COMMODITY_RETAILPRICE, " +
|
||
"COMMODITY_MEMBERPRICE, CANCHANGEPRICE, ISVALID, " +
|
||
"COMMODITY_EN, ISBULK, METERINGMETHOD, DOWNLOADDATE, " +
|
||
"FLAG, BUSINESSTYPE, SERVERPARTSHOP_ID ) " +
|
||
"VALUES (" + _MaxId + ",'" + SERVERPARTCODE + "','" + COMMODITY_TYPE + "','" +
|
||
_MaxId.ToString().PadLeft(8, '0') + "','" + COMMODITY_BARCODE + "','" + COMMODITY_NAME + "','" +
|
||
COMMODITY_RULE + "','" + COMMODITY_UNIT + "'," +
|
||
(COMMODITY_RETAILPRICE == "" ? "1" : COMMODITY_RETAILPRICE) + "," +
|
||
(COMMODITY_MEMBERPRICE == "" ? "1" : COMMODITY_MEMBERPRICE) + ",1,1,'" +
|
||
(COMMODITY_EN == "" ? "*" : COMMODITY_EN) + "'," +
|
||
(ISBULK == "" ? "0" : ISBULK) + "," +
|
||
(METERINGMETHOD == "" ? "1" : METERINGMETHOD) + ",TO_DATE('" +
|
||
(DOWNLOADDATE == "" ? DateTime.Now.ToString("yyyy/MM/dd HH:mm:ss") : DOWNLOADDATE) +
|
||
"','YYYY/MM/DD HH24:MI:SS')," + (FLAG == "" ? "1" : FLAG) + "," +
|
||
(BUSINESSTYPE == "" ? "NULL" : BUSINESSTYPE) + "," +
|
||
(SERVERPARTSHOP_ID == "" ? "NULL" : SERVERPARTSHOP_ID) + ") ";
|
||
ListSQL.Add(_InsertSQL);
|
||
//try
|
||
//{
|
||
// _OracleHelper.ExcuteSql(_InsertSQL);
|
||
//}
|
||
//catch (Exception _Exception)
|
||
//{
|
||
// LogHelper.WriteServiceLog(_Exception.Message);
|
||
//}
|
||
}
|
||
else
|
||
{
|
||
string _UpdateSQL = "UPDATE HIGHWAY_EXCHANGE.T_COMMODITYEX SET SERVERPARTCODE = '" + SERVERPARTCODE + "'," +
|
||
"COMMODITY_TYPE = '" + COMMODITY_TYPE + "'," + "COMMODITY_BARCODE = '" + COMMODITY_BARCODE + "'," +
|
||
"COMMODITY_NAME = '" + COMMODITY_NAME + "'," + "COMMODITY_RULE = '" + COMMODITY_RULE + "'," +
|
||
"COMMODITY_UNIT = '" + COMMODITY_UNIT + "'," + "COMMODITY_RETAILPRICE = " +
|
||
(COMMODITY_RETAILPRICE == "" ? "NULL" : COMMODITY_RETAILPRICE) + "," +
|
||
"COMMODITY_MEMBERPRICE = " + (COMMODITY_MEMBERPRICE == "" ? "NULL" : COMMODITY_MEMBERPRICE) + "," +
|
||
"CANCHANGEPRICE = " + (CANCHANGEPRICE == "" ? "1" : CANCHANGEPRICE) + "," +
|
||
"ISVALID = 1," + "COMMODITY_EN = '" + COMMODITY_EN + "'," +
|
||
"ISBULK = " + (ISBULK == "" ? "0" : ISBULK) + "," +
|
||
"METERINGMETHOD = " + (METERINGMETHOD == "" ? "1" : METERINGMETHOD) + "," +
|
||
"DOWNLOADDATE = TO_DATE('" + (DOWNLOADDATE == "" ? DateTime.Now.ToString("yyyy/MM/dd HH:mm:ss") :
|
||
DOWNLOADDATE) + "','YYYY/MM/DD HH24:MI:SS')," + "FLAG = " + (FLAG == "" ? "1" : FLAG) + "," +
|
||
"BUSINESSTYPE = " + (BUSINESSTYPE == "" ? "NULL" : BUSINESSTYPE) +
|
||
" WHERE COMMODITY_BARCODE = '" + COMMODITY_BARCODE + "' AND SERVERPARTSHOP_ID = " + SERVERPARTSHOP_ID;
|
||
ListSQL.Add(_UpdateSQL);
|
||
//try
|
||
//{
|
||
// _OracleHelper.ExcuteSql(_UpdateSQL);
|
||
//}
|
||
//catch (Exception _Exception)
|
||
//{
|
||
// LogHelper.WriteServiceLog(_Exception.Message);
|
||
//}
|
||
}
|
||
}
|
||
}
|
||
if (ListSQL.Count > 0)
|
||
{
|
||
try
|
||
{
|
||
_OracleHelper.ExecuteSqlTran(ListSQL);
|
||
}
|
||
catch (Exception _Exception)
|
||
{
|
||
LogHelper.WriteServiceLog(_Exception.Message);
|
||
}
|
||
}
|
||
}
|
||
}
|
||
return "";
|
||
}
|
||
#endregion
|
||
|
||
#region 收银报表本地数据上传
|
||
/// <summary>
|
||
/// 本地数据上传
|
||
/// </summary>
|
||
/// <param name="Type">类型</param>
|
||
/// <param name="Json">Json格式数据</param>
|
||
/// <returns>记录结果</returns>
|
||
[WebMethod]
|
||
public string LocalUpLoad(string Type, string Json)
|
||
{
|
||
string _Result = "";
|
||
DataTable _DataTable = ConvertOraclTableToDoNetTable(JsonHelper.ToDataTable(Json));
|
||
if (_DataTable.Rows.Count > 0)
|
||
{
|
||
List<string> _ListSQL = new List<string>();
|
||
OracleHelper _OracleHelper = new OracleHelper();
|
||
_OracleHelper.ConnString = _connectstring;
|
||
//判断上传数据类型并生产相应SQL语句
|
||
switch (Type.ToLower())
|
||
{
|
||
//日结及稽核数据
|
||
case "endaccount":
|
||
for (int i = 0; i < _DataTable.Rows.Count; i++)
|
||
{
|
||
DataTable _Table = _OracleHelper.ExcuteSqlGetDataSet(
|
||
"SELECT ENDACCOUNT_ID, ENDACCOUNT_STARTDATE, ENDACCOUNT_DATE, SERVERPARTCODE, SHOPCODE, " +
|
||
"MACHINECODE, ENDPERSONCODE, TICKETCOUNT, TOTALCOUNT, TOTALSELLAMOUNT, " +
|
||
"TOTALOFFAMOUNT, CASH, CREDITCARD,TICKETBILL, VIPPERSON, COSTBILL, OTHERPAY, CASHPAY, FLAG " +
|
||
"FROM HIGHWAY_EXCHANGE.T_ENDACCOUNT " +
|
||
"WHERE ENDACCOUNT_ID = " + _DataTable.Rows[i]["ENDACCOUNT_ID"].ToString() +
|
||
" AND SERVERPARTCODE = '" + _DataTable.Rows[i]["SERVERPARTCODE"].ToString() +
|
||
"' AND SHOPCODE = '" + _DataTable.Rows[i]["SHOPCODE"].ToString() +
|
||
"' AND MACHINECODE = '" + _DataTable.Rows[i]["MACHINECODE"].ToString() +
|
||
"' AND ENDACCOUNT_STARTDATE = TO_DATE('" + _DataTable.Rows[i]["ENDACCOUNT_STARTDATE"].ToString() +
|
||
"','YYYY/MM/DD HH24:MI:SS') ").Tables[0];
|
||
if (_Table.Rows.Count < 1)
|
||
{
|
||
string _insertsql = "INSERT INTO HIGHWAY_EXCHANGE.T_ENDACCOUNT (" + SqlColumns(_DataTable) +
|
||
") VALUES (" + SqlValues(_DataTable, _DataTable.Rows[i]) + ")";
|
||
_ListSQL.Add(_insertsql);
|
||
}
|
||
else if (_Table.Rows.Count == 1)
|
||
{
|
||
if (_Table.Rows[0]["ENDACCOUNT_DATE"].ToString() == "")
|
||
{
|
||
string _updatesql = "UPDATE HIGHWAY_EXCHANGE.T_ENDACCOUNT SET ENDACCOUNT_DATE = TO_DATE('" +
|
||
_DataTable.Rows[i]["ENDACCOUNT_DATE"].ToString() + "','YYYY/MM/DD HH24:MI:SS'), ENDPERSONCODE = '" +
|
||
_DataTable.Rows[i]["ENDPERSONCODE"].ToString() + "',TICKETCOUNT = " +
|
||
_DataTable.Rows[i]["TICKETCOUNT"].ToString() + ",TOTALCOUNT = " +
|
||
_DataTable.Rows[i]["TOTALCOUNT"].ToString() + ",TOTALSELLAMOUNT = " +
|
||
_DataTable.Rows[i]["TOTALSELLAMOUNT"].ToString() + ",TOTALOFFAMOUNT = " +
|
||
_DataTable.Rows[i]["TOTALOFFAMOUNT"].ToString() + ",CASH = " +
|
||
_DataTable.Rows[i]["CASH"].ToString() + ",CREDITCARD = " +
|
||
_DataTable.Rows[i]["CREDITCARD"].ToString() + ",TICKETBILL = " +
|
||
_DataTable.Rows[i]["TICKETBILL"].ToString() + ",VIPPERSON = " +
|
||
_DataTable.Rows[i]["VIPPERSON"].ToString() + ",COSTBILL = " +
|
||
_DataTable.Rows[i]["COSTBILL"].ToString() + ",OTHERPAY = " +
|
||
_DataTable.Rows[i]["OTHERPAY"].ToString() + ",CASHPAY = " +
|
||
_DataTable.Rows[i]["CASHPAY"].ToString() + " WHERE ENDACCOUNT_ID = " +
|
||
_DataTable.Rows[i]["ENDACCOUNT_ID"].ToString() + " AND SERVERPARTCODE = '" +
|
||
_DataTable.Rows[i]["SERVERPARTCODE"].ToString() + "' AND SHOPCODE = '" +
|
||
_DataTable.Rows[i]["SHOPCODE"].ToString() + "' AND MACHINECODE = '" +
|
||
_DataTable.Rows[i]["MACHINECODE"].ToString() + "' AND ENDACCOUNT_STARTDATE = TO_DATE('" +
|
||
_DataTable.Rows[i]["ENDACCOUNT_STARTDATE"].ToString() + "','YYYY/MM/DD HH24:MI:SS') ";
|
||
_ListSQL.Add(_updatesql);
|
||
}
|
||
}
|
||
else
|
||
{
|
||
_ListSQL.Add("DELETE FROM HIGHWAY_EXCHANGE.T_ENDACCOUNT WHERE ENDACCOUNT_ID = " +
|
||
_DataTable.Rows[i]["ENDACCOUNT_ID"].ToString() + " AND SERVERPARTCODE = '" +
|
||
_DataTable.Rows[i]["SERVERPARTCODE"].ToString() + "' AND SHOPCODE = '" +
|
||
_DataTable.Rows[i]["SHOPCODE"].ToString() + "' AND MACHINECODE = '" +
|
||
_DataTable.Rows[i]["MACHINECODE"].ToString() + "' AND ENDACCOUNT_STARTDATE = TO_DATE('" +
|
||
_DataTable.Rows[i]["ENDACCOUNT_STARTDATE"].ToString() + "','YYYY/MM/DD HH24:MI:SS') ");
|
||
|
||
string _insertsql = "INSERT INTO HIGHWAY_EXCHANGE.T_ENDACCOUNT (" + SqlColumns(_DataTable) +
|
||
") VALUES (" + SqlValues(_DataTable, _DataTable.Rows[i]) + ")";
|
||
_ListSQL.Add(_insertsql);
|
||
}
|
||
}
|
||
break;
|
||
//收银交班数据
|
||
case "personsell":
|
||
for (int i = 0; i < _DataTable.Rows.Count; i++)
|
||
{
|
||
DataTable _Table = _OracleHelper.ExcuteSqlGetDataSet(
|
||
"SELECT PERSONSELL_ID, SERVERPARTCODE, SHOPCODE, MACHINECODE, STARTDATE, ENDDATE, " +
|
||
"CASHWORKER_CODE, TICKETCOUNT, TOTALCOUNT, TOTALSELLAMOUNT, TOTALOFFAMOUNT, " +
|
||
"CASH, TICKETBILL, CREDITCARD, VIPPERSON, COSTBILL, OTHERPAY, CASHPAY, ENDPERSONCODE " +
|
||
"FROM HIGHWAY_EXCHANGE.T_PERSONSELL " +
|
||
"WHERE PERSONSELL_ID = " + _DataTable.Rows[i]["PERSONSELL_ID"].ToString() +
|
||
" AND SERVERPARTCODE = '" + _DataTable.Rows[i]["SERVERPARTCODE"].ToString() +
|
||
"' AND SHOPCODE = '" + _DataTable.Rows[i]["SHOPCODE"].ToString() +
|
||
"' AND MACHINECODE = '" + _DataTable.Rows[i]["MACHINECODE"].ToString() +
|
||
"' AND STARTDATE = TO_DATE('" + _DataTable.Rows[i]["STARTDATE"].ToString() +
|
||
"','YYYY/MM/DD HH24:MI:SS') ").Tables[0];
|
||
if (_Table.Rows.Count < 1)
|
||
{
|
||
string _insertsql = "INSERT INTO HIGHWAY_EXCHANGE.T_PERSONSELL ( " + SqlColumns(_DataTable) +
|
||
") VALUES (" + SqlValues(_DataTable, _DataTable.Rows[i]) + ")";
|
||
_ListSQL.Add(_insertsql);
|
||
}
|
||
else if (_Table.Rows.Count == 1)
|
||
{
|
||
string _updatesql = "UPDATE HIGHWAY_EXCHANGE.T_PERSONSELL SET ENDDATE = TO_DATE('" +
|
||
_DataTable.Rows[i]["ENDDATE"].ToString() + "','YYYY/MM/DD HH24:MI:SS')," +
|
||
"CASHWORKER_CODE = '" + _DataTable.Rows[i]["CASHWORKER_CODE"].ToString() + "'," +
|
||
"TICKETCOUNT = " + _DataTable.Rows[i]["TICKETCOUNT"].ToString() + "," +
|
||
"TOTALCOUNT = " + _DataTable.Rows[i]["TOTALCOUNT"].ToString() + "," +
|
||
"TOTALSELLAMOUNT = " + _DataTable.Rows[i]["TOTALSELLAMOUNT"].ToString() + "," +
|
||
"TOTALOFFAMOUNT = " + _DataTable.Rows[i]["TOTALOFFAMOUNT"].ToString() + "," +
|
||
"CASH = " + _DataTable.Rows[i]["CASH"].ToString() + "," +
|
||
"TICKETBILL = " + _DataTable.Rows[i]["TICKETBILL"].ToString() + "," +
|
||
"CREDITCARD = " + _DataTable.Rows[i]["CREDITCARD"].ToString() + "," +
|
||
"VIPPERSON = " + _DataTable.Rows[i]["VIPPERSON"].ToString() + "," +
|
||
"COSTBILL = " + _DataTable.Rows[i]["COSTBILL"].ToString() + "," +
|
||
"OTHERPAY = " + _DataTable.Rows[i]["OTHERPAY"].ToString() + "," +
|
||
"CASHPAY = " + _DataTable.Rows[i]["CASHPAY"].ToString() + "," +
|
||
"ENDPERSONCODE = '" + _DataTable.Rows[i]["ENDPERSONCODE"].ToString() + "' " +
|
||
"WHERE PERSONSELL_ID = " + _DataTable.Rows[i]["PERSONSELL_ID"].ToString() +
|
||
" AND SERVERPARTCODE = '" + _DataTable.Rows[i]["SERVERPARTCODE"].ToString() +
|
||
"' AND SHOPCODE = '" + _DataTable.Rows[i]["SHOPCODE"].ToString() +
|
||
"' AND MACHINECODE = '" + _DataTable.Rows[i]["MACHINECODE"].ToString() +
|
||
"' AND STARTDATE = TO_DATE('" + _DataTable.Rows[i]["STARTDATE"].ToString() +
|
||
"','YYYY/MM/DD HH24:MI:SS') ";
|
||
_ListSQL.Add(_updatesql);
|
||
}
|
||
else
|
||
{
|
||
_ListSQL.Add("DELETE FROM HIGHWAY_EXCHANGE.T_PERSONSELL WHERE PERSONSELL_ID = " +
|
||
_DataTable.Rows[i]["PERSONSELL_ID"].ToString() + " AND SERVERPARTCODE = '" +
|
||
_DataTable.Rows[i]["SERVERPARTCODE"].ToString() + "' AND SHOPCODE = '" +
|
||
_DataTable.Rows[i]["SHOPCODE"].ToString() + "' AND MACHINECODE = '" +
|
||
_DataTable.Rows[i]["MACHINECODE"].ToString() + "' AND STARTDATE = TO_DATE('" +
|
||
_DataTable.Rows[i]["STARTDATE"].ToString() +
|
||
"','YYYY/MM/DD HH24:MI:SS') ");
|
||
|
||
string _insertsql = "INSERT INTO HIGHWAY_EXCHANGE.T_PERSONSELL ( " + SqlColumns(_DataTable) +
|
||
") VALUES (" + SqlValues(_DataTable, _DataTable.Rows[i]) + ")";
|
||
_ListSQL.Add(_insertsql);
|
||
}
|
||
}
|
||
break;
|
||
//单品集合数据
|
||
case "transfer_sale":
|
||
for (int i = 0; i < _DataTable.Rows.Count; i++)
|
||
{
|
||
if (_OracleHelper.ExcuteSqlGetDataSet("SELECT 1 FROM HIGHWAY_EXCHANGE.T_TRANSFER_SALE WHERE TRANSFER_ID = " +
|
||
_DataTable.Rows[i]["TRANSFER_ID"].ToString() + " AND SERVERPARTCODE = '" +
|
||
_DataTable.Rows[i]["SERVERPARTCODE"].ToString() + "' AND SHOPCODE = '" +
|
||
_DataTable.Rows[i]["SHOPCODE"].ToString() + "' AND STARTDATE = TO_DATE('" +
|
||
_DataTable.Rows[i]["STARTDATE"].ToString() + "','YYYY/MM/DD HH24:MI:SS') AND ENDDATE = TO_DATE('" +
|
||
_DataTable.Rows[i]["ENDDATE"].ToString() + "','YYYY/MM/DD HH24:MI:SS') AND TRANSFER_FIRSTDATAS = '" +
|
||
_DataTable.Rows[i]["TRANSFER_FIRSTDATAS"].ToString() + "'").Tables[0].Rows.Count == 0)
|
||
{
|
||
string _insertsql = "INSERT INTO HIGHWAY_EXCHANGE.T_TRANSFER_SALE ( " + SqlColumns(_DataTable) +
|
||
") VALUES (" + SqlValues(_DataTable, _DataTable.Rows[i]) + ")";
|
||
_ListSQL.Add(_insertsql);
|
||
}
|
||
}
|
||
break;
|
||
//移动支付
|
||
case "mobile_pay":
|
||
for (int i = 0; i < _DataTable.Rows.Count; i++)
|
||
{
|
||
if (_OracleHelper.ExcuteSqlGetDataSet("SELECT 1 FROM HIGHWAY_EXCHANGE.T_MOBILE_PAY WHERE MOBILE_PAY_ID = " +
|
||
_DataTable.Rows[i]["MOBILE_PAY_ID"].ToString() + " AND SERVERPARTCODE = '" +
|
||
_DataTable.Rows[i]["SERVERPARTCODE"].ToString() + "' AND SHOPCODE = '" +
|
||
_DataTable.Rows[i]["SHOPCODE"].ToString() + "' AND MACHINECODE = '" +
|
||
_DataTable.Rows[i]["MACHINECODE"].ToString() + "' AND WORKERCODE = '" +
|
||
_DataTable.Rows[i]["WORKERCODE"].ToString() + "' AND MOBILEPAY_DATE = TO_DATE('" +
|
||
_DataTable.Rows[i]["MOBILEPAY_DATE"].ToString() + "','YYYY/MM/DD HH24:MI:SS') AND MOBILEPAY_TYPE = '" +
|
||
_DataTable.Rows[i]["MOBILEPAY_TYPE"].ToString() + "'").Tables[0].Rows.Count == 0)
|
||
{
|
||
string _insertsql = "INSERT INTO HIGHWAY_EXCHANGE.T_MOBILE_PAY ( " + SqlColumns(_DataTable) +
|
||
") VALUES (" + SqlValues(_DataTable, _DataTable.Rows[i]) + ")";
|
||
_ListSQL.Add(_insertsql);
|
||
}
|
||
}
|
||
break;
|
||
}
|
||
//执行写入数据
|
||
if (_ListSQL.Count > 0)
|
||
{
|
||
try
|
||
{
|
||
_OracleHelper.ExecuteSqlTran(_ListSQL);
|
||
_Result = "1";
|
||
}
|
||
catch (Exception ex)
|
||
{
|
||
_Result = ex.Message;
|
||
LogHelper.WriteServiceLog(ex.Message);
|
||
}
|
||
}
|
||
else
|
||
{
|
||
_Result = "9";
|
||
}
|
||
}
|
||
else
|
||
{
|
||
_Result = "9";
|
||
}
|
||
return _Result;
|
||
}
|
||
#endregion
|
||
|
||
#region DataTable相关
|
||
/// <summary>
|
||
/// 获取列名
|
||
/// </summary>
|
||
/// <param name="Table"></param>
|
||
/// <returns></returns>
|
||
private string SqlColumns(DataTable Table)
|
||
{
|
||
string _Columnsstr = "";
|
||
foreach (DataColumn col in Table.Columns)
|
||
{
|
||
_Columnsstr += (_Columnsstr == "" ? col.ColumnName : "," + col.ColumnName);
|
||
}
|
||
return _Columnsstr;
|
||
}
|
||
/// <summary>
|
||
/// 获取行值
|
||
/// </summary>
|
||
/// <param name="Table"></param>
|
||
/// <param name="Row"></param>
|
||
/// <returns></returns>
|
||
private string SqlValues(DataTable Table, DataRow Row)
|
||
{
|
||
string _valuesstr = "";
|
||
for (int i = 0; i < Table.Columns.Count; i++)
|
||
{
|
||
if (Table.Columns[i].DataType.ToString() == "System.Decimal")
|
||
{
|
||
_valuesstr += _valuesstr == "" ? (Row[i].ToString() == "" ? "NULL" : Row[i].ToString()) : "," +
|
||
(Row[i].ToString() == "" ? "NULL" : Row[i].ToString());
|
||
}
|
||
else if (Table.Columns[i].DataType.ToString() == "System.DateTime")
|
||
{
|
||
_valuesstr += _valuesstr == "" ? (Row[i].ToString() == "" ? "NULL" : "TO_DATE('" + Row[i].ToString() +
|
||
"','YYYY/MM/DD HH24:MI:SS')") : "," + (Row[i].ToString() == "" ? "NULL" : "TO_DATE('" +
|
||
Row[i].ToString() + "','YYYY/MM/DD HH24:MI:SS')");
|
||
}
|
||
else
|
||
{
|
||
try
|
||
{
|
||
DateTime.Parse(Row[i].ToString());
|
||
_valuesstr += _valuesstr == "" ? (Row[i].ToString() == "" ? "NULL" : "TO_DATE('" + Row[i].ToString() +
|
||
"','YYYY/MM/DD HH24:MI:SS')") : "," + (Row[i].ToString() == "" ? "NULL" : "TO_DATE('" +
|
||
Row[i].ToString() + "','YYYY/MM/DD HH24:MI:SS')");
|
||
}
|
||
catch
|
||
{
|
||
_valuesstr += _valuesstr == "" ? (Row[i].ToString() == "" ? "NULL" : "'" + Row[i].ToString()) + "'" :
|
||
"," + (Row[i].ToString() == "" ? "NULL" : "'" + Row[i].ToString() + "'");
|
||
}
|
||
}
|
||
}
|
||
return _valuesstr;
|
||
}
|
||
/// <summary>
|
||
/// 转换DataTable字段类型
|
||
/// </summary>
|
||
/// <param name="table"></param>
|
||
/// <returns></returns>
|
||
public static DataTable ConvertOraclTableToDoNetTable(DataTable table)
|
||
{
|
||
DataTable dt = new DataTable();
|
||
foreach (DataColumn dc in table.Columns)
|
||
{
|
||
DataColumn column = new DataColumn();
|
||
column.DataType = GetDataType(dc.DataType);
|
||
column.ColumnName = dc.ColumnName;
|
||
column.Caption = dc.Caption;
|
||
dt.Columns.Add(column);
|
||
}
|
||
dt.TableName = table.TableName;
|
||
dt.Merge(table, false, MissingSchemaAction.Ignore);
|
||
return dt;
|
||
}
|
||
/// <summary>
|
||
/// 字段类型
|
||
/// </summary>
|
||
/// <param name="dataType"></param>
|
||
/// <returns></returns>
|
||
public static Type GetDataType(Type dataType)
|
||
{
|
||
switch (dataType.ToString())
|
||
{
|
||
case "System.Double":
|
||
return System.Type.GetType("System.Decimal");
|
||
case "System.Int32":
|
||
return System.Type.GetType("System.Decimal");
|
||
case "System.Int16":
|
||
return System.Type.GetType("System.Decimal");
|
||
case "System.Int64":
|
||
return System.Type.GetType("System.Decimal");
|
||
default:
|
||
return dataType;
|
||
}
|
||
}
|
||
#endregion
|
||
|
||
#region 商品审批
|
||
/// <summary>
|
||
/// 商品审批
|
||
/// </summary>
|
||
/// <param name="Json">Json格式数据</param>
|
||
/// <returns>记录结果</returns>
|
||
[WebMethod]
|
||
public string CommodityApply(string Json)
|
||
{
|
||
string _Result = "", _insertsql = "", _updatesql = "";
|
||
List<string> _ListSQL = new List<string>();
|
||
OracleHelper _OracleHelper = new OracleHelper(_OracleHelperString.Split(',')[0],
|
||
_OracleHelperString.Split(',')[1], _OracleHelperString.Split(',')[2], _OracleHelperString.Split(',')[3]);
|
||
DataSet _DataSet = JsonHelper.JsonToDataSet(Json);
|
||
for (int n = 0; n < _DataSet.Tables.Count; n++)
|
||
{
|
||
DataTable _DataTable = _DataSet.Tables[n];
|
||
switch (_DataTable.TableName.ToUpper())
|
||
{
|
||
//主单
|
||
case "T_COMMODITY_APPLY":
|
||
string SQL = "SELECT COUNT(*) FROM HIGHWAY_EXCHANGE.T_COMMODITYAPPLY WHERE COMMODITY_APPLY_ID = " + _DataTable.Rows[0]["COMMODITY_APPLY_ID"];
|
||
DataTable dt = _OracleHelper.ExcuteSqlGetDataSet(SQL).Tables[0];
|
||
if (dt.Rows[0][0].ToString() == "0")
|
||
{
|
||
_insertsql = "INSERT INTO HIGHWAY_EXCHANGE.T_COMMODITYAPPLY (" + SqlColumns(_DataTable) +
|
||
") VALUES (" + SqlValues(_DataTable, _DataTable.Rows[0]) + ")";
|
||
_ListSQL.Add(_insertsql);
|
||
}
|
||
break;
|
||
//明细
|
||
case "T_COMMODITY_APPLYDETAIL":
|
||
for (int i = 0; i < _DataTable.Rows.Count; i++)
|
||
{
|
||
string SQL_DETAIL = "SELECT COUNT(*) FROM HIGHWAY_EXCHANGE.T_COMMODITYAPPLYDETAIL WHERE COMMODITY_BARCODE = " +
|
||
_DataTable.Rows[i]["COMMODITY_BARCODE"] + " AND BUSINESSTYPE = " + _DataTable.Rows[i]["BUSINESSTYPE"] +
|
||
" AND SERVERPARTCODE = " + _DataTable.Rows[i]["SERVERPARTCODE"] + " AND COMMODITY_APPLY_ID = " +
|
||
_DataTable.Rows[i]["COMMODITY_APPLY_ID"];
|
||
DataTable dt_DETAIL = _OracleHelper.ExcuteSqlGetDataSet(SQL_DETAIL).Tables[0];
|
||
if (dt_DETAIL.Rows[0][0].ToString() == "0")
|
||
{
|
||
_insertsql = "INSERT INTO HIGHWAY_EXCHANGE.T_COMMODITYAPPLYDETAIL (" + SqlColumns(_DataTable) +
|
||
") VALUES (" + SqlValues(_DataTable, _DataTable.Rows[i]) + ")";
|
||
_ListSQL.Add(_insertsql);
|
||
}
|
||
}
|
||
break;
|
||
}
|
||
}
|
||
if (_ListSQL.Count > 0)
|
||
{
|
||
try
|
||
{
|
||
_OracleHelper.ExecuteSqlTran(_ListSQL);
|
||
_Result = "9";
|
||
}
|
||
catch (Exception ex)
|
||
{
|
||
_Result = ex.Message;
|
||
LogHelper.WriteServiceLog(ex.Message);
|
||
}
|
||
}
|
||
else
|
||
{
|
||
_Result = "0";
|
||
}
|
||
return _Result;
|
||
}
|
||
#endregion
|
||
|
||
#region 查询销售流水集合
|
||
/// <summary>
|
||
/// 查询销售流水集合
|
||
/// </summary>
|
||
/// <param name="ServerpartCode">服务区 (加密)</param>
|
||
/// <param name="ShopCode">门店 (加密)</param>
|
||
/// <param name="StartTime">开始销售时间</param>
|
||
/// <param name="EndTime">结束销售时间</param>
|
||
/// <returns></returns>
|
||
[WebMethod]
|
||
public string Get_Transfer_Selldata_List(string ServerpartCode, string ShopCode, string StartTime, string EndTime)
|
||
{
|
||
DataTable Transfer_Selldata_List = null;
|
||
try
|
||
{
|
||
OracleHelper _OracleHelper = new OracleHelper();
|
||
_OracleHelper.ConnString = _connectstring;
|
||
string str = string.Format(@"SELECT TRANSFER_ID,SELLDATA_DATE,SERVERPARTCODE,SHOPCODE,MACHINECODE,TICKETCODE,
|
||
WORKERCODE,SELLCOUNT,OFFPRICE,FACTAMOUNT,TRANSFER_FIRSTDATAS,TRANSFER_SECONDDATAS,
|
||
TRANSFER_THIRDDATAS,TRANSFER_FORTHDATAS,TRANSFER_FIFTHDATAS,TRANSFER_STATE,TRANSFER_SELLDATA_ID
|
||
FROM HIGHWAY_EXCHANGE.T_TRANSFER_SELLDATA WHERE 1=1 {0} {1} {2} {3} ORDER BY SELLDATA_DATE DESC",
|
||
(string.IsNullOrEmpty(ServerpartCode) ? "" : " AND SERVERPARTCODE = '" + ServerpartCode.ToDecrypt() + "'"),
|
||
(string.IsNullOrEmpty(ShopCode) ? "" : " AND SHOPCODE = '" + ShopCode.ToDecrypt() + "'"),
|
||
(string.IsNullOrEmpty(StartTime) ? "" : " AND SELLDATA_DATE >= TO_DATE('" + StartTime + "','YYYY/MM/DD HH24:MI:SS')"),
|
||
(string.IsNullOrEmpty(EndTime) ? "" : " AND SELLDATA_DATE <= TO_DATE('" + EndTime + "','YYYY/MM/DD HH24:MI:SS')"));
|
||
Transfer_Selldata_List = _OracleHelper.ExcuteSqlGetDataSet(str).Tables[0];
|
||
if (Transfer_Selldata_List.Rows.Count > 0)
|
||
{
|
||
return JsonHelper.DataTableToJson(Transfer_Selldata_List, "Transfer_Selldata_List");
|
||
}
|
||
}
|
||
catch (Exception ex)
|
||
{
|
||
LogHelper.WriteServiceLog(ex.ToString());
|
||
}
|
||
return "";
|
||
}
|
||
#endregion
|
||
|
||
#region 百度人脸识别
|
||
[WebMethod]
|
||
public string BaiduAIService(string imageBase64)
|
||
{
|
||
Image _Image = ImageHelper.Base64ToImage(imageBase64);
|
||
FaceDetectionModel faceDetectionModel = BaiduFaceAPI.FaceDetect(_Image);
|
||
if (faceDetectionModel != null && faceDetectionModel.result != null)
|
||
{
|
||
double _blur = faceDetectionModel.result.face_list[0].quality.blur;
|
||
double _completeness = faceDetectionModel.result.face_list[0].quality.completeness;
|
||
if (_blur < 0.01 && _completeness == 1)
|
||
{
|
||
FaceIdentifyModel identifyInfo = BaiduFaceAPI.FaceIdentify(_Image, "gsyw_cs", 1, 1);
|
||
if (identifyInfo.result.user_list[0].score > BaiduAIConfig.RECOGNITION_DEGREE)
|
||
{
|
||
return JsonConvert.SerializeObject(identifyInfo);
|
||
}
|
||
}
|
||
}
|
||
return JsonConvert.SerializeObject(default(FaceIdentifyModel));
|
||
}
|
||
#endregion
|
||
|
||
#region 方法 -> 获取人事人员信息
|
||
/// <summary>
|
||
/// 获取人员信息
|
||
/// </summary>
|
||
/// <param name="phone_number">手机号码</param>
|
||
/// <param name="_Transaction"></param>
|
||
/// <returns></returns>
|
||
[WebMethod]
|
||
public string get_staff_by_tel(string phone_number)
|
||
{
|
||
DataTable STAFF_List = null;
|
||
if (!string.IsNullOrEmpty(phone_number))
|
||
{
|
||
try
|
||
{
|
||
OracleHelper _OracleHelper = new OracleHelper();
|
||
_OracleHelper.ConnString = _connectstring;
|
||
string str = string.Format("SELECT * FROM PERSONNEL_STORAGE.T_STAFF WHERE PHONE_NUMBER = '{0}'", phone_number.ToDecrypt());
|
||
STAFF_List = _OracleHelper.ExcuteSqlGetDataSet(str).Tables[0];
|
||
if (STAFF_List.Rows.Count > 0)
|
||
{
|
||
return JsonHelper.DataTableToJson(STAFF_List, "STAFF_List");
|
||
}
|
||
}
|
||
catch (Exception ex)
|
||
{
|
||
LogHelper.WriteServiceLog(ex.ToString());
|
||
}
|
||
}
|
||
return "";
|
||
}
|
||
|
||
/// <summary>
|
||
/// 获取人员信息
|
||
/// </summary>
|
||
/// <param name="args">手机号码,姓名,省份证号</param>
|
||
/// <returns></returns>
|
||
[WebMethod]
|
||
public string get_staff(string PHONE_NUMBER, string STAFF_NAME, string ID_CARD_NO)
|
||
{
|
||
DataTable STAFF_List = null;
|
||
|
||
try
|
||
{
|
||
OracleHelper _OracleHelper = new OracleHelper();
|
||
_OracleHelper.ConnString = _connectstring;
|
||
|
||
string sqlStr = "";
|
||
if (!string.IsNullOrEmpty(PHONE_NUMBER))
|
||
{
|
||
sqlStr += (string.IsNullOrEmpty(sqlStr) ? "" : " OR ") + (string.IsNullOrEmpty(PHONE_NUMBER) ?
|
||
"" : " PHONE_NUMBER = '" + PHONE_NUMBER.ToDecrypt() + "'");
|
||
}
|
||
if (!string.IsNullOrEmpty(STAFF_NAME))
|
||
{
|
||
sqlStr += (string.IsNullOrEmpty(sqlStr) ? "" : " OR ") + (string.IsNullOrEmpty(STAFF_NAME) ?
|
||
"" : " STAFF_NAME = '" + STAFF_NAME.ToDecrypt() + "'");
|
||
}
|
||
if (!string.IsNullOrEmpty(ID_CARD_NO))
|
||
{
|
||
sqlStr += (string.IsNullOrEmpty(sqlStr) ? "" : " OR ") + (string.IsNullOrEmpty(ID_CARD_NO) ?
|
||
"" : " ID_CARD_NO = '" + ID_CARD_NO.ToDecrypt() + "'");
|
||
}
|
||
|
||
string str = "SELECT * FROM PERSONNEL_STORAGE.T_STAFF WHERE " + (string.IsNullOrEmpty(sqlStr) ? "1=2" : sqlStr);
|
||
|
||
STAFF_List = _OracleHelper.ExcuteSqlGetDataSet(str).Tables[0];
|
||
if (STAFF_List.Rows.Count > 0)
|
||
{
|
||
return JsonHelper.DataTableToJson(STAFF_List, "STAFF_List");
|
||
}
|
||
}
|
||
catch (Exception ex)
|
||
{
|
||
LogHelper.WriteServiceLog(ex.ToString());
|
||
}
|
||
|
||
return "";
|
||
}
|
||
#endregion
|
||
|
||
#region 方法 -> 获取用户数据
|
||
[WebMethod]
|
||
public string get_user_list()
|
||
{
|
||
DataTable USER_List = null;
|
||
try
|
||
{
|
||
OracleHelper _OracleHelper = new OracleHelper();
|
||
_OracleHelper.ConnString = _connectstring;
|
||
string str = string.Format("SELECT * FROM PLATFORM_FRAMEWORK.T_USER");
|
||
USER_List = _OracleHelper.ExcuteSqlGetDataSet(str).Tables[0];
|
||
if (USER_List.Rows.Count > 0)
|
||
{
|
||
return JsonHelper.DataTableToJson(USER_List, "USER_List");
|
||
}
|
||
}
|
||
catch (Exception ex)
|
||
{
|
||
LogHelper.WriteServiceLog(ex.ToString());
|
||
}
|
||
return "";
|
||
}
|
||
#endregion
|
||
|
||
#region 方法 -> 获取用户分类数据
|
||
[WebMethod]
|
||
public string get_usertype_list()
|
||
{
|
||
DataTable USER_List = null;
|
||
try
|
||
{
|
||
OracleHelper _OracleHelper = new OracleHelper();
|
||
_OracleHelper.ConnString = _connectstring;
|
||
string str = string.Format("SELECT * FROM PLATFORM_FRAMEWORK.T_USERTYPE ORDER BY USERTYPE_PID,USERTYPE_INDEX,USERTYPE_NAME");
|
||
USER_List = _OracleHelper.ExcuteSqlGetDataSet(str).Tables[0];
|
||
if (USER_List.Rows.Count > 0)
|
||
{
|
||
return JsonHelper.DataTableToJson(USER_List, "USERTYPE_List");
|
||
}
|
||
}
|
||
catch (Exception ex)
|
||
{
|
||
LogHelper.WriteServiceLog(ex.ToString());
|
||
}
|
||
return "";
|
||
}
|
||
#endregion
|
||
|
||
#region 方法 -> 获取线上订单
|
||
//[WebMethod]
|
||
//public string getSaleBillList(string ServerpartCode, string ShopCode, string SaleBillID, string ProvinceCode = "330000")
|
||
//{
|
||
// //OracleHelper _OracleHelper = new OracleHelper("183.129.232.107", "orcl", "MOBILESERVICE_PLATFORM", "qrwl");
|
||
// OracleHelper _OracleHelper = new OracleHelper("60.191.61.27", "orcl", "MOBILESERVICE_PLATFORM", "qrwl", "9001");
|
||
// return CommonHelper.GetSaleBill(_OracleHelper, ServerpartCode, ShopCode, SaleBillID, ProvinceCode);
|
||
//}
|
||
#endregion
|
||
|
||
#region 方法 -> 获取主订单信息
|
||
//[WebMethod]
|
||
//public string getSaleBillInfo(string ServerpartCode, string ShopCode, string SaleBillID, string ProvinceCode)
|
||
//{
|
||
// OracleHelper _OracleHelper = new OracleHelper("183.129.232.107", "orcl", "MOBILESERVICE_PLATFORM", "qrwl");
|
||
// return CommonHelper.GetSaleBillInfo(_OracleHelper, ServerpartCode, ShopCode, SaleBillID, ProvinceCode);
|
||
//}
|
||
|
||
/// <summary>
|
||
/// 获取门店主订单
|
||
/// </summary>
|
||
/// <param name="ProvinceCode">省份编码</param>
|
||
/// <param name="ServerPartShopID">门店内码</param>
|
||
/// <param name="SaleBillType">订单类型</param>
|
||
/// <param name="SaleBillState">订单状态</param>
|
||
/// <param name="OrderDate">最小订单时间</param>
|
||
/// <returns></returns>
|
||
[WebMethod]
|
||
public string GetOnlineOrder(string ProvinceCode, string ServerPartShopID, string SaleBillType, string SaleBillState, string OrderDate)
|
||
{
|
||
try
|
||
{
|
||
WebService.SDK.OracleHelper _OracleHelper = new WebService.SDK.OracleHelper(_connectstring.Split(',')[0],
|
||
_connectstring.Split(',')[1], _connectstring.Split(',')[2], _connectstring.Split(',')[3]);
|
||
return WebService.SDK.MemberService.MallService.GetOnlineOrder(_OracleHelper, int.Parse(ProvinceCode),
|
||
int.Parse(ServerPartShopID), int.Parse(SaleBillType), SaleBillState,
|
||
DateTime.ParseExact(OrderDate, "yyyyMMddHHmmss", System.Globalization.CultureInfo.InvariantCulture));
|
||
}
|
||
catch (Exception ex)
|
||
{
|
||
WebService.SDK.LogHelper.WriteSendLog("线上订单下发失败:" + ex.Message);
|
||
return "";
|
||
}
|
||
}
|
||
|
||
/// <summary>
|
||
/// 获取订单详情
|
||
/// </summary>
|
||
/// <param name="SaleBillID">主订单内码</param>
|
||
/// <returns></returns>
|
||
[WebMethod]
|
||
public string GetOnlineOrderDetail(string SaleBillID)
|
||
{
|
||
try
|
||
{
|
||
WebService.SDK.OracleHelper _OracleHelper = new WebService.SDK.OracleHelper(_connectstring.Split(',')[0],
|
||
_connectstring.Split(',')[1], _connectstring.Split(',')[2], _connectstring.Split(',')[3]);
|
||
return WebService.SDK.MemberService.MallService.GetOnlineOrderDetail(_OracleHelper, int.Parse(SaleBillID));
|
||
}
|
||
catch (Exception ex)
|
||
{
|
||
WebService.SDK.LogHelper.WriteSendLog("线上订单详情下发失败:" + ex.Message);
|
||
return "";
|
||
}
|
||
}
|
||
#endregion
|
||
|
||
#region 方法 -> 修改线上订单状态
|
||
//[WebMethod]
|
||
//public string UpdateSaleBillList(string SaleBillId, string SaleBillState)
|
||
//{
|
||
// OracleHelper _OracleHelper = new OracleHelper("183.129.232.107", "orcl", "MOBILESERVICE_PLATFORM", "qrwl");
|
||
// return CommonHelper.UpdateSaleBill(_OracleHelper, SaleBillId, SaleBillState);
|
||
//}
|
||
|
||
/// <summary>
|
||
/// 更新订单状态
|
||
/// </summary>
|
||
/// <param name="SaleBillID">主订单内码</param>
|
||
/// <param name="OrderState">订单状态</param>
|
||
/// <param name="MachineCode">接单收银机号</param>
|
||
/// <param name="PrintDate">订单打印时间</param>
|
||
/// <returns></returns>
|
||
[WebMethod]
|
||
public string UpdateSaleBillState(string SaleBillID, string OrderState, string MachineCode, string PrintDate)
|
||
{
|
||
WebService.SDK.OracleHelper _OracleHelper = new WebService.SDK.OracleHelper(_connectstring.Split(',')[0],
|
||
_connectstring.Split(',')[1], _connectstring.Split(',')[2], _connectstring.Split(',')[3]);
|
||
return WebService.SDK.MemberService.MallService.UpdateOnlineOrderState(_OracleHelper,
|
||
int.Parse(SaleBillID), int.Parse(OrderState), MachineCode, DateTime.Parse(PrintDate));
|
||
}
|
||
#endregion
|
||
|
||
#region 方法 -> 修改线上详细订单状态
|
||
//public string UpdateSaleDetailList(string SaleDetailId, string SaleBillState)
|
||
//{
|
||
// OracleHelper _OracleHelper = new OracleHelper("183.129.232.107", "orcl", "MOBILESERVICE_PLATFORM", "qrwl");
|
||
// return CommonHelper.UpdateSaleDetail(_OracleHelper, SaleDetailId, SaleBillState);
|
||
//}
|
||
#endregion
|
||
|
||
#region 方法 -> 获取移动支付交易结果
|
||
/// <summary>
|
||
/// 获取移动支付交易结果
|
||
/// </summary>
|
||
/// <param name="serverPartCode">服务区编码</param>
|
||
/// <param name="shopCode">门店编码</param>
|
||
/// <param name="machineCode">收银机编码</param>
|
||
/// <param name="mobilePayOrderCode">交易订单号</param>
|
||
/// <returns></returns>
|
||
[WebMethod]
|
||
public string MobilePayCheck(string serverPartCode, string shopCode, string machineCode, string mobilePayOrderCode)
|
||
{
|
||
string[] _strOrderList = mobilePayOrderCode.Split(",");
|
||
string _strOrderCode = "";
|
||
for (int i = 0; i < _strOrderList.Count(); i++)
|
||
{
|
||
_strOrderCode += (_strOrderCode == "" ? "" : ",") + "'" + serverPartCode +
|
||
shopCode + machineCode.PadLeft(4, '0') + _strOrderList[i] + "'";
|
||
}
|
||
if (!String.IsNullOrWhiteSpace(_strOrderCode))
|
||
{
|
||
try
|
||
{
|
||
OracleHelper _OracleHelper = new OracleHelper();
|
||
_OracleHelper.ConnString = _connectstring;
|
||
string _strSelect = String.Format("SELECT SELLDATA_ID,SELLDATA_TYPE,SELLDATA_DATE,TICKETCODE," +
|
||
"COMMODITY_CODE,FACTAMOUNT,SELLDATA_EXTRA_DESC FROM HIGHWAY_EXCHANGE.T_SELLDATA_EXTRA " +
|
||
"WHERE TICKETCODE IN ({0}) AND FACTAMOUNT > 0 AND UPPER(SELLDATA_EXTRA_DESC) LIKE UPPER('SUCCESS%')",
|
||
_strOrderCode);
|
||
DataTable _DataTable = _OracleHelper.ExcuteSqlGetDataSet(_strSelect).Tables[0];
|
||
return JSonHelper.DataTableToJson(_DataTable, "MobilePay");
|
||
}
|
||
catch (Exception ex)
|
||
{
|
||
}
|
||
}
|
||
return "";
|
||
}
|
||
#endregion
|
||
|
||
#region 方法 ->获取门店移动支付通道配置
|
||
/// <summary>
|
||
/// 获取门店移动支付通道配置
|
||
/// </summary>
|
||
/// <param name="serverPartCode">服务区编码</param>
|
||
/// <param name="businessType">业态编码</param>
|
||
/// <returns></returns>
|
||
[WebMethod]
|
||
public string MobilePayConfig(string serverPartCode, string businessType)
|
||
{
|
||
try
|
||
{
|
||
WebService.SDK.OracleHelper _OracleHelper = new WebService.SDK.OracleHelper("localhost", "orcl", "highway_exchange", "qrwl");
|
||
return WebService.SDK.PayCommon.MobilePayConfig.ShopPaymentConfig(_OracleHelper, serverPartCode, businessType);
|
||
}
|
||
catch (Exception ex)
|
||
{
|
||
return ex.Message;
|
||
}
|
||
}
|
||
#endregion
|
||
|
||
#region 方法 -> 消费赠礼
|
||
/// <summary>
|
||
/// 上传赠送记录
|
||
/// </summary>
|
||
/// <param name="presenterData">json数据包</param>
|
||
/// <returns></returns>
|
||
[WebMethod]
|
||
public string UploadPresenterRecord(string presenterData)
|
||
{
|
||
try
|
||
{
|
||
OracleHelper _OracleHelper = new OracleHelper(_connectstring.Split(',')[0],
|
||
_connectstring.Split(',')[1], _connectstring.Split(',')[2], _connectstring.Split(',')[3]);
|
||
JObject _JObject = JObject.Parse(presenterData);
|
||
string serverPartCode = _JObject["serverPartCode"].ToString();
|
||
string shopCode = _JObject["shopCode"].ToString();
|
||
string machineCode = _JObject["machineCode"].ToString();
|
||
string selldataDate = _JObject["selldataDate"].ToString();
|
||
string ticketCode = _JObject["ticketCode"].ToString();
|
||
string totalCount = _JObject["totalCount"].ToString();
|
||
string totalAmount = _JObject["totalAmount"].ToString();
|
||
if (!string.IsNullOrWhiteSpace(serverPartCode) && !string.IsNullOrWhiteSpace(shopCode) &&
|
||
!string.IsNullOrWhiteSpace(machineCode) && !string.IsNullOrWhiteSpace(selldataDate) &&
|
||
!string.IsNullOrWhiteSpace(ticketCode) && !string.IsNullOrWhiteSpace(totalCount) &&
|
||
!string.IsNullOrWhiteSpace(totalAmount))
|
||
{
|
||
_OracleHelper.ExcuteSql(string.Format(
|
||
@"INSERT INTO HIGHWAY_EXCHANGE.T_PRESENTERRECORD
|
||
(PRESENTERRECORD_ID,SERVERPARTCODE,SHOPCODE,MACHINECODE,
|
||
PRESENTERRECORD_DATE,TICKETCODE,TOTALCOUNT,TOTALAMOUNT)
|
||
VALUES (HIGHWAY_EXCHANGE.SEQ_PRESENTERRECORD.NEXTVAL,'{0}','{1}',
|
||
'{2}',TO_DATE('{3}','YYYY/MM/DD HH24:MI:SS'),'{4}',{5},{6})",
|
||
serverPartCode, shopCode, machineCode, selldataDate, ticketCode, totalCount, totalAmount));
|
||
return "0";
|
||
}
|
||
return "-1";
|
||
}
|
||
catch
|
||
{
|
||
return "-2";
|
||
}
|
||
}
|
||
|
||
/// <summary>
|
||
/// 获取赠礼剩余数量
|
||
/// </summary>
|
||
/// <param name="serverPartCode"></param>
|
||
/// <param name="startDate"></param>
|
||
/// <returns></returns>
|
||
[WebMethod]
|
||
public string PresenterRecordQuery(string serverPartCode, string startDate)
|
||
{
|
||
try
|
||
{
|
||
int _TotalCount = 190;
|
||
try
|
||
{
|
||
_TotalCount = int.Parse(ConfigurationManager.AppSettings["LuckyCount"]);
|
||
}
|
||
catch { }
|
||
OracleHelper _OracleHelper = new OracleHelper(_connectstring.Split(',')[0],
|
||
_connectstring.Split(',')[1], _connectstring.Split(',')[2], _connectstring.Split(',')[3]);
|
||
if (DateTime.Now >= new DateTime(2019, 01, 21) || serverPartCode == "888888")
|
||
{
|
||
int _Count = int.Parse(_OracleHelper.ExcuteSqlGetDataSet(string.Format(
|
||
@"SELECT COUNT(1) AS TOTALCOUNT
|
||
FROM HIGHWAY_EXCHANGE.T_PRESENTERRECORD
|
||
WHERE SERVERPARTCODE = '{0}' AND
|
||
PRESENTERRECORD_DATE BETWEEN TO_DATE('{1}','YYYY/MM/DD HH24:MI:SS') AND
|
||
TO_DATE('{2}','YYYY/MM/DD HH24:MI:SS')", serverPartCode, startDate,
|
||
DateTime.Now.ToString())).Tables[0].Rows[0]["TOTALCOUNT"].ToString());
|
||
if (_Count >= _TotalCount)
|
||
{
|
||
return "0";
|
||
}
|
||
return (_TotalCount - _Count).ToString();
|
||
}
|
||
}
|
||
catch (Exception ex)
|
||
{
|
||
LogHelper.WriteServiceLog("赠礼剩余数量获取失败:" + ex.Message);
|
||
}
|
||
return "0";
|
||
}
|
||
#endregion
|
||
|
||
#region 方法 -> 统一供配送中转接口
|
||
/// <summary>
|
||
/// 商品信息下载接口
|
||
/// </summary>
|
||
/// <param name="url">总部Ajax地址</param>
|
||
/// <returns></returns>
|
||
[WebMethod]
|
||
public string DownLoadSeller(string url)
|
||
{
|
||
string pageHtml = "";
|
||
try
|
||
{
|
||
OracleHelper _OracleHelper = new OracleHelper();
|
||
_OracleHelper.ConnString = _connectstring;
|
||
|
||
if (_OracleHelper.ExcuteSqlGetDataSet(@"SELECT 1 FROM DBA_TABLES WHERE OWNER = 'HIGHWAY_EXCHANGE' AND
|
||
TABLE_NAME = 'T_SELLERCOMMODITYTYPE'").Tables[0].Rows.Count == 0)
|
||
{
|
||
WebClient _WebClient = new WebClient();
|
||
//获取或设置用于向Internet资源的请求进行身份验证的网络凭据
|
||
_WebClient.Credentials = CredentialCache.DefaultCredentials;
|
||
Byte[] pageData = _WebClient.DownloadData(url); //从指定网站下载数据
|
||
pageHtml = Encoding.UTF8.GetString(pageData);
|
||
int index = pageHtml.IndexOf(":");
|
||
pageHtml = pageHtml.Substring(index + 1, pageHtml.Length - index - 2);
|
||
pageHtml = pageHtml.Replace(" ", "");
|
||
pageHtml = HttpUtility.UrlDecode(pageHtml);
|
||
}
|
||
else
|
||
{
|
||
string action_type = url.Contains("action_type=") ? url.Split("action_type=")[1].Split("&")[0] : "";
|
||
string action_data = url.Contains("action_data=") ? url.Split("action_data=")[1].Split("&")[0] : "";
|
||
string action_record = url.Contains("action_record=") ? url.Split("action_record=")[1].Split("&")[0] : "";
|
||
|
||
switch (action_type)
|
||
{
|
||
case "DownLoadSeller":
|
||
DataSet _DataSet = new DataSet();
|
||
|
||
//商品类型
|
||
DataTable SELLERCOMMODITYTYPE_DataTable = _OracleHelper.ExcuteSqlGetDataSet(
|
||
"SELECT * FROM HIGHWAY_EXCHANGE.T_SELLERCOMMODITYTYPE ORDER BY TO_CHAR(TYPE_INDEX)").Tables[0];
|
||
|
||
SELLERCOMMODITYTYPE_DataTable.TableName = "T_SELLERCOMMODITYTYPE";
|
||
_DataSet.Tables.Add(SELLERCOMMODITYTYPE_DataTable.Copy());
|
||
|
||
//商品信息
|
||
string COMMODITY_SQLString = @"SELECT A.SELLERCOMMODITY_ID,SELLERBUSINESSTYPE,COMMODITY_CODE,
|
||
COMMODITY_NAME,COMMODITY_BARCODE,COMMODITY_BOXCODE,COMMODITY_ALLNAME,COMMODITY_EN,
|
||
COMMODITY_UNIT,COMMODITY_RULE,COMMODITY_ORI,COMMODITY_GRADE,COMMODITY_BOXSELLPRICE,
|
||
SELLPRICE,COMMODITY_SELLPRICE,SELLDUTY_PARAGRAPH,PURCHASE_BOXPRICE,COMMODITY_CURRPRICE,
|
||
COMMODITY_PURCHASEPRICE,DUTY_PARAGRAPH,MOVING_AVERAGEPRICE,MOVING_PURCHASEPRICE,
|
||
COMMODITY_STATE,COMMODITY_DESC,ADDTIME,ISBULK,METERINGMETHOD,SELLER_ID,
|
||
SELLERCOMMODITYTYPE_ID,NVL(B.BOXENTRY_COUNT,A.BOXENTRY_COUNT) AS BOXENTRY_COUNT,
|
||
SUPPLIER_ID,NULL AS IMAGE_CONTENT,NULL AS TABLE_ID,NULL AS IMAGE_PATH
|
||
FROM HIGHWAY_EXCHANGE.T_SELLERCOMMODITY A,
|
||
(SELECT * FROM (
|
||
SELECT BOXENTRY_COUNT,SELLERCOMMODITY_ID,
|
||
ROW_NUMBER()OVER(PARTITION BY SELLERCOMMODITY_ID
|
||
ORDER BY ROLEPRICE_ID DESC)COLNUM
|
||
FROM HIGHWAY_EXCHANGE.T_ROLEPRICE
|
||
WHERE ROLEPRICE_NAME = 2000 AND WAREHOUSE_ID = 1
|
||
) WHERE COLNUM = 1) B
|
||
WHERE A.SELLERCOMMODITY_ID = B.SELLERCOMMODITY_ID(+) AND EXISTS (SELECT 1
|
||
FROM HIGHWAY_EXCHANGE.T_COMMODITYEX C WHERE ',' || A.COMMODITY_BARCODE || ',' LIKE
|
||
'%,' || C.COMMODITY_BARCODE || ',%' AND SERVERPARTSHOP_ID = " +
|
||
(string.IsNullOrEmpty(action_record) ? "0" : action_record.Split('|').Length > 1 ?
|
||
action_record.Split('|')[1] : "0") + ")" + (string.IsNullOrEmpty(action_record) ?
|
||
"" : (action_record.Split('|')[0] == "" ? "" : " AND A.ADDTIME > TO_DATE('" +
|
||
action_record.Split('|')[0] + "','YYYY/MM/DD HH24:MI:SS')")) + " ORDER BY COMMODITY_CODE";
|
||
|
||
DataTable SELLERCOMMODITY_DataTable = _OracleHelper.ExcuteSqlGetDataSet(COMMODITY_SQLString).Tables[0];
|
||
|
||
SELLERCOMMODITY_DataTable.TableName = "T_SELLERCOMMODITY";
|
||
_DataSet.Tables.Add(SELLERCOMMODITY_DataTable.Copy());
|
||
|
||
//商品价格信息
|
||
string PRICESQLString = string.Format(@"SELECT C.SHOPPRICE_ID,B.ROLEPRICE_ID,
|
||
B.SELLER_ID,B.SUPPLIER_ID,B.SELLERCOMMODITY_ID,B.COMMODITY_CODE,B.BARCODE,
|
||
B.ROLEPRICE_NAME,B.COMMODITY_BOXSELLPRICE,B.SELLTAXPRICE,B.SELLPRICE,
|
||
B.SELLDUTY_PARAGRAPH,NULL AS COMMODITY_BOXCOSTPRICE,
|
||
B.COSTTAXPRICE,B.COSTPRICE,B.DUTY_PARAGRAPH,B.ROLEPRICE_DESC
|
||
FROM
|
||
HIGHWAY_EXCHANGE.T_ROLEPRICE B
|
||
INNER JOIN
|
||
HIGHWAY_EXCHANGE.T_SHOPPRICE C
|
||
ON
|
||
C.PRICE_TYPE = B.ROLEPRICE_NAME AND B.SELLERCOMMODITY_ID = C.SELLERCOMMODITY_ID
|
||
WHERE B.ROLEPRICE_NAME <> '2000' AND ',' || C.SERVERPARTSHOP_ID || ',' LIKE '%,{0},%' AND
|
||
EXISTS (SELECT 1 FROM HIGHWAY_EXCHANGE.T_SELLERCOMMODITY A
|
||
WHERE COMMODITY_STATE = 1 AND A.SELLERCOMMODITY_ID = B.SELLERCOMMODITY_ID)
|
||
UNION ALL
|
||
SELECT C.SHOPPRICE_ID,B.ROLEPRICE_ID,B.SELLER_ID,B.SUPPLIER_ID,
|
||
B.SELLERCOMMODITY_ID,B.COMMODITY_CODE,B.BARCODE,B.ROLEPRICE_NAME,
|
||
B.COMMODITY_BOXSELLPRICE,B.SELLTAXPRICE,B.SELLPRICE,
|
||
B.SELLDUTY_PARAGRAPH,NULL AS COMMODITY_BOXCOSTPRICE,
|
||
B.COSTTAXPRICE,B.COSTPRICE,B.DUTY_PARAGRAPH,B.ROLEPRICE_DESC
|
||
FROM
|
||
HIGHWAY_EXCHANGE.T_ROLEPRICE B
|
||
INNER JOIN
|
||
(SELECT * FROM HIGHWAY_EXCHANGE.T_SHOPPRICE WHERE SELLERCOMMODITY_ID IS NULL) C
|
||
ON
|
||
C.PRICE_TYPE = B.ROLEPRICE_NAME
|
||
WHERE B.ROLEPRICE_NAME <> '2000' AND NOT EXISTS(SELECT 1 FROM HIGHWAY_EXCHANGE.T_SHOPPRICE D
|
||
WHERE B.SELLERCOMMODITY_ID = D.SELLERCOMMODITY_ID AND
|
||
',' || D.SERVERPARTSHOP_ID || ',' LIKE '%,{0},%') AND
|
||
EXISTS (SELECT 1 FROM HIGHWAY_EXCHANGE.T_SELLERCOMMODITY A
|
||
WHERE COMMODITY_STATE = 1 AND A.SELLERCOMMODITY_ID = B.SELLERCOMMODITY_ID) AND
|
||
',' || C.SERVERPARTSHOP_ID || ',' LIKE '%,{0},%'", (string.IsNullOrEmpty(action_record) ?
|
||
"0" : action_record.Split('|').Length > 1 ? action_record.Split('|')[1] : "0"));
|
||
|
||
DataTable ROLEPRICE_DataTable = _OracleHelper.ExcuteSqlGetDataSet(PRICESQLString).Tables[0];
|
||
|
||
ROLEPRICE_DataTable.TableName = "T_ROLEPRICE";
|
||
_DataSet.Tables.Add(ROLEPRICE_DataTable.Copy());
|
||
|
||
pageHtml = JSonHelper.DataSetToJsons(_DataSet);
|
||
break;
|
||
case "GetScoreSetting":
|
||
DataTable T_SHOPPRICE = new DataTable();
|
||
DataTable T_SELLERCOMMODITY = _OracleHelper.ExcuteSqlGetDataSet(
|
||
@"SELECT MAX(ADDTIME) FROM HIGHWAY_EXCHANGE.T_SELLERCOMMODITY A,HIGHWAY_EXCHANGE.T_COMMODITYEX C
|
||
WHERE ',' || A.COMMODITY_BARCODE || ',' LIKE '%,' || C.COMMODITY_BARCODE || ',%' AND
|
||
SERVERPARTSHOP_ID = " + action_data).Tables[0];
|
||
|
||
DataTable _DataTable = _OracleHelper.ExcuteSqlGetDataSet(
|
||
@"SELECT 1 AS SCORESETTING_ID,NULL AS SCORE_TYPE,NULL AS SCORE_NAME,
|
||
NULL AS EXCHANGE_BASE,NULL AS CONVERTIBLE_PROPORTION,NULL AS MEET_AMOUNT,
|
||
NULL AS EARN_POINTS,NULL AS START_DATE,NULL AS END_DATE,NULL AS EXPIRY_DATE,
|
||
NULL AS SCORESETTING_STATE,NULL AS ADDTIME,NULL AS STAFF_ID,NULL AS STAFF_NAME,
|
||
NULL AS OPERATE_DATE,NULL AS SCORESETTING_DESC,NULL AS PRICE_TYPE FROM DUAL").Tables[0];
|
||
|
||
if (!string.IsNullOrEmpty(action_data))
|
||
{
|
||
T_SHOPPRICE = _OracleHelper.ExcuteSqlGetDataSet(
|
||
"SELECT * FROM HIGHWAY_EXCHANGE.T_SHOPPRICE WHERE ',' || SERVERPARTSHOP_ID || ',' LIKE '%," +
|
||
action_data + ",%' ORDER BY OPERATE_DATE DESC").Tables[0];
|
||
}
|
||
for (int RowCount = 0; RowCount < _DataTable.Rows.Count; RowCount++)
|
||
{
|
||
_DataTable.Rows[RowCount]["ADDTIME"] = T_SELLERCOMMODITY.Rows.Count > 0 ?
|
||
T_SELLERCOMMODITY.Rows[0][0].ToString() : "";
|
||
|
||
if (T_SHOPPRICE.Rows.Count > 0)
|
||
{
|
||
_DataTable.Rows[RowCount]["PRICE_TYPE"] = T_SHOPPRICE.Rows[0]["PRICE_TYPE"].ToString();
|
||
if (T_SHOPPRICE.Rows[0]["PRICE_TYPE"].ToString() == "1000")
|
||
{
|
||
_DataTable.Rows[RowCount]["SCORE_NAME"] = "";
|
||
}
|
||
}
|
||
}
|
||
|
||
pageHtml = JSonHelper.DataTableToJson(_DataTable);
|
||
break;
|
||
default:
|
||
WebClient _WebClient = new WebClient();
|
||
//获取或设置用于向Internet资源的请求进行身份验证的网络凭据
|
||
_WebClient.Credentials = CredentialCache.DefaultCredentials;
|
||
Byte[] pageData = _WebClient.DownloadData(url); //从指定网站下载数据
|
||
pageHtml = Encoding.UTF8.GetString(pageData);
|
||
int index = pageHtml.IndexOf(":");
|
||
pageHtml = pageHtml.Substring(index + 1, pageHtml.Length - index - 2);
|
||
pageHtml = pageHtml.Replace(" ", "");
|
||
pageHtml = HttpUtility.UrlDecode(pageHtml);
|
||
break;
|
||
}
|
||
}
|
||
|
||
return pageHtml;
|
||
}
|
||
catch (WebException webEx)
|
||
{
|
||
return webEx.Message;
|
||
}
|
||
}
|
||
|
||
/// <summary>
|
||
/// 报货单上传、配送单确认接口
|
||
/// </summary>
|
||
/// <param name="url"></param>
|
||
/// <param name="postDataStr"></param>
|
||
/// <returns></returns>
|
||
[WebMethod]
|
||
public string UploadSeller(string url, string postDataStr)
|
||
{
|
||
string retString = "";
|
||
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
|
||
request.Method = "POST";
|
||
request.ContentType = "application/x-www-form-urlencoded";
|
||
byte[] byteArray = Encoding.UTF8.GetBytes(postDataStr);
|
||
request.ContentLength = byteArray.Length;
|
||
try
|
||
{
|
||
using (Stream dataStream = request.GetRequestStream())
|
||
{
|
||
dataStream.Write(byteArray, 0, byteArray.Length);
|
||
}
|
||
using (WebResponse response = request.GetResponse())
|
||
{
|
||
using (Stream dataStream = response.GetResponseStream())
|
||
{
|
||
using (StreamReader reader = new StreamReader(dataStream))
|
||
{
|
||
string responseFromServer = reader.ReadToEnd();
|
||
retString = responseFromServer;
|
||
}
|
||
}
|
||
}
|
||
}
|
||
catch (Exception ex)
|
||
{
|
||
retString = ex.Message;
|
||
}
|
||
return retString;
|
||
}
|
||
#endregion
|
||
|
||
#region 方法 -> 代理转发调用WebService接口
|
||
/// <summary>
|
||
/// 代理转发调用WebService接口
|
||
/// </summary>
|
||
/// <param name="url">接口主地址</param>
|
||
/// <param name="methodName">接口名称</param>
|
||
/// <param name="parameter">接口参数集合</param>
|
||
/// <returns></returns>
|
||
[WebMethod]
|
||
public string ProxyInterface(string url, string methodName, string parameter)
|
||
{
|
||
Hashtable hashtable = JsonConvert.DeserializeObject<Hashtable>(parameter);
|
||
return SoapWSHelper.QuerySoapWebServiceString(url, methodName, hashtable);
|
||
}
|
||
#endregion
|
||
|
||
}
|
||
} |