diff --git a/TradeManageNew/APIClients/ShopifyApi/ShopifyAPIClient.cs b/TradeManageNew/APIClients/ShopifyApi/ShopifyAPIClient.cs new file mode 100644 index 0000000..b63349a --- /dev/null +++ b/TradeManageNew/APIClients/ShopifyApi/ShopifyAPIClient.cs @@ -0,0 +1,2669 @@ +//---------------------- +// +// Generated using the NSwag toolchain v14.1.0.0 (NJsonSchema v11.0.2.0 (Newtonsoft.Json v13.0.0.0)) (http://NSwag.org) +// +//---------------------- + +#pragma warning disable 108 // Disable "CS0108 '{derivedDto}.ToJson()' hides inherited member '{dtoBase}.ToJson()'. Use the new keyword if hiding was intended." +#pragma warning disable 114 // Disable "CS0114 '{derivedDto}.RaisePropertyChanged(String)' hides inherited member 'dtoBase.RaisePropertyChanged(String)'. To make the current member override that implementation, add the override keyword. Otherwise add the new keyword." +#pragma warning disable 472 // Disable "CS0472 The result of the expression is always 'false' since a value of type 'Int32' is never equal to 'null' of type 'Int32?' +#pragma warning disable 612 // Disable "CS0612 '...' is obsolete" +#pragma warning disable 649 // Disable "CS0649 Field is never assigned to, and will always have its default value null" +#pragma warning disable 1573 // Disable "CS1573 Parameter '...' has no matching param tag in the XML comment for ... +#pragma warning disable 1591 // Disable "CS1591 Missing XML comment for publicly visible type or member ..." +#pragma warning disable 8073 // Disable "CS8073 The result of the expression is always 'false' since a value of type 'T' is never equal to 'null' of type 'T?'" +#pragma warning disable 3016 // Disable "CS3016 Arrays as attribute arguments is not CLS-compliant" +#pragma warning disable 8603 // Disable "CS8603 Possible null reference return" +#pragma warning disable 8604 // Disable "CS8604 Possible null reference argument for parameter" +#pragma warning disable 8625 // Disable "CS8625 Cannot convert null literal to non-nullable reference type" +#pragma warning disable 8765 // Disable "CS8765 Nullability of type of parameter doesn't match overridden member (possibly because of nullability attributes)." + +namespace APIClients.ShopifyAPI +{ + using System = global::System; + + [System.CodeDom.Compiler.GeneratedCode("NSwag", "14.1.0.0 (NJsonSchema v11.0.2.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class ShopifyAPIClient + { + #pragma warning disable 8618 + private string _baseUrl; + #pragma warning restore 8618 + + private static System.Lazy _settings = new System.Lazy(CreateSerializerSettings, true); + private Newtonsoft.Json.JsonSerializerSettings _instanceSettings; + + #pragma warning disable CS8618 // Non-nullable field must contain a non-null value when exiting constructor. Consider declaring as nullable. + public ShopifyAPIClient() + #pragma warning restore CS8618 // Non-nullable field must contain a non-null value when exiting constructor. Consider declaring as nullable. + { + BaseUrl = "http://192.168.1.54:3000/"; + Initialize(); + } + + private static Newtonsoft.Json.JsonSerializerSettings CreateSerializerSettings() + { + var settings = new Newtonsoft.Json.JsonSerializerSettings(); + UpdateJsonSerializerSettings(settings); + return settings; + } + + public string BaseUrl + { + get { return _baseUrl; } + set + { + _baseUrl = value; + if (!string.IsNullOrEmpty(_baseUrl) && !_baseUrl.EndsWith("/")) + _baseUrl += '/'; + } + } + + protected Newtonsoft.Json.JsonSerializerSettings JsonSerializerSettings { get { return _instanceSettings ?? _settings.Value; } } + + static partial void UpdateJsonSerializerSettings(Newtonsoft.Json.JsonSerializerSettings settings); + + partial void Initialize(); + + partial void PrepareRequest(System.Net.Http.HttpClient client, System.Net.Http.HttpRequestMessage request, string url); + partial void PrepareRequest(System.Net.Http.HttpClient client, System.Net.Http.HttpRequestMessage request, System.Text.StringBuilder urlBuilder); + partial void ProcessResponse(System.Net.Http.HttpClient client, System.Net.Http.HttpResponseMessage response); + + /// + /// Shopify订单创建webhook处理 + /// + /// Webhook处理成功 + /// A server side error occurred. + public virtual System.Threading.Tasks.Task CreatedAsync(object body) + { + return CreatedAsync(body, System.Threading.CancellationToken.None); + } + + /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. + /// + /// Shopify订单创建webhook处理 + /// + /// Webhook处理成功 + /// A server side error occurred. + public virtual async System.Threading.Tasks.Task CreatedAsync(object body, System.Threading.CancellationToken cancellationToken) + { + if (body == null) + throw new System.ArgumentNullException("body"); + + var client_ = new System.Net.Http.HttpClient(); + var disposeClient_ = true; + try + { + using (var request_ = new System.Net.Http.HttpRequestMessage()) + { + var json_ = Newtonsoft.Json.JsonConvert.SerializeObject(body, JsonSerializerSettings); + var content_ = new System.Net.Http.StringContent(json_); + content_.Headers.ContentType = System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json"); + request_.Content = content_; + request_.Method = new System.Net.Http.HttpMethod("POST"); + + var urlBuilder_ = new System.Text.StringBuilder(); + if (!string.IsNullOrEmpty(_baseUrl)) urlBuilder_.Append(_baseUrl); + // Operation Path: "api/order/created" + urlBuilder_.Append("api/order/created"); + + PrepareRequest(client_, request_, urlBuilder_); + + var url_ = urlBuilder_.ToString(); + request_.RequestUri = new System.Uri(url_, System.UriKind.RelativeOrAbsolute); + + PrepareRequest(client_, request_, url_); + + var response_ = await client_.SendAsync(request_, System.Net.Http.HttpCompletionOption.ResponseHeadersRead, cancellationToken).ConfigureAwait(false); + var disposeResponse_ = true; + try + { + var headers_ = new System.Collections.Generic.Dictionary>(); + foreach (var item_ in response_.Headers) + headers_[item_.Key] = item_.Value; + if (response_.Content != null && response_.Content.Headers != null) + { + foreach (var item_ in response_.Content.Headers) + headers_[item_.Key] = item_.Value; + } + + ProcessResponse(client_, response_); + + var status_ = (int)response_.StatusCode; + if (status_ == 200) + { + return; + } + else + { + var responseData_ = response_.Content == null ? null : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ShopifyAPIException("The HTTP status code of the response was not expected (" + status_ + ").", status_, responseData_, headers_, null); + } + } + finally + { + if (disposeResponse_) + response_.Dispose(); + } + } + } + finally + { + if (disposeClient_) + client_.Dispose(); + } + } + + /// + /// 获取产品详情 + /// + /// + /// 根据产品ID获取产品详细信息 + /// + /// 成功返回产品信息 + /// A server side error occurred. + public virtual System.Threading.Tasks.Task GetProductByIdAsync(Body body) + { + return GetProductByIdAsync(body, System.Threading.CancellationToken.None); + } + + /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. + /// + /// 获取产品详情 + /// + /// + /// 根据产品ID获取产品详细信息 + /// + /// 成功返回产品信息 + /// A server side error occurred. + public virtual async System.Threading.Tasks.Task GetProductByIdAsync(Body body, System.Threading.CancellationToken cancellationToken) + { + if (body == null) + throw new System.ArgumentNullException("body"); + + var client_ = new System.Net.Http.HttpClient(); + var disposeClient_ = true; + try + { + using (var request_ = new System.Net.Http.HttpRequestMessage()) + { + var json_ = Newtonsoft.Json.JsonConvert.SerializeObject(body, JsonSerializerSettings); + var content_ = new System.Net.Http.StringContent(json_); + content_.Headers.ContentType = System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json"); + request_.Content = content_; + request_.Method = new System.Net.Http.HttpMethod("POST"); + request_.Headers.Accept.Add(System.Net.Http.Headers.MediaTypeWithQualityHeaderValue.Parse("application/json")); + + var urlBuilder_ = new System.Text.StringBuilder(); + if (!string.IsNullOrEmpty(_baseUrl)) urlBuilder_.Append(_baseUrl); + // Operation Path: "api/product/getProductById" + urlBuilder_.Append("api/product/getProductById"); + + PrepareRequest(client_, request_, urlBuilder_); + + var url_ = urlBuilder_.ToString(); + request_.RequestUri = new System.Uri(url_, System.UriKind.RelativeOrAbsolute); + + PrepareRequest(client_, request_, url_); + + var response_ = await client_.SendAsync(request_, System.Net.Http.HttpCompletionOption.ResponseHeadersRead, cancellationToken).ConfigureAwait(false); + var disposeResponse_ = true; + try + { + var headers_ = new System.Collections.Generic.Dictionary>(); + foreach (var item_ in response_.Headers) + headers_[item_.Key] = item_.Value; + if (response_.Content != null && response_.Content.Headers != null) + { + foreach (var item_ in response_.Content.Headers) + headers_[item_.Key] = item_.Value; + } + + ProcessResponse(client_, response_); + + var status_ = (int)response_.StatusCode; + if (status_ == 200) + { + var objectResponse_ = await ReadObjectResponseAsync(response_, headers_, cancellationToken).ConfigureAwait(false); + if (objectResponse_.Object == null) + { + throw new ShopifyAPIException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); + } + return objectResponse_.Object; + } + else + if (status_ == 500) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ShopifyAPIException("\u670d\u52a1\u5668\u5185\u90e8\u9519\u8bef", status_, responseText_, headers_, null); + } + else + { + var responseData_ = response_.Content == null ? null : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ShopifyAPIException("The HTTP status code of the response was not expected (" + status_ + ").", status_, responseData_, headers_, null); + } + } + finally + { + if (disposeResponse_) + response_.Dispose(); + } + } + } + finally + { + if (disposeClient_) + client_.Dispose(); + } + } + + /// + /// 创建新产品 + /// + /// + /// 根据传入信息在shopify店铺中创建产品,状态为Draft(草稿)。并为其创建一个库存为0的NEW变体。只要产品创建成功就会返回成功,但图片可能上传失败,会在message里提示。 + /// + /// 创建产品成功 + /// A server side error occurred. + public virtual System.Threading.Tasks.Task CreateProductAsync(Body2 body) + { + return CreateProductAsync(body, System.Threading.CancellationToken.None); + } + + /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. + /// + /// 创建新产品 + /// + /// + /// 根据传入信息在shopify店铺中创建产品,状态为Draft(草稿)。并为其创建一个库存为0的NEW变体。只要产品创建成功就会返回成功,但图片可能上传失败,会在message里提示。 + /// + /// 创建产品成功 + /// A server side error occurred. + public virtual async System.Threading.Tasks.Task CreateProductAsync(Body2 body, System.Threading.CancellationToken cancellationToken) + { + if (body == null) + throw new System.ArgumentNullException("body"); + + var client_ = new System.Net.Http.HttpClient(); + var disposeClient_ = true; + try + { + using (var request_ = new System.Net.Http.HttpRequestMessage()) + { + var json_ = Newtonsoft.Json.JsonConvert.SerializeObject(body, JsonSerializerSettings); + var content_ = new System.Net.Http.StringContent(json_); + content_.Headers.ContentType = System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json"); + request_.Content = content_; + request_.Method = new System.Net.Http.HttpMethod("POST"); + request_.Headers.Accept.Add(System.Net.Http.Headers.MediaTypeWithQualityHeaderValue.Parse("application/json")); + + var urlBuilder_ = new System.Text.StringBuilder(); + if (!string.IsNullOrEmpty(_baseUrl)) urlBuilder_.Append(_baseUrl); + // Operation Path: "api/product/createProduct" + urlBuilder_.Append("api/product/createProduct"); + + PrepareRequest(client_, request_, urlBuilder_); + + var url_ = urlBuilder_.ToString(); + request_.RequestUri = new System.Uri(url_, System.UriKind.RelativeOrAbsolute); + + PrepareRequest(client_, request_, url_); + + var response_ = await client_.SendAsync(request_, System.Net.Http.HttpCompletionOption.ResponseHeadersRead, cancellationToken).ConfigureAwait(false); + var disposeResponse_ = true; + try + { + var headers_ = new System.Collections.Generic.Dictionary>(); + foreach (var item_ in response_.Headers) + headers_[item_.Key] = item_.Value; + if (response_.Content != null && response_.Content.Headers != null) + { + foreach (var item_ in response_.Content.Headers) + headers_[item_.Key] = item_.Value; + } + + ProcessResponse(client_, response_); + + var status_ = (int)response_.StatusCode; + if (status_ == 200) + { + var objectResponse_ = await ReadObjectResponseAsync(response_, headers_, cancellationToken).ConfigureAwait(false); + if (objectResponse_.Object == null) + { + throw new ShopifyAPIException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); + } + return objectResponse_.Object; + } + else + { + var responseData_ = response_.Content == null ? null : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ShopifyAPIException("The HTTP status code of the response was not expected (" + status_ + ").", status_, responseData_, headers_, null); + } + } + finally + { + if (disposeResponse_) + response_.Dispose(); + } + } + } + finally + { + if (disposeClient_) + client_.Dispose(); + } + } + + /// + /// 添加产品变体 + /// + /// + /// 添加对应产品的变体,二手货折旧价格为2折。添加变体后,如果产品的状态为Archived(存档),并且产品的变体除了NEW还有其他变体,将状态改为Draft(草稿)。只要变体创建成功就会返回成功,但图片可能上传失败,会在message里提示。 + /// + /// 添加产品变体成功 + /// A server side error occurred. + public virtual System.Threading.Tasks.Task AddProductVariantAsync(AddVariantRequest body) + { + return AddProductVariantAsync(body, System.Threading.CancellationToken.None); + } + + /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. + /// + /// 添加产品变体 + /// + /// + /// 添加对应产品的变体,二手货折旧价格为2折。添加变体后,如果产品的状态为Archived(存档),并且产品的变体除了NEW还有其他变体,将状态改为Draft(草稿)。只要变体创建成功就会返回成功,但图片可能上传失败,会在message里提示。 + /// + /// 添加产品变体成功 + /// A server side error occurred. + public virtual async System.Threading.Tasks.Task AddProductVariantAsync(AddVariantRequest body, System.Threading.CancellationToken cancellationToken) + { + if (body == null) + throw new System.ArgumentNullException("body"); + + var client_ = new System.Net.Http.HttpClient(); + var disposeClient_ = true; + try + { + using (var request_ = new System.Net.Http.HttpRequestMessage()) + { + var json_ = Newtonsoft.Json.JsonConvert.SerializeObject(body, JsonSerializerSettings); + var content_ = new System.Net.Http.StringContent(json_); + content_.Headers.ContentType = System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json"); + request_.Content = content_; + request_.Method = new System.Net.Http.HttpMethod("POST"); + request_.Headers.Accept.Add(System.Net.Http.Headers.MediaTypeWithQualityHeaderValue.Parse("application/json")); + + var urlBuilder_ = new System.Text.StringBuilder(); + if (!string.IsNullOrEmpty(_baseUrl)) urlBuilder_.Append(_baseUrl); + // Operation Path: "api/product/addProductVariant" + urlBuilder_.Append("api/product/addProductVariant"); + + PrepareRequest(client_, request_, urlBuilder_); + + var url_ = urlBuilder_.ToString(); + request_.RequestUri = new System.Uri(url_, System.UriKind.RelativeOrAbsolute); + + PrepareRequest(client_, request_, url_); + + var response_ = await client_.SendAsync(request_, System.Net.Http.HttpCompletionOption.ResponseHeadersRead, cancellationToken).ConfigureAwait(false); + var disposeResponse_ = true; + try + { + var headers_ = new System.Collections.Generic.Dictionary>(); + foreach (var item_ in response_.Headers) + headers_[item_.Key] = item_.Value; + if (response_.Content != null && response_.Content.Headers != null) + { + foreach (var item_ in response_.Content.Headers) + headers_[item_.Key] = item_.Value; + } + + ProcessResponse(client_, response_); + + var status_ = (int)response_.StatusCode; + if (status_ == 200) + { + var objectResponse_ = await ReadObjectResponseAsync(response_, headers_, cancellationToken).ConfigureAwait(false); + if (objectResponse_.Object == null) + { + throw new ShopifyAPIException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); + } + return objectResponse_.Object; + } + else + { + var responseData_ = response_.Content == null ? null : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ShopifyAPIException("The HTTP status code of the response was not expected (" + status_ + ").", status_, responseData_, headers_, null); + } + } + finally + { + if (disposeResponse_) + response_.Dispose(); + } + } + } + finally + { + if (disposeClient_) + client_.Dispose(); + } + } + + /// + /// 删除产品变体 + /// + /// + /// 删除指定的产品变体。如果删除后产品没有其他变体(除了NEW),产品状态会改为Archived(存档)。 + /// + /// 成功删除产品变体 + /// A server side error occurred. + public virtual System.Threading.Tasks.Task DeleteProductVariantAsync(Body3 body) + { + return DeleteProductVariantAsync(body, System.Threading.CancellationToken.None); + } + + /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. + /// + /// 删除产品变体 + /// + /// + /// 删除指定的产品变体。如果删除后产品没有其他变体(除了NEW),产品状态会改为Archived(存档)。 + /// + /// 成功删除产品变体 + /// A server side error occurred. + public virtual async System.Threading.Tasks.Task DeleteProductVariantAsync(Body3 body, System.Threading.CancellationToken cancellationToken) + { + if (body == null) + throw new System.ArgumentNullException("body"); + + var client_ = new System.Net.Http.HttpClient(); + var disposeClient_ = true; + try + { + using (var request_ = new System.Net.Http.HttpRequestMessage()) + { + var json_ = Newtonsoft.Json.JsonConvert.SerializeObject(body, JsonSerializerSettings); + var content_ = new System.Net.Http.StringContent(json_); + content_.Headers.ContentType = System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json"); + request_.Content = content_; + request_.Method = new System.Net.Http.HttpMethod("POST"); + request_.Headers.Accept.Add(System.Net.Http.Headers.MediaTypeWithQualityHeaderValue.Parse("application/json")); + + var urlBuilder_ = new System.Text.StringBuilder(); + if (!string.IsNullOrEmpty(_baseUrl)) urlBuilder_.Append(_baseUrl); + // Operation Path: "api/product/deleteProductVariant" + urlBuilder_.Append("api/product/deleteProductVariant"); + + PrepareRequest(client_, request_, urlBuilder_); + + var url_ = urlBuilder_.ToString(); + request_.RequestUri = new System.Uri(url_, System.UriKind.RelativeOrAbsolute); + + PrepareRequest(client_, request_, url_); + + var response_ = await client_.SendAsync(request_, System.Net.Http.HttpCompletionOption.ResponseHeadersRead, cancellationToken).ConfigureAwait(false); + var disposeResponse_ = true; + try + { + var headers_ = new System.Collections.Generic.Dictionary>(); + foreach (var item_ in response_.Headers) + headers_[item_.Key] = item_.Value; + if (response_.Content != null && response_.Content.Headers != null) + { + foreach (var item_ in response_.Content.Headers) + headers_[item_.Key] = item_.Value; + } + + ProcessResponse(client_, response_); + + var status_ = (int)response_.StatusCode; + if (status_ == 200) + { + var objectResponse_ = await ReadObjectResponseAsync(response_, headers_, cancellationToken).ConfigureAwait(false); + if (objectResponse_.Object == null) + { + throw new ShopifyAPIException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); + } + return objectResponse_.Object; + } + else + { + var responseData_ = response_.Content == null ? null : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ShopifyAPIException("The HTTP status code of the response was not expected (" + status_ + ").", status_, responseData_, headers_, null); + } + } + finally + { + if (disposeResponse_) + response_.Dispose(); + } + } + } + finally + { + if (disposeClient_) + client_.Dispose(); + } + } + + /// + /// 下载所有产品图片 + /// + /// + /// 批量下载所有产品的图片 + /// + /// 成功下载图片 + /// A server side error occurred. + public virtual System.Threading.Tasks.Task DownloadAllProductsImageAsync() + { + return DownloadAllProductsImageAsync(System.Threading.CancellationToken.None); + } + + /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. + /// + /// 下载所有产品图片 + /// + /// + /// 批量下载所有产品的图片 + /// + /// 成功下载图片 + /// A server side error occurred. + public virtual async System.Threading.Tasks.Task DownloadAllProductsImageAsync(System.Threading.CancellationToken cancellationToken) + { + var client_ = new System.Net.Http.HttpClient(); + var disposeClient_ = true; + try + { + using (var request_ = new System.Net.Http.HttpRequestMessage()) + { + request_.Content = new System.Net.Http.StringContent(string.Empty, System.Text.Encoding.UTF8, "application/json"); + request_.Method = new System.Net.Http.HttpMethod("POST"); + request_.Headers.Accept.Add(System.Net.Http.Headers.MediaTypeWithQualityHeaderValue.Parse("application/json")); + + var urlBuilder_ = new System.Text.StringBuilder(); + if (!string.IsNullOrEmpty(_baseUrl)) urlBuilder_.Append(_baseUrl); + // Operation Path: "api/product/downloadAllProductsImage" + urlBuilder_.Append("api/product/downloadAllProductsImage"); + + PrepareRequest(client_, request_, urlBuilder_); + + var url_ = urlBuilder_.ToString(); + request_.RequestUri = new System.Uri(url_, System.UriKind.RelativeOrAbsolute); + + PrepareRequest(client_, request_, url_); + + var response_ = await client_.SendAsync(request_, System.Net.Http.HttpCompletionOption.ResponseHeadersRead, cancellationToken).ConfigureAwait(false); + var disposeResponse_ = true; + try + { + var headers_ = new System.Collections.Generic.Dictionary>(); + foreach (var item_ in response_.Headers) + headers_[item_.Key] = item_.Value; + if (response_.Content != null && response_.Content.Headers != null) + { + foreach (var item_ in response_.Content.Headers) + headers_[item_.Key] = item_.Value; + } + + ProcessResponse(client_, response_); + + var status_ = (int)response_.StatusCode; + if (status_ == 200) + { + var objectResponse_ = await ReadObjectResponseAsync(response_, headers_, cancellationToken).ConfigureAwait(false); + if (objectResponse_.Object == null) + { + throw new ShopifyAPIException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); + } + return objectResponse_.Object; + } + else + { + var responseData_ = response_.Content == null ? null : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ShopifyAPIException("The HTTP status code of the response was not expected (" + status_ + ").", status_, responseData_, headers_, null); + } + } + finally + { + if (disposeResponse_) + response_.Dispose(); + } + } + } + finally + { + if (disposeClient_) + client_.Dispose(); + } + } + + /// + /// 导出产品到Excel + /// + /// + /// 将产品数据导出为Excel文件 + /// + /// 成功导出Excel文件 + /// A server side error occurred. + public virtual System.Threading.Tasks.Task ExportProductsToExcelAsync() + { + return ExportProductsToExcelAsync(System.Threading.CancellationToken.None); + } + + /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. + /// + /// 导出产品到Excel + /// + /// + /// 将产品数据导出为Excel文件 + /// + /// 成功导出Excel文件 + /// A server side error occurred. + public virtual async System.Threading.Tasks.Task ExportProductsToExcelAsync(System.Threading.CancellationToken cancellationToken) + { + var client_ = new System.Net.Http.HttpClient(); + var disposeClient_ = true; + try + { + using (var request_ = new System.Net.Http.HttpRequestMessage()) + { + request_.Content = new System.Net.Http.StringContent(string.Empty, System.Text.Encoding.UTF8, "application/json"); + request_.Method = new System.Net.Http.HttpMethod("POST"); + request_.Headers.Accept.Add(System.Net.Http.Headers.MediaTypeWithQualityHeaderValue.Parse("application/json")); + + var urlBuilder_ = new System.Text.StringBuilder(); + if (!string.IsNullOrEmpty(_baseUrl)) urlBuilder_.Append(_baseUrl); + // Operation Path: "api/product/exportProductsToExcel" + urlBuilder_.Append("api/product/exportProductsToExcel"); + + PrepareRequest(client_, request_, urlBuilder_); + + var url_ = urlBuilder_.ToString(); + request_.RequestUri = new System.Uri(url_, System.UriKind.RelativeOrAbsolute); + + PrepareRequest(client_, request_, url_); + + var response_ = await client_.SendAsync(request_, System.Net.Http.HttpCompletionOption.ResponseHeadersRead, cancellationToken).ConfigureAwait(false); + var disposeResponse_ = true; + try + { + var headers_ = new System.Collections.Generic.Dictionary>(); + foreach (var item_ in response_.Headers) + headers_[item_.Key] = item_.Value; + if (response_.Content != null && response_.Content.Headers != null) + { + foreach (var item_ in response_.Content.Headers) + headers_[item_.Key] = item_.Value; + } + + ProcessResponse(client_, response_); + + var status_ = (int)response_.StatusCode; + if (status_ == 200) + { + var objectResponse_ = await ReadObjectResponseAsync(response_, headers_, cancellationToken).ConfigureAwait(false); + if (objectResponse_.Object == null) + { + throw new ShopifyAPIException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); + } + return objectResponse_.Object; + } + else + { + var responseData_ = response_.Content == null ? null : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ShopifyAPIException("The HTTP status code of the response was not expected (" + status_ + ").", status_, responseData_, headers_, null); + } + } + finally + { + if (disposeResponse_) + response_.Dispose(); + } + } + } + finally + { + if (disposeClient_) + client_.Dispose(); + } + } + + /// + /// 创建脚本标签 + /// + /// 创建结果 + /// A server side error occurred. + public virtual System.Threading.Tasks.Task CreateAsync(Body4 body) + { + return CreateAsync(body, System.Threading.CancellationToken.None); + } + + /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. + /// + /// 创建脚本标签 + /// + /// 创建结果 + /// A server side error occurred. + public virtual async System.Threading.Tasks.Task CreateAsync(Body4 body, System.Threading.CancellationToken cancellationToken) + { + if (body == null) + throw new System.ArgumentNullException("body"); + + var client_ = new System.Net.Http.HttpClient(); + var disposeClient_ = true; + try + { + using (var request_ = new System.Net.Http.HttpRequestMessage()) + { + var json_ = Newtonsoft.Json.JsonConvert.SerializeObject(body, JsonSerializerSettings); + var content_ = new System.Net.Http.StringContent(json_); + content_.Headers.ContentType = System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json"); + request_.Content = content_; + request_.Method = new System.Net.Http.HttpMethod("POST"); + request_.Headers.Accept.Add(System.Net.Http.Headers.MediaTypeWithQualityHeaderValue.Parse("application/json")); + + var urlBuilder_ = new System.Text.StringBuilder(); + if (!string.IsNullOrEmpty(_baseUrl)) urlBuilder_.Append(_baseUrl); + // Operation Path: "api/script-tag/create" + urlBuilder_.Append("api/script-tag/create"); + + PrepareRequest(client_, request_, urlBuilder_); + + var url_ = urlBuilder_.ToString(); + request_.RequestUri = new System.Uri(url_, System.UriKind.RelativeOrAbsolute); + + PrepareRequest(client_, request_, url_); + + var response_ = await client_.SendAsync(request_, System.Net.Http.HttpCompletionOption.ResponseHeadersRead, cancellationToken).ConfigureAwait(false); + var disposeResponse_ = true; + try + { + var headers_ = new System.Collections.Generic.Dictionary>(); + foreach (var item_ in response_.Headers) + headers_[item_.Key] = item_.Value; + if (response_.Content != null && response_.Content.Headers != null) + { + foreach (var item_ in response_.Content.Headers) + headers_[item_.Key] = item_.Value; + } + + ProcessResponse(client_, response_); + + var status_ = (int)response_.StatusCode; + if (status_ == 200) + { + var objectResponse_ = await ReadObjectResponseAsync(response_, headers_, cancellationToken).ConfigureAwait(false); + if (objectResponse_.Object == null) + { + throw new ShopifyAPIException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); + } + return objectResponse_.Object; + } + else + { + var responseData_ = response_.Content == null ? null : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ShopifyAPIException("The HTTP status code of the response was not expected (" + status_ + ").", status_, responseData_, headers_, null); + } + } + finally + { + if (disposeResponse_) + response_.Dispose(); + } + } + } + finally + { + if (disposeClient_) + client_.Dispose(); + } + } + + /// + /// 获取所有脚本标签 + /// + /// 获取成功 + /// A server side error occurred. + public virtual System.Threading.Tasks.Task ListAsync() + { + return ListAsync(System.Threading.CancellationToken.None); + } + + /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. + /// + /// 获取所有脚本标签 + /// + /// 获取成功 + /// A server side error occurred. + public virtual async System.Threading.Tasks.Task ListAsync(System.Threading.CancellationToken cancellationToken) + { + var client_ = new System.Net.Http.HttpClient(); + var disposeClient_ = true; + try + { + using (var request_ = new System.Net.Http.HttpRequestMessage()) + { + request_.Content = new System.Net.Http.StringContent(string.Empty, System.Text.Encoding.UTF8, "application/json"); + request_.Method = new System.Net.Http.HttpMethod("POST"); + request_.Headers.Accept.Add(System.Net.Http.Headers.MediaTypeWithQualityHeaderValue.Parse("application/json")); + + var urlBuilder_ = new System.Text.StringBuilder(); + if (!string.IsNullOrEmpty(_baseUrl)) urlBuilder_.Append(_baseUrl); + // Operation Path: "api/script-tag/list" + urlBuilder_.Append("api/script-tag/list"); + + PrepareRequest(client_, request_, urlBuilder_); + + var url_ = urlBuilder_.ToString(); + request_.RequestUri = new System.Uri(url_, System.UriKind.RelativeOrAbsolute); + + PrepareRequest(client_, request_, url_); + + var response_ = await client_.SendAsync(request_, System.Net.Http.HttpCompletionOption.ResponseHeadersRead, cancellationToken).ConfigureAwait(false); + var disposeResponse_ = true; + try + { + var headers_ = new System.Collections.Generic.Dictionary>(); + foreach (var item_ in response_.Headers) + headers_[item_.Key] = item_.Value; + if (response_.Content != null && response_.Content.Headers != null) + { + foreach (var item_ in response_.Content.Headers) + headers_[item_.Key] = item_.Value; + } + + ProcessResponse(client_, response_); + + var status_ = (int)response_.StatusCode; + if (status_ == 200) + { + var objectResponse_ = await ReadObjectResponseAsync(response_, headers_, cancellationToken).ConfigureAwait(false); + if (objectResponse_.Object == null) + { + throw new ShopifyAPIException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); + } + return objectResponse_.Object; + } + else + { + var responseData_ = response_.Content == null ? null : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ShopifyAPIException("The HTTP status code of the response was not expected (" + status_ + ").", status_, responseData_, headers_, null); + } + } + finally + { + if (disposeResponse_) + response_.Dispose(); + } + } + } + finally + { + if (disposeClient_) + client_.Dispose(); + } + } + + /// + /// 删除脚本标签 + /// + /// 删除成功 + /// A server side error occurred. + public virtual System.Threading.Tasks.Task DeleteAsync(Body5 body) + { + return DeleteAsync(body, System.Threading.CancellationToken.None); + } + + /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. + /// + /// 删除脚本标签 + /// + /// 删除成功 + /// A server side error occurred. + public virtual async System.Threading.Tasks.Task DeleteAsync(Body5 body, System.Threading.CancellationToken cancellationToken) + { + if (body == null) + throw new System.ArgumentNullException("body"); + + var client_ = new System.Net.Http.HttpClient(); + var disposeClient_ = true; + try + { + using (var request_ = new System.Net.Http.HttpRequestMessage()) + { + var json_ = Newtonsoft.Json.JsonConvert.SerializeObject(body, JsonSerializerSettings); + var content_ = new System.Net.Http.StringContent(json_); + content_.Headers.ContentType = System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json"); + request_.Content = content_; + request_.Method = new System.Net.Http.HttpMethod("POST"); + request_.Headers.Accept.Add(System.Net.Http.Headers.MediaTypeWithQualityHeaderValue.Parse("application/json")); + + var urlBuilder_ = new System.Text.StringBuilder(); + if (!string.IsNullOrEmpty(_baseUrl)) urlBuilder_.Append(_baseUrl); + // Operation Path: "api/script-tag/delete" + urlBuilder_.Append("api/script-tag/delete"); + + PrepareRequest(client_, request_, urlBuilder_); + + var url_ = urlBuilder_.ToString(); + request_.RequestUri = new System.Uri(url_, System.UriKind.RelativeOrAbsolute); + + PrepareRequest(client_, request_, url_); + + var response_ = await client_.SendAsync(request_, System.Net.Http.HttpCompletionOption.ResponseHeadersRead, cancellationToken).ConfigureAwait(false); + var disposeResponse_ = true; + try + { + var headers_ = new System.Collections.Generic.Dictionary>(); + foreach (var item_ in response_.Headers) + headers_[item_.Key] = item_.Value; + if (response_.Content != null && response_.Content.Headers != null) + { + foreach (var item_ in response_.Content.Headers) + headers_[item_.Key] = item_.Value; + } + + ProcessResponse(client_, response_); + + var status_ = (int)response_.StatusCode; + if (status_ == 200) + { + var objectResponse_ = await ReadObjectResponseAsync(response_, headers_, cancellationToken).ConfigureAwait(false); + if (objectResponse_.Object == null) + { + throw new ShopifyAPIException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); + } + return objectResponse_.Object; + } + else + { + var responseData_ = response_.Content == null ? null : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ShopifyAPIException("The HTTP status code of the response was not expected (" + status_ + ").", status_, responseData_, headers_, null); + } + } + finally + { + if (disposeResponse_) + response_.Dispose(); + } + } + } + finally + { + if (disposeClient_) + client_.Dispose(); + } + } + + /// + /// 测试 Shopify API 连接 + /// + /// 连接测试结果 + /// A server side error occurred. + public virtual System.Threading.Tasks.Task TestAsync() + { + return TestAsync(System.Threading.CancellationToken.None); + } + + /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. + /// + /// 测试 Shopify API 连接 + /// + /// 连接测试结果 + /// A server side error occurred. + public virtual async System.Threading.Tasks.Task TestAsync(System.Threading.CancellationToken cancellationToken) + { + var client_ = new System.Net.Http.HttpClient(); + var disposeClient_ = true; + try + { + using (var request_ = new System.Net.Http.HttpRequestMessage()) + { + request_.Method = new System.Net.Http.HttpMethod("GET"); + request_.Headers.Accept.Add(System.Net.Http.Headers.MediaTypeWithQualityHeaderValue.Parse("application/json")); + + var urlBuilder_ = new System.Text.StringBuilder(); + if (!string.IsNullOrEmpty(_baseUrl)) urlBuilder_.Append(_baseUrl); + // Operation Path: "api/test" + urlBuilder_.Append("api/test"); + + PrepareRequest(client_, request_, urlBuilder_); + + var url_ = urlBuilder_.ToString(); + request_.RequestUri = new System.Uri(url_, System.UriKind.RelativeOrAbsolute); + + PrepareRequest(client_, request_, url_); + + var response_ = await client_.SendAsync(request_, System.Net.Http.HttpCompletionOption.ResponseHeadersRead, cancellationToken).ConfigureAwait(false); + var disposeResponse_ = true; + try + { + var headers_ = new System.Collections.Generic.Dictionary>(); + foreach (var item_ in response_.Headers) + headers_[item_.Key] = item_.Value; + if (response_.Content != null && response_.Content.Headers != null) + { + foreach (var item_ in response_.Content.Headers) + headers_[item_.Key] = item_.Value; + } + + ProcessResponse(client_, response_); + + var status_ = (int)response_.StatusCode; + if (status_ == 200) + { + var objectResponse_ = await ReadObjectResponseAsync(response_, headers_, cancellationToken).ConfigureAwait(false); + if (objectResponse_.Object == null) + { + throw new ShopifyAPIException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); + } + return objectResponse_.Object; + } + else + if (status_ == 500) + { + var objectResponse_ = await ReadObjectResponseAsync(response_, headers_, cancellationToken).ConfigureAwait(false); + if (objectResponse_.Object == null) + { + throw new ShopifyAPIException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); + } + throw new ShopifyAPIException("\u670d\u52a1\u5668\u9519\u8bef", status_, objectResponse_.Text, headers_, objectResponse_.Object, null); + } + else + { + var responseData_ = response_.Content == null ? null : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ShopifyAPIException("The HTTP status code of the response was not expected (" + status_ + ").", status_, responseData_, headers_, null); + } + } + finally + { + if (disposeResponse_) + response_.Dispose(); + } + } + } + finally + { + if (disposeClient_) + client_.Dispose(); + } + } + + /// + /// 获取所有仓库列表 + /// + /// + /// 返回系统中所有仓库信息 + /// + /// 成功返回仓库列表 + /// A server side error occurred. + public virtual System.Threading.Tasks.Task> ListAllAsync() + { + return ListAllAsync(System.Threading.CancellationToken.None); + } + + /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. + /// + /// 获取所有仓库列表 + /// + /// + /// 返回系统中所有仓库信息 + /// + /// 成功返回仓库列表 + /// A server side error occurred. + public virtual async System.Threading.Tasks.Task> ListAllAsync(System.Threading.CancellationToken cancellationToken) + { + var client_ = new System.Net.Http.HttpClient(); + var disposeClient_ = true; + try + { + using (var request_ = new System.Net.Http.HttpRequestMessage()) + { + request_.Content = new System.Net.Http.StringContent(string.Empty, System.Text.Encoding.UTF8, "application/json"); + request_.Method = new System.Net.Http.HttpMethod("POST"); + request_.Headers.Accept.Add(System.Net.Http.Headers.MediaTypeWithQualityHeaderValue.Parse("application/json")); + + var urlBuilder_ = new System.Text.StringBuilder(); + if (!string.IsNullOrEmpty(_baseUrl)) urlBuilder_.Append(_baseUrl); + // Operation Path: "api/warehouse/list" + urlBuilder_.Append("api/warehouse/list"); + + PrepareRequest(client_, request_, urlBuilder_); + + var url_ = urlBuilder_.ToString(); + request_.RequestUri = new System.Uri(url_, System.UriKind.RelativeOrAbsolute); + + PrepareRequest(client_, request_, url_); + + var response_ = await client_.SendAsync(request_, System.Net.Http.HttpCompletionOption.ResponseHeadersRead, cancellationToken).ConfigureAwait(false); + var disposeResponse_ = true; + try + { + var headers_ = new System.Collections.Generic.Dictionary>(); + foreach (var item_ in response_.Headers) + headers_[item_.Key] = item_.Value; + if (response_.Content != null && response_.Content.Headers != null) + { + foreach (var item_ in response_.Content.Headers) + headers_[item_.Key] = item_.Value; + } + + ProcessResponse(client_, response_); + + var status_ = (int)response_.StatusCode; + if (status_ == 200) + { + var objectResponse_ = await ReadObjectResponseAsync>(response_, headers_, cancellationToken).ConfigureAwait(false); + if (objectResponse_.Object == null) + { + throw new ShopifyAPIException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); + } + return objectResponse_.Object; + } + else + if (status_ == 500) + { + string responseText_ = ( response_.Content == null ) ? string.Empty : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ShopifyAPIException("\u670d\u52a1\u5668\u5185\u90e8\u9519\u8bef", status_, responseText_, headers_, null); + } + else + { + var responseData_ = response_.Content == null ? null : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); + throw new ShopifyAPIException("The HTTP status code of the response was not expected (" + status_ + ").", status_, responseData_, headers_, null); + } + } + finally + { + if (disposeResponse_) + response_.Dispose(); + } + } + } + finally + { + if (disposeClient_) + client_.Dispose(); + } + } + + protected struct ObjectResponseResult + { + public ObjectResponseResult(T responseObject, string responseText) + { + this.Object = responseObject; + this.Text = responseText; + } + + public T Object { get; } + + public string Text { get; } + } + + public bool ReadResponseAsString { get; set; } + + protected virtual async System.Threading.Tasks.Task> ReadObjectResponseAsync(System.Net.Http.HttpResponseMessage response, System.Collections.Generic.IReadOnlyDictionary> headers, System.Threading.CancellationToken cancellationToken) + { + if (response == null || response.Content == null) + { + return new ObjectResponseResult(default(T), string.Empty); + } + + if (ReadResponseAsString) + { + var responseText = await response.Content.ReadAsStringAsync().ConfigureAwait(false); + try + { + var typedBody = Newtonsoft.Json.JsonConvert.DeserializeObject(responseText, JsonSerializerSettings); + return new ObjectResponseResult(typedBody, responseText); + } + catch (Newtonsoft.Json.JsonException exception) + { + var message = "Could not deserialize the response body string as " + typeof(T).FullName + "."; + throw new ShopifyAPIException(message, (int)response.StatusCode, responseText, headers, exception); + } + } + else + { + try + { + using (var responseStream = await response.Content.ReadAsStreamAsync().ConfigureAwait(false)) + using (var streamReader = new System.IO.StreamReader(responseStream)) + using (var jsonTextReader = new Newtonsoft.Json.JsonTextReader(streamReader)) + { + var serializer = Newtonsoft.Json.JsonSerializer.Create(JsonSerializerSettings); + var typedBody = serializer.Deserialize(jsonTextReader); + return new ObjectResponseResult(typedBody, string.Empty); + } + } + catch (Newtonsoft.Json.JsonException exception) + { + var message = "Could not deserialize the response body stream as " + typeof(T).FullName + "."; + throw new ShopifyAPIException(message, (int)response.StatusCode, string.Empty, headers, exception); + } + } + } + + private string ConvertToString(object value, System.Globalization.CultureInfo cultureInfo) + { + if (value == null) + { + return ""; + } + + if (value is System.Enum) + { + var name = System.Enum.GetName(value.GetType(), value); + if (name != null) + { + var field = System.Reflection.IntrospectionExtensions.GetTypeInfo(value.GetType()).GetDeclaredField(name); + if (field != null) + { + var attribute = System.Reflection.CustomAttributeExtensions.GetCustomAttribute(field, typeof(System.Runtime.Serialization.EnumMemberAttribute)) + as System.Runtime.Serialization.EnumMemberAttribute; + if (attribute != null) + { + return attribute.Value != null ? attribute.Value : name; + } + } + + var converted = System.Convert.ToString(System.Convert.ChangeType(value, System.Enum.GetUnderlyingType(value.GetType()), cultureInfo)); + return converted == null ? string.Empty : converted; + } + } + else if (value is bool) + { + return System.Convert.ToString((bool)value, cultureInfo).ToLowerInvariant(); + } + else if (value is byte[]) + { + return System.Convert.ToBase64String((byte[]) value); + } + else if (value is string[]) + { + return string.Join(",", (string[])value); + } + else if (value.GetType().IsArray) + { + var valueArray = (System.Array)value; + var valueTextArray = new string[valueArray.Length]; + for (var i = 0; i < valueArray.Length; i++) + { + valueTextArray[i] = ConvertToString(valueArray.GetValue(i), cultureInfo); + } + return string.Join(",", valueTextArray); + } + + var result = System.Convert.ToString(value, cultureInfo); + return result == null ? "" : result; + } + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "14.1.0.0 (NJsonSchema v11.0.2.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class ProductBaseData + { + /// + /// 产品SKU + /// + [Newtonsoft.Json.JsonProperty("SKU", Required = Newtonsoft.Json.Required.Always)] + [System.ComponentModel.DataAnnotations.Required(AllowEmptyStrings = true)] + public string SKU { get; set; } + + /// + /// 产品标题 + /// + [Newtonsoft.Json.JsonProperty("Title", Required = Newtonsoft.Json.Required.Always)] + [System.ComponentModel.DataAnnotations.Required(AllowEmptyStrings = true)] + public string Title { get; set; } + + /// + /// 产品主图路径 + /// + [Newtonsoft.Json.JsonProperty("ImagePath", Required = Newtonsoft.Json.Required.Default, NullValueHandling = Newtonsoft.Json.NullValueHandling.Ignore)] + public string ImagePath { get; set; } + + /// + /// 产品类型 + /// + [Newtonsoft.Json.JsonProperty("ProductType", Required = Newtonsoft.Json.Required.Default, NullValueHandling = Newtonsoft.Json.NullValueHandling.Ignore)] + public string ProductType { get; set; } + + /// + /// 产品标签,逗号分隔 + /// + [Newtonsoft.Json.JsonProperty("Tags", Required = Newtonsoft.Json.Required.Default, NullValueHandling = Newtonsoft.Json.NullValueHandling.Ignore)] + public string Tags { get; set; } + + /// + /// 产品重量(g) + /// + [Newtonsoft.Json.JsonProperty("Weight", Required = Newtonsoft.Json.Required.Always)] + public double Weight { get; set; } + + /// + /// 产品价格 + /// + [Newtonsoft.Json.JsonProperty("JYPrice", Required = Newtonsoft.Json.Required.Always)] + public double JYPrice { get; set; } + + /// + /// 运费 + /// + [Newtonsoft.Json.JsonProperty("ShippingFee", Required = Newtonsoft.Json.Required.Always)] + public double ShippingFee { get; set; } + + private System.Collections.Generic.IDictionary _additionalProperties; + + [Newtonsoft.Json.JsonExtensionData] + public System.Collections.Generic.IDictionary AdditionalProperties + { + get { return _additionalProperties ?? (_additionalProperties = new System.Collections.Generic.Dictionary()); } + set { _additionalProperties = value; } + } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "14.1.0.0 (NJsonSchema v11.0.2.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class ProductSuccessResponse + { + /// + /// 操作是否成功 + /// + [Newtonsoft.Json.JsonProperty("success", Required = Newtonsoft.Json.Required.Default, NullValueHandling = Newtonsoft.Json.NullValueHandling.Ignore)] + public bool? Success { get; set; } + + [Newtonsoft.Json.JsonProperty("data", Required = Newtonsoft.Json.Required.Default, NullValueHandling = Newtonsoft.Json.NullValueHandling.Ignore)] + public Data Data { get; set; } + + /// + /// 响应信息 + /// + [Newtonsoft.Json.JsonProperty("message", Required = Newtonsoft.Json.Required.Default, NullValueHandling = Newtonsoft.Json.NullValueHandling.Ignore)] + public string Message { get; set; } + + private System.Collections.Generic.IDictionary _additionalProperties; + + [Newtonsoft.Json.JsonExtensionData] + public System.Collections.Generic.IDictionary AdditionalProperties + { + get { return _additionalProperties ?? (_additionalProperties = new System.Collections.Generic.Dictionary()); } + set { _additionalProperties = value; } + } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "14.1.0.0 (NJsonSchema v11.0.2.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class ProductErrorResponse + { + /// + /// 操作是否成功 + /// + [Newtonsoft.Json.JsonProperty("success", Required = Newtonsoft.Json.Required.Default, NullValueHandling = Newtonsoft.Json.NullValueHandling.Ignore)] + public bool? Success { get; set; } + + /// + /// 失败时返回null + /// + [Newtonsoft.Json.JsonProperty("data", Required = Newtonsoft.Json.Required.Default, NullValueHandling = Newtonsoft.Json.NullValueHandling.Ignore)] + public object Data { get; set; } + + /// + /// 失败信息 + /// + [Newtonsoft.Json.JsonProperty("message", Required = Newtonsoft.Json.Required.Default, NullValueHandling = Newtonsoft.Json.NullValueHandling.Ignore)] + public string Message { get; set; } + + private System.Collections.Generic.IDictionary _additionalProperties; + + [Newtonsoft.Json.JsonExtensionData] + public System.Collections.Generic.IDictionary AdditionalProperties + { + get { return _additionalProperties ?? (_additionalProperties = new System.Collections.Generic.Dictionary()); } + set { _additionalProperties = value; } + } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "14.1.0.0 (NJsonSchema v11.0.2.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class ProductVariant + { + /// + /// 变体ID + /// + [Newtonsoft.Json.JsonProperty("id", Required = Newtonsoft.Json.Required.Default, NullValueHandling = Newtonsoft.Json.NullValueHandling.Ignore)] + public double? Id { get; set; } + + /// + /// 产品ID + /// + [Newtonsoft.Json.JsonProperty("product_id", Required = Newtonsoft.Json.Required.Default, NullValueHandling = Newtonsoft.Json.NullValueHandling.Ignore)] + public double? Product_id { get; set; } + + /// + /// 变体标题 + /// + [Newtonsoft.Json.JsonProperty("title", Required = Newtonsoft.Json.Required.Default, NullValueHandling = Newtonsoft.Json.NullValueHandling.Ignore)] + public string Title { get; set; } + + /// + /// 价格 + /// + [Newtonsoft.Json.JsonProperty("price", Required = Newtonsoft.Json.Required.Default, NullValueHandling = Newtonsoft.Json.NullValueHandling.Ignore)] + public string Price { get; set; } + + /// + /// 排序位置 + /// + [Newtonsoft.Json.JsonProperty("position", Required = Newtonsoft.Json.Required.Default, NullValueHandling = Newtonsoft.Json.NullValueHandling.Ignore)] + public double? Position { get; set; } + + /// + /// 库存策略 + /// + [Newtonsoft.Json.JsonProperty("inventory_policy", Required = Newtonsoft.Json.Required.Default, NullValueHandling = Newtonsoft.Json.NullValueHandling.Ignore)] + public string Inventory_policy { get; set; } + + /// + /// 比较价格 + /// + [Newtonsoft.Json.JsonProperty("compare_at_price", Required = Newtonsoft.Json.Required.Default, NullValueHandling = Newtonsoft.Json.NullValueHandling.Ignore)] + public string Compare_at_price { get; set; } + + /// + /// 变体选项1 + /// + [Newtonsoft.Json.JsonProperty("option1", Required = Newtonsoft.Json.Required.Default, NullValueHandling = Newtonsoft.Json.NullValueHandling.Ignore)] + public string Option1 { get; set; } + + /// + /// 变体选项2 + /// + [Newtonsoft.Json.JsonProperty("option2", Required = Newtonsoft.Json.Required.Default, NullValueHandling = Newtonsoft.Json.NullValueHandling.Ignore)] + public string Option2 { get; set; } + + /// + /// 变体选项3 + /// + [Newtonsoft.Json.JsonProperty("option3", Required = Newtonsoft.Json.Required.Default, NullValueHandling = Newtonsoft.Json.NullValueHandling.Ignore)] + public string Option3 { get; set; } + + /// + /// 创建时间 + /// + [Newtonsoft.Json.JsonProperty("created_at", Required = Newtonsoft.Json.Required.Default, NullValueHandling = Newtonsoft.Json.NullValueHandling.Ignore)] + public string Created_at { get; set; } + + /// + /// 更新时间 + /// + [Newtonsoft.Json.JsonProperty("updated_at", Required = Newtonsoft.Json.Required.Default, NullValueHandling = Newtonsoft.Json.NullValueHandling.Ignore)] + public string Updated_at { get; set; } + + /// + /// 是否应税 + /// + [Newtonsoft.Json.JsonProperty("taxable", Required = Newtonsoft.Json.Required.Default, NullValueHandling = Newtonsoft.Json.NullValueHandling.Ignore)] + public bool? Taxable { get; set; } + + /// + /// 条形码 + /// + [Newtonsoft.Json.JsonProperty("barcode", Required = Newtonsoft.Json.Required.Default, NullValueHandling = Newtonsoft.Json.NullValueHandling.Ignore)] + public string Barcode { get; set; } + + /// + /// 履行服务 + /// + [Newtonsoft.Json.JsonProperty("fulfillment_service", Required = Newtonsoft.Json.Required.Default, NullValueHandling = Newtonsoft.Json.NullValueHandling.Ignore)] + public string Fulfillment_service { get; set; } + + /// + /// 重量(克) + /// + [Newtonsoft.Json.JsonProperty("grams", Required = Newtonsoft.Json.Required.Default, NullValueHandling = Newtonsoft.Json.NullValueHandling.Ignore)] + public double? Grams { get; set; } + + /// + /// 库存管理 + /// + [Newtonsoft.Json.JsonProperty("inventory_management", Required = Newtonsoft.Json.Required.Default, NullValueHandling = Newtonsoft.Json.NullValueHandling.Ignore)] + public string Inventory_management { get; set; } + + /// + /// 是否需要配送 + /// + [Newtonsoft.Json.JsonProperty("requires_shipping", Required = Newtonsoft.Json.Required.Default, NullValueHandling = Newtonsoft.Json.NullValueHandling.Ignore)] + public bool? Requires_shipping { get; set; } + + /// + /// SKU + /// + [Newtonsoft.Json.JsonProperty("sku", Required = Newtonsoft.Json.Required.Default, NullValueHandling = Newtonsoft.Json.NullValueHandling.Ignore)] + public string Sku { get; set; } + + /// + /// 重量 + /// + [Newtonsoft.Json.JsonProperty("weight", Required = Newtonsoft.Json.Required.Default, NullValueHandling = Newtonsoft.Json.NullValueHandling.Ignore)] + public double? Weight { get; set; } + + /// + /// 重量单位 + /// + [Newtonsoft.Json.JsonProperty("weight_unit", Required = Newtonsoft.Json.Required.Default, NullValueHandling = Newtonsoft.Json.NullValueHandling.Ignore)] + public string Weight_unit { get; set; } + + /// + /// 库存项ID + /// + [Newtonsoft.Json.JsonProperty("inventory_item_id", Required = Newtonsoft.Json.Required.Default, NullValueHandling = Newtonsoft.Json.NullValueHandling.Ignore)] + public double? Inventory_item_id { get; set; } + + /// + /// 库存数量 + /// + [Newtonsoft.Json.JsonProperty("inventory_quantity", Required = Newtonsoft.Json.Required.Default, NullValueHandling = Newtonsoft.Json.NullValueHandling.Ignore)] + public double? Inventory_quantity { get; set; } + + /// + /// 旧库存数量 + /// + [Newtonsoft.Json.JsonProperty("old_inventory_quantity", Required = Newtonsoft.Json.Required.Default, NullValueHandling = Newtonsoft.Json.NullValueHandling.Ignore)] + public double? Old_inventory_quantity { get; set; } + + /// + /// GraphQL API ID + /// + [Newtonsoft.Json.JsonProperty("admin_graphql_api_id", Required = Newtonsoft.Json.Required.Default, NullValueHandling = Newtonsoft.Json.NullValueHandling.Ignore)] + public string Admin_graphql_api_id { get; set; } + + /// + /// 图片ID + /// + [Newtonsoft.Json.JsonProperty("image_id", Required = Newtonsoft.Json.Required.Default, NullValueHandling = Newtonsoft.Json.NullValueHandling.Ignore)] + public double? Image_id { get; set; } + + private System.Collections.Generic.IDictionary _additionalProperties; + + [Newtonsoft.Json.JsonExtensionData] + public System.Collections.Generic.IDictionary AdditionalProperties + { + get { return _additionalProperties ?? (_additionalProperties = new System.Collections.Generic.Dictionary()); } + set { _additionalProperties = value; } + } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "14.1.0.0 (NJsonSchema v11.0.2.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class ProductOption + { + /// + /// 选项ID + /// + [Newtonsoft.Json.JsonProperty("id", Required = Newtonsoft.Json.Required.Default, NullValueHandling = Newtonsoft.Json.NullValueHandling.Ignore)] + public double? Id { get; set; } + + /// + /// 产品ID + /// + [Newtonsoft.Json.JsonProperty("product_id", Required = Newtonsoft.Json.Required.Default, NullValueHandling = Newtonsoft.Json.NullValueHandling.Ignore)] + public double? Product_id { get; set; } + + /// + /// 选项名称 + /// + [Newtonsoft.Json.JsonProperty("name", Required = Newtonsoft.Json.Required.Default, NullValueHandling = Newtonsoft.Json.NullValueHandling.Ignore)] + public string Name { get; set; } + + /// + /// 排序位置 + /// + [Newtonsoft.Json.JsonProperty("position", Required = Newtonsoft.Json.Required.Default, NullValueHandling = Newtonsoft.Json.NullValueHandling.Ignore)] + public double? Position { get; set; } + + /// + /// 选项值列表 + /// + [Newtonsoft.Json.JsonProperty("values", Required = Newtonsoft.Json.Required.Default, NullValueHandling = Newtonsoft.Json.NullValueHandling.Ignore)] + public System.Collections.Generic.ICollection Values { get; set; } + + private System.Collections.Generic.IDictionary _additionalProperties; + + [Newtonsoft.Json.JsonExtensionData] + public System.Collections.Generic.IDictionary AdditionalProperties + { + get { return _additionalProperties ?? (_additionalProperties = new System.Collections.Generic.Dictionary()); } + set { _additionalProperties = value; } + } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "14.1.0.0 (NJsonSchema v11.0.2.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class AddVariantRequest + { + [Newtonsoft.Json.JsonProperty("productBaseData", Required = Newtonsoft.Json.Required.Always)] + [System.ComponentModel.DataAnnotations.Required] + public ProductBaseData2 ProductBaseData { get; set; } = new ProductBaseData2(); + + [Newtonsoft.Json.JsonProperty("variants", Required = Newtonsoft.Json.Required.Always)] + [System.ComponentModel.DataAnnotations.Required] + public Variants Variants { get; set; } = new Variants(); + + private System.Collections.Generic.IDictionary _additionalProperties; + + [Newtonsoft.Json.JsonExtensionData] + public System.Collections.Generic.IDictionary AdditionalProperties + { + get { return _additionalProperties ?? (_additionalProperties = new System.Collections.Generic.Dictionary()); } + set { _additionalProperties = value; } + } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "14.1.0.0 (NJsonSchema v11.0.2.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class AddVariantSuccessResponse + { + /// + /// 操作是否成功 + /// + [Newtonsoft.Json.JsonProperty("success", Required = Newtonsoft.Json.Required.Default, NullValueHandling = Newtonsoft.Json.NullValueHandling.Ignore)] + public bool? Success { get; set; } + + /// + /// 返回null + /// + [Newtonsoft.Json.JsonProperty("data", Required = Newtonsoft.Json.Required.Default, NullValueHandling = Newtonsoft.Json.NullValueHandling.Ignore)] + public object Data { get; set; } + + /// + /// 响应信息 + /// + [Newtonsoft.Json.JsonProperty("message", Required = Newtonsoft.Json.Required.Default, NullValueHandling = Newtonsoft.Json.NullValueHandling.Ignore)] + public string Message { get; set; } + + private System.Collections.Generic.IDictionary _additionalProperties; + + [Newtonsoft.Json.JsonExtensionData] + public System.Collections.Generic.IDictionary AdditionalProperties + { + get { return _additionalProperties ?? (_additionalProperties = new System.Collections.Generic.Dictionary()); } + set { _additionalProperties = value; } + } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "14.1.0.0 (NJsonSchema v11.0.2.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class AddVariantErrorResponse + { + /// + /// 操作是否成功 + /// + [Newtonsoft.Json.JsonProperty("success", Required = Newtonsoft.Json.Required.Default, NullValueHandling = Newtonsoft.Json.NullValueHandling.Ignore)] + public bool? Success { get; set; } + + /// + /// 返回null + /// + [Newtonsoft.Json.JsonProperty("data", Required = Newtonsoft.Json.Required.Default, NullValueHandling = Newtonsoft.Json.NullValueHandling.Ignore)] + public object Data { get; set; } + + /// + /// 失败信息 + /// + [Newtonsoft.Json.JsonProperty("message", Required = Newtonsoft.Json.Required.Default, NullValueHandling = Newtonsoft.Json.NullValueHandling.Ignore)] + public string Message { get; set; } + + private System.Collections.Generic.IDictionary _additionalProperties; + + [Newtonsoft.Json.JsonExtensionData] + public System.Collections.Generic.IDictionary AdditionalProperties + { + get { return _additionalProperties ?? (_additionalProperties = new System.Collections.Generic.Dictionary()); } + set { _additionalProperties = value; } + } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "14.1.0.0 (NJsonSchema v11.0.2.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class DeleteVariantSuccessResponse + { + /// + /// 操作是否成功 + /// + [Newtonsoft.Json.JsonProperty("success", Required = Newtonsoft.Json.Required.Default, NullValueHandling = Newtonsoft.Json.NullValueHandling.Ignore)] + public bool? Success { get; set; } + + [Newtonsoft.Json.JsonProperty("data", Required = Newtonsoft.Json.Required.Default, NullValueHandling = Newtonsoft.Json.NullValueHandling.Ignore)] + public Data2 Data { get; set; } + + /// + /// 响应信息 + /// + [Newtonsoft.Json.JsonProperty("message", Required = Newtonsoft.Json.Required.Default, NullValueHandling = Newtonsoft.Json.NullValueHandling.Ignore)] + public string Message { get; set; } + + private System.Collections.Generic.IDictionary _additionalProperties; + + [Newtonsoft.Json.JsonExtensionData] + public System.Collections.Generic.IDictionary AdditionalProperties + { + get { return _additionalProperties ?? (_additionalProperties = new System.Collections.Generic.Dictionary()); } + set { _additionalProperties = value; } + } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "14.1.0.0 (NJsonSchema v11.0.2.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class DeleteVariantErrorResponse + { + /// + /// 操作是否成功 + /// + [Newtonsoft.Json.JsonProperty("success", Required = Newtonsoft.Json.Required.Default, NullValueHandling = Newtonsoft.Json.NullValueHandling.Ignore)] + public bool? Success { get; set; } + + /// + /// 失败时返回null + /// + [Newtonsoft.Json.JsonProperty("data", Required = Newtonsoft.Json.Required.Default, NullValueHandling = Newtonsoft.Json.NullValueHandling.Ignore)] + public object Data { get; set; } + + /// + /// 失败信息 + /// + [Newtonsoft.Json.JsonProperty("message", Required = Newtonsoft.Json.Required.Default, NullValueHandling = Newtonsoft.Json.NullValueHandling.Ignore)] + public string Message { get; set; } + + private System.Collections.Generic.IDictionary _additionalProperties; + + [Newtonsoft.Json.JsonExtensionData] + public System.Collections.Generic.IDictionary AdditionalProperties + { + get { return _additionalProperties ?? (_additionalProperties = new System.Collections.Generic.Dictionary()); } + set { _additionalProperties = value; } + } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "14.1.0.0 (NJsonSchema v11.0.2.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class Responses + { + + private System.Collections.Generic.IDictionary _additionalProperties; + + [Newtonsoft.Json.JsonExtensionData] + public System.Collections.Generic.IDictionary AdditionalProperties + { + get { return _additionalProperties ?? (_additionalProperties = new System.Collections.Generic.Dictionary()); } + set { _additionalProperties = value; } + } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "14.1.0.0 (NJsonSchema v11.0.2.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class Body + { + /// + /// 产品ID + /// + [Newtonsoft.Json.JsonProperty("id", Required = Newtonsoft.Json.Required.Default, NullValueHandling = Newtonsoft.Json.NullValueHandling.Ignore)] + public string Id { get; set; } + + private System.Collections.Generic.IDictionary _additionalProperties; + + [Newtonsoft.Json.JsonExtensionData] + public System.Collections.Generic.IDictionary AdditionalProperties + { + get { return _additionalProperties ?? (_additionalProperties = new System.Collections.Generic.Dictionary()); } + set { _additionalProperties = value; } + } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "14.1.0.0 (NJsonSchema v11.0.2.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class Body2 + { + [Newtonsoft.Json.JsonProperty("productBaseData", Required = Newtonsoft.Json.Required.Always)] + [System.ComponentModel.DataAnnotations.Required] + public ProductBaseData ProductBaseData { get; set; } = new ProductBaseData(); + + private System.Collections.Generic.IDictionary _additionalProperties; + + [Newtonsoft.Json.JsonExtensionData] + public System.Collections.Generic.IDictionary AdditionalProperties + { + get { return _additionalProperties ?? (_additionalProperties = new System.Collections.Generic.Dictionary()); } + set { _additionalProperties = value; } + } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "14.1.0.0 (NJsonSchema v11.0.2.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class Body3 + { + /// + /// 变体SKU + /// + [Newtonsoft.Json.JsonProperty("sku", Required = Newtonsoft.Json.Required.Default, NullValueHandling = Newtonsoft.Json.NullValueHandling.Ignore)] + public string Sku { get; set; } + + private System.Collections.Generic.IDictionary _additionalProperties; + + [Newtonsoft.Json.JsonExtensionData] + public System.Collections.Generic.IDictionary AdditionalProperties + { + get { return _additionalProperties ?? (_additionalProperties = new System.Collections.Generic.Dictionary()); } + set { _additionalProperties = value; } + } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "14.1.0.0 (NJsonSchema v11.0.2.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class Body4 + { + /// + /// 脚本文件名 + /// + [Newtonsoft.Json.JsonProperty("filename", Required = Newtonsoft.Json.Required.Default, NullValueHandling = Newtonsoft.Json.NullValueHandling.Ignore)] + public string Filename { get; set; } + + private System.Collections.Generic.IDictionary _additionalProperties; + + [Newtonsoft.Json.JsonExtensionData] + public System.Collections.Generic.IDictionary AdditionalProperties + { + get { return _additionalProperties ?? (_additionalProperties = new System.Collections.Generic.Dictionary()); } + set { _additionalProperties = value; } + } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "14.1.0.0 (NJsonSchema v11.0.2.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class Body5 + { + /// + /// 脚本标签ID + /// + [Newtonsoft.Json.JsonProperty("id", Required = Newtonsoft.Json.Required.Default, NullValueHandling = Newtonsoft.Json.NullValueHandling.Ignore)] + public string Id { get; set; } + + private System.Collections.Generic.IDictionary _additionalProperties; + + [Newtonsoft.Json.JsonExtensionData] + public System.Collections.Generic.IDictionary AdditionalProperties + { + get { return _additionalProperties ?? (_additionalProperties = new System.Collections.Generic.Dictionary()); } + set { _additionalProperties = value; } + } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "14.1.0.0 (NJsonSchema v11.0.2.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class Response + { + /// + /// 状态码 + /// + [Newtonsoft.Json.JsonProperty("code", Required = Newtonsoft.Json.Required.Default, NullValueHandling = Newtonsoft.Json.NullValueHandling.Ignore)] + public double? Code { get; set; } + + /// + /// 响应信息 + /// + [Newtonsoft.Json.JsonProperty("message", Required = Newtonsoft.Json.Required.Default, NullValueHandling = Newtonsoft.Json.NullValueHandling.Ignore)] + public string Message { get; set; } + + /// + /// 产品详情数据 + /// + [Newtonsoft.Json.JsonProperty("data", Required = Newtonsoft.Json.Required.Default, NullValueHandling = Newtonsoft.Json.NullValueHandling.Ignore)] + public object Data { get; set; } + + private System.Collections.Generic.IDictionary _additionalProperties; + + [Newtonsoft.Json.JsonExtensionData] + public System.Collections.Generic.IDictionary AdditionalProperties + { + get { return _additionalProperties ?? (_additionalProperties = new System.Collections.Generic.Dictionary()); } + set { _additionalProperties = value; } + } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "14.1.0.0 (NJsonSchema v11.0.2.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class Response2 + { + /// + /// 操作是否成功 + /// + [Newtonsoft.Json.JsonProperty("success", Required = Newtonsoft.Json.Required.Default, NullValueHandling = Newtonsoft.Json.NullValueHandling.Ignore)] + public bool? Success { get; set; } + + /// + /// 响应信息 + /// + [Newtonsoft.Json.JsonProperty("message", Required = Newtonsoft.Json.Required.Default, NullValueHandling = Newtonsoft.Json.NullValueHandling.Ignore)] + public string Message { get; set; } + + /// + /// 下载失败的SKU数量 + /// + [Newtonsoft.Json.JsonProperty("totalFailedSkus", Required = Newtonsoft.Json.Required.Default, NullValueHandling = Newtonsoft.Json.NullValueHandling.Ignore)] + public double? TotalFailedSkus { get; set; } + + /// + /// 下载失败的SKU列表 + /// + [Newtonsoft.Json.JsonProperty("failedSkus", Required = Newtonsoft.Json.Required.Default, NullValueHandling = Newtonsoft.Json.NullValueHandling.Ignore)] + public System.Collections.Generic.ICollection FailedSkus { get; set; } + + private System.Collections.Generic.IDictionary _additionalProperties; + + [Newtonsoft.Json.JsonExtensionData] + public System.Collections.Generic.IDictionary AdditionalProperties + { + get { return _additionalProperties ?? (_additionalProperties = new System.Collections.Generic.Dictionary()); } + set { _additionalProperties = value; } + } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "14.1.0.0 (NJsonSchema v11.0.2.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class Response3 + { + /// + /// 操作是否成功 + /// + [Newtonsoft.Json.JsonProperty("success", Required = Newtonsoft.Json.Required.Default, NullValueHandling = Newtonsoft.Json.NullValueHandling.Ignore)] + public bool? Success { get; set; } + + /// + /// 响应信息 + /// + [Newtonsoft.Json.JsonProperty("message", Required = Newtonsoft.Json.Required.Default, NullValueHandling = Newtonsoft.Json.NullValueHandling.Ignore)] + public string Message { get; set; } + + /// + /// 导出文件名 + /// + [Newtonsoft.Json.JsonProperty("fileName", Required = Newtonsoft.Json.Required.Default, NullValueHandling = Newtonsoft.Json.NullValueHandling.Ignore)] + public string FileName { get; set; } + + /// + /// 文件相对路径 + /// + [Newtonsoft.Json.JsonProperty("filePath", Required = Newtonsoft.Json.Required.Default, NullValueHandling = Newtonsoft.Json.NullValueHandling.Ignore)] + public string FilePath { get; set; } + + /// + /// 导出的产品总数 + /// + [Newtonsoft.Json.JsonProperty("totalProducts", Required = Newtonsoft.Json.Required.Default, NullValueHandling = Newtonsoft.Json.NullValueHandling.Ignore)] + public double? TotalProducts { get; set; } + + private System.Collections.Generic.IDictionary _additionalProperties; + + [Newtonsoft.Json.JsonExtensionData] + public System.Collections.Generic.IDictionary AdditionalProperties + { + get { return _additionalProperties ?? (_additionalProperties = new System.Collections.Generic.Dictionary()); } + set { _additionalProperties = value; } + } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "14.1.0.0 (NJsonSchema v11.0.2.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class Response4 + { + /// + /// 操作是否成功 + /// + [Newtonsoft.Json.JsonProperty("success", Required = Newtonsoft.Json.Required.Default, NullValueHandling = Newtonsoft.Json.NullValueHandling.Ignore)] + public bool? Success { get; set; } + + /// + /// 创建的脚本标签信息 + /// + [Newtonsoft.Json.JsonProperty("data", Required = Newtonsoft.Json.Required.Default, NullValueHandling = Newtonsoft.Json.NullValueHandling.Ignore)] + public object Data { get; set; } + + /// + /// 响应信息 + /// + [Newtonsoft.Json.JsonProperty("message", Required = Newtonsoft.Json.Required.Default, NullValueHandling = Newtonsoft.Json.NullValueHandling.Ignore)] + public string Message { get; set; } + + private System.Collections.Generic.IDictionary _additionalProperties; + + [Newtonsoft.Json.JsonExtensionData] + public System.Collections.Generic.IDictionary AdditionalProperties + { + get { return _additionalProperties ?? (_additionalProperties = new System.Collections.Generic.Dictionary()); } + set { _additionalProperties = value; } + } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "14.1.0.0 (NJsonSchema v11.0.2.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class Response5 + { + /// + /// 操作是否成功 + /// + [Newtonsoft.Json.JsonProperty("success", Required = Newtonsoft.Json.Required.Default, NullValueHandling = Newtonsoft.Json.NullValueHandling.Ignore)] + public bool? Success { get; set; } + + [Newtonsoft.Json.JsonProperty("data", Required = Newtonsoft.Json.Required.Default, NullValueHandling = Newtonsoft.Json.NullValueHandling.Ignore)] + public System.Collections.Generic.ICollection Data { get; set; } + + /// + /// 脚本标签总数 + /// + [Newtonsoft.Json.JsonProperty("total", Required = Newtonsoft.Json.Required.Default, NullValueHandling = Newtonsoft.Json.NullValueHandling.Ignore)] + public double? Total { get; set; } + + /// + /// 响应信息 + /// + [Newtonsoft.Json.JsonProperty("message", Required = Newtonsoft.Json.Required.Default, NullValueHandling = Newtonsoft.Json.NullValueHandling.Ignore)] + public string Message { get; set; } + + private System.Collections.Generic.IDictionary _additionalProperties; + + [Newtonsoft.Json.JsonExtensionData] + public System.Collections.Generic.IDictionary AdditionalProperties + { + get { return _additionalProperties ?? (_additionalProperties = new System.Collections.Generic.Dictionary()); } + set { _additionalProperties = value; } + } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "14.1.0.0 (NJsonSchema v11.0.2.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class Response6 + { + /// + /// 操作是否成功 + /// + [Newtonsoft.Json.JsonProperty("success", Required = Newtonsoft.Json.Required.Default, NullValueHandling = Newtonsoft.Json.NullValueHandling.Ignore)] + public bool? Success { get; set; } + + [Newtonsoft.Json.JsonProperty("data", Required = Newtonsoft.Json.Required.Default, NullValueHandling = Newtonsoft.Json.NullValueHandling.Ignore)] + public Data3 Data { get; set; } + + /// + /// 响应信息 + /// + [Newtonsoft.Json.JsonProperty("message", Required = Newtonsoft.Json.Required.Default, NullValueHandling = Newtonsoft.Json.NullValueHandling.Ignore)] + public string Message { get; set; } + + private System.Collections.Generic.IDictionary _additionalProperties; + + [Newtonsoft.Json.JsonExtensionData] + public System.Collections.Generic.IDictionary AdditionalProperties + { + get { return _additionalProperties ?? (_additionalProperties = new System.Collections.Generic.Dictionary()); } + set { _additionalProperties = value; } + } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "14.1.0.0 (NJsonSchema v11.0.2.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class Response7 + { + /// + /// 测试是否成功 + /// + [Newtonsoft.Json.JsonProperty("success", Required = Newtonsoft.Json.Required.Default, NullValueHandling = Newtonsoft.Json.NullValueHandling.Ignore)] + public bool? Success { get; set; } + + /// + /// Shopify店铺信息 + /// + [Newtonsoft.Json.JsonProperty("data", Required = Newtonsoft.Json.Required.Default, NullValueHandling = Newtonsoft.Json.NullValueHandling.Ignore)] + public object Data { get; set; } + + /// + /// 测试结果消息 + /// + [Newtonsoft.Json.JsonProperty("message", Required = Newtonsoft.Json.Required.Default, NullValueHandling = Newtonsoft.Json.NullValueHandling.Ignore)] + public string Message { get; set; } + + private System.Collections.Generic.IDictionary _additionalProperties; + + [Newtonsoft.Json.JsonExtensionData] + public System.Collections.Generic.IDictionary AdditionalProperties + { + get { return _additionalProperties ?? (_additionalProperties = new System.Collections.Generic.Dictionary()); } + set { _additionalProperties = value; } + } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "14.1.0.0 (NJsonSchema v11.0.2.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class Response8 + { + [Newtonsoft.Json.JsonProperty("success", Required = Newtonsoft.Json.Required.Default, NullValueHandling = Newtonsoft.Json.NullValueHandling.Ignore)] + public bool? Success { get; set; } + + [Newtonsoft.Json.JsonProperty("data", Required = Newtonsoft.Json.Required.Default, NullValueHandling = Newtonsoft.Json.NullValueHandling.Ignore)] + public object Data { get; set; } + + [Newtonsoft.Json.JsonProperty("message", Required = Newtonsoft.Json.Required.Default, NullValueHandling = Newtonsoft.Json.NullValueHandling.Ignore)] + public string Message { get; set; } + + private System.Collections.Generic.IDictionary _additionalProperties; + + [Newtonsoft.Json.JsonExtensionData] + public System.Collections.Generic.IDictionary AdditionalProperties + { + get { return _additionalProperties ?? (_additionalProperties = new System.Collections.Generic.Dictionary()); } + set { _additionalProperties = value; } + } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "14.1.0.0 (NJsonSchema v11.0.2.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class Anonymous + { + /// + /// 仓库位置ID + /// + [Newtonsoft.Json.JsonProperty("id", Required = Newtonsoft.Json.Required.Default, NullValueHandling = Newtonsoft.Json.NullValueHandling.Ignore)] + public string Id { get; set; } + + /// + /// 仓库位置名称 + /// + [Newtonsoft.Json.JsonProperty("name", Required = Newtonsoft.Json.Required.Default, NullValueHandling = Newtonsoft.Json.NullValueHandling.Ignore)] + public string Name { get; set; } + + private System.Collections.Generic.IDictionary _additionalProperties; + + [Newtonsoft.Json.JsonExtensionData] + public System.Collections.Generic.IDictionary AdditionalProperties + { + get { return _additionalProperties ?? (_additionalProperties = new System.Collections.Generic.Dictionary()); } + set { _additionalProperties = value; } + } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "14.1.0.0 (NJsonSchema v11.0.2.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class Data + { + /// + /// 产品ID + /// + [Newtonsoft.Json.JsonProperty("id", Required = Newtonsoft.Json.Required.Default, NullValueHandling = Newtonsoft.Json.NullValueHandling.Ignore)] + public double? Id { get; set; } + + private System.Collections.Generic.IDictionary _additionalProperties; + + [Newtonsoft.Json.JsonExtensionData] + public System.Collections.Generic.IDictionary AdditionalProperties + { + get { return _additionalProperties ?? (_additionalProperties = new System.Collections.Generic.Dictionary()); } + set { _additionalProperties = value; } + } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "14.1.0.0 (NJsonSchema v11.0.2.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class ProductBaseData2 + { + /// + /// Shopify商品ID + /// + [Newtonsoft.Json.JsonProperty("shoifyGoodsId", Required = Newtonsoft.Json.Required.Always)] + public double ShoifyGoodsId { get; set; } + + /// + /// 产品SKU + /// + [Newtonsoft.Json.JsonProperty("SKU", Required = Newtonsoft.Json.Required.Always)] + [System.ComponentModel.DataAnnotations.Required(AllowEmptyStrings = true)] + public string SKU { get; set; } + + /// + /// 产品标题 + /// + [Newtonsoft.Json.JsonProperty("Title", Required = Newtonsoft.Json.Required.Always)] + [System.ComponentModel.DataAnnotations.Required(AllowEmptyStrings = true)] + public string Title { get; set; } + + /// + /// 产品主图路径 + /// + [Newtonsoft.Json.JsonProperty("ImagePath", Required = Newtonsoft.Json.Required.Default, NullValueHandling = Newtonsoft.Json.NullValueHandling.Ignore)] + public string ImagePath { get; set; } + + /// + /// 产品类型 + /// + [Newtonsoft.Json.JsonProperty("ProductType", Required = Newtonsoft.Json.Required.Default, NullValueHandling = Newtonsoft.Json.NullValueHandling.Ignore)] + public string ProductType { get; set; } + + /// + /// 产品标签,逗号分隔 + /// + [Newtonsoft.Json.JsonProperty("Tags", Required = Newtonsoft.Json.Required.Default, NullValueHandling = Newtonsoft.Json.NullValueHandling.Ignore)] + public string Tags { get; set; } + + /// + /// 产品重量(g) + /// + [Newtonsoft.Json.JsonProperty("Weight", Required = Newtonsoft.Json.Required.Always)] + public double Weight { get; set; } + + /// + /// 产品价格 + /// + [Newtonsoft.Json.JsonProperty("JYPrice", Required = Newtonsoft.Json.Required.Always)] + public double JYPrice { get; set; } + + /// + /// 运费 + /// + [Newtonsoft.Json.JsonProperty("ShippingFee", Required = Newtonsoft.Json.Required.Always)] + public double ShippingFee { get; set; } + + private System.Collections.Generic.IDictionary _additionalProperties; + + [Newtonsoft.Json.JsonExtensionData] + public System.Collections.Generic.IDictionary AdditionalProperties + { + get { return _additionalProperties ?? (_additionalProperties = new System.Collections.Generic.Dictionary()); } + set { _additionalProperties = value; } + } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "14.1.0.0 (NJsonSchema v11.0.2.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class Variants + { + /// + /// 变体ID + /// + [Newtonsoft.Json.JsonProperty("id", Required = Newtonsoft.Json.Required.Default, NullValueHandling = Newtonsoft.Json.NullValueHandling.Ignore)] + public double? Id { get; set; } + + /// + /// 店铺名称 + /// + [Newtonsoft.Json.JsonProperty("ShopName", Required = Newtonsoft.Json.Required.Default, NullValueHandling = Newtonsoft.Json.NullValueHandling.Ignore)] + public string ShopName { get; set; } + + /// + /// 客户名称 + /// + [Newtonsoft.Json.JsonProperty("Name", Required = Newtonsoft.Json.Required.Default, NullValueHandling = Newtonsoft.Json.NullValueHandling.Ignore)] + public string Name { get; set; } + + /// + /// 订单ID + /// + [Newtonsoft.Json.JsonProperty("orderid", Required = Newtonsoft.Json.Required.Default, NullValueHandling = Newtonsoft.Json.NullValueHandling.Ignore)] + public double? Orderid { get; set; } + + /// + /// 订单编号 + /// + [Newtonsoft.Json.JsonProperty("ordercode", Required = Newtonsoft.Json.Required.Default, NullValueHandling = Newtonsoft.Json.NullValueHandling.Ignore)] + public string Ordercode { get; set; } + + /// + /// 亚马逊ASIN + /// + [Newtonsoft.Json.JsonProperty("asin", Required = Newtonsoft.Json.Required.Default, NullValueHandling = Newtonsoft.Json.NullValueHandling.Ignore)] + public string Asin { get; set; } + + /// + /// 退货原因代码 + /// + [Newtonsoft.Json.JsonProperty("return_reason_code", Required = Newtonsoft.Json.Required.Default, NullValueHandling = Newtonsoft.Json.NullValueHandling.Ignore)] + public string Return_reason_code { get; set; } + + /// + /// 商家SKU + /// + [Newtonsoft.Json.JsonProperty("merchant_sku", Required = Newtonsoft.Json.Required.Default, NullValueHandling = Newtonsoft.Json.NullValueHandling.Ignore)] + public string Merchant_sku { get; set; } + + /// + /// 是否符合政策 + /// + [Newtonsoft.Json.JsonProperty("in_policy", Required = Newtonsoft.Json.Required.Default, NullValueHandling = Newtonsoft.Json.NullValueHandling.Ignore)] + public string In_policy { get; set; } + + /// + /// 退货数量 + /// + [Newtonsoft.Json.JsonProperty("return_quantity", Required = Newtonsoft.Json.Required.Always)] + public double Return_quantity { get; set; } + + /// + /// 解决方案 + /// + [Newtonsoft.Json.JsonProperty("resolution", Required = Newtonsoft.Json.Required.Default, NullValueHandling = Newtonsoft.Json.NullValueHandling.Ignore)] + public string Resolution { get; set; } + + /// + /// 原始图片URL + /// + [Newtonsoft.Json.JsonProperty("Img_Url", Required = Newtonsoft.Json.Required.Default, NullValueHandling = Newtonsoft.Json.NullValueHandling.Ignore)] + public string Img_Url { get; set; } + + /// + /// 订单金额 + /// + [Newtonsoft.Json.JsonProperty("order_amount", Required = Newtonsoft.Json.Required.Default, NullValueHandling = Newtonsoft.Json.NullValueHandling.Ignore)] + public double? Order_amount { get; set; } + + /// + /// 退款金额 + /// + [Newtonsoft.Json.JsonProperty("refund_amount", Required = Newtonsoft.Json.Required.Default, NullValueHandling = Newtonsoft.Json.NullValueHandling.Ignore)] + public double? Refund_amount { get; set; } + + /// + /// 物流跟踪号 + /// + [Newtonsoft.Json.JsonProperty("tracking_id", Required = Newtonsoft.Json.Required.Default, NullValueHandling = Newtonsoft.Json.NullValueHandling.Ignore)] + public string Tracking_id { get; set; } + + /// + /// 退货承运商 + /// + [Newtonsoft.Json.JsonProperty("return_carrier", Required = Newtonsoft.Json.Required.Default, NullValueHandling = Newtonsoft.Json.NullValueHandling.Ignore)] + public string Return_carrier { get; set; } + + /// + /// 标签成本 + /// + [Newtonsoft.Json.JsonProperty("label_cost", Required = Newtonsoft.Json.Required.Default, NullValueHandling = Newtonsoft.Json.NullValueHandling.Ignore)] + public double? Label_cost { get; set; } + + /// + /// 订单日期 + /// + [Newtonsoft.Json.JsonProperty("order_date", Required = Newtonsoft.Json.Required.Default, NullValueHandling = Newtonsoft.Json.NullValueHandling.Ignore)] + public string Order_date { get; set; } + + /// + /// 退货申请日期 + /// + [Newtonsoft.Json.JsonProperty("return_request_date", Required = Newtonsoft.Json.Required.Default, NullValueHandling = Newtonsoft.Json.NullValueHandling.Ignore)] + public string Return_request_date { get; set; } + + /// + /// 退货申请状态 + /// + [Newtonsoft.Json.JsonProperty("return_request_status", Required = Newtonsoft.Json.Required.Default, NullValueHandling = Newtonsoft.Json.NullValueHandling.Ignore)] + public string Return_request_status { get; set; } + + /// + /// 扫描日期 + /// + [Newtonsoft.Json.JsonProperty("ScanDate", Required = Newtonsoft.Json.Required.Default, NullValueHandling = Newtonsoft.Json.NullValueHandling.Ignore)] + public string ScanDate { get; set; } + + /// + /// 入库类型 + /// + [Newtonsoft.Json.JsonProperty("InType", Required = Newtonsoft.Json.Required.Default, NullValueHandling = Newtonsoft.Json.NullValueHandling.Ignore)] + public string InType { get; set; } + + /// + /// 扫描状态 + /// + [Newtonsoft.Json.JsonProperty("ScanState", Required = Newtonsoft.Json.Required.Default, NullValueHandling = Newtonsoft.Json.NullValueHandling.Ignore)] + public string ScanState { get; set; } + + /// + /// 扫描用户ID + /// + [Newtonsoft.Json.JsonProperty("ScanUserId", Required = Newtonsoft.Json.Required.Default, NullValueHandling = Newtonsoft.Json.NullValueHandling.Ignore)] + public double? ScanUserId { get; set; } + + /// + /// 备注 + /// + [Newtonsoft.Json.JsonProperty("remark", Required = Newtonsoft.Json.Required.Default, NullValueHandling = Newtonsoft.Json.NullValueHandling.Ignore)] + public string Remark { get; set; } + + /// + /// 仓位编码 + /// + [Newtonsoft.Json.JsonProperty("PostionCode", Required = Newtonsoft.Json.Required.Default, NullValueHandling = Newtonsoft.Json.NullValueHandling.Ignore)] + public string PostionCode { get; set; } + + /// + /// 详情ID + /// + [Newtonsoft.Json.JsonProperty("detailid", Required = Newtonsoft.Json.Required.Default, NullValueHandling = Newtonsoft.Json.NullValueHandling.Ignore)] + public double? Detailid { get; set; } + + /// + /// 条形码 + /// + [Newtonsoft.Json.JsonProperty("barcode", Required = Newtonsoft.Json.Required.Default, NullValueHandling = Newtonsoft.Json.NullValueHandling.Ignore)] + public string Barcode { get; set; } + + /// + /// 变体图片URL + /// + [Newtonsoft.Json.JsonProperty("ImgUrl", Required = Newtonsoft.Json.Required.Default, NullValueHandling = Newtonsoft.Json.NullValueHandling.Ignore)] + public string ImgUrl { get; set; } + + /// + /// 变体图片URL2 + /// + [Newtonsoft.Json.JsonProperty("ImgUrl2", Required = Newtonsoft.Json.Required.Default, NullValueHandling = Newtonsoft.Json.NullValueHandling.Ignore)] + public string ImgUrl2 { get; set; } + + /// + /// 变体图片URL3 + /// + [Newtonsoft.Json.JsonProperty("ImgUrl3", Required = Newtonsoft.Json.Required.Default, NullValueHandling = Newtonsoft.Json.NullValueHandling.Ignore)] + public string ImgUrl3 { get; set; } + + /// + /// 变体图片URL4 + /// + [Newtonsoft.Json.JsonProperty("ImgUrl4", Required = Newtonsoft.Json.Required.Default, NullValueHandling = Newtonsoft.Json.NullValueHandling.Ignore)] + public string ImgUrl4 { get; set; } + + /// + /// 变体图片URL5 + /// + [Newtonsoft.Json.JsonProperty("ImgUrl5", Required = Newtonsoft.Json.Required.Default, NullValueHandling = Newtonsoft.Json.NullValueHandling.Ignore)] + public string ImgUrl5 { get; set; } + + /// + /// 仓库名称 + /// + [Newtonsoft.Json.JsonProperty("StoreName", Required = Newtonsoft.Json.Required.Always)] + [System.ComponentModel.DataAnnotations.Required(AllowEmptyStrings = true)] + public string StoreName { get; set; } + + /// + /// 是否上架 + /// + [Newtonsoft.Json.JsonProperty("IsOfferUp", Required = Newtonsoft.Json.Required.Default, NullValueHandling = Newtonsoft.Json.NullValueHandling.Ignore)] + public double? IsOfferUp { get; set; } + + /// + /// 是否市场 + /// + [Newtonsoft.Json.JsonProperty("IsMaketPlace", Required = Newtonsoft.Json.Required.Default, NullValueHandling = Newtonsoft.Json.NullValueHandling.Ignore)] + public double? IsMaketPlace { get; set; } + + /// + /// 是否二手 + /// + [Newtonsoft.Json.JsonProperty("isSecondHand", Required = Newtonsoft.Json.Required.Default, NullValueHandling = Newtonsoft.Json.NullValueHandling.Ignore)] + public bool? IsSecondHand { get; set; } + + /// + /// 二手编码 + /// + [Newtonsoft.Json.JsonProperty("SecondHandCode", Required = Newtonsoft.Json.Required.Default, NullValueHandling = Newtonsoft.Json.NullValueHandling.Ignore)] + public string SecondHandCode { get; set; } + + /// + /// 二手类型 + /// + [Newtonsoft.Json.JsonProperty("SecondHandType", Required = Newtonsoft.Json.Required.Default, NullValueHandling = Newtonsoft.Json.NullValueHandling.Ignore)] + public double? SecondHandType { get; set; } + + /// + /// 二手图片URL + /// + [Newtonsoft.Json.JsonProperty("SecondHandImgUrl", Required = Newtonsoft.Json.Required.Default, NullValueHandling = Newtonsoft.Json.NullValueHandling.Ignore)] + public string SecondHandImgUrl { get; set; } + + /// + /// 是否二手买家 + /// + [Newtonsoft.Json.JsonProperty("isSecondHandBuyer", Required = Newtonsoft.Json.Required.Default, NullValueHandling = Newtonsoft.Json.NullValueHandling.Ignore)] + public bool? IsSecondHandBuyer { get; set; } + + /// + /// 二手买家姓名 + /// + [Newtonsoft.Json.JsonProperty("SecondHandBuyerName", Required = Newtonsoft.Json.Required.Default, NullValueHandling = Newtonsoft.Json.NullValueHandling.Ignore)] + public string SecondHandBuyerName { get; set; } + + /// + /// 二手买家电话 + /// + [Newtonsoft.Json.JsonProperty("SecondHandBuyerPhone", Required = Newtonsoft.Json.Required.Default, NullValueHandling = Newtonsoft.Json.NullValueHandling.Ignore)] + public string SecondHandBuyerPhone { get; set; } + + /// + /// 二手买家时间 + /// + [Newtonsoft.Json.JsonProperty("SecondHandBuyerTime", Required = Newtonsoft.Json.Required.Default, NullValueHandling = Newtonsoft.Json.NullValueHandling.Ignore)] + public string SecondHandBuyerTime { get; set; } + + /// + /// 店铺ID + /// + [Newtonsoft.Json.JsonProperty("ShopId", Required = Newtonsoft.Json.Required.Default, NullValueHandling = Newtonsoft.Json.NullValueHandling.Ignore)] + public double? ShopId { get; set; } + + /// + /// 二手销售价格 + /// + [Newtonsoft.Json.JsonProperty("SecondHandSalePrice", Required = Newtonsoft.Json.Required.Default, NullValueHandling = Newtonsoft.Json.NullValueHandling.Ignore)] + public double? SecondHandSalePrice { get; set; } + + /// + /// 变体代码 + /// + [Newtonsoft.Json.JsonProperty("Code", Required = Newtonsoft.Json.Required.Always)] + [System.ComponentModel.DataAnnotations.Required(AllowEmptyStrings = true)] + public string Code { get; set; } + + private System.Collections.Generic.IDictionary _additionalProperties; + + [Newtonsoft.Json.JsonExtensionData] + public System.Collections.Generic.IDictionary AdditionalProperties + { + get { return _additionalProperties ?? (_additionalProperties = new System.Collections.Generic.Dictionary()); } + set { _additionalProperties = value; } + } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "14.1.0.0 (NJsonSchema v11.0.2.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class Data2 + { + /// + /// 被删除的变体ID列表 + /// + [Newtonsoft.Json.JsonProperty("ids", Required = Newtonsoft.Json.Required.Default, NullValueHandling = Newtonsoft.Json.NullValueHandling.Ignore)] + public System.Collections.Generic.ICollection Ids { get; set; } + + private System.Collections.Generic.IDictionary _additionalProperties; + + [Newtonsoft.Json.JsonExtensionData] + public System.Collections.Generic.IDictionary AdditionalProperties + { + get { return _additionalProperties ?? (_additionalProperties = new System.Collections.Generic.Dictionary()); } + set { _additionalProperties = value; } + } + + } + + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "14.1.0.0 (NJsonSchema v11.0.2.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class Data3 + { + /// + /// 被删除的脚本标签ID + /// + [Newtonsoft.Json.JsonProperty("id", Required = Newtonsoft.Json.Required.Default, NullValueHandling = Newtonsoft.Json.NullValueHandling.Ignore)] + public string Id { get; set; } + + private System.Collections.Generic.IDictionary _additionalProperties; + + [Newtonsoft.Json.JsonExtensionData] + public System.Collections.Generic.IDictionary AdditionalProperties + { + get { return _additionalProperties ?? (_additionalProperties = new System.Collections.Generic.Dictionary()); } + set { _additionalProperties = value; } + } + + } + + + + [System.CodeDom.Compiler.GeneratedCode("NSwag", "14.1.0.0 (NJsonSchema v11.0.2.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class ShopifyAPIException : System.Exception + { + public int StatusCode { get; private set; } + + public string Response { get; private set; } + + public System.Collections.Generic.IReadOnlyDictionary> Headers { get; private set; } + + public ShopifyAPIException(string message, int statusCode, string response, System.Collections.Generic.IReadOnlyDictionary> headers, System.Exception innerException) + : base(message + "\n\nStatus: " + statusCode + "\nResponse: \n" + ((response == null) ? "(null)" : response.Substring(0, response.Length >= 512 ? 512 : response.Length)), innerException) + { + StatusCode = statusCode; + Response = response; + Headers = headers; + } + + public override string ToString() + { + return string.Format("HTTP Response: \n\n{0}\n\n{1}", Response, base.ToString()); + } + } + + [System.CodeDom.Compiler.GeneratedCode("NSwag", "14.1.0.0 (NJsonSchema v11.0.2.0 (Newtonsoft.Json v13.0.0.0))")] + public partial class ShopifyAPIException : ShopifyAPIException + { + public TResult Result { get; private set; } + + public ShopifyAPIException(string message, int statusCode, string response, System.Collections.Generic.IReadOnlyDictionary> headers, TResult result, System.Exception innerException) + : base(message, statusCode, response, headers, innerException) + { + Result = result; + } + } + +} + +#pragma warning restore 108 +#pragma warning restore 114 +#pragma warning restore 472 +#pragma warning restore 612 +#pragma warning restore 1573 +#pragma warning restore 1591 +#pragma warning restore 8073 +#pragma warning restore 3016 +#pragma warning restore 8603 +#pragma warning restore 8604 +#pragma warning restore 8625 \ No newline at end of file diff --git a/TradeManageNew/APIClients/ShopifyApi/ShopifyAPIClientMisc.cs b/TradeManageNew/APIClients/ShopifyApi/ShopifyAPIClientMisc.cs new file mode 100644 index 0000000..c4baea7 --- /dev/null +++ b/TradeManageNew/APIClients/ShopifyApi/ShopifyAPIClientMisc.cs @@ -0,0 +1,15 @@ +namespace TradeManageNew.APIClients.ShopifyApi +{ + public class ShopifyAPIClientMisc + { + /// + /// 沙箱环境地址 + /// + public const string SANDBOX_URL = "http://192.168.1.54:3000"; + + /// + /// 生产环境地址 + /// + public const string PRODUCTION_URL = ""; + } +} \ No newline at end of file diff --git a/TradeManageNew/DD_OrderServiceNew.asmx.cs b/TradeManageNew/DD_OrderServiceNew.asmx.cs index c8fe5e2..239ac16 100644 --- a/TradeManageNew/DD_OrderServiceNew.asmx.cs +++ b/TradeManageNew/DD_OrderServiceNew.asmx.cs @@ -33,6 +33,7 @@ using Newtonsoft.Json.Serialization; using NPOI.HSSF.Record.Formula.Functions; using static NPOI.HSSF.Util.HSSFColor; using System.Linq.Expressions; +using LinqToDB; using Match = System.Text.RegularExpressions.Match; using TradeManageNew.APIClients.FedexApi.Tests; using TradeManageNew.APIClients.FedexAPI.Models.RatesAndTransitTimes; @@ -28675,6 +28676,73 @@ namespace TradeManageNew #endregion #endregion + #region 二手商品上架Shopify + + [WebMethod(EnableSession = true)] + public JsonModel> OrderUsedSalePlatformPage(string Code,string BarCode,bool? IsPrinted,TradeUsedSale.Enums.UsedSalePlatformStatus? Status,string WarehousePositionCode,int PageIndex=1,int PageSize=50) + { + // PagesNew.Login(base.Session); + var result = new JsonModel>(); + using (var db = new TradeUsedSale.Repositories.ErpDbContext()) + { + var query = db.DT_OrderUsedSalePlatform.AsQueryable(); + if (!string.IsNullOrWhiteSpace(Code)) + { + query = query.Where(x => + x.ProductCode.Contains(Code) || x.SkuCode.Contains(Code)); + } + + if (!string.IsNullOrWhiteSpace(BarCode)) + { + query = query.Where(x => x.BarCode == BarCode); + } + + if (IsPrinted.HasValue) + { + query = query.Where(x => x.IsPrinted == IsPrinted.Value); + } + + if (Status.HasValue) + { + query = query.Where(x => x.Status == Status.Value); + } + + if (!string.IsNullOrWhiteSpace(WarehousePositionCode)) + { + query = query.Where(x => x.WarehousePositionCode == WarehousePositionCode); + } + + query = query.OrderByDescending(x => x.CreationTime); + + var count = query.Count(); + result.RowCount = count; + if (count > 0) + { + var page= query.Skip((PageIndex - 1) * PageSize).Take(PageSize).ToList(); + result.DataSource = page; + } + } + + return result; + } + + [WebMethod(EnableSession = true)] + public int OrderUsedSalePlatformPrint(int Id) + { + // PagesNew.Login(base.Session); + using (var db = new TradeUsedSale.Repositories.ErpDbContext()) + { + var orderUsedSalePlatform = db.DT_OrderUsedSalePlatform + .Where(x => x.Id == Id) + .Set(x => x.IsPrinted, true) + .Update(); + + return orderUsedSalePlatform; + } + } + + #endregion + #region 订单同步零星 [WebMethod(EnableSession = true)] diff --git a/TradeManageNew/Models/Shage/GetOrderUsedSale.cs b/TradeManageNew/Models/Shage/GetOrderUsedSale.cs deleted file mode 100644 index e54711a..0000000 --- a/TradeManageNew/Models/Shage/GetOrderUsedSale.cs +++ /dev/null @@ -1,10 +0,0 @@ -namespace TradeManageNew.Models.Shage -{ - public class GetOrderUsedSale - { - /// - /// 跟踪号 - /// - public string TrackingCode { get; set; } - } -} \ No newline at end of file diff --git a/TradeManageNew/Models/Shage/GetOrderUsedSalePlatformDto.cs b/TradeManageNew/Models/Shage/GetOrderUsedSalePlatformDto.cs new file mode 100644 index 0000000..fe75268 --- /dev/null +++ b/TradeManageNew/Models/Shage/GetOrderUsedSalePlatformDto.cs @@ -0,0 +1,22 @@ +namespace TradeManageNew.Models.Shage +{ + public class GetOrderUsedSalePlatformDto + { + /// + /// 产品编码 + /// + public string ProductCode { get; set; } + + /// + /// 产品描述 + /// + public string ProductDescription { get; set; } + + public int SkuId { get; set; } + + /// + /// sku编码 + /// + public string SkuCode { get; set; } + } +} \ No newline at end of file diff --git a/TradeManageNew/Models/Shage/GetOrderUsedSalePlatformInput.cs b/TradeManageNew/Models/Shage/GetOrderUsedSalePlatformInput.cs new file mode 100644 index 0000000..21a69fb --- /dev/null +++ b/TradeManageNew/Models/Shage/GetOrderUsedSalePlatformInput.cs @@ -0,0 +1,7 @@ +namespace TradeManageNew.Models.Shage +{ + public class GetOrderUsedSalePlatformInput + { + public string SkuCode { get; set; } + } +} \ No newline at end of file diff --git a/TradeManageNew/Models/Shage/OrderUsedSaleEntryInput.cs b/TradeManageNew/Models/Shage/OrderUsedSaleEntryInput.cs deleted file mode 100644 index 807d854..0000000 --- a/TradeManageNew/Models/Shage/OrderUsedSaleEntryInput.cs +++ /dev/null @@ -1,34 +0,0 @@ -using TradeUsedSale.Enums; - -namespace TradeManageNew.Models.Shage -{ - public class OrderUsedSaleEntryInput - { - /// - /// 订单号 - /// - public string OrderCode { get; set; } - - /// - /// SKU Code - /// - public string GoodsCode { get; set; } - - /// - /// 数量 - /// - public int Quantity { get; set; } - - /// - /// 跟踪号 - /// - public string TrackingCode { get; set; } - - /// - /// 仓库 - /// - public WarehouseLocation WarehouseLocation { get; set; } - - public int UserId { get; set; } - } -} \ No newline at end of file diff --git a/TradeManageNew/Models/Shage/OrderUsedSalePlatformInput.cs b/TradeManageNew/Models/Shage/OrderUsedSalePlatformInput.cs new file mode 100644 index 0000000..692e1af --- /dev/null +++ b/TradeManageNew/Models/Shage/OrderUsedSalePlatformInput.cs @@ -0,0 +1,21 @@ +using System.Collections.Generic; + +namespace TradeManageNew.Models.Shage +{ + public class OrderUsedSalePlatformInput + { + public int SkuId { get; set; } + + /// + /// 库位编码 + /// + public string WarehousePositionCode { get; set; } + + /// + /// 图片信息 + /// + public List ImageUrls { get; set; } + + public int UserId { get; set; } + } +} \ No newline at end of file diff --git a/TradeManageNew/OuterService/ShageService.ashx.cs b/TradeManageNew/OuterService/ShageService.ashx.cs index 02968d4..1f36ff5 100644 --- a/TradeManageNew/OuterService/ShageService.ashx.cs +++ b/TradeManageNew/OuterService/ShageService.ashx.cs @@ -7,7 +7,6 @@ using NetLibrary.Log; using System.IO; using TradeModel; using NetLibrary; -using Org.BouncyCastle.Utilities.Encoders; using System.Drawing; using LinqToDB; using TradeManageNew.Models.Shage; @@ -1371,291 +1370,146 @@ namespace TradeManageNew.OuterService md.Data = null; } } - if (Method == "OrderUsedSaleEntry") + if (Method == "GetOrderUsedSalePlatform") { - var input = JsonConvert.DeserializeObject(ResponseContent); - var validatedSuccess = true; - if (string.IsNullOrWhiteSpace(input.OrderCode)) + var input = JsonConvert.DeserializeObject(ResponseContent); + + if (string.IsNullOrWhiteSpace(input.SkuCode)) { md.Code = "400"; - md.Result = "Please enter order code"; + md.Result = "Please enter sku code"; md.Data = null; - validatedSuccess = false; } - if (string.IsNullOrWhiteSpace(input.GoodsCode)) + else + { + input.SkuCode = input.SkuCode.Trim(); + using (var db = new ErpDbContext()) + { + var sku = db.HW_GoodsDetail.FirstOrDefault(x => x.SKU1 == input.SkuCode || + x.SKU2 == input.SkuCode || + x.SKU3 == input.SkuCode || + x.SKU4 == input.SkuCode || + x.SKU5 == input.SkuCode); + + if (sku is null) + { + throw new Exception($"There is no SKU encoded as {input.SkuCode}"); + } + + var product = db.HW_GoodsInfo.FirstOrDefault(x => x.GoodsId == sku.GoodsId); + + var result = new GetOrderUsedSalePlatformDto + { + ProductCode = product?.GoodsCode, + ProductDescription = product?.GoodsEnglisgName, + SkuId = sku.DetailId, + SkuCode = sku.SKU1 + }; + md.Code = "100"; + md.Result = "Success"; + md.Data = JsonConvert.SerializeObject(result); + } + } + } + + if (Method == "PostOrderUsedSalePlatform") + { + var input = JsonConvert.DeserializeObject(ResponseContent); + var validatedSuccess = true; + if (input.SkuId<=0) { md.Code = "400"; md.Result = "Please enter sku code"; md.Data = null; validatedSuccess = false; } - else - { - input.GoodsCode = input.GoodsCode.Trim(); - } - if (string.IsNullOrWhiteSpace(input.TrackingCode)) + if (string.IsNullOrWhiteSpace(input.WarehousePositionCode)) { md.Code = "400"; - md.Result = "Please enter tracking code"; + md.Result = "Please enter the storage location"; md.Data = null; validatedSuccess = false; } - else - { - input.TrackingCode = input.TrackingCode.Trim(); - } - - if (input.Quantity<=0) + + if (input.ImageUrls is null || !input.ImageUrls.Any()) { md.Code = "400"; - md.Result = "The quantity must be greater than 0"; + md.Result = "Please upload photos"; md.Data = null; validatedSuccess = false; } + if (validatedSuccess) { using (var db = new ErpDbContext()) { - //订单信息 - var order = db.DT_OrderInfo.FirstOrDefault(x => - x.PlatOrderCode == input.OrderCode || x.OrderCode == input.OrderCode); - if (order is null) + var user = db.JC_UserInfo.FirstOrDefault(x => x.UserId == input.UserId); + + if (user is null || (user.WorkDesc != "西仓" && user.WorkDesc != "东仓")) + { + throw new Exception("Non warehouse staff"); + } + + var warehouseLocation = WarehouseLocation.East; + if (user.WorkDesc == "西仓") { - throw new Exception($"There is no order with order number {input.OrderCode}"); + warehouseLocation = WarehouseLocation.West; } - //订单明细信息 - var orderItem = db.DT_OrderGoods - .FirstOrDefault(x => x.OrderId == order.OrderId && x.GoodsSKU == input.GoodsCode); - if (orderItem is null) + var storePosition = db.CK_StorePostion.FirstOrDefault(x => + x.PostionCode == input.WarehousePositionCode.Trim()); + if (storePosition is null) { throw new Exception( - $"There is no SKU with code {input.GoodsCode} in order [{input.OrderCode}]"); + $"There is no storage location encoded as {input.WarehousePositionCode}"); } - //SKU信息 - var sku = db.HW_GoodsDetail.FirstOrDefault(x => x.DetailId == orderItem.DetailId); + var sku = db.HW_GoodsDetail.FirstOrDefault(x => x.DetailId == input.SkuId); + if (sku is null) { - throw new Exception( - $"There is no product information with ID {orderItem.DetailId}"); + throw new Exception($"There is no SKU with ID {input.SkuId}"); } - - //检查是否存在相同跟踪号不同订单号的订单 - var repeatTrackingCodeOrderIds = db.DT_OrderUsedSaleEntry - .Where(x => x.TrackingCode == input.TrackingCode) - .Select(x => x.OrderId) - .Distinct(); - if (repeatTrackingCodeOrderIds.Any() && !repeatTrackingCodeOrderIds.Contains(order.OrderId)) + + var product = db.HW_GoodsInfo.FirstOrDefault(x => x.GoodsId == sku.GoodsId); + + if (product is null) { - throw new Exception( - $"The tracking number has already been linked to an order"); + throw new Exception($"There is no product with ID {sku.GoodsId}"); } - - var newOrderUsedSaleEntry = - new TradeUsedSale.Repositories.Models.DT_OrderUsedSaleEntry + var newOrderUsedSalePlatform = + new TradeUsedSale.Repositories.Models.DT_OrderUsedSalePlatform { - OrderId = order.OrderId, - OrderCode = order.OrderCode, - GoodsId = sku.DetailId, - GoodsCode = sku.SKU1, - Quantity = input.Quantity, - TrackingCode = input.TrackingCode, - WarehouseLocation = input.WarehouseLocation, + ProductId = product.GoodsId, + ProductCode = product.GoodsCode, + SkuId = sku.DetailId, + SkuCode = sku.SKU1, + BarCode =string.Empty, + IsPrinted = false, + Status = UsedSalePlatformStatus.NotListed, + WarehouseLocation = warehouseLocation, + WarehousePositionId = storePosition.PostionId, + WarehousePositionCode = storePosition.PostionCode, + ImageUrls = JsonConvert.SerializeObject(input.ImageUrls), CreationTime = DateTime.Now, - CreatorId = input.UserId + CreatorId = input.UserId, }; - - db.InsertWithInt32Identity(newOrderUsedSaleEntry); - - md.Code = "100"; - md.Result = "Success"; - md.Data = ""; - } - } - } - if (Method == "GetOrderUsedSale") - { - var input = JsonConvert.DeserializeObject(ResponseContent); - if (string.IsNullOrWhiteSpace(input.TrackingCode)) - { - md.Code = "400"; - md.Result = "Please enter tracking code"; - md.Data = null; - } - else - { - input.TrackingCode = input.TrackingCode.Trim(); - using (var db = new ErpDbContext()) - { - var orderUsedSaleEntryList = db.DT_OrderUsedSaleEntry - .Where(x => x.TrackingCode == input.TrackingCode) - .ToList(); + var newOrderUsedSalePlatformId = db.InsertWithInt32Identity(newOrderUsedSalePlatform); + var barCode = + $"{(warehouseLocation == WarehouseLocation.East ? "E" : "W")}{newOrderUsedSalePlatformId.ToString().PadLeft(7, '0')}"; - var groupOrderUsedSaleEntry = orderUsedSaleEntryList.GroupBy(x => x.GoodsId) - .Select(o => new - { - o.Key, - Quantity = o.Sum(x => x.Quantity) - }).ToList(); + db.DT_OrderUsedSalePlatform.Where(x => x.Id == newOrderUsedSalePlatformId) + .Set(x => x.BarCode, barCode) + .Update(); + + md.Code = "100"; + md.Result = "Success"; + md.Data = JsonConvert.SerializeObject(newOrderUsedSalePlatform); } } - } - // if (Method == "ReturnUsedSale") - // { - // var input = JsonConvert.DeserializeObject(ResponseContent); - // var validatedSuccess = true; - // if (string.IsNullOrEmpty(input.StoreCode)) - // { - // md.Code = "400"; - // md.Result = "Please enter storage Location"; - // md.Data = null; - // validatedSuccess = false; - // } - // if (string.IsNullOrEmpty(input.TrackCode)) - // { - // md.Code = "400"; - // md.Result = "Please enter tracking code"; - // md.Data = null; - // validatedSuccess = false; - // } - // if (string.IsNullOrEmpty(input.OrderCode)) - // { - // md.Code = "400"; - // md.Result = "Please enter order no"; - // md.Data = null; - // validatedSuccess = false; - // } - // if (input.GoodsList==null || !input.GoodsList.Any()) - // { - // md.Code = "400"; - // md.Result = "Please enter goods information"; - // md.Data = null; - // validatedSuccess = false; - // } - // - // if (validatedSuccess) - // { - // var detailIds = input.GoodsList.Select(x => x.GoodsId).ToList(); - // using (var db = new ErpDbContext()) - // { - // var orderReturns = db.DT_OrderReturn.Where(x => - // x.tracking_id == input.TrackCode && - // x.ordercode==input.OrderCode && - // (string.IsNullOrEmpty(x.InType) || x.InType == "6") && - // (string.IsNullOrEmpty(x.ScanState) || x.ScanState == "1") && - // x.detailid != null && detailIds.Contains(x.detailid.Value)) - // .ToList(); - // - // var orderReturnIds = orderReturns.Select(x => x.id).ToList(); - // - // if (!orderReturnIds.Any()) - // { - // throw new Exception("Return order information not obtained"); - // } - // - // //二手平台上架信息 - // var orderReturnUsedSales = db.DT_OrderReturnUsedSale - // .Where(x => orderReturnIds.Contains(x.OrderReturnId)) - // .ToList(); - // - // foreach (var inputItem in input.GoodsList) - // { - // var returnItem = orderReturns.FirstOrDefault(x => x.detailid == inputItem.GoodsId); - // - // if (returnItem is null) - // { - // throw new Exception( - // $"Return order information not obtained. tracking id {input.TrackCode},order no {input.OrderCode},sku {inputItem.GoodsId}"); - // } - // - // //已上架二手平台的数量 - // var usedSalesQuantity = orderReturnUsedSales - // .Where(x => x.OrderReturnId == returnItem.id) - // .Sum(x => x.Quantity); - // - // //剩余可以上架二手平台的数量 - // var remainingQuantity = returnItem.return_quantity - usedSalesQuantity; - // - // if (inputItem.GoodsNum > remainingQuantity) - // { - // throw new Exception( - // $"sku {returnItem.merchant_sku} submitted quantity {inputItem.GoodsNum} exceeds the remaining submittable quantity {remainingQuantity}"); - // } - // } - // - // db.BeginTransaction(); - // - // try - // { - // #region 插入二手商品信息 - // - // foreach (var inputItem in input.GoodsList) - // { - // var returnItem = orderReturns.First(x => x.detailid == inputItem.GoodsId); - // - // //更新退货订单表数据 - // db.DT_OrderReturn.Where(x => x.id == returnItem.id) - // .Set(x => x.InType, "6") - // .Set(x => x.ScanState, "1") - // .Set(x => x.ScanDate, DateTime.Now) - // .Set(x => x.ScanUserId, input.UserId) - // .Set(x => x.PostionCode, input.StoreCode) - // .Set(x => x.ImgUrl, input.Photo1) - // .Set(x => x.ImgUrl2, input.Photo2) - // .Set(x => x.ImgUrl3, input.Photo3) - // .Set(x => x.ImgUrl4, input.Photo4) - // .Set(x => x.ImgUrl5, input.Photo5) - // .Update(); - // - // var newOrderReturnUsedSale = - // new TradeUsedSale.Repositories.Models.DT_OrderReturnUsedSale - // { - // OrderReturnId = returnItem.id, - // OrderId = returnItem.orderid, - // OrderCode = returnItem.ordercode, - // GoodsId = returnItem.detailid.Value, - // MerchantSku = returnItem.merchant_sku, - // Quantity = inputItem.GoodsNum, - // CreationTime = DateTime.Now, - // CreatorId = input.UserId - // }; - // - // var newOrderReturnUsedSaleId = - // db.InsertWithInt32Identity(newOrderReturnUsedSale); - // - // for (var i = 1; i <= inputItem.GoodsNum; i++) - // { - // var newOrderReturnUsedSaleItem = - // new TradeUsedSale.Repositories.Models.DT_OrderReturnUsedSaleItem - // { - // OrderReturnUsedSaleId = newOrderReturnUsedSaleId, - // IsPublished = false, - // CreationTime = DateTime.Now, - // CreatorId = input.UserId, - // }; - // - // db.InsertWithInt32Identity(newOrderReturnUsedSaleItem); - // } - // } - // - // #endregion - // - // db.CommitTransaction(); - // } - // catch (Exception ex) - // { - // db.RollbackTransaction(); - // throw; - // } - // } - // } - // - // } - } } catch (Exception ex) diff --git a/TradeManageNew/TradeManageNew.csproj b/TradeManageNew/TradeManageNew.csproj index 6396918..8bf2781 100644 --- a/TradeManageNew/TradeManageNew.csproj +++ b/TradeManageNew/TradeManageNew.csproj @@ -2088,6 +2088,8 @@ + + BaseDataNew.asmx @@ -2915,8 +2917,9 @@ - - + + + OrderAPI.ashx diff --git a/TradeManageNew/Web.config b/TradeManageNew/Web.config index 2fb8413..4e4cf74 100644 --- a/TradeManageNew/Web.config +++ b/TradeManageNew/Web.config @@ -155,4 +155,15 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/TradeUsedSale/Enums/UsedSalePlatformStatus.cs b/TradeUsedSale/Enums/UsedSalePlatformStatus.cs new file mode 100644 index 0000000..9c5eb32 --- /dev/null +++ b/TradeUsedSale/Enums/UsedSalePlatformStatus.cs @@ -0,0 +1,27 @@ +using System.ComponentModel; + +namespace TradeUsedSale.Enums +{ + public enum UsedSalePlatformStatus + { + /// + /// 未上架 + /// + [Description("未上架")] NotListed = 1, + + /// + /// 已上架 + /// + [Description("已上架")] Listed, + + /// + /// 等待取货 + /// + [Description("等待取货")] PendingPickup, + + /// + /// 售卖完成 + /// + [Description("售卖完成")] Sold + } +} \ No newline at end of file diff --git a/TradeUsedSale/Repositories/ErpDbContext.cs b/TradeUsedSale/Repositories/ErpDbContext.cs index 72fd9a2..81117e0 100644 --- a/TradeUsedSale/Repositories/ErpDbContext.cs +++ b/TradeUsedSale/Repositories/ErpDbContext.cs @@ -18,11 +18,14 @@ namespace TradeUsedSale.Repositories WriteTraceLine = TraceCallback; } public ITable DT_OrderInfo => this.GetTable(); + public ITable DT_OrderXXInfo => this.GetTable(); public ITable DT_OrderGoods => this.GetTable(); + public ITable HW_GoodsInfo => this.GetTable(); public ITable HW_GoodsDetail => this.GetTable(); public ITable DT_OrderReturn => this.GetTable(); - public ITable DT_OrderUsedSale => this.GetTable(); - public ITable DT_OrderUsedSaleEntry => this.GetTable(); public ITable DT_OrderUsedSalePlatform => this.GetTable(); + public ITable JC_Shop => this.GetTable(); + public ITable JC_UserInfo => this.GetTable(); + public ITable CK_StorePostion => this.GetTable(); } } diff --git a/TradeUsedSale/Repositories/Models/CK_StorePostion.cs b/TradeUsedSale/Repositories/Models/CK_StorePostion.cs new file mode 100644 index 0000000..5113ab0 --- /dev/null +++ b/TradeUsedSale/Repositories/Models/CK_StorePostion.cs @@ -0,0 +1,31 @@ +using LinqToDB.Mapping; + +namespace TradeUsedSale.Repositories.Models +{ + public class CK_StorePostion + { + [PrimaryKey, Identity] + public int PostionId { get; set; } + public int? StoreId { get; set; } + + /// + /// 库位编号 + /// + public string PostionCode { get; set; } + + /// + /// 库位描述 + /// + public string PostionDesc { get; set; } + + /// + /// 备注 + /// + public string Remark { get; set; } + + public int? IsLS { get; set; } + public int? SortNo { get; set; } + public string PostionBox { get; set; } + public int? CompanyId { get; set; } + } +} \ No newline at end of file diff --git a/TradeUsedSale/Repositories/Models/DT_OrderReturn.cs b/TradeUsedSale/Repositories/Models/DT_OrderReturn.cs index 3361451..b9e6256 100644 --- a/TradeUsedSale/Repositories/Models/DT_OrderReturn.cs +++ b/TradeUsedSale/Repositories/Models/DT_OrderReturn.cs @@ -3,10 +3,9 @@ using System; namespace TradeUsedSale.Repositories.Models { - public partial class DT_OrderReturn + public class DT_OrderReturn { - [PrimaryKey, Identity] - public int id { get; set; } + [PrimaryKey, Identity] public int id { get; set; } public int? orderid { get; set; } public string ordercode { get; set; } public string asin { get; set; } @@ -39,49 +38,60 @@ namespace TradeUsedSale.Repositories.Models public string ImgUrl3 { get; set; } public string ImgUrl4 { get; set; } public string ImgUrl5 { get; set; } + /// /// 在美国OfferUp二手平台是否上架 /// public int? IsOfferUp { get; set; } + /// /// 在美国MaketPlace二手平台是否上架 /// public int? IsMaketPlace { get; set; } + /// /// 本条退货是否二手商品 /// public bool? isSecondHand { get; set; } + /// /// 二手订单条形码 /// public string SecondHandCode { get; set; } + /// /// 二手订单状态 /// public int? SecondHandType { get; set; } + /// /// 二手订单客户提货码 /// public string SecondHandImgUrl { get; set; } + /// /// 是否存在二手订单客户预约单 /// public bool? isSecondHandBuyer { get; set; } + /// /// 二手订单客户姓名 /// public string SecondHandBuyerName { get; set; } + /// /// 二手订单客户电话 /// public string SecondHandBuyerPhone { get; set; } + /// /// 二手订单客户到达时间 /// public string SecondHandBuyerTime { get; set; } + /// /// 二手售卖价 /// public decimal? SecondHandSalePrice { get; set; } } -} +} \ No newline at end of file diff --git a/TradeUsedSale/Repositories/Models/DT_OrderUsedSale.cs b/TradeUsedSale/Repositories/Models/DT_OrderUsedSale.cs deleted file mode 100644 index da6cd77..0000000 --- a/TradeUsedSale/Repositories/Models/DT_OrderUsedSale.cs +++ /dev/null @@ -1,76 +0,0 @@ -using System; -using LinqToDB.Mapping; -using TradeUsedSale.Enums; - -namespace TradeUsedSale.Repositories.Models -{ - public class DT_OrderUsedSale - { - [PrimaryKey, Identity] public int Id { get; set; } - - /// - /// 跟踪号 - /// - public string TrackingCode { get; set; } - - /// - /// 订单Id - /// - public int OrderId { get; set; } - - /// - /// 订单号 - /// - public string OrderCode { get; set; } - - /// - /// SKU ID - /// - public int GoodsId { get; set; } - - /// - /// SKU Code - /// - public string GoodsCode { get; set; } - - /// - /// 数量 - /// - public int Quantity { get; set; } - - /// - /// 仓库 - /// - public WarehouseLocation WarehouseLocation { get; set; } - - /// - /// 库位编码 - /// - public string WarehousePositionCode { get; set; } - - /// - /// 扫描时间 - /// - public DateTime ScanTime { get; set; } - - /// - /// 扫描人 - /// - public int ScanUserId { get; set; } - - /// - /// 图片信息 - /// - public string ImageUrls { get; set; } - - /// - /// 创建时间 - /// - public DateTime CreationTime { get; set; } - - /// - /// 创建人 - /// - public int CreatorId { get; set; } - } -} \ No newline at end of file diff --git a/TradeUsedSale/Repositories/Models/DT_OrderUsedSaleEntry.cs b/TradeUsedSale/Repositories/Models/DT_OrderUsedSaleEntry.cs deleted file mode 100644 index 8343f09..0000000 --- a/TradeUsedSale/Repositories/Models/DT_OrderUsedSaleEntry.cs +++ /dev/null @@ -1,59 +0,0 @@ -using System; -using LinqToDB.Mapping; -using TradeUsedSale.Enums; - -namespace TradeUsedSale.Repositories.Models -{ - /// - /// 二手销售商品录入记录 - /// - public class DT_OrderUsedSaleEntry - { - [PrimaryKey, Identity] public int Id { get; set; } - - /// - /// 订单Id - /// - public int OrderId { get; set; } - - /// - /// 订单号 - /// - public string OrderCode { get; set; } - - /// - /// SKU ID - /// - public int GoodsId { get; set; } - - /// - /// SKU Code - /// - public string GoodsCode { get; set; } - - /// - /// 数量 - /// - public int Quantity { get; set; } - - /// - /// 跟踪号 - /// - public string TrackingCode { get; set; } - - /// - /// 仓库 - /// - public WarehouseLocation WarehouseLocation { get; set; } - - /// - /// 创建时间 - /// - public DateTime CreationTime { get; set; } - - /// - /// 创建人 - /// - public int CreatorId { get; set; } - } -} \ No newline at end of file diff --git a/TradeUsedSale/Repositories/Models/DT_OrderUsedSalePlatform.cs b/TradeUsedSale/Repositories/Models/DT_OrderUsedSalePlatform.cs index 4cbca3c..f4cba8a 100644 --- a/TradeUsedSale/Repositories/Models/DT_OrderUsedSalePlatform.cs +++ b/TradeUsedSale/Repositories/Models/DT_OrderUsedSalePlatform.cs @@ -8,18 +8,61 @@ namespace TradeUsedSale.Repositories.Models { [PrimaryKey, Identity] public int Id { get; set; } - public int OrderUsedSaleId { get; set; } - + /// + /// 产品Id + /// + public int ProductId { get; set; } + + /// + /// 产品编码 + /// + public string ProductCode { get; set; } + + /// + /// SKU ID + /// + public int SkuId { get; set; } + + /// + /// SKU Code + /// + public string SkuCode { get; set; } + /// /// 打印条码 /// public string BarCode { get; set; } - + /// - /// 是否已推送 + /// 是否已打印 /// - public bool IsPublished { get; set; } - + public bool IsPrinted { get; set; } + + /// + /// 状态 + /// + public UsedSalePlatformStatus Status { get; set; } + + /// + /// 仓库 + /// + public WarehouseLocation WarehouseLocation { get; set; } + + /// + /// 库位Id + /// + public int WarehousePositionId { get; set; } + + /// + /// 库位编码 + /// + public string WarehousePositionCode { get; set; } + + /// + /// 图片信息 + /// + public string ImageUrls { get; set; } + /// /// 交易方式 /// diff --git a/TradeUsedSale/Repositories/Models/DT_OrderXXInfo.cs b/TradeUsedSale/Repositories/Models/DT_OrderXXInfo.cs new file mode 100644 index 0000000..d1134e4 --- /dev/null +++ b/TradeUsedSale/Repositories/Models/DT_OrderXXInfo.cs @@ -0,0 +1,218 @@ +using System; +using LinqToDB.Mapping; + +namespace TradeUsedSale.Repositories.Models +{ + public class DT_OrderXXInfo + { + [PrimaryKey, Identity] public int Id { get; set; } + public int? OrderId { get; set; } + public decimal? TotalWeight { get; set; } + public decimal? TotalSoild { get; set; } + + /// + /// 货币 + /// + public string MoneyType { get; set; } + + /// + /// Sku + /// + public string CustomID { get; set; } + + /// + /// 客户id + /// + public string SKU { get; set; } + + /// + /// 收件人 + /// + public string RevName { get; set; } + + /// + /// 买家国家 + /// + public string RevCountry { get; set; } + + /// + /// 收件地址 + /// + public string RevAddr { get; set; } + + /// + /// 电话 + /// + public string RevPhone { get; set; } + + /// + /// 手机 + /// + public string RevMoblie { get; set; } + + /// + /// 邮箱 + /// + public string RevMail { get; set; } + + /// + /// 传真 + /// + public string RevFax { get; set; } + + /// + /// 收件人邮编 + /// + public string RevPostCode { get; set; } + + /// + /// 提交信息 + /// + public string SendInfo { get; set; } + + /// + /// 异常信息 + /// + public string ErrorInfo { get; set; } + + /// + /// 购买备注 + /// + public string BuyRemark { get; set; } + + /// + /// 留言 + /// + public string LeaveWord { get; set; } + + /// + /// 计费方式 + /// + public int? FeeType { get; set; } + + /// + /// 是否挂号 + /// + public int? IsRegister { get; set; } + + /// + /// 运输方式 + /// + public int? Post { get; set; } + + /// + /// 运输费用 + /// + public decimal? PostFee { get; set; } + + /// + /// 包装费用 + /// + public decimal? BoxFee { get; set; } + + /// + /// 货物货值 + /// + public decimal? GoodsFee { get; set; } + + /// + /// 我方银行账户 + /// + public string BankCode { get; set; } + + /// + /// 银行流水号 + /// + public string BankNo { get; set; } + + /// + /// 客户银行账户 + /// + public string CustomBankCode { get; set; } + + /// + /// 客户类型1平台2直销 + /// + public int? CustomType { get; set; } + + /// + /// 错发图片id + /// + public string ErrorImage { get; set; } + + /// + /// 渠道 + /// + public int? Channel { get; set; } + + /// + /// 物品地址 + /// + public string GoodsAddr { get; set; } + + /// + /// 跟踪码 + /// + public string TrackCode { get; set; } + + /// + /// 发货仓库 + /// + public int? StoreId { get; set; } + + /// + /// 快递信息 + /// + public string PostInfo { get; set; } + + /// + /// 订单状态1正常2有留言3异常 + /// + public int? OrderState { get; set; } + + /// + /// 收件省,州 + /// + public string RevProvince { get; set; } + + /// + /// 收件城市 + /// + public string RevCity { get; set; } + + /// + /// 收件人区县 + /// + public string RevArea { get; set; } + + public string PostError { get; set; } + public string CountryCode { get; set; } + public string CountryName { get; set; } + public int? SendAddr { get; set; } + public int? TrackState { get; set; } + public DateTime? TrackDate { get; set; } + public int? IsLeaveWord { get; set; } + public int? InnerPost { get; set; } + public decimal? InnerPostFee { get; set; } + + /// + /// 前置跟踪码 + /// + public string FontTrackCode { get; set; } + + public string OnlinePostId { get; set; } + public string PostOneCode { get; set; } + public string TrackCode2 { get; set; } + public int? LogisticsId { get; set; } + public decimal? Fee1 { get; set; } + public decimal? Fee2 { get; set; } + public decimal? Fee3 { get; set; } + public decimal? Fee4 { get; set; } + public string RevProvinceCode { get; set; } + public decimal? Fee11 { get; set; } + public decimal? Fee12 { get; set; } + public decimal? Fee13 { get; set; } + public int? IsAutoTrack { get; set; } + public string Zone { get; set; } + } +} \ No newline at end of file diff --git a/TradeUsedSale/Repositories/Models/HW_GoodsInfo.cs b/TradeUsedSale/Repositories/Models/HW_GoodsInfo.cs new file mode 100644 index 0000000..30567a8 --- /dev/null +++ b/TradeUsedSale/Repositories/Models/HW_GoodsInfo.cs @@ -0,0 +1,249 @@ +using System; +using LinqToDB.Mapping; + +namespace TradeUsedSale.Repositories.Models +{ + public class HW_GoodsInfo + { + [PrimaryKey, Identity] + public int GoodsId { get; set; } + + /// + /// 货物编码 + /// + public string GoodsCode { get; set; } + + /// + /// 货物编码字母 + /// + public string GoodsEg { get; set; } + + /// + /// 货物编号序号 + /// + public int? GoodsNo { get; set; } + + /// + /// 货物原编码(在供应商那边的编码) + /// + public string GoodsOldCode { get; set; } + + /// + /// 类别id + /// + public int? SortId { get; set; } + + /// + /// 分类名称 + /// + public string SortName { get; set; } + + /// + /// 供应商id + /// + public string SupplierId { get; set; } + + /// + /// 货物名称 + /// + public string GoodsName { get; set; } + + /// + /// 货物英文名称 + /// + public string GoodsEnglisgName { get; set; } + + public int? GoodsNum { get; set; } + public int? GoodsLockNum { get; set; } + + /// + /// 商品价格(第一批价格) + /// + public decimal? InPrice { get; set; } + + /// + /// 商品价格(最近批次价格) + /// + public decimal? NowPrice { get; set; } + + /// + /// 货物重量 + /// + public decimal? Weight { get; set; } + + /// + /// 重量单位 + /// + public string WeightUnit { get; set; } + + /// + /// 货物体积 + /// + public decimal? Solid { get; set; } + + /// + /// 体积单位 + /// + public string SolidUnit { get; set; } + + /// + /// 库位id + /// + public int? Position { get; set; } + + public DateTime? InDate { get; set; } + public DateTime? UpdateDate { get; set; } + public string FirstImgUrl { get; set; } + public string GoodsImageIds { get; set; } + public int? CompanyId { get; set; } + + /// + /// 货物计划购买数量 + /// + public int? GoodsPlanNum { get; set; } + + /// + /// 海外仓数量 + /// + public int? GoodsOutNum { get; set; } + + /// + /// 购买途中数量 + /// + public int? GoodsInNum { get; set; } + + /// + /// 安全库存 + /// + public int? SafeNum { get; set; } + + /// + /// 海关编码 + /// + public string HGCode { get; set; } + + /// + /// 海关单位编码 + /// + public string HGCompanyCode { get; set; } + + /// + /// 海关单位编码 + /// + public string UpdateName { get; set; } + + public string GoodsRemark { get; set; } + public int? AutoPlan { get; set; } + + /// + /// 无货 + /// + public int? NoGoods { get; set; } + + /// + /// 平均到货天数 + /// + public decimal? AvgTime { get; set; } + + /// + /// 1正常0删除 + /// + public int? State { get; set; } + + public int? Supplier { get; set; } + + /// + /// 事业部提醒备注 + /// + public string DeptRemark { get; set; } + + /// + /// 异常定期提醒0表示不提醒,其它表示几天后提醒 + /// + public int? NoticeDays { get; set; } + + public string GoodsInfo { get; set; } + public string DefaultCity { get; set; } + public decimal? PageFee { get; set; } + public decimal? PostPrice { get; set; } + public string GoodsSupplyCode { get; set; } + public decimal? BGPrice { get; set; } + public string GoodNote { get; set; } + public string NoticeShop { get; set; } + public int? GoodsHJNum { get; set; } + public int? GoodsHJNum2 { get; set; } + public decimal? NetWeight { get; set; } + public decimal? Long { get; set; } + public decimal? Width { get; set; } + public decimal? Height { get; set; } + public int? BoxRate { get; set; } + public string Cert { get; set; } + public int? UpOff { get; set; } + public decimal? FeeRate { get; set; } + public decimal? JYPrice { get; set; } + public decimal? Long2 { get; set; } + public decimal? Width2 { get; set; } + public decimal? Height2 { get; set; } + public decimal? Weight2 { get; set; } + public int? GoodsInNum2 { get; set; } + public DateTime? LastOrderDate { get; set; } + public int? IsSure { get; set; } + public string IsBox { get; set; } + public int? BoxNum { get; set; } + public string BoxStoreCode { get; set; } + public int? IsEnd { get; set; } + public int? JHDays { get; set; } + public string KFName { get; set; } + public decimal? tcrate { get; set; } + public string KFName2 { get; set; } + public int? DonePlanNum { get; set; } + public decimal? SalePrice { get; set; } + public int? SortId1 { get; set; } + public string SortId2 { get; set; } + public string JYSales { get; set; } + public decimal? CKG { get; set; } + public string mname { get; set; } + public int? muserid { get; set; } + public DateTime? DHDate { get; set; } + public string groupname { get; set; } + public int? guserid { get; set; } + public string groupname_ebay { get; set; } + public string groupname_wlmart { get; set; } + public int? guserid_ebay { get; set; } + public int? guserid_wlmart { get; set; } + public string LeaveWord { get; set; } + public decimal? GoodsMonthHJPrice { get; set; } + public int? GoodsWeekHJNum { get; set; } + public decimal? GoodsWeekHJPrice { get; set; } + public int? GoodsHJNum3 { get; set; } + public int? GoodsHJNum4 { get; set; } + public int? guserid_shopify { get; set; } + public int? guserid_wayfair { get; set; } + public int? guserid_sheIn { get; set; } + public string groupname_shopify { get; set; } + public string groupname_wayfair { get; set; } + public string groupname_sheIn { get; set; } + public string LeaveWord_cg { get; set; } + public int? IsExamine { get; set; } + public string LeaveWord_ebay { get; set; } + public string LeaveWord_walmart { get; set; } + public string LeaveWord_shopify { get; set; } + public string LeaveWord_shein { get; set; } + public string LeaveWord_wayfair { get; set; } + public int? PlanCount { get; set; } + public int? IsYC { get; set; } + public int? EditPlanCount { get; set; } + + /// + /// 公司为该产品卖出每个的补贴费用 + /// + public decimal? SubsidyFee { get; set; } + + public int? guserid_tiktok { get; set; } + public string groupname_tiktok { get; set; } + public int? guserid_temu { get; set; } + public string groupname_temu { get; set; } + public string LeaveWord_tiktok { get; set; } + public string LeaveWord_temu { get; set; } + } +} \ No newline at end of file diff --git a/TradeUsedSale/Repositories/Models/JC_Shop.cs b/TradeUsedSale/Repositories/Models/JC_Shop.cs new file mode 100644 index 0000000..1217949 --- /dev/null +++ b/TradeUsedSale/Repositories/Models/JC_Shop.cs @@ -0,0 +1,114 @@ +using System; +using LinqToDB.Mapping; + +namespace TradeUsedSale.Repositories.Models +{ + public class JC_Shop + { + [PrimaryKey, Identity] public int ShopId { get; set; } + + /// + /// 店铺名称 + /// + public string ShopName { get; set; } + + /// + /// 1速卖通2亚马逊3Ebay4Wish + /// + public int? PlatType { get; set; } + + /// + /// 所属部门 + /// + public int? DeptId { get; set; } + + /// + /// 添加日期 + /// + public DateTime? InDate { get; set; } + + public int? CompanyId { get; set; } + + /// + /// 最大请求次数 + /// + public int? RequestMaxNumber { get; set; } + + /// + /// 当前请求次数 + /// + public int? RequestNumber { get; set; } + + /// + /// 开发者帐号,速卖通AppKey,亚马逊accessKeyId + /// + public string Appkey { get; set; } + + /// + /// 开发者密钥,速卖通DeveKey,亚马逊secretAccessKey + /// + public string DeveKey { get; set; } + + /// + /// 速卖通长时令牌,亚马逊卖家ID + /// + public string RefreshToken { get; set; } + + /// + /// 速卖通短时令牌,亚马逊店铺ID,Ebay与Wish的Token + /// + public string AccessToken { get; set; } + + /// + /// 亚马逊API请求服务器国家地址 + /// + public string Country { get; set; } + + /// + /// 长时令牌保存时间 + /// + public DateTime? RefreshTokenSaveTime { get; set; } + + /// + /// 短时令牌更新时间 + /// + public DateTime? AccessTokenUpdateTime { get; set; } + + /// + /// 是否每天自动读取API订单 + /// + public bool? IsAutoReadData { get; set; } + + /// + /// 店铺匹配优先级 + /// + public int? LevelGrade { get; set; } + + /// + /// 是否有FBA店铺 + /// + public bool? IsFba { get; set; } + + public int? OutDay { get; set; } + public string Master { get; set; } + public string Buyer { get; set; } + public string ShopUser { get; set; } + public string ShopNo { get; set; } + public string LoginName { get; set; } + public string Password { get; set; } + public decimal? PersonFee { get; set; } + public string Code { get; set; } + public string ReUrl { get; set; } + public DateTime? FeeDate { get; set; } + public decimal? TXFee { get; set; } + public int? state { get; set; } + public string sendname { get; set; } + public string store_id { get; set; } + public decimal? dayfee { get; set; } + + /// + /// 是否自己上传面单 1 是,2不同步 + /// + public int? Upload_label { get; set; } + } +} \ No newline at end of file diff --git a/TradeUsedSale/Repositories/Models/JC_UserInfo.cs b/TradeUsedSale/Repositories/Models/JC_UserInfo.cs new file mode 100644 index 0000000..4654a7d --- /dev/null +++ b/TradeUsedSale/Repositories/Models/JC_UserInfo.cs @@ -0,0 +1,65 @@ +using System; +using LinqToDB.Mapping; + +namespace TradeUsedSale.Repositories.Models +{ + public class JC_UserInfo + { + [PrimaryKey, Identity] public int UserId { get; set; } + public string Name { get; set; } + public string SpellName { get; set; } + public string EnglishName { get; set; } + public string Sex { get; set; } + public string UserName { get; set; } + public string Password { get; set; } + public string UserType { get; set; } + public int? State { get; set; } + public int? CompanyId { get; set; } + public string UserCode { get; set; } + public int? LoginCount { get; set; } + public DateTime? LastLoginTime { get; set; } + public string LastLoginIp { get; set; } + public string Photo { get; set; } + public DateTime? UpdateDate { get; set; } + public string Duty { get; set; } + public string Mobile1 { get; set; } + public string Mobile2 { get; set; } + public string Mobile3 { get; set; } + public string UserCard { get; set; } + public DateTime? InDate { get; set; } + public string DeptName { get; set; } + public string IDCard { get; set; } + public string SchoolLevel { get; set; } + public string School { get; set; } + public DateTime? BornDate { get; set; } + public string BornAddr { get; set; } + public DateTime? ContractDate { get; set; } + public DateTime? JoinDate { get; set; } + public DateTime? FormalDate { get; set; } + public string IsMarry { get; set; } + public string IsBaby { get; set; } + public string HuKou { get; set; } + public string HuKouAddr { get; set; } + public string NowAddr { get; set; } + public int? IsRoom { get; set; } + public string RoomAddr { get; set; } + public string Political { get; set; } + public int? DeptId { get; set; } + public string Traffic { get; set; } + public string QQ { get; set; } + public string Email { get; set; } + public string EmployeeType { get; set; } + public int? Holidays { get; set; } + public int? IsLogin { get; set; } + public string WorkDesc { get; set; } + public int? AnnualDay { get; set; } + public int? MoodDay { get; set; } + public string GroupName { get; set; } + public int? guserid { get; set; } + + /// + /// 1能登陆erpoms + /// + public int? isoms { get; set; } + } +} \ No newline at end of file diff --git a/TradeUsedSale/TradeUsedSale.csproj b/TradeUsedSale/TradeUsedSale.csproj index 0a7447e..5068fe5 100644 --- a/TradeUsedSale/TradeUsedSale.csproj +++ b/TradeUsedSale/TradeUsedSale.csproj @@ -46,16 +46,20 @@ + + - - + + + +