From 89b9d5306b6c14231ba3e8d4997fa643c399bf68 Mon Sep 17 00:00:00 2001
From: shanji <18996038927@163.com>
Date: Tue, 30 Jan 2024 12:24:15 +0800
Subject: [PATCH] =?UTF-8?q?=E7=BD=91=E9=A1=B5=E6=8A=93=E7=BB=8F=E8=90=A5?=
=?UTF-8?q?=E6=A8=A1=E5=BC=8F?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../BBWYB.PurchaserCapture.csproj | 6 +-
BBWYB.PurchaserCapture/EncryptionExtension.cs | 83 ++++
BBWYB.PurchaserCapture/MainWindow.xaml | 9 +-
BBWYB.PurchaserCapture/MainWindow.xaml.cs | 110 +++++-
BBWYB.PurchaserCapture/Model/Db/Purchaser.cs | 113 ++++++
.../Model/Db/Purchaseschemeproduct.cs | 53 +++
BBWYB.PurchaserCapture/Model/Enums.cs | 359 ++++++++++++++++++
7 files changed, 721 insertions(+), 12 deletions(-)
create mode 100644 BBWYB.PurchaserCapture/EncryptionExtension.cs
create mode 100644 BBWYB.PurchaserCapture/Model/Db/Purchaser.cs
create mode 100644 BBWYB.PurchaserCapture/Model/Db/Purchaseschemeproduct.cs
create mode 100644 BBWYB.PurchaserCapture/Model/Enums.cs
diff --git a/BBWYB.PurchaserCapture/BBWYB.PurchaserCapture.csproj b/BBWYB.PurchaserCapture/BBWYB.PurchaserCapture.csproj
index a668083..fc64378 100644
--- a/BBWYB.PurchaserCapture/BBWYB.PurchaserCapture.csproj
+++ b/BBWYB.PurchaserCapture/BBWYB.PurchaserCapture.csproj
@@ -1,7 +1,7 @@
- WinExe
+ Exe
net6.0-windows
enable
enable
@@ -9,9 +9,13 @@
+
+
+
+
diff --git a/BBWYB.PurchaserCapture/EncryptionExtension.cs b/BBWYB.PurchaserCapture/EncryptionExtension.cs
new file mode 100644
index 0000000..517892e
--- /dev/null
+++ b/BBWYB.PurchaserCapture/EncryptionExtension.cs
@@ -0,0 +1,83 @@
+using System.IO;
+using System.Security.Cryptography;
+using System.Text;
+
+namespace BBWYB.Common.Extensions
+{
+ public static class EncryptionExtension
+ {
+
+ public static string Md5Encrypt(this string originStr)
+ {
+ using (var md5 = MD5.Create())
+ {
+ return string.Join(string.Empty, md5.ComputeHash(Encoding.UTF8.GetBytes(originStr)).Select(x => x.ToString("x2")));
+ }
+ }
+
+ //AES加密 传入,要加密的串和, 解密key
+ public static string AESEncrypt(this string input)
+ {
+ var key = "dataplatform2019";
+ var ivStr = "1012132405963708";
+
+ var encryptKey = Encoding.UTF8.GetBytes(key);
+ var iv = Encoding.UTF8.GetBytes(ivStr); //偏移量,最小为16
+ using (var aesAlg = Aes.Create())
+ {
+ using (var encryptor = aesAlg.CreateEncryptor(encryptKey, iv))
+ {
+ using (var msEncrypt = new MemoryStream())
+ {
+ using (var csEncrypt = new CryptoStream(msEncrypt, encryptor,
+ CryptoStreamMode.Write))
+
+ using (var swEncrypt = new StreamWriter(csEncrypt))
+ {
+ swEncrypt.Write(input);
+ }
+ var decryptedContent = msEncrypt.ToArray();
+
+ return Convert.ToBase64String(decryptedContent);
+ }
+ }
+ }
+ }
+
+ public static string AESDecrypt(this string cipherText)
+ {
+ var fullCipher = Convert.FromBase64String(cipherText);
+
+ var ivStr = "1012132405963708";
+ var key = "dataplatform2019";
+
+ var iv = Encoding.UTF8.GetBytes(ivStr);
+ var decryptKey = Encoding.UTF8.GetBytes(key);
+
+ using (var aesAlg = Aes.Create())
+ {
+ using (var decryptor = aesAlg.CreateDecryptor(decryptKey, iv))
+ {
+ string result;
+ using (var msDecrypt = new MemoryStream(fullCipher))
+ {
+ using (var csDecrypt = new CryptoStream(msDecrypt, decryptor, CryptoStreamMode.Read))
+ {
+ using (var srDecrypt = new StreamReader(csDecrypt))
+ {
+ result = srDecrypt.ReadToEnd();
+ }
+ }
+ }
+
+ return result;
+ }
+ }
+ }
+
+ public static string Base64Encrypt(this string originStr)
+ {
+ return Convert.ToBase64String(Encoding.UTF8.GetBytes(originStr));
+ }
+ }
+}
diff --git a/BBWYB.PurchaserCapture/MainWindow.xaml b/BBWYB.PurchaserCapture/MainWindow.xaml
index a08f3b2..afee5af 100644
--- a/BBWYB.PurchaserCapture/MainWindow.xaml
+++ b/BBWYB.PurchaserCapture/MainWindow.xaml
@@ -6,7 +6,12 @@
xmlns:local="clr-namespace:BBWYB.PurchaserCapture"
mc:Ignorable="d"
Title="MainWindow" Height="450" Width="800">
-
-
+
+
+
+
+
+
+
diff --git a/BBWYB.PurchaserCapture/MainWindow.xaml.cs b/BBWYB.PurchaserCapture/MainWindow.xaml.cs
index 4e2b178..8cc8c78 100644
--- a/BBWYB.PurchaserCapture/MainWindow.xaml.cs
+++ b/BBWYB.PurchaserCapture/MainWindow.xaml.cs
@@ -1,13 +1,11 @@
-using System.Text;
+using BBWYB.Common.Extensions;
+using BBWYB.Server.Model.Db;
+using Microsoft.Web.WebView2.Core;
+using Microsoft.Web.WebView2.Wpf;
+using System.IO;
+using System.Text.RegularExpressions;
using System.Windows;
-using System.Windows.Controls;
-using System.Windows.Data;
-using System.Windows.Documents;
-using System.Windows.Input;
-using System.Windows.Media;
-using System.Windows.Media.Imaging;
-using System.Windows.Navigation;
-using System.Windows.Shapes;
+using io = System.IO;
namespace BBWYB.PurchaserCapture
{
@@ -16,9 +14,103 @@ namespace BBWYB.PurchaserCapture
///
public partial class MainWindow : Window
{
+ private IFreeSql fsql;
+ private WebView2 wb2;
+
public MainWindow()
{
InitializeComponent();
+
+ fsql = new FreeSql.FreeSqlBuilder().UseConnectionString(FreeSql.DataType.MySql, "data source=rm-bp1508okrh23710yfao.mysql.rds.aliyuncs.com;port=3306;user id=qyroot;password=kaicn1132+-;initial catalog=bbwyb;charset=utf8;sslmode=none;").Build();
+ this.Loaded += MainWindow_Loaded;
+ }
+
+ private async void MainWindow_Loaded(object sender, RoutedEventArgs e)
+ {
+ wb2 = new WebView2();
+ grid.Children.Add(wb2);
+ var wb2Setting = CoreWebView2Environment.CreateAsync(userDataFolder: io.Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData), "AdvUnion.Capturer")).Result;
+ wb2.CoreWebView2InitializationCompleted += Wb2_CoreWebView2InitializationCompleted;
+ await wb2.EnsureCoreWebView2Async(wb2Setting);
+ wb2.CoreWebView2.AddWebResourceRequestedFilter("*", CoreWebView2WebResourceContext.All);
+ wb2.CoreWebView2.WebResourceResponseReceived += CoreWebView2_WebResourceResponseReceived;
+ wb2.CoreWebView2.WebResourceRequested += CoreWebView2_WebResourceRequested;
+ }
+
+ private async void CoreWebView2_WebResourceResponseReceived(object? sender, CoreWebView2WebResourceResponseReceivedEventArgs e)
+ {
+ if (e.Request.Method.ToUpper() != "GET" ||
+ !e.Request.Uri.StartsWith("https://h5api.m.1688.com/h5/mtop.alibaba.alisite.cbu.server.moduleasyncservice") ||
+ !e.Request.Uri.Contains("wp_pc_common_header"))
+ {
+ Console.WriteLine($"不满足URL规则,已忽略 {e.Request.Uri}");
+ return;
+ }
+ if (e.Response.StatusCode != 200)
+ {
+ Console.WriteLine($"HttpCode {e.Response.StatusCode},已忽略 {e.Request.Uri}");
+ return;
+ }
+ var stream = await e.Response.GetContentAsync();
+ var sr = new StreamReader(stream);
+ var content = sr.ReadToEnd();
+ sr.Dispose();
+ var match = Regex.Match(content, "\"bizTypeName\":\\s?\"(.+)\",");
+ if (!match.Success)
+ {
+ Console.WriteLine($"bizTypeName解析失败,已忽略 {e.Request.Uri}");
+ return;
+ }
+ var bizTypeName = match.Groups[1].Value;
+ Console.WriteLine(bizTypeName);
+ }
+
+ private void CoreWebView2_WebResourceRequested(object? sender, CoreWebView2WebResourceRequestedEventArgs e)
+ {
+
+
+ }
+
+ private void Wb2_CoreWebView2InitializationCompleted(object? sender, CoreWebView2InitializationCompletedEventArgs e)
+ {
+
+ }
+
+ private void SetInfo(string msg)
+ {
+ this.Dispatcher.Invoke(() => txtInfo.Text = msg);
+ }
+
+ private void Navigate(string url)
+ {
+ this.Dispatcher.Invoke(() => wb2.CoreWebView2.Navigate(url));
+ }
+
+ private void btn_start_Click(object sender, RoutedEventArgs e)
+ {
+ Task.Factory.StartNew(() =>
+ {
+ var sk = "order";
+ //var sk = "consign";
+ var pspList = fsql.Select()
+ .InnerJoin((psp2, p) => psp2.PurchaserId == p.Id)
+ .Where((psp2, p) => string.IsNullOrEmpty(p.ManagmentMode))
+ .GroupBy((psp2, p) => psp2.PurchaserId)
+ .WithTempQuery(g => new { MaxId = g.Max(g.Value.Item1.Id), PurchaserId = g.Key })
+ .From()
+ .InnerJoin((psp2, psp1) => psp2.MaxId == psp1.Id)
+ .OrderByDescending((psp2, psp1) => psp1.Id)
+ .ToList((psp2, psp1) => psp1);
+
+ for (var i = 0; i < pspList.Count; i++)
+ {
+ SetInfo($"{i + 1}/{pspList.Count}");
+
+ var url = $"https://detail.1688.com/offer/{pspList[i].PurchaseProductId}.html?clickid={Guid.NewGuid().ToString().Md5Encrypt()}&sessionid={Guid.NewGuid().ToString().Md5Encrypt()}&sk={sk}";
+ Navigate(url);
+ Thread.Sleep(60000);
+ }
+ });
}
}
}
\ No newline at end of file
diff --git a/BBWYB.PurchaserCapture/Model/Db/Purchaser.cs b/BBWYB.PurchaserCapture/Model/Db/Purchaser.cs
new file mode 100644
index 0000000..fe65daa
--- /dev/null
+++ b/BBWYB.PurchaserCapture/Model/Db/Purchaser.cs
@@ -0,0 +1,113 @@
+using FreeSql.DataAnnotations;
+
+namespace BBWYB.Server.Model.Db
+{
+
+ ///
+ /// 采购商表
+ ///
+ [Table(Name = "purchaser", DisableSyncStructure = true)]
+ public partial class Purchaser
+ {
+
+ ///
+ /// 采购商Id (1688 SellerUserId)
+ ///
+ [Column(StringLength = 20, IsPrimary = true, IsNullable = false)]
+ public string Id { get; set; }
+
+ ///
+ /// 采购商Id2 (1688 SellerLoginId)
+ ///
+ [Column(StringLength = 50)]
+ public string Id2 { get; set; }
+
+ ///
+ /// 发货地(产地)
+ ///
+ [Column(StringLength = 50)]
+ public string Location { get; set; }
+
+ ///
+ /// 经营模式
+ ///
+ [Column(StringLength = 50)]
+ public string ManagmentMode { get; set; }
+
+ [Column(StringLength = 50)]
+ public string MemberId { get; set; }
+
+ ///
+ /// 采购商名称
+ ///
+ [Column(StringLength = 50)]
+ public string Name { get; set; }
+
+ ///
+ /// 采购平台
+ ///
+ [Column(MapType = typeof(int?))]
+ public Enums.Platform? Platform { get; set; }
+
+ ///
+ /// 商家标签 (超级工厂/实力工厂/实力供应商),可空
+ ///
+ [Column(StringLength = 20)]
+ public string Tag { get; set; }
+
+ ///
+ /// 绑定SPU数
+ ///
+ [Column(DbType = "bigint")]
+ public long? BindingSpuCount { get; set; } = 0;
+
+ ///
+ /// 采购SPU数
+ ///
+ [Column(DbType = "bigint")]
+ public long? PurchasedSpuCount { get; set; } = 0;
+
+ ///
+ /// 绑定SKU数
+ ///
+ [Column(DbType = "bigint")]
+ public long? BindingSkuCount { get; set; } = 0;
+
+ ///
+ /// 采购SKU数
+ ///
+ [Column(DbType = "bigint")]
+ public long? PurchasedSkuCount { get; set; } = 0;
+
+ ///
+ /// 采购次数/采购订单数
+ ///
+ [Column(DbType = "bigint")]
+ public long? PurchasedCount { get; set; } = 0;
+
+ ///
+ /// 采购金额
+ ///
+ [Column(DbType = "decimal(18,2)")]
+ public decimal? PurchasedAmount { get; set; } = 0.00M;
+
+ ///
+ /// 上次采购时间
+ ///
+ [Column(DbType = "datetime")]
+ public DateTime? LastPurchasedTime { get; set; }
+
+ ///
+ /// 最近90天采购金额
+ ///
+ [Column(DbType = "decimal(18,2)")]
+ public decimal? Recent90dPurchasedAmount { get; set; } = 0.00M;
+
+ ///
+ /// 最近90天采购次数
+ ///
+ [Column(DbType = "decimal(18,2)")]
+ public decimal? Recent90dPurchasedCount { get; set; } = 0.00M;
+ }
+
+}
diff --git a/BBWYB.PurchaserCapture/Model/Db/Purchaseschemeproduct.cs b/BBWYB.PurchaserCapture/Model/Db/Purchaseschemeproduct.cs
new file mode 100644
index 0000000..0aa4ca8
--- /dev/null
+++ b/BBWYB.PurchaserCapture/Model/Db/Purchaseschemeproduct.cs
@@ -0,0 +1,53 @@
+using FreeSql.DataAnnotations;
+
+namespace BBWYB.Server.Model.Db
+{
+
+ ///
+ /// 采购方案商品表
+ ///
+ [Table(Name = "purchaseschemeproduct", DisableSyncStructure = true)]
+ public partial class PurchaseSchemeProduct
+ {
+
+ ///
+ /// 采购商品和采购方案的关系Id
+ ///
+ [Column(IsPrimary = true)]
+ public long Id { get; set; }
+
+ [Column(DbType = "datetime")]
+ public DateTime? CreateTime { get; set; }
+
+ [Column(StringLength = 50, IsNullable = false)]
+ public string ProductId { get; set; }
+
+ ///
+ /// 采购商品Id
+ ///
+ [Column(StringLength = 50, IsNullable = false)]
+ public string PurchaseProductId { get; set; }
+
+ ///
+ /// 采购商品链接
+ ///
+ [Column(StringLength = 100)]
+ public string PurchaseUrl { get; set; }
+
+ [Column(StringLength = 50, IsNullable = false)]
+ public string SkuId { get; set; }
+
+ ///
+ /// Sku采购方案Id
+ ///
+ public long SkuPurchaseSchemeId { get; set; }
+
+ ///
+ /// 采购商Id
+ ///
+ [Column(StringLength = 20)]
+ public string PurchaserId { get; set; }
+
+ }
+
+}
diff --git a/BBWYB.PurchaserCapture/Model/Enums.cs b/BBWYB.PurchaserCapture/Model/Enums.cs
new file mode 100644
index 0000000..04e9a1e
--- /dev/null
+++ b/BBWYB.PurchaserCapture/Model/Enums.cs
@@ -0,0 +1,359 @@
+namespace BBWYB.Server.Model
+{
+ public class Enums
+ {
+ ///
+ /// 电商平台 淘宝 = 0,京东 = 1,阿里巴巴 = 2,拼多多 = 3,微信 = 4,拳探 = 10,抖音 = 11
+ ///
+ public enum Platform
+ {
+ 淘宝 = 0,
+ 京东 = 1,
+ 阿里巴巴 = 2,
+ 拼多多 = 3,
+ 微信 = 4,
+ 拳探 = 10,
+ 抖音 = 11
+ }
+
+ ///
+ /// 采购方式 线上采购 = 0,关联外部单 = 1,手动下单 = 2
+ ///
+ public enum PurchaseMethod
+ {
+ 线上采购 = 0,
+ 关联外部单 = 1,
+ 手动下单 = 2
+ }
+
+ ///
+ /// 采购单模式 批发 = 0,代发 = 1
+ ///
+ public enum PurchaseOrderMode
+ {
+ 批发 = 0,
+ 代发 = 1
+ }
+
+ ///
+ /// 仓储类型
+ ///
+ public enum StorageType
+ {
+ 京仓 = 0,
+ 云仓 = 1,
+ 本地自发 = 2,
+ 代发 = 3,
+ SD = 4
+ }
+
+ ///
+ /// 订单类型
+ ///
+ public enum OrderType
+ {
+ #region JD订单类型
+ SOP = 22,
+ LOC = 75,
+ FBP = 21
+ #endregion
+ }
+
+ ///
+ /// 支付方式
+ ///
+ public enum PayType
+ {
+ 货到付款 = 1,
+ 邮局汇款 = 2,
+ 自提 = 3,
+ 在线支付 = 4,
+ 公司转账 = 5,
+ 银行卡转账 = 6
+ }
+
+ ///
+ /// 订单状态
+ /// 待付款 = 0
+ /// 等待采购 = 1, 部分采购 = 110
+ /// 待发货 = 2, 部分发货 = 120
+ /// 待收货 = 3, 部分收货 = 130
+ /// 已完成 = 4
+ /// 已取消 = 6
+ /// 待验收 = 140
+ /// 待核算 = 150
+ ///
+ public enum OrderState
+ {
+ 待付款 = 0,
+ 等待采购 = 1,
+ 部分采购 = 110,
+ 待发货 = 2,
+ 部分发货 = 120,
+ 待收货 = 3,
+ 部分收货 = 130,
+ 已完成 = 4,
+ 已取消 = 6,
+ 待验收 = 140,
+ 待核算 = 150
+ }
+
+ ///
+ /// 采购单状态 待发货 = 0, 部分发货=1, 待收货 = 10, 部分收货=11, 已签收 = 20, 已取消 = 100
+ ///
+ public enum PurchaseOrderState
+ {
+ 待发货 = 0,
+ 部分发货 = 1,
+ 待收货 = 10,
+ 部分收货 = 11,
+ 已签收 = 20,
+ 已取消 = 100
+ }
+
+ ///
+ /// 刷单类型
+ ///
+ public enum SDType
+ {
+ 自刷 = 0,
+ 其他 = 1,
+ 京礼金 = 2,
+ 刷单组 = 3
+ }
+
+ ///
+ /// 订单同步任务状态
+ ///
+ public enum OrderSyncState
+ {
+ Running = 0,
+ End = 1
+ }
+
+ public enum PayChannelType
+ {
+ 支付宝 = 0,
+ 微信 = 1,
+ 银行卡 = 2
+ }
+
+ ///
+ /// 服务单处理结果
+ ///
+ public enum ServiceResult
+ {
+ 退货 = 0,
+ 换新 = 1,
+ 原返 = 2,
+ 线下换新 = 3,
+ 维修 = 4,
+ 商品补发 = 5,
+ 仅退款 = 6,
+ SD退货 = 7
+ }
+
+ ///
+ /// 商品处理方式
+ ///
+ public enum ProductResult
+ {
+ 一件代发_退回厂家 = 0,
+ 退回齐越仓 = 1,
+ 退回京仓 = 2,
+ 退回云仓 = 3,
+ 客户无退货 = 4
+ }
+
+ ///
+ /// 商品情况
+ ///
+ public enum ProductHealth
+ {
+ 可二次销售 = 0,
+ 残次品_无法二次销售 = 1,
+ 厂家退货退款 = 2,
+ 客户无退货 = 3,
+ 破损 = 4
+ }
+
+ ///
+ /// 排序时间类型 ModifyTime = 0, StartTime = 1
+ ///
+ public enum SortTimeType
+ {
+ ModifyTime = 0, StartTime = 1
+ }
+
+ ///
+ /// 支付账单类型
+ ///
+ public enum PayBillType
+ {
+ 支付宝 = 0,
+ 微信 = 1,
+ 银行卡 = 2
+ }
+
+
+ ///
+ /// 资金类型
+ ///
+ public enum AuditCapitalType
+ {
+ 当月商品采购 = 0,
+ 当月商品退款 = 1,
+ 上月商品采购 = 2,
+ 上月商品退款 = 3,
+ 批量采购商品 = 4,
+ 采购运费 = 5,
+ 入仓运费 = 6,
+ 售后成本 = 7,
+ 发票点数 = 8,
+ 快递单号 = 9,
+ 诚e赊还款 = 10,
+ 空单号 = 11,
+ 购买刷单号 = 12,
+ 手机费 = 13,
+ 质检报告 = 14,
+ 备用金转入 = 15,
+ 平台补贴 = 16,
+ 快递赔付 = 17,
+ 自定义 = 18,
+ 备用金充值 = 19
+ }
+
+ ///
+ /// 京东仓库类型 1商家仓 2京东仓
+ ///
+ public enum StockType
+ {
+ 商家仓 = 1, 京仓 = 2
+ }
+
+ ///
+ /// 仓库状态 0暂停,1使用
+ ///
+ public enum StockStatus
+ {
+ 暂停 = 0, 使用 = 1
+ }
+
+ ///
+ /// SKU库存周期 暂无周期=0,增长期=1,稳定期=2,衰退期=3
+ ///
+ public enum SkuStockNumCycleType
+ {
+ 暂无周期 = 0,
+ 增长期 = 1,
+ 稳定期 = 2,
+ 衰退期 = 3
+ }
+
+ ///
+ /// 司南周期 暂无周期 = -1,成长加速期 = 0,成熟利润期 = 1,稳定日销期 = 2,策马奔腾期 = 3
+ ///
+ public enum SiNanCycleType
+ {
+ 暂无周期 = -1,
+ 成长加速期 = 0,
+ 成熟利润期 = 1,
+ 稳定日销期 = 2,
+ 策马奔腾期 = 3
+ }
+
+ ///
+ /// 促销任务状态 等待 = 0,进行中 = 1,已完成 = 2, 已停止 = 3
+ ///
+ public enum PromitionTaskStatus
+ {
+ 等待 = 0,
+ 进行中 = 1,
+ 已完成 = 2,
+ 已停止 = 3
+ }
+
+ ///
+ /// AppKey类型 全类型 = 0, 订单管理 = 1, 商品管理 = 2
+ ///
+ public enum AppKeyType
+ {
+ 全类型 = 0, 订单管理 = 1, 商品管理 = 2
+ }
+
+ ///
+ /// 采购商品API模式 Spider = 0,OneBound = 1
+ ///
+ public enum PurchaseProductAPIMode
+ {
+ Spider = 0,
+ OneBound = 1
+ }
+
+ ///
+ /// 打包配置状态 待配置 = 0,已配置 = 1,需修改 = 2
+ ///
+ public enum PackConfigState
+ {
+ 待配置 = 0,
+ 已配置 = 1,
+ 需修改 = 2
+ }
+
+ ///
+ /// 入仓类型 (发回齐越 = 0, 厂商代发入仓 = 1,其他仓不包装 = 2)
+ ///
+ public enum IntoStoreType
+ {
+ 发回齐越 = 0, 厂商代发入仓 = 1, 其他仓不包装 = 2
+ }
+
+ ///
+ /// 限时任务类型 采购任务 = 0, 合格证拟定任务 = 10, 合格证补充任务 = 11, 待核算任务 = 20, 待议价任务 = 30
+ ///
+ public enum TimeLimitTaskType
+ {
+ 采购任务 = 0, 合格证拟定任务 = 10, 合格证补充任务 = 11, 待核算任务 = 20, 待议价任务 = 30
+ }
+
+ ///
+ /// 平价状态 未平价=0 已平价=1 部分平价=2
+ ///
+ public enum AutoEditOrderPriceType
+ {
+ 未平价 = 0, 已平价 = 1, 部分平价 = 2
+ }
+
+ ///
+ /// 触发优化原因 首次采购 = 0, 首次优化 = 1, 再次优化 = 2
+ ///
+ public enum TriggerOptimizationReason
+ {
+ 首次采购 = 0, 首次优化 = 1, 再次优化 = 2
+ }
+
+ ///
+ /// 厂家经营模式 贸易 = 0, 厂家 = 1
+ ///
+ public enum ManagmentMode
+ {
+ 贸易 = 0, 厂家 = 1
+ }
+
+ ///
+ /// 厂家扩展信息类型 主营类目 = 0, 标签 = 1
+ ///
+ public enum PurchaserBasicInfoType
+ {
+ 主营类目 = 0, 标签 = 1
+ }
+
+ ///
+ /// 比较运算符 大于 = 0, 小于 = 1, 等于 = 2, 介于 = 3
+ ///
+ public enum ComparisonOperator
+ {
+ 大于 = 0, 小于 = 1, 等于 = 2, 介于 = 3
+ }
+ }
+}