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.ICBCPay;
using WebService.SDK.ICBCPay.Model;
using WebService.SDK.PayCommon;
namespace ICBCPayService
{
///
/// Service 的摘要说明
///
[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"];
protected static string _connectstringbld = ConfigurationManager.AppSettings["connectstringbld"];
protected static string _OracleHelperString = ConfigurationManager.AppSettings["OracleHelperString"];
protected static string _OracleHelperStringsp = ConfigurationManager.AppSettings["OracleHelperStringsp"];
protected static string _OracleHelperStringps = ConfigurationManager.AppSettings["OracleHelperStringps"];
//商户秘钥
//protected const string key = "9d101c97133837e13dde2d32a5054abb";
//版本号,固定不变,无需修改
//protected const string version = "2.0";
//服务区编码
protected static string ServerPartCode = ConfigurationManager.AppSettings["SERVERPARTCODE"];
//服务区、门店编码
protected static string[] ShopCode = ConfigurationManager.AppSettings["ShopCode"].Split(',');
//商户号
protected static string[] Business_Code = ConfigurationManager.AppSettings["Business_Code"].Split(',');
//商户密钥
protected static string[] term_Code = ConfigurationManager.AppSettings["term_Code"].Split(',');
//接口请求主地址,固定不变,无需修改
protected const string ApiURL = "https://gw.open.icbc.com.cn";
//接口服务商号,固定不变,无需修改
protected string ApiOrganization = "";
//接口APPID,固定不变,无需修改
protected const string ApiAPPID = "10000000000003170651";
//接口签名密钥,固定不变,无需修改
protected const string ApiUserKey = "MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQDYG3nkPI0CN2ZFQ1wxrq9+1mE8aR7RwoKYdz5YcIs/Ix4NBvYzwfzkROlEyAt3Ie2jWkTkOp1++ZYwy2ecuD0+SaGvs/HEsWw5oVp/87POdmmiQMA86dvPEeuBhgjlJ3bDPLHnNad+IRzPvHXdPqXloVmDyOv9uiQF2mVUEPMvWXffDLFs3cz8x5+ZiFzXiBUf1T/WvBMnKCJO6jW1DqrUMWScV9eym6NpisS8Yj+yqYx1Xf5l/0VeMiC1oR8M3oEozi0PG1AdlyeU2TQPgG+jW2JuBV8WQR57+xRFy73a4k8E5P8IbYfcvOozcM0dgtriFXDvL4x1LVWEiRnCD/RNAgMBAAECggEBALvgp0fVnIGgyDjPJwfKZqhOmJp8iV6zS/ZhNMKOlYB+d1G8C69TpxiNEH/LqqwXwxGRGPOSQfpx4jDppVqKkjPkr7yhJD9sQDqaHKPAq0GDkLKOuJI8fey4F5azgGg4tvdlfQUVkFgHUZUIsy91l6TbcYcw1nnvqgGsrQs48TLnbE4aSD1g4uYscTd4F3nD2GUQPcU7BkNDO2QW8AP9ES6hSM30riRxAnn+lBH8qmmNen8dpBdWM5eh7DyQOMjJyZ1V6jButmAdpXlfk2oub4XGCn+pZCEBA9V5qHjikCjYIdcxBCPGfqnxG3FTD5yqfCdoRVuGm532mOtSnQVyeAECgYEA5kEu5vBGIFRPN7leOHG8cY+FG6lQhyc8YnJ6eADutgnpWtNN0nccRN3+2DtZLU9FjbzMPkcxFxDZZAEufebO5iGc8EzUXVV1zgoRKOSpFzsVRj83pefvLos5GmmTwHswREtgJ04gF28yvzbq7Rb9JG9aSvGXj8QpUWI4DJS6hKECgYEA8EVXHNaOwkPmOGklHVgV5DmAzE2ovtVkK86NICTKGK68idMdcsBtAZ0npWcCCvSlCYUPQX/0Tii62Xe3eds2RYTbp48NMK8qmTR9puixtAxNOdkFfi87RSw40bv2Yq/1kgZI1eiyEvgSlz3gqvjRX4ZWTSdO18qZOovMl76gJC0CgYANVGS0teA5augTH8YWmm8AXACms0yYJmtWf64bWGJ5Y2WA/o6YypB2ZCumtPjaqKYsKGvihxiOb0lGgtMAMuZzaCq/tpLsvE/Pl8GajnJDiAYZRPuhvSWZmjG6F7aYBAmtSnfMjrdI5AUaEMHU6+nHvDKL+CSADCkgLwFzqQCLQQKBgQDm+EE9n6Osa8ksASeEheDFe+GshBrrGAcrdWuEstjz0UW82A0++mvPWVt7TQJRtcvQ0vBPbslTOSQlWUgvA+OwAH+HG6T6X+j7TdJcWOQ6yHiUW2NEYfMAE/qq451+UNgof5IUz5QfWAnHCdynfnkG8wSTNm48Uq3p8enDFaSsIQKBgGlFyt06/KF/Ktm8Kz1FArg9qNOOIwBsNpqqVbb1hcWwvwvf73xvKuCHVCUKx07y2lDY5Sf/M1xB77tSysz4kbOnor1P38PzDSAQJeZvZCefs8tbqHJho/VQyz9+quV2n1W5PxLosByu9mENU8Es2hrqzkBrpk1M3l2taJ3h5R/n";
//接口签名公钥,供银行校验传入参数用
protected const string ApiUserPubKey = "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA2Bt55DyNAjdmRUNcMa6vftZhPGke0cKCmHc+WHCLPyMeDQb2M8H85ETpRMgLdyHto1pE5DqdfvmWMMtnnLg9Pkmhr7PxxLFsOaFaf/OzznZpokDAPOnbzxHrgYYI5Sd2wzyx5zWnfiEcz7x13T6l5aFZg8jr/bokBdplVBDzL1l33wyxbN3M/MefmYhc14gVH9U/1rwTJygiTuo1tQ6q1DFknFfXspujaYrEvGI/sqmMdV3+Zf9FXjIgtaEfDN6BKM4tDxtQHZcnlNk0D4Bvo1tibgVfFkEee/sURcu92uJPBOT/CG2H3LzqM3DNHYLa4hVw7y+MdS1VhIkZwg/0TQIDAQAB";
//银行接口公钥,校验接口返回参数使用
protected const string SiipPubKey = "MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCMpjaWjngB4E3ATh+G1DVAmQnIpiPEFAEDqRfNGAVvvH35yDetqewKi0l7OEceTMN1C6NPym3zStvSoQayjYV+eIcZERkx31KhtFu9clZKgRTyPjdKMIth/wBtPKjL/5+PYalLdomM4ONthrPgnkN4x4R0+D4+EBpXo8gNiAFsNwIDAQAB";
//阿里云商品库
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]
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");
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", "");
//初始化支付接口连接参数
ICBCPayConfig _PayConfig = new ICBCPayConfig(ApiAPPID, ApiUserKey, ApiUserPubKey, SiipPubKey, ApiOrganization, ApiURL);
MobilePayConfig.PayMerchant payMerchant = GetMerchantInfo(TICKETCODE);
try
{
string str_OrderAmount = (decimal.Parse(TICKETPRICE) * 100).ToString("F0");
//创建交易并返回结果
QrcodePayResponseV2 _ICBCPayResult = ICBCPayAPI.ScanPay(
_PayConfig, payMerchant, USERPAYCODE, TICKETCODE, str_OrderAmount);
if (_ICBCPayResult != null)
{
if (_ICBCPayResult.return_code == "0")
{
//交易结果标志,-1:下单失败,0:支付中,1:支付成功,2:支付失败
switch (_ICBCPayResult.pay_status)
{
case "0":
_PayQueryResult.result_code = ((int)CommonHelper.ResCode.订单待支付).ToString();
_PayQueryResult.trade_no = _ICBCPayResult.order_id;
_PayQueryResult.trade_num = TICKETCODE;
_PayQueryResult.result_desc = _ICBCPayResult.return_msg;
break;
case "1":
_PayQueryResult.result_code = ((int)CommonHelper.ResCode.成功).ToString();
_PayQueryResult.trade_no = _ICBCPayResult.order_id;
_PayQueryResult.trade_num = TICKETCODE;
_PayQueryResult.result_desc = "SUCCESS";
break;
case "2":
_PayQueryResult.result_code = ((int)CommonHelper.ResCode.支付失败).ToString();
_PayQueryResult.trade_no = _ICBCPayResult.order_id;
_PayQueryResult.trade_num = TICKETCODE;
_PayQueryResult.result_desc = _ICBCPayResult.return_msg;
break;
case "-1":
default:
_PayQueryResult.result_code = ((int)CommonHelper.ResCode.支付失败).ToString();
_PayQueryResult.trade_no = "";
_PayQueryResult.trade_num = TICKETCODE;
_PayQueryResult.result_desc = _ICBCPayResult.return_msg;
break;
}
}
else
{
_PayQueryResult.result_code = ((int)CommonHelper.ResCode.支付失败).ToString();
_PayQueryResult.trade_no = "";
_PayQueryResult.trade_num = TICKETCODE;
_PayQueryResult.result_desc = _ICBCPayResult.return_msg;
}
}
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.icbcpay).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]
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);
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", "");
//初始化支付接口连接参数
ICBCPayConfig _PayConfig = new ICBCPayConfig(ApiAPPID, ApiUserKey, ApiUserPubKey, SiipPubKey, ApiOrganization, ApiURL);
MobilePayConfig.PayMerchant payMerchant = GetMerchantInfo(TICKETCODE);
try
{
QrcodeQueryResponseV2 _QueryResult = ICBCPayAPI.QueryPay(
_PayConfig, payMerchant, TICKETCODE, OUT_TRADE_NO, PAYTYPE, TotalCount);
if (_QueryResult != null)
{
if (_QueryResult.return_code == "0")
{
//交易结果标志,-1:下单失败,0:支付中,1:支付成功,2:支付失败
switch (_QueryResult.pay_status)
{
case "0":
_PayQueryResult.result_code = ((int)CommonHelper.ResCode.订单待支付).ToString();
_PayQueryResult.trade_no = _QueryResult.order_id;
_PayQueryResult.trade_num = TICKETCODE;
_PayQueryResult.result_desc = _QueryResult.return_msg;
break;
case "1":
_PayQueryResult.result_code = ((int)CommonHelper.ResCode.成功).ToString();
_PayQueryResult.trade_no = _QueryResult.order_id;
_PayQueryResult.trade_num = TICKETCODE;
_PayQueryResult.result_desc = "SUCCESS";
break;
case "2":
_PayQueryResult.result_code = ((int)CommonHelper.ResCode.支付失败).ToString();
_PayQueryResult.trade_no = _QueryResult.order_id;
_PayQueryResult.trade_num = TICKETCODE;
_PayQueryResult.result_desc = _QueryResult.return_msg;
break;
case "-1":
default:
_PayQueryResult.result_code = ((int)CommonHelper.ResCode.支付失败).ToString();
_PayQueryResult.trade_no = "";
_PayQueryResult.trade_num = TICKETCODE;
_PayQueryResult.result_desc = _QueryResult.return_msg;
break;
}
}
else
{
_PayQueryResult.result_code = ((int)CommonHelper.ResCode.支付失败).ToString();
_PayQueryResult.trade_no = "";
_PayQueryResult.trade_num = TICKETCODE;
_PayQueryResult.result_desc = _QueryResult.return_msg;
}
}
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 _MobilePayList = (List)CacheHelper.Get("MobilePay");
if (_MobilePayList == null)
{
_MobilePayList = new List();
}
//判断是否已经存在订单查询记录或查询结果是否交易成功,如从未查询过或查询结果为交易成功则记录交易查询日志
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.icbcpay).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]
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", "");
//初始化支付接口连接参数
ICBCPayConfig _PayConfig = new ICBCPayConfig(ApiAPPID, ApiUserKey, ApiUserPubKey, SiipPubKey, ApiOrganization, ApiURL);
MobilePayConfig.PayMerchant payMerchant = GetMerchantInfo(refund_order_no);
try
{
string str_OrderAmount = (decimal.Parse(refund_amt) * 100).ToString("F0");
QrcodeRejectResponseV2 _RefundResult = ICBCPayAPI.PayRefund(_PayConfig,
payMerchant, mchnt_order_no, "", refund_order_no, str_OrderAmount);
if (_RefundResult != null)
{
if (_RefundResult.return_code == "0")
{
_PayQueryResult.result_code = ((int)CommonHelper.ResCode.成功).ToString();
_PayQueryResult.trade_no = _RefundResult.order_id;
_PayQueryResult.trade_num = refund_order_no;
_PayQueryResult.result_desc = "SUCCESS";
}
else
{
_PayQueryResult.result_code = ((int)CommonHelper.ResCode.支付失败).ToString();
_PayQueryResult.trade_no = "";
_PayQueryResult.trade_num = refund_order_no;
_PayQueryResult.result_desc = _RefundResult.return_msg;
}
}
else
{
_PayQueryResult.result_code = ((int)CommonHelper.ResCode.请求参数错误).ToString();
_PayQueryResult.trade_no = "";
_PayQueryResult.trade_num = refund_order_no;
_PayQueryResult.result_desc = "该门店未配置商户号信息";
}
}
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.icbcpay).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.icbcpay).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]
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", "");
//初始化支付接口连接参数
ICBCPayConfig _PayConfig = new ICBCPayConfig(ApiAPPID, ApiUserKey, ApiUserPubKey, SiipPubKey, ApiOrganization, ApiURL);
MobilePayConfig.PayMerchant payMerchant = GetMerchantInfo(out_refund_no);
try
{
QrcodeRejectQueryResponseV3 _RefundQueryResult = ICBCPayAPI.PayQueryRefund(
_PayConfig, payMerchant, out_trade_no, transaction_id, out_refund_no, refund_amt);
if (_RefundQueryResult != null)
{
if (_RefundQueryResult.return_code == "0")
{
if (_RefundQueryResult.refund_json_list != null)
{
//switch (_RefundQueryResult.AgwBody.refund_status.ToUpper())
//{
// case "S":
// _PayQueryResult.result_code = ((int)CommonHelper.ResCode.成功).ToString();
// _PayQueryResult.trade_no = _RefundQueryResult.AgwBody.main_order_no;
// _PayQueryResult.trade_num = out_refund_no;
// _PayQueryResult.result_desc = "SUCCESS";
// break;
// case "P":
// _PayQueryResult.result_code = ((int)CommonHelper.ResCode.订单待支付).ToString();
// _PayQueryResult.trade_no = _RefundQueryResult.AgwBody.main_order_no;
// _PayQueryResult.trade_num = out_refund_no;
// _PayQueryResult.result_desc = _RefundQueryResult.return_msg;
// break;
// case "F":
// _PayQueryResult.result_code = ((int)CommonHelper.ResCode.支付失败).ToString();
// _PayQueryResult.trade_no = _RefundQueryResult.AgwBody.main_order_no;
// _PayQueryResult.trade_num = out_refund_no;
// _PayQueryResult.result_desc = _RefundQueryResult.return_msg;
// break;
//}
}
else
{
_PayQueryResult.result_code = ((int)CommonHelper.ResCode.支付失败).ToString();
_PayQueryResult.trade_no = "";
_PayQueryResult.trade_num = out_refund_no;
_PayQueryResult.result_desc = _RefundQueryResult.return_msg;
}
}
else
{
_PayQueryResult.result_code = ((int)CommonHelper.ResCode.支付失败).ToString();
_PayQueryResult.trade_no = "";
_PayQueryResult.trade_num = out_refund_no;
_PayQueryResult.result_desc = _RefundQueryResult.return_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.icbcpay).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.icbcpay).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, false));
return JsonConvert.SerializeObject(_PayQueryResult);
}
#endregion
#region 获取门店对应商户号
///
/// 获取门店商户号及支付服务商
///
///
///
[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.icbcpay).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.icbcpay).ToString();
}
return JSonHelper.ObjectToJson(_PayCreateResult, false);
}
#endregion
#region 结账通知
[WebMethod]
///
/// 结账通知参数
///
/// 服务区码
/// 门店编码
/// 收银机号
/// 结账金额
/// 销售金额
/// 结账时间
/// 商家名称
///
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, false));
return JSonHelper.ObjectToJson(_PayQueryResult, false);
}
#endregion
#region 会员卡消费
[WebMethod]
///
/// 会员卡消费参数
///
/// 会员内码
/// 服务区码
/// 门店编码
/// 收银机号
/// 消费金额
/// 消费日期
/// IC卡号
/// 消费类型
/// 卡内余额
/// 会员码
///
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, false));
return JSonHelper.ObjectToJson(_PayQueryResult, false);
}
#endregion
#region 会员码校验
[WebMethod]
///
/// 会员码校验参数
///
/// 会员条码
///
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, false));
return JSonHelper.ObjectToJson(_PayQueryResult, false);
}
#endregion
#region 商品信息查询
[WebMethod]
///
/// 商品信息查询参数
///
/// 商品条码
/// 门店内码
///
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, false));
return JSonHelper.ObjectToJson(_PayQueryResult, false);
}
#endregion
#region 配送单扫码入库
[WebMethod]
///
/// 配送单扫码入库参数
///
/// 配送单号
/// 采购单内码
/// 收银员名称
/// 微信内码
/// 微信OPENID
/// 接口类型:0查询,1入库
///
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, false));
return JSonHelper.ObjectToJson(_PayQueryResult, false);
}
#endregion
#region 查询条码库
[WebMethod]
///
/// 查询条码库参数
///
/// 商品条码
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状态
///
/// 指定IP地址Ping状态
///
///
///
[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 收银机添加商品同步上传
///
/// 收银机添加商品同步上传
///
///
///
[WebMethod]
public string LocalCommodityExUpLoad(string JsonString)
{
using (DataTable _DataTable = JSonHelper.ToDataTable(JsonString))
{
if (_DataTable.Rows.Count > 0)
{
List ListSQL = new List();
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 收银报表本地数据上传
///
/// 本地数据上传
///
/// 类型
/// Json格式数据
/// 记录结果
[WebMethod]
public string LocalUpLoad(string Type, string Json)
{
string _Result = "";
DataTable _DataTable = CommonHelper.ConvertOraclTableToDoNetTable(JSonHelper.ToDataTable(Json));
if (_DataTable.Rows.Count > 0)
{
List _ListSQL = new List();
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]
///
/// 创建盘点单
///
/// 服务区编号
/// 门店编号
/// 盘存日期
/// 盘存人
/// 盘存状态,发起:1000;开始:2000
/// 盘点详情最大行序号
/// 单次获取数量
///
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, false);
}
}
#endregion
#region 商品审批
///
/// 商品审批
///
/// Json格式数据
/// 记录结果
[WebMethod]
public string CommodityApply(string Json)
{
string _Result = "", _insertsql = "", _updatesql = "";
List _ListSQL = new List();
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 查询销售流水集合
///
/// 查询销售流水集合
///
/// 服务区 (加密)
/// 门店 (加密)
/// 开始销售时间
/// 结束销售时间
///
[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]
///
/// 发票查验参数
///
/// 发票代码
/// 发票号码
/// 开票日期
/// 金额(非专票随便填个值)
/// 校验码后六位(专票随便填个值)
/// 账号秘钥
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 方法 -> 获取人事人员信息
///
/// 获取人员信息
///
/// 手机号码
///
///
[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 "";
}
///
/// 获取人员信息
///
/// 手机号码,姓名,省份证号
///
[WebMethod]
public string get_staff(string PHONE_NUMBER, string STAFF_NAME, string ID_CARD_NO)
{
DataTable STAFF_List = null;
try
{
OracleHelper _OracleHelper = new OracleHelper(_connectstring.Split(',')[0],
_connectstring.Split(',')[1], _connectstring.Split(',')[2], _connectstring.Split(',')[3]);
string sqlStr = "";
if (!string.IsNullOrEmpty(PHONE_NUMBER))
{
sqlStr += (string.IsNullOrEmpty(sqlStr) ? "" : " OR ") + (string.IsNullOrEmpty(PHONE_NUMBER) ?
"" : " PHONE_NUMBER = '" + PHONE_NUMBER.ToDecrypt() + "'");
}
if (!string.IsNullOrEmpty(STAFF_NAME))
{
sqlStr += (string.IsNullOrEmpty(sqlStr) ? "" : " OR ") + (string.IsNullOrEmpty(STAFF_NAME) ?
"" : " STAFF_NAME = '" + STAFF_NAME.ToDecrypt() + "'");
}
if (!string.IsNullOrEmpty(ID_CARD_NO))
{
sqlStr += (string.IsNullOrEmpty(sqlStr) ? "" : " OR ") + (string.IsNullOrEmpty(ID_CARD_NO) ?
"" : " ID_CARD_NO = '" + ID_CARD_NO.ToDecrypt() + "'");
}
string str = "SELECT * FROM PERSONNEL_STORAGE.T_STAFF WHERE " + (string.IsNullOrEmpty(sqlStr) ? "1=2" : sqlStr);
STAFF_List = _OracleHelper.ExcuteSqlGetDataSet(str).Tables[0];
if (STAFF_List.Rows.Count > 0)
{
return JSonHelper.DataTableToJson(STAFF_List, "STAFF_List");
}
}
catch (Exception ex)
{
LogHelper.WriteSendLog(ex.ToString());
}
return "";
}
#endregion
#region 方法 -> 获取用户数据
[WebMethod]
public string get_user_list()
{
DataTable USER_List = null;
try
{
OracleHelper _OracleHelper = new OracleHelper(_connectstring.Split(',')[0],
_connectstring.Split(',')[1], _connectstring.Split(',')[2], _connectstring.Split(',')[3]);
string str = string.Format("SELECT * FROM PLATFORM_FRAMEWORK.T_USER");
USER_List = _OracleHelper.ExcuteSqlGetDataSet(str).Tables[0];
if (USER_List.Rows.Count > 0)
{
return JSonHelper.DataTableToJson(USER_List, "USER_List");
}
}
catch (Exception ex)
{
LogHelper.WriteSendLog(ex.ToString());
}
return "";
}
#endregion
#region 方法 -> 获取用户分类数据
[WebMethod]
public string get_usertype_list()
{
DataTable USER_List = null;
try
{
OracleHelper _OracleHelper = new OracleHelper(_connectstring.Split(',')[0],
_connectstring.Split(',')[1], _connectstring.Split(',')[2], _connectstring.Split(',')[3]);
string str = string.Format("SELECT * FROM PLATFORM_FRAMEWORK.T_USERTYPE ORDER BY USERTYPE_PID,USERTYPE_INDEX,USERTYPE_NAME");
USER_List = _OracleHelper.ExcuteSqlGetDataSet(str).Tables[0];
if (USER_List.Rows.Count > 0)
{
return JSonHelper.DataTableToJson(USER_List, "USERTYPE_List");
}
}
catch (Exception ex)
{
LogHelper.WriteSendLog(ex.ToString());
}
return "";
}
#endregion
#region 方法 -> 获取主订单信息
///
/// 获取门店主订单
///
/// 省份编码
/// 门店内码
/// 订单类型
/// 订单状态
/// 最小订单时间
///
[WebMethod]
public string 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 "";
}
}
///
/// 获取订单详情
///
/// 主订单内码
///
[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);
//}
///
/// 更新订单状态
///
/// 主订单内码
/// 订单状态
/// 接单收银机号
/// 订单打印时间
///
[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 方法 -> 获取移动支付交易结果
///
/// 获取移动支付交易结果
///
/// 服务区编码
/// 门店编码
/// 收银机编码
/// 交易订单号
///
[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 方法 ->获取门店移动支付通道配置
///
/// 获取门店移动支付通道配置
///
/// 服务区编码
/// 业态编码
///
[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 方法 -> 收银端数据反馈上传
///
/// 收银机反馈通用接口
///
/// 反馈类型:
/// StateFeedback、BaseInfoFeedback
/// json数据字符串
///
[WebMethod]
public string FeedbackUpload(string feedbackType, string jsonData)
{
if (string.IsNullOrWhiteSpace(feedbackType))
{
return Newtonsoft.Json.JsonConvert.SerializeObject(
new WebService.SDK.FeedbackResult()
{
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()
{
ResultCode = 999,
ResultDesc = $"系统异常:{ex.Message}"
});
}
}
#endregion
#region 方法 -> 收银端状态反馈通用下载接口
///
/// 收银机状态反馈通用下载接口
///
/// 下载类型:
/// CommodityMachine
/// 设备信息Json数据字符串
///
[WebMethod]
public string FeedbackDownload(string readType, string jsonData)
{
if (string.IsNullOrWhiteSpace(readType))
{
return Newtonsoft.Json.JsonConvert.SerializeObject(
new WebService.SDK.FeedbackResult()
{
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()
{
ResultCode = 999,
ResultDesc = $"系统异常:{ex.Message}"
});
}
}
#endregion
#region 方法 -> 消费赠礼
///
/// 上传赠送记录
///
/// json数据包
///
[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";
}
}
///
/// 获取赠礼剩余数量
///
///
///
///
[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 方法 -> 统一供配送中转接口
///
/// 商品信息下载接口
///
/// 总部Ajax地址
///
[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(" ", "");
pageHtml = HttpUtility.UrlDecode(pageHtml);
}
else
{
string action_type = url.Contains("action_type=") ? url.Split("action_type=")[1].Split("&")[0] : "";
string action_data = url.Contains("action_data=") ? url.Split("action_data=")[1].Split("&")[0] : "";
string action_record = url.Contains("action_record=") ? url.Split("action_record=")[1].Split("&")[0] : "";
switch (action_type)
{
case "DownLoadSeller":
DataSet _DataSet = new DataSet();
//商品类型
DataTable SELLERCOMMODITYTYPE_DataTable = _OracleHelper.ExcuteSqlGetDataSet(
"SELECT * FROM HIGHWAY_EXCHANGE.T_SELLERCOMMODITYTYPE ORDER BY TO_CHAR(TYPE_INDEX)").Tables[0];
SELLERCOMMODITYTYPE_DataTable.TableName = "T_SELLERCOMMODITYTYPE";
_DataSet.Tables.Add(SELLERCOMMODITYTYPE_DataTable.Copy());
//商品信息
string COMMODITY_SQLString = @"SELECT A.SELLERCOMMODITY_ID,SELLERBUSINESSTYPE,COMMODITY_CODE,
COMMODITY_NAME,COMMODITY_BARCODE,COMMODITY_BOXCODE,COMMODITY_ALLNAME,COMMODITY_EN,
COMMODITY_UNIT,COMMODITY_RULE,COMMODITY_ORI,COMMODITY_GRADE,COMMODITY_BOXSELLPRICE,
SELLPRICE,COMMODITY_SELLPRICE,SELLDUTY_PARAGRAPH,PURCHASE_BOXPRICE,COMMODITY_CURRPRICE,
COMMODITY_PURCHASEPRICE,DUTY_PARAGRAPH,MOVING_AVERAGEPRICE,MOVING_PURCHASEPRICE,
COMMODITY_STATE,COMMODITY_DESC,ADDTIME,ISBULK,METERINGMETHOD,SELLER_ID,
SELLERCOMMODITYTYPE_ID,NVL(B.BOXENTRY_COUNT,A.BOXENTRY_COUNT) AS BOXENTRY_COUNT,
SUPPLIER_ID,NULL AS IMAGE_CONTENT,NULL AS TABLE_ID,NULL AS IMAGE_PATH
FROM HIGHWAY_EXCHANGE.T_SELLERCOMMODITY A,
(SELECT * FROM (
SELECT BOXENTRY_COUNT,SELLERCOMMODITY_ID,
ROW_NUMBER()OVER(PARTITION BY SELLERCOMMODITY_ID
ORDER BY ROLEPRICE_ID DESC)COLNUM
FROM HIGHWAY_EXCHANGE.T_ROLEPRICE
WHERE ROLEPRICE_NAME = 2000 AND WAREHOUSE_ID = 1
) WHERE COLNUM = 1) B
WHERE A.SELLERCOMMODITY_ID = B.SELLERCOMMODITY_ID(+) AND EXISTS (SELECT 1
FROM HIGHWAY_EXCHANGE.T_COMMODITYEX C WHERE ',' || A.COMMODITY_BARCODE || ',' LIKE
'%,' || C.COMMODITY_BARCODE || ',%' AND SERVERPARTSHOP_ID = " +
(string.IsNullOrEmpty(action_record) ? "0" : action_record.Split('|').Length > 1 ?
action_record.Split('|')[1] : "0") + ")" + (string.IsNullOrEmpty(action_record) ?
"" : (action_record.Split('|')[0] == "" ? "" : " AND A.ADDTIME > TO_DATE('" +
action_record.Split('|')[0] + "','YYYY/MM/DD HH24:MI:SS')")) + " ORDER BY COMMODITY_CODE";
DataTable SELLERCOMMODITY_DataTable = _OracleHelper.ExcuteSqlGetDataSet(COMMODITY_SQLString).Tables[0];
SELLERCOMMODITY_DataTable.TableName = "T_SELLERCOMMODITY";
_DataSet.Tables.Add(SELLERCOMMODITY_DataTable.Copy());
//商品价格信息
string PRICESQLString = string.Format(@"SELECT C.SHOPPRICE_ID,B.ROLEPRICE_ID,
B.SELLER_ID,B.SUPPLIER_ID,B.SELLERCOMMODITY_ID,B.COMMODITY_CODE,B.BARCODE,
B.ROLEPRICE_NAME,B.COMMODITY_BOXSELLPRICE,B.SELLTAXPRICE,B.SELLPRICE,
B.SELLDUTY_PARAGRAPH,NULL AS COMMODITY_BOXCOSTPRICE,
B.COSTTAXPRICE,B.COSTPRICE,B.DUTY_PARAGRAPH,B.ROLEPRICE_DESC
FROM
HIGHWAY_EXCHANGE.T_ROLEPRICE B
INNER JOIN
HIGHWAY_EXCHANGE.T_SHOPPRICE C
ON
C.PRICE_TYPE = B.ROLEPRICE_NAME AND B.SELLERCOMMODITY_ID = C.SELLERCOMMODITY_ID
WHERE B.ROLEPRICE_NAME <> '2000' AND ',' || C.SERVERPARTSHOP_ID || ',' LIKE '%,{0},%' AND
EXISTS (SELECT 1 FROM HIGHWAY_EXCHANGE.T_SELLERCOMMODITY A
WHERE COMMODITY_STATE = 1 AND A.SELLERCOMMODITY_ID = B.SELLERCOMMODITY_ID)
UNION ALL
SELECT C.SHOPPRICE_ID,B.ROLEPRICE_ID,B.SELLER_ID,B.SUPPLIER_ID,
B.SELLERCOMMODITY_ID,B.COMMODITY_CODE,B.BARCODE,B.ROLEPRICE_NAME,
B.COMMODITY_BOXSELLPRICE,B.SELLTAXPRICE,B.SELLPRICE,
B.SELLDUTY_PARAGRAPH,NULL AS COMMODITY_BOXCOSTPRICE,
B.COSTTAXPRICE,B.COSTPRICE,B.DUTY_PARAGRAPH,B.ROLEPRICE_DESC
FROM
HIGHWAY_EXCHANGE.T_ROLEPRICE B
INNER JOIN
(SELECT * FROM HIGHWAY_EXCHANGE.T_SHOPPRICE WHERE SELLERCOMMODITY_ID IS NULL) C
ON
C.PRICE_TYPE = B.ROLEPRICE_NAME
WHERE B.ROLEPRICE_NAME <> '2000' AND NOT EXISTS(SELECT 1 FROM HIGHWAY_EXCHANGE.T_SHOPPRICE D
WHERE B.SELLERCOMMODITY_ID = D.SELLERCOMMODITY_ID AND
',' || D.SERVERPARTSHOP_ID || ',' LIKE '%,{0},%') AND
EXISTS (SELECT 1 FROM HIGHWAY_EXCHANGE.T_SELLERCOMMODITY A
WHERE COMMODITY_STATE = 1 AND A.SELLERCOMMODITY_ID = B.SELLERCOMMODITY_ID) AND
',' || C.SERVERPARTSHOP_ID || ',' LIKE '%,{0},%'", (string.IsNullOrEmpty(action_record) ?
"0" : action_record.Split('|').Length > 1 ? action_record.Split('|')[1] : "0"));
DataTable ROLEPRICE_DataTable = _OracleHelper.ExcuteSqlGetDataSet(PRICESQLString).Tables[0];
ROLEPRICE_DataTable.TableName = "T_ROLEPRICE";
_DataSet.Tables.Add(ROLEPRICE_DataTable.Copy());
pageHtml = JSonHelper.DataSetToJsons(_DataSet);
break;
case "GetScoreSetting":
DataTable T_SHOPPRICE = new DataTable();
DataTable T_SELLERCOMMODITY = _OracleHelper.ExcuteSqlGetDataSet(
@"SELECT MAX(ADDTIME) FROM HIGHWAY_EXCHANGE.T_SELLERCOMMODITY A,HIGHWAY_EXCHANGE.T_COMMODITYEX C
WHERE ',' || A.COMMODITY_BARCODE || ',' LIKE '%,' || C.COMMODITY_BARCODE || ',%' AND
SERVERPARTSHOP_ID = " + action_data).Tables[0];
DataTable _DataTable = _OracleHelper.ExcuteSqlGetDataSet(
@"SELECT 1 AS SCORESETTING_ID,NULL AS SCORE_TYPE,NULL AS SCORE_NAME,
NULL AS EXCHANGE_BASE,NULL AS CONVERTIBLE_PROPORTION,NULL AS MEET_AMOUNT,
NULL AS EARN_POINTS,NULL AS START_DATE,NULL AS END_DATE,NULL AS EXPIRY_DATE,
NULL AS SCORESETTING_STATE,NULL AS ADDTIME,NULL AS STAFF_ID,NULL AS STAFF_NAME,
NULL AS OPERATE_DATE,NULL AS SCORESETTING_DESC,NULL AS PRICE_TYPE FROM DUAL").Tables[0];
if (!string.IsNullOrEmpty(action_data))
{
T_SHOPPRICE = _OracleHelper.ExcuteSqlGetDataSet(
"SELECT * FROM HIGHWAY_EXCHANGE.T_SHOPPRICE WHERE ',' || SERVERPARTSHOP_ID || ',' LIKE '%," +
action_data + ",%' ORDER BY OPERATE_DATE DESC").Tables[0];
}
for (int RowCount = 0; RowCount < _DataTable.Rows.Count; RowCount++)
{
_DataTable.Rows[RowCount]["ADDTIME"] = T_SELLERCOMMODITY.Rows.Count > 0 ?
T_SELLERCOMMODITY.Rows[0][0].ToString() : "";
if (T_SHOPPRICE.Rows.Count > 0)
{
_DataTable.Rows[RowCount]["PRICE_TYPE"] = T_SHOPPRICE.Rows[0]["PRICE_TYPE"].ToString();
if (T_SHOPPRICE.Rows[0]["PRICE_TYPE"].ToString() == "1000")
{
_DataTable.Rows[RowCount]["SCORE_NAME"] = "";
}
}
}
pageHtml = JSonHelper.DataTableToJson(_DataTable);
break;
default:
WebClient _WebClient = new WebClient();
//获取或设置用于向Internet资源的请求进行身份验证的网络凭据
_WebClient.Credentials = CredentialCache.DefaultCredentials;
Byte[] pageData = _WebClient.DownloadData(url); //从指定网站下载数据
pageHtml = Encoding.UTF8.GetString(pageData);
int index = pageHtml.IndexOf(":");
pageHtml = pageHtml.Substring(index + 1, pageHtml.Length - index - 2);
pageHtml = pageHtml.Replace(" ", "");
pageHtml = HttpUtility.UrlDecode(pageHtml);
break;
}
}
return pageHtml;
}
catch (WebException webEx)
{
return webEx.Message;
}
}
///
/// 报货单上传、配送单确认、其他外网服务数据传输接口
///
/// 网址接口地址
/// 接口参数数据
///
[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接口
///
/// 代理转发调用WebService接口
///
/// 接口主地址
/// 接口名称
/// 接口参数集合
///
[WebMethod]
public string ProxyInterface(string url, string methodName, string parameter)
{
Hashtable hashtable = JsonConvert.DeserializeObject(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.MerchantPosCode = _Merchant.Split('|')[1];
}
if (_Merchant.Split('|').Count() > 2)
{
_PayMerchant.MerchantKey = _Merchant.Split('|')[2];
}
if (_Merchant.Split('|').Count() > 5)
{
_PayMerchant.UserID = _Merchant.Split('|')[3];
_PayMerchant.UserPassword = _Merchant.Split('|')[4];
_PayMerchant.CertPassword = _Merchant.Split('|')[5];
}
}
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];
}
if (_Merchant.Split('|').Count() > 2)
{
MerchantInfo[2] = _Merchant.Split('|')[2];
}
}
return MerchantInfo;
}
#endregion
}
}