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

3080 lines
175 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 Newtonsoft.Json;
using Newtonsoft.Json.Linq;
using System;
using System.Collections;
using System.Collections.Generic;
using System.Configuration;
using System.Data;
using System.Drawing;
using System.IO;
using System.Linq;
using System.Net;
using System.Net.NetworkInformation;
using System.Net.Security;
using System.Security.Cryptography.X509Certificates;
using System.Text;
using System.Text.RegularExpressions;
using System.Web;
using System.Web.Services;
using WebService.SDK;
using WebService.SDK.BaiduAI;
using WebService.SDK.BaiduAI.Model.FaceModel;
using WebService.SDK.IRichPay;
using WebService.SDK.IRichPay.Model;
using WebService.SDK.PayCommon;
namespace IRichPayService
{
/// <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 _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 const string key = "9d101c97133837e13dde2d32a5054abb";
//版本号,固定不变,无需修改
//protected const string version = "2.0";
//服务区编码
protected static string ServerPartCode = ConfigurationManager.AppSettings["SERVERPARTCODE"].ToString();
//服务区、门店编码
protected static string[] ShopCode = ConfigurationManager.AppSettings["ShopCode"].ToString().Split(',');
//商户号
protected static string[] Business_Code = ConfigurationManager.AppSettings["Business_Code"].ToString().Split(',');
//商户密钥
protected static string[] term_Code = ConfigurationManager.AppSettings["term_Code"].ToString().Split(',');
//接口请求地址,固定不变,无需修改
protected const string ApiURL = "http://h5.irichpay.com/Api/NormPay.ashx";
//接口机构号,固定不变,无需修改
protected const string ApiOrganization = "110000826";
//接口UserCode固定不变无需修改
protected const string ApiAPPID = "11000040";
//接口签名密钥,固定不变,无需修改
protected const string ApiKey = "5b834abdba1b4bb1";
//阿里云商品库
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 = "服务区商品")
{
PayQueryResult _PayQueryResult = new PayQueryResult();
if (string.IsNullOrEmpty(TICKETCODE) || string.IsNullOrEmpty(ServerPartCode) ||
!ServerPartCode.Contains(TICKETCODE.Substring(0, 6)))
{
_PayQueryResult.result_code = ((int)(CommonHelper.ResCode.)).ToString();
_PayQueryResult.result_desc = "参数配置异常,服务区不匹配!";
_PayQueryResult.trade_no = "";
_PayQueryResult.trade_num = TICKETCODE;
return JsonConvert.SerializeObject(_PayQueryResult);
}
//获取交易时间
string _strPayTime = TICKETCODE.Substring(TICKETCODE.Length - 14, 14);
if (!DateTime.TryParseExact(_strPayTime, "yyyyMMddHHmmss",
System.Globalization.CultureInfo.InvariantCulture,
System.Globalization.DateTimeStyles.None, out DateTime _PayTime))
{
_PayQueryResult.result_code = ((int)(CommonHelper.ResCode.)).ToString();
_PayQueryResult.result_desc = $"订单号:{TICKETCODE} 格式错误!";
_PayQueryResult.trade_no = "";
_PayQueryResult.trade_num = "";
return JsonConvert.SerializeObject(_PayQueryResult);
}
string _strPayOutTime = _PayTime.AddMinutes(5).ToString("yyyyMMddHHmmss");
//string PayOutTime = DateTime.Parse(_strPayTime.Substring(0, 4) + "/" + _strPayTime.Substring(4, 2) + "/" +
// _strPayTime.Substring(6, 2) + " " + _strPayTime.Substring(8, 2) + ":" + _strPayTime.Substring(10, 2) + ":" +
// _strPayTime.Substring(12, 2)).AddMinutes(5).ToString("yyyyMMddHHmmss");
string _strUserHostAddress = "";
if (string.IsNullOrEmpty(_strUserHostAddress) || !CommonHelper.IsIP(_strUserHostAddress))
{
_strUserHostAddress = "127.0.0.1";
}
LogHelper.WriteReceiveLog("接收到的参数:订单编码(TICKETCODE):" + TICKETCODE + ",金额(TICKETPRICE):" + TICKETPRICE +
"," + CommonHelper.GetPayType(PAYTYPE) + "用户编码(USERPAYCODE):" + USERPAYCODE);
if (!Directory.Exists(AppDomain.CurrentDomain.BaseDirectory + "\\ErrorLog\\" + DateTime.Now.ToString("yyyyMMdd")))
{
Directory.CreateDirectory(AppDomain.CurrentDomain.BaseDirectory + "\\ErrorLog\\" + DateTime.Now.ToString("yyyyMMdd"));
}
CommonHelper.SaveTextFile("ErrorLog\\" + DateTime.Now.ToString("yyyyMMdd") + "\\" + TICKETCODE + ".txt", "");
//初始化支付接口连接参数
IRichPayConfig _PayConfig = new IRichPayConfig(ApiAPPID, ApiKey, ApiOrganization, ApiURL);
MobilePayConfig.PayMerchant payMerchant = GetMerchantInfo(TICKETCODE);
//return IRichPayAPI.BeScan(_PayConfig, payMerchant, USERPAYCODE, TICKETCODE, TICKETPRICE);
try
{
//创建交易并返回结果
IRichPayResultModel _IRichPayResult = IRichPayAPI.BeScanPay(
_PayConfig, payMerchant, USERPAYCODE, TICKETCODE, TICKETPRICE);
if (_IRichPayResult != null)
{
switch (_IRichPayResult.status)
{
case "00":
_PayQueryResult.result_code = ((int)CommonHelper.ResCode.).ToString();
_PayQueryResult.trade_no = _IRichPayResult.data.orderid;
_PayQueryResult.trade_num = _IRichPayResult.data.orderid;
_PayQueryResult.result_desc = "SUCCESS";
break;
case "01":
_PayQueryResult.result_code = ((int)CommonHelper.ResCode.).ToString();
_PayQueryResult.trade_no = "";
_PayQueryResult.trade_num = TICKETCODE;
_PayQueryResult.result_desc = _IRichPayResult.data.tips;
break;
case "500":
_PayQueryResult.result_code = ((int)CommonHelper.ResCode.).ToString();
_PayQueryResult.trade_no = _IRichPayResult.data.orderid;
_PayQueryResult.trade_num = TICKETCODE;
_PayQueryResult.result_desc = _IRichPayResult.data.tips;
break;
}
}
else
{
_PayQueryResult.result_code = ((int)CommonHelper.ResCode.).ToString();
_PayQueryResult.trade_no = "";
_PayQueryResult.trade_num = TICKETCODE;
_PayQueryResult.result_desc = "该门店未配置商户号信息";
}
}
catch (Exception ex)
{
_PayQueryResult.result_code = ((int)CommonHelper.ResCode.).ToString();
_PayQueryResult.trade_no = "";
_PayQueryResult.trade_num = TICKETCODE;
_PayQueryResult.result_desc = ex.Message;
LogHelper.WriteSendLog(ex.Message);
}
try
{
if (!Directory.Exists(AppDomain.CurrentDomain.BaseDirectory + "\\InsertData"))
{
Directory.CreateDirectory(AppDomain.CurrentDomain.BaseDirectory + "\\InsertData");
}
CommonHelper.SaveTextFile("InsertData\\" + TICKETCODE + ".txt", TICKETCODE + "|" + PAYTYPE + "|" + TICKETPRICE + "|" +
_PayQueryResult.result_code + "|" + _PayQueryResult.result_desc + "|" + _PayQueryResult.trade_no + "|" +
_PayQueryResult.trade_num + "|" + JsonConvert.SerializeObject(_PayQueryResult) +
"|" + ((int)CommonHelper.MobilePayOperators.irichpay).ToString());
}
catch (Exception ex)
{
LogHelper.WriteReceiveLog(ex.Message);
}
LogHelper.WriteSendLog("接收到的参数:订单编码(TICKETCODE):" + TICKETCODE + ",金额(TICKETPRICE):" + TICKETPRICE +
"," + CommonHelper.GetPayType(PAYTYPE) + "付款编码(USERPAYCODE):" + USERPAYCODE +
",商户编码(memberCode):" + payMerchant.MerchantCode + ",商户秘钥(term_Code):" + payMerchant.MerchantKey +
" 数据返回值:" + JsonConvert.SerializeObject(_PayQueryResult));
return JsonConvert.SerializeObject(_PayQueryResult);
}
#endregion
#region
[WebMethod]
/// <summary>
/// 查询参数
/// </summary>
/// <param name="TICKETCODE">交易订单号</param>
/// <param name="OUT_TRADE_NO">商户订单号</param>
/// <param name="TICKETPRICE">交易金额</param>
/// <param name="PAYTYPE">支付方式</param>
/// <param name="TotalCount">轮询次数</param>
/// <returns></returns>
public string querypaynew(string TICKETCODE, string OUT_TRADE_NO, string TICKETPRICE, string PAYTYPE = "ALIPAY", int TotalCount = 6)
{
PayQueryResult _PayQueryResult = new PayQueryResult();
if (string.IsNullOrEmpty(TICKETCODE) || string.IsNullOrEmpty(ServerPartCode) ||
!ServerPartCode.Contains(TICKETCODE.Substring(0, 6)))
{
_PayQueryResult.result_code = ((int)(CommonHelper.ResCode.)).ToString();
_PayQueryResult.trade_no = "";
_PayQueryResult.trade_num = TICKETCODE;
_PayQueryResult.result_desc = "参数配置异常,服务区不匹配!";
return JsonConvert.SerializeObject(_PayQueryResult);
}
//获取交易时间
string _strPayTime = TICKETCODE.Substring(TICKETCODE.Length - 14, 14);
//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("接收到的参数:订单编码(TICKETCODE):" + TICKETCODE + ",平台订单号(OUT_TRADE_NO):" + OUT_TRADE_NO +
",金额(TICKETPRICE):" + TICKETPRICE + ",支付方式(USERPAYCODE):" + CommonHelper.GetPayType(PAYTYPE));
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", "");
IRichPayConfig _PayConfig = new IRichPayConfig(ApiAPPID, ApiKey, ApiOrganization, ApiURL);
MobilePayConfig.PayMerchant payMerchant = GetMerchantInfo(TICKETCODE);
//IRichPayAPI.QueryPay(_PayConfig, payMerchant, TICKETCODE, OUT_TRADE_NO, TICKETPRICE);
try
{
IRichPayResultModel _QueryResult = IRichPayAPI.QueryPay(_PayConfig, payMerchant, TICKETCODE, OUT_TRADE_NO, TICKETPRICE);
if (_QueryResult != null)
{
if (_QueryResult.status == "00")
{
switch (_QueryResult.data.orderstatus)
{
case "2":
_PayQueryResult.result_code = ((int)CommonHelper.ResCode.).ToString();
_PayQueryResult.trade_no = _QueryResult.data.orderid;
_PayQueryResult.trade_num = _QueryResult.data.orderid;
_PayQueryResult.result_desc = "SUCCESS";
break;
case "1":
LogHelper.WriteSendLog("(" + TICKETCODE + ")等待支付中......");
_PayQueryResult.result_code = ((int)CommonHelper.ResCode.).ToString();
_PayQueryResult.trade_no = _QueryResult.data.orderid;
_PayQueryResult.trade_num = _QueryResult.data.orderid;
_PayQueryResult.result_desc = _QueryResult.data.tips;
break;
case "5":
_PayQueryResult.result_code = ((int)CommonHelper.ResCode.).ToString();
_PayQueryResult.trade_no = _QueryResult.data.orderid;
_PayQueryResult.trade_num = _QueryResult.data.orderid;
_PayQueryResult.result_desc = _QueryResult.data.tips;
break;
case "4":
case "7":
_PayQueryResult.result_code = ((int)CommonHelper.ResCode.).ToString();
_PayQueryResult.trade_no = _QueryResult.data.orderid;
_PayQueryResult.trade_num = _QueryResult.data.orderid;
_PayQueryResult.result_desc = _QueryResult.data.tips;
break;
case "3":
default:
_PayQueryResult.result_code = ((int)CommonHelper.ResCode.).ToString();
_PayQueryResult.trade_no = _QueryResult.data.orderid;
_PayQueryResult.trade_num = _QueryResult.data.orderid;
_PayQueryResult.result_desc = _QueryResult.data.tips;
break;
}
}
else
{
_PayQueryResult.result_code = ((int)CommonHelper.ResCode.).ToString();
_PayQueryResult.result_desc = _QueryResult.msg;
_PayQueryResult.trade_no = "";
_PayQueryResult.trade_num = TICKETCODE;
}
}
else
{
_PayQueryResult.result_code = ((int)CommonHelper.ResCode.).ToString();
_PayQueryResult.result_desc = "该门店未配置商户号信息";
_PayQueryResult.trade_no = "";
_PayQueryResult.trade_num = TICKETCODE;
}
}
catch (Exception ex)
{
_PayQueryResult.result_code = ((int)CommonHelper.ResCode.).ToString();
_PayQueryResult.result_desc = ex.Message;
_PayQueryResult.trade_no = "";
_PayQueryResult.trade_num = TICKETCODE;
LogHelper.WriteSendLog(ex.Message);
}
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 + "|" + _PayQueryResult.result_code +
"|" + _PayQueryResult.result_desc + "|" + _PayQueryResult.trade_no + "|" +
_PayQueryResult.trade_num + "|" + JsonConvert.SerializeObject(_PayQueryResult) +
"|" + ((int)CommonHelper.MobilePayOperators.irichpay).ToString());
//更新缓存记录,写入移动支付交易订单信息
if (!_MobilePayList.Contains(TICKETCODE))
{
_MobilePayList.Add(TICKETCODE);
CacheHelper.Set("MobilePay", _MobilePayList);
}
}
}
catch (Exception ex)
{
LogHelper.WriteReceiveLog(ex.Message);
}
LogHelper.WriteSendLog("查询接收到的参数:订单编码(TICKETCODE):" + TICKETCODE +
",金额(TICKETPRICE):" + TICKETPRICE + ",付款方式:" + CommonHelper.GetPayType(PAYTYPE) +
",商户编码(memberCode):" + payMerchant.MerchantCode + ",商户秘钥(term_Code):" + payMerchant.MerchantKey +
" 数据返回值:" + JsonConvert.SerializeObject(_PayQueryResult));
return JsonConvert.SerializeObject(_PayQueryResult);
}
#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)
{
PayQueryResult _PayQueryResult = new PayQueryResult();
if (string.IsNullOrEmpty(refund_order_no) || string.IsNullOrEmpty(ServerPartCode) ||
!ServerPartCode.Contains(refund_order_no.Substring(0, 6)))
{
_PayQueryResult.result_code = ((int)(CommonHelper.ResCode.)).ToString();
_PayQueryResult.result_desc = "参数配置异常,服务区不匹配!";
_PayQueryResult.trade_no = "";
_PayQueryResult.trade_num = refund_order_no;
return JsonConvert.SerializeObject(_PayQueryResult);
}
//获取交易时间
string _strPayTime = refund_order_no.Substring(refund_order_no.Length - 14, 14);
string _strPayOutTime = DateTime.ParseExact(_strPayTime, "yyyyMMddHHmmss",
System.Globalization.CultureInfo.InvariantCulture).AddMinutes(5).ToString("yyyyMMddHHmmss");
LogHelper.WriteReceiveLog("接收到的参数:订单编码(TICKETCODE):" + refund_order_no + ",退款金额(TICKETPRICE):" +
refund_amt + "," + CommonHelper.GetPayType(order_type) + "退款码(USERPAYCODE):" + mchnt_order_no);
if (!Directory.Exists(AppDomain.CurrentDomain.BaseDirectory + "\\ErrorLog\\" + DateTime.Now.ToString("yyyyMMdd")))
{
Directory.CreateDirectory(AppDomain.CurrentDomain.BaseDirectory + "\\ErrorLog\\" + DateTime.Now.ToString("yyyyMMdd"));
}
CommonHelper.SaveTextFile("ErrorLog\\" + DateTime.Now.ToString("yyyyMMdd") + "\\R" + refund_order_no + ".txt", "");
IRichPayConfig _PayConfig = new IRichPayConfig(ApiAPPID, ApiKey, ApiOrganization, ApiURL);
MobilePayConfig.PayMerchant payMerchant = GetMerchantInfo(refund_order_no);
try
{
IRichPayResultModel _RefundResult = IRichPayAPI.PayRefund(_PayConfig, payMerchant, mchnt_order_no, mchnt_order_no, refund_order_no, refund_amt);
if (_RefundResult != null)
{
switch (_RefundResult.status)
{
case "00":
case "02":
_PayQueryResult.result_code = ((int)CommonHelper.ResCode.).ToString();
_PayQueryResult.trade_no = _RefundResult.data.refundorderid;
_PayQueryResult.trade_num = refund_order_no;
_PayQueryResult.result_desc = "SUCCESS";
break;
//case "02":
//_PayQueryResult.result_code = ((int)CommonHelper.ResCode.转入退款).ToString();
//_PayQueryResult.trade_no = "";
//_PayQueryResult.trade_num = refund_order_no;
//_PayQueryResult.result_desc = _RefundResult.msg;
//break;
case "01":
default:
_PayQueryResult.result_code = ((int)CommonHelper.ResCode.).ToString();
_PayQueryResult.trade_no = "";
_PayQueryResult.trade_num = refund_order_no;
_PayQueryResult.result_desc = _RefundResult.data.tips;
break;
}
}
else
{
_PayQueryResult.result_code = ((int)CommonHelper.ResCode.).ToString();
_PayQueryResult.result_desc = "该门店未配置商户号信息";
_PayQueryResult.trade_no = "";
_PayQueryResult.trade_num = refund_order_no;
}
}
catch (Exception ex)
{
_PayQueryResult.result_code = ((int)CommonHelper.ResCode.).ToString();
_PayQueryResult.result_desc = ex.Message;
_PayQueryResult.trade_no = "";
_PayQueryResult.trade_num = refund_order_no;
LogHelper.WriteSendLog(ex.Message);
}
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 + "|" + JsonConvert.SerializeObject(_PayQueryResult) +
"|" + ((int)CommonHelper.MobilePayOperators.irichpay).ToString());
}
try
{
if (!Directory.Exists(AppDomain.CurrentDomain.BaseDirectory + "\\InsertData"))
{
Directory.CreateDirectory(AppDomain.CurrentDomain.BaseDirectory + "\\InsertData");
}
CommonHelper.SaveTextFile("InsertData\\R" + refund_order_no + ".txt",
refund_order_no + "|" + order_type + "|-" + refund_amt + "|" +
_PayQueryResult.result_code + "|" + _PayQueryResult.result_desc +
"|" + _PayQueryResult.trade_no + "|" + _PayQueryResult.trade_num +
"|" + JsonConvert.SerializeObject(_PayQueryResult) +
"|" + ((int)CommonHelper.MobilePayOperators.irichpay).ToString());
}
catch (Exception ex)
{
LogHelper.WriteReceiveLog(ex.Message);
}
LogHelper.WriteSendLog("接收到的退款参数:退款单号(refund_order_no):" + refund_order_no + ",退款金额(refund_amt):" +
refund_amt + "," + CommonHelper.GetPayType(order_type) + "订单编码(mchnt_order_no):" + mchnt_order_no +
",商户编码(memberCode):" + payMerchant.MerchantCode + ",商户秘钥(term_Code):" + payMerchant.MerchantKey +
" 数据返回值:" + JsonConvert.SerializeObject(_PayQueryResult));
return JsonConvert.SerializeObject(_PayQueryResult);
}
#endregion
#region 退
[WebMethod]
/// <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>
public string refundquery(string out_trade_no, string transaction_id, string out_refund_no, string refund_id,
string refund_amt, string order_type)
{
PayQueryResult _PayQueryResult = new PayQueryResult();
if (string.IsNullOrEmpty(out_refund_no) || string.IsNullOrEmpty(ServerPartCode) ||
!ServerPartCode.Contains(out_refund_no.Substring(0, 6)))
{
_PayQueryResult.result_code = ((int)(CommonHelper.ResCode.)).ToString();
_PayQueryResult.result_desc = "参数配置异常,服务区不匹配!";
_PayQueryResult.trade_no = "";
_PayQueryResult.trade_num = "";
return JsonConvert.SerializeObject(_PayQueryResult);
}
LogHelper.WriteReceiveLog("退款查询接收到的参数:订单编码(TICKETCODE):" + out_refund_no + ",平台退款单号(REFUND_ID):" + refund_id +
",支付方式(USERPAYCODE):" + CommonHelper.GetPayType(order_type));
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", "");
IRichPayConfig _PayConfig = new IRichPayConfig(ApiAPPID, ApiKey, ApiOrganization, ApiURL);
MobilePayConfig.PayMerchant payMerchant = GetMerchantInfo(out_refund_no);
try
{
IRichPayResultModel _RefundQueryResult = IRichPayAPI.PayQueryRefund(
_PayConfig, payMerchant, out_trade_no, transaction_id, refund_amt);
if (_RefundQueryResult != null)
{
if (_RefundQueryResult.status == "00")
{
switch (_RefundQueryResult.data.orderstatus)
{
case "1":
_PayQueryResult.result_code = ((int)CommonHelper.ResCode.).ToString();
_PayQueryResult.trade_no = _RefundQueryResult.data.refundorderid;
_PayQueryResult.trade_num = out_refund_no;
_PayQueryResult.result_desc = _RefundQueryResult.data.tips;
break;
case "5":
_PayQueryResult.result_code = ((int)CommonHelper.ResCode.).ToString();
_PayQueryResult.trade_no = _RefundQueryResult.data.refundorderid;
_PayQueryResult.trade_num = out_refund_no;
_PayQueryResult.result_desc = _RefundQueryResult.data.tips;
break;
case "4":
case "7":
_PayQueryResult.result_code = ((int)CommonHelper.ResCode.).ToString();
_PayQueryResult.trade_no = _RefundQueryResult.data.refundorderid;
_PayQueryResult.trade_num = out_refund_no;
_PayQueryResult.result_desc = "SUCCESS";
break;
case "2":
case "3":
default:
_PayQueryResult.result_code = ((int)CommonHelper.ResCode.).ToString();
_PayQueryResult.trade_no = _RefundQueryResult.data.refundorderid;
_PayQueryResult.trade_num = out_refund_no;
_PayQueryResult.result_desc = _RefundQueryResult.data.tips;
break;
}
}
else
{
_PayQueryResult.result_code = ((int)CommonHelper.ResCode.).ToString();
_PayQueryResult.trade_no = "";
_PayQueryResult.trade_num = out_refund_no;
_PayQueryResult.result_desc = _RefundQueryResult.msg;
}
}
else
{
_PayQueryResult.result_code = ((int)CommonHelper.ResCode.).ToString();
_PayQueryResult.result_desc = "该门店未配置商户号信息";
}
}
catch (Exception ex)
{
_PayQueryResult.result_code = ((int)CommonHelper.ResCode.).ToString();
_PayQueryResult.result_desc = ex.Message;
}
string LocalPath = System.AppDomain.CurrentDomain.BaseDirectory + "\\bin\\ErrorLog";
if (!Directory.Exists(LocalPath))
{
Directory.CreateDirectory(LocalPath);
}
if (!File.Exists(LocalPath + "\\" + out_refund_no + ".txt"))
{
CommonHelper.SaveTextFile("bin\\ErrorLog\\" + out_refund_no + ".txt",
out_refund_no + "|" + order_type + "|-" + refund_amt + "|" + _PayQueryResult.result_code + "|" +
_PayQueryResult.result_desc + "(" + transaction_id + ")|" + _PayQueryResult.trade_no + "|" +
_PayQueryResult.trade_num + "|" + JsonConvert.SerializeObject(_PayQueryResult) +
"|" + ((int)CommonHelper.MobilePayOperators.irichpay).ToString());
}
try
{
if (!Directory.Exists(AppDomain.CurrentDomain.BaseDirectory + "\\InsertData"))
{
Directory.CreateDirectory(AppDomain.CurrentDomain.BaseDirectory + "\\InsertData");
}
CommonHelper.SaveTextFile("InsertData\\R" + out_refund_no + ".txt",
out_refund_no + "|" + order_type + "|-" + refund_amt + "|" +
_PayQueryResult.result_code + "|" + _PayQueryResult.result_desc +
"|" + _PayQueryResult.trade_no + "|" + _PayQueryResult.trade_num +
"|" + JsonConvert.SerializeObject(_PayQueryResult) +
"|" + ((int)CommonHelper.MobilePayOperators.irichpay).ToString());
}
catch (Exception ex)
{
LogHelper.WriteReceiveLog(ex.Message);
}
LogHelper.WriteSendLog("查询到的退款参数:商户订单号(out_trade_no):" + out_trade_no + ",平台订单号(transaction_id):" +
transaction_id + ",商户退款单号(out_refund_no):" + out_refund_no + ",平台退款单号(refund_id):" + refund_id +
",商户编码(memberCode):" + payMerchant.MerchantCode + ",商户秘钥(term_Code):" + payMerchant.MerchantKey +
JSonHelper.ObjectToJson<PayQueryResult>(_PayQueryResult, false));
return JsonConvert.SerializeObject(_PayQueryResult);
}
#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 = GetMerchantInfo(serverPartCode, shopCode);
_PayCreateResult.result_code = ((int)CommonHelper.ResCode.).ToString();
_PayCreateResult.result_desc = ((int)CommonHelper.MobilePayOperators.irichpay).ToString();
_PayCreateResult.trade_no = _MerchantInfo[0];
_PayCreateResult.trade_num = _MerchantInfo[1];
}
else
{
_PayCreateResult.result_code = ((int)CommonHelper.ResCode.).ToString();
_PayCreateResult.result_desc = ((int)CommonHelper.MobilePayOperators.irichpay).ToString();
}
return JSonHelper.ObjectToJson<PayCreateResult>(_PayCreateResult, false);
}
#endregion
#region
[WebMethod]
/// <summary>
/// 结账通知参数
/// </summary>
/// <param name="SERVERPARTCODE">服务区码</param>
/// <param name="SHOPCODE">门店编码</param>
/// <param name="MACHINECODE">收银机号</param>
/// <param name="CASHPAY">结账金额</param>
/// <param name="TOTALSELLAMOUNT">销售金额</param>
/// <param name="ENDACCOUNT_DATE">结账时间</param>
/// <param name="SHOPNAME">商家名称</param>
/// <returns></returns>
public string endaccountinfo(string SERVERPARTCODE, string SHOPCODE, string MACHINECODE, string CASHPAY,
string TOTALSELLAMOUNT, string ENDACCOUNT_DATE, string SHOPNAME)
{
PayQueryResult _PayQueryResult = new PayQueryResult();
try
{
OracleHelper _OracleHelper = new OracleHelper(_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 _OracleHelper = new OracleHelper();
string str = "";
if (RECODE_TYPE == "3010" || string.IsNullOrWhiteSpace(_ACCOUNT_BALANCE))
{
_OracleHelper = new OracleHelper(_OracleHelperStringsp.Split(',')[0], _OracleHelperStringsp.Split(',')[1],
_OracleHelperStringsp.Split(',')[2], _OracleHelperStringsp.Split(',')[3]);
str = "UPDATE HIGHWAY_EXCHANGE.T_MEMBERSHIP SET ACCOUNT_BALANCE = ACCOUNT_BALANCE - " +
RECODE_AMOUNT + " WHERE MEMBERSHIP_ID = " + MEMBERSHIP_ID;
_OracleHelper.ExcuteSql(str);
str = "SELECT ACCOUNT_BALANCE FROM HIGHWAY_EXCHANGE.T_MEMBERSHIP WHERE MEMBERSHIP_ID = " + MEMBERSHIP_ID;
DataTable _DataTable = _OracleHelper.ExcuteSqlGetDataSet(str).Tables[0];
if (_DataTable.Rows.Count > 0)
{
_ACCOUNT_BALANCE = _DataTable.Rows[0][0].ToString();
}
}
//_OracleHelper.ConnString = _connectstring;
_OracleHelper = new OracleHelper(_connectstring.Split(',')[0],
_connectstring.Split(',')[1], _connectstring.Split(',')[2], _connectstring.Split(',')[3]);
str = @"INSERT INTO HIGHWAY_EXCHANGE.T_OPERATELOG (OPERATELOG_ID,MEMBERSHIP_ID,SERVERPARTCODE,
SHOPCODE,MACHINECODE,RECODE_AMOUNT,RECODE_DATE,RECODE_TYPE,ACCOUNT_BALANCE,TICKETCODE)
SELECT HIGHWAY_EXCHANGE.SEQ_OPERATELOG.NEXTVAL," + MEMBERSHIP_ID + ",'" + SERVERPARTCODE +
"','" + SHOPCODE + "','" + MACHINECODE + "'," + RECODE_AMOUNT + ",TO_DATE('" + RECODE_DATE +
"','YYYY/MM/DD HH24:MI:SS')," + RECODE_TYPE + "," + _ACCOUNT_BALANCE + ",'" + TICKETCODE + "'" +
" FROM HIGHWAY_EXCHANGE.T_MEMBERSHIP WHERE MEMBERSHIP_ID = " + MEMBERSHIP_ID;
_OracleHelper.ExcuteSql(str);
if (RECODE_TYPE == "3000")
{
_OracleHelper = new OracleHelper(_OracleHelperString.Split(',')[0], _OracleHelperString.Split(',')[1],
_OracleHelperString.Split(',')[2], _OracleHelperString.Split(',')[3]);
str = @"INSERT INTO HIGHWAY_EXCHANGE.T_RECHARGERECORD (RECHARGERECORD_ID,MEMBERSHIP_ID,
SERVERPARTCODE,SHOPCODE,MACHINECODE,RECODE_AMOUNT,RECODE_DATE,ICCARD_CODE,RECODE_TYPE)
VALUES(1," + MEMBERSHIP_ID + ",'" + SERVERPARTCODE + "','" + SHOPCODE + "','" + MACHINECODE +
"'," + RECODE_AMOUNT + ",TO_DATE('" + RECODE_DATE + "','YYYY/MM/DD HH24:MI:SS'),'" +
ICCARD_CODE + "'," + RECODE_TYPE + ")";
_OracleHelper.ExcuteSql(str);
}
else if (RECODE_TYPE == "3010")
{
_OracleHelper = new OracleHelper(_OracleHelperStringsp.Split(',')[0], _OracleHelperStringsp.Split(',')[1],
_OracleHelperStringsp.Split(',')[2], _OracleHelperStringsp.Split(',')[3]);
str = @"INSERT INTO HIGHWAY_EXCHANGE.T_OPERATELOG (OPERATELOG_ID,MEMBERSHIP_ID,SERVERPARTCODE,
SHOPCODE,MACHINECODE,RECODE_AMOUNT,RECODE_DATE,RECODE_TYPE,TICKETCODE)
VALUES (1," + MEMBERSHIP_ID + ",'" + SERVERPARTCODE + "','" + SHOPCODE + "','" +
MACHINECODE + "'," + RECODE_AMOUNT + ",TO_DATE('" + RECODE_DATE +
"','YYYY/MM/DD HH24:MI:SS')," + RECODE_TYPE + ",'" + TICKETCODE + "')";
_OracleHelper.ExcuteSql(str);
}
//查询数据
_PayQueryResult.result_code = ((int)(CommonHelper.ResCode.)).ToString();
_PayQueryResult.result_desc = "记录成功";
_PayQueryResult.trade_no = MEMBERSHIP_ID;
_PayQueryResult.trade_num = SERVERPARTCODE;
}
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]);
//_OracleHelper.ConnString = _connectstring;
string str = @"SELECT COMMODITY_BARCODE,COMMODITY_NAME,COMMODITY_RETAILPRICE FROM HIGHWAY_EXCHANGE.T_COMMODITYEX
WHERE COMMODITY_BARCODE = '" + COMMODITY_BARCODE + "' AND ISVALID = 1 AND SERVERPARTSHOP_ID = " + SERVERPARTSHOP_ID;
DataTable _DataTable = _OracleHelper.ExcuteSqlGetDataSet(str).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
{
str = @"SELECT COMMODITY_BARCODE,COMMODITY_NAME,COMMODITY_RETAILPRICE FROM HIGHWAY_EXCHANGE.T_COMMODITYEX
WHERE COMMODITY_BARCODE = '" + COMMODITY_BARCODE + "' AND ISVALID = 0 AND SERVERPARTSHOP_ID = " + SERVERPARTSHOP_ID;
_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]["COMMODITY_BARCODE"].ToString();
_PayQueryResult.trade_num = _DataTable.Rows[0]["COMMODITY_NAME"].ToString();
}
else
{
OracleHelper OracleHelper100 = new OracleHelper(_OracleHelperStringsp.Split(',')[0],
_OracleHelperStringsp.Split(',')[1], _OracleHelperStringsp.Split(',')[2], _OracleHelperStringsp.Split(',')[3],
_OracleHelperStringsp.Split(',').Length > 4 ? _OracleHelperStringsp.Split(',')[4] : "1521");
str = "SELECT * FROM HIGHWAY_EXCHANGE.T_COMMODITYEX WHERE COMMODITY_BARCODE = '" +
COMMODITY_BARCODE + "' AND SERVERPARTSHOP_ID = " + SERVERPARTSHOP_ID;
_DataTable = OracleHelper100.ExcuteSqlGetDataSet(str).Tables[0];
if (_DataTable.Rows.Count > 0)
{
str = @"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 (" + _DataTable.Rows[0]["COMMODITYEX_ID"].ToString() +
",'" + _DataTable.Rows[0]["SERVERPARTCODE"].ToString() +
"','" + _DataTable.Rows[0]["COMMODITY_TYPE"].ToString() +
"','" + _DataTable.Rows[0]["COMMODITY_CODE"].ToString() +
"','" + _DataTable.Rows[0]["COMMODITY_BARCODE"].ToString() +
"','" + _DataTable.Rows[0]["COMMODITY_NAME"].ToString() +
"','" + _DataTable.Rows[0]["COMMODITY_RULE"].ToString() +
"','" + _DataTable.Rows[0]["COMMODITY_UNIT"].ToString() +
"'," + _DataTable.Rows[0]["COMMODITY_RETAILPRICE"].ToString() +
"," + _DataTable.Rows[0]["COMMODITY_MEMBERPRICE"].ToString() +
"," + _DataTable.Rows[0]["CANCHANGEPRICE"].ToString() +
"," + _DataTable.Rows[0]["ISVALID"].ToString() +
",'" + _DataTable.Rows[0]["COMMODITY_EN"].ToString() +
"'," + _DataTable.Rows[0]["ISBULK"].ToString() +
"," + _DataTable.Rows[0]["METERINGMETHOD"].ToString() +
",TO_DATE('" + _DataTable.Rows[0]["DOWNLOADDATE"].ToString() +
"','YYYY/MM/DD HH24:MI:SS')," + _DataTable.Rows[0]["FLAG"].ToString() +
"," + _DataTable.Rows[0]["BUSINESSTYPE"].ToString() +
"," + _DataTable.Rows[0]["SERVERPARTSHOP_ID"].ToString() + ")";
_OracleHelper.ExcuteSql(str);
_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
{
str = "SELECT * FROM HIGHWAY_EXCHANGE.V_COMMODITY WHERE COMMODITY_BARCODE = '" +
COMMODITY_BARCODE + "' AND SERVERPARTSHOP_ID = " + SERVERPARTSHOP_ID;
_DataTable = OracleHelper100.ExcuteSqlGetDataSet(str).Tables[0];
if (_DataTable.Rows.Count > 0)
{
if (_DataTable.Rows[0]["COMMODITY_STATE"].ToString() == "1")
{
_PayQueryResult.result_code = ((int)CommonHelper.ResCode.).ToString();
}
else
{
_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
{
str = "SELECT * FROM HIGHWAY_EXCHANGE.V_COMMODITY WHERE COMMODITY_BARCODE = '" +
COMMODITY_BARCODE + "'";
_DataTable = OracleHelper100.ExcuteSqlGetDataSet(str).Tables[0];
if (_DataTable.Rows.Count > 0)
{
_PayQueryResult.result_code = ((int)(CommonHelper.ResCode.)).ToString();
_PayQueryResult.result_desc = _DataTable.Rows[0]["SHOPNAME"].ToString();
_PayQueryResult.trade_no = _DataTable.Rows[0]["COMMODITY_BARCODE"].ToString();
_PayQueryResult.trade_num = _DataTable.Rows[0]["COMMODITY_NAME"].ToString();
}
else
{
str = @"SELECT COMMODITY_BARCODE,COMMODITY_NAME,COMMODITY_RETAILPRICE,B.SHOPNAME
FROM HIGHWAY_EXCHANGE.T_COMMODITYEX A,HIGHWAY_EXCHANGE.T_SHOPMESSAGE B
WHERE A.SERVERPARTSHOP_ID = B.SERVERPARTSHOP_ID AND A.ISVALID = 1 AND COMMODITY_BARCODE = '" +
COMMODITY_BARCODE + "' AND A.SERVERPARTSHOP_ID <> " + SERVERPARTSHOP_ID +
" AND EXISTS(SELECT 1 FROM HIGHWAY_EXCHANGE.T_SHOPMESSAGE C WHERE C.SERVERPARTSHOP_ID = " +
SERVERPARTSHOP_ID + " AND B.BUSINESSTYPE = C.BUSINESSTYPE)";
_DataTable = _OracleHelper.ExcuteSqlGetDataSet(str).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
{
str = @"SELECT COMMODITY_BARCODE,COMMODITY_NAME,COMMODITY_RETAILPRICE,B.SHOPNAME
FROM HIGHWAY_EXCHANGE.T_COMMODITYEX A,HIGHWAY_EXCHANGE.T_SHOPMESSAGE B
WHERE A.SERVERPARTSHOP_ID = B.SERVERPARTSHOP_ID AND A.ISVALID = 1 AND COMMODITY_BARCODE = '" +
COMMODITY_BARCODE + "' AND A.SERVERPARTSHOP_ID <> " + SERVERPARTSHOP_ID;
_DataTable = _OracleHelper.ExcuteSqlGetDataSet(str).Tables[0];
if (_DataTable.Rows.Count > 0)
{
_PayQueryResult.result_code = ((int)(CommonHelper.ResCode.)).ToString();
_PayQueryResult.result_desc = _DataTable.Rows[0]["SHOPNAME"].ToString();
_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)
{
string LimitType = "";
try
{
LimitType = ConfigurationManager.AppSettings["LimitType"].ToString();
}
catch { }
if (LimitType == "1")
{
return "";
}
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@SSSB WHERE SERVERPARTSHOP_ID = " + SERVERPARTSHOP_ID +
" AND OPERATE_STATE > 1000 AND OPERATE_STATE < 2000 AND SERVERPART_ID = " + SERVERPART_ID;
dt = _OracleHelperDownLoad.ExcuteSqlGetDataSet(Str).Tables[0];
if (dt.Rows.Count > 0)
{
_Result = ((int)(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@SSSB WHERE SERVERPART_ID = " +
SERVERPART_ID + "AND SERVERPARTSHOP_ID = " + SERVERPARTSHOP_ID + " AND CHECK_STATE = 0";
dt = _OracleHelperDownLoad.ExcuteSqlGetDataSet(Str).Tables[0];
if (dt.Rows.Count > 0)
{
//Str = "SELECT * FROM SALESTORE_STORAGE.T_CHECKCOMMODITY@HWS WHERE SERVERPART_ID = " +
// SERVERPART_ID + "AND SERVERPARTSHOP_ID = " + SERVERPARTSHOP_ID + " AND CHECK_STATE = 0";
//dt = _OracleHelperDownLoad.ExcuteSqlGetDataSet(Str).Tables[0];
DataRow[] _RowList = dt.Select("CHECKDATE = '" + CHECKDATE + "'");
if (_RowList.Length > 0)
{
if (CHECKSTATE == "1000")
{
_Result = dt == null ? "" : JSonHelper.DataTableToJson(_RowList.CopyToDataTable(), "CheckBill").ToString();
}
else
{
if (_Rownum <= 0)
{
Str = "SELECT 1 FROM SALESTORE_STORAGE.T_CHECKCOMMODITYDETAIL@SSSB WHERE CHECKCOMMODITY_ID = " +
"(SELECT CHECKCOMMODITY_ID FROM SALESTORE_STORAGE.T_CHECKCOMMODITY@SSSB WHERE SERVERPART_ID = " +
SERVERPART_ID + "AND SERVERPARTSHOP_ID = " + SERVERPARTSHOP_ID + " AND CHECKDATE = TO_DATE('" +
CHECKDATE + "','YYYY/MM/DD HH24:MI:SS') AND CHECK_STATE = 0 ) ";
dt = _OracleHelperDownLoad.ExcuteSqlGetDataSet(Str, "T_CHECKCOMMODITYDETAIL").Tables[0];
if (dt.Rows.Count > 0)
{
_PayQueryResult.trade_no = System.RealEstate_Extend.ToEncrypt(
JSonHelper.DataTableToJson(_RowList.CopyToDataTable(), "T_CHECKCOMMODITY"));
_PayQueryResult.trade_num = 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@SSSB A,SALESTORE_STORAGE.T_CHECKCOMMODITY@SSSB 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@SSSB 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@SSSB WHERE ENDDATE <= TO_DATE('" +
CHECKDATE + "','YYYY/MM/DD HH24:MI:SS') + 1 / 1440 AND SERVERPARTSHOP_ID = " +
SERVERPARTSHOP_ID + " AND TOTALCOUNT <> 0";
dt = _OracleHelperDownLoad.ExcuteSqlGetDataSet(Str).Tables[0];
if (dt.Rows.Count > 0 && _ValidationType != "0")
{
_Result = ((int)(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@SSSB FROM dual";
CHECKCOMMODITY_ID = _OracleHelperDownLoad.ExcuteSqlGetDataSet(Str).Tables[0].Rows[0][0].ToString();
Str = @"INSERT INTO SALESTORE_STORAGE.T_CHECKCOMMODITY@SSSB (CHECKCOMMODITY_ID,CHECKPERSON,CHECKDATE,
SERVERPART_ID,SERVERPARTSHOP_ID,CHECKCOMMODITY_DESC,CHECK_STATE,CHECK_PASSPORT_GUID,CHECK_TYPE)
VALUES(" + CHECKCOMMODITY_ID + ",'" + CHECKPERSON + "',TO_DATE('" + CHECKDATE +
"','YYYY/MM/DD HH24:MI:SS')," + SERVERPART_ID + "," + SERVERPARTSHOP_ID + ",'',0,'',1000)";
_OracleHelperDownLoad.ExcuteSql(Str);
//更新库存状态
Str = "UPDATE SALESTORE_STORAGE.T_SERVERPARTSTOCK@SSSB SET OPERATE_STATE = 2000 WHERE SERVERPART_ID = " +
SERVERPART_ID + " AND SERVERPARTSHOP_ID = " + SERVERPARTSHOP_ID + " AND OPERATE_STATE != 8000";
_OracleHelperDownLoad.ExcuteSql(Str);
//将插入的主单放入DataTable
Str = "SELECT * FROM SALESTORE_STORAGE.T_CHECKCOMMODITY@SSSB WHERE CHECKCOMMODITY_ID = " + CHECKCOMMODITY_ID;
dt = _OracleHelperDownLoad.ExcuteSqlGetDataSet(Str, "T_CHECKCOMMODITY").Tables[0];
_Result = dt == null ? "" : JSonHelper.DataTableToJson(dt, "CheckBill");
_PayQueryResult.trade_no = System.RealEstate_Extend.ToEncrypt(
JSonHelper.DataTableToJson(dt, "T_CHECKCOMMODITY"));
//将插入的明细放入DataTable
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@SSSB 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@SSSB 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);
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 ->
/// <summary>
/// 获取门店主订单
/// </summary>
/// <param name="ProvinceCode">省份编码</param>
/// <param name="ServerPartShopID">门店内码</param>
/// <param name="SaleBillType">订单类型</param>
/// <param name="SaleBillState">订单状态</param>
/// <param name="OrderDate">最小订单时间</param>
/// <returns></returns>
[WebMethod]
public string GetOnlineOrder(string ProvinceCode, string ServerPartShopID, string SaleBillType, string SaleBillState, string OrderDate)
{
try
{
WebService.SDK.OracleHelper _OracleHelper = new WebService.SDK.OracleHelper(_connectstring.Split(',')[0],
_connectstring.Split(',')[1], _connectstring.Split(',')[2], _connectstring.Split(',')[3]);
return WebService.SDK.MemberService.MallService.GetOnlineOrder(_OracleHelper, int.Parse(ProvinceCode),
int.Parse(ServerPartShopID), int.Parse(SaleBillType), SaleBillState,
DateTime.ParseExact(OrderDate, "yyyyMMddHHmmss", System.Globalization.CultureInfo.InvariantCulture));
}
catch (Exception ex)
{
WebService.SDK.LogHelper.WriteSendLog("线上订单下发失败:" + ex.Message);
return "";
}
}
/// <summary>
/// 获取订单详情
/// </summary>
/// <param name="SaleBillID">主订单内码</param>
/// <returns></returns>
[WebMethod]
public string GetOnlineOrderDetail(string SaleBillID)
{
try
{
WebService.SDK.OracleHelper _OracleHelper = new WebService.SDK.OracleHelper(_connectstring.Split(',')[0],
_connectstring.Split(',')[1], _connectstring.Split(',')[2], _connectstring.Split(',')[3]);
return WebService.SDK.MemberService.MallService.GetOnlineOrderDetail(_OracleHelper, int.Parse(SaleBillID));
}
catch (Exception ex)
{
WebService.SDK.LogHelper.WriteSendLog("线上订单详情下发失败:" + ex.Message);
return "";
}
}
#endregion
#region -> 线
//[WebMethod]
//public string UpdateSaleBillList(string SaleBillId, string SaleBillState)
//{
// OracleHelper _OracleHelper = new OracleHelper("183.129.232.107", "orcl", "MOBILESERVICE_PLATFORM", "qrwl");
// return CommonHelper.UpdateSaleBill(_OracleHelper, SaleBillId, SaleBillState);
//}
/// <summary>
/// 更新订单状态
/// </summary>
/// <param name="SaleBillID">主订单内码</param>
/// <param name="OrderState">订单状态</param>
/// <param name="MachineCode">接单收银机号</param>
/// <param name="PrintDate">订单打印时间</param>
/// <returns></returns>
[WebMethod]
public string UpdateSaleBillState(string SaleBillID, string OrderState, string MachineCode, string PrintDate)
{
WebService.SDK.OracleHelper _OracleHelper = new WebService.SDK.OracleHelper(_connectstring.Split(',')[0],
_connectstring.Split(',')[1], _connectstring.Split(',')[2], _connectstring.Split(',')[3]);
return WebService.SDK.MemberService.MallService.UpdateOnlineOrderState(_OracleHelper,
int.Parse(SaleBillID), int.Parse(OrderState), MachineCode, DateTime.Parse(PrintDate));
}
#endregion
#region ->
/// <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)
{
LogHelper.WriteSendLog("移动支付交易结果验证失败:" + ex.Message);
}
}
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
{
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
public static MobilePayConfig.PayMerchant GetMerchantInfo(string TICKETCODE)
{
MobilePayConfig.PayMerchant _PayMerchant = new MobilePayConfig.PayMerchant();
//string[] MerchantInfo = new string[3];
string _SERVERPARTCODE = TICKETCODE.Substring(0, 6);
string _SHOPCODE = TICKETCODE.Length == 28 ? TICKETCODE.Substring(6, 4) : TICKETCODE.Substring(6, 6);
//通过门店信息获取唯一商户号
string _Merchant = ConfigurationManager.AppSettings[_SERVERPARTCODE + _SHOPCODE];
if (string.IsNullOrWhiteSpace(_Merchant))
{
for (int i = 0; i < ShopCode.Length; i++)
{
if (_SERVERPARTCODE == ShopCode[i] || _SHOPCODE.Substring(2, _SHOPCODE.Length - 2) == ShopCode[i] ||
_SHOPCODE == ShopCode[i])
{
_PayMerchant.MerchantCode = Business_Code[i];
if (Business_Code.Count() == term_Code.Count())
{
_PayMerchant.MerchantKey = term_Code[i];
}
break;
}
}
}
else
{
_PayMerchant.MerchantCode = _Merchant.Split('|')[0];
if (_Merchant.Split('|').Count() > 1)
{
_PayMerchant.MerchantKey = _Merchant.Split('|')[1];
}
}
return _PayMerchant;
}
#endregion
#region
private static string[] GetMerchantInfo(string serverPartCode, string shopCode)
{
string[] MerchantInfo = new string[3];
//通过门店信息获取唯一商户号
string _Merchant = ConfigurationManager.AppSettings[serverPartCode + shopCode];
if (string.IsNullOrWhiteSpace(_Merchant))
{
for (int i = 0; i < ShopCode.Length; i++)
{
if (serverPartCode == ShopCode[i] || shopCode == ShopCode[i]
|| shopCode.Substring(2, shopCode.Length - 2) == ShopCode[i])
{
MerchantInfo[0] = Business_Code[i];
if (Business_Code.Count() == term_Code.Count())
{
MerchantInfo[1] = term_Code[i];
}
break;
}
}
}
else
{
MerchantInfo[0] = _Merchant.Split('|')[0];
if (_Merchant.Split('|').Count() > 1)
{
MerchantInfo[1] = _Merchant.Split('|')[1];
}
}
return MerchantInfo;
}
#endregion
}
}