2025-03-28 09:49:56 +08:00

4117 lines
245 KiB
C#
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

using System;
using System.Collections;
using System.Configuration;
using System.Collections.Generic;
using System.ComponentModel;
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.Text.RegularExpressions;
using System.Web;
using System.Web.Services;
using Newtonsoft.Json;
using Newtonsoft.Json.Linq;
using WebService.SDK;
using WebService.SDK.BaiduAI.Model.FaceModel;
using WebService.SDK.BaiduAI;
namespace EShangTechService
{
/// <summary>
/// Service 的摘要说明
/// </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 _SERVERPARTCODE = ConfigurationManager.AppSettings["SERVERPARTCODE"].ToString();
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();
protected static string _Member_Code = "03knr6e03";//mgowr33b6
private const String host = "https://ali-barcode.showapi.com";
private const String path = "/barcode";
private const String method = "GET";
private const String appcode = "99f7d21d35e647e98706f75109f4b655";
#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 = "服务区商品")
{
string ResString = null;
PayCreateResult _PayCreateResult = new PayCreateResult();
if (string.IsNullOrEmpty(TICKETCODE) || string.IsNullOrEmpty(_SERVERPARTCODE) ||
!_SERVERPARTCODE.Contains(TICKETCODE.Substring(0, 6)))
{
_PayCreateResult.result_code = ((int)(CommonHelper.ResCode.)).ToString();
_PayCreateResult.result_desc = "参数配置异常,服务区不匹配!";
_PayCreateResult.trade_no = "";
_PayCreateResult.trade_num = "";
return JSonHelper.ObjectToJson<PayCreateResult>(_PayCreateResult, false);
}
string ticket_price = TICKETPRICE;
string[] MerchantInfo = Common.GetMerchantInfo(TICKETCODE);
string PayTime = TICKETCODE.Substring(TICKETCODE.Length - 14, 14);
string PayOutTime = DateTime.Parse(PayTime.Substring(0, 4) + "/" + PayTime.Substring(4, 2) + "/" +
PayTime.Substring(6, 2) + " " + PayTime.Substring(8, 2) + ":" + PayTime.Substring(10, 2) + ":" +
PayTime.Substring(12, 2)).AddMinutes(5).ToString("yyyyMMddHHmmss");
LogHelper.WriteReceiveLog("反扫-请求参数-START[createpay]:订单编码(TICKETCODE):" + TICKETCODE +
",金额(TICKETPRICE):" + TICKETPRICE + "," + CommonHelper.GetPayType(PAYTYPE) +
"用户编码(USERPAYCODE):" + USERPAYCODE + ",商户编码(memberCode):" + MerchantInfo[0] + ",商户秘钥(term_Code):" + MerchantInfo[1]);
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", "");
try
{
ResString = Common.merchantscan(USERPAYCODE, TICKETCODE, "服务区商品", ticket_price, MerchantInfo, "");
JObject _JObject = new JObject();
try
{
//判断类型
if (ResString != "")
{
_JObject = JObject.Parse(ResString);
if (Convert.ToInt32(_JObject["errcode"]) == 0)
{
switch (_JObject["errmsg"].ToString().ToUpper())
{
case "SUCCEED":
if (_JObject["order_info"]["pay_status"].ToString() == "已支付")//支付状态
{
_PayCreateResult.result_code = ((int)(CommonHelper.ResCode.)).ToString();
_PayCreateResult.result_desc = "SUCCESS";//支付跳转链接
_PayCreateResult.trade_no = _JObject["order_info"]["transaction_id"].ToString();//第三方订单号
_PayCreateResult.trade_num = _JObject["order_info"]["transaction_id"].ToString();//客无忧订单号
}
else if (_JObject["order_info"]["pay_status"].ToString() == "已取消")
{
_PayCreateResult.result_code = ((int)(CommonHelper.ResCode.)).ToString();
_PayCreateResult.trade_no = _JObject["order_info"]["transaction_id"].ToString();//第三方订单号
_PayCreateResult.trade_num = _JObject["order_info"]["transaction_id"].ToString();//客无忧订单号
_PayCreateResult.result_desc = _JObject["errmsg"].ToString();
}
else if (!string.IsNullOrEmpty(_JObject["order_info"]["pay_status"].ToString()) &&
(_JObject["order_info"]["pay_status"].ToString().Contains("支付中") ||
_JObject["order_info"]["pay_status"].ToString().Contains("用户支付中")))//支付状态
{
_JObject = JObject.Parse((querypay(TICKETCODE, "", TICKETPRICE, PAYTYPE)));
_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();//第三方订单号
}
else
{
_PayCreateResult.result_code = ((int)(CommonHelper.ResCode.)).ToString();
_PayCreateResult.result_desc = _JObject["errmsg"].ToString();
_PayCreateResult.trade_no = "";
_PayCreateResult.trade_num = "";
}
break;
default:
_PayCreateResult.result_code = ((int)(CommonHelper.ResCode.)).ToString();
_PayCreateResult.result_desc = _JObject["errmsg"].ToString();
_PayCreateResult.trade_no = "";
_PayCreateResult.trade_num = "";
break;
}
}
else
{
_PayCreateResult.result_code = ((int)(CommonHelper.ResCode.)).ToString();
_PayCreateResult.result_desc = _JObject["errmsg"].ToString();
_PayCreateResult.trade_no = "";
_PayCreateResult.trade_num = "";
}
}
else
{
_PayCreateResult.result_code = ((int)CommonHelper.ResCode.).ToString();
_PayCreateResult.result_desc = "系统异常";
_PayCreateResult.trade_no = "";
_PayCreateResult.trade_num = "";
}
}
catch (Exception ex)
{
_PayCreateResult.result_code = ((int)CommonHelper.ResCode.).ToString();
_PayCreateResult.result_desc = "错误为:" + ResString.ToString();// +"____其他错误:" + ex.Message;
_PayCreateResult.trade_no = "";
_PayCreateResult.trade_num = "";
LogHelper.WriteSendLog(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.kwypay).ToString());
}
catch (Exception ex)
{
LogHelper.WriteReceiveLog(ex.Message);
}
LogHelper.WriteSendLog("反扫-最终返回值END-[createpay]:" +
JSonHelper.ObjectToJson<PayCreateResult>(_PayCreateResult, false));
return JSonHelper.ObjectToJson<PayCreateResult>(_PayCreateResult, false);
}
#endregion
#region ()
[WebMethod]
/// <summary>
/// 支付参数
/// </summary>
/// <param name="TICKETCODE">交易订单号</param>
/// <param name="TICKETPRICE">交易金额</param>
/// <param name="PAYTYPE">支付方式</param>
/// <returns></returns>
public string createpay_customerscan(string TICKETCODE, string TICKETPRICE, string PAYTYPE)
{
string ResString = "", ticket_price = "";
JObject _JObject = new JObject();
PayCreateResult _PayCreateResult = new PayCreateResult();
LogHelper.WriteSendLog("支付正扫_请求参数START-[createpay_customerscan]:" + (PAYTYPE == "ALIPAY" ?
"支付宝" : (PAYTYPE == "WECHAT" ? "微信" : "")) + "订单编码(TICKETCODE):" + TICKETCODE +
",金额(TICKETPRICE):" + TICKETPRICE + ",商户编码(memberCode):" + _Member_Code);
if (!string.IsNullOrEmpty(TICKETCODE) && TICKETCODE.Split('-').Length == 3)
{
OracleHelper _OracleHelper = new OracleHelper("183.129.232.107", "orcl", "MOBILESERVICE_PLATFORM", "qrwl");
string SqlString = "SELECT * FROM MOBILESERVICE_PLATFORM.T_CONSUMPTIONRECORD WHERE TICKET_CODE = '" +
TICKETCODE + "' AND NVL(CONSUMPTIONRECORD_TYPE,1000) = 1000";
DataTable T_CONSUMPTIONRECORD = _OracleHelper.ExcuteSqlGetDataSet(SqlString).Tables[0];
if (T_CONSUMPTIONRECORD.Rows.Count > 0)
{
try
{
if (DateTime.Parse(T_CONSUMPTIONRECORD.Rows[0]["CONSUMPTIONRECORD_DATE"].ToString()) < DateTime.Now.AddMinutes(-30))
{
_PayCreateResult.result_code = ((int)CommonHelper.ResCode.).ToString();
_PayCreateResult.result_desc = "错误为:订单付款超时";
_PayCreateResult.trade_no = TICKETCODE;
_PayCreateResult.trade_num = "";
LogHelper.WriteSendLog("最终返回数据01-END[createpay_customerscan]:" +
JSonHelper.ObjectToJson<PayCreateResult>(_PayCreateResult, false));
return JSonHelper.ObjectToJson<PayCreateResult>(_PayCreateResult, false);
}
}
catch (Exception ex)
{
_PayCreateResult.result_code = ((int)CommonHelper.ResCode.).ToString();
_PayCreateResult.result_desc = "错误为:" + ex.Message;
_PayCreateResult.trade_no = TICKETCODE;
_PayCreateResult.trade_num = "";
LogHelper.WriteSendLog("最终返回数据02-END[createpay_customerscan]" +
JSonHelper.ObjectToJson<PayCreateResult>(_PayCreateResult, false));
return JSonHelper.ObjectToJson<PayCreateResult>(_PayCreateResult, false);
}
}
}
try
{
ticket_price = Math.Round(decimal.Parse(TICKETPRICE), 2).ToString();
}
catch { }
try
{
//新支付
ResString = Common.QRCodePay(TICKETCODE, "骋客订单", ticket_price, _Member_Code, "",
(PAYTYPE == "ALIPAY" ? "1" : (PAYTYPE == "WECHAT" ? "2" : "0")));
//判断类型
if (ResString != "")
{
_JObject = JObject.Parse(ResString);
if (Convert.ToInt32(_JObject["errcode"]) == 0)
{
switch (_JObject["errmsg"].ToString().ToUpper())
{
case "SUCCEED":
if (_JObject["order_info"]["pay_status"].ToString().ToUpper() == "未支付")
{
_PayCreateResult.result_code = ((int)(CommonHelper.ResCode.)).ToString();
_PayCreateResult.result_desc = _JObject["pay_info"]["link_url"].ToString();//连接地址 -生成二维码
_PayCreateResult.trade_no = _JObject["order_info"]["transaction_id"].ToString();//客无忧订单号
_PayCreateResult.trade_num = _JObject["order_info"]["transaction_id"].ToString();//第三方订单号
}
else
{
_PayCreateResult.result_code = ((int)(CommonHelper.ResCode.)).ToString();
_PayCreateResult.result_desc = _JObject["errmsg"].ToString();
_PayCreateResult.trade_no = _JObject["order_info"]["transaction_id"].ToString();//客无忧订单号
_PayCreateResult.trade_num = _JObject["order_info"]["transaction_id"].ToString();//第三方订单号
}
break;
default:
_PayCreateResult.result_code = ((int)(CommonHelper.ResCode.)).ToString();
_PayCreateResult.result_desc = _JObject["errmsg"].ToString();
_PayCreateResult.trade_no = "";
_PayCreateResult.trade_num = "";
break;
}
}
else
{
_PayCreateResult.result_code = ((int)(CommonHelper.ResCode.)).ToString();
_PayCreateResult.result_desc = _JObject["errmsg"].ToString();
_PayCreateResult.trade_no = "";
_PayCreateResult.trade_num = "";
}
}
else
{
_PayCreateResult.result_code = ((int)CommonHelper.ResCode.).ToString();
_PayCreateResult.result_desc = "系统异常";
_PayCreateResult.trade_no = "";
_PayCreateResult.trade_num = "";
}
}
catch (Exception ex)
{
_PayCreateResult.result_code = ((int)CommonHelper.ResCode.).ToString();
_PayCreateResult.result_desc = "错误为:" + ResString;// +"____其他错误:" + ex.Message;
_PayCreateResult.trade_no = "";
_PayCreateResult.trade_num = "";
LogHelper.WriteSendLog(ex.Message);
}
try
{
//InsertData(TICKETCODE, PAYTYPE, _JObject, _PayCreateResult, null, TICKETPRICE);
OracleHelper _OracleHelper = new OracleHelper(_connectstring.Split(',')[0],
_connectstring.Split(',')[1], _connectstring.Split(',')[2], _connectstring.Split(',')[3]);
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,sysdate,'" + 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);
}
}
catch (Exception ex)
{
LogHelper.WriteSendLog(ex.Message);
}
LogHelper.WriteSendLog("最终返回数据03-END[createpay_customerscan]:" +
JSonHelper.ObjectToJson<PayCreateResult>(_PayCreateResult, false));
return JSonHelper.ObjectToJson<PayCreateResult>(_PayCreateResult, false);
}
#endregion
#region
[WebMethod]
/// <summary>
/// 查询参数
/// </summary>
/// <param name="TICKETCODE">交易订单号</param>
/// <param name="OUT_TRADE_NO">商户订单号</param>
/// <param name="TICKETPRICE">交易金额</param>
/// <param name="PAYTYPE">支付方式</param>
/// <returns></returns>
public string querypay(string TICKETCODE, string OUT_TRADE_NO, string TICKETPRICE, string PAYTYPE = "ALIPAY")
{
string ResString = null;
string[] MerchantInfo = Common.GetMerchantInfo(TICKETCODE);
//LogHelper.WriteReceiveLog("接收到的参数:订单编码(TICKETCODE):" + TICKETCODE + ",商户订单号(OUT_TRADE_NO):" + OUT_TRADE_NO +
// ",金额(TICKETPRICE):" + TICKETPRICE + ",支付方式(USERPAYCODE):" + CommonHelper.GetPayType(PAYTYPE));
PayQueryResult _PayQueryResult = new PayQueryResult();
try
{
LogHelper.WriteSendLog("支付…查询请求参数-START[querypay]:订单编码(TICKETCODE):" + TICKETCODE +
",金额(TICKETPRICE):" + TICKETPRICE + ",付款方式:" + CommonHelper.GetPayType(PAYTYPE) +
",商户秘钥(term_Code):" + MerchantInfo[0]);
//查询数据
ResString = Common.TradeQuery(TICKETCODE, OUT_TRADE_NO, MerchantInfo[0]);
if (ResString != null)
{
JObject _JObject = JObject.Parse(ResString);
if (Convert.ToInt32(_JObject["errcode"]) == 0)
{
switch (_JObject["errmsg"].ToString().ToUpper())
{
case "SUCCEED":
switch (_JObject["order_info"]["pay_status"].ToString())
{
case "支付中":
case "用户支付中":
LogHelper.WriteSendLog("(" + TICKETCODE + ")等待支付中......");
//System.Threading.Thread.Sleep(4 * 1000);
for (int SearchCount = 0; SearchCount < 2; SearchCount++)
{
_JObject = JObject.Parse(querypay(TICKETCODE, OUT_TRADE_NO));
_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();
if (_PayQueryResult.result_code == ((int)CommonHelper.ResCode.).ToString() &&
SearchCount < 1)
{
LogHelper.WriteSendLog("(" + TICKETCODE + ")等待支付中......");
System.Threading.Thread.Sleep(1 * 1000);
continue;
}
else
{
if (_PayQueryResult.result_code == ((int)(CommonHelper.ResCode.)).ToString())
{
InsertData(TICKETCODE, PAYTYPE, _JObject, null, _PayQueryResult, TICKETPRICE);
}
break;
}
}
break;
case "已支付":
_PayQueryResult.result_code = ((int)(CommonHelper.ResCode.)).ToString();
_PayQueryResult.result_desc = "SUCCESS";//支付状态
_PayQueryResult.trade_no = _JObject["order_info"]["transaction_id"].ToString();//客无忧订单号
_PayQueryResult.trade_num = _JObject["order_info"]["out_no"].ToString();//第三方订单号
InsertData(TICKETCODE, PAYTYPE, _JObject, null, _PayQueryResult, TICKETPRICE);
break;
case "已退款":
_PayQueryResult.result_code = ((int)(CommonHelper.ResCode.)).ToString();
_PayQueryResult.result_desc = "已退款";//支付状态
_PayQueryResult.trade_no = _JObject["order_info"]["transaction_id"].ToString();//客无忧订单号
_PayQueryResult.trade_num = _JObject["order_info"]["out_no"].ToString();//第三方订单号
InsertData(TICKETCODE, PAYTYPE, _JObject, null, _PayQueryResult, TICKETPRICE);
break;
default:
_PayQueryResult.result_code = ((int)(CommonHelper.ResCode.)).ToString();
_PayQueryResult.result_desc = _JObject["errmsg"].ToString();//错误提示
_PayQueryResult.trade_no = "";
_PayQueryResult.trade_num = "";
break;
}
break;
default:
_PayQueryResult.result_code = ((int)(CommonHelper.ResCode.)).ToString();
_PayQueryResult.result_desc = _JObject["errmsg"].ToString();//错误提示
_PayQueryResult.trade_no = "";
_PayQueryResult.trade_num = "";
break;
}
}
else
{
_PayQueryResult.result_code = ((int)(CommonHelper.ResCode.)).ToString();
_PayQueryResult.result_desc = _JObject["errmsg"].ToString();//错误提示
_PayQueryResult.trade_no = "";
_PayQueryResult.trade_num = "";
}
}
else
{
_PayQueryResult.result_code = ((int)CommonHelper.ResCode.).ToString();
_PayQueryResult.result_desc = "系统异常";
_PayQueryResult.trade_no = "";
_PayQueryResult.trade_num = "";
}
}
catch (Exception ex)
{
_PayQueryResult.result_code = ((int)CommonHelper.ResCode.).ToString();
_PayQueryResult.result_desc = "错误为:" + ResString; //"____其他错误:" + ex.Message;
_PayQueryResult.trade_no = "";
_PayQueryResult.trade_num = "";
LogHelper.WriteSendLog(ex.Message);
}
LogHelper.WriteSendLog("支付…最终数据返回值-END[querypay]:" + JSonHelper.ObjectToJson<PayQueryResult>(_PayQueryResult, false));
return JSonHelper.ObjectToJson<PayQueryResult>(_PayQueryResult, false);
}
#endregion
#region -
[WebMethod]
/// <summary>
/// 查询参数
/// </summary>
/// <param name="TICKETCODE">交易订单号</param>
/// <param name="OUT_TRADE_NO">商户订单号</param>
/// <param name="TICKETPRICE">交易金额</param>
/// <param name="PAYTYPE">支付方式</param>
/// <returns></returns>
public string querypaynew(string TICKETCODE, string OUT_TRADE_NO, string TICKETPRICE, string PAYTYPE = "ALIPAY", int TotalCount = 6)
{
string ResString = null;
string[] MerchantInfo = Common.GetMerchantInfo(TICKETCODE);
LogHelper.WriteReceiveLog("支付…查询请求参数-START[querypaynew]:订单编码(TICKETCODE):" + TICKETCODE +
",商户订单号(OUT_TRADE_NO):" + OUT_TRADE_NO + ",金额(TICKETPRICE):" + TICKETPRICE +
",支付方式(USERPAYCODE):" + CommonHelper.GetPayType(PAYTYPE) + ",商户秘钥(term_Code):" + MerchantInfo[0]);
PayQueryResult _PayQueryResult = new PayQueryResult();
try
{
//查询数据
ResString = Common.TradeQuery(TICKETCODE, OUT_TRADE_NO, MerchantInfo[0]);
if (ResString != null)
{
JObject _JObject = JObject.Parse(ResString);
if (Convert.ToInt32(_JObject["errcode"]) == 0)
{
switch (_JObject["errmsg"].ToString().ToUpper())
{
case "SUCCEED":
switch (_JObject["order_info"]["pay_status"].ToString())
{
case "支付中":
case "用户支付中":
LogHelper.WriteSendLog("(" + TICKETCODE + ")等待支付中......");
//System.Threading.Thread.Sleep(4 * 1000);
for (int SearchCount = 0; SearchCount < 2; SearchCount++)
{
_JObject = JObject.Parse(querypay(TICKETCODE, OUT_TRADE_NO));
_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();
if (_PayQueryResult.result_code == ((int)CommonHelper.ResCode.).ToString() &&
SearchCount < TotalCount)
{
LogHelper.WriteSendLog("(" + TICKETCODE + ")等待支付中......");
System.Threading.Thread.Sleep(1 * 1000);
continue;
}
else
{
if (_PayQueryResult.result_code == ((int)(CommonHelper.ResCode.)).ToString())
{
InsertData(TICKETCODE, PAYTYPE, _JObject, null, _PayQueryResult, TICKETPRICE);
}
break;
}
}
break;
case "已支付":
_PayQueryResult.result_code = ((int)(CommonHelper.ResCode.)).ToString();
_PayQueryResult.result_desc = "SUCCESS";//支付状态
_PayQueryResult.trade_no = _JObject["order_info"]["transaction_id"].ToString();//客无忧订单号
_PayQueryResult.trade_num = _JObject["order_info"]["out_no"].ToString();//第三方订单号
InsertData(TICKETCODE, PAYTYPE, _JObject, null, _PayQueryResult, TICKETPRICE);
break;
case "已退款":
_PayQueryResult.result_code = ((int)(CommonHelper.ResCode.)).ToString();
_PayQueryResult.result_desc = "SUCCESS";//支付状态
_PayQueryResult.trade_no = _JObject["order_info"]["transaction_id"].ToString();//客无忧订单号
_PayQueryResult.trade_num = _JObject["order_info"]["out_no"].ToString();//第三方订单号
InsertData(TICKETCODE, PAYTYPE, _JObject, null, _PayQueryResult, TICKETPRICE);
break;
default:
_PayQueryResult.result_code = ((int)CommonHelper.ResCode.).ToString();
_PayQueryResult.result_desc = _JObject["errmsg"].ToString();
_PayQueryResult.trade_no = "";
_PayQueryResult.trade_num = "";
break;
}
break;
default:
_PayQueryResult.result_code = ((int)(CommonHelper.ResCode.)).ToString();
_PayQueryResult.result_desc = _JObject["errmsg"].ToString();
_PayQueryResult.trade_no = "";
_PayQueryResult.trade_num = "";
break;
}
}
else
{
_PayQueryResult.result_code = ((int)(CommonHelper.ResCode.)).ToString();
_PayQueryResult.result_desc = _JObject["errmsg"].ToString();
_PayQueryResult.trade_no = "";
_PayQueryResult.trade_num = "";
}
}
else
{
_PayQueryResult.result_code = ((int)CommonHelper.ResCode.).ToString();
_PayQueryResult.result_desc = "系统异常";
_PayQueryResult.trade_no = "";
_PayQueryResult.trade_num = "";
}
}
catch (Exception ex)
{
_PayQueryResult.result_code = ((int)CommonHelper.ResCode.).ToString();
_PayQueryResult.result_desc = "错误为:" + ResString; //"____其他错误:" + ex.Message;
_PayQueryResult.trade_no = "";
_PayQueryResult.trade_num = "";
LogHelper.WriteSendLog(ex.Message);
}
LogHelper.WriteSendLog("支付…最终返回值-END[querypaynew]:" +
JSonHelper.ObjectToJson<PayQueryResult>(_PayQueryResult, false));
return JSonHelper.ObjectToJson<PayQueryResult>(_PayQueryResult, false);
}
#endregion
#region -
[WebMethod]
/// <summary>
/// 查询参数
/// </summary>
/// <param name="TICKETCODE">交易订单号</param>
/// <param name="OUT_TRADE_NO">商户订单号</param>
/// <param name="TICKETPRICE">交易金额</param>
/// <param name="PAYTYPE">支付方式</param>
/// <returns></returns>
public string querypay_new(string TICKETCODE, string OUT_TRADE_NO, string TICKETPRICE,
string PAYTYPE = "ALIPAY", string StrTotalCount = "1")
{
string RetString = "";
int TotalCount = int.Parse(StrTotalCount);
LogHelper.WriteReceiveLog("正扫支付…查询请求参数-START[querypay_new]:订单编码(TICKETCODE):" + TICKETCODE +
",商户订单号(OUT_TRADE_NO):" + OUT_TRADE_NO + ",金额(TICKETPRICE):" + TICKETPRICE +
",支付方式(USERPAYCODE):" + CommonHelper.GetPayType(PAYTYPE) + "商户秘钥(key):" + _Member_Code);
PayQueryResult _PayQueryResult = new PayQueryResult();
try
{
//查询数据
RetString = Common.TradeQuery(TICKETCODE, OUT_TRADE_NO, _Member_Code);
if (!string.IsNullOrEmpty(RetString))
{
JObject _JObject = JObject.Parse(RetString);
int errcode = Convert.ToInt32(_JObject["errcode"]);
if (errcode == 0)
{
switch (_JObject["errmsg"].ToString().ToUpper())
{
case "SUCCEED":
switch (_JObject["order_info"]["pay_status"].ToString())
{
case "支付中":
LogHelper.WriteSendLog("(" + TICKETCODE + ")等待支付中......");
//System.Threading.Thread.Sleep(4 * 1000);
for (int SearchCount = 0; SearchCount < TotalCount; SearchCount++)
{
_JObject = JObject.Parse(querypay(TICKETCODE, OUT_TRADE_NO));
_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();
if (_PayQueryResult.result_code == ((int)CommonHelper.ResCode.).ToString() &&
SearchCount < TotalCount)
{
LogHelper.WriteSendLog("(" + TICKETCODE + ")等待支付中......");
System.Threading.Thread.Sleep(1 * 1000);
continue;
}
else
{
if (_PayQueryResult.result_code == ((int)(CommonHelper.ResCode.)).ToString())
{
InsertData(TICKETCODE, PAYTYPE, _JObject, null, _PayQueryResult, TICKETPRICE);
}
break;
}
}
break;
case "已支付":
_PayQueryResult.result_code = ((int)(CommonHelper.ResCode.)).ToString();
_PayQueryResult.result_desc = "SUCCESS";//支付状态
_PayQueryResult.trade_no = _JObject["order_info"]["transaction_id"].ToString();//客无忧订单号
_PayQueryResult.trade_num = _JObject["order_info"]["out_no"].ToString();//第三方订单号
InsertData_customerscan(TICKETCODE, PAYTYPE, _JObject, null, _PayQueryResult, TICKETPRICE);
break;
case "已退款":
_PayQueryResult.result_code = ((int)(CommonHelper.ResCode.)).ToString();
_PayQueryResult.result_desc = "已退款";//支付状态
_PayQueryResult.trade_no = _JObject["order_info"]["transaction_id"].ToString();//客无忧订单号
_PayQueryResult.trade_num = _JObject["order_info"]["out_no"].ToString();//第三方订单号
InsertData_customerscan(TICKETCODE, PAYTYPE, _JObject, null, _PayQueryResult, TICKETPRICE);
break;
default:
_PayQueryResult.result_code = ((int)(CommonHelper.ResCode.)).ToString();
_PayQueryResult.result_desc = _JObject["errmsg"].ToString();
_PayQueryResult.trade_no = "";
_PayQueryResult.trade_num = "";
break;
}
break;
default:
_PayQueryResult.result_code = ((int)(CommonHelper.ResCode.)).ToString();
_PayQueryResult.result_desc = _JObject["errmsg"].ToString();
_PayQueryResult.trade_no = "";
_PayQueryResult.trade_num = "";
break;
}
}
else
{
_PayQueryResult.result_code = ((int)(CommonHelper.ResCode.)).ToString();
_PayQueryResult.result_desc = _JObject["errmsg"].ToString();
_PayQueryResult.trade_no = "";
_PayQueryResult.trade_num = OUT_TRADE_NO;
}
}
else
{
_PayQueryResult.result_code = ((int)CommonHelper.ResCode.).ToString();
_PayQueryResult.result_desc = "系统异常";
_PayQueryResult.trade_no = "";
_PayQueryResult.trade_num = OUT_TRADE_NO;
}
}
catch (Exception ex)
{
_PayQueryResult.result_code = ((int)CommonHelper.ResCode.).ToString();
_PayQueryResult.result_desc = "错误为:" + RetString; //"____其他错误:" + ex.Message;
_PayQueryResult.trade_no = "";
_PayQueryResult.trade_num = OUT_TRADE_NO;
LogHelper.WriteSendLog(ex.Message);
}
LogHelper.WriteSendLog("正扫支付…最终返回值-END[querypay_new]:" +
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_order_no">退货订单号</param>
/// <param name="refund_amt">交易金额</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 ResString = null;
string ticket_price = "";
string[] MerchantInfo = Common.GetMerchantInfo(refund_order_no);
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
{
LogHelper.WriteReceiveLog("反扫…退款-START[refundpay]:订单编码(TICKETCODE):" + refund_order_no +
",退款金额(TICKETPRICE):" + refund_amt + "," + CommonHelper.GetPayType(order_type) +
"退款码(USERPAYCODE):" + mchnt_order_no + "商户秘钥(term_Code):" + MerchantInfo[0]);
ticket_price = Math.Round(decimal.Parse(refund_amt), 2).ToString();
}
catch { }
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", "");
JObject _JObject = new JObject();
PayQueryResult _PayQueryResult = new PayQueryResult();
try
{
ResString = Common.TradeRefund("001", "001", ticket_price, "商品退款", "", mchnt_order_no, refund_order_no, MerchantInfo[0]);
//查询数据
if (ResString != null)
{
_JObject = JObject.Parse(ResString);
if (_JObject["errcode"].ToString() == "0")
{
_PayQueryResult.result_code = ((int)(CommonHelper.ResCode.)).ToString();
_PayQueryResult.result_desc = "SUCCESS";
_PayQueryResult.trade_no = "";
_PayQueryResult.trade_num = "";
}
else
{
_PayQueryResult.result_code = ((int)(CommonHelper.ResCode.)).ToString();
_PayQueryResult.result_desc = _JObject["errmsg"].ToString();
_PayQueryResult.trade_no = mchnt_order_no;
_PayQueryResult.trade_num = "";
}
}
else
{
_PayQueryResult.result_code = ((int)CommonHelper.ResCode.).ToString();
_PayQueryResult.result_desc = "系统异常:" + ResString;
_PayQueryResult.trade_no = mchnt_order_no;
_PayQueryResult.trade_num = "";
}
}
catch (Exception ex)
{
_PayQueryResult.result_code = ((int)CommonHelper.ResCode.).ToString();
_PayQueryResult.result_desc = "错误为:" + ResString; //"____其他错误:" + ex.Message;
_PayQueryResult.trade_no = mchnt_order_no;
_PayQueryResult.trade_num = "";
LogHelper.WriteSendLog(ex.Message);
}
try
{
//本地数据库
OracleHelper _OracleHelper = new OracleHelper(_connectstring.Split(',')[0],
_connectstring.Split(',')[1], _connectstring.Split(',')[2], _connectstring.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.Substring(6, 6) + "','" + (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.kwypay + ")";
_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.kwypay).ToString());
}
LogHelper.WriteSendLog("退款单号:" + 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(1,'" + order_type + "',TO_DATE('" + PayTime + "','YYYY/MM/DD HH24:MI:SS'),'" +
refund_order_no.Substring(0, 6) + "','" + refund_order_no.Substring(6, 6) + "','" +
(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.kwypay + ")";
_OracleHelper.ExcuteSql(str);
}
catch (Exception _Exception)
{
LogHelper.WriteSendLog(_Exception.Message);
}
CommonHelper.SaveTextFile("ErrorLog\\" + DateTime.Now.ToString("yyyyMMdd") +
"\\R" + refund_order_no + ".txt", _PayQueryResult.result_desc + "(" + mchnt_order_no + ")");
}
LogHelper.WriteSendLog("反扫…最终返回值-END[refundpay]:" +
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_customerscan(string mchnt_order_no, string refund_order_no, string refund_amt, string order_type)
{
string ResString = "", ticket_price = "";
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), 2).ToString();
}
catch { }
LogHelper.WriteReceiveLog("正扫…退款请求参数-START[refundpay_customerscan]:订单编码(TICKETCODE):" + refund_order_no +
",退款金额(TICKETPRICE):" + refund_amt + "," + CommonHelper.GetPayType(order_type) +
"退款码(USERPAYCODE):" + mchnt_order_no + "商户秘钥(key):" + _Member_Code);
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", "");
JObject _JObject = new JObject();
PayQueryResult _PayQueryResult = new PayQueryResult();
try
{
ResString = Common.TradeRefund("001", "001", ticket_price, "商品退款", "", mchnt_order_no, "R" + refund_order_no, _Member_Code);
//查询数据
if (ResString != null)
{
_JObject = JObject.Parse(ResString);
if (_JObject["errcode"].ToString() == "0")
{
_PayQueryResult.result_code = ((int)(CommonHelper.ResCode.)).ToString();
_PayQueryResult.result_desc = "SUCCESS";
}
else
{
_PayQueryResult.result_code = ((int)(CommonHelper.ResCode.)).ToString();
_PayQueryResult.result_desc = _JObject["errmsg"].ToString();
_PayQueryResult.trade_no = mchnt_order_no;
_PayQueryResult.trade_num = "";
}
}
else
{
_PayQueryResult.result_code = ((int)CommonHelper.ResCode.).ToString();
_PayQueryResult.result_desc = "系统异常";
_PayQueryResult.trade_no = mchnt_order_no;
_PayQueryResult.trade_num = "";
}
}
catch (Exception ex)
{
_PayQueryResult.result_code = ((int)CommonHelper.ResCode.).ToString();
_PayQueryResult.result_desc = "错误为:" + ResString; //"____其他错误:" + ex.Message;
_PayQueryResult.trade_no = mchnt_order_no;
_PayQueryResult.trade_num = "";
LogHelper.WriteSendLog(ex.Message);
}
try
{
//本地数据库
OracleHelper _OracleHelper = new OracleHelper(_connectstring.Split(',')[0],
_connectstring.Split(',')[1], _connectstring.Split(',')[2], _connectstring.Split(',')[3]);
string str = "SELECT * FROM HIGHWAY_EXCHANGE.T_MOBILE_PAYCHECK WHERE TICKET_CODE = 'R" + refund_order_no + "'";
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,SYSDATE,'" + order_type + "','R" + refund_order_no +
"',-" + refund_amt + ",'" + _PayQueryResult.trade_no + "','" + _PayQueryResult.trade_num + "','" +
_PayQueryResult.result_code + "','" + _PayQueryResult.result_desc + "','" +
JSonHelper.ObjectToJson<PayQueryResult>(_PayQueryResult, false) + "')";
_OracleHelper.ExcuteSql(str);
}
if (_PayQueryResult.result_code == "100")
{
InsertData_customerscan(refund_order_no, order_type, _JObject, null, _PayQueryResult, "-" + refund_amt, "refund");
}
}
catch (Exception ex)
{
LogHelper.WriteSendLog(ex.Message);
if (_PayQueryResult.result_code == "100")
{
InsertData_customerscan(refund_order_no, order_type, _JObject, null, _PayQueryResult, "-" + refund_amt);
}
}
LogHelper.WriteSendLog("正扫退款…最终返回值-END[refundpay_customerscan]:" +
JSonHelper.ObjectToJson<PayQueryResult>(_PayQueryResult, false));
return JSonHelper.ObjectToJson<PayQueryResult>(_PayQueryResult, false);
}
#endregion
#region 退
/// <summary>
/// 退款参数
/// </summary>
/// <param name="out_trade_no">商户订单号</param>
/// <param name="transaction_id">平台订单号</param>
/// <param name="out_refund_no">商户退款单号</param>
/// <param name="refund_id">平台退款单号</param>
/// <param name="order_type">支付方式</param>
/// <returns></returns>
[WebMethod]
public string refundquery(string out_trade_no, string transaction_id, string out_refund_no, string refund_id,
string refund_amt, string order_type)
{
string ResString = null;
string[] MerchantInfo = Common.GetMerchantInfo(out_refund_no);
LogHelper.WriteSendLog("退款查询…请求参数-START[refundquery]:商户订单号(out_trade_no):" + out_trade_no + ",平台订单号(transaction_id):" +
transaction_id + ",商户退款单号(out_refund_no):" + out_refund_no + ",平台退款单号(refund_id):" + refund_id +
",商户编码(memberCode):" + MerchantInfo[0] + ",商户秘钥(term_Code):" + MerchantInfo[1]);
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" + out_refund_no + ".txt", "");
PayQueryResult _PayQueryResult = new PayQueryResult();
try
{
ResString = Common.RefundQuery("", "", out_refund_no, MerchantInfo[0]);
//查询数据
if (ResString != null)
{
JObject _JObject = JObject.Parse(ResString);
if (_JObject["errcode"].ToString() == "0")
{
if (_JObject["status"].ToString() == "退款成功")
{
_PayQueryResult.result_code = ((int)CommonHelper.ResCode.).ToString();
_PayQueryResult.trade_no = "";
_PayQueryResult.trade_num = out_refund_no;
_PayQueryResult.result_desc = "SUCCESS";
}
else
{
_PayQueryResult.result_code = ((int)CommonHelper.ResCode.).ToString();
_PayQueryResult.trade_no = "";
_PayQueryResult.trade_num = out_refund_no;
_PayQueryResult.result_desc = _JObject["remark"].ToString();
}
}
else
{
_PayQueryResult.result_code = ((int)CommonHelper.ResCode.).ToString();
_PayQueryResult.trade_no = "";
_PayQueryResult.trade_num = out_refund_no;
_PayQueryResult.result_desc = _JObject["errmsg"].ToString();
}
}
else
{
_PayQueryResult.result_code = ((int)CommonHelper.ResCode.).ToString();
_PayQueryResult.result_desc = "系统异常";
_PayQueryResult.trade_no = "";
_PayQueryResult.trade_num = out_refund_no;
}
}
catch (Exception ex)
{
_PayQueryResult.result_code = ((int)CommonHelper.ResCode.).ToString();
_PayQueryResult.result_desc = "错误为:" + ResString; //"____其他错误:" + ex.Message;
_PayQueryResult.trade_no = "";
_PayQueryResult.trade_num = out_refund_no;
LogHelper.WriteSendLog(ex.Message);
}
LogHelper.WriteSendLog("退款查询…最终返回值[refundquery]:" +
JSonHelper.ObjectToJson(_PayQueryResult, false));
return JSonHelper.ObjectToJson(_PayQueryResult, false);
}
#endregion
#region
/// <summary>
/// 获取门店商户号及支付服务商
/// </summary>
/// <param name="ticketCode"></param>
/// <returns></returns>
[WebMethod]
public string GetMerchant(string serverPartCode, string shopCode)
{
PayCreateResult _PayCreateResult = new PayCreateResult();
if (_SERVERPARTCODE.Contains(serverPartCode))
{
string[] _MerchantInfo = Common.GetMerchantInfo(serverPartCode, shopCode);
_PayCreateResult.result_code = ((int)CommonHelper.ResCode.).ToString();
_PayCreateResult.result_desc = "1005";
_PayCreateResult.trade_no = _MerchantInfo[0];
_PayCreateResult.trade_num = _MerchantInfo[1];
}
else
{
_PayCreateResult.result_code = ((int)CommonHelper.ResCode.).ToString();
_PayCreateResult.result_desc = "1005";
}
return JSonHelper.ObjectToJson<PayCreateResult>(_PayCreateResult, false);
}
#endregion
#region
private string querypay(string TICKETCODE, string OUT_TRADE_NO, string[] MerchantInfo = null)
{
string ResString = null;
if (MerchantInfo == null)
{
MerchantInfo = Common.GetMerchantInfo(TICKETCODE);
}
LogHelper.WriteSendLog("查询…请求参数-START[querypay]:(TICKETCODE):" + TICKETCODE + ",OUT_TRADE_NO:" +
OUT_TRADE_NO + ",商户秘钥(term_Code):" + MerchantInfo[0]);
ResString = Common.TradeQuery(TICKETCODE, OUT_TRADE_NO, MerchantInfo[0]);
PayQueryResult _PayQueryResult = new PayQueryResult();
try
{
//查询数据
if (ResString != null)
{
JObject _JObject = JObject.Parse(ResString);
if (Convert.ToInt32(_JObject["errcode"]) == 0)
{
switch (_JObject["errmsg"].ToString().ToUpper())
{
case "SUCCEED":
switch (_JObject["order_info"]["pay_status"].ToString())
{
case "支付中":
case "用户支付中":
_PayQueryResult.result_code = ((int)(CommonHelper.ResCode.)).ToString();
_PayQueryResult.result_desc = "USERPAYING";
_PayQueryResult.trade_no = "";
_PayQueryResult.trade_num = TICKETCODE;
break;
case "已支付":
_PayQueryResult.result_code = ((int)(CommonHelper.ResCode.)).ToString();
_PayQueryResult.result_desc = "SUCCESS";//支付状态
_PayQueryResult.trade_no = _JObject["order_info"]["transaction_id"].ToString();//客无忧订单号
_PayQueryResult.trade_num = _JObject["order_info"]["out_no"].ToString();//第三方订单号
break;
case "已退款":
_PayQueryResult.result_code = ((int)(CommonHelper.ResCode.)).ToString();
_PayQueryResult.result_desc = "已退款";//支付状态
_PayQueryResult.trade_no = _JObject["order_info"]["transaction_id"].ToString();//客无忧订单号
_PayQueryResult.trade_num = _JObject["order_info"]["out_no"].ToString();//第三方订单号
break;
default:
_PayQueryResult.result_code = ((int)(CommonHelper.ResCode.)).ToString();
_PayQueryResult.result_desc = _JObject["errmsg"].ToString();
_PayQueryResult.trade_no = "";
_PayQueryResult.trade_num = TICKETCODE;
break;
}
break;
default:
_PayQueryResult.result_code = ((int)(CommonHelper.ResCode.)).ToString();
_PayQueryResult.result_desc = _JObject["errmsg"].ToString();
_PayQueryResult.trade_no = "";
_PayQueryResult.trade_num = TICKETCODE;
break;
}
}
else
{
_PayQueryResult.result_code = ((int)(CommonHelper.ResCode.)).ToString();
_PayQueryResult.result_desc = _JObject["errmsg"].ToString();
_PayQueryResult.trade_no = "";
_PayQueryResult.trade_num = TICKETCODE;
}
}
else
{
_PayQueryResult.result_code = ((int)CommonHelper.ResCode.).ToString();
_PayQueryResult.result_desc = "系统异常";
_PayQueryResult.trade_no = "";
_PayQueryResult.trade_num = "";
}
}
catch (Exception ex)
{
_PayQueryResult.result_code = ((int)CommonHelper.ResCode.).ToString();
_PayQueryResult.result_desc = "错误为:" + ResString; //"____其他错误:" + ex.Message;
_PayQueryResult.trade_no = "";
_PayQueryResult.trade_num = "";
LogHelper.WriteSendLog(ex.Message);
}
LogHelper.WriteSendLog("查询…最终返回值-END[querypay]:" +
JSonHelper.ObjectToJson<PayQueryResult>(_PayQueryResult, false));
return JSonHelper.ObjectToJson<PayQueryResult>(_PayQueryResult, false);
}
#endregion
#region
private void InsertData(string TICKETCODE, string PAYTYPE, JObject _JObject,
PayCreateResult _PayCreateResult, PayQueryResult _PayQueryResult, string TICKETPRICE = null)
{
string PayTime = TICKETCODE.Substring(TICKETCODE.Length - 14, 14);
string FilePath = "ErrorLog\\" + PayTime.Substring(0, 8);
string result_desc = (_PayQueryResult == null ? (_PayCreateResult == null ? "" :
(_PayCreateResult.result_code == "100" ? "SUCCESS" : _PayCreateResult.result_desc)) :
(_PayQueryResult.result_code == "100" ? "SUCCESS" : _PayQueryResult.result_desc));
try
{
try
{
TICKETPRICE = string.IsNullOrEmpty(TICKETPRICE) ? (double.Parse(
_JObject["order_info"]["price"].ToString()) / 100.00).ToString("0.00") : TICKETPRICE;
}
catch
{
TICKETPRICE = "NULL";
}
try
{
//读取移动支付订单号查询记录缓存
List<string> _MobilePayList = (List<string>)CacheHelper.Get("MobilePay");
if (_MobilePayList == null)
{
_MobilePayList = new List<string>();
}
//判断是否已经存在订单查询记录或查询结果是否交易成功,如从未查询过或查询结果为交易成功则记录交易查询日志
if (!_MobilePayList.Contains(TICKETCODE) ||
_PayQueryResult.result_code == ((int)CommonHelper.ResCode.).ToString())
{
//写入交易记录至文本日志
if (!Directory.Exists(AppDomain.CurrentDomain.BaseDirectory + "\\InsertData"))
{
Directory.CreateDirectory(AppDomain.CurrentDomain.BaseDirectory + "\\InsertData");
}
string filename = System.AppDomain.CurrentDomain.BaseDirectory + "\\InsertData\\" + TICKETCODE + ".txt";
FileInfo _FileInfo = new FileInfo(filename);
if (_FileInfo.Exists)
{
_FileInfo.Delete();
}
CommonHelper.SaveTextFile("InsertData\\" + TICKETCODE + ".txt", TICKETCODE + "|" + PAYTYPE + "|" +
TICKETPRICE + "|" + (_PayCreateResult == null ? (_PayQueryResult == null ? "" : _PayQueryResult.result_code) :
_PayCreateResult.result_code) + "|" + result_desc + "|" + (_PayQueryResult == null ?
(_PayCreateResult == null ? "" : _PayCreateResult.trade_no) : _PayQueryResult.trade_no) + "|" +
(_PayQueryResult == null ? (_PayCreateResult == null ? "" : _PayCreateResult.trade_num) :
_PayQueryResult.trade_num) + "|" + JSonHelper.ObjectToJson<PayQueryResult>(_PayQueryResult, false) + "|" +
((int)CommonHelper.MobilePayOperators.kwypay).ToString());
//更新缓存记录,写入移动支付交易订单信息
if (!_MobilePayList.Contains(TICKETCODE))
{
_MobilePayList.Add(TICKETCODE);
CacheHelper.Set("MobilePay", _MobilePayList);
}
}
}
catch
{
//支付时间
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(_connectstring.Split(',')[0],
_connectstring.Split(',')[1], _connectstring.Split(',')[2], _connectstring.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("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,COMMODITY_CODE,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 + "','" +
(_PayQueryResult == null ? (_PayCreateResult == null ? "" : _PayCreateResult.trade_no) :
_PayQueryResult.trade_no) + "'," + TICKETPRICE + ",'" + result_desc + "'," +
(int)CommonHelper.MobilePayOperators.kwypay + ")";
_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,COMMODITY_CODE,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.Substring(6, 6) +
// "','" + (TICKETCODE.Substring(12, 4).StartsWith("0") ? TICKETCODE.Substring(13, 3) :
// TICKETCODE.Substring(12, 4)) + "','" + TICKETCODE + "','" + (_PayQueryResult == null ?
// (_PayCreateResult == null ? "" : _PayCreateResult.trade_no) : _PayQueryResult.trade_no) + "'," +
// (string.IsNullOrEmpty(TICKETPRICE) ? (double.Parse(_JObject["data"]["total_fee"].ToString()) / 100.00).ToString("0.00") : TICKETPRICE) +
// ",'" + result_desc + "'," + (int)CommonHelper.MobilePayOperators.kwypay + ")";
// _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,COMMODITY_CODE,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.Substring(6, 6) +
// "','" + (TICKETCODE.Substring(12, 4).StartsWith("0") ? TICKETCODE.Substring(13, 3) :
// TICKETCODE.Substring(12, 4)) + "','" + TICKETCODE + "','" + (_PayQueryResult == null ?
// (_PayCreateResult == null ? "" : _PayCreateResult.trade_no) : _PayQueryResult.trade_no) + "'," +
// (string.IsNullOrEmpty(TICKETPRICE) ? (double.Parse(_JObject["data"]["total_fee"].ToString()) / 100.00).ToString("0.00") : TICKETPRICE) +
// ",'" + result_desc + "'," + (int)CommonHelper.MobilePayOperators.kwypay + ")";
// _OracleHelper.ExcuteSql(str);
//}
#endregion
}
if (Directory.Exists(AppDomain.CurrentDomain.BaseDirectory + "\\" + FilePath))
{
CommonHelper.SaveTextFile(FilePath + "\\" + TICKETCODE + ".txt", 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 + "|" +
TICKETPRICE + "|" + (_PayCreateResult == null ? (_PayQueryResult == null ? "" :
_PayQueryResult.result_code + "|" + _PayQueryResult.result_desc + "|" + _PayQueryResult.trade_no + "|" +
_PayQueryResult.trade_num + "|" + JSonHelper.ObjectToJson<PayQueryResult>(_PayQueryResult, false)) :
_PayCreateResult.result_code + "|" + _PayCreateResult.result_desc + "|" + _PayCreateResult.trade_no + "|" +
_PayCreateResult.trade_num + "|" + JSonHelper.ObjectToJson<PayCreateResult>(_PayCreateResult, false)) +
"|" + ((int)CommonHelper.MobilePayOperators.kwypay).ToString());
}
LogHelper.WriteSendLog("订单号:" + 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("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,COMMODITY_CODE,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 + "','" +
(_PayQueryResult == null ? (_PayCreateResult == null ? "" : _PayCreateResult.trade_no) :
_PayQueryResult.trade_no) + "'," + TICKETPRICE + ",'" + result_desc + "'," +
(int)CommonHelper.MobilePayOperators.kwypay + ")";
_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,COMMODITY_CODE,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.Substring(6, 6) +
// "','" + (TICKETCODE.Substring(12, 4).StartsWith("0") ? TICKETCODE.Substring(13, 3) :
// TICKETCODE.Substring(12, 4)) + "','" + TICKETCODE + "','" + (_PayQueryResult == null ?
// (_PayCreateResult == null ? "" : _PayCreateResult.trade_no) : _PayQueryResult.trade_no) + "'," +
// (string.IsNullOrEmpty(TICKETPRICE) ? (double.Parse(_JObject["data"]["total_fee"].ToString()) / 100.00).ToString("0.00") : TICKETPRICE) +
// ",'" + result_desc + "'," + (int)CommonHelper.MobilePayOperators.kwypay + ")";
// _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,COMMODITY_CODE,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.Substring(6, 6) +
// "','" + (TICKETCODE.Substring(12, 4).StartsWith("0") ? TICKETCODE.Substring(13, 3) :
// TICKETCODE.Substring(12, 4)) + "','" + TICKETCODE + "','" + (_PayQueryResult == null ?
// (_PayCreateResult == null ? "" : _PayCreateResult.trade_no) : _PayQueryResult.trade_no) + "'," +
// (string.IsNullOrEmpty(TICKETPRICE) ? (double.Parse(_JObject["data"]["total_fee"].ToString()) / 100.00).ToString("0.00") : TICKETPRICE) +
// ",'" + result_desc + "'," + (int)CommonHelper.MobilePayOperators.kwypay + ")";
// _OracleHelper.ExcuteSql(str);
//}
#endregion
if (Directory.Exists(AppDomain.CurrentDomain.BaseDirectory + "\\" + FilePath))
{
CommonHelper.SaveTextFile(FilePath + "\\" + TICKETCODE + ".txt", result_desc);
}
}
catch (Exception _Exception)
{
LogHelper.WriteSendLog("订单号:" + TICKETCODE + "," + _Exception.Message);
}
}
}
private void InsertData_customerscan(string TICKETCODE, string PAYTYPE, JObject _JObject, PayCreateResult _PayCreateResult,
PayQueryResult _PayQueryResult, string TICKETPRICE = null, string PayState = "pay")
{
string PayTime = DateTime.Now.ToString();
#region
try
{
//本地数据库
OracleHelper _OracleHelper = new OracleHelper(_connectstring.Split(',')[0],
_connectstring.Split(',')[1], _connectstring.Split(',')[2], _connectstring.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 = '" +
(PayState == "refund" ? "R" : "") + TICKETCODE + "' AND SELLDATA_TYPE = '" + PAYTYPE + "'").Tables[0])
{
if (_DataTable.Rows.Count == 0 || _DataTable.Select("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,COMMODITY_CODE,FACTAMOUNT,SELLDATA_EXTRA_DESC,LINENUM)
VALUES(HIGHWAY_EXCHANGE.SEQ_SELLDATA_EXTRA.NEXTVAL,'" + PAYTYPE + "',TO_DATE('" + PayTime +
"','YYYY/MM/DD HH24:MI:SS'),NULL,NULL,NULL,'" + (PayState == "refund" ? "R" : "") + TICKETCODE +
"','" + (_PayQueryResult == null ? (_PayCreateResult == null ? "" : _PayCreateResult.trade_no) :
_PayQueryResult.trade_no) + "'," + (string.IsNullOrEmpty(TICKETPRICE) ?
(double.Parse(_JObject["data"]["total_fee"].ToString()) / 100.00).ToString("0.00") : TICKETPRICE) +
",'" + (_PayQueryResult == null ? (_PayCreateResult == null ? "" : _PayCreateResult.result_desc) :
_PayQueryResult.result_desc) + "'," + (int)CommonHelper.MobilePayOperators.kwypay + ")";
_OracleHelper.ExcuteSql(str);
}
}
#region ()
//if (_OracleHelper.ExcuteSqlGetDataSet("SELECT 1 FROM HIGHWAY_EXCHANGE.T_SELLDATA_EXTRA WHERE TICKETCODE = '" +
// (PayState == "refund" ? "R" : "") + 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,COMMODITY_CODE,FACTAMOUNT,SELLDATA_EXTRA_DESC,LINENUM)
// VALUES(HIGHWAY_EXCHANGE.SEQ_SELLDATA_EXTRA.NEXTVAL,'" + PAYTYPE + "',TO_DATE('" + PayTime +
// "','YYYY/MM/DD HH24:MI:SS'),NULL,NULL,NULL,'" + (PayState == "refund" ? "R" : "") + TICKETCODE +
// "','" + (_PayQueryResult == null ? (_PayCreateResult == null ? "" : _PayCreateResult.trade_no) :
// _PayQueryResult.trade_no) + "'," + (string.IsNullOrEmpty(TICKETPRICE) ?
// (double.Parse(_JObject["data"]["total_fee"].ToString()) / 100.00).ToString("0.00") : TICKETPRICE) +
// ",'" + (_PayQueryResult == null ? (_PayCreateResult == null ? "" : _PayCreateResult.result_desc) :
// _PayQueryResult.result_desc) + "'," + (int)CommonHelper.MobilePayOperators.kwypay + ")";
// _OracleHelper.ExcuteSql(str);
//}
//else if (_OracleHelper.ExcuteSqlGetDataSet("SELECT 1 FROM HIGHWAY_EXCHANGE.T_SELLDATA_EXTRA WHERE TICKETCODE = '" +
// (PayState == "refund" ? "R" : "") + 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,COMMODITY_CODE,FACTAMOUNT,SELLDATA_EXTRA_DESC,LINENUM)
// VALUES(HIGHWAY_EXCHANGE.SEQ_SELLDATA_EXTRA.NEXTVAL,'" + PAYTYPE + "',TO_DATE('" + PayTime +
// "','YYYY/MM/DD HH24:MI:SS'),NULL,NULL,NULL,'" + (PayState == "refund" ? "R" : "") + TICKETCODE +
// "','" + (_PayQueryResult == null ? (_PayCreateResult == null ? "" : _PayCreateResult.trade_no) :
// _PayQueryResult.trade_no) + "'," + (string.IsNullOrEmpty(TICKETPRICE) ?
// (double.Parse(_JObject["data"]["total_fee"].ToString()) / 100.00).ToString("0.00") : TICKETPRICE) +
// ",'" + (_PayQueryResult == null ? (_PayCreateResult == null ? "" : _PayCreateResult.result_desc) :
// _PayQueryResult.result_desc) + "'," + (int)CommonHelper.MobilePayOperators.kwypay + ")";
// _OracleHelper.ExcuteSql(str);
//}
#endregion
}
catch (Exception ex)
{
LogHelper.WriteSendLog(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 = '" +
(PayState == "refund" ? "R" : "") + TICKETCODE + "' AND SELLDATA_TYPE = '" + PAYTYPE + "'").Tables[0])
{
if (_DataTable.Rows.Count == 0 || _DataTable.Select("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,COMMODITY_CODE,FACTAMOUNT,SELLDATA_EXTRA_DESC,LINENUM)
VALUES(HIGHWAY_EXCHANGE.SEQ_SELLDATA_EXTRA.NEXTVAL,'" + PAYTYPE + "',TO_DATE('" + PayTime +
"','YYYY/MM/DD HH24:MI:SS'),NULL,NULL,NULL,'" + (PayState == "refund" ? "R" : "") + TICKETCODE +
"','" + (_PayQueryResult == null ? (_PayCreateResult == null ? "" : _PayCreateResult.trade_no) :
_PayQueryResult.trade_no) + "'," + (string.IsNullOrEmpty(TICKETPRICE) ?
(double.Parse(_JObject["data"]["total_fee"].ToString()) / 100.00).ToString("0.00") : TICKETPRICE) +
",'" + (_PayQueryResult == null ? (_PayCreateResult == null ? "" : _PayCreateResult.result_desc) :
_PayQueryResult.result_desc) + "'," + (int)CommonHelper.MobilePayOperators.kwypay + ")";
_OracleHelper.ExcuteSql(str);
}
}
#region ()
//if (_OracleHelper.ExcuteSqlGetDataSet("SELECT 1 FROM HIGHWAY_EXCHANGE.T_SELLDATA_EXTRA WHERE TICKETCODE = '" +
// (PayState == "refund" ? "R" : "") + 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,COMMODITY_CODE,FACTAMOUNT,SELLDATA_EXTRA_DESC,LINENUM)
// VALUES(HIGHWAY_EXCHANGE.SEQ_SELLDATA_EXTRA.NEXTVAL,'" + PAYTYPE + "',TO_DATE('" + PayTime +
// "','YYYY/MM/DD HH24:MI:SS'),NULL,NULL,NULL,'" + (PayState == "refund" ? "R" : "") + TICKETCODE +
// "','" + (_PayQueryResult == null ? (_PayCreateResult == null ? "" : _PayCreateResult.trade_no) :
// _PayQueryResult.trade_no) + "'," + (string.IsNullOrEmpty(TICKETPRICE) ?
// (double.Parse(_JObject["data"]["total_fee"].ToString()) / 100.00).ToString("0.00") : TICKETPRICE) +
// ",'" + (_PayQueryResult == null ? (_PayCreateResult == null ? "" : _PayCreateResult.result_desc) :
// _PayQueryResult.result_desc) + "'," + (int)CommonHelper.MobilePayOperators.kwypay + ")";
// _OracleHelper.ExcuteSql(str);
//}
//else if (_OracleHelper.ExcuteSqlGetDataSet("SELECT 1 FROM HIGHWAY_EXCHANGE.T_SELLDATA_EXTRA WHERE TICKETCODE = '" +
// (PayState == "refund" ? "R" : "") + 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,COMMODITY_CODE,FACTAMOUNT,SELLDATA_EXTRA_DESC,LINENUM)
// VALUES(HIGHWAY_EXCHANGE.SEQ_SELLDATA_EXTRA.NEXTVAL,'" + PAYTYPE + "',TO_DATE('" + PayTime +
// "','YYYY/MM/DD HH24:MI:SS'),NULL,NULL,NULL,'" + (PayState == "refund" ? "R" : "") + TICKETCODE +
// "','" + (_PayQueryResult == null ? (_PayCreateResult == null ? "" : _PayCreateResult.trade_no) :
// _PayQueryResult.trade_no) + "'," + (string.IsNullOrEmpty(TICKETPRICE) ?
// (double.Parse(_JObject["data"]["total_fee"].ToString()) / 100.00).ToString("0.00") : TICKETPRICE) +
// ",'" + (_PayQueryResult == null ? (_PayCreateResult == null ? "" : _PayCreateResult.result_desc) :
// _PayQueryResult.result_desc) + "'," + (int)CommonHelper.MobilePayOperators.kwypay + ")";
// _OracleHelper.ExcuteSql(str);
//}
#endregion
}
catch (Exception _Exception)
{
LogHelper.WriteSendLog(_Exception.Message);
}
}
#endregion
try
{
OracleHelper _OracleHelper = new OracleHelper("183.129.232.107", "orcl", "MOBILESERVICE_PLATFORM", "qrwl");
string SqlString = "SELECT * FROM MOBILESERVICE_PLATFORM.T_CONSUMPTIONRECORD WHERE TICKET_CODE = '" +
TICKETCODE + "' AND NVL(CONSUMPTIONRECORD_TYPE,1000) = 1000";
string _MEMBERSHIP_ID = "", _MEMBERSHIP_TELEPHONE = "";
TICKETPRICE = (!string.IsNullOrEmpty(TICKETPRICE) ? TICKETPRICE :
(double.Parse(_JObject["order_info"]["price"].ToString()) / 100.00).ToString("0.00"));
DataTable DTCONSUMPTIONRECORD = _OracleHelper.ExcuteSqlGetDataSet(SqlString).Tables[0];
if (DTCONSUMPTIONRECORD.Rows.Count > 0 && DTCONSUMPTIONRECORD.Rows[0]["CONSUMPTIONRECORD_STATE"].ToString() == "1005")
{
#region
SqlString = "SELECT * FROM MOBILESERVICE_PLATFORM.T_MEMBERSHIP WHERE SERVERPARTSHOP_ID = '" +
TICKETCODE.Split('-')[1] + "|330000' AND MEMBERSHIP_TYPE = 2020";
DataTable DTMEMBERSHIP = _OracleHelper.ExcuteSqlGetDataSet(SqlString).Tables[0];
if (DTMEMBERSHIP.Rows.Count == 0)
{
_MEMBERSHIP_ID = _OracleHelper.ExcuteSqlGetDataSet(
"SELECT MOBILESERVICE_PLATFORM.SEQ_MEMBERSHIP.NEXTVAL FROM DUAL").Tables[0].Rows[0][0].ToString();
SqlString = string.Format(@"INSERT INTO MOBILESERVICE_PLATFORM.T_MEMBERSHIP (MEMBERSHIP_ID,RTWECHATPUSH_ID,
SERVERPARTSHOP_ID,MEMBERSHIP_TYPE,MEMBERSHIP_CODE,MEMBERSHIP_NAME,MEMBERSHIP_CARD,MEMBERSHIP_LEVEL,
MEMBERSHIP_PASSWORD,MEMBERSHIP_POINT,ACCOUNT_BALANCE,MEMBERSHIP_SEX,MEMBERSHIP_BIRTHDAY,
MEMBERSHIP_MOBILEPHONE,MEMBERSHIP_TELEPHONE,CERTIFICATE_NUMBER,MEMBERSHIP_EMAIL,MEMBERSHIP_ADDRESS,
RECOMMEND_ID,RECOMMEND_NAME,MEMBERSHIP_STATE,ADDTIME,STAFF_ID,STAFF_NAME,OPERATE_DATE,MEMBERSHIP_DESC)
SELECT {0},NULL,SERVERPARTSHOP_ID || '|330000',2020,NULL,SHOPNAME,NULL,NULL,NULL,NULL,NULL,NULL,NULL,
NULL,NULL,NULL,NULL,NULL,NULL,NULL,1000,SYSDATE,NULL,'自动添加',SYSDATE,NULL
FROM HIGHWAY_STORAGE.T_SERVERPARTSHOP@HWS WHERE SERVERPARTSHOP_ID = " + TICKETCODE.Split('-')[1], _MEMBERSHIP_ID);
_OracleHelper.ExcuteSql(SqlString);
}
else
{
_MEMBERSHIP_ID = DTMEMBERSHIP.Rows[0]["MEMBERSHIP_ID"].ToString();
_MEMBERSHIP_TELEPHONE = DTMEMBERSHIP.Rows[0]["MEMBERSHIP_TELEPHONE"].ToString();
}
#endregion
#region
SqlString = string.Format(@"UPDATE MOBILESERVICE_PLATFORM.T_CONSUMPTIONRECORD SET (
MEMBERSHIP_ID,MEMBERSHIP_CARD,CONSUMPTIONRECORD_TYPE,CONSUMPTIONRECORD_DATE,
SERVERPART_ID,SERVERPART_CODE,SERVERPART_NAME,SERVERPARTSHOP_ID,SHOPCODE,SHOPNAME,
CURRENT_SCORE,CONSUMPTIONRECORD_STATE) = (
SELECT A.MEMBERSHIP_ID,A.MEMBERSHIP_CARD,1000,TO_DATE('{0}','YYYY/MM/DD HH24:MI:SS'),
C.SERVERPART_ID,C.SERVERPART_CODE,C.SERVERPART_NAME,
B.SERVERPARTSHOP_ID,B.SHOPCODE,B.SHOPNAME,{1},{2}
FROM
MOBILESERVICE_PLATFORM.T_MEMBERSHIP A,
HIGHWAY_STORAGE.T_SERVERPARTSHOP@HWS B,
HIGHWAY_STORAGE.T_SERVERPART@HWS C
WHERE
A.SERVERPARTSHOP_ID = B.SERVERPARTSHOP_ID || '|330000' AND
B.SERVERPART_ID = C.SERVERPART_ID AND MEMBERSHIP_ID = {3})
WHERE CONSUMPTIONRECORD_ID = " + DTCONSUMPTIONRECORD.Rows[0]["CONSUMPTIONRECORD_ID"].ToString(),
PayTime, TICKETPRICE, PayState == "refund" ? "9999" : "1010", _MEMBERSHIP_ID);
_OracleHelper.ExcuteSql(SqlString);
#endregion
#region
SqlString = "SELECT * FROM MOBILESERVICE_PLATFORM.T_MEMBERSHIPSCORE WHERE MEMBERSHIP_ID = " +
_MEMBERSHIP_ID + " AND SCORE_RULE = 1000 AND SERVERPARTSHOP_ID = " + TICKETCODE.Split('-')[1];
DataTable DTMEMBERSHIPSCORE = _OracleHelper.ExcuteSqlGetDataSet(SqlString).Tables[0];
if (DTMEMBERSHIPSCORE.Rows.Count == 0)
{
SqlString = string.Format(@"INSERT INTO MOBILESERVICE_PLATFORM.T_MEMBERSHIPSCORE (
MEMBERSHIPSCORE_ID,SERVERPARTSHOP_ID,PROVINCE_CODE,MEMBERSHIP_ID,SCORE_TYPE,SCORE_RULE,
MEMBERSHIPSCORE_CODE,MEMBERSHIP_SCORE,MEMBERSHIPSCORE_DESC)
SELECT MOBILESERVICE_PLATFORM.SEQ_MEMBERSHIPSCORE.NEXTVAL,{0},'330000',
MEMBERSHIP_ID,1,1000,NULL,{1},NULL
FROM MOBILESERVICE_PLATFORM.T_MEMBERSHIP WHERE MEMBERSHIP_ID = " + _MEMBERSHIP_ID,
TICKETCODE.Split('-')[1], TICKETPRICE);
_OracleHelper.ExcuteSql(SqlString);
if (_PayCreateResult != null)
{
_PayCreateResult.trade_score = TICKETPRICE;
}
else if (_PayQueryResult != null)
{
_PayQueryResult.trade_score = TICKETPRICE;
}
}
else
{
SqlString = "UPDATE MOBILESERVICE_PLATFORM.T_MEMBERSHIPSCORE SET MEMBERSHIP_SCORE = MEMBERSHIP_SCORE + " +
TICKETPRICE + " WHERE MEMBERSHIPSCORE_ID = " + DTMEMBERSHIPSCORE.Rows[0]["MEMBERSHIPSCORE_ID"].ToString();
_OracleHelper.ExcuteSql(SqlString);
if (_PayCreateResult != null)
{
_PayCreateResult.trade_score = (decimal.Parse(
string.IsNullOrEmpty(DTMEMBERSHIPSCORE.Rows[0]["MEMBERSHIP_SCORE"].ToString()) ? "0" :
DTMEMBERSHIPSCORE.Rows[0]["MEMBERSHIP_SCORE"].ToString()) + decimal.Parse(TICKETPRICE)).ToString();
}
else if (_PayQueryResult != null)
{
_PayQueryResult.trade_score = (decimal.Parse(
string.IsNullOrEmpty(DTMEMBERSHIPSCORE.Rows[0]["MEMBERSHIP_SCORE"].ToString()) ? "0" :
DTMEMBERSHIPSCORE.Rows[0]["MEMBERSHIP_SCORE"].ToString()) + decimal.Parse(TICKETPRICE)).ToString();
}
}
#endregion
}
else if (PayState == "refund" && DTCONSUMPTIONRECORD.Rows[0]["CONSUMPTIONRECORD_STATE"].ToString() != "9999")
{
#region
SqlString = "SELECT MEMBERSHIP_ID FROM MOBILESERVICE_PLATFORM.T_MEMBERSHIP WHERE SERVERPARTSHOP_ID = '" +
TICKETCODE.Split('-')[1] + "|330000' AND MEMBERSHIP_TYPE = 2020";
DataTable DTMEMBERSHIP = _OracleHelper.ExcuteSqlGetDataSet(SqlString).Tables[0];
if (DTMEMBERSHIP.Rows.Count == 0)
{
_MEMBERSHIP_ID = _OracleHelper.ExcuteSqlGetDataSet(
"SELECT MOBILESERVICE_PLATFORM.SEQ_MEMBERSHIP.NEXTVAL FROM DUAL").Tables[0].Rows[0][0].ToString();
SqlString = string.Format(@"INSERT INTO MOBILESERVICE_PLATFORM.T_MEMBERSHIP (MEMBERSHIP_ID,RTWECHATPUSH_ID,
SERVERPARTSHOP_ID,MEMBERSHIP_TYPE,MEMBERSHIP_CODE,MEMBERSHIP_NAME,MEMBERSHIP_CARD,MEMBERSHIP_LEVEL,
MEMBERSHIP_PASSWORD,MEMBERSHIP_POINT,ACCOUNT_BALANCE,MEMBERSHIP_SEX,MEMBERSHIP_BIRTHDAY,
MEMBERSHIP_MOBILEPHONE,MEMBERSHIP_TELEPHONE,CERTIFICATE_NUMBER,MEMBERSHIP_EMAIL,MEMBERSHIP_ADDRESS,
RECOMMEND_ID,RECOMMEND_NAME,MEMBERSHIP_STATE,ADDTIME,STAFF_ID,STAFF_NAME,OPERATE_DATE,MEMBERSHIP_DESC)
SELECT {0},NULL,SERVERPARTSHOP_ID || '|330000',2020,NULL,SHOPNAME,NULL,NULL,NULL,NULL,NULL,NULL,NULL,
NULL,NULL,NULL,NULL,NULL,NULL,NULL,1000,SYSDATE,NULL,'自动添加',SYSDATE,NULL
FROM HIGHWAY_STORAGE.T_SERVERPARTSHOP@HWS WHERE SERVERPARTSHOP_ID = " + TICKETCODE.Split('-')[1], _MEMBERSHIP_ID);
_OracleHelper.ExcuteSql(SqlString);
}
else
{
_MEMBERSHIP_ID = DTMEMBERSHIP.Rows[0][0].ToString();
}
#endregion
#region
SqlString = @"UPDATE MOBILESERVICE_PLATFORM.T_CONSUMPTIONRECORD SET CONSUMPTIONRECORD_STATE = 9999
WHERE CONSUMPTIONRECORD_ID = " + DTCONSUMPTIONRECORD.Rows[0]["CONSUMPTIONRECORD_ID"].ToString();
_OracleHelper.ExcuteSql(SqlString);
#endregion
#region
SqlString = "SELECT * FROM MOBILESERVICE_PLATFORM.T_MEMBERSHIPSCORE WHERE MEMBERSHIP_ID = " +
_MEMBERSHIP_ID + " AND SCORE_RULE = 1000 AND SERVERPARTSHOP_ID = " + TICKETCODE.Split('-')[1];
DataTable DTMEMBERSHIPSCORE = _OracleHelper.ExcuteSqlGetDataSet(SqlString).Tables[0];
if (DTMEMBERSHIPSCORE.Rows.Count > 0)
{
SqlString = "UPDATE MOBILESERVICE_PLATFORM.T_MEMBERSHIPSCORE SET MEMBERSHIP_SCORE = MEMBERSHIP_SCORE + " +
TICKETPRICE + " WHERE MEMBERSHIPSCORE_ID = " + DTMEMBERSHIPSCORE.Rows[0]["MEMBERSHIPSCORE_ID"].ToString();
_OracleHelper.ExcuteSql(SqlString);
}
#endregion
}
if (string.IsNullOrEmpty(PayState) || PayState != "refund")
{
SqlString = "SELECT * FROM MOBILESERVICE_PLATFORM.T_MEMBERSHIP WHERE MEMBERSHIP_MOBILEPHONE = '" +
_MEMBERSHIP_TELEPHONE + "' AND NVL(MEMBERSHIP_TYPE,1000) <> 2020 ORDER BY OPERATE_DATE DESC";
DataTable T_MEMBERSHIP = _OracleHelper.ExcuteSqlGetDataSet(SqlString).Tables[0];
SqlString = "UPDATE UNIFORMSEND_STORAGE.T_PURCHASE@HWS SET " + (T_MEMBERSHIP.Rows.Count > 0 ?
"PURCHASE_PERSON = '" + T_MEMBERSHIP.Rows[0]["MEMBERSHIP_NAME"].ToString() + "'," : "") +
"PURCHASE_PERSONTEL = '" + _MEMBERSHIP_TELEPHONE + "',PURCHASE_STATE = 1010 WHERE PURCHASE_DESC = '" +
TICKETCODE + "' AND PURCHASE_STATE = 1005";
_OracleHelper.ExcuteSql(SqlString);
#region
string SQLString = "SELECT * FROM MOBILESERVICE_PLATFORM.T_WECHATPUBLICSIGN WHERE WECHATPUBLICSIGN_ID = 2";
DataTable WECHATPUBLICSIGN = _OracleHelper.ExcuteSqlGetDataSet(SQLString).Tables[0];
if (WECHATPUBLICSIGN.Rows.Count > 0)
{
string AppID = WECHATPUBLICSIGN.Rows[0]["WECHAT_APPID"].ToString();
string AppSecret = WECHATPUBLICSIGN.Rows[0]["WECHAT_APPSECRET"].ToString();
string AcessToken = WebService.SDK.CommonHelper.GetAccess(AppID, AppSecret);
if (!string.IsNullOrEmpty(AcessToken))
{
//推送模板
SQLString = "SELECT * FROM MOBILESERVICE_PLATFORM.T_PUSHMODULE WHERE WECHATPUBLICSIGN_ID = " +
WECHATPUBLICSIGN.Rows[0]["WECHATPUBLICSIGN_ID"].ToString();
DataTable PUSHMODULE = _OracleHelper.ExcuteSqlGetDataSet(SQLString).Tables[0];
//订单付款成功通知
string PUSH_MODULE = PUSHMODULE.Select("PUSHMODULE_NUM = 'Checkout_Success'")[0]["PUSHMODULE_CODE"].ToString();
SQLString = "SELECT * FROM MOBILESERVICE_PLATFORM.V_RTWECHATPUSH WHERE PUSH_MODULE LIKE '%" +
PUSH_MODULE + "%' AND PROVINCE_CODE = 330000 AND ',' || SERVERPARTSHOP_IDS || ',' LIKE '%," +
TICKETCODE.Split('-')[1] + ",%'";
DataTable RTWECHATPUSH = _OracleHelper.ExcuteSqlGetDataSet(SQLString).Tables[0];
WebService.SDK.CommonHelper.StartToSend(AppID, AppSecret, "Checkout_Success", AcessToken, RTWECHATPUSH,
PUSH_MODULE, DTCONSUMPTIONRECORD, PAYTYPE == "ALIPAY" ? "支付宝支付" : (PAYTYPE == "WECHAT" ? "微信支付" : ""));
//采购信息
DataTable V_PURCHASE = _OracleHelper.ExcuteSqlGetDataSet(
"SELECT * FROM UNIFORMSEND_STORAGE.V_PURCHASE@HWS WHERE PURCHASE_DESC = '" +
TICKETCODE + "' ORDER BY PURCHASEDETAIL_ID").Tables[0];
//新订单通知
PUSH_MODULE = PUSHMODULE.Select("PUSHMODULE_NUM = 'NewOrder'")[0]["PUSHMODULE_CODE"].ToString();
SQLString = "SELECT * FROM MOBILESERVICE_PLATFORM.V_RTWECHATPUSH WHERE PUSH_MODULE LIKE '%" +
PUSH_MODULE + "%' AND PROVINCE_CODE = 330000";
RTWECHATPUSH = _OracleHelper.ExcuteSqlGetDataSet(SQLString).Tables[0];
WebService.SDK.CommonHelper.StartToSend(AppID, AppSecret, "NewOrder",
AcessToken, RTWECHATPUSH, PUSH_MODULE, V_PURCHASE);
}
}
#endregion
}
else if (PayState == "refund")
{
SqlString = "UPDATE UNIFORMSEND_STORAGE.T_PURCHASE@HWS SET PURCHASE_STATE = 9999 WHERE PURCHASE_DESC = '" +
TICKETCODE + "' AND PURCHASE_STATE <= 2000";
_OracleHelper.ExcuteSql(SqlString);
}
}
catch (Exception _Exception)
{
LogHelper.WriteSendLog(_Exception.Message);
}
}
#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(_connectstringbld.Split(',')[0],
_connectstringbld.Split(',')[1], _connectstringbld.Split(',')[2], _connectstringbld.Split(',')[3]);
//_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)(CommonHelper.ResCode.)).ToString();
_PayQueryResult.result_desc = "记录成功";
_PayQueryResult.trade_no = SHOPCODE;
_PayQueryResult.trade_num = SERVERPARTCODE;
}
catch (Exception ex)
{
_PayQueryResult.result_code = ((int)CommonHelper.ResCode.).ToString();
_PayQueryResult.result_desc = "记录失败"; //"____其他错误:" + ex.Message;
_PayQueryResult.trade_no = SHOPCODE;
_PayQueryResult.trade_num = SERVERPARTCODE;
LogHelper.WriteSendLog(ex.Message);
}
LogHelper.WriteSendLog("接收到的结账信息参数:服务区码(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 _OracleHelperEx = new OracleHelper(_OracleHelperStringsp.Split(',')[0], _OracleHelperStringsp.Split(',')[1],
_OracleHelperStringsp.Split(',')[2], _OracleHelperStringsp.Split(',')[3],
_OracleHelperStringsp.Split(',').Length > 4 ? _OracleHelperStringsp.Split(',')[4] : "1521");
string _SERVERPART_ID = "NULL", _SERVERPART_NAME = "",
_SERVERPARTSHOP_ID = "NULL", _SHOPNAME = "", _Membership_Card = "",
_PlatformCode = SERVERPARTCODE + SHOPCODE + DateTime.Now.ToString("yyyyMMddHHmmss");
//获取服务区门店信息
DataTable _SERVERPARTSHOP = _OracleHelperEx.ExcuteSqlGetDataSet(
@"SELECT A.SERVERPART_ID,A.SERVERPART_NAME,B.SERVERPARTSHOP_ID,B.SHOPNAME
FROM HIGHWAY_STORAGE.T_SERVERPART A,HIGHWAY_STORAGE.T_SERVERPARTSHOP B
WHERE A.SERVERPART_ID = B.SERVERPART_ID AND A.SERVERPART_CODE = '" +
SERVERPARTCODE + "' AND B.SHOPCODE = '" + SHOPCODE + "'").Tables[0];
if (_SERVERPARTSHOP.Rows.Count > 0)
{
_SERVERPART_ID = _SERVERPARTSHOP.Rows[0]["SERVERPART_ID"].ToString();
_SERVERPART_NAME = _SERVERPARTSHOP.Rows[0]["SERVERPART_NAME"].ToString();
_SERVERPARTSHOP_ID = _SERVERPARTSHOP.Rows[0]["SERVERPARTSHOP_ID"].ToString();
_SHOPNAME = _SERVERPARTSHOP.Rows[0]["SHOPNAME"].ToString();
}
OracleHelper _OracleHelperLocal = new OracleHelper(_connectstring.Split(',')[0], _connectstring.Split(',')[1],
_connectstring.Split(',')[2], _connectstring.Split(',')[3],
_connectstring.Split(',').Length > 4 ? _connectstring.Split(',')[4] : "1521");
//获取会员卡号信息
DataTable dtMEMBERSHIP = _OracleHelperLocal.ExcuteSqlGetDataSet(
@"SELECT A.MEMBERSHIP_NAME,A.MEMBERSHIP_CARD
FROM HIGHWAY_EXCHANGE.T_MEMBERSHIP A
WHERE A.MEMBERSHIP_ID = " + MEMBERSHIP_ID).Tables[0];
if (dtMEMBERSHIP.Rows.Count > 0)
{
_Membership_Card = dtMEMBERSHIP.Rows[0]["MEMBERSHIP_CARD"].ToString();
}
StringBuilder sb = new StringBuilder();
sb.AppendFormat("?action_type={0}", "OrderPay");
sb.AppendFormat("&Membership_Card={0}", _Membership_Card);
sb.AppendFormat("&Fact_Amount={0}", RECODE_AMOUNT);
sb.AppendFormat("&Consume_Point={0}", 0);
sb.AppendFormat("&Recode_Amount={0}", RECODE_AMOUNT);
sb.AppendFormat("&TicketCode={0}", TICKETCODE);
sb.AppendFormat("&Recode_Type={0}", RECODE_TYPE);
sb.AppendFormat("&Serverpart_ID={0}", _SERVERPART_ID);
sb.AppendFormat("&Serverpart_Code={0}", SERVERPARTCODE);
sb.AppendFormat("&Serverpart_Name={0}", _SERVERPART_NAME);
sb.AppendFormat("&ServerpartShop_ID={0}", _SERVERPARTSHOP_ID);
sb.AppendFormat("&ServerpartShop_Code={0}", SHOPCODE);
sb.AppendFormat("&ServerpartShop_Name={0}", _SHOPNAME);
sb.AppendFormat("&MachineCode={0}", MACHINECODE);
sb.AppendFormat("&Recode_Date={0}", RECODE_DATE);
sb.AppendFormat("&PlatformCode={0}", _PlatformCode);
string parameters = sb.ToString();
string _BaseUrl = ConfigurationManager.AppSettings["MemberUrl"];
string RequestUrl = _BaseUrl + parameters;
string format = "application/json;charset=UTF-8";
string reString = CommonHelper.HttpUrlPost(parameters, RequestUrl, format, 0);
JObject _JObject = JObject.Parse(reString);
JObject info = new JObject();
switch (_JObject["Result_Code"].ToString())
{
case "100":
//查询数据
_PayQueryResult.result_code = ((int)(CommonHelper.ResCode.)).ToString();
_PayQueryResult.result_desc = "记录成功";
_PayQueryResult.trade_no = MEMBERSHIP_ID;
_PayQueryResult.trade_num = SERVERPARTCODE;
break;
default:
//查询数据
_PayQueryResult.result_code = ((int)(CommonHelper.ResCode.)).ToString();
_PayQueryResult.result_desc = _JObject["Result_Desc"].ToString();
_PayQueryResult.trade_no = MEMBERSHIP_ID;
_PayQueryResult.trade_num = SERVERPARTCODE;
break;
}
}
catch (Exception ex)
{
_PayQueryResult.result_code = ((int)CommonHelper.ResCode.).ToString();
_PayQueryResult.result_desc = "记录失败"; //"____其他错误:" + ex.Message;
_PayQueryResult.trade_no = MEMBERSHIP_ID;
_PayQueryResult.trade_num = SERVERPARTCODE;
LogHelper.WriteSendLog(ex.Message);
}
LogHelper.WriteSendLog("接收到的会员消费参数:会员内码(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(_connectstring.Split(',')[0],
_connectstring.Split(',')[1], _connectstring.Split(',')[2], _connectstring.Split(',')[3]);
//_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)(CommonHelper.ResCode.)).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)(CommonHelper.ResCode.)).ToString();
_PayQueryResult.result_desc = "会员码无效";
_PayQueryResult.trade_no = MEMBERSHIP_CODE.Substring(4, 6);
_PayQueryResult.trade_num = DateTime.Now.ToString();
}
}
else
{
_PayQueryResult.result_code = ((int)(CommonHelper.ResCode.)).ToString();
_PayQueryResult.result_desc = "会员码无效";
_PayQueryResult.trade_no = _time;
_PayQueryResult.trade_num = DateTime.Now.ToString();
}
}
catch (Exception ex)
{
_PayQueryResult.result_code = ((int)CommonHelper.ResCode.).ToString();
_PayQueryResult.result_desc = "会员码无效"; //"____其他错误:" + ex.Message;
_PayQueryResult.trade_no = MEMBERSHIP_CODE;
_PayQueryResult.trade_num = "";
LogHelper.WriteSendLog(ex.Message);
}
LogHelper.WriteSendLog("接收到的会员消费参数:会员条码(MEMBERSHIP_CODE):" + MEMBERSHIP_CODE +
",数据返回值:" + JSonHelper.ObjectToJson<PayQueryResult>(_PayQueryResult, false));
return JSonHelper.ObjectToJson<PayQueryResult>(_PayQueryResult, false);
}
#endregion
#region
[WebMethod]
/// <summary>
/// 商品信息查询参数
/// </summary>
/// <param name="COMMODITY_BARCODE">商品条码</param>
/// <param name="SERVERPARTSHOP_ID">门店内码</param>
/// <returns></returns>
public string CommodityBarcodeCheck(string COMMODITY_BARCODE, string SERVERPARTSHOP_ID)
{
LogHelper.WriteSendLog("接收到的商品信息参数:商品条码(COMMODITY_BARCODE):" + COMMODITY_BARCODE +
",门店内码(SERVERPARTSHOP_ID):" + SERVERPARTSHOP_ID);
PayQueryResult _PayQueryResult = new PayQueryResult();
try
{
OracleHelper _OracleHelper = new OracleHelper(_connectstring.Split(',')[0],
_connectstring.Split(',')[1], _connectstring.Split(',')[2], _connectstring.Split(',')[3]);
//从Cache中读取服务区门店信息数据
List<WebService.SDK.Model.ServerpartShopModel> _ServerpartShopList =
(List<WebService.SDK.Model.ServerpartShopModel>)CacheHelper.Get("SDKServerpartShopList");
if (_ServerpartShopList == null)
{
_ServerpartShopList = new List<WebService.SDK.Model.ServerpartShopModel>();
}
//检查当前服务区门店参数是否存在于Cache
if (_ServerpartShopList.FindAll(p => p.ServerpartShopID == SERVERPARTSHOP_ID).Count == 0)
{
//不存在时从数据库读取一次信息并保存至Cache并设定每30分钟刷新一次
_ServerpartShopList = Newtonsoft.Json.JsonConvert.DeserializeObject<List<WebService.SDK.Model.ServerpartShopModel>>(
Newtonsoft.Json.JsonConvert.SerializeObject(_OracleHelper.ExcuteSqlGetDataSet(
@"SELECT TO_CHAR(A.PROVINCE_CODE) as ProvinceCode,
A.SERVERPART_CODE as ServerpartCode,
TO_CHAR(B.SERVERPARTSHOP_ID) as ServerpartShopID,
B.SHOPCODE as ShopCode,B.BUSINESSTYPE as BusinessType,
TO_CHAR(NVL(B.UNIFORM_TYPE,1)) as UniformType,
TO_CHAR(B.SERVERPARTSHOP_STATE) as ServerpartShopState
FROM HIGHWAY_EXCHANGE.T_SERVERPART A,
HIGHWAY_EXCHANGE.T_SHOPMESSAGE_EX B
WHERE A.SERVERPART_CODE = B.SERVERPART_CODE AND
B.SHOPCODE IS NOT NULL").Tables[0]));
if (_ServerpartShopList.Count == 0)
{
_ServerpartShopList = Newtonsoft.Json.JsonConvert.DeserializeObject<List<WebService.SDK.Model.ServerpartShopModel>>(
Newtonsoft.Json.JsonConvert.SerializeObject(_OracleHelper.ExcuteSqlGetDataSet(
@"SELECT TO_CHAR(A.PROVINCE_CODE) as ProvinceCode,
A.SERVERPARTCODE as ServerpartCode,
TO_CHAR(B.SERVERPARTSHOP_ID) as ServerpartShopID,
B.SHOPCODE as ShopCode,B.BUSINESSTYPE as BusinessType,
'1' as UniformType,TO_CHAR(B.VALID) as ServerpartShopState
FROM HIGHWAY_EXCHANGE.T_SYSCODE A,
HIGHWAY_EXCHANGE.T_SHOPMESSAGE B
WHERE A.SERVERPARTCODE = B.SERVERPARTCODE AND
B.SHOPCODE IS NOT NULL").Tables[0]));
}
WebService.SDK.CacheHelper.Set("SDKServerpartShopList", _ServerpartShopList, DateTime.Now.AddMinutes(30));
}
//从Cache读取当前门店参数用于获取数据使用
WebService.SDK.Model.ServerpartShopModel _ServerpartShop = _ServerpartShopList.Find(p => p.ServerpartShopID == SERVERPARTSHOP_ID);
DataTable _DataTable = _OracleHelper.ExcuteSqlGetDataSet(
$@"SELECT A.COMMODITY_BARCODE,
A.COMMODITY_NAME,A.COMMODITY_RETAILPRICE
FROM HIGHWAY_EXCHANGE.T_COMMODITYEX_EX A
WHERE A.COMMODITY_BARCODE = '{COMMODITY_BARCODE}' AND
A.BUSINESSTYPE = {_ServerpartShop.BusinessType} AND
A.SERVERPARTCODE IN ('{_ServerpartShop.ServerpartCode}','{_ServerpartShop.ProvinceCode}') AND
A.COMMODITY_STATE = 1").Tables[0];
if (_DataTable.Rows.Count > 0)
{
//查询数据
_PayQueryResult.result_code = ((int)(CommonHelper.ResCode.)).ToString();
_PayQueryResult.result_desc = _DataTable.Rows[0]["COMMODITY_RETAILPRICE"].ToString();
_PayQueryResult.trade_no = _DataTable.Rows[0]["COMMODITY_BARCODE"].ToString();
_PayQueryResult.trade_num = _DataTable.Rows[0]["COMMODITY_NAME"].ToString();
}
else
{
_DataTable = _OracleHelper.ExcuteSqlGetDataSet(
$@"SELECT A.COMMODITY_BARCODE,A.COMMODITY_NAME,A.COMMODITY_RETAILPRICE
FROM HIGHWAY_EXCHANGE.T_COMMODITYEX_EX A
WHERE A.COMMODITY_BARCODE = '{COMMODITY_BARCODE}' AND A.BUSINESSTYPE = {_ServerpartShop.BusinessType} AND
A.SERVERPARTCODE IN ('{_ServerpartShop.ServerpartCode}','{_ServerpartShop.ProvinceCode}') AND
A.COMMODITY_STATE = 0").Tables[0];
if (_DataTable.Rows.Count > 0)
{
_PayQueryResult.result_code = ((int)(CommonHelper.ResCode.)).ToString();
_PayQueryResult.result_desc = "条码无效";
_PayQueryResult.trade_no = _DataTable.Rows[0]["COMMODITY_BARCODE"].ToString();
_PayQueryResult.trade_num = _DataTable.Rows[0]["COMMODITY_NAME"].ToString();
}
else
{
_PayQueryResult.result_code = ((int)CommonHelper.ResCode.).ToString();
_PayQueryResult.result_desc = "条码不存在"; //"____其他错误:" + ex.Message;
_PayQueryResult.trade_no = COMMODITY_BARCODE;
_PayQueryResult.trade_num = "";
}
}
}
catch (Exception ex)
{
_PayQueryResult.result_code = ((int)CommonHelper.ResCode.).ToString();
_PayQueryResult.result_desc = "条码无效"; //"____其他错误:" + ex.Message;
_PayQueryResult.trade_no = COMMODITY_BARCODE;
_PayQueryResult.trade_num = "";
LogHelper.WriteSendLog(ex.Message);
}
LogHelper.WriteSendLog("查询到的商品信息参数:商品条码(COMMODITY_BARCODE):" + COMMODITY_BARCODE +
",门店内码(SERVERPARTSHOP_ID):" + SERVERPARTSHOP_ID + ",数据返回值:" +
JSonHelper.ObjectToJson<PayQueryResult>(_PayQueryResult, false));
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)(CommonHelper.ResCode.)).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)(CommonHelper.ResCode.)).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)(CommonHelper.ResCode.)).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)(CommonHelper.ResCode.)).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)(CommonHelper.ResCode.)).ToString();
_PayQueryResult.result_desc = "单据无效";
_PayQueryResult.trade_no = GOODSDELIVER_CODE;
_PayQueryResult.trade_num = "";
}
}
catch (Exception ex)
{
_PayQueryResult.result_code = ((int)CommonHelper.ResCode.).ToString();
_PayQueryResult.result_desc = "网络异常"; //"____其他错误:" + ex.Message;
_PayQueryResult.trade_no = GOODSDELIVER_CODE;
_PayQueryResult.trade_num = "";
LogHelper.WriteSendLog(ex.Message);
}
LogHelper.WriteSendLog("查询到的配送单扫码入库参数:配送单号(GOODSDELIVER_CODE):" + GOODSDELIVER_CODE +
",采购单内码(PURCHASE_ID):" + PURCHASE_ID + ",数据返回值:" +
JSonHelper.ObjectToJson<PayQueryResult>(_PayQueryResult, false));
return JSonHelper.ObjectToJson<PayQueryResult>(_PayQueryResult, false);
}
#endregion
#region
[WebMethod]
/// <summary>
/// 查询条码库参数
/// </summary>
/// <param name="Barcode">商品条码</param>
public string BarcodeLibraryQuery(string Barcode)
{
DataTable BarcodeLibrary = null;
Barcode = Barcode.Replace(" ", "");
OracleHelper _OracleHelper = new OracleHelper();
try
{
_OracleHelper = new OracleHelper(_connectstring.Split(',')[0],
_connectstring.Split(',')[1], _connectstring.Split(',')[2], _connectstring.Split(',')[3]);
string str = @"SELECT COMMODITY_TYPE,COMMODITY_NAME,COMMODITY_BARCODE,COMMODITY_UNIT,
COMMODITY_RULE,COMMODITY_ORI,COMMODITY_RETAILPRICE,ADDTIME,IMAGE_URL
FROM HIGHWAY_EXCHANGE.T_BARCODELIBRARY WHERE COMMODITY_BARCODE = '" + Barcode + "'";
BarcodeLibrary = _OracleHelper.ExcuteSqlGetDataSet(str).Tables[0];
if (BarcodeLibrary.Rows.Count > 0)
{
LogHelper.WriteSendLog("查询到的商品信息参数:商品条码(COMMODITY_BARCODE):" + Barcode +
",数据返回值:" + JSonHelper.DataTableToJson(BarcodeLibrary, "BarcodeLibrary"));
return JSonHelper.DataTableToJson(BarcodeLibrary, "BarcodeLibrary");
}
else if (Barcode.Length >= 8)
{
#region
string SqlString = "", _COMMODITY_TYPE = "", _COMMODITY_NAME = "", _COMMODITY_UNIT = "",
_COMMODITY_RULE = "", _COMMODITY_ORI = "", _COMMODITY_RETAILPRICE = "", _IMAGE_URL = "";
JObject _JObject = GetBarcodeJson(Barcode);
if (_JObject != null && _JObject["showapi_res_body"] != null && _JObject["showapi_res_body"].ToString() != "")
{
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" : Regex.Replace(_JObject["showapi_res_body"]["price"].ToString().Replace("'", " "), @"\D+", "");
}
catch
{
_COMMODITY_RETAILPRICE = "NULL";
}
try
{
_IMAGE_URL = _JObject["showapi_res_body"]["img"].ToString();
}
catch
{
_IMAGE_URL = "";
}
string _BARCODELIBRARY_ID = _OracleHelper.ExcuteSqlGetDataSet(
"SELECT HIGHWAY_EXCHANGE.SEQ_BARCODELIBRARY.NEXTVAL FROM DUAL").Tables[0].Rows[0][0].ToString();
SqlString = @"INSERT INTO HIGHWAY_EXCHANGE.T_BARCODELIBRARY (BARCODELIBRARY_ID,COMMODITY_TYPE,
COMMODITY_CODE,COMMODITY_NAME,COMMODITY_BARCODE,COMMODITY_UNIT,COMMODITY_RULE,
COMMODITY_ORI,COMMODITY_RETAILPRICE,ADDTIME,IMAGE_URL)
VALUES (" + _BARCODELIBRARY_ID + ",'" + _COMMODITY_TYPE + "','" + _BARCODELIBRARY_ID.PadLeft(8, '0') +
"','" + _COMMODITY_NAME + "','" + Barcode + "','" + _COMMODITY_UNIT + "','" + _COMMODITY_RULE +
"','" + _COMMODITY_ORI + "'," + _COMMODITY_RETAILPRICE + ",SYSDATE,'" + _IMAGE_URL + "')";
_OracleHelper.ExcuteSql(SqlString);
SqlString = @"SELECT COMMODITY_TYPE,COMMODITY_NAME,COMMODITY_BARCODE,COMMODITY_UNIT,
COMMODITY_RULE,COMMODITY_ORI,COMMODITY_RETAILPRICE,ADDTIME,IMAGE_URL
FROM HIGHWAY_EXCHANGE.T_BARCODELIBRARY WHERE BARCODELIBRARY_ID = " + _BARCODELIBRARY_ID;
BarcodeLibrary = _OracleHelper.ExcuteSqlGetDataSet(str).Tables[0];
}
#endregion
}
}
catch (Exception ex)
{
LogHelper.WriteSendLog(ex.Message);
string SqlString = "SELECT * FROM HIGHWAY_EXCHANGE.T_BARCODESEARCH WHERE BARCODE = '" + Barcode + "'";
DataTable _DataTable = _OracleHelper.ExcuteSqlGetDataSet(SqlString).Tables[0];
if (_DataTable.Rows.Count == 0)
{
SqlString = @"INSERT INTO HIGHWAY_EXCHANGE.T_BARCODESEARCH (
BARCODESEARCH_ID,BARCODE,BARCODESEARCH_STATE,BARCODESEARCH_DATE)
VALUES (HIGHWAY_EXCHANGE.SEQ_BARCODESEARCH.NEXTVAL,'" + Barcode + "',0,SYSDATE)";
_OracleHelper.ExcuteSql(SqlString);
}
else
{
SqlString = @"UPDATE HIGHWAY_EXCHANGE.T_BARCODESEARCH
SET BARCODESEARCH_STATE = 0,BARCODESEARCH_DATE = SYSDATE
WHERE BARCODE = '" + Barcode + "'";
_OracleHelper.ExcuteSql(SqlString);
}
}
LogHelper.WriteSendLog("查询到的商品信息参数:商品条码(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.Timeout = 2 * 1000;//5s
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.WriteSendLog(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(_connectstring.Split(',')[0],
_connectstring.Split(',')[1], _connectstring.Split(',')[2], _connectstring.Split(',')[3]);
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 == "" ? "NULL" : COMMODITY_RETAILPRICE) + "," +
(COMMODITY_MEMBERPRICE == "" ? "NULL" : 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.WriteSendLog(_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.WriteSendLog(_Exception.Message);
//}
}
}
}
if (ListSQL.Count > 0)
{
try
{
_OracleHelper.ExecuteSqlTran(ListSQL);
}
catch (Exception _Exception)
{
LogHelper.WriteSendLog(_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 = CommonHelper.ConvertOraclTableToDoNetTable(JSonHelper.ToDataTable(Json));
if (_DataTable.Rows.Count > 0)
{
List<string> _ListSQL = new List<string>();
OracleHelper _OracleHelper = new OracleHelper(_connectstring.Split(',')[0],
_connectstring.Split(',')[1], _connectstring.Split(',')[2], _connectstring.Split(',')[3]);
//判断上传数据类型并生产相应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 (" + CommonHelper.SqlColumns(_DataTable) +
") VALUES (" + CommonHelper.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 (" + CommonHelper.SqlColumns(_DataTable) +
") VALUES (" + CommonHelper.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 ( " + CommonHelper.SqlColumns(_DataTable) +
") VALUES (" + CommonHelper.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 ( " + CommonHelper.SqlColumns(_DataTable) +
") VALUES (" + CommonHelper.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 ( " + CommonHelper.SqlColumns(_DataTable) +
") VALUES (" + CommonHelper.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 ( " + CommonHelper.SqlColumns(_DataTable) +
") VALUES (" + CommonHelper.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.WriteSendLog(ex.Message);
}
}
else
{
_Result = "9";
}
}
else
{
_Result = "9";
}
return _Result;
}
#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>
/// <param name="ROWNUM">盘点详情最大行序号</param>
/// <param name="ROWCOUNT">单次获取数量</param>
/// <returns></returns>
public string CreateCheckBill(string SERVERPART_CODE, string SERVERPARTSHOP_CODE, string CHECKDATE,
string CHECKPERSON, string CHECKSTATE, string ROWNUM, string ROWCOUNT)
{
string Str = "", SERVERPART_ID = "", SERVERPARTSHOP_ID = "", SQL_STARTDATE = "", CHECKCOMMODITY_ID = "", _Result = "";
int _Rownum = 0, _RowCount = 0;
int.TryParse(ROWNUM, out _Rownum);
int.TryParse(ROWCOUNT, out _RowCount);
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)(CommonHelper.ResCode_Check.)).ToString();
_PayQueryResult.trade_no = "";
_PayQueryResult.trade_num = "";
_PayQueryResult.result_code = ((int)(CommonHelper.ResCode_Check.)).ToString();
_PayQueryResult.result_desc = "门店不存在";
}
//判断门店在办业务
Str = "SELECT 1 FROM SALESTORE_STORAGE.T_SERVERPARTSTOCK@HWS 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)(CommonHelper.ResCode_Check.退)).ToString();
_PayQueryResult.trade_no = "";
_PayQueryResult.trade_num = "";
_PayQueryResult.result_code = ((int)(CommonHelper.ResCode_Check.退)).ToString();
_PayQueryResult.result_desc = "门店存在调拨退货业务";
}
else
{
//判断门店是否在盘存
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];
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
{
if (_Rownum <= 0)
{
Str = "SELECT 1 FROM SALESTORE_STORAGE.T_CHECKCOMMODITYDETAIL@HWS WHERE CHECKCOMMODITY_ID = " +
"(SELECT CHECKCOMMODITY_ID FROM SALESTORE_STORAGE.T_CHECKCOMMODITY@HWS 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 = dt.Rows.Count.ToString();
_PayQueryResult.result_code = ((int)(CommonHelper.ResCode_Check.)).ToString();
_PayQueryResult.result_desc = "创建成功";
}
else
{
_PayQueryResult.trade_no = "";
_PayQueryResult.trade_num = "";
_PayQueryResult.result_code = ((int)(CommonHelper.ResCode_Check.)).ToString();
_PayQueryResult.result_desc = "盘点明细正在生成,请稍候......";
}
}
else
{
Str = @"SELECT 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
FROM (SELECT ROWNUM AS RN,A.*
FROM SALESTORE_STORAGE.T_CHECKCOMMODITYDETAIL@HWS A,SALESTORE_STORAGE.T_CHECKCOMMODITY@HWS B
WHERE A.CHECKCOMMODITY_ID = B.CHECKCOMMODITY_ID AND B.SERVERPART_ID = " + SERVERPART_ID +
" AND B.CHECK_STATE = 0 AND B.SERVERPARTSHOP_ID = " + SERVERPARTSHOP_ID +
" AND B.CHECKDATE = TO_DATE('" + CHECKDATE +
"','YYYY/MM/DD HH24:MI:SS') ORDER BY A.CHECKCOMMODITYDETAIL_ID ) WHERE RN > " +
(_Rownum >= _RowCount ? (_Rownum - _RowCount) : 0) + " AND RN <= " + _Rownum;
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)(CommonHelper.ResCode_Check.)).ToString();
_PayQueryResult.result_desc = "创建成功";
}
else
{
_PayQueryResult.trade_no = "";
_PayQueryResult.trade_num = "";
_PayQueryResult.result_code = ((int)(CommonHelper.ResCode_Check.)).ToString();
_PayQueryResult.result_desc = "盘点明细正在生成,请稍候......";
}
}
}
}
else
{
_Result = ((int)(CommonHelper.ResCode_Check.)).ToString();
_PayQueryResult.trade_no = "";
_PayQueryResult.trade_num = "";
_PayQueryResult.result_code = ((int)(CommonHelper.ResCode_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@HWS B WHERE A.SERVERPARTSHOP_ID = B.SERVERPARTSHOP_ID)";
dt = _OracleHelperDownLoad.ExcuteSqlGetDataSet(Str).Tables[0];
if (dt.Rows.Count > 0 && _ValidationType != "0")
{
_Result = ((int)(CommonHelper.ResCode_Check.)).ToString();
_PayQueryResult.trade_no = "";
_PayQueryResult.trade_num = "";
_PayQueryResult.result_code = ((int)(CommonHelper.ResCode_Check.)).ToString();
_PayQueryResult.result_desc = "有未校验的结账信息";
}
else
{
//判断是否有未扣除的单品
Str = "SELECT 1 FROM SALESTORE_STORAGE.V_COMMODITYSALESEARCH@HWS 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)(CommonHelper.ResCode_Check.)).ToString();
_PayQueryResult.trade_no = "";
_PayQueryResult.trade_num = "";
_PayQueryResult.result_code = ((int)(CommonHelper.ResCode_Check.)).ToString();
_PayQueryResult.result_desc = "有未扣除库存的单品信息";
}
else
{
//获取盘存单内码
Str = "SELECT SALESTORE_STORAGE.SEQ_CHECKCOMMODITY.NEXTVAL@HWS FROM dual";
CHECKCOMMODITY_ID = _OracleHelperDownLoad.ExcuteSqlGetDataSet(Str).Tables[0].Rows[0][0].ToString();
Str = @"INSERT INTO SALESTORE_STORAGE.T_CHECKCOMMODITY@HWS (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@HWS SET OPERATE_STATE = 2000 WHERE SERVERPART_ID = " +
SERVERPART_ID + " AND SERVERPARTSHOP_ID = " + SERVERPARTSHOP_ID + " AND OPERATE_STATE != 8000";
_OracleHelperDownLoad.ExcuteSql(Str);
//将插入的主单放入DataTable
Str = "SELECT * FROM SALESTORE_STORAGE.T_CHECKCOMMODITY@HWS 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
if (_Rownum > 0)
{
Str = @"SELECT 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
FROM ( SELECT ROWNUM AS RN,A.* FROM SALESTORE_STORAGE.T_CHECKCOMMODITYDETAIL@HWS A
WHERE A.CHECKCOMMODITY_ID = " + CHECKCOMMODITY_ID +
" ORDER BY A.CHECKCOMMODITYDETAIL_ID ) WHERE RN > " +
(_Rownum >= _RowCount ? (_Rownum - _RowCount) : 0) + " AND RN <= " + _Rownum;
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)(CommonHelper.ResCode_Check.)).ToString();
_PayQueryResult.result_desc = "创建成功";
}
else
{
_PayQueryResult.trade_no = "";
_PayQueryResult.trade_num = "";
_PayQueryResult.result_code = ((int)(CommonHelper.ResCode_Check.)).ToString();
_PayQueryResult.result_desc = "盘点明细正在生成,请稍候";
}
}
else
{
Str = "SELECT 1 FROM SALESTORE_STORAGE.T_CHECKCOMMODITYDETAIL@HWS WHERE CHECKCOMMODITY_ID = " +
CHECKCOMMODITY_ID;
dt = _OracleHelperDownLoad.ExcuteSqlGetDataSet(Str, "T_CHECKCOMMODITYDETAIL").Tables[0];
if (dt.Rows.Count > 0)
{
_PayQueryResult.trade_num = dt.Rows.Count.ToString();
_PayQueryResult.result_code = ((int)(CommonHelper.ResCode_Check.)).ToString();
_PayQueryResult.result_desc = "创建成功";
}
else
{
_PayQueryResult.trade_no = "";
_PayQueryResult.trade_num = "";
_PayQueryResult.result_code = ((int)(CommonHelper.ResCode_Check.)).ToString();
_PayQueryResult.result_desc = "盘点明细正在生成,请稍候";
}
}
}
}
}
}
}
}
catch (Exception ex)
{
LogHelper.WriteReceiveLog(ex.Message + "[" + Str + "]");
_Result = ((int)(CommonHelper.ResCode_Check.)).ToString();
_PayQueryResult.trade_no = "";
_PayQueryResult.trade_num = "";
_PayQueryResult.result_code = ((int)(CommonHelper.ResCode_Check.)).ToString();
_PayQueryResult.result_desc = ex.Message;
}
LogHelper.WriteReceiveLog("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
/// <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(_OracleHelperStringsp.Split(',')[0],
_OracleHelperStringsp.Split(',')[1], _OracleHelperStringsp.Split(',')[2], _OracleHelperStringsp.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 (" + CommonHelper.SqlColumns(_DataTable) +
") VALUES (" + CommonHelper.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 (" + CommonHelper.SqlColumns(_DataTable) +
") VALUES (" + CommonHelper.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.WriteSendLog(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(_connectstring.Split(',')[0],
_connectstring.Split(',')[1], _connectstring.Split(',')[2], _connectstring.Split(',')[3]);
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.WriteSendLog(ex.ToString());
}
return "";
}
#endregion
#region
[WebMethod]
/// <summary>
/// 发票查验参数
/// </summary>
/// <param name="fpdm">发票代码</param>
/// <param name="fphm">发票号码</param>
/// <param name="kprq">开票日期</param>
/// <param name="je">金额(非专票随便填个值)</param>
/// <param name="jym">校验码后六位(专票随便填个值)</param>
/// <param name="appkey">账号秘钥</param>
public string BillInfoQuery(string fpdm, string fphm, string kprq, string je, string jym, string appkey, string BillType)
{
DataTable BillInfo = null;
OracleHelper _OracleHelper = new OracleHelper();
try
{
_OracleHelper = new OracleHelper(_OracleHelperString.Split(',')[0],
_OracleHelperString.Split(',')[1], _OracleHelperString.Split(',')[2], _OracleHelperString.Split(',')[3]);
string str = @"SELECT * FROM HIGHWAY_EXCHANGE.T_BILLINFO WHERE BILL_FPDM = '" + fpdm +
"' AND BILL_FPHM = '" + fphm + "' AND BILL_KPRQ = '" + kprq + (BillType == "1" ?
"' AND BILLJE = '" + je + "'" : "' AND BILLJYM = '" + jym + "'");
BillInfo = _OracleHelper.ExcuteSqlGetDataSet(str).Tables[0];
if (BillInfo.Rows.Count > 0)
{
_OracleHelper.ExcuteSql("UPDATE HIGHWAY_EXCHANGE.T_BILLINFO SET SCAN_COUNT = SCAN_COUNT + 1 WHERE BILLINFO_ID = " +
BillInfo.Rows[0]["BILLINFO_ID"].ToString());
LogHelper.WriteSendLog("查询到的票据信息参数:发票代码(fpdm):" + fpdm + ",发票号码(fphm):" + fphm +
",开票日期(kprq):" + kprq + ",金额(je):" + je + ",校验码后六位(jym):" + jym + ",账号秘钥(appkey):" + appkey +
",数据返回值:" + JSonHelper.DataTableToJson(BillInfo, "BillInfo"));
return JSonHelper.DataTableToJson(BillInfo, "BillInfo");
}
else
{
#region
JObject _JObject = GetBillInfo(fpdm, fphm, kprq, je, jym, appkey);
if (_JObject != null && _JObject["code"].ToString() == "10000" && _JObject["result"]["data"] != null)
{
string _BILL_JQBM = "", _BILL_XFZH = "", _BILL_GFSH = "", _BILL_GFMC = "", _BILL_GFDZ = "",
_BILL_SPXX = "", _BILL_BZ = "", _BILL_XFSH = "", _BILL_JE = "", _BILL_XFMC = "",
_BILL_XFDZ = "", _BILL_GFZH = "", _BILL_ZFBZ = "", _BILL_JYM = "", _BILL_STATUS = "";
#region
try
{
_BILL_JQBM = _JObject["result"]["data"]["jqbm"].ToString();
}
catch { }
try
{
_BILL_XFZH = _JObject["result"]["data"]["xfzh"].ToString();
}
catch { }
try
{
_BILL_GFSH = _JObject["result"]["data"]["gfsh"].ToString();
}
catch { }
try
{
_BILL_GFMC = _JObject["result"]["data"]["gfmc"].ToString();
}
catch { }
try
{
_BILL_GFDZ = _JObject["result"]["data"]["gfdz"].ToString();
}
catch { }
try
{
_BILL_SPXX = _JObject["result"]["data"]["spxx"].ToString();
}
catch { }
try
{
_BILL_BZ = _JObject["result"]["data"]["bz"].ToString();
}
catch { }
try
{
_BILL_XFSH = _JObject["result"]["data"]["xfsh"].ToString();
}
catch { }
try
{
_BILL_JE = _JObject["result"]["data"]["je"].ToString();
}
catch { }
try
{
_BILL_XFMC = _JObject["result"]["data"]["xfmc"].ToString();
}
catch { }
try
{
_BILL_XFDZ = _JObject["result"]["data"]["xfdz"].ToString();
}
catch { }
try
{
_BILL_GFZH = _JObject["result"]["data"]["gfzh"].ToString();
}
catch { }
try
{
_BILL_ZFBZ = _JObject["result"]["data"]["zfbz"].ToString();
}
catch { }
try
{
_BILL_JYM = _JObject["result"]["data"]["jym"].ToString();
}
catch { }
try
{
_BILL_STATUS = _JObject["result"]["data"]["status"].ToString();
}
catch { }
#endregion
string _BILLINFO_ID = _OracleHelper.ExcuteSqlGetDataSet(
"SELECT HIGHWAY_EXCHANGE.SEQ_BILLINFO.NEXTVAL FROM DUAL").Tables[0].Rows[0][0].ToString();
string SqlString = @"INSERT INTO HIGHWAY_EXCHANGE.T_BILLINFO (BILLINFO_ID,BILL_FPDM,BILL_FPHM,
BILL_KPRQ,BILLJE,BILLJYM,BILL_JQBM,BILL_XFZH,BILL_GFSH,BILL_GFMC,BILL_GFDZ,BILL_SPXX,
BILL_BZ,BILL_XFSH,BILL_JE,BILL_XFMC,BILL_XFDZ,BILL_GFZH,BILL_ZFBZ,BILL_JYM,BILL_STATUS,
OPERATE_DATE,SCAN_COUNT)
VALUES (" + _BILLINFO_ID + ",'" + fpdm + "','" + fphm + "','" + kprq + "','" + je + "','" +
jym + "','" + _BILL_JQBM + "','" + _BILL_XFZH + "','" + _BILL_GFSH + "','" +
_BILL_GFMC + "','" + _BILL_GFDZ + "','" + _BILL_SPXX + "','" + _BILL_BZ + "','" +
_BILL_XFSH + "','" + _BILL_JE + "','" + _BILL_XFMC + "','" + _BILL_XFDZ + "','" +
_BILL_GFZH + "','" + _BILL_ZFBZ + "','" + _BILL_JYM + "','" + _BILL_STATUS + "',SYSDATE,1)";
_OracleHelper.ExcuteSql(SqlString);
SqlString = @"SELECT * FROM HIGHWAY_EXCHANGE.T_BILLINFO WHERE BILLINFO_ID = " + _BILLINFO_ID;
BillInfo = _OracleHelper.ExcuteSqlGetDataSet(SqlString).Tables[0];
}
#endregion
}
}
catch (Exception ex)
{
LogHelper.WriteSendLog(ex.Message);
}
LogHelper.WriteSendLog("查询到的票据信息参数:发票代码(fpdm):" + fpdm + ",发票号码(fphm):" + fphm +
",开票日期(kprq):" + kprq + ",金额(je):" + je + ",校验码后六位(jym):" + jym + ",账号秘钥(appkey):" + appkey +
",数据返回值:" + JSonHelper.DataTableToJson(BillInfo, "BillInfo"));
return BillInfo == null ? "" : JSonHelper.DataTableToJson(BillInfo, "BillInfo").ToString();
}
protected JObject GetBillInfo(string fpdm, string fphm, string kprq, string je, string jym, string appkey)
{
string url = "https://way.jd.com/YiHeKeJi/fapiaochayan?fpdm=" + fpdm + "&fphm=" + fphm +
"&kprq=" + kprq + "&je=" + je + "&jym=" + jym + "&appkey=" + appkey;
//根据url创建HttpWebRequest对象
HttpWebRequest objRequest = (HttpWebRequest)WebRequest.Create(url);
objRequest.Method = "get";
//读取服务器返回信息
HttpWebResponse objResponse = (HttpWebResponse)objRequest.GetResponse();
//using作为语句用于定义一个范围在此范围的末尾将释放对象
using (StreamReader sr = new StreamReader(objResponse.GetResponseStream()))
{
//ReadToEnd适用于小文件的读取一次性的返回整个文件
JObject _JObject = (JObject)JsonConvert.DeserializeObject(sr.ReadToEnd());
sr.Close();
return _JObject;
}
}
#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);
//LogHelper.WriteSendLog("人脸识别:" + JsonConvert.SerializeObject(identifyInfo));
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(_connectstring.Split(',')[0],
_connectstring.Split(',')[1], _connectstring.Split(',')[2], _connectstring.Split(',')[3]);
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.WriteSendLog(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(_connectstring.Split(',')[0],
_connectstring.Split(',')[1], _connectstring.Split(',')[2], _connectstring.Split(',')[3]);
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.WriteSendLog(ex.ToString());
}
return "";
}
#endregion
#region ->
[WebMethod]
public string get_user_list()
{
DataTable USER_List = null;
try
{
OracleHelper _OracleHelper = new OracleHelper(_connectstring.Split(',')[0],
_connectstring.Split(',')[1], _connectstring.Split(',')[2], _connectstring.Split(',')[3]);
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.WriteSendLog(ex.ToString());
}
return "";
}
#endregion
#region ->
[WebMethod]
public string get_usertype_list()
{
DataTable USER_List = null;
try
{
OracleHelper _OracleHelper = new OracleHelper(_connectstring.Split(',')[0],
_connectstring.Split(',')[1], _connectstring.Split(',')[2], _connectstring.Split(',')[3]);
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.WriteSendLog(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
{
OracleHelper _OracleHelper = new 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)
{
LogHelper.WriteSendLog("线上订单下发失败:" + ex.Message);
return "";
}
}
/// <summary>
/// 获取订单详情
/// </summary>
/// <param name="SaleBillID">主订单内码</param>
/// <returns></returns>
[WebMethod]
public string GetOnlineOrderDetail(string SaleBillID)
{
try
{
OracleHelper _OracleHelper = new 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)
{
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)
{
OracleHelper _OracleHelper = new OracleHelper(_connectstring.Split(',')[0],
_connectstring.Split(',')[1], _connectstring.Split(',')[2], _connectstring.Split(',')[3]);
if (string.IsNullOrEmpty(PrintDate))
{
PrintDate = DateTime.Now.ToString();
}
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(_connectstring.Split(',')[0],
_connectstring.Split(',')[1], _connectstring.Split(',')[2], _connectstring.Split(',')[3]);
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
{
OracleHelper _OracleHelper = new OracleHelper(_connectstring.Split(',')[0],
_connectstring.Split(',')[1], _connectstring.Split(',')[2], _connectstring.Split(',')[3]);
return WebService.SDK.PayCommon.MobilePayConfig.ShopPaymentConfig(_OracleHelper, serverPartCode, businessType);
}
catch (Exception ex)
{
return ex.Message;
}
}
#endregion
#region ->
/// <summary>
/// 收银机反馈通用接口
/// </summary>
/// <param name="feedbackType">反馈类型:
/// StateFeedback、BaseInfoFeedback</param>
/// <param name="jsonData">json数据字符串</param>
/// <returns></returns>
[WebMethod]
public string FeedbackUpload(string feedbackType, string jsonData)
{
if (string.IsNullOrWhiteSpace(feedbackType))
{
return Newtonsoft.Json.JsonConvert.SerializeObject(
new WebService.SDK.FeedbackResult<string>()
{
ResultCode = 305,
ResultDesc = "上报类型错误"
});
}
try
{
WebService.SDK.OracleHelper _OracleHelper = new WebService.SDK.OracleHelper(_connectstring.Split(',')[0],
_connectstring.Split(',')[1], _connectstring.Split(',')[2], _connectstring.Split(',')[3]);
return Newtonsoft.Json.JsonConvert.SerializeObject(
new WebService.SDK.FeedbackHelper().Feedback(
_OracleHelper, feedbackType, jsonData));
}
catch (Exception ex)
{
return Newtonsoft.Json.JsonConvert.SerializeObject(
new WebService.SDK.FeedbackResult<string>()
{
ResultCode = 999,
ResultDesc = $"系统异常:{ex.Message}"
});
}
}
#endregion
#region ->
/// <summary>
/// 收银机状态反馈通用下载接口
/// </summary>
/// <param name="readType">下载类型:
/// CommodityMachine</param>
/// <param name="jsonData">设备信息Json数据字符串</param>
/// <returns></returns>
[WebMethod]
public string FeedbackDownload(string readType, string jsonData)
{
if (string.IsNullOrWhiteSpace(readType))
{
return Newtonsoft.Json.JsonConvert.SerializeObject(
new WebService.SDK.FeedbackResult<string>()
{
ResultCode = 305,
ResultDesc = "下载类型错误"
});
}
try
{
WebService.SDK.OracleHelper _OracleHelper = new WebService.SDK.OracleHelper(
_connectstring.Split(',')[0], _connectstring.Split(',')[1], _connectstring.Split(',')[2], _connectstring.Split(',')[3]);
return new WebService.SDK.FeedbackHelper().DataRead(_OracleHelper, readType, jsonData);
}
catch (Exception ex)
{
return Newtonsoft.Json.JsonConvert.SerializeObject(
new WebService.SDK.FeedbackResult<string>()
{
ResultCode = 999,
ResultDesc = $"系统异常:{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 (Exception ex)
{
LogHelper.WriteSendLog("赠礼记录失败:" + ex.Message);
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.WriteSendLog("赠礼剩余数量获取失败:" + 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(_connectstring.Split(',')[0],
_connectstring.Split(',')[1], _connectstring.Split(',')[2], _connectstring.Split(',')[3]);
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("&nbsp;", "");
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("&nbsp;", "");
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
#region ->
/// <summary>
/// 调用第三方移动支付接口
/// </summary>
/// <param name="requestURL"></param>
/// <param name="postData"></param>
/// <param name="contentType"></param>
/// <returns></returns>
[WebMethod]
public string MobilePayProxy(string requestURL, string postData, string contentType)
{
if (string.IsNullOrWhiteSpace(contentType))
{
contentType = "application/x-www-form-urlencoded";
}
return CommonHelper.HttpUrlPost(postData, requestURL, contentType);
}
#endregion
/// <summary>
/// 高速能源券核销专用转发接口
/// </summary>
/// <param name="parameter">接口参数集合</param>
/// <returns></returns>
[WebMethod]
public string GsnyCoupon(string parameter)
{
string url = ConfigurationManager.AppSettings["GsnyCoupon"];
Hashtable hashtable = JsonConvert.DeserializeObject<Hashtable>(parameter);
return SoapWSHelper.QuerySoapWebServiceString(url, "MobilePayProxy", hashtable);
}
}
}