3859 lines
202 KiB
C#
3859 lines
202 KiB
C#
using AllBase;
|
||
using AllBase.DouYinModel.Result;
|
||
using AllBase.Helper;
|
||
using AllBase.Model;
|
||
using AllBase.Model.Result;
|
||
using CefSharp;
|
||
using CefSharp.WinForms;
|
||
using DevComponents.DotNetBar;
|
||
using _29WxOrder.Extension;
|
||
using _29WxOrder.FactoryExportForms;
|
||
using _29WxOrder.Helper;
|
||
using _29WxOrder.OrderForms;
|
||
using _29WxOrder.Properties;
|
||
using _29WxOrder.ShopForms;
|
||
using _29WxOrder.ToolForms;
|
||
using NaiBa.CefHelper;
|
||
using NaiBa.CefHelper.Handler;
|
||
using NaiBa.Util;
|
||
using NaiBa.Util.Extension;
|
||
using NaiBa.Util.Helper;
|
||
using Newtonsoft.Json;
|
||
using Newtonsoft.Json.Linq;
|
||
using System;
|
||
using System.Collections.Generic;
|
||
using System.ComponentModel;
|
||
using System.Configuration;
|
||
using System.Data;
|
||
using System.Diagnostics;
|
||
using System.Drawing;
|
||
using System.Drawing.Drawing2D;
|
||
using System.IO;
|
||
using System.Linq;
|
||
using System.Net;
|
||
using System.Text;
|
||
using System.Threading;
|
||
using System.Threading.Tasks;
|
||
using System.Windows.Forms;
|
||
using System.Windows.Threading;
|
||
using Work;
|
||
using Work.Api;
|
||
using Work.BaseForms;
|
||
using Work.BuyUsers;
|
||
using _29WxOrder.MyControl;
|
||
using AllBase.Model.DBModel;
|
||
using Work._29Tools.BLL;
|
||
|
||
namespace _29WxOrder
|
||
{
|
||
public partial class MainForm : Form
|
||
{
|
||
public static MainForm instance = null;
|
||
private ChromiumWebBrowser cefWebBrowser = null;
|
||
private ChromiumWebBrowser cefTaoBaoAliRefreshWebBrowser = null;
|
||
int currentCefReadOrderPage = 0;
|
||
private bool isCefLoad = false;
|
||
|
||
private Point mouseOffset; // 记录鼠标指针的坐标
|
||
private bool isMouseDown; // 记录鼠标左键是否按下
|
||
DispatcherTimer time_SendOrder = new DispatcherTimer();
|
||
DispatcherTimer time_ReadBuyOrder = new DispatcherTimer();
|
||
int DefaultTop = 0;
|
||
int DefaultLeft = 0;
|
||
|
||
public MainForm()
|
||
{
|
||
InitializeComponent();
|
||
|
||
instance = this;
|
||
SetWindowRegion();
|
||
|
||
this.Text = label3.Text; // "小奶兔";
|
||
if (FileBase.Exists(BaseClass.ProgromLogoIco))
|
||
{
|
||
Image img = Image.FromFile(BaseClass.ProgromLogoIco);
|
||
BaseClass.Ico = ImgConvertToIcon.ConvertToIcon(img, false);
|
||
Icon = BaseClass.Ico;
|
||
pictureBox1.Image = img;
|
||
}
|
||
if (FileBase.Exists(BaseClass.ProgromLogo))
|
||
{
|
||
Image img = Image.FromFile(BaseClass.ProgromLogo);
|
||
}
|
||
if (!string.IsNullOrEmpty(BaseClass.ProgramName))
|
||
{
|
||
this.Text = label3.Text = BaseClass.ProgramName;
|
||
}
|
||
|
||
time_SendOrder.Interval = new TimeSpan(0, 0, 1);
|
||
time_SendOrder.Tick += new EventHandler(sendOrder);
|
||
time_SendOrder.Start();
|
||
time_ReadBuyOrder.Interval = new TimeSpan(0, 0, 1);
|
||
time_ReadBuyOrder.Tick += new EventHandler(readBuyOrder);
|
||
time_ReadBuyOrder.Start();
|
||
new Thread(Ini).Start();
|
||
}
|
||
|
||
public string PddUid = "";
|
||
public void Ini()
|
||
{
|
||
string path = "temp/province";
|
||
if (!Directory.Exists("temp"))
|
||
Directory.CreateDirectory("temp");
|
||
if (!Directory.Exists(path))
|
||
Directory.CreateDirectory(path);
|
||
|
||
string mainDomain = "yangkeduo.com";
|
||
while (string.IsNullOrEmpty(PddUid))
|
||
{
|
||
Thread.Sleep(100);
|
||
if (BaseClass.CookiesAll.ContainsKey("yangkeduo.com") && BaseClass.CookiesAll[mainDomain].ContainsKey("pdd_user_id"))
|
||
PddUid = BaseClass.CookiesAll[mainDomain]["pdd_user_id"];
|
||
}
|
||
|
||
string html = GetProvince("1");
|
||
var m = BaseRegex.GetMatchRegex(ref html, @"\{(.+?)\}");
|
||
for (int i = 0; m != null && i < m.Count; i++)
|
||
{
|
||
string list = m[i].Groups[0].Value;
|
||
ProvinceBase p = new ProvinceBase();
|
||
p.name = BaseRegex.GetStringJson(ref list, "region_name");
|
||
p.id = BaseRegex.GetStringJson(ref list, "region_id");
|
||
p.parent_id = BaseRegex.GetStringJson(ref list, "parent_id");
|
||
html = GetProvince(p.id);
|
||
var mm = BaseRegex.GetMatchRegex(ref html, @"\{(.+?)\}");
|
||
for (int j = 0; mm != null && j < mm.Count; j++)
|
||
{
|
||
list = mm[j].Groups[0].Value;
|
||
ProvinceBase pp = new ProvinceBase();
|
||
pp.name = BaseRegex.GetStringJson(ref list, "region_name");
|
||
pp.id = BaseRegex.GetStringJson(ref list, "region_id");
|
||
pp.parent_id = BaseRegex.GetStringJson(ref list, "parent_id");
|
||
html = GetProvince(pp.id);
|
||
var mmm = BaseRegex.GetMatchRegex(ref html, @"\{(.+?)\}");
|
||
for (int k = 0; mmm != null && k < mmm.Count; k++)
|
||
{
|
||
list = mmm[k].Groups[0].Value;
|
||
ProvinceBase ppp = new ProvinceBase();
|
||
ppp.name = BaseRegex.GetStringJson(ref list, "region_name");
|
||
ppp.id = BaseRegex.GetStringJson(ref list, "region_id");
|
||
ppp.parent_id = BaseRegex.GetStringJson(ref list, "parent_id");
|
||
pp.city[ppp.name] = ppp;
|
||
}
|
||
p.city[pp.name] = pp;
|
||
}
|
||
CollectionClass.Province[p.name] = p;
|
||
}
|
||
}
|
||
|
||
#region 设置窗体圆角
|
||
/// <summary>
|
||
/// 设置窗体的Region
|
||
/// </summary>
|
||
public void SetWindowRegion()
|
||
{
|
||
//GraphicsPath FormPath;
|
||
//Rectangle rect = new Rectangle(0, 0, this.Width, this.Height);
|
||
//FormPath = GetRoundedRectPath(rect, 6);
|
||
//this.Region = new Region(FormPath);
|
||
|
||
Work.Helper.WindowStyle.SetFormRoundRectRgn(this, 6);
|
||
}
|
||
/// <summary>
|
||
/// 绘制圆角路径
|
||
/// </summary>
|
||
/// <param name="rect"></param>
|
||
/// <param name="radius"></param>
|
||
/// <returns></returns>
|
||
private GraphicsPath GetRoundedRectPath(Rectangle rect, int radius)
|
||
{
|
||
int diameter = radius;
|
||
Rectangle arcRect = new Rectangle(rect.Location, new Size(diameter, diameter));
|
||
GraphicsPath path = new GraphicsPath();
|
||
|
||
// 左上角
|
||
path.AddArc(arcRect, 180, 90);
|
||
|
||
// 右上角
|
||
arcRect.X = rect.Right - diameter;
|
||
path.AddArc(arcRect, 270, 90);
|
||
|
||
// 右下角
|
||
arcRect.Y = rect.Bottom - diameter;
|
||
path.AddArc(arcRect, 0, 90);
|
||
|
||
// 左下角
|
||
arcRect.X = rect.Left;
|
||
path.AddArc(arcRect, 90, 90);
|
||
path.CloseFigure();//闭合曲线
|
||
return path;
|
||
}
|
||
private void MainForm_Resize(object sender, EventArgs e)
|
||
{
|
||
SetWindowRegion();
|
||
}
|
||
#endregion
|
||
#region 自定义大小
|
||
const int WM_NCHITTEST = 0x0084;
|
||
const int HTLEFT = 10; //左边界
|
||
const int HTRIGHT = 11; //右边界
|
||
const int HTTOP = 12; //上边界
|
||
const int HTTOPLEFT = 13; //左上角
|
||
const int HTTOPRIGHT = 14; //右上角
|
||
const int HTBOTTOM = 15; //下边界
|
||
const int HTBOTTOMLEFT = 0x10; //左下角
|
||
const int HTBOTTOMRIGHT = 17; //右下角
|
||
protected override void WndProc(ref Message m)
|
||
{
|
||
switch (m.Msg)
|
||
{
|
||
case WM_NCHITTEST:
|
||
base.WndProc(ref m);
|
||
Point vPoint = new Point((int)m.LParam & 0xFFFF,
|
||
(int)m.LParam >> 16 & 0xFFFF);
|
||
vPoint = PointToClient(vPoint);
|
||
if (vPoint.X <= 5)
|
||
if (vPoint.Y <= 5)
|
||
m.Result = (IntPtr)HTTOPLEFT;
|
||
else if (vPoint.Y >= ClientSize.Height - 5)
|
||
m.Result = (IntPtr)HTBOTTOMLEFT;
|
||
else m.Result = (IntPtr)HTLEFT;
|
||
else if (vPoint.X >= ClientSize.Width - 5)
|
||
if (vPoint.Y <= 5)
|
||
m.Result = (IntPtr)HTTOPRIGHT;
|
||
else if (vPoint.Y >= ClientSize.Height - 5)
|
||
m.Result = (IntPtr)HTBOTTOMRIGHT;
|
||
else m.Result = (IntPtr)HTRIGHT;
|
||
else if (vPoint.Y <= 5)
|
||
m.Result = (IntPtr)HTTOP;
|
||
else if (vPoint.Y >= ClientSize.Height - 5)
|
||
m.Result = (IntPtr)HTBOTTOM;
|
||
break;
|
||
default:
|
||
base.WndProc(ref m);
|
||
break;
|
||
}
|
||
}
|
||
#endregion
|
||
public delegate void delegateView();
|
||
public BuyForms.BuyBrower buyBrower = new BuyForms.BuyBrower();
|
||
public BuyOrderListForm buyOrderListForm;
|
||
public SendOrderListForms sendOrderForms;
|
||
public SuccessOrderListForm successOrderListForm = new SuccessOrderListForm();
|
||
public AfterSaleOrderListForm afterSaleOrderListForm = new AfterSaleOrderListForm();
|
||
public ChromiumWebBrowser cefWebBrowser1 = null;
|
||
public OAForm oaform;
|
||
private void MainForm_Load(object sender, EventArgs e)
|
||
{
|
||
if (BaseClass.UserName == "18655555336" || BaseClass.UserName == "18968727237")
|
||
{
|
||
this.flowLayoutPanel1.Width = 660;
|
||
}
|
||
|
||
if (BaseClass.IsCloudBuyOrder)
|
||
{
|
||
//this.pnlLogin1688.Location = new Point() { X = this.pnlLogin1688.Location.X, Y = this.pnlLogin1688.Location.Y - 12 };
|
||
//this.pnlLoginTaobao.Location = new Point() { X = this.pnlLoginTaobao.Location.X, Y = this.pnlLoginTaobao.Location.Y - 6 };
|
||
//this.pnlLoginPddPifa.Visible = true;
|
||
chkUsePddPifa.Visible = true;
|
||
chkUseMultiBuyer.Visible = true;
|
||
btnSetMutliBuyer.Visible = true;
|
||
|
||
//pnlLoginTaobao.Visible = true;
|
||
//pnlLogin1688.Visible = true;
|
||
}
|
||
|
||
#if DEBUG
|
||
this.dgvShop.Columns["colSelect"].Visible = true;
|
||
#else
|
||
this.dgvShop.Columns["colSelect"].Visible = false;
|
||
#endif
|
||
|
||
lbv.Text = "V:" + BaseClass.Varsion;
|
||
lbname.Text = "账号:" + BaseClass.UserName;
|
||
dtimestartbuyorder.Value = DateTime.Now;
|
||
dtimeendbuyorder.Value = DateTime.Now.AddDays(-7);
|
||
|
||
if (BaseClass.GroupId != 3)
|
||
pnlReadOrder.Visible = false;
|
||
|
||
if (BaseClass.IsFactory)
|
||
{
|
||
btnExportExcel.Visible = lblFactoryOrder.Visible = txtFactoryExportProductId.Visible = btnFactoryOrder.Visible = true;
|
||
}
|
||
|
||
dgvShop.AddSelectorColumn("colSelect");
|
||
this.pnsku.Location = new System.Drawing.Point(48, 260);
|
||
pnlAfterSaleSelect.Location = pnlSuccessSelect.Location;
|
||
|
||
chkHasLogisticsThenSend.CheckedChanged -= chkHasLogisticsThenSend_CheckedChanged;
|
||
chkHasLogisticsThenSend.Checked = GlobalConfig.SystemSettings.IsHasLogisticsThenSend;
|
||
chkHasLogisticsThenSend.CheckedChanged += chkHasLogisticsThenSend_CheckedChanged;
|
||
|
||
chkUsePddPifa.CheckedChanged -= chkUsePddPifa_CheckedChanged;
|
||
chkUsePddPifa.Checked = GlobalConfig.SystemSettings.IsUsePddPifa;
|
||
chkUsePddPifa.CheckedChanged += chkUsePddPifa_CheckedChanged;
|
||
chkUseMultiBuyer.CheckedChanged -= chkUseMultiBuyer_CheckedChanged;
|
||
chkUseMultiBuyer.Checked = GlobalConfig.SystemSettings.IsUseMultiBuyer;
|
||
chkUseMultiBuyer.CheckedChanged += chkUseMultiBuyer_CheckedChanged;
|
||
|
||
Task.Run(() => { PddMultiBuyerForm.GetMultiBuyer(); });
|
||
|
||
SetForm.ChangeCustomJinBaoLianMengLink();
|
||
|
||
new Thread(ReflashCookies).Start();
|
||
new Thread(readerShop).Start();
|
||
RefreshTabaoAliCookies();
|
||
//物流解析
|
||
List<Work.Model.ExpressBase> expresslist = JsonConvert.DeserializeObject<List<Work.Model.ExpressBase>>(JObject.Parse(CollectionClass.ExpressJsonList)["data"].ToString().Replace("\r\n", "").Replace(" ", ""));
|
||
CollectionClass.ExpressList = expresslist;
|
||
|
||
//获取买手号
|
||
new Thread(GetServiceBuyUsers).Start();
|
||
|
||
#region 浏览器加载(废弃)
|
||
//string targetUrl = "https://www.taobao.com/tbhome/page/market-list";
|
||
//cefWebBrowser1 = new ChromiumWebBrowser(targetUrl);
|
||
//cefWebBrowser1.Location = new Point(1, 1);
|
||
//cefWebBrowser1.Size = new Size(1, 1);
|
||
//cefWebBrowser1.RegisterJsObject("bound", new BoundObject(), BindingOptions.DefaultBinder);
|
||
//cefWebBrowser1.Dock = DockStyle.None;
|
||
//splitMain.Panel2.Controls.Add(cefWebBrowser1);
|
||
#endregion
|
||
|
||
pnlMenu_Click(pnlWaitingDeliverGoods, null);
|
||
pnlMenu_Click(pnlWaitingBuyOrder, null);
|
||
|
||
DefaultTop = this.Top;
|
||
DefaultLeft = this.Left;
|
||
new Thread(buyOrderListForm.SetRows).Start();
|
||
new Thread(buyOrderListForm.dgvOrderDtailUpdate).Start();
|
||
new Thread(ReadJuLiangCef).Start();
|
||
|
||
|
||
//// 是否显示联系客服按钮
|
||
//if (FileBase.Exists("locales/ig.pak") || FileBase.Exists("locales/wl.pak"))
|
||
// lblContactSupport.Visible = false;
|
||
//else
|
||
// lblContactSupport.Visible = true;
|
||
|
||
this.chkReadFinishedRefund.CheckedChanged -= chkReadFinish_CheckedChanged;
|
||
this.chkReadFinishedRefund.Checked = ConfigHelper.LoadConfig<bool>("read_finished_refund");
|
||
AfterSaleOrderListForm.IsReadFinishedRefund = this.chkReadFinishedRefund.Checked;
|
||
this.chkReadFinishedRefund.CheckedChanged += chkReadFinish_CheckedChanged;
|
||
|
||
|
||
}
|
||
|
||
|
||
|
||
|
||
|
||
|
||
void readerShop()
|
||
{
|
||
Task.Run(() =>
|
||
{
|
||
GetServerShop();
|
||
});
|
||
}
|
||
private void readBuyOrder(object sender, EventArgs e)
|
||
{
|
||
if (BaseClass.GroupId != 3)
|
||
{
|
||
lbpdtime.Text = "当前登录的是子账号,请使用主账号读取订单 ";
|
||
return;
|
||
}
|
||
|
||
BaseClass.StartReadOrderSecond--;
|
||
lbpdtime.Text = string.Format("读拍单倒计时:{0}分{1}秒", BaseClass.StartReadOrderMin, BaseClass.StartReadOrderSecond > 9 ? BaseClass.StartReadOrderSecond.ToString() : "0" + BaseClass.StartReadOrderSecond);
|
||
if (BaseClass.StartReadOrderSecond == 0)
|
||
{
|
||
BaseClass.StartReadOrderSecond = 60;
|
||
if (BaseClass.StartReadOrderMin == 0)
|
||
{
|
||
//if (afterSaleOrderListForm != null)
|
||
//{
|
||
// afterSaleOrderListForm.readAfterSaleOrder();
|
||
//}
|
||
ReadOrder(2, "time");
|
||
|
||
BaseClass.StartReadOrderMin = 8;
|
||
}
|
||
BaseClass.StartReadOrderMin--;
|
||
}
|
||
}
|
||
|
||
bool zidongfahuo = false;
|
||
/// <summary>
|
||
/// 发货倒计时 自动发货
|
||
/// </summary>
|
||
/// <param name="sender"></param>
|
||
/// <param name="e"></param>
|
||
private void sendOrder(object sender, EventArgs e)
|
||
{
|
||
if (!GlobalConfig.SystemSettings.IsAutoSendOrder)
|
||
{
|
||
lbSendOrder.Text = "发货暂停,可在设置开启";
|
||
return;
|
||
}
|
||
BaseClass.sendOrderSecond--;
|
||
lbSendOrder.Text = string.Format("发货倒计时:{0}分{1}秒", BaseClass.sendOrderMin, BaseClass.sendOrderSecond > 9 ? BaseClass.sendOrderSecond.ToString() : "0" + BaseClass.sendOrderSecond);
|
||
if (BaseClass.sendOrderSecond == 0)
|
||
{
|
||
BaseClass.sendOrderSecond = 60;
|
||
if (BaseClass.sendOrderMin == 0)
|
||
{
|
||
if (zidongfahuo == false)
|
||
{
|
||
new Thread(getTrackingNumberAndAutoSendOrder).Start();
|
||
}
|
||
BaseClass.sendOrderMin = 15;
|
||
}
|
||
BaseClass.sendOrderMin--;
|
||
}
|
||
}
|
||
|
||
/// <summary>
|
||
/// 读取上家发货信息,获取成功后自动发货
|
||
/// </summary>
|
||
private void getTrackingNumberAndAutoSendOrder()
|
||
{
|
||
zidongfahuo = true;
|
||
#region 获取物流信息
|
||
for (int i = CollectionClass.orderSenderDataList.Count - 1; i >= 0; i--)
|
||
{
|
||
DouYinOrderModel item = CollectionClass.orderSenderDataList[i];
|
||
if (!string.IsNullOrEmpty(item.buyer_mobile) && (item.order_status_buy == 2 || item.order_status_buy == 3 || item.order_status_buy == 5))
|
||
{
|
||
try
|
||
{
|
||
KeyValuePair<BuyNumber, UserCookies> dicbuyer = new KeyValuePair<BuyNumber, UserCookies>();
|
||
string trackingNumber = "";
|
||
string shippingName = "";
|
||
string html = "";
|
||
string buycookies = "";
|
||
string upId = string.IsNullOrEmpty(item.default_up_ids) ? item.up_product_id : item.default_up_ids;
|
||
if (item.order_id == "4861161964074866166" || item.order_id_buy.Contains("211224-049513767960947"))
|
||
{
|
||
}
|
||
|
||
// pdd订单
|
||
if (item.order_id_buy.Contains("-"))
|
||
{
|
||
// 拼多多批发订单
|
||
if (item.buyer_mobile.ToUpper().StartsWith("PDD"))
|
||
{
|
||
var url = "https://pifa.pinduoduo.com/pifa/pc/order/queryOrderDetail";
|
||
PddPifaShopInfo pddPifashop = null;
|
||
try
|
||
{
|
||
pddPifashop = GlobalConfig.LstPddPifaShop.Find(x => x.PddId == item.buyer_mobile);
|
||
}
|
||
catch (Exception) { }
|
||
|
||
if (pddPifashop == null)
|
||
{
|
||
item.send_order_error_msg = "未找到批发买手店铺信息";
|
||
//orderViewModel.experrorico = "\ue609";
|
||
}
|
||
else
|
||
{
|
||
string htmlDetail = AllBase.Helper.HttpHelper.Request_pifa_pinduoduo_com(url,
|
||
"https://pifa.pinduoduo.com", "{\"orderSn\":\"" + item.order_id_buy + "\"}", pddPifashop.CookieStr);
|
||
if (htmlDetail.Contains("\"success\":true"))
|
||
{
|
||
trackingNumber = BaseRegex.GetStringJson(ref htmlDetail, "trackingNumber"); // 物流单号
|
||
shippingName = BaseRegex.GetStringJson(ref htmlDetail, "shippingCompany"); // 物流公司名称
|
||
}
|
||
}
|
||
}
|
||
// 普通拼多多订单或者多买手拍单
|
||
else
|
||
{
|
||
dicbuyer = PddBuyUser.buyUserCookies.FirstOrDefault(x => x.Value.uid == item.buyer_mobile_uid);
|
||
for (int kk = 0; dicbuyer.Key != null && kk < dicbuyer.Value.Cookies.Count; kk++)
|
||
{
|
||
buycookies += dicbuyer.Value.Cookies[kk].Name + "=" + dicbuyer.Value.Cookies[kk].Value + "; ";
|
||
}
|
||
Thread.Sleep(500);
|
||
// 多买手拍单
|
||
if (item.buyer_mobile.StartsWith("plbuy_"))
|
||
{
|
||
var multiUserCookie = GlobalConfig.LstMultiBuyer.Find(u => u.pdd_user_id == item.buyer_mobile.Replace("plbuy_", ""));
|
||
if (multiUserCookie != null)
|
||
buycookies = "PDDAccessToken=" + multiUserCookie.cookies + ";";
|
||
}
|
||
|
||
html = GetPostTaobaoHtml.UploadTaobao("https://yangkeduo.com/goods_express.html?order_sn=" + item.order_id_buy, "https://yangkeduo.com", true, buycookies);
|
||
if (html.Contains("window.rawData= null;"))
|
||
{
|
||
StringBuilder sb = new StringBuilder();
|
||
sb.Append("&order_id=" + item.order_id);
|
||
sb.Append("&send_order_error_msg=买手号掉线无法自动发货");
|
||
sb.Append("&order_status_buy=5");
|
||
sb.Append("&is_update_order=1"); // 1修改状态0不修改状态
|
||
string urls = BaseClass.Build29WxObjString("order&act=update");
|
||
string htmlssss = GetHtml.PostUtf8(urls, UserLogin.GetSignaturex() + sb.ToString());
|
||
item.send_order_error_msg = "买手号掉线无法自动发货";
|
||
item.order_status_buy = 5;
|
||
sendOrderForms.SetOrderEditShowInDgvRows(item, 1);
|
||
continue;
|
||
}
|
||
if (item.send_order_error_msg == "买手号掉线无法自动发货" || item.send_order_error_msg == "买手号重新连线,上家发货后将自动发货")
|
||
{
|
||
var newErrorText = "";
|
||
if (item.send_order_error_msg == "买手号掉线无法自动发货")
|
||
newErrorText = "买手号重新连线,上家发货后将自动发货";
|
||
StringBuilder sb = new StringBuilder();
|
||
sb.Append("&order_id=" + item.order_id);
|
||
sb.Append("&order_status_buy=5");
|
||
sb.Append("&is_update_order=1"); // 1修改状态0不修改状态
|
||
sb.Append("&send_order_error_msg=" + newErrorText);
|
||
string urls = BaseClass.Build29WxObjString("order&act=update");
|
||
string htmlssss = GetHtml.PostUtf8(urls, UserLogin.GetSignaturex() + sb.ToString());
|
||
item.send_order_error_msg = newErrorText;
|
||
sendOrderForms.SetOrderEditShowInDgvRows(item, 1);
|
||
}
|
||
trackingNumber = BaseRegex.GetStringJson(ref html, "trackingNumber"); // 物流单号
|
||
shippingName = BaseRegex.GetStringJson(ref html, "shippingName"); // 物流公司名称
|
||
|
||
// 多买手订单记录物流信息防止多买手掉线无法读取
|
||
if (item.buyer_mobile.StartsWith("plbuy_") && !string.IsNullOrEmpty(trackingNumber) && !string.IsNullOrEmpty(shippingName))
|
||
{
|
||
if (item.express_name != shippingName || item.express_no != trackingNumber)
|
||
{
|
||
StringBuilder sb = new StringBuilder();
|
||
sb.Append("&order_id=" + item.order_id);
|
||
sb.Append("&is_update_order=0"); // 1修改状态0不修改状态
|
||
sb.Append("&express_name=" + shippingName);
|
||
sb.Append("&express_no=" + trackingNumber);
|
||
item.express_name = shippingName;
|
||
item.express_no = trackingNumber;
|
||
string urls = BaseClass.Build29WxObjString("order&act=update");
|
||
string param = UserLogin.GetSignaturex() + sb.ToString();
|
||
string htmlssss = GetHtml.PostUtf8(urls, param);
|
||
}
|
||
}
|
||
|
||
// 获取上家发货信息成功,在发货超时之前4小时以上,必须读到上家物流后再发货
|
||
if (!string.IsNullOrEmpty(trackingNumber) && GlobalConfig.SystemSettings.IsHasLogisticsThenSend && item.create_time.ParseToDateTime().AddHours(44) > DateTime.Now)
|
||
{
|
||
if (!html.Contains("已揽件") && !html.Contains("已收寄"))
|
||
{
|
||
continue;
|
||
}
|
||
}
|
||
}
|
||
}
|
||
// 阿里订单
|
||
else if (upId.StartsWith("al-") || upId.StartsWith("1688-"))
|
||
{
|
||
if (ALBuyUser.buyUserCookies.Count > 0)
|
||
{
|
||
dicbuyer = ALBuyUser.buyUserCookies.FirstOrDefault(x => x.Value.uid == item.buyer_mobile_uid);
|
||
for (int kk = 0; dicbuyer.Key != null && kk < dicbuyer.Value.Cookies.Count; kk++)
|
||
{
|
||
buycookies += dicbuyer.Value.Cookies[kk].Name + "=" + dicbuyer.Value.Cookies[kk].Value + "; ";
|
||
}
|
||
}
|
||
|
||
string url = "https://trade.1688.com/order/new_step_order_detail.htm?orderId=" + item.order_id_buy + "&tracelog=20120313bscentertologisticsbuyer&";
|
||
string refere = "https://trade.1688.com/order/buyer_order_list.htm?tracelog=work_2_m_buyList";
|
||
|
||
html = GetPostTaobaoHtml.UploadTaobao(url, refere, false, buycookies);
|
||
|
||
if (html.Contains("登录页面") || html.Contains("命令参数不对"))
|
||
{
|
||
StringBuilder sb = new StringBuilder();
|
||
sb.Append("&order_id=" + item.order_id);
|
||
sb.Append("&send_order_error_msg=买手号掉线无法自动发货");
|
||
sb.Append("&order_status_buy=5");
|
||
sb.Append("&is_update_order=1"); // 1修改状态0不修改状态
|
||
item.order_status_buy = 0;
|
||
string urls = BaseClass.Build29WxObjString("order&act=update");
|
||
string htmlssss = GetHtml.PostUtf8(urls, UserLogin.GetSignaturex() + sb.ToString());
|
||
item.send_order_error_msg = "买手号掉线无法自动发货";
|
||
item.order_status_buy = 5;
|
||
sendOrderForms.SetOrderEditShowInDgvRows(item, 1);
|
||
continue;
|
||
}
|
||
|
||
trackingNumber = BaseRegex.GetMatchRegexString(ref html, "data-billno=\"([^<]+?)\"");
|
||
shippingName = BaseRegex.GetMatchRegexString(ref html, "data-companyName=\"([^<]+?)\"");
|
||
string cpCode = BaseRegex.GetMatchRegexString(ref html, "data-companyno=\"([^<]+?)\"");
|
||
|
||
// 获取上家发货信息成功,在发货超时之前4小时以上,必须读到上家物流后再发货
|
||
if (!string.IsNullOrEmpty(trackingNumber) && GlobalConfig.SystemSettings.IsHasLogisticsThenSend && item.create_time.ParseToDateTime().AddHours(44) > DateTime.Now)
|
||
{
|
||
string ranStr = "1720";
|
||
for (int r = 0; r < 18; r++)
|
||
{
|
||
ranStr += Randomx.GetId(0, 10).ToString();
|
||
}
|
||
url = "https://wuliu.1688.com/order/ajax/logistics_trace_ajax.jsx?_input_charset=UTF-8" +
|
||
"&callback=jQuery" + ranStr + "_" + BaseClass.ConvertDateTimeLong(DateTime.Now) +
|
||
"&tradeId=" + item.order_id_buy + "&mailNo=" + trackingNumber + "&cpCode=" + cpCode + "&viewType=buyer";
|
||
refere = "https://trade.1688.com/order/new_step_order_detail.htm?orderId=" + item.order_id_buy + "&tracelog=20120313bscentertologisticsbuyer&";
|
||
html = GetPostTaobaoHtml.UploadTaobao(url, refere, false, buycookies);
|
||
if (!html.Contains("已揽件") && !html.Contains("已收寄"))
|
||
{
|
||
continue;
|
||
}
|
||
}
|
||
}
|
||
// 淘宝订单
|
||
else
|
||
{
|
||
if (TaoBaoBuyUser.buyUserCookies.Count > 0)
|
||
{
|
||
dicbuyer = TaoBaoBuyUser.buyUserCookies.FirstOrDefault(x => x.Value.uid == item.buyer_mobile_uid);
|
||
for (int kk = 0; dicbuyer.Key != null && kk < dicbuyer.Value.Cookies.Count; kk++)
|
||
{
|
||
buycookies += dicbuyer.Value.Cookies[kk].Name + "=" + dicbuyer.Value.Cookies[kk].Value + "; ";
|
||
}
|
||
}
|
||
|
||
string url = "https://buyertrade.taobao.com/trade/detail/trade_item_detail.htm?bizOrderId=" + item.order_id_buy;
|
||
string refere = "https://trade.1688.com/order/buyer_order_list.htm?tracelog=work_2_m_buyList";
|
||
refere = "";
|
||
html = GetPostTaobaoHtml.UploadTaobao(url, refere, false, buycookies);
|
||
|
||
if (html.Contains("登录页面"))
|
||
{
|
||
StringBuilder sb = new StringBuilder();
|
||
sb.Append("&order_id=" + item.order_id);
|
||
sb.Append("&send_order_error_msg=买手号掉线无法自动发货");
|
||
sb.Append("&order_status_buy=5");
|
||
sb.Append("&is_update_order=1"); // 1修改状态0不修改状态
|
||
item.order_status_buy = 0;
|
||
string urls = BaseClass.Build29WxObjString("order&act=update");
|
||
string htmlssss = GetHtml.PostUtf8(urls, UserLogin.GetSignaturex() + sb.ToString());
|
||
item.send_order_error_msg = "买手号掉线无法自动发货";
|
||
item.order_status_buy = 5;
|
||
sendOrderForms.SetOrderEditShowInDgvRows(item, 1);
|
||
continue;
|
||
}
|
||
|
||
shippingName = BaseRegex.GetStringJson(ref html, "companyName");
|
||
if (string.IsNullOrEmpty(shippingName))
|
||
shippingName = BaseRegex.GetMatchRegexString(ref html, "\\\\\"logisticsName\\\\\":\\\\\"([\\s\\S]+?)\\\\\"");
|
||
trackingNumber = BaseRegex.GetStringJson(ref html, "mailNo");
|
||
if (string.IsNullOrEmpty(trackingNumber))
|
||
trackingNumber = BaseRegex.GetMatchRegexString(ref html, "\\\\\"logisticsNum\\\\\":\\\\\"([\\s\\S]+?)\\\\\"");
|
||
|
||
bool isReadWuliu = false;
|
||
if (string.IsNullOrEmpty(shippingName) || string.IsNullOrEmpty(trackingNumber))
|
||
{
|
||
long ti = AllBase.BaseClass.ConvertDateTimeLong(DateTime.Now);
|
||
long ti2 = ti + Randomx.GetId(1, 3);
|
||
//url = "https://detail.i56.taobao.com/trace/trace_detail.htm?tId=" + item.order_id_buy + "&userId=44051536";
|
||
url = "https://detail.i56.taobao.com/call/queryTrace.do?t=" + ti + "&_ksTS=" + ti2 + "_13&callback=jsonp14&dimension=TRADE_ID&tradeId=" + item.order_id_buy;
|
||
refere = "https://trade.taobao.com/";
|
||
html = GetPostTaobaoHtml.UploadTaobao(url, refere, false, buycookies);
|
||
shippingName = BaseRegex.GetStringJson(ref html, "cpName");
|
||
trackingNumber = BaseRegex.GetStringJson(ref html, "mailNo");
|
||
isReadWuliu = true;
|
||
}
|
||
|
||
// 获取上家发货信息成功,在发货超时之前4小时以上,必须读到上家物流后再发货
|
||
if (!string.IsNullOrEmpty(trackingNumber) && GlobalConfig.SystemSettings.IsHasLogisticsThenSend && item.create_time.ParseToDateTime().AddHours(44) > DateTime.Now)
|
||
{
|
||
if (!isReadWuliu)
|
||
{
|
||
long ti = AllBase.BaseClass.ConvertDateTimeLong(DateTime.Now);
|
||
long ti2 = ti + Randomx.GetId(1, 3);
|
||
//url = "https://detail.i56.taobao.com/trace/trace_detail.htm?tId=" + item.order_id_buy + "&userId=44051536";
|
||
url = "https://detail.i56.taobao.com/call/queryTrace.do?t=" + ti + "&_ksTS=" + ti2 + "_13&callback=jsonp14&dimension=TRADE_ID&tradeId=" + item.order_id_buy;
|
||
refere = "https://trade.taobao.com/";
|
||
html = GetPostTaobaoHtml.UploadTaobao(url, refere, false, buycookies);
|
||
}
|
||
if (!html.Contains("已揽件") && !html.Contains("已收寄"))
|
||
{
|
||
continue;
|
||
}
|
||
}
|
||
}
|
||
|
||
if (!string.IsNullOrEmpty(trackingNumber))
|
||
{
|
||
List<Work.Model.ExpressBase> expressbaselist = CollectionClass.ExpressList.FindAll(x => x.name.Contains(shippingName.Substring(0, 2)));
|
||
foreach (Work.Model.ExpressBase expressbase in expressbaselist)
|
||
{
|
||
Dictionary<string, string> dic = new Dictionary<string, string>() { };
|
||
dic.Add("order_id", item.order_id);
|
||
dic.Add("company", expressbase.name); // 物流公司名称
|
||
dic.Add("company_code", expressbase.code); // 物流公司code
|
||
dic.Add("logistics_code", trackingNumber); // 快递单号
|
||
ShopLoginInfo shop = GlobalConfig.ShopLoginList.FirstOrDefault(v => v.ShopId == item.shop_id.ToString());
|
||
DouyinApi apix = new DouyinApi(shop);
|
||
apix.JsonData = dic;
|
||
html = apix.OrderLogisticsAdd();
|
||
|
||
if (html.ToLower().Contains("success") || html.Contains("订单已发货,不能再次执行发货"))
|
||
{
|
||
string buyusername = "";
|
||
string buyuserid = "";
|
||
if (dicbuyer.Value != null)
|
||
{
|
||
buyusername = dicbuyer.Key.name;
|
||
buyuserid = dicbuyer.Value.uid;
|
||
}
|
||
StringBuilder sb = new StringBuilder();
|
||
sb.Append("&order_id=" + item.order_id);
|
||
sb.Append("&express_name=" + expressbase.name); // 0已完成 1待拍单 2等待上家发货
|
||
sb.Append("&express_no=" + trackingNumber);
|
||
sb.Append("&order_status_buy=0");
|
||
sb.Append("&is_update_order=1"); // 1修改状态0不修改状态
|
||
item.express_name = expressbase.name;
|
||
item.express_no = trackingNumber;
|
||
//CollectionClass.orderSenderDataList.RemoveAll(x => x.order_id == item.order_id);
|
||
string url = BaseClass.Build29WxObjString("order&act=update");
|
||
string param = UserLogin.GetSignaturex() + sb.ToString();
|
||
string htmlsss = GetHtml.PostUtf8(url, param);
|
||
CollectionClass.orderSenderDataList.Remove(item);
|
||
sendOrderForms.SetOrderEditShowInDgvRows(item, 2);
|
||
break;
|
||
}
|
||
}
|
||
|
||
if (JObject.Parse(html)["code"]?.ToString() != "10000")
|
||
{
|
||
// 检查买手是否退款 211008-514808934040947
|
||
bool isreturn = new AutoConfirmExpress(buycookies).isReturnProduct(item.order_id_buy, buycookies);
|
||
if (isreturn)
|
||
{
|
||
StringBuilder sb = new StringBuilder();
|
||
sb.Append("&order_id=" + item.order_id);
|
||
sb.Append("&order_status_buy=0");
|
||
sb.Append("&is_update_order=1"); // 1修改状态0不修改状态
|
||
item.express_name = shippingName;
|
||
item.express_no = trackingNumber;
|
||
item.send_order_error_msg = JObject.Parse(html)["sub_msg"].ToString();
|
||
item.order_status_buy = 0;
|
||
string urls = BaseClass.Build29WxObjString("order&act=update");
|
||
string param = UserLogin.GetSignaturex() + sb.ToString();
|
||
string htmlssss = GetHtml.PostUtf8(urls, param);
|
||
sendOrderForms.SetOrderEditShowInDgvRows(item, 2);
|
||
}
|
||
else
|
||
{
|
||
// 自动发货失败
|
||
StringBuilder sb = new StringBuilder();
|
||
sb.Append("&order_id=" + item.order_id);
|
||
sb.Append("&express_name=" + shippingName); // 0已完成 1待拍单 2等待上家发货
|
||
sb.Append("&express_no=" + trackingNumber);
|
||
sb.Append("&order_status_buy=5");
|
||
sb.Append("&send_order_error_msg=" + JObject.Parse(html)["sub_msg"].ToString());
|
||
sb.Append("&is_update_order=1"); // 1修改状态0不修改状态
|
||
item.express_name = shippingName;
|
||
item.express_no = trackingNumber;
|
||
item.send_order_error_msg = JObject.Parse(html)["sub_msg"].ToString();
|
||
item.order_status_buy = 5;
|
||
string urls = BaseClass.Build29WxObjString("order&act=update");
|
||
string param = UserLogin.GetSignaturex() + sb.ToString();
|
||
string htmlssss = GetHtml.PostUtf8(urls, param);
|
||
sendOrderForms.SetOrderEditShowInDgvRows(item, 1);
|
||
}
|
||
}
|
||
}
|
||
else
|
||
{
|
||
// 是否退款
|
||
bool isreturn = new AutoConfirmExpress(buycookies).isReturnProduct(item.order_id_buy, buycookies);
|
||
if (isreturn)
|
||
{
|
||
StringBuilder sb = new StringBuilder();
|
||
sb.Append("&order_id=" + item.order_id);
|
||
sb.Append("&order_status_buy=0");
|
||
sb.Append("&is_update_order=1");//1修改状态0不修改状态
|
||
item.order_status_buy = 0;
|
||
string urls = BaseClass.Build29WxObjString("order&act=update");
|
||
string htmlssss = GetHtml.PostUtf8(urls, UserLogin.GetSignaturex() + sb.ToString());
|
||
sendOrderForms.SetOrderEditShowInDgvRows(item, 2);
|
||
}
|
||
}
|
||
}
|
||
catch (Exception ex)
|
||
{
|
||
|
||
}
|
||
}
|
||
}
|
||
#endregion
|
||
zidongfahuo = false;
|
||
}
|
||
|
||
/// <summary>
|
||
/// 手动发货
|
||
/// </summary>
|
||
/// <param name="orderid">订单ID</param>
|
||
/// <param name="type">1待拍单直接发货 2待发货直接发货</param>
|
||
public void logisticsAddOrder(string orderid, int type, string expname, string expno)
|
||
{
|
||
string html = "";
|
||
DouYinOrderModel ordermodel = null;
|
||
if (type == 1)
|
||
{
|
||
ordermodel = CollectionClass.orderDataList.Find(x => x.order_id == orderid);
|
||
}
|
||
else if (type == 2)
|
||
{
|
||
ordermodel = CollectionClass.orderSenderDataList.Find(x => x.order_id == orderid);
|
||
}
|
||
|
||
if (ordermodel == null)
|
||
{
|
||
return;
|
||
}
|
||
if (string.IsNullOrEmpty(expname) || string.IsNullOrEmpty(expno))
|
||
{
|
||
MessageBox.Show("物流信息不正确,请编辑修改物流信息。");
|
||
return;
|
||
}
|
||
if (ordermodel.order_status_buy != 2 && ordermodel.order_status_buy != 3 && ordermodel.order_status_buy != 5)
|
||
{
|
||
MessageBox.Show("此订单状态无法发货。");
|
||
return;
|
||
}
|
||
var dicbuyer = PddBuyUser.buyUserCookies.FirstOrDefault(x => x.Value.uid == ordermodel.buyer_mobile_uid);
|
||
string buycookies = "";
|
||
for (int kk = 0; dicbuyer.Key != null && kk < dicbuyer.Value.Cookies.Count; kk++)
|
||
{
|
||
buycookies += dicbuyer.Value.Cookies[kk].Name + "=" + dicbuyer.Value.Cookies[kk].Value + "; ";
|
||
}
|
||
|
||
List<Work.Model.ExpressBase> expressbaselist = CollectionClass.ExpressList.FindAll(x => x.name == expname);
|
||
if (expressbaselist.Count == 0)
|
||
{
|
||
BaseMsgForm.ShowInfo("无此物流公司", "提示");
|
||
return;
|
||
}
|
||
foreach (Work.Model.ExpressBase expressbase in expressbaselist)
|
||
{
|
||
Dictionary<string, string> dic = new Dictionary<string, string>() { };
|
||
dic.Add("order_id", ordermodel.order_id);
|
||
dic.Add("company", expname);//物流公司名称
|
||
dic.Add("company_code", expressbase.code);//物流公司code
|
||
dic.Add("logistics_code", expno);//快递单号
|
||
ShopLoginInfo shop = GlobalConfig.ShopLoginList.FirstOrDefault(v => v.ShopId == ordermodel.shop_id.ToString());
|
||
DouyinApi apix = new DouyinApi(shop);
|
||
apix.JsonData = dic;
|
||
html = apix.OrderLogisticsAdd();
|
||
if (html.ToLower().Contains("success"))
|
||
{
|
||
StringBuilder sb = new StringBuilder();
|
||
sb.Append("&order_id=" + ordermodel.order_id);
|
||
sb.Append("&express_name=" + expname);
|
||
sb.Append("&express_no=" + expno);
|
||
sb.Append("&order_status_buy=0");
|
||
sb.Append("&is_update_order=1");//1修改状态0不修改状态
|
||
ordermodel.express_name = expname;
|
||
ordermodel.express_no = expno;
|
||
//CollectionClass.orderSenderDataList.RemoveAll(x => x.order_id == item.order_id);
|
||
string url = BaseClass.Build29WxObjString("order&act=update");
|
||
string htmlsss = GetHtml.PostUtf8(url, UserLogin.GetSignaturex() + sb.ToString());
|
||
if (type == 1)
|
||
{
|
||
CollectionClass.orderDataList.Remove(ordermodel);
|
||
buyOrderListForm.SetOrderEditShowInDgvRows(ordermodel, 2);
|
||
}
|
||
else if (type == 2)
|
||
{
|
||
CollectionClass.orderSenderDataList.Remove(ordermodel);
|
||
sendOrderForms.SetOrderEditShowInDgvRows(ordermodel, 2);
|
||
}
|
||
BaseMsgForm.ShowInfo("发货成功", "提示");
|
||
break;
|
||
}
|
||
}
|
||
|
||
if (JObject.Parse(html)["code"]?.ToString() != "10000")
|
||
{
|
||
//是否退款 211008-514808934040947
|
||
bool isreturn = new AutoConfirmExpress(buycookies).isReturnProduct(ordermodel.order_id_buy, buycookies);
|
||
if (isreturn) // 退款完成的订单 删除修改为已完成
|
||
{
|
||
StringBuilder sb = new StringBuilder();
|
||
sb.Append("&order_id=" + ordermodel.order_id);
|
||
sb.Append("&order_status_buy=0");
|
||
sb.Append("&express_name=" + expname);
|
||
sb.Append("&express_no=" + expno);
|
||
sb.Append("&is_update_order=1"); // 1修改状态0不修改状态
|
||
ordermodel.send_order_error_msg = JObject.Parse(html)["sub_msg"].ToString();
|
||
ordermodel.order_status_buy = 0;
|
||
ordermodel.express_name = expname;
|
||
ordermodel.express_no = expno;
|
||
string urls = BaseClass.Build29WxObjString("order&act=update");
|
||
string htmlssss = GetHtml.PostUtf8(urls, UserLogin.GetSignaturex() + sb.ToString());
|
||
|
||
if (type == 1)
|
||
{
|
||
CollectionClass.orderDataList.Remove(ordermodel);
|
||
buyOrderListForm.SetOrderEditShowInDgvRows(ordermodel, 2);
|
||
}
|
||
else if (type == 2)
|
||
{
|
||
CollectionClass.orderSenderDataList.Remove(ordermodel);
|
||
sendOrderForms.SetOrderEditShowInDgvRows(ordermodel, 2);
|
||
}
|
||
BaseMsgForm.ShowInfo("退款订单无法发货", "提示");
|
||
}
|
||
else
|
||
{
|
||
//自动发货失败
|
||
StringBuilder sb = new StringBuilder();
|
||
sb.Append("&order_id=" + ordermodel.order_id);
|
||
sb.Append("&order_status_buy=5");
|
||
sb.Append("&express_name=" + expname);
|
||
sb.Append("&express_no=" + expno);
|
||
sb.Append("&send_order_error_msg=" + JObject.Parse(html)["sub_msg"].ToString());
|
||
sb.Append("&is_update_order=1");//1修改状态0不修改状态
|
||
ordermodel.send_order_error_msg = JObject.Parse(html)["sub_msg"].ToString();
|
||
ordermodel.order_status_buy = 5;
|
||
ordermodel.express_name = expname;
|
||
ordermodel.express_no = expno;
|
||
string urls = BaseClass.Build29WxObjString("order&act=update");
|
||
string htmlssss = GetHtml.PostUtf8(urls, UserLogin.GetSignaturex() + sb.ToString());
|
||
if (type == 1)
|
||
{
|
||
buyOrderListForm.SetOrderEditShowInDgvRows(ordermodel, 1);
|
||
}
|
||
else if (type == 2)
|
||
{
|
||
sendOrderForms.SetOrderEditShowInDgvRows(ordermodel, 1);
|
||
}
|
||
BaseMsgForm.ShowInfo("发货失败【" + ordermodel.send_order_error_msg + "】", "提示");
|
||
}
|
||
}
|
||
}
|
||
|
||
private void pnlMenu_Click(object sender, EventArgs e)
|
||
{
|
||
var obj = sender as DevComponents.DotNetBar.PanelEx;
|
||
switch (obj.Name)
|
||
{
|
||
case "pnlWaitingBuyOrder": // 待拍单
|
||
pnlAfterSaleSelect.Visible = false;
|
||
picmenu(pnlWaitingBuyOrder);
|
||
if (buyOrderListForm == null)
|
||
{
|
||
buyOrderListForm = new BuyOrderListForm();
|
||
buyOrderListForm.mainform = this;
|
||
buyOrderListForm.FormBorderStyle = FormBorderStyle.None; //隐藏子窗体边框(去除最小化,最大化,关闭等按钮)
|
||
buyOrderListForm.TopLevel = false; //指示子窗体非顶级窗体
|
||
buyOrderListForm.Dock = System.Windows.Forms.DockStyle.Fill;
|
||
splitMain.Panel2.Controls.Add(buyOrderListForm);//将子窗体载入panel
|
||
buyOrderListForm.Show();
|
||
}
|
||
buyOrderListForm.BringToFront();
|
||
break;
|
||
case "pnlWaitingDeliverGoods": // 待发货
|
||
pnlAfterSaleSelect.Visible = false;
|
||
picmenu(pnlWaitingDeliverGoods);
|
||
if (sendOrderForms == null)
|
||
{
|
||
sendOrderForms = new SendOrderListForms();
|
||
sendOrderForms.FormBorderStyle = FormBorderStyle.None; //隐藏子窗体边框(去除最小化,最大化,关闭等按钮)
|
||
sendOrderForms.TopLevel = false; //指示子窗体非顶级窗体
|
||
sendOrderForms.mainform = this;
|
||
sendOrderForms.Dock = System.Windows.Forms.DockStyle.Fill;
|
||
splitMain.Panel2.Controls.Add(sendOrderForms);//将子窗体载入panel
|
||
sendOrderForms.Show();
|
||
}
|
||
sendOrderForms.BringToFront();
|
||
break;
|
||
case "pnlSuccess": // 已完成
|
||
pnlAfterSaleSelect.Visible = false;
|
||
picmenu(pnlSuccess);
|
||
if (successOrderListForm == null)
|
||
{
|
||
successOrderListForm = new SuccessOrderListForm();
|
||
}
|
||
successOrderListForm.FormBorderStyle = FormBorderStyle.None; //隐藏子窗体边框(去除最小化,最大化,关闭等按钮)
|
||
successOrderListForm.TopLevel = false; //指示子窗体非顶级窗体
|
||
successOrderListForm.mainform = this;
|
||
successOrderListForm.Dock = System.Windows.Forms.DockStyle.Fill;
|
||
splitMain.Panel2.Controls.Add(successOrderListForm);//将子窗体载入panel
|
||
successOrderListForm.Show();
|
||
successOrderListForm.BringToFront();
|
||
break;
|
||
case "pnlAfterSale": // 售后
|
||
picmenu(pnlAfterSale);
|
||
if (afterSaleOrderListForm == null)
|
||
{
|
||
afterSaleOrderListForm = new AfterSaleOrderListForm();
|
||
}
|
||
afterSaleOrderListForm.FormBorderStyle = FormBorderStyle.None; //隐藏子窗体边框(去除最小化,最大化,关闭等按钮)
|
||
afterSaleOrderListForm.TopLevel = false; //指示子窗体非顶级窗体
|
||
afterSaleOrderListForm.mainform = this;
|
||
afterSaleOrderListForm.Dock = System.Windows.Forms.DockStyle.Fill;
|
||
splitMain.Panel2.Controls.Add(afterSaleOrderListForm);//将子窗体载入panel
|
||
afterSaleOrderListForm.Show();
|
||
afterSaleOrderListForm.BringToFront();
|
||
pnlAfterSaleSelect.Visible = true;
|
||
break;
|
||
case "pnlOrderManage": // 订单管理
|
||
picmenu(pnlOrderManage);
|
||
oaform = new OAForm();
|
||
oaform.FormBorderStyle = FormBorderStyle.None; //隐藏子窗体边框(去除最小化,最大化,关闭等按钮)
|
||
oaform.TopLevel = false; //指示子窗体非顶级窗体
|
||
oaform.Dock = DockStyle.Fill;
|
||
pnorderadmin.Controls.Add(oaform);//将子窗体载入panel
|
||
oaform.Show();
|
||
pnorderadmin.Visible = true;
|
||
pnorderadmin.BringToFront();
|
||
break;
|
||
//--------------------------------------------------------------------------------------
|
||
case "pnlClose"://关闭
|
||
if (BaseMsgForm.ShowConfirm("请问是否确认退出?", "提示", FormLevel.SMALL).DialogResult.Equals(DialogResult.OK))
|
||
{
|
||
Process.GetCurrentProcess().Kill();
|
||
}
|
||
break;
|
||
case "pnlMax"://最大化
|
||
if (this.Width == Screen.PrimaryScreen.WorkingArea.Width)
|
||
{
|
||
this.Width = 1325;
|
||
this.Height = 668;
|
||
splitMain.SplitterDistance = 107;
|
||
this.Top = DefaultTop;
|
||
this.Left = DefaultLeft;
|
||
}
|
||
else
|
||
{
|
||
// this.WindowState = FormWindowState.Maximized;
|
||
SetFormMax(this);
|
||
splitMain.SplitterDistance = 107;
|
||
}
|
||
//if (this.WindowState == FormWindowState.Maximized)
|
||
// this.WindowState = FormWindowState.Normal;
|
||
//else
|
||
// this.WindowState = FormWindowState.Maximized;
|
||
//splitMain.SplitterDistance = 105;
|
||
break;
|
||
case "pnlMin"://最小化
|
||
this.WindowState = FormWindowState.Minimized;
|
||
break;
|
||
}
|
||
}
|
||
PanelEx panelpe;
|
||
void picmenu(PanelEx pe)
|
||
{
|
||
panelpe = pe;
|
||
pnlWaitingBuyOrder.Style.BackgroundImage = Resources.x_2_0;
|
||
pnlWaitingDeliverGoods.Style.BackgroundImage = Resources.x_3_0;
|
||
pnlSuccess.Style.BackgroundImage = Resources.yiwancheng;
|
||
pnlAfterSale.Style.BackgroundImage = Resources.x_4_0;
|
||
pnlOrderManage.Style.BackgroundImage = Resources.x_6_0;
|
||
panelEx5.Text = "刷新订单";
|
||
pnlSetSendOrder.Visible = false;
|
||
pnlReadOrder.Visible = false;
|
||
pnlSuccessSelect.Visible = false;
|
||
pntimebuyorder.Visible = false;
|
||
pnorderadmin.Visible = false;
|
||
switch (pe.Name)
|
||
{
|
||
case "pnlWaitingBuyOrder":
|
||
pnlWaitingBuyOrder.Style.BackgroundImage = Resources.x_2_1;
|
||
pnlSetSendOrder.Visible = true;
|
||
pnlReadOrder.Visible = true;
|
||
if (BaseClass.GroupId != 3)
|
||
this.pnlReadOrder.Visible = false;
|
||
break;
|
||
case "pnlWaitingDeliverGoods":
|
||
//pntimebuyorder.Visible = true; 时间搜索控件暂时不用
|
||
pnlWaitingDeliverGoods.Style.BackgroundImage = Resources.x_3_1;
|
||
break;
|
||
case "pnlSuccess":
|
||
pnlSuccessSelect.Visible = true;
|
||
pnlSuccess.Style.BackgroundImage = Resources.yiwancheng1;
|
||
break;
|
||
case "pnlAfterSale":
|
||
panelEx5.Text = "读取售后";
|
||
pnlAfterSale.Style.BackgroundImage = Resources.x_4_1;
|
||
break;
|
||
case "pnlOrderManage":
|
||
pnlOrderManage.Style.BackgroundImage = Resources.x_6_1;
|
||
break;
|
||
}
|
||
}
|
||
|
||
private void btn_Click(object sender, EventArgs e)
|
||
{
|
||
var obj = sender as PanelEx;
|
||
switch (obj.Text.Replace("\r\n", "").Replace(" ", ""))
|
||
{
|
||
case "刷新店铺":
|
||
readerShop();
|
||
break;
|
||
case "读待拍单":
|
||
DateTime sTime = DateTime.Now;
|
||
this.pnlReadOrder.Text = "读单中***";
|
||
if (BaseClass.isUseSimGetOrder)
|
||
{
|
||
this.ReadOrderCef();
|
||
return;
|
||
}
|
||
//new Thread(buyOrderListForm.f5dgv).Start();
|
||
|
||
ReadOrder(2);
|
||
Task.Run(() =>
|
||
{
|
||
int times = 0;
|
||
while (isOrderReading || CollectionClass.orderDataList_Temp.Count > 0)
|
||
{
|
||
times++;
|
||
Thread.Sleep(400);
|
||
Invoke(new Action(() => { this.pnlReadOrder.Text = "读单中" + "---".Substring(0, times % 4) + "***".Substring(0, 3 - times % 4); }));
|
||
}
|
||
Invoke(new Action(() =>
|
||
{
|
||
this.pnlReadOrder.Text = "读待拍单";
|
||
TimeSpan ts = DateTime.Now.Subtract(sTime);
|
||
var min = (int)Math.Floor(ts.TotalMinutes);
|
||
var sec = (int)Math.Floor(ts.TotalSeconds) % 60;
|
||
BaseMsgForm.ShowInfo("读单完成,累计耗时:" + min + "分" + sec + "秒");
|
||
}));
|
||
});
|
||
break;
|
||
case "刷新订单":
|
||
case "读取售后":
|
||
switch (panelpe.Name)
|
||
{
|
||
case "pnlWaitingBuyOrder":
|
||
//buyOrderListForm.BuyOrderListForm_Load(null, null);
|
||
buyOrderListForm.RefreshPage();
|
||
break;
|
||
case "pnlWaitingDeliverGoods":
|
||
sendOrderForms.readData();
|
||
break;
|
||
case "pnlSuccess":
|
||
successOrderListForm.RefreshServerOrder();
|
||
break;
|
||
case "pnlAfterSale":
|
||
afterSaleOrderListForm.readAfterSaleOrder();
|
||
break;
|
||
}
|
||
break;
|
||
case "多多登录":
|
||
buyBrower.mainForm = this;
|
||
buyBrower.webtype = 1;
|
||
buyBrower.Width = 405;
|
||
buyBrower.Height = 692;
|
||
if (cbpddBuyUser.Text != "点击下拉切换" && cbpddBuyUser.SelectedItem != null)
|
||
{
|
||
BaseClass.PddUid = (cbpddBuyUser.SelectedItem as ComboboxItem).Value.ToString();
|
||
new PddBuyUser().Set(BaseClass.PddUid, "", 0);
|
||
|
||
buyBrower.webUrl = BaseClass.PddMobileUrl + "personal.html";
|
||
buyBrower.Show();
|
||
buyBrower.BuyBrower_Load(null, null);
|
||
return;
|
||
}
|
||
new PddBuyUser().Delete();
|
||
buyBrower.webUrl = BaseClass.PddMobileUrl + "personal.html";
|
||
buyBrower.Show();
|
||
buyBrower.BuyBrower_Load(null, null);
|
||
break;
|
||
case "淘宝登录":
|
||
buyBrower.mainForm = this;
|
||
buyBrower.webtype = 2;
|
||
buyBrower.Width = this.Width;
|
||
buyBrower.Height = this.Height;
|
||
if (cbtbBuyUser.Text != "点击下拉切换" && cbtbBuyUser.SelectedItem != null)
|
||
{
|
||
BaseClass.TaoBaoUid = (cbtbBuyUser.SelectedItem as ComboboxItem).Value.ToString();
|
||
new TaoBaoBuyUser().SetTaoBao(BaseClass.TaoBaoUid, 1);
|
||
|
||
//buyBrower.webUrl = "https://i.taobao.com/my_taobao.htm";
|
||
buyBrower.webUrl = "https://buyertrade.taobao.com/trade/itemlist/list_bought_items.htm";
|
||
buyBrower.Show();
|
||
buyBrower.BuyBrower_Load(null, null);
|
||
return;
|
||
}
|
||
new ALBuyUser().DeleteAL();
|
||
new TaoBaoBuyUser().DeleteTaoBao();
|
||
buyBrower.webUrl = BaseClass.TaoBaoLoginUrl;
|
||
buyBrower.Show();
|
||
buyBrower.BuyBrower_Load(null, null);
|
||
break;
|
||
case "1688登录":
|
||
new ALBuyUser().DeleteAL();
|
||
new TaoBaoBuyUser().DeleteTaoBao();
|
||
buyBrower.mainForm = this;
|
||
buyBrower.webtype = 3;
|
||
buyBrower.Width = this.Width;
|
||
buyBrower.Height = this.Height;
|
||
|
||
if (cb1688BuyUser.Text != "点击下拉切换" && cb1688BuyUser.SelectedItem != null)
|
||
{
|
||
BaseClass.ALUid = (cb1688BuyUser.SelectedItem as ComboboxItem).Value.ToString();
|
||
new ALBuyUser().SetAL(BaseClass.ALUid, 3);
|
||
|
||
buyBrower.webUrl = "https://work.1688.com/home/buyer.htm?_path_=buyer2017Base/2017buyerbase_trade/buyList&spm=a262jm.9273823.wkalibar.d8.5d884aadnN1j9G";
|
||
buyBrower.Show();
|
||
buyBrower.BuyBrower_Load(null, null);
|
||
return;
|
||
}
|
||
buyBrower.webUrl = "https://work.1688.com/home/buyer.htm?_path_=buyer2017Base/2017buyerbase_trade/buyList&spm=a262jm.9273823.wkalibar.d8.5d884aadnN1j9G";
|
||
buyBrower.Show();
|
||
buyBrower.BuyBrower_Load(null, null);
|
||
break;
|
||
case "订单查询":
|
||
var controls = splitMain.Panel2.Controls.Cast<Control>().ToList();
|
||
for (int i = 0; i < controls.Count; i++)
|
||
{
|
||
if (controls[i] is Form)
|
||
{
|
||
if (controls[i] == buyOrderListForm)
|
||
{
|
||
// 刷新并从服务端获取要搜索的数据
|
||
buyOrderListForm.RefreshPage(1);
|
||
return;
|
||
}
|
||
if (controls[i] == sendOrderForms)
|
||
break;
|
||
}
|
||
}
|
||
txtSearch.Text = txtSearch.Text.Replace(" ", "");
|
||
bool sendorder = sendOrderForms?.SelectOrder(txtSearch.Text) == true;
|
||
bool successorder = successOrderListForm?.SelectOrder(txtSearch.Text) == true;
|
||
bool afterSaleOrder = afterSaleOrderListForm?.SelectOrder(txtSearch.Text) == true;
|
||
//if (sendorder)
|
||
//{
|
||
// pnlMenu_Click(pnlWaitingDeliverGoods, null);
|
||
//}
|
||
//if (successorder)
|
||
//{
|
||
// pnlMenu_Click(pnlSuccess, null);
|
||
//}
|
||
//if (afterSaleOrder)
|
||
//{
|
||
// pnlMenu_Click(pnlAfterSale, null);
|
||
//}
|
||
break;
|
||
}
|
||
}
|
||
|
||
|
||
#region cef模拟订单
|
||
|
||
void ReadOrderCef()
|
||
{
|
||
Task.Run(() =>
|
||
{
|
||
foreach (ShopLoginInfo shop in GlobalConfig.ShopLoginList)
|
||
{
|
||
string url = "https://fxg.jinritemai.com/ffa/morder/order/list";
|
||
if (shop.LoginStatus == "登录成功")
|
||
{
|
||
Invoke(new Action(() =>
|
||
{
|
||
isCefLoad = false;
|
||
currentCefReadOrderPage = 0;
|
||
|
||
if (cefWebBrowser == null)
|
||
{
|
||
cefWebBrowser = CEFBrowser.CreateChromiumWebBrowser(url, false);
|
||
Helper.CustomResourceRequestHandler resourceRequestHandler = new Helper.CustomResourceRequestHandler();
|
||
resourceRequestHandler.ResourceLoadCompleteEvent += RequestHandler_ResourceLoadComplete;
|
||
cefWebBrowser.RequestHandler = new CustomRequestHandler(resourceRequestHandler);
|
||
cefWebBrowser.KeyboardHandler = new KeyboardHandler();
|
||
cefWebBrowser.AddressChanged += CefWebBrowser_AddressChanged;
|
||
cefWebBrowser.FrameLoadEnd += CefWebBrowser_FrameLoadEnd;
|
||
cefWebBrowser.Dock = DockStyle.Fill;
|
||
var t = CEFBrowser.SetCookieAsync("jinritemai.com", shop.Cookies, cefWebBrowser.RequestContext.GetCookieManager(null));
|
||
splitMain.Panel2.Controls.Add(cefWebBrowser);
|
||
cefWebBrowser.SendToBack();
|
||
//cefWebBrowser.BringToFront();
|
||
}
|
||
else
|
||
{
|
||
CEFBrowser.DeleteCookie(cefWebBrowser.RequestContext.GetCookieManager(null));
|
||
CEFBrowser.SetCookieAsync("jinritemai.com", shop.Cookies, cefWebBrowser.RequestContext.GetCookieManager(null));
|
||
cefWebBrowser.Load(url);
|
||
}
|
||
}));
|
||
|
||
for (int i = 0; i < 100; i++)
|
||
{
|
||
Thread.Sleep(500);
|
||
if (isCefLoad)
|
||
{
|
||
Thread.Sleep(Randomx.GetId(8000, 9000));
|
||
//var jsStr = "document.getElementsByClassName('auxo-select-item-option')[3].click()";
|
||
//jsStr = "function scrollWindow() { var t = document.body.clientHeight; window.scroll({ top: t, left: 0, behavior: 'smooth'});} scrollWindow();";
|
||
|
||
// 关闭提示框
|
||
var jsStr = "function closeMask() {\r\n"
|
||
+ "var box = document.getElementsByClassName('ant-modal-close-x')[0];"
|
||
+ "if (box) box.click();"
|
||
+ "}\r\n"
|
||
+ "closeMask();\r\n";
|
||
|
||
var response = cefWebBrowser.GetBrowser().MainFrame.EvaluateScriptAsync(jsStr);
|
||
response.Wait(1000);
|
||
Thread.Sleep(Randomx.GetId(1500, 2000));
|
||
jsStr = "function closeGuide() {\r\n"
|
||
+ " var box = document.getElementsByClassName('y-guide')[0];\r\n"
|
||
+ " if (box) {\r\n"
|
||
+ " while(box) {box.remove(); box = document.getElementsByClassName('y-guide')[0];}\r\n"
|
||
+ " }\r\n"
|
||
+ "}\r\n"
|
||
+ "closeGuide();\r\n";
|
||
var response2 = cefWebBrowser.GetBrowser().MainFrame.EvaluateScriptAsync(jsStr);
|
||
response2.Wait(1000);
|
||
Thread.Sleep(Randomx.GetId(1500, 2000));
|
||
|
||
jsStr = "function scrollWindow() { var t = document.body.scrollHeight; window.scroll({ top: t, left: 0, behavior: 'smooth'});} scrollWindow();";
|
||
//cefWebBrowser.GetMainFrame().ExecuteJavaScriptAsync("window.scrollTo(0, document.body.scrollHeight);");
|
||
cefWebBrowser.GetMainFrame().ExecuteJavaScriptAsync(jsStr);
|
||
Thread.Sleep(Randomx.GetId(1500, 2000));
|
||
ClickPageSelect();
|
||
break;
|
||
}
|
||
}
|
||
|
||
int time = 0;
|
||
while (true)
|
||
{
|
||
Thread.Sleep(1000);
|
||
time += 1;
|
||
if (currentCefReadOrderPage >= 999)
|
||
break;
|
||
if (time >= 60 && currentCefReadOrderPage == 0)
|
||
break;
|
||
}
|
||
}
|
||
}
|
||
});
|
||
}
|
||
|
||
List<string> addressOrderIdList = new List<string>();
|
||
/// <summary>
|
||
/// Cef模拟获取订单隐私信息
|
||
/// </summary>
|
||
/// <param name="shop"></param>
|
||
/// <param name="order"></param>
|
||
public void GetRealAddressSim(ShopLoginInfo shop, DouYinOrderModel order)
|
||
{
|
||
addressOrderIdList.Remove(order.order_id);
|
||
var url = "https://fxg.jinritemai.com/ffa/morder/order/detail?id=" + order.order_id;
|
||
if (shop.LoginStatus == "登录成功")
|
||
{
|
||
Invoke(new Action(() =>
|
||
{
|
||
isCefLoad = false;
|
||
currentCefReadOrderPage = 0;
|
||
|
||
if (cefWebBrowser == null)
|
||
{
|
||
cefWebBrowser = CEFBrowser.CreateChromiumWebBrowser(url, false);
|
||
Helper.CustomResourceRequestHandler resourceRequestHandler = new Helper.CustomResourceRequestHandler();
|
||
resourceRequestHandler.ResourceLoadCompleteEvent += RequestHandler_ResourceLoadComplete;
|
||
cefWebBrowser.RequestHandler = new CustomRequestHandler(resourceRequestHandler);
|
||
cefWebBrowser.KeyboardHandler = new KeyboardHandler();
|
||
cefWebBrowser.AddressChanged += CefWebBrowser_AddressChanged;
|
||
cefWebBrowser.FrameLoadEnd += CefWebBrowser_FrameLoadEnd;
|
||
cefWebBrowser.Dock = DockStyle.Fill;
|
||
var t = CEFBrowser.SetCookieAsync("jinritemai.com", shop.Cookies, cefWebBrowser.RequestContext.GetCookieManager(null));
|
||
splitMain.Panel2.Controls.Add(cefWebBrowser);
|
||
cefWebBrowser.SendToBack();
|
||
//cefWebBrowser.BringToFront();
|
||
}
|
||
else
|
||
{
|
||
CEFBrowser.DeleteCookie(cefWebBrowser.RequestContext.GetCookieManager(null));
|
||
CEFBrowser.SetCookieAsync("jinritemai.com", shop.Cookies, cefWebBrowser.RequestContext.GetCookieManager(null));
|
||
cefWebBrowser.Load(url);
|
||
cefWebBrowser.SendToBack();
|
||
//cefWebBrowser.BringToFront();
|
||
}
|
||
}));
|
||
|
||
bool isGet = false;
|
||
for (int i = 0; i < 100; i++)
|
||
{
|
||
Thread.Sleep(5000);
|
||
if (isCefLoad)
|
||
{
|
||
Thread.Sleep(Randomx.GetId(2000, 3000));
|
||
|
||
if (addressOrderIdList.Any(o => o == order.order_id))
|
||
{
|
||
Invoke(new Action(() =>
|
||
{
|
||
cefWebBrowser.SendToBack();
|
||
}));
|
||
break;
|
||
}
|
||
|
||
var verify_str = "function getImg() { return document.getElementById('captcha-verify-image').src; } getImg();";
|
||
var response = cefWebBrowser.GetMainFrame().EvaluateScriptAsync(verify_str);
|
||
response.Wait();
|
||
if (!string.IsNullOrEmpty(response.Result.Result?.ToString()))
|
||
{
|
||
Invoke(new Action(() => { cefWebBrowser.BringToFront(); }));
|
||
|
||
#region 获取滑动验证码
|
||
{
|
||
var imgUrl = response.Result.Result.ToString();
|
||
|
||
Bitmap bt = (Bitmap)GetHtml.LoadImage(imgUrl);
|
||
if (bt != null)
|
||
{
|
||
int Stopxt = 0;
|
||
int dragButtonWidth = 53;
|
||
//Stopxt = new Base64ChangeImgUrl().CalculateNick(bt, dragButtonWidth);
|
||
Thread.Sleep(500 + Randomx.GetId(1000));
|
||
Stopxt = new Base64ChangeImgUrl().CalculateNickNew(bt, dragButtonWidth);
|
||
if (Stopxt > 0)
|
||
{
|
||
verify_str = "function getPos() { var box = document.getElementsByClassName('secsdk-captcha-drag-icon sc-kEYyzF fiQtnm')[0];" +
|
||
"if (box == null) return '0|0';" +
|
||
"var actualLeft = box.offsetLeft;" +
|
||
"var actualTop = box.offsetTop;" +
|
||
"var parent = box.offsetParent;" +
|
||
"while (parent !== null) { actualLeft += parent.offsetLeft; actualTop += parent.offsetTop; parent = parent.offsetParent; }" +
|
||
"return '' + actualLeft + '|' + actualTop;}" +
|
||
"getPos();";
|
||
verify_str = "function getImgPos() { return document.getElementsByClassName('secsdk-captcha-drag-icon sc-kEYyzF fiQtnm')[0].getBoundingClientRect().left + '|' "
|
||
+ " + document.getElementsByClassName('secsdk-captcha-drag-icon sc-kEYyzF fiQtnm')[0].getBoundingClientRect().top;} getImgPos();";
|
||
response = cefWebBrowser.GetBrowser().MainFrame.EvaluateScriptAsync(verify_str);
|
||
response.Wait(2000);
|
||
if (response.Result?.Result != null)
|
||
{
|
||
var xy = response.Result?.Result.ToString();
|
||
var xyArr = xy.Split('|');
|
||
if (xyArr.Length == 2)
|
||
{
|
||
try
|
||
{
|
||
int x = (int)Convert.ToDecimal(xyArr[0]) + 25;
|
||
int y = (int)Convert.ToDecimal(xyArr[1]) + 25;
|
||
|
||
// 自动滑块图形验证
|
||
//if (GlobalConfig.JDShopSettingParam.IsAutoDragLogin)
|
||
{
|
||
// 340 / 552
|
||
CEFHelper.CefMouseDrag(cefWebBrowser, x, y, Convert.ToInt32((x + Stopxt * 0.6159m) - 5), y);
|
||
isGet = false;
|
||
Thread.Sleep(1000 + Randomx.GetId(1000));
|
||
}
|
||
}
|
||
catch
|
||
{
|
||
}
|
||
}
|
||
}
|
||
Thread.Sleep(1000 + Randomx.GetId(1000));
|
||
}
|
||
}
|
||
}
|
||
Thread.Sleep(1500 + Randomx.GetId(1000));
|
||
#endregion
|
||
}
|
||
else
|
||
Invoke(new Action(() =>
|
||
{
|
||
cefWebBrowser.SendToBack();
|
||
}));
|
||
|
||
if (isGet)
|
||
continue;
|
||
|
||
//var child = document.body.firstElementChild;
|
||
//var element1 = null;
|
||
//while (child)
|
||
//{
|
||
// if (child.innerHTML.indexOf('显示详情') >= 0)
|
||
// {
|
||
// element1 = child;
|
||
// if (child.firstElementChild)
|
||
// {
|
||
// child = child.firstElementChild;
|
||
// continue;
|
||
// }
|
||
// else
|
||
// {
|
||
// break;
|
||
// }
|
||
// }
|
||
// child = child.nextElementSibling;
|
||
//}
|
||
//console.log(element1);
|
||
//element1.click();
|
||
// 点击调用解密
|
||
var jsStr = "function clickShowAddress() {\r\n"
|
||
+ "var child = document.body.firstElementChild;\r\n"
|
||
+ "var element1 = null;\r\n"
|
||
+ " while (child) {\r\n"
|
||
+ " if (child.innerHTML.indexOf('显示详情') >= 0) {\r\n"
|
||
+ " element1 = child;\r\n"
|
||
+ " if (child.firstElementChild) {\r\n"
|
||
+ " child = child.firstElementChild; continue;\r\n"
|
||
+ " } else break;\r\n"
|
||
+ " }\r\n"
|
||
+ " child = child.nextElementSibling;\r\n"
|
||
+ " }\r\n"
|
||
+ " if (element1) {\r\n"
|
||
+ " element1.click(); return 'success';\r\n"
|
||
+ " } else return 'no_detail';\r\n"
|
||
+ "}\r\n"
|
||
+ "clickShowAddress();\r\n";
|
||
|
||
var t = cefWebBrowser.GetMainFrame().EvaluateScriptAsync(jsStr);
|
||
t.Wait();
|
||
//if (t.Result.Result?.ToString() == "success" || t.Result.Result?.ToString() == "no_detail" )
|
||
isGet = true;
|
||
}
|
||
}
|
||
}
|
||
}
|
||
|
||
private void ClickPageSelect()
|
||
{
|
||
string code = "function getPos() { var box = document.getElementsByClassName('auxo-pagination-options-size-changer')[0];"
|
||
+ " if (box == null) return '0|0';"
|
||
+ " var pos = box.getBoundingClientRect();"
|
||
+ " return '' + pos.left + '|' + pos.top;"
|
||
+ "}"
|
||
+ "getPos();";
|
||
|
||
var task = cefWebBrowser.GetBrowser().MainFrame.EvaluateScriptAsync(code);
|
||
task.Wait(5000);
|
||
var result = task.Result.Result;
|
||
if (result != null && result.ToString() != "0|0")
|
||
{
|
||
var arr = result.ToString().Split('|');
|
||
if (arr.Length == 2)
|
||
{
|
||
int x = (int)arr[0].ParseToDecimal();
|
||
int y = (int)arr[1].ParseToDecimal();
|
||
int x1 = x + 10 + new Random(DateTime.Now.Millisecond).Next(50);
|
||
int y1 = y + 10 + new Random(DateTime.Now.Millisecond).Next(10);
|
||
var host = cefWebBrowser.GetBrowser().GetHost();
|
||
//host.SendFocusEvent(true);
|
||
host.SendMouseClickEvent(x1, y1, MouseButtonType.Left, false, 1, CefEventFlags.None); // 按下鼠标左键
|
||
Thread.Sleep(70 + new Random(DateTime.Now.Millisecond).Next(50));
|
||
host.SendMouseClickEvent(x1, y1, MouseButtonType.Left, true, 1, CefEventFlags.None); // 松开鼠标左键
|
||
Thread.Sleep(500 + new Random(DateTime.Now.Millisecond).Next(500));
|
||
}
|
||
}
|
||
|
||
Thread.Sleep(Randomx.GetId(1000, 3000));
|
||
var jsStr = "document.getElementsByClassName('auxo-select-item-option')[1].click()";
|
||
cefWebBrowser.GetMainFrame().ExecuteJavaScriptAsync(jsStr);
|
||
}
|
||
|
||
private void CefWebBrowser_FrameLoadEnd(object sender, FrameLoadEndEventArgs e)
|
||
{
|
||
isCefLoad = true;
|
||
}
|
||
|
||
private void RequestHandler_ResourceLoadComplete(object sender, string url, string postData, string responseData)
|
||
{
|
||
if (responseData.Contains("post_receiver"))
|
||
{
|
||
|
||
}
|
||
//https://mcs.snssdk.com/v1/list [{"events":[{"event":"auto_click","params":"{\"_staging_flag\":0,\"future\":\"shangjia\",\"shop_id\":\"20445141\",\"is_cross_border\":0,\"biz_type\":4,\"shop_name\":\"优选百货厂家\",\"common_shop_type\":0,\"toutiao_id\":\"106022019533566\",\"v_type\":41,\"total_reduce\":-52500,\"quit_status\":0,\"store_type\":0,\"sub_toutiao_id\":\"\",\"release\":\"4d20a8de4a\",\"smallflow\":[],\"is_login\":1,\"sub_app_id\":\"morder\",\"user_agent\":\"Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.121 Safari/537.36\",\"version\":\"1.0.0.5409\",\"canary\":\"0\",\"slardar_session_id\":\"e6295f0e-fa20-4218-ab8f-1d02d35bd818\",\"pid\":\"/ffa/morder/order/detail\",\"path\":\"/ffa/morder/order/detail\",\"url\":\"https://fxg.jinritemai.com/ffa/morder/order/detail?id=4851912086293436335\",\"page_name\":\"订单详情\",\"event_name\":\"auto_dom\",\"type\":\"click\",\"data\":{},\"containers\":[\"内容区域\"],\"mouse_x\":1201,\"mouse_y\":564,\"viewport_width\":1319,\"viewport_height\":485,\"text\":\"view\",\"tagName\":\"SPAN\",\"session\":{},\"event_index\":1633777345067}","local_time_ms":1633776441924,"is_bav":1,"ab_sdk_version":"","session_id":"4b5fdfa5-0c71-44c5-8037-d73711bbc02b"}],"user":{"user_unique_id":"106022019533566","web_id":"7017016174879229477","ssid":"2d661692-709c-4846-a647-f6165f2618e1"},"header":{"app_id":1215,"os_name":"windows","os_version":"10","device_model":"Windows NT 10.0","language":"zh-CN","platform":"web","sdk_version":"4.1.41","timezone":8,"tz_offset":-28800,"resolution":"1920x1080","browser":"Chrome","browser_version":"72.0.3626.121","referrer":"","referrer_host":"","width":1920,"height":1080,"screen_width":1920,"screen_height":1080,"custom":"{\"token\":\"doudian_web\",\"cdid\":\"20445141\"}"},"local_time":1633776441}]
|
||
//https://fxg.jinritemai.com/api/order/receiveinfo?come_from=pc&aid=4272&order_id=4851912086293436335&appid=1&__token=8e78e1c73557ba7a579c9fd00b130542&_bid=ffa_order&_lid=764419278836&_signature=_02B4Z6wo00901yIp5nAAAIDA6pUvbnenSIciLeLAAKn1g1DamF6p9muTMTFh1GmDf5Dhij.ExzrHMLBIwFbmyJuRTRjsY2g8Bj5yy6eKLqun0pW74HZtygbWDCtFpmPDHu4Z7nmgcnjNvstLff {"errno":0,"st":0,"msg":"","code":0,"data":{"verify_type":"","verify_params":null,"is_send":0,"receive_info":{"post_receiver":"董雨朦","post_tel":"18761791742","post_addr":{"province":{"name":"江苏省","id":"320000","has_child":false},"city":{"name":"南通市","id":"320600","has_child":false},"town":{"name":"南通经济技术开发区","id":"320671","has_child":false},"street":{"name":"","id":"","has_child":false},"detail":"小海海棠花园13栋405室"},"buyer_words":"","can_view":2,"is_show_edit_address":true},"pre_receive_info":null,"nick_name":"萌萌朦朦"},"page":0,"total":0,"size":0}
|
||
// 模拟解密获取到网页中传过来的数值
|
||
if (url.StartsWith("https://fxg.jinritemai.com/api/order/receiveinfo") && url.Contains("order_id=") && responseData.Contains("\"verify_type\":\"\""))
|
||
{
|
||
try
|
||
{
|
||
var orderId = BaseRegex.GetMatchRegexString(ref url, "order_id=(\\d{8,26})"); // url.Substring(url.IndexOf(("order_id=")));
|
||
addressOrderIdList.Add(orderId);
|
||
|
||
var orderFrom = "sendOrder";
|
||
DouYinOrderModel douYinOrderModel = CollectionClass.orderSenderDataList.Find(x => x.order_id == orderId);
|
||
if (douYinOrderModel == null)
|
||
{
|
||
orderFrom = "buyOrder";
|
||
douYinOrderModel = CollectionClass.orderDataList.Find(x => x.order_id == orderId);
|
||
}
|
||
if (douYinOrderModel == null)
|
||
return;
|
||
|
||
string expname = BaseRegex.GetStringJson(ref responseData, "post_receiver");
|
||
string expmobile = BaseRegex.GetStringJson(ref responseData, "post_tel");
|
||
|
||
var jObj = JObject.Parse(responseData);
|
||
string province = jObj["data"]["receive_info"]["post_addr"]["province"]["name"].ToString(); // 省
|
||
string city = jObj["data"]["receive_info"]["post_addr"]["city"]["name"].ToString(); // 市
|
||
string town = jObj["data"]["receive_info"]["post_addr"]["town"]["name"].ToString(); // 区
|
||
string street = jObj["data"]["receive_info"]["post_addr"]["street"]["name"].ToString(); // 街道
|
||
string detailAddress = jObj["data"]["receive_info"]["post_addr"]["detail"].ToString(); // 详细地址
|
||
var expaddress = province + city + town + street + detailAddress;
|
||
|
||
douYinOrderModel.name = expname;
|
||
douYinOrderModel.mobile = expmobile;
|
||
douYinOrderModel.address = expaddress;
|
||
|
||
StringBuilder sb = new StringBuilder();
|
||
sb.Append("&order_id=" + douYinOrderModel.order_id);
|
||
sb.Append("&name=" + GetHtml.UrlEncodeUtf8(expname));
|
||
sb.Append("&mobile=" + GetHtml.UrlEncodeUtf8(expmobile));
|
||
sb.Append("&address=" + GetHtml.UrlEncodeUtf8(expaddress));
|
||
if (!string.IsNullOrEmpty(expmobile))
|
||
{
|
||
sb.Append("&decrypt_status=1");
|
||
}
|
||
sb.Append("&is_update_order=0");//1修改状态0不修改状态
|
||
string updateUrl = BaseClass.Build29WxObjString("order&act=update");
|
||
string htmjg = GetHtml.PostUtf8(updateUrl, UserLogin.GetSignaturex() + sb.ToString());
|
||
|
||
if (orderFrom == "sendOrder")
|
||
sendOrderForms.SetOrderEditShowInDgvRows(douYinOrderModel, 1);
|
||
else
|
||
buyOrderListForm.SetOrderEditShowInDgvRows(douYinOrderModel, 1);
|
||
|
||
buyOrderListForm.decyes();
|
||
}
|
||
catch { };
|
||
}
|
||
// 模拟读取订单
|
||
if (url.StartsWith("https://fxg.jinritemai.com/api/order/searchlist?tab="))
|
||
{
|
||
if (url.Contains("pageSize=20&"))
|
||
{
|
||
Task.Run(() =>
|
||
{
|
||
var _url = url;
|
||
var post_data = postData;
|
||
var response_data = responseData;
|
||
var cookie = CEFBrowser.GetCookie("", cefWebBrowser.GetCookieManager());
|
||
var passport_csrf_token = BaseRegex.GetMatchRegexString(ref cookie, "passport_csrf_token=([\\s\\S]+?);");
|
||
var shop = GlobalConfig.ShopLoginList.FirstOrDefault(s => s.Cookies.Contains(passport_csrf_token));
|
||
if (shop != null && response_data.Contains("\"st\":0") && response_data.Contains("\"data\":"))
|
||
{
|
||
JObject jObj = JObject.Parse(response_data);
|
||
int page = jObj["page"].ParseToInt();
|
||
int total = jObj["total"].ParseToInt();
|
||
currentCefReadOrderPage = page + 1;
|
||
foreach (JObject jOrderObj in jObj["data"])
|
||
{
|
||
if (jOrderObj["order_status_info"]["order_status_text"].ToString() != "备货中")
|
||
{
|
||
break;
|
||
}
|
||
DouYinOrderModel dyOrder = new DouYinOrderModel();
|
||
DouOrderListInfo.Shop_order_listItem orderListItem = new DouOrderListInfo.Shop_order_listItem();
|
||
orderListItem.order_id = jOrderObj["shop_order_id"].ToString();
|
||
orderListItem.shop_id = shop.ShopId.ParseToInt();
|
||
orderListItem.shop_name = shop.ShopAccount;
|
||
orderListItem.post_tel = jOrderObj["receiver_info"]["post_tel"].ToString();
|
||
orderListItem.productName = jOrderObj["product_item"][0]["product_name"].ToString();
|
||
orderListItem.post_receiver = jOrderObj["receiver_info"]["post_receiver"].ToString();
|
||
DouOrderListInfo.Post_addr addr = new DouOrderListInfo.Post_addr();
|
||
addr.province = new DouOrderListInfo.Province();
|
||
addr.province.name = jOrderObj["receiver_info"]["post_addr"]["province"]["name"].ToString();
|
||
addr.province.id = jOrderObj["receiver_info"]["post_addr"]["province"]["id"].ToString();
|
||
|
||
addr.city = new DouOrderListInfo.City();
|
||
addr.city.name = jOrderObj["receiver_info"]["post_addr"]["city"]["name"].ToString();
|
||
addr.city.id = jOrderObj["receiver_info"]["post_addr"]["city"]["id"].ToString();
|
||
|
||
addr.town = new DouOrderListInfo.Town();
|
||
addr.town.name = jOrderObj["receiver_info"]["post_addr"]["town"]["name"].ToString();
|
||
addr.town.id = jOrderObj["receiver_info"]["post_addr"]["town"]["id"].ToString();
|
||
|
||
addr.street = new DouOrderListInfo.Street();
|
||
addr.street.name = jOrderObj["receiver_info"]["post_addr"]["street"]["name"].ToString();
|
||
addr.street.id = jOrderObj["receiver_info"]["post_addr"]["street"]["id"].ToString();
|
||
|
||
addr.detail = jOrderObj["receiver_info"]["post_addr"]["detail"].ToString();
|
||
|
||
orderListItem.post_addr = addr;
|
||
// todo: 根据 ****response_data**** 所包含的地址信息 读取收件人 收件地址 收件手机号 和 买家昵称 买家账号 等
|
||
|
||
orderListItem.sku_order_list = new List<DouOrderListInfo.Sku_order_listItem>();
|
||
foreach (JObject jSkuObj in jOrderObj["product_item"])
|
||
{
|
||
DouOrderListInfo.Sku_order_listItem skuOrderItem = new DouOrderListInfo.Sku_order_listItem();
|
||
skuOrderItem.order_id = jSkuObj["item_order_id"].ToString();
|
||
skuOrderItem.product_id = jSkuObj["product_id"].ParseToLong();
|
||
skuOrderItem.product_name = jSkuObj["product_name"].ParseToString();
|
||
skuOrderItem.order_status = jSkuObj["order_status"].ParseToInt();
|
||
|
||
skuOrderItem.spec = new List<DouOrderListInfo.SpecItem>();
|
||
foreach (JObject jSpecObj in jSkuObj["sku_spec"])
|
||
{
|
||
DouOrderListInfo.SpecItem spec = new DouOrderListInfo.SpecItem();
|
||
spec.name = jSpecObj["name"].ToString();
|
||
spec.value = jSpecObj["value"].ToString();
|
||
skuOrderItem.spec.Add(spec);
|
||
}
|
||
|
||
skuOrderItem.product_pic = jSkuObj["img"].ParseToString();
|
||
skuOrderItem.item_num = jSkuObj["combo_num"].ParseToInt();
|
||
skuOrderItem.pay_amount = jSkuObj["combo_amount"].ParseToInt();
|
||
skuOrderItem.create_time = jOrderObj["create_time"].ParseToInt();
|
||
var cTime = new DateTime(1970, 1, 1, 8, 0, 0).AddSeconds(skuOrderItem.create_time);
|
||
if (cTime < DateTime.Now.Date.AddDays(-1) || (page + 1) * 20 >= total)
|
||
{
|
||
currentCefReadOrderPage = 999;
|
||
return;
|
||
}
|
||
if (skuOrderItem.order_status != 2)
|
||
continue;
|
||
|
||
orderListItem.sku_order_list.Add(skuOrderItem);
|
||
}
|
||
//if (!CollectionClass.orderDataList_Temp.Any(o => o.order_id == orderListItem.order_id))
|
||
CollectionClass.orderDataList_Temp.Add(orderListItem);
|
||
//Invoke(new Action(() =>
|
||
//{
|
||
// buyOrderListForm.SetRows();
|
||
//}));
|
||
}
|
||
|
||
if ((jObj["data"] as JArray).Count < 20)
|
||
currentCefReadOrderPage = 999;
|
||
else
|
||
{
|
||
Thread.Sleep(Randomx.GetId(1500, 2000));
|
||
var jsStr = "function scrollWindow() { var t = document.body.scrollHeight; window.scroll({ top: t, left: 0, behavior: 'smooth'});} scrollWindow();";
|
||
cefWebBrowser.GetMainFrame().ExecuteJavaScriptAsync(jsStr);
|
||
|
||
Thread.Sleep(Randomx.GetId(1500, 4000));
|
||
jsStr = "document.getElementsByClassName('auxo-pagination-next')[0].click()";
|
||
cefWebBrowser.GetMainFrame().ExecuteJavaScriptAsync(jsStr);
|
||
}
|
||
}
|
||
});
|
||
}
|
||
}
|
||
}
|
||
private void CefWebBrowser_AddressChanged(object sender, CefSharp.AddressChangedEventArgs e)
|
||
{
|
||
Invoke(new Action(() =>
|
||
{
|
||
//currentUrl = e.Address;
|
||
//txtAddress.Text = e.Address;
|
||
}));
|
||
}
|
||
|
||
#endregion
|
||
|
||
|
||
#region cef模拟读巨量百应佣金率
|
||
private ChromiumWebBrowser cefJuLiangWebBrowser = null;
|
||
bool isJuLiangLoadEnd = false;
|
||
DouYinOrderModel cos_ratio_order_Model = null;
|
||
public void ReadJuLiangCef()
|
||
{
|
||
Task.Run(() =>
|
||
{
|
||
//string url = BaseClass.Build29WxObjString("user_login_cookies&act=douyin_buy_in_get");
|
||
//string htmlsss = GetHtml.PostUtf8(url, UserLogin.GetSignaturex());
|
||
//if (htmlsss != "")
|
||
//{
|
||
// if (JObject.Parse(htmlsss)["code"].ToString() == "200")
|
||
// {
|
||
// var jArrJM = JObject.Parse(htmlsss)["data"];
|
||
// foreach (var itemjm in jArrJM)
|
||
// {
|
||
// BaseClass.baiyincookies = JObject.Parse(itemjm.ToString())["cookies"].ToString();
|
||
// break;
|
||
// }
|
||
// }
|
||
//}
|
||
//if (BaseClass.baiyincookies == "")
|
||
//{
|
||
// return;
|
||
//}
|
||
|
||
|
||
string url = "https://buyin.jinritemai.com/dashboard/activity/common-plan";
|
||
Invoke(new Action(() =>
|
||
{
|
||
isCefLoad = false;
|
||
if (cefJuLiangWebBrowser == null)
|
||
{
|
||
cefJuLiangWebBrowser = CEFBrowser.CreateChromiumWebBrowser(url, false);
|
||
|
||
Helper.CustomResourceRequestHandler resourceRequestHandler = new Helper.CustomResourceRequestHandler();
|
||
resourceRequestHandler.ResourceLoadCompleteEvent += JuLiangRequestHandler_ResourceLoadComplete;
|
||
cefJuLiangWebBrowser.RequestHandler = new CustomRequestHandler(resourceRequestHandler);
|
||
cefJuLiangWebBrowser.KeyboardHandler = new KeyboardHandler();
|
||
cefJuLiangWebBrowser.AddressChanged += CefJuLiangWebBrowser_AddressChanged;
|
||
cefJuLiangWebBrowser.FrameLoadEnd += CefJuLiangWebBrowser_FrameLoadEnd;
|
||
cefJuLiangWebBrowser.Dock = DockStyle.Fill;
|
||
var t = CEFBrowser.SetCookieAsync("jinritemai.com", BaseClass.baiyincookies, cefJuLiangWebBrowser.RequestContext.GetCookieManager(null));
|
||
splitMain.Panel2.Controls.Add(cefJuLiangWebBrowser);
|
||
cefJuLiangWebBrowser.SendToBack();
|
||
//cefJuLiangWebBrowser.BringToFront();
|
||
}
|
||
else
|
||
{
|
||
CEFBrowser.DeleteCookie(cefJuLiangWebBrowser.RequestContext.GetCookieManager(null));
|
||
Thread.Sleep(500);
|
||
var t = CEFBrowser.SetCookieAsync("jinritemai.com", BaseClass.baiyincookies, cefJuLiangWebBrowser.RequestContext.GetCookieManager(null));
|
||
t.Wait(5000);
|
||
cefJuLiangWebBrowser.Load(url);
|
||
}
|
||
}));
|
||
|
||
//Thread.Sleep(15000);
|
||
while (true)
|
||
{
|
||
Thread.Sleep(5000);
|
||
if (BaseClass.is_read_commission == 1) { continue; }
|
||
try
|
||
{
|
||
List<DouYinOrderModel> listbuyin = CollectionClass.orderDataList.FindAll(x => string.IsNullOrEmpty(x.commission_scale) || x.commission_scale == "0" || x.commission_scale == "0.00"
|
||
|| Math.Abs(Math.Round((x.commission_scale.ParseToDecimal() * x.price.ParseToDecimal()) - x.commission.ParseToDecimal(), 3)) >= 0.01M);
|
||
List<DouYinOrderModel> listsendbuyin = CollectionClass.orderSenderDataList.FindAll(x => string.IsNullOrEmpty(x.commission_scale) || x.commission_scale == "0" || x.commission_scale == "0.00"
|
||
|| Math.Abs(Math.Round((x.commission_scale.ParseToDecimal() * x.price.ParseToDecimal()) - x.commission.ParseToDecimal(), 3)) >= 0.01M);
|
||
//var lstbuyin_自卖 = CollectionClass.orderDataList.FindAll(x => x.c_biz_desc.Contains("小店自卖"));
|
||
//var lstsendbuyin_自卖 = CollectionClass.orderSenderDataList.FindAll(x => x.c_biz_desc.Contains("小店自卖"));
|
||
//需要获取佣金的订单集合
|
||
listbuyin = listbuyin.Concat(listsendbuyin).ToList();//.FindAll(l => l.c_biz_desc.Contains("小店自卖") == false);
|
||
//订单中有哪几个店铺
|
||
List<DouYinOrderModel> onelist = listbuyin.GroupBy(c => c.shop_id).Select(c => c.First()).ToList();
|
||
foreach (DouYinOrderModel getOrderShop in onelist)
|
||
{
|
||
if (BaseClass.is_read_commission == 1) { break; }
|
||
ShopLoginInfo shop = GlobalConfig.ShopLoginList.FirstOrDefault(x => x.ShopId == getOrderShop.shop_id.ToString());
|
||
if (shop != null && !string.IsNullOrEmpty(shop.Cookies))
|
||
{
|
||
var td = CEFBrowser.DeleteCookieAsync(cefJuLiangWebBrowser.RequestContext.GetCookieManager(null));
|
||
td.Wait(5000);
|
||
var t = CEFBrowser.SetCookieAsync("jinritemai.com", shop.Cookies, cefJuLiangWebBrowser.RequestContext.GetCookieManager(null));
|
||
t.Wait(5000);
|
||
cefJuLiangWebBrowser.Load(url);
|
||
Thread.Sleep(30000);
|
||
//载入
|
||
for (int i = 0; i < listbuyin.Count; i++)
|
||
{
|
||
if (BaseClass.is_read_commission == 1) { break; }
|
||
DouYinOrderModel dymodel = listbuyin[i];
|
||
if (isJuLiangLoadEnd && dymodel != null)
|
||
{
|
||
int dian = new Random().Next(2000, 4000);
|
||
Thread.Sleep(dian);
|
||
string script = "";
|
||
// 重置搜索框
|
||
//search-form__reset-btn
|
||
script = " var cbreset = document.getElementsByClassName('search-form__reset-btn');for (var i = 0; i<cbreset.length;i++) { for(var j = 0; j<2;j++){cbreset[i].click();};};";
|
||
cefJuLiangWebBrowser.GetMainFrame().ExecuteJavaScriptAsync(script);
|
||
|
||
//点击下一步
|
||
script = " var guides = document.getElementsByClassName('guides__customFooter__btn');for (var i = 0; i<guides.length;i++) { for(var j = 0; j<20;j++){guides[i].click();};};";
|
||
cefJuLiangWebBrowser.GetMainFrame().ExecuteJavaScriptAsync(script);
|
||
script = " var cbd = document.getElementsByClassName('ant-modal-close-x');for (var i = 0; i<cbd.length;i++) { for(var j = 0; j<20;j++){cbd[i].click();};};";
|
||
cefJuLiangWebBrowser.GetMainFrame().ExecuteJavaScriptAsync(script);
|
||
//点击弹出层叉叉
|
||
script = " var cb = document.getElementsByClassName('message-center-popup__close-icon');for (var i = 0; i<cb.length;i++) { for(var j = 0; j<20;j++){cb[i].click();};};";
|
||
cefJuLiangWebBrowser.GetMainFrame().ExecuteJavaScriptAsync(script);
|
||
Thread.Sleep(1000);
|
||
//文本框获取焦点
|
||
script = "function test(){document.getElementById('product_info').focus();};test(); ";
|
||
cefJuLiangWebBrowser.GetMainFrame().ExecuteJavaScriptAsync(script);
|
||
|
||
|
||
var host = cefJuLiangWebBrowser.GetBrowser().GetHost();
|
||
script = "var dom = document.getElementById('product_info');"
|
||
+ "var evt = new UIEvent('input', {"
|
||
+ " bubbles: false,"
|
||
+ " cancelable: false"
|
||
+ " });"
|
||
+ "dom.value = '" + dymodel.product_id + "';dom.click();"
|
||
+ " dom.dispatchEvent(evt);";
|
||
cefJuLiangWebBrowser.GetMainFrame().ExecuteJavaScriptAsync(script);
|
||
|
||
//文本框获取焦点
|
||
script = "function test(){document.getElementById('product_info').focus();};test(); ";
|
||
cefJuLiangWebBrowser.GetMainFrame().ExecuteJavaScriptAsync(script);
|
||
|
||
KeyEvent k = new KeyEvent();
|
||
k.WindowsKeyCode = 0x20;
|
||
k.FocusOnEditableField = true;
|
||
k.IsSystemKey = false;
|
||
k.Type = KeyEventType.Char;
|
||
host.SendKeyEvent(k);
|
||
Thread.Sleep(500);
|
||
//try
|
||
//{
|
||
// Invoke(new Action(() =>
|
||
// {
|
||
// try
|
||
// {
|
||
// //string file = "";
|
||
// //if (Clipboard.GetFileDropList().Count > 0)
|
||
// //{
|
||
// // file = Clipboard.GetFileDropList()[0];
|
||
// //}
|
||
// //MyClip.saveClip();
|
||
// //Clipboard.SetDataObject("");
|
||
// //Clipboard.SetText(dymodel.product_id);
|
||
|
||
// ////文本框获取焦点
|
||
// //script = "function test(){document.getElementById('product_info').focus();};test(); ";
|
||
// //cefJuLiangWebBrowser.GetMainFrame().ExecuteJavaScriptAsync(script);
|
||
// //host.SendKeyEvent(new CefSharp.KeyEvent() { WindowsKeyCode = 86, Type = KeyEventType.RawKeyDown, Modifiers = CefEventFlags.ControlDown });
|
||
// //Thread.Sleep(150);
|
||
// //if (!string.IsNullOrEmpty(file))
|
||
// //{
|
||
// // System.Collections.Specialized.StringCollection files = new System.Collections.Specialized.StringCollection();
|
||
// // files.Add(file);
|
||
// // Clipboard.SetFileDropList(files);
|
||
// //}
|
||
// //else
|
||
// //{
|
||
// // MyClip.restoreClip();
|
||
// //}
|
||
// }
|
||
// catch (Exception)
|
||
// {
|
||
// }
|
||
// }));
|
||
//}
|
||
//catch (Exception ex)
|
||
//{
|
||
//}
|
||
|
||
//点击搜索
|
||
script = "var button = document.getElementsByTagName('button');"
|
||
+ "for(var i=0;i<button.length;i++) {"
|
||
+ "if(button[i].type.toUpperCase()=='SUBMIT'){"
|
||
+ "button[i].click();"
|
||
+ "}}";
|
||
cefJuLiangWebBrowser.GetMainFrame().ExecuteJavaScriptAsync(script);
|
||
|
||
//string scriptclick = "document.getElementsByClassName('ant-input-search-button')[0].click();";
|
||
//cefJuLiangWebBrowser.GetMainFrame().ExecuteJavaScriptAsync(scriptclick);
|
||
cos_ratio_order_Model = dymodel;
|
||
Thread.Sleep(3000);
|
||
|
||
Task<String> taskHtml = cefJuLiangWebBrowser.GetBrowser().MainFrame.GetSourceAsync();
|
||
string response = taskHtml.Result;
|
||
int procount = response.Split(new string[] { "<div class=\"goodsCard__wrapper\">" }, StringSplitOptions.None).Length - 1;
|
||
if (procount == 0)
|
||
{
|
||
procount = response.Split(new string[] { "ant-table-row ant-table-row-level-0 row-vertical-top" }, StringSplitOptions.None).Length - 1;
|
||
}
|
||
|
||
if (procount == 1)
|
||
{
|
||
string goodsCard__wrapper = BaseRegex.GetMatchRegexString(ref response, "<div class=\"goodsCard__wrapper\">[\\s\\S]+?>([\\s\\S]+?)</div></div>");
|
||
if (string.IsNullOrEmpty(goodsCard__wrapper))
|
||
{
|
||
|
||
}
|
||
string str = BaseRegex.ClearHtml(goodsCard__wrapper);
|
||
string xiaoshou = BaseRegex.GetMatchRegexString(ref str, "¥(?<money>\\d+\\.\\d+)月售");
|
||
string yongjin = BaseRegex.GetMatchRegexString(ref str, "赚¥(?<money>\\d+\\.\\d+)");
|
||
double bili = Math.Round(Convert.ToDouble(yongjin) / Convert.ToDouble(xiaoshou), 2);
|
||
if (double.IsNaN(bili))
|
||
{
|
||
var biliStr = BaseRegex.GetMatchRegexString(ref response, "price__main\">(\\d{1,2})%<");
|
||
if (!string.IsNullOrEmpty(biliStr))
|
||
{
|
||
bili = biliStr.ParseToDouble() / 100;
|
||
}
|
||
else
|
||
bili = 0;
|
||
}
|
||
|
||
//dymodel.commission = Math.Round((Convert.ToDouble(dymodel.price) * bili), 2).ToString();
|
||
//dymodel.commission_scale = bili.ToString();
|
||
|
||
// 商品相同一起更新
|
||
var sameProductOrder = listbuyin.Where(l => l.product_id == dymodel.product_id && l.sku == dymodel.sku).ToList();
|
||
foreach (var orderModel in sameProductOrder)
|
||
{
|
||
orderModel.commission = Math.Round((Convert.ToDouble(orderModel.price) * bili), 2).ToString();
|
||
orderModel.commission_scale = bili.ToString();
|
||
|
||
StringBuilder sb = new StringBuilder();
|
||
sb.Append("&order_id=" + orderModel.order_id);
|
||
sb.Append("&commission=" + orderModel.commission);//佣金
|
||
sb.Append("&commission_scale=" + orderModel.commission_scale);//佣金比例
|
||
var urlx = BaseClass.Build29WxObjString("order&act=update");
|
||
GetHtml.PostUtf8(urlx, UserLogin.GetSignaturex() + sb.ToString());
|
||
Thread.Sleep(500);
|
||
|
||
if (orderModel.order_status_buy == 1)
|
||
{
|
||
buyOrderListForm.SetOrderEditShowInDgvRows(orderModel, 3);
|
||
}
|
||
else
|
||
{
|
||
sendOrderForms.SetOrderEditShowInDgvRows(orderModel, 3);
|
||
}
|
||
listbuyin.Remove(orderModel);
|
||
}
|
||
}
|
||
|
||
string scriptclick = "document.getElementsByClassName('anticon-close-circle')[0].click();";
|
||
cefJuLiangWebBrowser.GetMainFrame().ExecuteJavaScriptAsync(scriptclick);
|
||
|
||
Thread.Sleep(1000);
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|
||
catch (Exception ex)
|
||
{
|
||
|
||
}
|
||
}
|
||
});
|
||
}
|
||
|
||
|
||
private void CefJuLiangWebBrowser_FrameLoadEnd(object sender, FrameLoadEndEventArgs e)
|
||
{
|
||
isJuLiangLoadEnd = true;
|
||
|
||
|
||
|
||
//if (overread)
|
||
//{
|
||
// var task02 = e.Frame.GetSourceAsync();
|
||
// task02.ContinueWith(t =>
|
||
// {
|
||
// if (!t.IsFaulted)
|
||
// {
|
||
// string resultStr = t.Result;
|
||
// }
|
||
// });
|
||
//}
|
||
}
|
||
private void JuLiangRequestHandler_ResourceLoadComplete(object sender, string url, string postData, string responseData)
|
||
{
|
||
if (url.Contains("buyin.jinritemai.com/index/logout"))
|
||
{
|
||
isJuLiangLoadEnd = false;
|
||
Task.Run(() =>
|
||
{
|
||
//BaseMsgForm.ShowError("巨量百应未登录");
|
||
//BaseMsgForm.ShowError("未登录");
|
||
});
|
||
}
|
||
|
||
if (url.Contains("https://buyin.jinritemai.com/api/promotion/getList?product_info="))
|
||
{
|
||
Task.Run(() =>
|
||
{
|
||
var _responseData = responseData;
|
||
try
|
||
{
|
||
//https://buyin.jinritemai.com/pc/selection/search/pmt?page=1&page_size=60&search_text=3504026539392123066
|
||
//&search_id=3511826958081217668&input_query=3504026539392123066&category_ids_v2=
|
||
//&_signature=_02B4Z6wo00101iMRFHwAAIDDQBvUFolVlCojFRDAAOnLWamWwMyK.dt5Z3j12Y
|
||
//.ejwYUFgdxM.PE0qOXQPaxxlJPkGT.2iDUa4pG3unsbqtNsZU-Sq6h55OdbykTTZQweJ4iJU3POSNDjm.e3e
|
||
if (!_responseData.Contains("code"))
|
||
{
|
||
return;
|
||
}
|
||
string code = JObject.Parse(_responseData)["code"].ToString();
|
||
if (code == "0")
|
||
{
|
||
var jArrJM = JObject.Parse(_responseData)["data"];
|
||
if (jArrJM.Count() == 1)
|
||
{
|
||
string product_id = JObject.Parse(jArrJM[0].ToString())["product_id"].ToString();
|
||
if (product_id == cos_ratio_order_Model.product_id)
|
||
{
|
||
int cos_ratio = Convert.ToInt32(JObject.Parse(jArrJM[0].ToString())["cos_ratio"].ToString());
|
||
if (cos_ratio_order_Model != null)
|
||
{
|
||
cos_ratio_order_Model.commission = Math.Round((Convert.ToDouble(cos_ratio_order_Model.price) * (cos_ratio * 0.01)), 2).ToString();
|
||
cos_ratio_order_Model.commission_scale = (cos_ratio * 0.01).ToString();
|
||
if (cos_ratio_order_Model.order_status_buy == 1)
|
||
{
|
||
buyOrderListForm.SetOrderEditShowInDgvRows(cos_ratio_order_Model, 3);
|
||
}
|
||
else
|
||
{
|
||
sendOrderForms.SetOrderEditShowInDgvRows(cos_ratio_order_Model, 3);
|
||
}
|
||
StringBuilder sb = new StringBuilder();
|
||
sb.Append("&order_id=" + cos_ratio_order_Model.order_id);
|
||
sb.Append("&commission=" + cos_ratio_order_Model.commission);
|
||
sb.Append("&commission_scale=" + cos_ratio_order_Model.commission_scale);
|
||
string urlcom = BaseClass.Build29WxObjString("order&act=update");
|
||
GetHtml.PostUtf8(urlcom, UserLogin.GetSignaturex() + sb.ToString());
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|
||
catch (Exception ex)
|
||
{
|
||
|
||
}
|
||
});
|
||
}
|
||
}
|
||
|
||
private void CefJuLiangWebBrowser_AddressChanged(object sender, AddressChangedEventArgs e)
|
||
{
|
||
|
||
}
|
||
|
||
|
||
|
||
|
||
#endregion
|
||
|
||
|
||
#region 订单
|
||
|
||
/// <summary>
|
||
/// 是否正在读取订单
|
||
/// </summary>
|
||
bool isOrderReading = false;
|
||
|
||
/// <summary>
|
||
/// 读单
|
||
/// 1 待确认/待支付(订单创建完毕)
|
||
/// 103 部分支付
|
||
/// 105 已支付
|
||
/// 2 备货中(待发货)
|
||
/// 101 部分发货
|
||
/// 3 已发货(全部发货)
|
||
/// 4 已取消
|
||
/// 5 已完成(已收货)
|
||
/// 21 发货前退款完结
|
||
/// 22 发货后退款完结
|
||
/// 39 收货后退款完结
|
||
/// </summary>
|
||
/// <param name="status">2 备货中</param>
|
||
/// <param name="type"></param>
|
||
void ReadOrder(int status, string type = "")
|
||
{
|
||
try
|
||
{
|
||
if (isOrderReading)
|
||
{
|
||
if (type == "")
|
||
{
|
||
BaseMsgForm.ShowInfo("正在读单中,请等待读单完成", "提示");
|
||
}
|
||
return;
|
||
}
|
||
isOrderReading = true;
|
||
string url = BaseClass.ApiUrl + "/do";
|
||
var shopIds = dgvShop.Rows.Cast<DataGridViewRow>()
|
||
.Where(s => s.Cells["colSelect"].Value.ParseToBool() == true)
|
||
.Select(r => r.Cells["colShopId"].Value.ToString()).ToList();
|
||
Task.Run(() =>
|
||
{
|
||
try
|
||
{
|
||
foreach (ShopLoginInfo shop in GlobalConfig.ShopLoginList)
|
||
{
|
||
if (!shopIds.Contains(shop.ShopId))
|
||
{
|
||
continue;
|
||
}
|
||
if (shop.ApiAuthStatus != "授权成功")
|
||
{
|
||
continue;
|
||
}
|
||
|
||
int size = 100;
|
||
int totalcount = 100;
|
||
int page = 0;
|
||
|
||
#region 获取上次读取订单截止时间作为本次读取开始时间
|
||
url = BaseClass.Build29WxObjString("shop&act=get_shop_pull_time");
|
||
string data = UserLogin.GetSignaturex() + "&shop_id=" + shop.ShopId;
|
||
string shopReadtimejson = GetHtml.PostUtf8(url, data);
|
||
if (shopReadtimejson != "" && JObject.Parse(shopReadtimejson)["code"].ToString() == "200")
|
||
{
|
||
BaseClass.readOrderTime = JObject.Parse(shopReadtimejson)["data"].ParseToInt();
|
||
}
|
||
DateTime serverTime = BaseClass.GetServerTimeString();
|
||
DateTime readOrderStartDateTime = BaseClass.StampToDateTime(BaseClass.readOrderTime);
|
||
if (readOrderStartDateTime < serverTime.AddDays(-14))
|
||
readOrderStartDateTime = serverTime.AddDays(-14);
|
||
//readOrderStartDateTime = serverTime.Date.AddDays(-14); // 测试用,固定读14天
|
||
if (readOrderStartDateTime > serverTime.Date.AddDays(-1))
|
||
readOrderStartDateTime = serverTime.Date.AddDays(-1); // 测试用,固定读1天
|
||
#endregion
|
||
|
||
DateTime nextReadOrderDateTime = serverTime.AddSeconds(-400); // 下次读单的开始时间
|
||
|
||
downpage:
|
||
// status:
|
||
// under_sure 待确认
|
||
// unpaid 待支付
|
||
// 2 备货中
|
||
// on_delivery 已发货
|
||
// stock_up 24小时须发货
|
||
// 1 待确认 / 待支付(订单创建完毕)
|
||
// 103 部分支付
|
||
// 105 已支付
|
||
// 2 备货中
|
||
// 101 部分发货
|
||
// 3 已发货(全部发货)
|
||
// 4 已取消
|
||
// 5 已完成(已收货)
|
||
// 21 发货前退款完结
|
||
// 22 发货后退款完结
|
||
// 39 收货后退款完结
|
||
Dictionary<string, string> dic = new Dictionary<string, string>() { };
|
||
dic.Add("size", size.ToString());
|
||
dic.Add("page", page.ToString());
|
||
dic["create_time_start"] = BaseClass.DateTimeToTimestampSeconds(readOrderStartDateTime).ToString();
|
||
dic.Add("create_time_end", BaseClass.DateTimeToTimestampSeconds(serverTime.Date.AddDays(1)).ToString());
|
||
dic.Add("order_by", "create_time");
|
||
if (status > 0)
|
||
dic.Add("combine_status", "{\"order_status\":\"" + status + "\"}");
|
||
//dic.Add("combine_status", "{\"main_status\":2}");
|
||
DouyinApi apix = new DouyinApi(shop);
|
||
apix.JsonData = dic;
|
||
BaseClass.ShopId = shop.ShopId;
|
||
BaseClass.ShopName = shop.ShopAccount;
|
||
|
||
string html = apix.GetOrderList();
|
||
for (int i = 0; i < 5 && html.Contains("系统繁忙,请稍后重试"); i++)
|
||
{
|
||
Thread.Sleep(1000);
|
||
html = apix.GetOrderList();
|
||
}
|
||
|
||
Debug.WriteLine("抖音返回数据:page:{0}|code:{1}|total:{2}", page.ToString(), JObject.Parse(html)["code"]?.ToString(), JObject.Parse(html)["data"]?["total"]?.ToString()); //总毫秒数
|
||
|
||
if (string.IsNullOrEmpty(html))
|
||
{
|
||
isOrderReading = false;
|
||
return;
|
||
}
|
||
var temp = html.Replace(" ", "");
|
||
if (!temp.Contains("\"msg\":\"success\"") && !temp.Contains("\"message\":\"success\"") && !temp.Contains("\"code\":10000"))
|
||
{
|
||
isOrderReading = false;
|
||
return;
|
||
}
|
||
|
||
#region fei 废弃代码
|
||
/*
|
||
for (int i = 0; i < CollectionClass.orderDataList_Temp.Count; i++)
|
||
{
|
||
DouOrderListInfo.Shop_order_listItem item = CollectionClass.orderDataList_Temp[i];
|
||
DouYinOrderModel dymodel = CollectionClass.orderDataList.Find(x => x.main_order_id == item.order_id);
|
||
|
||
string Name = "解密失败", Mobile = "解密失败", Address = "解密失败";
|
||
if (dymodel != null)
|
||
{
|
||
Name = dymodel.name;
|
||
Mobile = dymodel.mobile;
|
||
Address = dymodel.address;
|
||
}
|
||
else
|
||
{
|
||
if (!BaseClass.isUseSimGetRealAddress)
|
||
{
|
||
#region 解密
|
||
//dic = new Dictionary<string, string>() { };
|
||
//dic.Add("cipher_infos", "[{\"auth_id\":\"" + item.order_id + "\",\"cipher_text\":\"" + GetHtml.UrlEncodeUtf8(item.encrypt_post_tel) + "\"}," +
|
||
// "{\"auth_id\":\"" + item.order_id + "\",\"cipher_text\":\"" + GetHtml.UrlEncodeUtf8(item.encrypt_post_receiver) + "\"}," +
|
||
// "{\"auth_id\":\"" + item.order_id + "\",\"cipher_text\":\"" + GetHtml.UrlEncodeUtf8(item.post_addr.encrypt_detail) + "\"}" +
|
||
// "]");
|
||
|
||
//if (shop != null)
|
||
//{
|
||
// apix.JsonData = dic;
|
||
// string htmljm = apix.GetOrderbatchSensitive();
|
||
// apix.JsonData = dic;
|
||
// // string htmljm_h = apix.GetGuanFangData("order.batchDecrypt");
|
||
|
||
// htmljm = apix.GetOrderBatchDecrypt();
|
||
// string code = "";
|
||
// code = JObject.Parse(htmljm)["code"].ToString();
|
||
// if (code == "10000")
|
||
// {
|
||
// var jArrJM = JObject.Parse(htmljm)["data"]["decrypt_infos"];
|
||
// foreach (var itemjm in jArrJM)
|
||
// {
|
||
// string cipher_text = JObject.Parse(itemjm.ToString())["cipher_text"].ToString();
|
||
// if (cipher_text == item.encrypt_post_receiver)
|
||
// {
|
||
// Name = JObject.Parse(itemjm.ToString())["decrypt_text"].ToString();
|
||
// }
|
||
// else if (cipher_text == item.encrypt_post_tel)
|
||
// {
|
||
// Mobile = JObject.Parse(itemjm.ToString())["decrypt_text"].ToString();
|
||
// }
|
||
// else
|
||
// {
|
||
// Address = item.post_addr.province.name + item.post_addr.city.name + item.post_addr.town.name + item.post_addr.street.name + JObject.Parse(itemjm.ToString())["decrypt_text"].ToString();
|
||
// }
|
||
// }
|
||
// }
|
||
//}
|
||
#endregion
|
||
}
|
||
}
|
||
|
||
foreach (DouOrderListInfo.Sku_order_listItem orderDetail in item.sku_order_list)
|
||
{
|
||
string sku = "";
|
||
foreach (DouOrderListInfo.SpecItem specdescitem in orderDetail.spec)
|
||
{
|
||
sku += specdescitem.name + ":" + specdescitem.value + ";";
|
||
}
|
||
string urlx = BaseClass.LoginApiUrl + "?obj=upshopid/upid_dd&act=get";
|
||
string datax = "&pid=" + orderDetail.product_id + "&table=" + (orderDetail.product_id % 1024);
|
||
string pid = GetHtml.PostUtf8(urlx, UserLogin.GetSignaturex("", "") + datax);
|
||
orderDetail.Name = Name;
|
||
orderDetail.Mobile = Mobile;
|
||
orderDetail.Address = Address;
|
||
StringBuilder sb = new StringBuilder();
|
||
|
||
|
||
//if (!Mobile.Contains("解密失败") && !Mobile.Contains("$1$$"))
|
||
//{
|
||
// sb.Append("&decrypt_status=1");
|
||
//}
|
||
//else
|
||
//{
|
||
// Address = Mobile = Name = orderDetail.Name = "解密失败.";
|
||
// orderDetail.Mobile = "解密失败.";
|
||
// orderDetail.Address = "解密失败.";
|
||
// sb.Append("&decrypt_status=2");
|
||
//}
|
||
|
||
sb.Append("&main_order_id=" + item.order_id);
|
||
sb.Append("&order_id=" + orderDetail.order_id);
|
||
//sb.Append("&product_id=" + orderDetail.product_id);
|
||
//sb.Append("&shop_id=" + item.shop_id);
|
||
//sb.Append("&shop_name=" + item.shop_name);
|
||
//sb.Append("&title=" + GetHtml.UrlEncodeUtf8(orderDetail.product_name));
|
||
//sb.Append("&order_status=" + orderDetail.order_status);
|
||
//sb.Append("&sku=" + GetHtml.UrlEncodeUtf8(sku));
|
||
//sb.Append("&sku_img=" + orderDetail.product_pic);
|
||
//sb.Append("&count=" + orderDetail.item_num);
|
||
//sb.Append("&price=" + orderDetail.pay_amount);
|
||
//sb.Append("&express_name=");
|
||
//sb.Append("&express_no=");
|
||
//sb.Append("&c_biz_desc=" + orderDetail.c_biz_desc);
|
||
//sb.Append("&name=" + GetHtml.UrlEncodeUtf8(Name));
|
||
//sb.Append("&mobile=" + GetHtml.UrlEncodeUtf8(Mobile));
|
||
//sb.Append("&address=" + GetHtml.UrlEncodeUtf8(Address));
|
||
//sb.Append("&create_time=" + orderDetail.create_time);
|
||
//if (pid.Length > 1 && pid != "none" && !pid.Replace(" ", "").Contains("{\"code\": 400".Replace(" ","")))
|
||
//{
|
||
// sb.Append("&up_product_id=" + pid);
|
||
//}
|
||
//sb.Append("&order_id_buy=");//0已完成 1待拍单
|
||
//sb.Append("&order_status_buy=1");//0已完成 1待拍单 2等待上家发货
|
||
//sb.Append("&buy_price=");
|
||
//sb.Append("&buyer_mobile=");
|
||
//sb.Append("&remark=" + item.seller_words);
|
||
//sb.Append("&is_update_order=0");//1修改状态0不修改状态
|
||
url = BaseClass.Build29WxObjString("order&act=update");
|
||
System.Diagnostics.Stopwatch watch = new System.Diagnostics.Stopwatch();
|
||
watch.Start(); //开始监视代码运行时间
|
||
GetHtml.PostUtf8(url, UserLogin.GetSignaturex() + sb.ToString());
|
||
watch.Stop(); //停止监视
|
||
TimeSpan timespans = watch.Elapsed; //获取当前实例测量得出的总时间
|
||
System.Diagnostics.Debug.WriteLine("发送订单到服务器数据:{0}(毫秒)", timespans.TotalMilliseconds); //总毫秒数
|
||
}
|
||
}
|
||
*/
|
||
#endregion
|
||
|
||
try
|
||
{
|
||
DouOrderListInfo.OrderData orderListInfo = JsonConvert.DeserializeObject<DouOrderListInfo.OrderListResponse>(html).data;
|
||
CollectionClass.orderDataList_Temp = CollectionClass.orderDataList_Temp.Concat(orderListInfo.shop_order_list).ToList();
|
||
|
||
if (orderListInfo.shop_order_list.Count > 0)
|
||
{
|
||
var maxTime = BaseClass.StampToDateTime(orderListInfo.shop_order_list.Max(o => o.create_time));
|
||
if (maxTime > nextReadOrderDateTime)
|
||
{
|
||
nextReadOrderDateTime = maxTime;
|
||
}
|
||
}
|
||
|
||
if (orderListInfo.total > totalcount)
|
||
{
|
||
page++;
|
||
totalcount += orderListInfo.shop_order_list.Count;
|
||
goto downpage;
|
||
}
|
||
|
||
// 读取完当前店铺更新最后读取时间以供下次读取开始
|
||
url = BaseClass.Build29WxObjString("shop&act=update_shop_pull_time");
|
||
shopReadtimejson = GetHtml.PostUtf8(url, UserLogin.GetSignaturex() + "&shop_id=" + shop.ShopId +
|
||
"&pull_time=" + BaseClass.DateTimeToTimestampSeconds(nextReadOrderDateTime));
|
||
}
|
||
catch (Exception ex)
|
||
{
|
||
}
|
||
}
|
||
}
|
||
catch (Exception ex)
|
||
{
|
||
NaiBa.Util.Helper.LogHelper.WriteWithTime(ex.Message);
|
||
}
|
||
isOrderReading = false;
|
||
});
|
||
}
|
||
catch (Exception ex)
|
||
{
|
||
isOrderReading = false;
|
||
}
|
||
|
||
}
|
||
|
||
|
||
|
||
#endregion
|
||
|
||
#region 店铺
|
||
bool readshop = false;
|
||
public List<ShopLoginInfo> GetServerShop()
|
||
{
|
||
List<ShopLoginInfo> list = new List<ShopLoginInfo>();
|
||
if (readshop == false)
|
||
{
|
||
this.Invoke(new Action(() =>
|
||
{
|
||
dgvShop.Rows.Clear();
|
||
GlobalConfig.ShopLoginList.Clear();
|
||
lbsqcount.Text = "0";
|
||
lbwsqcount.Text = "0";
|
||
splitMain.Panel1.Enabled = false;
|
||
}));
|
||
readshop = true;
|
||
int page = 0;
|
||
while (true)
|
||
{
|
||
page++;
|
||
//var url = BaseClass.BuildObjString("shop&act=get_shop_list");
|
||
var url = BaseClass.Build29WxObjString("shop/get_shop_list");
|
||
var data = UserLogin.GetSignaturex() + "&page=" + page;
|
||
var html = GetHtml.PostUtf8(url, data);
|
||
if (string.IsNullOrEmpty(html) || !html.Contains("\"code\":200"))
|
||
html = GetHtml.PostUtf8(url, data);
|
||
if (string.IsNullOrEmpty(html) || !html.Contains("\"code\":200"))
|
||
html = GetHtml.PostUtf8(url, data);
|
||
if (string.IsNullOrEmpty(html)
|
||
|| !html.Contains("shop_id") || !html.Contains("shop_account") || !html.Contains("login_pass"))
|
||
{
|
||
break;
|
||
}
|
||
|
||
var jArr = JObject.Parse(html)["data"];
|
||
if (jArr.Count() == 0)
|
||
break;
|
||
|
||
foreach (JObject jObj in jArr)
|
||
{
|
||
//string shopStr = jObj.ToString();
|
||
//ShopLoginInfo shop = new ShopLoginInfo();
|
||
//shop.DbId = BaseRegex.GetStringJson(ref shopStr, "id");
|
||
//if (shop.DbId == null)
|
||
// continue;
|
||
//shop.LoginName = BaseRegex.GetStringJson(ref shopStr, "login_name");
|
||
//shop.ShopAccount = BaseRegex.GetStringJson(ref shopStr, "shop_name");
|
||
//shop.ApiAuthStatus = "读取中...";
|
||
//shop.LoginStatus = "读取中...";
|
||
//shop.Password = BaseRegex.GetStringJson(ref shopStr, "password");
|
||
//shop.ShopId = BaseRegex.GetStringJson(ref shopStr, "shop_id");
|
||
|
||
//url = BaseClass.Build29WxObjString("shop&act=get_shop_token");
|
||
//data = UserLogin.GetSignaturex() + "&shop_id=" + shop.ShopId;
|
||
|
||
//string htmltoken = GetHtml.PostUtf8(url, data, "", 5);
|
||
//for (int i = 0; i < 10 && (string.IsNullOrEmpty(htmltoken) || htmltoken.Replace(" ", "").Contains("\"code\":400")); i++)
|
||
//{
|
||
// Thread.Sleep(100);
|
||
// htmltoken = GetHtml.PostUtf8(url, data, "", 5);
|
||
//}
|
||
//var jArrs = JObject.Parse(htmltoken)["data"];
|
||
//foreach (JObject jObjs in jArrs)
|
||
//{
|
||
// string tokens = jObjs.ToString();
|
||
// string token = BaseRegex.GetStringJson(ref tokens, "access_token");
|
||
// string app_key = BaseRegex.GetStringJson(ref tokens, "app_key");
|
||
// string expires_in = BaseRegex.GetStringJson(ref tokens, "expires_in");
|
||
// if (app_key == "7016502755254683171")
|
||
// {
|
||
// shop.AccessToken = token;
|
||
// shop.TokenExpiresTime = Convert.ToDateTime(expires_in);
|
||
// }
|
||
//}
|
||
|
||
//shop.GroupName = BaseRegex.GetStringJson(ref shopStr, "cat_name");
|
||
//shop.BuyAccount = BaseRegex.GetStringJson(ref shopStr, "buy_user_name");
|
||
//shop.UploadAccount = BaseRegex.GetStringJson(ref shopStr, "upload_user_name");
|
||
|
||
var shop = ShopBLL.DeserializationShop(jObj);
|
||
|
||
if (list.Any(l => l.ShopId == shop.ShopId))
|
||
continue;
|
||
list.Add(shop);
|
||
|
||
this.Invoke(new Action(() =>
|
||
{
|
||
ShowShopStatus(shop);
|
||
}));
|
||
}
|
||
}
|
||
|
||
foreach (ShopLoginInfo shop in list)
|
||
{
|
||
}
|
||
|
||
if (list.Count > 0)
|
||
{
|
||
#region 获取服务端保存的店铺cookies
|
||
string shopNames = "";
|
||
foreach (var shop in list)
|
||
{
|
||
shopNames += shop.ShopAccount + ",";
|
||
}
|
||
|
||
var cookies = GetServerShopCookies(shopNames);
|
||
if (!string.IsNullOrEmpty(cookies) && cookies.Contains("\"code\":200"))
|
||
{
|
||
var data = JObject.Parse(cookies)["data"];
|
||
foreach (var shop in list)
|
||
{
|
||
for (int j = 0; data != null && j < data.Count(); j++)
|
||
{
|
||
if (data[j][shop.ShopAccount] != null)
|
||
{
|
||
shop.Cookies = data[j][shop.ShopAccount].ToString().Replace("&", "&").Replace("%", "%").Replace("+", "+");
|
||
break;
|
||
}
|
||
}
|
||
}
|
||
}
|
||
#endregion
|
||
|
||
#region 获取服务端保存的店铺授权信息
|
||
string shopIds = "";
|
||
foreach (var shop in list)
|
||
{
|
||
shopIds += shop.ShopId + ",";
|
||
}
|
||
var shopTokens = GetServerShopTokens(shopIds); //{"code":200,"msg":"success","data":[{"shop_id":"9050819","app_key":"6876612657718691336","access_token":"fd818b94-b4e7-4707-8073-bebcd81d8e4c","refresh_token":"9a109ef3-2bef-4ca9-8f4e-18369a356255","add_time":"2021-07-09 10:54:56","expires_in":"2021-07-14 18:40:44"}]}
|
||
if (!string.IsNullOrEmpty(shopTokens) && shopTokens.Contains("\"code\":200"))
|
||
{
|
||
JObject jShopsObj = JObject.Parse(shopTokens);
|
||
foreach (JObject jShop in jShopsObj["data"])
|
||
{
|
||
string shopStr = AllBase.JsonHelper.SerializeObject(jShop);
|
||
if (BaseRegex.GetStringJson(ref shopStr, "app_key") == "7016502755254683171")
|
||
{
|
||
string shop_id = BaseRegex.GetStringJson(ref shopStr, "shop_id");
|
||
var shop = list.FirstOrDefault(s => s.ShopId == shop_id);
|
||
if (shop != null)
|
||
{
|
||
shop.AppKey = BaseRegex.GetStringJson(ref shopStr, "app_key");
|
||
shop.AccessToken = BaseRegex.GetStringJson(ref shopStr, "access_token");
|
||
shop.RefreshToken = BaseRegex.GetStringJson(ref shopStr, "refresh_token");
|
||
shop.AddTime = Convert.ToDateTime(BaseRegex.GetStringJson(ref shopStr, "add_time"));
|
||
shop.ExpiresTime = Convert.ToDateTime(BaseRegex.GetStringJson(ref shopStr, "expires_in"));
|
||
}
|
||
}
|
||
}
|
||
}
|
||
#endregion
|
||
|
||
#region 读取服务端子账号列表用于订单分配
|
||
//------------------------------------
|
||
string url = BaseClass.Build29WxObjString("shop&act=get_shop_user_sub_group");
|
||
var param = UserLogin.GetSignaturex() + "&group_id=9";
|
||
string subUserIdResult = GetHtml.PostUtf8(url, param);
|
||
for (int i = 0; i < 10 && !subUserIdResult.Contains("\"code\":200"); i++)
|
||
{
|
||
Thread.Sleep(200);
|
||
subUserIdResult = GetHtml.PostUtf8(url, param);
|
||
}
|
||
if (subUserIdResult != "" && JObject.Parse(subUserIdResult)["code"].ToString() == "200")
|
||
{
|
||
List<DouSubAccountModel> dousubaccount = JsonConvert.DeserializeObject<List<DouSubAccountModel>>(JObject.Parse(subUserIdResult)["data"].ToString());
|
||
foreach (var shop in list)
|
||
{
|
||
var douSubAccountModelItem = new DouSubAccountModelItem() { DouSubAccountModel = dousubaccount.Where(d => d.shop_id == shop.ShopId).ToList() };
|
||
BaseClass.dousubaccountDic[shop.ShopId] = douSubAccountModelItem;
|
||
}
|
||
}
|
||
#endregion
|
||
}
|
||
foreach (var shop in list)
|
||
{
|
||
GlobalConfig.ShopLoginList.Add(shop);
|
||
}
|
||
CheckShopLogin(list);
|
||
readshop = false;
|
||
|
||
this.Invoke(new Action(() =>
|
||
{
|
||
splitMain.Panel1.Enabled = true;
|
||
}));
|
||
}
|
||
return list;
|
||
}
|
||
|
||
public void ShowShopStatus(ShopLoginInfo shop)
|
||
{
|
||
var row = this.dgvShop.Rows.Cast<DataGridViewRow>().FirstOrDefault(r => r.Cells["colShopId"].Value?.ToString() == shop.ShopId);
|
||
if (row == null)
|
||
dgvShop.Rows.Add(true, shop.ShopId, shop.LoginName, shop.ShopAccount, shop.ApiAuthStatus, shop.LoginStatus);
|
||
else
|
||
{
|
||
row.Cells["colShopAccount"].Value = shop.LoginName;
|
||
row.Cells["colShopName"].Value = shop.ShopAccount;
|
||
row.Cells["colAuthStatus"].Value = shop.ApiAuthStatus;
|
||
row.Cells["colLoginStatus"].Value = shop.LoginStatus;
|
||
}
|
||
}
|
||
|
||
/// <summary>
|
||
/// 获取店铺Cookies
|
||
/// </summary>
|
||
/// <param name="shopNames">店铺名称,逗号隔开</param>
|
||
public static string GetServerShopCookies(string shopNames)
|
||
{
|
||
var url = BaseClass.Build29WxObjString("shop&act=get_shop_cookie");
|
||
var data = UserLogin.GetSignaturex() + "&shop_name=" + shopNames.Trim(',');
|
||
var result = GetHtml.PostUtf8(url, data);
|
||
return result;
|
||
}
|
||
public static string GetServerShopTokens(string shopIds)
|
||
{
|
||
var url = BaseClass.Build29WxObjString("shop&act=get_shop_token");
|
||
var data = UserLogin.GetSignaturex() + "&shop_id=" + shopIds.Trim(',');
|
||
var result = GetHtml.PostUtf8(url, data);
|
||
return result;
|
||
}
|
||
|
||
//查询授权
|
||
public void CheckShopLogin(List<ShopLoginInfo> shoplists, bool isShowProgress = true)
|
||
{
|
||
for (int i = 0; i < shoplists.Count; i++)
|
||
{
|
||
ShopLoginInfo doushop = shoplists[i];
|
||
var url = BaseClass.Build29WxObjString("authorization&act=order_author");
|
||
var data = UserLogin.GetSignaturex() + "×tamp=" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + "&shop_id=" + doushop.ShopId;
|
||
var result = GetHtml.PostUtf8(url, data);
|
||
|
||
var shop = GlobalConfig.ShopLoginList.FirstOrDefault(v => v.ShopAccount == doushop.ShopAccount);
|
||
if (shop != null)
|
||
{
|
||
var loginResult = GetShopStatus(shop);
|
||
if (loginResult.Contains("\"code\":0"))
|
||
{
|
||
shop.LoginStatus = "登录成功";
|
||
var shopId = BaseRegex.GetStringJson(ref loginResult, "id");
|
||
var shopToken = BaseRegex.GetStringJson(ref loginResult, "token");
|
||
var shopName = BaseRegex.GetStringJson(ref loginResult, "shop_name");
|
||
var mobile = BaseRegex.GetStringJson(ref loginResult, "mobile");
|
||
var expires_in = BaseRegex.GetStringJson(ref result, "expires_in");
|
||
if (!string.IsNullOrEmpty(shopId)) shop.ShopId = shopId;
|
||
if (!string.IsNullOrEmpty(expires_in))
|
||
{
|
||
shop.ExpiresTime = Convert.ToDateTime(expires_in);
|
||
}
|
||
if (!string.IsNullOrEmpty(shopToken)) shop.ShopToken = shopToken;
|
||
if (!string.IsNullOrEmpty(shopName)) shop.ShopAccount = shopName;
|
||
if (!string.IsNullOrEmpty(mobile)) shop.Mobile = mobile;
|
||
}
|
||
else if (loginResult.Contains("未登录"))
|
||
{
|
||
shop.LoginStatus = "未登录";
|
||
}
|
||
else
|
||
{
|
||
shop.LoginStatus = "登录失败";
|
||
}
|
||
|
||
if (BaseClass.GetServerTimeString() > shop.TokenExpiresTime)
|
||
{
|
||
this.Invoke(new Action(() =>
|
||
{
|
||
lbwsqcount.Text = (lbwsqcount.Text.ParseToInt() + 1).ToString();
|
||
shop.ApiAuthStatus = "未授权";
|
||
}));
|
||
}
|
||
else
|
||
{
|
||
Dictionary<string, string> dic = new Dictionary<string, string>() { };
|
||
dic.Add("size", "1");
|
||
dic.Add("page", "0");
|
||
dic.Add("order_by", "create_time");
|
||
dic.Add("create_time_start", BaseClass.DateTimeToTimestampSeconds(DateTime.Now.AddDays(-1)).ToString());
|
||
DouyinApi api = new DouyinApi(shop);
|
||
api.JsonData = dic;
|
||
string html = api.GetOrderList();
|
||
|
||
if (html.Contains("\"message\":\"success\"") || html.Contains("\"code\":10000"))
|
||
{
|
||
this.Invoke(new Action(() =>
|
||
{
|
||
lbsqcount.Text = (lbsqcount.Text.ParseToInt() + 1).ToString();
|
||
shop.ApiAuthStatus = "授权成功";
|
||
}));
|
||
}
|
||
else // "access_token已过期"
|
||
{
|
||
this.Invoke(new Action(() =>
|
||
{
|
||
lbwsqcount.Text = (lbwsqcount.Text.ParseToInt() + 1).ToString();
|
||
shop.ApiAuthStatus = "未授权";
|
||
}));
|
||
}
|
||
}
|
||
// 获取店铺token列表
|
||
|
||
//if (!string.IsNullOrEmpty(shop.AccessToken) && shop.ExpiresTime > DateTime.Now)
|
||
//{
|
||
// shop.ApiAuthStatus = "授权成功";
|
||
//}
|
||
|
||
if (!string.IsNullOrEmpty(loginResult))
|
||
shop.LastRefreshDate = DateTime.Now.Date.ToString("yyyyMMdd");
|
||
//StartUp.SaveDouShopLoginInfo();
|
||
//AddDataGridViewRow(shop);
|
||
}
|
||
if (this.Created && isShowProgress)
|
||
{
|
||
this.Invoke(new Action(() =>
|
||
{
|
||
//this.statusBar.lblTaskStatus.Text = "正在检测...";
|
||
//this.statusBar.pgbTaskProgress.Value = (i + 1);
|
||
//this.statusBar.pgbTaskProgress.Text = (i + 1) + "/" + shopNames.Length;
|
||
}));
|
||
}
|
||
|
||
this.Invoke(new Action(() =>
|
||
{
|
||
ShowShopStatus(doushop);
|
||
}));
|
||
}
|
||
}
|
||
private string GetShopStatus(ShopLoginInfo shop)
|
||
{
|
||
var timeStamp = AllBase.BaseClass.ConvertDateTimeInt(DateTime.Now);
|
||
var _lid = timeStamp.ToString().Substring(5) + Randomx.GetId(10) + Randomx.GetId(10) + Randomx.GetId(10) + Randomx.GetId(10);
|
||
|
||
HttpWebResponse response = null;
|
||
string result;
|
||
try
|
||
{
|
||
string url = "https://fxg.jinritemai.com/common/index/index?_lid=" + _lid;
|
||
url = "https://fxg.jinritemai.com/common/index/index?_=" + timeStamp + "&appid=1";
|
||
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
|
||
|
||
request.KeepAlive = true;
|
||
request.Headers.Add("sec-ch-ua", @""" Not;A Brand"";v=""99"", ""Google Chrome"";v=""91"", ""Chromium"";v=""91""");
|
||
request.Headers.Add("sec-ch-ua-mobile", @"?0");
|
||
request.UserAgent = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/138.0.0.0 Safari/537.36";
|
||
request.Accept = "*/*";
|
||
request.Headers.Add("Sec-Fetch-Site", @"same-origin");
|
||
request.Headers.Add("Sec-Fetch-Mode", @"cors");
|
||
request.Headers.Add("Sec-Fetch-Dest", @"empty");
|
||
request.Referer = "https://fxg.jinritemai.com/ffa/mshop/homepage/index";
|
||
//request.Headers.Set(HttpRequestHeader.AcceptEncoding, "gzip, deflate, br");
|
||
request.Headers.Set(HttpRequestHeader.AcceptEncoding, "gzip, deflate");
|
||
request.Headers.Set(HttpRequestHeader.AcceptLanguage, "zh-CN,zh;q=0.9");
|
||
request.Headers.Set(HttpRequestHeader.Cookie, shop.Cookies);
|
||
//gfsitesid=MTQyNTYzMzg3MXwxNjI0ODY5MDgyMjN8fDQyOTIxMTA1Mjk2MDgzNzUHBwcHBwcH; gfsitesid=MTQyNTYzMzg3MXwxNjI0ODY5MDgyMjN8fDQyOTIxMTA1Mjk2MDgzNzUHBwcHBwcH; gfsitesid=MTQyNTYzMzg3MXwxNjI0ODY5MDgyMjN8fDQyOTIxMTA1Mjk2MDgzNzUHBwcHBwcH; gfsitesid=MTQyNTYzMzg3MXwxNjI0ODY5MDgyMjN8fDQyOTIxMTA1Mjk2MDgzNzUHBwcHBwcH; gftoken=MTQyNTYzMzg3MXwxNjI0ODY5MDgyMjN8fDAGBgYGBgY; Hm_lvt_b6520b076191ab4b36812da4c90f7a5e=1624869083; passport_csrf_token_default=63caff152adc5e1d5da5767bf68c6e13; passport_csrf_token=63caff152adc5e1d5da5767bf68c6e13; ttwid=1%7C7YnupmizSCfMVfQ9y8cSyDYdaFFZFIG3i91Gg2_c5o4%7C1624869083%7C2527885991ce10cc1d54edcb381f47d01aaaf862a2c1fb587f55e26aa41eba5b; ttcid=40a3419fe96343f794046035c0f1c6bb88; n_mh=7LrrRmeUceh3vjPZWa4C3h7B_APxodsUr7zuYy75V90; sso_uid_tt=c1960cf8de21effe142f1b380670a8a3; sso_uid_tt_ss=c1960cf8de21effe142f1b380670a8a3; toutiao_sso_user=c00794bc53d4a42eb9ab1388ca003bcb; toutiao_sso_user_ss=c00794bc53d4a42eb9ab1388ca003bcb; odin_tt=c646a97f8da607104fc7f1b424cf575d3a9360b52a860aa41d467407a14512fa049a875904a556a8ecbca4985d302a8287ae02bafeaf8235cd31d44a86c2f27f; gfpart_1.0.0.2541_75650=0; uidpasaddaehruigqreajf=0; ucas_sso_c0_ss=CkEKBTEuMC4wEIeIg9zOm-LsYBjmJiC9k9DP4oyUBCiwITC39dDb7fTPB0DjkeaGBkjjxaKJBlCOvKLE77ansWBYbhIU4IRRs4bwygU2zJUnwUihzw_S6ko; ucas_sso_c0=CkEKBTEuMC4wEIeIg9zOm-LsYBjmJiC9k9DP4oyUBCiwITC39dDb7fTPB0DjkeaGBkjjxaKJBlCOvKLE77ansWBYbhIU4IRRs4bwygU2zJUnwUihzw_S6ko; ucas_c0_ss=CkEKBTEuMC4wEKKIg9SJmuLsYBjmJiC9k9DP4oyUBCiwITC39dDb7fTPB0DkkeaGBkjkxaKJBlCOvKLE77ansWBYbhIU3xVR2vJ8IbAhCwtumICcjmmBLh0; sid_guard=16f989cfdea4ddac75677dfc0ce57afd%7C1624869092%7C5184000%7CFri%2C+27-Aug-2021+08%3A31%3A32+GMT; uid_tt=6fdbf1e79a0ed585dfa8e872be181249; uid_tt_ss=6fdbf1e79a0ed585dfa8e872be181249; sid_tt=16f989cfdea4ddac75677dfc0ce57afd; sessionid=16f989cfdea4ddac75677dfc0ce57afd; sessionid_ss=16f989cfdea4ddac75677dfc0ce57afd; ucas_c0=CkEKBTEuMC4wEKKIg9SJmuLsYBjmJiC9k9DP4oyUBCiwITC39dDb7fTPB0DkkeaGBkjkxaKJBlCOvKLE77ansWBYbhIU3xVR2vJ8IbAhCwtumICcjmmBLh0; PHPSESSID=3fe844ca974ebeea09da3231eee9646e; PHPSESSID_SS=3fe844ca974ebeea09da3231eee9646e; need_choose_shop=0; Hm_lpvt_b6520b076191ab4b36812da4c90f7a5e=1624869093; login_info=%7B%22for_im_reply%22%3A%223fe844ca974ebeea09da3231eee9646e%22%7D; tt_scid=jkzjB5E7zloxWMb2G449QYbHcDZpzOLTpPUBSBff8qryqYe.RyJXHuV0J7Zgm6nNa041; MONITOR_WEB_ID=4292110529608375
|
||
//passport_csrf_token_default=e5523a2b927b7a05c96d78a002476760; passport_csrf_token=e5523a2b927b7a05c96d78a002476760; source=bd.pcpz.1; uidpasaddaehruigqreajf=0; need_choose_shop=0; gfpart_1.0.0.695_75006=0; SHOP_ID=9050819; PIGEON_CID=4292110529608375; gfpart_1.0.0.2509_75019=0; Hm_lvt_b6520b076191ab4b36812da4c90f7a5e=1624517875,1624518442; passport_auth_status_ss=be2c708f6b44b8a69f25bb0be517ed9e%2C3eecc7d21580d321236fc0fdc098042c; passport_auth_status=be2c708f6b44b8a69f25bb0be517ed9e%2C3eecc7d21580d321236fc0fdc098042c; n_mh=7LrrRmeUceh3vjPZWa4C3h7B_APxodsUr7zuYy75V90; gfpart_1.0.0.312_74679=1; ttwid=1%7Cn--vVhfZ3AB5VnU0qJCRI6DEqVeEtvQU9yArHD7nu7A%7C1624868199%7Ccd636d9e6f1719d9a763eee1acf81ab435e14c542490ef0a5150c7566f110764; sso_uid_tt=b577dc2d646f30ca85d073bf096eb952; sso_uid_tt_ss=b577dc2d646f30ca85d073bf096eb952; toutiao_sso_user=c1581bc437561fd5a52f850ccd927686; toutiao_sso_user_ss=c1581bc437561fd5a52f850ccd927686; odin_tt=e85b04b36cb5475fe06a487c55655d731be76d54ae26e57e080823d3a568d863c7b24a14aa1c89b488b91e2e2f5743b98bc4e9b7f726b342d8f0c5ea43744e5c; ucas_sso_c0_ss=CkEKBTEuMC4wEIiIkvirrOHsYBjmJiC9k9DP4oyUBCiwITC39dDb7fTPB0DsiuaGBkjsvqKJBlCOvKLE77ansWBYbhIUtAA8VK2j6e3rNeErWjH8DgLTusg; ucas_sso_c0=CkEKBTEuMC4wEIiIkvirrOHsYBjmJiC9k9DP4oyUBCiwITC39dDb7fTPB0DsiuaGBkjsvqKJBlCOvKLE77ansWBYbhIUtAA8VK2j6e3rNeErWjH8DgLTusg; ucas_c0_ss=CkEKBTEuMC4wEISIh4LFquHsYBjmJiC9k9DP4oyUBCiwITC39dDb7fTPB0DtiuaGBkjtvqKJBlCOvKLE77ansWBYbhIUW5zoGPqAfCOgljJMo1C38jEuxXU; sid_guard=e57a8c80525e8c0ed19010416cada4b5%7C1624868205%7C5184000%7CFri%2C+27-Aug-2021+08%3A16%3A45+GMT; uid_tt=77d00870f7e450b238e44daad9c2ce4b; uid_tt_ss=77d00870f7e450b238e44daad9c2ce4b; sid_tt=e57a8c80525e8c0ed19010416cada4b5; sessionid=e57a8c80525e8c0ed19010416cada4b5; sessionid_ss=e57a8c80525e8c0ed19010416cada4b5; ucas_c0=CkEKBTEuMC4wEISIh4LFquHsYBjmJiC9k9DP4oyUBCiwITC39dDb7fTPB0DtiuaGBkjtvqKJBlCOvKLE77ansWBYbhIUW5zoGPqAfCOgljJMo1C38jEuxXU; PHPSESSID=4509fb9e486ea387dd36c94c3300d730; PHPSESSID_SS=4509fb9e486ea387dd36c94c3300d730; login_info=%7B%22for_im_reply%22%3A%224509fb9e486ea387dd36c94c3300d730%22%7D; __G_CREATE_VERIFY_PASS__=9050819; gftoken=ZTU3YThjODA1MnwxNjI0ODY4MjE5MTN8fDAGBgYGBgY; Hm_lpvt_b6520b076191ab4b36812da4c90f7a5e=1624868264; tt_scid=UdcHHkJ0VryryaO30UGOPrdEqaM70FrV6n5xUCKx17Y27H1b.8HjmzE2PXTyrHxL62c8; MONITOR_WEB_ID=4292110529608375; gfpart_1.0.0.2541_75650=0
|
||
|
||
response = (HttpWebResponse)request.GetResponse();
|
||
}
|
||
catch (WebException ex)
|
||
{
|
||
if (ex.Status == WebExceptionStatus.ProtocolError)
|
||
{
|
||
response = (HttpWebResponse)ex.Response;
|
||
result = DouYinHttpWebRequest.ReadResponse(response);
|
||
return result;
|
||
}
|
||
else return ex.Message;
|
||
}
|
||
catch (Exception e)
|
||
{
|
||
if (response != null) response.Close();
|
||
return e.Message;
|
||
}
|
||
result = DouYinHttpWebRequest.ReadResponse(response);
|
||
return result;
|
||
}
|
||
#endregion
|
||
|
||
#region 买手号
|
||
public void GetServiceBuyUsers()
|
||
{
|
||
string url = BaseClass.Build29WxObjString("user_login_cookies");
|
||
string data = "&act=get&site_id=99";
|
||
string html = GetHtml.PostUtf8(url, UserLogin.GetSignaturex() + data);
|
||
if (html == "")
|
||
{
|
||
return;
|
||
}
|
||
var code = JObject.Parse(html)["code"];
|
||
if (code.ToString() != "200")
|
||
{
|
||
return;
|
||
}
|
||
|
||
var jArr = JObject.Parse(html)["data"];
|
||
if (jArr.Count() == 0)
|
||
{
|
||
return;
|
||
}
|
||
List<System.Net.Cookie> cookie = new List<System.Net.Cookie>();
|
||
foreach (JObject jObj in jArr)
|
||
{
|
||
string buyuser = jObj.ToString();
|
||
PddBuyUser pddBuyUsers = new PddBuyUser();
|
||
string name = BaseRegex.GetStringJson(ref buyuser, "user_name");
|
||
string cookies = BaseRegex.GetStringJson(ref buyuser, "cookies");
|
||
string uid = BaseRegex.GetStringJson(ref buyuser, "user_id");
|
||
string site_id = BaseRegex.GetStringJson(ref buyuser, "site_id");
|
||
if (site_id == "0")
|
||
{
|
||
pddBuyUsers.AddBuyUserCookies(uid, name, cookies);
|
||
}
|
||
else if (site_id == "1")
|
||
{
|
||
new TaoBaoBuyUser().AddBuyUserCookies(uid, name, cookies);
|
||
}
|
||
else if (site_id == "3")
|
||
{
|
||
new ALBuyUser().AddBuyUserCookies(uid, name, cookies);
|
||
}
|
||
}
|
||
ResetUserList();
|
||
}
|
||
public void ReflashBuyUsers()
|
||
{
|
||
Invoke(new delegateView(ResetUserList));
|
||
}
|
||
private void ResetUserList()
|
||
{
|
||
Thread.Sleep(100);
|
||
Invoke(new Action(() =>
|
||
{
|
||
var currentPddBuyUser = cbpddBuyUser.SelectedItem?.ToString();
|
||
var currentTbBuyUser = cbtbBuyUser.SelectedItem?.ToString();
|
||
var current1688BuyUser = cb1688BuyUser.SelectedItem?.ToString();
|
||
var currentPddPifaUser = cmbPddPifaBuyUser.SelectedItem?.ToString();
|
||
cbpddBuyUser.Items.Clear();
|
||
cbtbBuyUser.Items.Clear();
|
||
cb1688BuyUser.Items.Clear();
|
||
cmbPddPifaBuyUser.Items.Clear();
|
||
try
|
||
{
|
||
foreach (KeyValuePair<BuyNumber, UserCookies> item in PddBuyUser.buyUserCookies)//拍单买手号
|
||
{
|
||
if (!cbpddBuyUser.Items.Contains("点击下拉切换"))
|
||
{
|
||
cbpddBuyUser.Items.Add("点击下拉切换");
|
||
cbpddBuyUser.SelectedIndex = 0;
|
||
}
|
||
ComboboxItem cbitem = new ComboboxItem();
|
||
cbitem.Text = item.Key.name;
|
||
cbitem.Value = item.Value.uid;
|
||
cbpddBuyUser.Items.Add(cbitem);
|
||
if (currentPddBuyUser == item.Key.name)
|
||
cbpddBuyUser.SelectedItem = cbitem;
|
||
}
|
||
foreach (KeyValuePair<BuyNumber, UserCookies> item in TaoBaoBuyUser.buyUserCookies)
|
||
{
|
||
if (!cbtbBuyUser.Items.Contains("点击下拉切换"))
|
||
{
|
||
cbtbBuyUser.Items.Add("点击下拉切换");
|
||
cbtbBuyUser.SelectedIndex = 0;
|
||
}
|
||
ComboboxItem cbitem = new ComboboxItem();
|
||
cbitem.Text = item.Key.name;
|
||
cbitem.Value = item.Value.uid;
|
||
cbtbBuyUser.Items.Add(cbitem);
|
||
if (currentTbBuyUser == item.Key.name)
|
||
cbtbBuyUser.SelectedItem = cbitem;
|
||
}
|
||
foreach (KeyValuePair<BuyNumber, UserCookies> item in ALBuyUser.buyUserCookies)
|
||
{
|
||
if (!cb1688BuyUser.Items.Contains("点击下拉切换"))
|
||
{
|
||
cb1688BuyUser.Items.Add("点击下拉切换");
|
||
cb1688BuyUser.SelectedIndex = 0;
|
||
}
|
||
ComboboxItem cbitem = new ComboboxItem();
|
||
cbitem.Text = item.Key.name;
|
||
cbitem.Value = item.Value.uid;
|
||
cb1688BuyUser.Items.Add(cbitem);
|
||
if (current1688BuyUser == item.Key.name)
|
||
cb1688BuyUser.SelectedItem = cbitem;
|
||
}
|
||
foreach (PddPifaShopInfo item in GlobalConfig.LstPddPifaShop)
|
||
{
|
||
if (!cmbPddPifaBuyUser.Items.Contains("点击下拉切换"))
|
||
{
|
||
cmbPddPifaBuyUser.Items.Add("点击下拉切换");
|
||
cmbPddPifaBuyUser.SelectedIndex = 0;
|
||
}
|
||
ComboboxItem cbitem = new ComboboxItem();
|
||
cbitem.Text = item.PddId;
|
||
cbitem.Value = item.PddShopName;
|
||
cmbPddPifaBuyUser.Items.Add(cbitem);
|
||
if (currentPddPifaUser == item.PddId)
|
||
cmbPddPifaBuyUser.SelectedItem = cbitem;
|
||
}
|
||
}
|
||
catch
|
||
{
|
||
}
|
||
}));
|
||
}
|
||
public void PddSelectedItem(string pdduid)
|
||
{
|
||
Invoke(new Action(() =>
|
||
{
|
||
for (int i = 0; i < cbpddBuyUser.Items.Count; i++)
|
||
{
|
||
if (cbpddBuyUser.Items[i].ToString() == "点击下拉切换")
|
||
{
|
||
continue;
|
||
}
|
||
|
||
if (pdduid == (cbpddBuyUser.Items[i] as ComboboxItem).Value.ToString())
|
||
{
|
||
cbpddBuyUser.SelectedIndex = i;
|
||
}
|
||
}
|
||
cbpddBuyUser_SelectedIndexChanged(cbpddBuyUser, null);
|
||
}));
|
||
}
|
||
public void cbpddBuyUser_SelectedIndexChanged(object sender, EventArgs e)
|
||
{
|
||
if (cbpddBuyUser.Text != "点击下拉切换" && cbpddBuyUser.SelectedItem != null)
|
||
{
|
||
BaseClass.PddUid = (cbpddBuyUser.SelectedItem as ComboboxItem).Value.ToString();
|
||
if (BaseClass.PddUid == "")
|
||
{
|
||
MessageBox.Show("未选择买手");
|
||
return;
|
||
}
|
||
PddBuyUser s = new PddBuyUser();
|
||
s.Set(BaseClass.PddUid, "", 0);
|
||
}
|
||
}
|
||
|
||
private void lb_Click(object sender, EventArgs e)
|
||
{
|
||
if (cbpddBuyUser.Text != "点击下拉切换")
|
||
{
|
||
DelBuyer(cbpddBuyUser.Text, (cbpddBuyUser.SelectedItem as ComboboxItem).Value.ToString(), 0);
|
||
}
|
||
|
||
}
|
||
|
||
private void cbtbBuyUser_SelectedIndexChanged(object sender, EventArgs e)
|
||
{
|
||
if (cbtbBuyUser.Text != "点击下拉切换" && cbtbBuyUser.SelectedItem != null)
|
||
{
|
||
BaseClass.TaoBaoUid = (cbtbBuyUser.SelectedItem as ComboboxItem).Value.ToString();
|
||
if (string.IsNullOrEmpty(BaseClass.TaoBaoUid))
|
||
{
|
||
MessageBox.Show("未选择买手");
|
||
return;
|
||
}
|
||
TaoBaoBuyUser s = new TaoBaoBuyUser();
|
||
s.SetTaoBao(BaseClass.TaoBaoUid, 1);
|
||
}
|
||
}
|
||
private void lbtaobao_Click(object sender, EventArgs e)
|
||
{
|
||
if (cbtbBuyUser.Text != "点击下拉切换")
|
||
{
|
||
DelBuyer(cbtbBuyUser.Text, (cbtbBuyUser.SelectedItem as ComboboxItem).Value.ToString(), 1);
|
||
}
|
||
}
|
||
|
||
private void cb1688BuyUser_SelectedIndexChanged(object sender, EventArgs e)
|
||
{
|
||
if (cb1688BuyUser.Text != "点击下拉切换" && cb1688BuyUser.SelectedItem != null)
|
||
{
|
||
BaseClass.ALUid = (cb1688BuyUser.SelectedItem as ComboboxItem).Value.ToString();
|
||
if (BaseClass.ALUid == "")
|
||
{
|
||
MessageBox.Show("未选择买手");
|
||
return;
|
||
}
|
||
Task.Run(() =>
|
||
{
|
||
ALBuyUser s = new ALBuyUser();
|
||
s.SetAL(BaseClass.ALUid, 3);
|
||
});
|
||
}
|
||
}
|
||
private void lb1688_Click(object sender, EventArgs e)
|
||
{
|
||
if (cb1688BuyUser.Text != "点击下拉切换")
|
||
{
|
||
DelBuyer(cb1688BuyUser.Text, (cb1688BuyUser.SelectedItem as ComboboxItem).Value.ToString(), 3);
|
||
}
|
||
}
|
||
|
||
public bool DelBuyer(string name, string uid, int site_id)
|
||
{
|
||
BuyNumber buynumber = new BuyNumber(site_id, uid, name);
|
||
if (site_id == 0)
|
||
{
|
||
new PddBuyUser().DelCookies(buynumber);
|
||
cbpddBuyUser.Items.RemoveAt(cbpddBuyUser.SelectedIndex);
|
||
cbpddBuyUser.Text = "点击下拉切换";
|
||
}
|
||
else if (site_id == 1)
|
||
{
|
||
new TaoBaoBuyUser().DelCookies(buynumber);
|
||
cbtbBuyUser.Items.Remove(cbtbBuyUser.SelectedIndex);
|
||
cbtbBuyUser.Text = "点击下拉切换";
|
||
}
|
||
else if (site_id == 3)
|
||
{
|
||
new ALBuyUser().DelCookies(buynumber);
|
||
cb1688BuyUser.Items.Remove(cb1688BuyUser.SelectedIndex);
|
||
cb1688BuyUser.Text = "点击下拉切换";
|
||
}
|
||
else if (site_id == 7)
|
||
{
|
||
GlobalConfig.LstPddPifaShop.RemoveAll(s => s.PddId == cmbPddPifaBuyUser.Text || s.PddShopName == cmbPddPifaBuyUser.Text);
|
||
cmbPddPifaBuyUser.Items.Remove(cmbPddPifaBuyUser.SelectedIndex);
|
||
cmbPddPifaBuyUser.Text = "点击下拉切换";
|
||
}
|
||
string code = "200";
|
||
// 拼多多批发店铺买手保存在本地,无需服务端记录
|
||
if (site_id != 7)
|
||
{
|
||
string url = BaseClass.Build29WxObjString("user_login_cookies&act=delete");
|
||
string data = UserLogin.GetSignaturex() + "&site_id=" + site_id + "&user_name=" + name;
|
||
string html = GetHtml.PostUtf8(url, data);
|
||
code = JObject.Parse(html)["code"].ToString();
|
||
}
|
||
ResetUserList();
|
||
if (code != "200")
|
||
{
|
||
MessageBox.Show("删除失败");
|
||
return false;
|
||
}
|
||
MessageBox.Show("删除成功");
|
||
return true;
|
||
}
|
||
|
||
#endregion
|
||
|
||
#region 订单插旗
|
||
/// <summary>
|
||
/// 插旗
|
||
/// </summary>
|
||
/// <param name="orderid">订单编号</param>
|
||
/// <param name="color">颜色</param>
|
||
/// <param name="type">1待拍单 2待发货 3已完成 4 售后</param>
|
||
/// <param name="shopid">店铺ID</param>
|
||
public void chaqi(string orderid, int color, string shopid)
|
||
{
|
||
ShopLoginInfo shop = GlobalConfig.ShopLoginList.FirstOrDefault(x => x.ShopId == shopid);
|
||
if (shop != null)
|
||
{
|
||
DouyinApi apix = new DouyinApi(shop);
|
||
Dictionary<string, string> dic = new Dictionary<string, string>() { };
|
||
dic.Add("shop_order_id", orderid);
|
||
apix.JsonData = dic;
|
||
string htmljm = apix.GetOrderDetail();
|
||
//{"code":40003,"err_no":30002,"log_id":"202112081416140101330381040002D034","message":"access_token已过期","msg":"非法的参数","sub_code":"isv.access-token-expired","sub_msg":"access_token已过期"}
|
||
string code = JObject.Parse(htmljm)["code"].ToString();
|
||
string remark = "";
|
||
if (code == "10000")
|
||
{
|
||
try
|
||
{
|
||
remark = JObject.Parse(htmljm)["data"]["shop_order_detail"]["seller_words"].ToString();
|
||
}
|
||
catch (Exception ex)
|
||
{
|
||
|
||
}
|
||
}
|
||
DouYinOrderModel dyorder = null;
|
||
dyorder = CollectionClass.orderDataList.Find(x => x.order_id == orderid);
|
||
if (dyorder == null)
|
||
{
|
||
dyorder = CollectionClass.orderSenderDataList.Find(x => x.order_id == orderid);
|
||
if (dyorder == null)
|
||
{
|
||
dyorder = CollectionClass.successOrderDataList.Find(x => x.order_id == orderid);
|
||
}
|
||
}
|
||
if (dyorder != null)
|
||
{
|
||
if (!remark.Contains("||") && !remark.Contains("~"))
|
||
{
|
||
remark = remark + "||" + dyorder.buyer_mobile + "~" + dyorder.order_id_buy;
|
||
}
|
||
if (htmljm.Contains("access_token已过期"))
|
||
{
|
||
shop.ApiAuthStatus = "未授权";
|
||
if (string.IsNullOrEmpty(dyorder.send_order_error_msg))
|
||
dyorder.send_order_error_msg = "店铺未授权或授权过期";
|
||
}
|
||
}
|
||
dic = new Dictionary<string, string>() { };
|
||
dic.Add("order_id", orderid);
|
||
dic.Add("is_add_star", "true");
|
||
dic.Add("star", color.ToString());
|
||
dic.Add("remark", remark);
|
||
apix.JsonData = dic;
|
||
string htmls = apix.AddOrderRemark();
|
||
|
||
StringBuilder sb = new StringBuilder();
|
||
sb.Append("&order_id=" + orderid);
|
||
sb.Append("&remark=" + remark);
|
||
sb.Append("&seller_star=" + color);
|
||
sb.Append("&is_update_order=0");//1修改状态0不修改状态
|
||
string upjmurl = BaseClass.Build29WxObjString("order&act=update");
|
||
string param = UserLogin.GetSignaturex() + sb.ToString();
|
||
string html = GetHtml.PostUtf8(upjmurl, param);
|
||
if (html == null || !html.Contains("\"code\":200"))
|
||
{
|
||
Thread.Sleep(5000);
|
||
param = UserLogin.GetSignaturex() + sb.ToString();
|
||
html = GetHtml.PostUtf8(upjmurl, param);
|
||
}
|
||
if (html == null || !html.Contains("\"code\":200"))
|
||
{
|
||
BaseMsgForm.ShowError("订单插旗失败,请手动插旗!");
|
||
}
|
||
}
|
||
}
|
||
#endregion
|
||
|
||
public string GetProvince(string pid)
|
||
{
|
||
string path = "temp/province";
|
||
//string url = "http://apiv4.yangkeduo.com/api/galen/v2/regions/" + pid + "?pdduid=1635501584" /*+ BaseClass.PddUid*/;
|
||
string url = "http://apiv4.yangkeduo.com/api/galen/v2/regions/" + pid + "?pdduid=" + PddUid;
|
||
string refere = BaseClass.PddMobileUrlx + "addresses.html";
|
||
string html = "", file = path + "/" + pid + ".king";
|
||
|
||
if (FileBase.Exists(file))
|
||
html = FileBase.ReadAllText(file, Encoding.UTF8);
|
||
if (string.IsNullOrEmpty(html) || (!string.IsNullOrEmpty(html) && html.Contains("错误")))
|
||
{
|
||
html = GetPostTaobaoHtml.UploadTaobao(url, refere, true);
|
||
if (html.Contains("错误"))
|
||
{
|
||
Thread.Sleep(5 * 1000);
|
||
html = GetPostTaobaoHtml.UploadTaobao(url, refere, true);
|
||
}
|
||
if (!html.Contains("错误"))
|
||
{
|
||
FileBase.WriteAllText(file, html, Encoding.UTF8);
|
||
}
|
||
Thread.Sleep(200);
|
||
}
|
||
return html;
|
||
}
|
||
|
||
private void panel1_MouseUp(object sender, MouseEventArgs e)
|
||
{
|
||
isMouseDown = false;
|
||
}
|
||
|
||
private void panel1_MouseDown(object sender, MouseEventArgs e)
|
||
{
|
||
if (e.Button == MouseButtons.Left)
|
||
{
|
||
mouseOffset = new Point(-e.X, -e.Y);
|
||
isMouseDown = true;
|
||
}
|
||
}
|
||
|
||
private void panel1_MouseMove(object sender, MouseEventArgs e)
|
||
{
|
||
if (isMouseDown && this.Width < Screen.PrimaryScreen.WorkingArea.Width)
|
||
{
|
||
// 获取鼠标的位置
|
||
Point mousePos = MousePosition;
|
||
mousePos.Offset(mouseOffset.X, mouseOffset.Y);
|
||
Location = mousePos;
|
||
}
|
||
}
|
||
|
||
|
||
private void panel1_DoubleClick(object sender, EventArgs e)
|
||
{
|
||
|
||
if (this.WindowState == FormWindowState.Maximized)
|
||
this.WindowState = FormWindowState.Normal;
|
||
else
|
||
this.WindowState = FormWindowState.Maximized;
|
||
}
|
||
|
||
//网页读取订单
|
||
//private void panelEx1_Click(object sender, EventArgs e)
|
||
//{
|
||
// if (cefWebBrowser == null)
|
||
// return;
|
||
// if (panelEx1.Text == "显示")
|
||
// {
|
||
// panelEx1.Text = "隐藏";
|
||
// cefWebBrowser.BringToFront();
|
||
// }
|
||
// else
|
||
// {
|
||
// panelEx1.Text = "显示";
|
||
// cefWebBrowser.SendToBack();
|
||
// }
|
||
//}
|
||
|
||
private void pnlExportExcel_Click(object sender, EventArgs e)
|
||
{
|
||
switch (panelpe.Name)
|
||
{
|
||
case "pnlWaitingBuyOrder":
|
||
buyOrderListForm.outexcel();
|
||
break;
|
||
case "pnlWaitingDeliverGoods":
|
||
sendOrderForms.outexcel();
|
||
break;
|
||
case "pnlSuccess":
|
||
successOrderListForm.outexcel();
|
||
break;
|
||
case "pnlAfterSale":
|
||
break;
|
||
}
|
||
MessageBox.Show("导出完成");
|
||
}
|
||
|
||
private void dgvShop_CellContentClick(object sender, DataGridViewCellEventArgs e)
|
||
{
|
||
if (e.ColumnIndex < 0 || e.RowIndex < 0)
|
||
return;
|
||
|
||
string text = dgvShop.Columns[e.ColumnIndex].HeaderText;
|
||
string name = dgvShop.Columns[e.ColumnIndex].Name;
|
||
if (text == "店铺账号")
|
||
{
|
||
string shopname = dgvShop.Rows[e.RowIndex].Cells[e.ColumnIndex].Value.ToString();
|
||
ShopLoginInfo shop = GlobalConfig.ShopLoginList.FirstOrDefault(x => x.LoginName == shopname);
|
||
ShopBrower shopBrower = new ShopBrower();
|
||
shopBrower.TitleText = "店铺后台";
|
||
shopBrower.shop = shop;
|
||
shopBrower.WindowState = FormWindowState.Maximized;
|
||
shopBrower.webUrl = "https://fxg.jinritemai.com/ffa/morder/order/list";
|
||
shopBrower.Show();
|
||
}
|
||
if (name == "colSelect")
|
||
{
|
||
dgvShop.Rows[e.RowIndex].Cells["colSelect"].Value = !dgvShop.Rows[e.RowIndex].Cells["colSelect"].Value.ParseToBool();
|
||
}
|
||
|
||
}
|
||
|
||
#region 刷新cookies
|
||
public void ReflashCookies()
|
||
{
|
||
try
|
||
{
|
||
while (true)
|
||
{
|
||
if (string.IsNullOrEmpty(BaseClass.ChromeUserAgent))
|
||
{
|
||
Thread.Sleep(300);
|
||
}
|
||
Thread.Sleep(300);
|
||
if (InvokeRequired)
|
||
{
|
||
Invoke(new delegateView(GetCookies));
|
||
}
|
||
Thread.Sleep(300);
|
||
string cookie = "";
|
||
string jinbaocookie = "";
|
||
for (int i = 0; i < cookies.Count; i++)//初始化COOKIES缓存
|
||
{
|
||
var c = cookies[i];
|
||
if (c == null)
|
||
{
|
||
continue;
|
||
}
|
||
string mainDomain = GetHtml.GetMainDomain(c.Domain);
|
||
if (BaseClass.CookiesAll.ContainsKey(mainDomain))
|
||
{
|
||
if (BaseClass.CookiesAll[mainDomain].ContainsKey(c.Name))
|
||
BaseClass.CookiesAll[mainDomain][c.Name] = c.Value;
|
||
else
|
||
BaseClass.CookiesAll[mainDomain].Add(c.Name, c.Value);
|
||
}
|
||
else
|
||
{
|
||
BaseClass.CookiesAll.Add(mainDomain, new Dictionary<string, string>());
|
||
BaseClass.CookiesAll[mainDomain].Add(c.Name, c.Value);
|
||
}
|
||
//if (!c.Domain.Contains("pinduoduo.com"))
|
||
// continue;
|
||
cookie += c.Name + "=" + c.Value + "; ";
|
||
if (c.Domain.Contains("pinduoduo.com"))
|
||
{
|
||
jinbaocookie += c.Name + "=" + c.Value + "; ";
|
||
}
|
||
}
|
||
BaseClass.ChromeCookies = cookie;
|
||
BaseClass.ChromeJinBaoCookies = jinbaocookie;
|
||
foreach (KeyValuePair<string, Dictionary<string, string>> co in BaseClass.CookiesAll)//同步到系统
|
||
{
|
||
string cook = "";
|
||
foreach (KeyValuePair<string, string> c in co.Value)
|
||
{
|
||
if (c.Key == "x5sec")
|
||
{
|
||
if (!string.IsNullOrEmpty(c.Value))
|
||
{
|
||
cook += c.Key + "=" + c.Value + "; ";
|
||
}
|
||
else if (!string.IsNullOrEmpty(BaseClass.x5Sec))
|
||
{
|
||
cook += c.Key + "=" + BaseClass.x5Sec + "; ";
|
||
}
|
||
else
|
||
{
|
||
cook += c.Key + "=" + c.Value + "; ";
|
||
}
|
||
}
|
||
else
|
||
{
|
||
cook += c.Key + "=" + c.Value + "; ";
|
||
}
|
||
}
|
||
if (BaseClass.CookiesAllString.ContainsKey(co.Key))
|
||
BaseClass.CookiesAllString[co.Key] = cook;
|
||
else
|
||
BaseClass.CookiesAllString.Add(co.Key, cook);
|
||
}
|
||
string mainDomainx = "yangkeduo.com";
|
||
string tbDomainx = "taobao.com";
|
||
string alDomainx = "1688.com";
|
||
if (BaseClass.CookiesAll.ContainsKey(mainDomainx) && BaseClass.CookiesAll[mainDomainx].ContainsKey("pdd_user_id"))
|
||
{
|
||
BuyForms.BuyBrower.Uid = BaseClass.CookiesAll[mainDomainx]["pdd_user_id"];
|
||
BuyOrderForms.PddUid = BaseClass.CookiesAll[mainDomainx]["pdd_user_id"];
|
||
BaseClass.PddUid = BaseClass.CookiesAll[mainDomainx]["pdd_user_id"];
|
||
}
|
||
if (BaseClass.CookiesAll.ContainsKey(tbDomainx) && BaseClass.CookiesAll[tbDomainx].ContainsKey("aui"))
|
||
{
|
||
BuyForms.BuyBrower.Uid = BaseClass.CookiesAll[tbDomainx]["aui"];
|
||
BuyOrderForms.PddUid = BaseClass.CookiesAll[tbDomainx]["aui"];
|
||
BaseClass.TaoBaoUid = BaseClass.CookiesAll[tbDomainx]["aui"];
|
||
}
|
||
if (BaseClass.CookiesAll.ContainsKey(alDomainx) && BaseClass.CookiesAll[alDomainx].ContainsKey("unb"))
|
||
{
|
||
BuyForms.BuyBrower.Uid = BaseClass.CookiesAll[alDomainx]["unb"];
|
||
BuyOrderForms.PddUid = BaseClass.CookiesAll[alDomainx]["unb"];
|
||
BaseClass.ALUid = BaseClass.CookiesAll[alDomainx]["unb"];
|
||
}
|
||
Thread.Sleep(100);
|
||
}
|
||
}
|
||
catch (Exception)
|
||
{
|
||
|
||
}
|
||
}
|
||
|
||
/// <summary>
|
||
/// 获取cookies
|
||
/// </summary>
|
||
private void GetCookies()
|
||
{
|
||
cookies.Clear();
|
||
var cookieManager = Cef.GetGlobalCookieManager();
|
||
CookieVisitor visitor = new CookieVisitor();
|
||
visitor.SendCookie += visitor_SendCookie;
|
||
cookieManager.VisitAllCookies(visitor);
|
||
}
|
||
|
||
|
||
public List<CefSharp.Cookie> cookies = new List<CefSharp.Cookie>();
|
||
/// <summary>
|
||
/// 加载完成时,重设cookies
|
||
/// </summary>
|
||
/// <param name="obj"></param>
|
||
private void visitor_SendCookie(CefSharp.Cookie obj)
|
||
{
|
||
cookies.Add(obj);
|
||
}
|
||
|
||
#endregion
|
||
|
||
private void pbseting_Click(object sender, EventArgs e)
|
||
{
|
||
SetForm setf = new SetForm();
|
||
setf.ShowDialog();
|
||
}
|
||
|
||
List<DevComponents.DotNetBar.Controls.CheckBoxX> list_cb = null;
|
||
private void cbAfterSale_CheckedChanged(object sender, EventArgs e)
|
||
{
|
||
list_cb = new List<DevComponents.DotNetBar.Controls.CheckBoxX>() {
|
||
checkBoxX1,checkBoxX2,checkBoxX3
|
||
};
|
||
string afterSalestatus = ",";
|
||
foreach (var item in list_cb)
|
||
{
|
||
if (item.Checked == true)
|
||
{
|
||
afterSalestatus += item.Text + ",";
|
||
}
|
||
}
|
||
afterSaleOrderListForm.AfterSaleWhere(afterSalestatus);
|
||
}
|
||
|
||
private void panel1_DoubleClick_1(object sender, EventArgs e)
|
||
{
|
||
if (this.Width == Screen.PrimaryScreen.WorkingArea.Width)
|
||
{
|
||
this.Width = 1325;
|
||
this.Height = 668;
|
||
splitMain.SplitterDistance = 107;
|
||
this.Top = DefaultTop;
|
||
this.Left = DefaultLeft;
|
||
}
|
||
else
|
||
{
|
||
// this.WindowState = FormWindowState.Maximized;
|
||
SetFormMax(this);
|
||
splitMain.SplitterDistance = 107;
|
||
}
|
||
}
|
||
|
||
public virtual void SetFormMax(Form frm)
|
||
{
|
||
frm.Top = 0;
|
||
frm.Left = 0;
|
||
frm.Width = Screen.PrimaryScreen.WorkingArea.Width;
|
||
frm.Height = Screen.PrimaryScreen.WorkingArea.Height;
|
||
}
|
||
|
||
private void cbsuccess_CheckedChanged(object sender, EventArgs e)
|
||
{
|
||
list_cb = new List<DevComponents.DotNetBar.Controls.CheckBoxX>() {
|
||
cbNotSigned,cbSignedIn,cbcancel
|
||
};
|
||
string successOrderstatus = ",";
|
||
foreach (var item in list_cb)
|
||
{
|
||
if (item.Checked == true)
|
||
{
|
||
successOrderstatus += item.Text + ",";
|
||
}
|
||
}
|
||
successOrderListForm.successOrderWhere(successOrderstatus);
|
||
}
|
||
|
||
|
||
private void pictureBox1_Click(object sender, EventArgs e)
|
||
{
|
||
}
|
||
|
||
public void skuimg(Bitmap skuImg)
|
||
{
|
||
pnsku.BringToFront();
|
||
pcskuimg.Image = skuImg;
|
||
pnsku.Visible = true;
|
||
}
|
||
public void skuimghide()
|
||
{
|
||
pnsku.Visible = false;
|
||
}
|
||
|
||
private void tborder_Click(object sender, EventArgs e)
|
||
{
|
||
}
|
||
|
||
private void pnlFactoryOrder_Click(object sender, EventArgs e)
|
||
{
|
||
if (!string.IsNullOrEmpty(txtFactoryExportProductId.Text))
|
||
{
|
||
FactoryExportForm ff = new FactoryExportForm();
|
||
ff.productIdList = this.txtFactoryExportProductId.Text.Split(new string[] { ",", "," }, StringSplitOptions.RemoveEmptyEntries).ToList();
|
||
ff.ShowDialog();
|
||
}
|
||
}
|
||
|
||
public BuyForms.BuyBrower buyBrower1 = new BuyForms.BuyBrower();
|
||
private void pnlLoginBuyin_Click(object sender, EventArgs e)
|
||
{
|
||
buyBrower1.webtype = 99;
|
||
buyBrower1.Width = 1280;
|
||
buyBrower1.Height = 768;
|
||
buyBrower1.webUrl = "https://buyin.jinritemai.com/dashboard/merch-picking-hall";
|
||
//buyBrower1.webUrl = "https://buyin.jinritemai.com/mpa/account/login?log_out=1&type=24&target_url=/dashboard/merch-picking-hall";
|
||
buyBrower1.Show();
|
||
buyBrower1.BuyBrower_Load(null, null);
|
||
}
|
||
|
||
int lbvClickTimes = 0;
|
||
private void lbv_Click(object sender, EventArgs e)
|
||
{
|
||
}
|
||
private void lbv_MouseDown(object sender, MouseEventArgs e)
|
||
{
|
||
if (cefJuLiangWebBrowser != null)
|
||
{
|
||
if (lbvClickTimes == 10)
|
||
{
|
||
cefJuLiangWebBrowser.BringToFront();
|
||
lbvClickTimes = 0;
|
||
}
|
||
else
|
||
{
|
||
lbvClickTimes += 1;
|
||
cefJuLiangWebBrowser.SendToBack();
|
||
}
|
||
}
|
||
}
|
||
|
||
private void chkHasLogisticsThenSend_CheckedChanged(object sender, EventArgs e)
|
||
{
|
||
GlobalConfig.SystemSettings.IsHasLogisticsThenSend = chkHasLogisticsThenSend.Checked;
|
||
StartUp.SaveSystemSettings();
|
||
}
|
||
|
||
public void RefreshTabaoAliCookies()
|
||
{
|
||
if (cefWebBrowser == null)
|
||
{
|
||
cefTaoBaoAliRefreshWebBrowser = CEFBrowser.CreateChromiumWebBrowser("about:blank", false);
|
||
cefTaoBaoAliRefreshWebBrowser.KeyboardHandler = new KeyboardHandler();
|
||
cefTaoBaoAliRefreshWebBrowser.FrameLoadEnd += TaoBaoAliRefreshWebBrowser_FrameLoadEnd;
|
||
cefTaoBaoAliRefreshWebBrowser.Dock = DockStyle.Fill;
|
||
//var t = CEFBrowser.SetCookieAsync("jinritemai.com", shop.Cookies, cefWebBrowser.RequestContext.GetCookieManager(null));
|
||
splitMain.Panel2.Controls.Add(cefTaoBaoAliRefreshWebBrowser);
|
||
cefTaoBaoAliRefreshWebBrowser.SendToBack();
|
||
}
|
||
|
||
DateTime nextRefreshTime = DateTime.Now.AddSeconds(10);
|
||
|
||
Task.Run(() =>
|
||
{
|
||
while (true)
|
||
{
|
||
Thread.Sleep(10);
|
||
if (cefTaoBaoAliRefreshWebBrowser == null || !cefTaoBaoAliRefreshWebBrowser.IsBrowserInitialized)
|
||
continue;
|
||
if (DateTime.Now < nextRefreshTime)
|
||
continue;
|
||
nextRefreshTime = DateTime.Now.AddMinutes(12);
|
||
|
||
try
|
||
{
|
||
// 淘宝cookie刷新
|
||
var keys = TaoBaoBuyUser.buyUserCookies.Select(s => s.Key);
|
||
foreach (var key in keys)
|
||
{
|
||
continue;
|
||
if (TaoBaoBuyUser.buyUserCookies.Keys.Contains(key))
|
||
{
|
||
var user = TaoBaoBuyUser.buyUserCookies[key];
|
||
CEFBrowser.DeleteCookie(cefTaoBaoAliRefreshWebBrowser.RequestContext.GetCookieManager(null));
|
||
CEFBrowser.SetCookieAsync(Work.Helper.CEFHelper.CefCookieToCookieStr(user.Cookies), cefTaoBaoAliRefreshWebBrowser.RequestContext.GetCookieManager(null));
|
||
cefTaoBaoAliRefreshWebBrowser.Load("https://buyertrade.taobao.com/trade/itemlist/list_bought_items.htm");
|
||
while (cefTaoBaoAliRefreshWebBrowser.IsLoading)
|
||
{
|
||
Thread.Sleep(1000);
|
||
}
|
||
Thread.Sleep(5000);
|
||
Task<string> task = cefTaoBaoAliRefreshWebBrowser.GetBrowser().MainFrame.GetSourceAsync();
|
||
task.Wait(10000);
|
||
if (task.Result.Contains("所有订单"))
|
||
{
|
||
user.Cookies = CEFBrowser.GetCookieList("taobao.com", cefTaoBaoAliRefreshWebBrowser.RequestContext.GetCookieManager(null));
|
||
Thread.Sleep(1000);
|
||
}
|
||
}
|
||
Thread.Sleep(1000);
|
||
}
|
||
// 阿里cookie刷新
|
||
keys = ALBuyUser.buyUserCookies.Select(s => s.Key);
|
||
foreach (var key in keys)
|
||
{
|
||
if (ALBuyUser.buyUserCookies.Keys.Contains(key))
|
||
{
|
||
var user = ALBuyUser.buyUserCookies[key];
|
||
CEFBrowser.DeleteCookie(cefTaoBaoAliRefreshWebBrowser.RequestContext.GetCookieManager(null));
|
||
CEFBrowser.SetCookieAsync(Work.Helper.CEFHelper.CefCookieToCookieStr(user.Cookies), cefTaoBaoAliRefreshWebBrowser.RequestContext.GetCookieManager(null));
|
||
cefTaoBaoAliRefreshWebBrowser.Load("https://work.1688.com/home/buyer.htm?_path_=buyer2017Base/2017buyerbase_trade/buyList");
|
||
while (cefTaoBaoAliRefreshWebBrowser.IsLoading)
|
||
{
|
||
Thread.Sleep(1000);
|
||
}
|
||
Thread.Sleep(5000);
|
||
Task<string> task = cefTaoBaoAliRefreshWebBrowser.GetBrowser().MainFrame.GetSourceAsync();
|
||
task.Wait(10000);
|
||
if (task.Result.Contains("我的阿里"))
|
||
{
|
||
user.Cookies = CEFBrowser.GetCookieList("1688.com", cefTaoBaoAliRefreshWebBrowser.RequestContext.GetCookieManager(null));
|
||
user.Cookies = user.Cookies.Where(c => c.Domain.StartsWith(".1688")).ToList();
|
||
Thread.Sleep(1000);
|
||
}
|
||
}
|
||
Thread.Sleep(1000);
|
||
}
|
||
}
|
||
catch
|
||
{
|
||
}
|
||
}
|
||
});
|
||
}
|
||
|
||
private void TaoBaoAliRefreshWebBrowser_FrameLoadEnd(object sender, FrameLoadEndEventArgs e)
|
||
{
|
||
}
|
||
|
||
int lbnameClickTimes = 0;
|
||
private void lbname_Click(object sender, EventArgs e)
|
||
{
|
||
}
|
||
private void lbname_MouseDown(object sender, MouseEventArgs e)
|
||
{
|
||
if (cefTaoBaoAliRefreshWebBrowser != null)
|
||
{
|
||
if (lbnameClickTimes == 10)
|
||
{
|
||
cefTaoBaoAliRefreshWebBrowser.BringToFront();
|
||
lbnameClickTimes = 0;
|
||
}
|
||
else
|
||
{
|
||
lbnameClickTimes += 1;
|
||
cefTaoBaoAliRefreshWebBrowser.SendToBack();
|
||
}
|
||
}
|
||
}
|
||
|
||
/// <summary>
|
||
/// 批量设置订单完成
|
||
/// </summary>
|
||
/// <param name="sender"></param>
|
||
/// <param name="e"></param>
|
||
private void pnlSetSendOrder_Click(object sender, EventArgs e)
|
||
{
|
||
pnlSetSendOrder.Enabled = false;
|
||
OpenFileDialog fileDialog = new OpenFileDialog();
|
||
fileDialog.Title = "选择文件";
|
||
fileDialog.Filter = "All files (*.*)|*.*";
|
||
fileDialog.FilterIndex = 1;
|
||
fileDialog.RestoreDirectory = true;
|
||
if (fileDialog.ShowDialog() != DialogResult.OK)
|
||
{
|
||
pnlSetSendOrder.Enabled = true;
|
||
return;
|
||
}
|
||
ProgressForm pf = new ProgressForm();
|
||
pf.SetText("正在设置订单");
|
||
pf.Show();
|
||
pf.TopMost = true;
|
||
Task.Run(() =>
|
||
{
|
||
string[] arrTmp = FileBase.ReadAllLines(fileDialog.FileName, FileBase.GetFileEncoding(fileDialog.FileName));
|
||
if (arrTmp == null || arrTmp.Length == 0)
|
||
return;
|
||
for (int i = 0; i < arrTmp.Length; i++)
|
||
{
|
||
try
|
||
{
|
||
StringBuilder sb = new StringBuilder();
|
||
sb.Append("&order_id=" + arrTmp[i]);
|
||
sb.Append("&order_status_buy=" + 0);
|
||
sb.Append("&is_update_order=1"); // 1修改状态0不修改状态
|
||
string upjmurl = BaseClass.Build29WxObjString("order&act=update");
|
||
string html = GetHtml.PostUtf8(upjmurl, UserLogin.GetSignaturex() + sb.ToString());
|
||
string code = JObject.Parse(html)["code"].ToString();
|
||
|
||
Invoke(new Action(() =>
|
||
{
|
||
pf.SetText("已设置订单:" + (i + 1) + "/" + arrTmp.Length);
|
||
pf.SetProGress(i + 1, arrTmp.Length);
|
||
}));
|
||
}
|
||
catch
|
||
{
|
||
}
|
||
Thread.Sleep(50);
|
||
}
|
||
Thread.Sleep(500);
|
||
Invoke(new Action(() =>
|
||
{
|
||
pf.SetText("设置完成,3秒后自动退出");
|
||
}));
|
||
Thread.Sleep(3000);
|
||
Invoke(new Action(() =>
|
||
{
|
||
pf.Close();
|
||
pnlSetSendOrder.Enabled = true;
|
||
}));
|
||
});
|
||
}
|
||
|
||
private void pnlEditTableHeaders_Click(object sender, EventArgs e)
|
||
{
|
||
switch (panelpe.Name)
|
||
{
|
||
case "pnlWaitingBuyOrder":
|
||
buyOrderListForm.SetDgvHeaders();
|
||
break;
|
||
case "pnlWaitingDeliverGoods":
|
||
sendOrderForms.SetDgvHeaders();
|
||
break;
|
||
case "pnlSuccess":
|
||
successOrderListForm.SetDgvHeaders();
|
||
break;
|
||
case "pnlAfterSale":
|
||
afterSaleOrderListForm.SetDgvHeaders();
|
||
break;
|
||
}
|
||
}
|
||
|
||
private void button1_Click(object sender, EventArgs e)
|
||
{
|
||
//3513538240521087498
|
||
|
||
var shop = GlobalConfig.ShopLoginList.FirstOrDefault(s => s.ShopId == "20445141");
|
||
if (shop == null)
|
||
return;
|
||
//\"shop_order_list\":[]
|
||
Dictionary<string, string> dic = new Dictionary<string, string>() { };
|
||
dic.Add("size", "1");
|
||
dic.Add("page", "1");
|
||
dic.Add("product", "3491447318656455133");
|
||
dic["create_time_start"] = BaseClass.DateTimeToTimestampSeconds(DateTime.Now.AddDays(-1)).ToString();
|
||
dic.Add("create_time_end", BaseClass.DateTimeToTimestampSeconds(DateTime.Now).ToString());
|
||
dic.Add("order_by", "create_time");
|
||
//if (status > 0)
|
||
// dic.Add("combine_status", "{\"order_status\":\"" + status + "\"}");
|
||
//dic.Add("combine_status", "{\"main_status\":2}");
|
||
DouyinApi apix = new DouyinApi(shop);
|
||
apix.JsonData = dic;
|
||
BaseClass.ShopId = shop.ShopId;
|
||
BaseClass.ShopName = shop.ShopAccount;
|
||
|
||
string html = apix.GetOrderList();
|
||
for (int i = 0; i < 5 && html.Contains("系统繁忙,请稍后重试"); i++)
|
||
{
|
||
Thread.Sleep(1000);
|
||
html = apix.GetOrderList();
|
||
}
|
||
}
|
||
|
||
private void lblContactSupport_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
|
||
{
|
||
SupportQrCodeForm qrForm = new SupportQrCodeForm();
|
||
qrForm.ShowDialog();
|
||
}
|
||
|
||
private void chkReadFinish_CheckedChanged(object sender, EventArgs e)
|
||
{
|
||
AfterSaleOrderListForm.IsReadFinishedRefund = this.chkReadFinishedRefund.Checked;
|
||
ConfigHelper.SaveConfig("read_finished_refund", AfterSaleOrderListForm.IsReadFinishedRefund);
|
||
|
||
afterSaleOrderListForm.SetFinishOrderVisible();
|
||
}
|
||
|
||
private void chkReadFinishedRefund_Click(object sender, EventArgs e)
|
||
{
|
||
}
|
||
|
||
private void pnlSetReceiveAddress_Click(object sender, EventArgs e)
|
||
{
|
||
TransitAddressForm f = new TransitAddressForm();
|
||
f.ShowDialog();
|
||
}
|
||
|
||
private void btnLoginPddPifa_Click(object sender, EventArgs e)
|
||
{
|
||
PddShopLoginForm shopBrower = new PddShopLoginForm();
|
||
shopBrower.isPifaLogin = true;
|
||
var pddPifaUser = GlobalConfig.LstPddPifaShop.FirstOrDefault(s => s.PddId == cmbPddPifaBuyUser.Text || s.PddShopName == cmbPddPifaBuyUser.Text);
|
||
if (pddPifaUser != null)
|
||
shopBrower.pddShop = pddPifaUser;
|
||
shopBrower.Show();
|
||
}
|
||
|
||
private void lbDelPddPifa_Click(object sender, EventArgs e)
|
||
{
|
||
if (cmbPddPifaBuyUser.Text != "点击下拉切换")
|
||
{
|
||
DelBuyer(cmbPddPifaBuyUser.Text, (cmbPddPifaBuyUser.SelectedItem as ComboboxItem).Value.ToString(), 7);
|
||
}
|
||
}
|
||
|
||
private void chkUsePddPifa_CheckedChanged(object sender, EventArgs e)
|
||
{
|
||
GlobalConfig.SystemSettings.IsUsePddPifa = chkUsePddPifa.Checked;
|
||
StartUp.SaveSystemSettings();
|
||
|
||
if (chkUsePddPifa.Checked)
|
||
chkUseMultiBuyer.Checked = false;
|
||
}
|
||
|
||
private void chkUseMultiBuyer_CheckedChanged(object sender, EventArgs e)
|
||
{
|
||
GlobalConfig.SystemSettings.IsUseMultiBuyer = chkUseMultiBuyer.Checked;
|
||
StartUp.SaveSystemSettings();
|
||
|
||
if (chkUseMultiBuyer.Checked)
|
||
chkUsePddPifa.Checked = false;
|
||
}
|
||
|
||
private void pnlSetMutliBuyer_Click(object sender, EventArgs e)
|
||
{
|
||
PddMultiBuyerForm f = new PddMultiBuyerForm();
|
||
f.ShowDialog();
|
||
}
|
||
|
||
private void splitMain_Panel2_Paint(object sender, PaintEventArgs e)
|
||
{
|
||
|
||
}
|
||
|
||
private void btn电子面单测试_Click(object sender, EventArgs e)
|
||
{
|
||
foreach (ShopLoginInfo shop in GlobalConfig.ShopLoginList)
|
||
{
|
||
if (shop.ShopAccount == "开箱小店")
|
||
{
|
||
DouyinApi api = new DouyinApi(shop);
|
||
api.CreateOrder();
|
||
}
|
||
}
|
||
}
|
||
|
||
private void button2_Click(object sender, EventArgs e)
|
||
{
|
||
//flowLayoutPanel2.BringToFront();
|
||
//Task.Run(() =>
|
||
//{
|
||
// for (int i = 0; i < 10000; i++)
|
||
// {
|
||
// Invoke(new Action(() => { this.flowLayoutPanel2.Controls.Add(new MyProSkuItemsControl()); }));
|
||
// if (i % 100 == 0)
|
||
// Thread.Sleep(1);
|
||
|
||
// }
|
||
//});
|
||
}
|
||
}
|
||
}
|