更新一大堆代码

This commit is contained in:
2025-10-21 11:27:52 +08:00
parent d40ea96e27
commit eac8627c20
24 changed files with 2333 additions and 31 deletions

View File

@@ -288,7 +288,12 @@ namespace MyCode.Project.Infrastructure.Enumeration
/// 创建入库申请单并入库
/// </summary>
[Enum("创建入库申请单并入库", "erp.stock.createandstockin")]
CREATEANDSTOCKIN,
CREATEANDSTOCKIN,
/// <summary>
/// 分页查询退换补发单(新)
/// </summary>
[Enum("分页查询退换补发单(新)", "ass-business.returnchange.fullinfoget")]
RETURNCHANGE,
}
}

View File

@@ -0,0 +1,340 @@
using MyCode.Project.Infrastructure.Common;
using NPOI.POIFS.FileSystem;
using System;
using System.Collections.Generic;
using System.Collections.Specialized;
using System.IO;
using System.Linq;
using System.Net;
using System.Security.Cryptography;
using System.Text;
using System.Threading.Tasks;
namespace MyCode.Project.Infrastructure.JackYun
{
/// <summary>
/// http 接口类
/// </summary>
public class JackyunOpenHttpUtils
{
# region
/// <summary>
/// 并发控制锁对象
/// </summary>
private static readonly Object __LOCK__ = new Object();
/// <summary>
/// 在吉客云开放平台上申请的Appekey
/// </summary>
private const string APPKEY = "71030238";//"21578653";
/// <summary>
/// 在吉客云开放平台上申请的AppeSecret
/// </summary>
private const string APPSECRET = "0fbe36cc4308405cacadf516338be4c8";// "d6ea919cb75a44879fcdbea211066b9c";
private const string customerJackyunUser = "887868"; //吉客云号
/// <summary>
///
/// </summary>
private const string Token = "c421527ef46ae6b3654fe73fef13c3e0";
/// <summary>
/// 吉客云开放平台网关
/// </summary>
private const string GATEWAY = "https://open.jackyun.com/open/openapi/do";
//private const string GATEWAY = "http://localhost:9090/open/openapi/do";
#endregion
#region http Post方法
/// <summary>
/// 请求开放平台的Post方法
/// </summary>
/// <param name="method">方法名</param>
/// <param name="version">版本号</param>
/// <param name="bizData">业务参数信息</param>
/// <returns></returns>
public static string Post(string method, string version, BaseRequestBizData bizData)
{
// 构造请求参数(name1=value1&name2=value2格式)。
var dic = new SortedDictionary<string, string>();
dic.Add("method", method);
dic.Add("appkey", APPKEY);
dic.Add("version", version);
dic.Add("contenttype", "json");
dic.Add("timestamp", DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"));
//dic.Add("customerJackyunUser", customerJackyunUser);
dic.Add("bizcontent", JsonHelper.ToJson(bizData));
// 构建待签名的字符串。
StringBuilder sbSignData = new StringBuilder(APPSECRET);
foreach (var entry in dic)
{
sbSignData.Append(entry.Key + entry.Value);
}
sbSignData.Append(APPSECRET);
string signStr = sbSignData.ToString().ToLower();
// 生成签名。
dic.Add("sign", MakeMD5(sbSignData.ToString().ToLower(), Encoding.UTF8));
//构造请求参数(name1=value1&name2=value2格式)
StringBuilder sbPostData = new StringBuilder();
foreach (var entry in dic)
{
sbPostData.Append("&").Append(entry.Key).Append("=").Append(entry.Value);
}
sbPostData.Append("&").Append("token").Append("=").Append(Token);
string postDataStr = sbPostData.ToString().Substring(1);
LogHelper.Info("postDataStr:"+postDataStr);
return postData(GATEWAY, postDataStr);
}
#endregion
#region MD5方法
/// <summary>
/// 生成MD5码。
/// </summary>
/// <param name="original">待生成字符串</param>
/// <param name="encoding">编码格式</param>
/// <returns></returns>
public static string MakeMD5(string original, Encoding encoding)
{
var hashmd5 = new MD5CryptoServiceProvider();
byte[] byteOriginal = hashmd5.ComputeHash(encoding.GetBytes(original));
StringBuilder ciphertext = new StringBuilder(32);
for (int i = 0; i < byteOriginal.Length; i++)
{
ciphertext.Append(byteOriginal[i].ToString("x").PadLeft(2, '0'));
}
return ciphertext.ToString();
}
#endregion
#region http
#region http post
/// <summary>
/// http post 请求方法。
/// </summary>
/// <param name="url">路径</param>
/// <param name="data">发送的数据(name1=value1&name2=value2)格式</param>
/// <returns>HTTP-Post返回结果</returns>
public static string postData(string url, string data)
{
return postData(url, data, Encoding.UTF8, 300000);
}
public static string postData(string url, string postData, Encoding encoding, int timeOut)
{
string method = "POST";
return Request(url, postData, method, null, null, null, timeOut, null, encoding, null);
}
/// <summary>
/// 通用请求。
/// </summary>
/// <param name="url">地址</param>
/// <param name="postData">请求数据(当为GET时自动追加到url中)</param>
/// <param name="method">请求方式</param>
/// <param name="accept">Accept 标识</param>
/// <param name="contentType">ContentType标识</param>
/// <param name="host">Host 标识</param>
/// <param name="timeout">超时时间</param>
/// <param name="headers">请求头部文件</param>
/// <param name="spType">安全协议</param>
/// <param name="en">字符编码</param>
/// <returns>http请求结果</returns>
public static string Request(string url, string postData, string method, string accept, string contentType, string host, int timeout, NameValueCollection headers, Encoding en, SecurityProtocolType? spType)
{
//字符编码。
if (null == en)
en = Encoding.UTF8;
//超时时间。
if (timeout <= 0)
timeout = 60000;
//自动拼接GET请求的URL。
if (method.ToUpper().Equals("GET") && !string.IsNullOrEmpty(postData))
{
if (url.IndexOf("?") > 0)
url += "&" + postData;
else
url += "?" + postData;
}
//创建请求。
var request = CreateHttpWebRequest(url, method, accept, contentType, host, timeout, headers, en, spType);
//如果是非GET加入POST数据流。
if (!method.ToUpper().Equals("GET") && !string.IsNullOrEmpty(postData))
WriteBytes(request, postData, en);
return ResponseString(request, en);
}
#endregion
#region HttpWebRequest对象
/// <summary>
/// 创建HttpWebRequest对象。
/// </summary>
/// <param name="url">地址</param>
/// <param name="method">请求方式Post Get Put Delete</param>
/// <param name="accept">Accept 标识</param>
/// <param name="contentType">ContentType 标识</param>
/// <param name="host">Host 标识</param>
/// <param name="timeout">超时时间</param>
/// <param name="headers">请求头部参数</param>
/// <param name="spType">安全协议标识</param>
/// <returns>HttpWebRequest</returns>
public static HttpWebRequest CreateHttpWebRequest(string url, string method, string accept, string contentType, string host, int timeout, NameValueCollection headers, Encoding en, SecurityProtocolType? spType)
{
var request = WebRequest.Create(url) as HttpWebRequest;
request.KeepAlive = false;
request.AllowAutoRedirect = true;
request.Timeout = timeout;
request.UserAgent = "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:36.0) Gecko/20100101 Firefox/36.0";
//请求方式 默认为Post
if (string.IsNullOrEmpty(method))
method = "Post";
request.Method = method;
//Accept 标识 默认text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
if (string.IsNullOrEmpty(accept))
accept = "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8";
request.Accept = accept;
//ContentType 标识 默认"application/x-www-form-urlencoded; charset=" + this.Encode.WebName
if (string.IsNullOrEmpty(contentType))
contentType = "application/x-www-form-urlencoded; charset=" + en.WebName;
request.ContentType = contentType;
///Host 标识
if (!string.IsNullOrEmpty(host))
request.Host = host;
//头部文件
if (headers != null)
{
foreach (string item in headers.Keys)
{
//特殊处理前端将Content-Type加到requestHeaders中这里进行处理。
if (string.Equals(item, "Content-Type", StringComparison.CurrentCultureIgnoreCase))
{
request.ContentType = headers[item];
continue;
}
else if (string.Equals(item, "Host", StringComparison.CurrentCultureIgnoreCase))
{
request.Host = headers[item];
continue;
}
else if (string.Equals(item, "ProtocolVersion", StringComparison.CurrentCultureIgnoreCase))
{
request.ProtocolVersion = string.Equals("Version10", headers[item], StringComparison.CurrentCultureIgnoreCase) ? HttpVersion.Version10 : HttpVersion.Version11;
continue;
}
request.Headers[item] = headers[item];
}
}
//Https安全协议
if (url.StartsWith("https", StringComparison.OrdinalIgnoreCase))
{
if (spType != null)
ServicePointManager.SecurityProtocol = spType.Value;
ServicePointManager.ServerCertificateValidationCallback = new System.Net.Security.RemoteCertificateValidationCallback(delegate { return true; });
request.Credentials = CredentialCache.DefaultCredentials;
}
return request;
}
#endregion
#region POST请求字节流
/// <summary>
/// 写入POST请求字节流。
/// </summary>
/// <param name="request">http请求</param>
/// <param name="senddate">请求参数</param>
/// <param name="en">字符编码</param>
private static void WriteBytes(HttpWebRequest request, string postData, Encoding en)
{
if (null == postData)
return;
var buffer = en.GetBytes(postData);
request.ContentLength = buffer.Length;
using (var reqStream = request.GetRequestStream())
{
reqStream.Write(buffer, 0, buffer.Length);
}
}
#endregion
#region
/// <summary>
/// 输出字符串。
/// </summary>
/// <param name="request">HttpWebRequest</param>
/// <param name="en">字符编码</param>
/// <returns>输出字节流</returns>
private static string ResponseString(HttpWebRequest request, Encoding en)
{
using (var res = GetResponse(request))
{
if (null == en || en == Encoding.UTF32)
en = Encoding.GetEncoding(res.CharacterSet);
using (Stream resStream = res.GetResponseStream())
{
using (var sr = new StreamReader(resStream, en))
{
return sr.ReadToEnd();
}
}
}
}
#endregion
#region
/// <summary>
/// 获取网络资源的响应。
/// </summary>
/// <param name="request">http请求对象</param>
/// <returns></returns>
private static HttpWebResponse GetResponse(HttpWebRequest request)
{
try
{
return (HttpWebResponse)request.GetResponse();
}
catch (WebException ex)
{
var res = (HttpWebResponse)ex.Response;
if (res == null)
throw;
return res;
}
}
#endregion
#endregion
}
}

View File

@@ -85,7 +85,7 @@ namespace MyCode.Project.Infrastructure.JackYun
}
sbPostData.Append("&").Append("token").Append("=").Append(Token);
string postDataStr = sbPostData.ToString().Substring(1);
LogHelper.Info("postDataStr:"+postDataStr);
LogHelper.Info("postDataStr:" + postDataStr);
return postData(GATEWAY, postDataStr);
}

View File

@@ -0,0 +1,796 @@
using SqlSugar;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace MyCode.Project.Infrastructure.JackYun
{
public class ReturnChangeData
{
/// <summary>
/// 退货订单
/// </summary>
public List<ReturnChangeListResp> returnChangeList { get; set; }
/// <summary>
/// 总数Integer类型长度4
/// </summary>
public int TotalResults { get; set; }
/// <summary>
/// 每页显示数据量Integer类型长度4
/// </summary>
public int PageSize { get; set; }
/// <summary>
/// 当前页码Integer类型长度4
/// </summary>
public int PageIndex { get; set; }
/// <summary>
/// 敏感数据标识Boolean类型长度10
/// </summary>
public bool SensitiveData { get; set; }
/// <summary>
/// 总数Integer类型长度100
/// </summary>
public int TotalRecords { get; set; }
/// <summary>
/// 分页信息Object类型无长度
/// </summary>
public PageInfo PageInfo { get; set; }
}
/// <summary>
/// 退换补发单结果集合
/// </summary>
public class ReturnChangeListResp
{
/// <summary>
/// 售后单系统Id
/// </summary>
public long TradeAfterId { get; set; }
/// <summary>
/// 售后单编号
/// </summary>
public string ReturnChangeNo { get; set; }
/// <summary>
/// 售后单来源1手工新建4纠纷单5Excel导入6门店7网店下载8错漏9异常件创建
/// </summary>
public int TradeAfterFrom { get; set; }
/// <summary>
/// 售后单状态1000预入库待确认1001待审核1002待收货1003待结算1004已结算待收货1005已收货待结算1007已完成1008已取消1009已拒绝1010待支付1014待退货-待通知退货1015待退货-已通知退货10081已取消-被合并10082已取消-被拆分)
/// </summary>
public string TradeAfterStatus { get; set; }
/// <summary>
/// 系统订单id
/// </summary>
public string TradeId { get; set; }
/// <summary>
/// 系统订单号
/// </summary>
public string TradeNo { get; set; }
/// <summary>
/// 网店订单号
/// </summary>
public string SourceTradeNo { get; set; }
/// <summary>
/// 网点售后单号
/// </summary>
public string SourceTradeAfterNo { get; set; }
/// <summary>
/// 退货仓库id
/// </summary>
public long WarehouseId { get; set; }
/// <summary>
/// 退货仓库编码
/// </summary>
public string WarehouseCode { get; set; }
/// <summary>
/// 退货仓库名称
/// </summary>
public string WarehouseName { get; set; }
/// <summary>
/// 物流公司id
/// </summary>
public long LogisticId { get; set; }
/// <summary>
/// 物流名称
/// </summary>
public string LogisticName { get; set; }
/// <summary>
/// 发货仓库id
/// </summary>
public long SendWarehouseId { get; set; }
/// <summary>
/// 发货仓库名称
/// </summary>
public string SendWarehouseName { get; set; }
/// <summary>
/// 物流单号
/// </summary>
public string MainPostid { get; set; }
/// <summary>
/// 销售渠道id
/// </summary>
public long ShopId { get; set; }
/// <summary>
/// 销售渠道
/// </summary>
public string ShopName { get; set; }
/// <summary>
/// 销售渠道Code
/// </summary>
public string ShopCode { get; set; }
/// <summary>
/// 公司ID
/// </summary>
public long CompanyId { get; set; }
/// <summary>
/// 公司名称
/// </summary>
public string CompanyName { get; set; }
/// <summary>
/// 原订单渠道id
/// </summary>
public long SourceShopId { get; set; }
/// <summary>
/// 原订单渠道
/// </summary>
public string SourceShopName { get; set; }
/// <summary>
/// 售后原因描述
/// </summary>
public string ReasonDesc { get; set; }
/// <summary>
/// 取消售后原因描述
/// </summary>
public string CancelReasonDesc { get; set; }
/// <summary>
/// 拒绝售后原因描述
/// </summary>
public string RejectReasonDesc { get; set; }
/// <summary>
/// 问题描述
/// </summary>
public string ProbleamDesc { get; set; }
/// <summary>
/// 客户备注
/// </summary>
public string CustomerRemark { get; set; }
/// <summary>
/// 客服备注
/// </summary>
public string ServiceRemark { get; set; }
/// <summary>
/// 审核时间
/// </summary>
public string AuditTime { get; set; }
/// <summary>
/// 收货时间
/// </summary>
public string DeliveryTime { get; set; }
/// <summary>
/// 发货时间
/// </summary>
public string ConsignTime { get; set; }
/// <summary>
/// 货品摘要
/// </summary>
public string Goodslist { get; set; }
/// <summary>
/// 标记id
/// </summary>
public string FlagIds { get; set; }
/// <summary>
/// 标记名称
/// </summary>
public string FlagNames { get; set; }
/// <summary>
/// 登记人id
/// </summary>
public long RegisterId { get; set; }
/// <summary>
/// 登记人
/// </summary>
public string Registrant { get; set; }
/// <summary>
/// 责任人code
/// </summary>
public long ResponsiblePersonCode { get; set; }
/// <summary>
/// 责任人描述
/// </summary>
public string ResponsiblePersonDesc { get; set; }
/// <summary>
/// 三方仓入库单号
/// </summary>
public string StockInNo { get; set; }
/// <summary>
/// 收货单号
/// </summary>
public string DeliveryNo { get; set; }
/// <summary>
/// 收货经办人
/// </summary>
public string DeliveryPerson { get; set; }
/// <summary>
/// 审核人id
/// </summary>
public long AuditorId { get; set; }
/// <summary>
/// 审核人
/// </summary>
public string Auditor { get; set; }
/// <summary>
/// 源仓库id
/// </summary>
public long SourceWarehouseId { get; set; }
/// <summary>
/// 源仓库名称
/// </summary>
public string SourceWarehouseName { get; set; }
/// <summary>
/// 订单摘要
/// </summary>
public string TradeOrderSummary { get; set; }
/// <summary>
/// 冻结标记1冻结0未冻结
/// </summary>
public int IsFreeze { get; set; }
/// <summary>
/// 冻结原因
/// </summary>
public string FreezeReason { get; set; }
/// <summary>
/// 建单时间
/// </summary>
public string GmtCreate { get; set; }
/// <summary>
/// 最后修改时间
/// </summary>
public string GmtModified { get; set; }
/// <summary>
/// 原销售单状态
/// </summary>
public int SourceTradeStatus { get; set; }
/// <summary>
/// 退货货品信息
/// </summary>
public List<JkyReturnChangeGoodsDetail> ReturnChangeGoodsDetail { get; set; }
/// <summary>
/// 售后类型String类型无长度
/// </summary>
public string TradeAfterType { get; set; }
/// <summary>
/// 售后类型说明String类型无长度
/// </summary>
public string TradeAfterTypeExplain { get; set; }
}
public class PageInfo
{
/// <summary>
/// 当前页码
/// </summary>
public int pageIndex { get; set; }
/// <summary>
/// 每页显示数据量
/// </summary>
public int pageSize { get; set; }
/// <summary>
/// 排序字段
/// </summary>
public string sortOrder { get; set; }
/// <summary>
/// 倒序或升序文本
/// </summary>
public string sortField { get; set; }
/// <summary>
/// 总数(
/// </summary>
public int total { get; set; }
}
/// <summary>
/// 货品信息
/// </summary>
public class JkyReturnChangeGoodsDetail
{
/// <summary>
/// 售后订单id
/// </summary>
public long TradeAfterId { get; set; }
/// <summary>
/// 货品id
/// </summary>
public long SubTradeId { get; set; }
/// <summary>
/// 货品编号id
/// </summary>
public long GoodsId { get; set; }
/// <summary>
/// 货品编号
/// </summary>
public string GoodsNo { get; set; }
/// <summary>
/// 货品名称
/// </summary>
public string GoodsName { get; set; }
/// <summary>
/// 规格id
/// </summary>
public long SpecId { get; set; }
/// <summary>
/// 规格名称
/// </summary>
public string SpecName { get; set; }
/// <summary>
/// 单位
/// </summary>
public string Unit { get; set; }
/// <summary>
/// 单价
/// </summary>
public decimal Price { get; set; }
/// <summary>
/// 销售单数量
/// </summary>
public decimal SellCount { get; set; }
/// <summary>
/// 售后原因描述
/// </summary>
public string ReasonDesc { get; set; }
/// <summary>
/// 退货数量
/// </summary>
public decimal ReturnCount { get; set; }
/// <summary>
/// 退货金额
/// </summary>
public decimal ReturnFee { get; set; }
/// <summary>
/// 发货数量
/// </summary>
public decimal SendCount { get; set; }
/// <summary>
/// 退货优惠
/// </summary>
public decimal ReturnDiscounts { get; set; }
/// <summary>
/// 发货优惠
/// </summary>
public decimal SendDiscounts { get; set; }
/// <summary>
/// 发货金额
/// </summary>
public decimal SendFee { get; set; }
/// <summary>
/// 应退金额
/// </summary>
public decimal ShouldReturnFee { get; set; }
/// <summary>
/// 备注
/// </summary>
public string Remark { get; set; }
/// <summary>
/// 货品业务特性1定制生产转生产后发货2虚拟物品/服务无仓储作业3卡券结算冲抵4代销转供应商发货5预售品转预售单6序列号管理单品跟踪7需上门安装发货后转工单
/// </summary>
public int GoodsAttribute { get; set; }
/// <summary>
/// 修改时间
/// </summary>
public string GmtModified { get; set; }
/// <summary>
/// 退换单创建时间
/// </summary>
public string GmtCreate { get; set; }
/// <summary>
/// 条码
/// </summary>
public string Barcode { get; set; }
/// <summary>
/// 金额
/// </summary>
public decimal SellTotal { get; set; }
/// <summary>
/// 实退数量
/// </summary>
public decimal DeliveryCount { get; set; }
/// <summary>
/// 组合装标记1是组合装0不是组合装
/// </summary>
public int IsFit { get; set; }
/// <summary>
/// 赠品标记1是赠品0不是赠品
/// </summary>
public int IsGift { get; set; }
/// <summary>
/// 分摊后退货金额
/// </summary>
public decimal ShareReturnFee { get; set; }
/// <summary>
/// 分摊后发货金额
/// </summary>
public decimal ShareSendFee { get; set; }
/// <summary>
/// 分摊后应退金额
/// </summary>
public decimal ShareShouldReturnFee { get; set; }
/// <summary>
/// 货品批次信息
/// </summary>
public List<GoodsBatchInfo> GoodsBatchInfoList { get; set; }
/// <summary>
/// 网店子订单编号
/// </summary>
public string SourceSubtradeNo { get; set; }
/// <summary>
/// 次品数量
/// </summary>
public string DefectiveAmount { get; set; }
/// <summary>
/// 品牌
/// </summary>
public string BrandName { get; set; }
/// <summary>
/// 唯一码
/// </summary>
public string GoodsSerial { get; set; }
/// <summary>
/// 平台商品ID
/// </summary>
public string PlatGoodsId { get; set; }
}
/// <summary>
/// 货品批次信息
/// </summary>
public class GoodsBatchInfo
{
/// <summary>
/// 批次号
/// </summary>
public string BatchNo { get; set; }
/// <summary>
/// 批次数量
/// </summary>
public decimal BatchAmount { get; set; }
/// <summary>
/// 生产日期
/// </summary>
public string ProductionDate { get; set; }
/// <summary>
/// 到期日期
/// </summary>
public string ExpirationDate { get; set; }
}
/// <summary>
/// 售后订单主表
/// </summary>
public class TradeAfter
{
/// <summary>
/// 售后订单ID
/// </summary>
public long TradeAfterId { get; set; }
/// <summary>
/// 货品信息列表
/// </summary>
public List<TradeAfterGoods> GoodsInfoList { get; set; }
/// <summary>
/// 结算信息
/// </summary>
public ReturnChangePay PaymentInfo { get; set; }
/// <summary>
/// 收件人信息
/// </summary>
public ReturnChangeReceiver ReceiverInfo { get; set; }
/// <summary>
/// 补发销售单号列表
/// </summary>
public List<string> SendTradeNo { get; set; }
/// <summary>
/// 退货销售单号列表
/// </summary>
public List<string> ReturnTradeNo { get; set; }
}
/// <summary>
/// 售后订单货品信息
/// </summary>
public class TradeAfterGoods
{
/// <summary>
/// 货品ID
/// </summary>
public long SubTradeId { get; set; }
/// <summary>
/// 货品编号ID
/// </summary>
public long GoodsId { get; set; }
/// <summary>
/// 货品编号
/// </summary>
public string GoodsNo { get; set; }
/// <summary>
/// 货品名称
/// </summary>
public string GoodsName { get; set; }
/// <summary>
/// 规格ID
/// </summary>
public long SpecId { get; set; }
/// <summary>
/// 规格名称
/// </summary>
public string SpecName { get; set; }
/// <summary>
/// 单位
/// </summary>
public string Unit { get; set; }
/// <summary>
/// 单价
/// </summary>
public decimal Price { get; set; }
/// <summary>
/// 销售单数量
/// </summary>
public decimal SellCount { get; set; }
/// <summary>
/// 售后原因描述
/// </summary>
public string ReasonDesc { get; set; }
/// <summary>
/// 退货数量
/// </summary>
public decimal ReturnCount { get; set; }
/// <summary>
/// 退货金额
/// </summary>
public decimal ReturnFee { get; set; }
/// <summary>
/// 发货数量
/// </summary>
public decimal SendCount { get; set; }
/// <summary>
/// 发货金额
/// </summary>
public decimal SendFee { get; set; }
/// <summary>
/// 应退金额
/// </summary>
public decimal ShouldReturnFee { get; set; }
/// <summary>
/// 备注
/// </summary>
public string Remark { get; set; }
/// <summary>
/// 货品批次信息列表
/// </summary>
public List<GoodsBatchInfo> GoodsBatchInfoList { get; set; }
}
/// <summary>
/// 结算信息
/// </summary>
public class ReturnChangePay
{
/// <summary>
/// 退货金额
/// </summary>
public decimal ReturnAccounts { get; set; }
/// <summary>
/// 发货金额
/// </summary>
public decimal SendAccounts { get; set; }
/// <summary>
/// 应退合计
/// </summary>
public decimal ReturnTotal { get; set; }
/// <summary>
/// 结算币种
/// </summary>
public string SettlementCurrency { get; set; }
/// <summary>
/// 结算币种code
/// </summary>
public string SettlementCurrencyCode { get; set; }
/// <summary>
/// 付款状态0未付款1部分付款2已付款
/// </summary>
public int PayStatus { get; set; }
/// <summary>
/// 付款金额
/// </summary>
public decimal PayAccounts { get; set; }
/// <summary>
/// 付款时间
/// </summary>
public string PayTime { get; set; }
}
/// <summary>
/// 收件人信息
/// </summary>
public class ReturnChangeReceiver
{
/// <summary>
/// 客户名称
/// </summary>
public string CustomerName { get; set; }
/// <summary>
/// 客户账户
/// </summary>
public string CustomerAccount { get; set; }
/// <summary>
/// 邮编
/// </summary>
public string Zip { get; set; }
/// <summary>
/// 国家
/// </summary>
public string Country { get; set; }
/// <summary>
/// 省
/// </summary>
public string State { get; set; }
/// <summary>
/// 城市
/// </summary>
public string City { get; set; }
/// <summary>
/// 区县
/// </summary>
public string District { get; set; }
/// <summary>
/// 街道
/// </summary>
public string Town { get; set; }
}
}

View File

@@ -193,9 +193,15 @@ namespace MyCode.Project.Infrastructure.JackYun
/// </summary>
public int apiType { get; set; }
/// <summary>
/// 货品详情
/// 销售货品详情
/// </summary>
public List<GoodsDetailItem> goodsDetail { get; set; }
/// <summary>
/// 退货货品信息
/// </summary>
public List<JkyReturnChangeGoodsDetail> ReturnChangeGoodsDetail { get; set; }
/// <summary>
/// 系统编码
/// </summary>
@@ -247,7 +253,7 @@ namespace MyCode.Project.Infrastructure.JackYun
public string scrollId { get; set; }
}
public class TradeFullinfogetResp
public class TradeFullinfogetResp<T>
{
/// <summary>
///
@@ -256,7 +262,7 @@ namespace MyCode.Project.Infrastructure.JackYun
/// <summary>
///
/// </summary>
public TradeFullinfogetData data { get; set; }
public T data { get; set; }
/// <summary>
///
/// </summary>

View File

@@ -267,6 +267,7 @@
<Compile Include="JackYun\EnumAttribute.cs" />
<Compile Include="JackYun\GoodsDetail.cs" />
<Compile Include="JackYun\JackyunResponse.cs" />
<Compile Include="JackYun\ReturnChangeListResp.cs" />
<Compile Include="JackYun\TradeFullinfogetResp.cs" />
<Compile Include="PayModels\ExtendedGateway.cs" />
<Compile Include="PayModels\FuiouBarcodepay.cs" />