876 lines
42 KiB
C#
876 lines
42 KiB
C#
using AllBase;
|
|
using AllBase.DouYinModel.Result;
|
|
using AllBase.Helper;
|
|
using AllBase.Model.Result;
|
|
using _29WxOrder.BuyForms;
|
|
using NaiBa.Util.Extension;
|
|
using Newtonsoft.Json;
|
|
using Newtonsoft.Json.Linq;
|
|
using System;
|
|
using System.Collections.Generic;
|
|
using System.ComponentModel;
|
|
using System.Data;
|
|
using System.Drawing;
|
|
using System.Linq;
|
|
using System.Text;
|
|
using System.Threading;
|
|
using System.Threading.Tasks;
|
|
using System.Windows.Forms;
|
|
using Work;
|
|
using Work.Api;
|
|
using Work.BaseForms;
|
|
using Work.BuyUsers;
|
|
using AllBase.Model.DBModel;
|
|
|
|
namespace _29WxOrder.OrderForms
|
|
{
|
|
public partial class SuccessOrderListForm : Form
|
|
{
|
|
public MainForm mainform;
|
|
bool refresh = false;
|
|
|
|
public SuccessOrderListForm()
|
|
{
|
|
InitializeComponent();
|
|
}
|
|
|
|
private void SuccessOrderListForm_Load(object sender, EventArgs e)
|
|
{
|
|
SetDgvHeaders(false);
|
|
RefreshServerOrder();
|
|
}
|
|
|
|
public void RefreshServerOrder()
|
|
{
|
|
if (refresh == false)
|
|
{
|
|
Task.Run(() => { ReadServerOrder(); });
|
|
}
|
|
else
|
|
{
|
|
BaseMsgForm.ShowInfo("正在读取中");
|
|
}
|
|
}
|
|
int page = 0;
|
|
int pagecount = 0;
|
|
void ReadServerOrder(bool scrollpage = false)
|
|
{
|
|
refresh = true;
|
|
if (!scrollpage)
|
|
{
|
|
page = 0;
|
|
pagecount = 0;
|
|
Invoke(new Action(() =>
|
|
{
|
|
DgvSuccessOrderList.Rows.Clear();
|
|
}));
|
|
CollectionClass.successOrderDataList.Clear();
|
|
}
|
|
|
|
List<DouYinOrderModel> orderList = new List<DouYinOrderModel>();
|
|
List<ShopLoginInfo> shopList = new List<ShopLoginInfo>();
|
|
|
|
string urlx = BaseClass.LoginApiUrl + "?obj=douyin/order&act=get";
|
|
string datax = "&order_status_buy=0,4&page=" + page + "&pageSize=100";
|
|
string html = GetHtml.PostUtf8(urlx, UserLogin.GetSignaturex("", "") + datax);
|
|
if (string.IsNullOrEmpty(html) || !html.Contains("\"data\"") || !html.Contains("\"list\""))
|
|
{
|
|
refresh = false;
|
|
return;
|
|
}
|
|
if (string.IsNullOrEmpty(JObject.Parse(html)["data"].ToString()))
|
|
{
|
|
refresh = false;
|
|
return;
|
|
}
|
|
pagecount = Math.Ceiling((JObject.Parse(html)["data"]["count"].ToString().ParseToInt() / 100.0).ParseToDecimal()).ParseToInt();
|
|
var jArr = JObject.Parse(html)["data"]["list"];
|
|
foreach (JObject jObj in jArr)
|
|
{
|
|
string orderStr = jObj.ToString();
|
|
DouYinOrderModel douYinOrderModel = JsonConvert.DeserializeObject<DouYinOrderModel>(orderStr.Replace("\r\n", ""));
|
|
|
|
CollectionClass.successOrderDataList.Add(douYinOrderModel);
|
|
orderList.Add(douYinOrderModel);
|
|
|
|
ShopLoginInfo shop = GlobalConfig.ShopLoginList.FirstOrDefault(x => x.ShopId == douYinOrderModel.shop_id.ToString());
|
|
if (shop != null && douYinOrderModel.order_status != 4) // 订单状态不为4的放入列表,后面按时间段查询更新订单。
|
|
{
|
|
if (!shopList.Contains(shop))
|
|
shopList.Add(shop);
|
|
|
|
#region 废弃
|
|
//DouyinApi dyapi = new DouyinApi(shop);
|
|
//Dictionary<string, string> dic = new Dictionary<string, string>() { };
|
|
//dic.Add("shop_order_id", douYinOrderModel.order_id);
|
|
//dyapi.JsonData = dic;
|
|
//string htmljm = dyapi.GetOrderDetail();
|
|
//if (!string.IsNullOrEmpty(htmljm) && (htmljm.Contains("\"message\":\"success\"") || htmljm.Contains("\"code\":10000")))
|
|
//{
|
|
// try
|
|
// {
|
|
// string oStatus = JObject.Parse(htmljm)["data"]["shop_order_detail"]["order_status"].ToString();
|
|
//
|
|
// StringBuilder sb = new StringBuilder();
|
|
// sb.Append("&order_id=" + douYinOrderModel.order_id);
|
|
// sb.Append("&order_status=" + oStatus);
|
|
//
|
|
// var skuorderlist = JObject.Parse(htmljm)["data"]["shop_order_detail"]["sku_order_list"];
|
|
// foreach (JObject skuorderdetail in skuorderlist)
|
|
// {
|
|
// string detailjson = skuorderdetail.ToString();
|
|
// var detailObj = JObject.Parse(detailjson);
|
|
// if (detailObj["order_id"].ToString() == douYinOrderModel.order_id)
|
|
// {
|
|
// sb.Append("&is_comment=" + detailObj["is_comment"].ToString());
|
|
// break;
|
|
// }
|
|
// }
|
|
//
|
|
// string url = BaseClass.Build29WxObjString("order&act=update");
|
|
// var result = GetHtml.PostUtf8(url, UserLogin.GetSignaturex() + sb.ToString());
|
|
// douYinOrderModel.order_status = Convert.ToInt32(oStatus);
|
|
// }
|
|
// catch (Exception ex)
|
|
// {
|
|
// }
|
|
//}
|
|
#endregion
|
|
}
|
|
|
|
AddDgvRowByDouYinOrderModel(douYinOrderModel);
|
|
}
|
|
|
|
var startTime = Convert.ToDateTime(orderList.Min(o => o.create_time));
|
|
var endTime = Convert.ToDateTime(orderList.Max(o => o.create_time));
|
|
var shopIds = shopList.Select(s => s.ShopId).ToList();
|
|
|
|
// 读取状态不是已完成的订单,如果状态发生改变,修改订单状态。
|
|
UpdateFinishOrder(shopIds, orderList, startTime.AddSeconds(-5), endTime.AddSeconds(5));
|
|
scrollpage = false;
|
|
refresh = false;
|
|
|
|
if (page < 5 && pagecount > page)
|
|
{
|
|
Task.Run(() =>
|
|
{
|
|
while (readorderthread != null && !readorderthread.IsCompleted)
|
|
Thread.Sleep(100);
|
|
successOrderListDgv_Scroll(null, null);
|
|
});
|
|
}
|
|
}
|
|
|
|
void AddDgvRowByDouYinOrderModel(DouYinOrderModel douYinOrderModel)
|
|
{
|
|
TimeSpan ts1 = new TimeSpan(Convert.ToDateTime((douYinOrderModel.create_time.Contains("2000") ? DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") : douYinOrderModel.create_time)).Ticks);
|
|
TimeSpan ts2 = new TimeSpan(DateTime.Now.AddHours(-48).Ticks);
|
|
TimeSpan ts = ts1.Subtract(ts2).Duration();
|
|
|
|
Bitmap skuImg = BuyOrderListForm.GetSkuImage(douYinOrderModel.sku_img);
|
|
|
|
Invoke(new Action(() =>
|
|
{
|
|
try
|
|
{
|
|
var orderstatus = GetOrderStatusDescribe(douYinOrderModel);
|
|
DataGridViewRow r = new DataGridViewRow();
|
|
r.Cells.Add(new DataGridViewTextBoxCell() { Value = douYinOrderModel.shop_id, }); /*"店铺编号"*/
|
|
r.Cells.Add(new DataGridViewTextBoxCell() { Value = douYinOrderModel.shop_name, }); /*"店铺名称"*/
|
|
r.Cells.Add(new DataGridViewTextBoxCell() { Value = douYinOrderModel.title, });
|
|
r.Cells.Add(new DataGridViewTextBoxCell() { Value = string.IsNullOrEmpty(douYinOrderModel.default_up_ids) ? douYinOrderModel.up_product_id : douYinOrderModel.default_up_ids }); /*"上家ID"*/
|
|
r.Cells.Add(new DataGridViewTextBoxCell() { Value = douYinOrderModel.product_id, }); /*"本店ID"*/
|
|
r.Cells.Add(new DataGridViewTextBoxCell() { Value = douYinOrderModel.c_biz_desc, }); /*"商品描述"*/
|
|
r.Cells.Add(new DataGridViewTextBoxCell() { Value = douYinOrderModel.sku, }); /*"规格"*/
|
|
r.Cells.Add(new DataGridViewImageCell() { Value = skuImg, }); /*"图片"*/
|
|
r.Cells.Add(new DataGridViewTextBoxCell() { Value = douYinOrderModel.price, }); /*"售价"*/
|
|
r.Cells.Add(new DataGridViewTextBoxCell() { Value = douYinOrderModel.buy_price, }); /*"进价"*/
|
|
r.Cells.Add(new DataGridViewTextBoxCell() { Value = string.IsNullOrEmpty(douYinOrderModel.commission_scale) || douYinOrderModel.c_biz_desc != "精选联盟" ? "0.00" : douYinOrderModel.commission_scale, }); /*"佣金比例"*/
|
|
r.Cells.Add(new DataGridViewTextBoxCell() { Value = string.IsNullOrEmpty(douYinOrderModel.commission) || douYinOrderModel.c_biz_desc != "精选联盟" ? "0.00" : douYinOrderModel.commission, }); /*"佣金"*/
|
|
r.Cells.Add(new DataGridViewTextBoxCell() { Value = SendOrderListForms.GetLirun(douYinOrderModel), }); /*"利润"*/
|
|
r.Cells.Add(new DataGridViewTextBoxCell() { Value = douYinOrderModel.count, }); /*"数量"*/
|
|
r.Cells.Add(new DataGridViewLinkCell() { Value = douYinOrderModel.order_id, }); /*"买家订单号"*/
|
|
r.Cells.Add(new DataGridViewTextBoxCell() { Value = douYinOrderModel.name, }); /*"买家姓名"*/
|
|
r.Cells.Add(new DataGridViewTextBoxCell() { Value = "******", }); /*"买家姓名fake"*/
|
|
r.Cells.Add(new DataGridViewTextBoxCell() { Value = douYinOrderModel.mobile, }); /*"买家电话"*/
|
|
r.Cells.Add(new DataGridViewTextBoxCell() { Value = "******", }); /*"买家电话"fake*/
|
|
r.Cells.Add(new DataGridViewTextBoxCell() { Value = douYinOrderModel.address, }); /*"买家地址"*/
|
|
r.Cells.Add(new DataGridViewTextBoxCell() { Value = "******", }); /*"买家地址fake"*/
|
|
r.Cells.Add(new DataGridViewTextBoxCell() { Value = douYinOrderModel.create_time, }); /*"订单确认时间"*/
|
|
r.Cells.Add(new DataGridViewTextBoxCell() { Value = Convert.ToDateTime(douYinOrderModel.create_time).AddHours(48).ToString("yyyy-MM-dd HH:mm:ss"), }); /*"延迟发货时间"*/
|
|
r.Cells.Add(new DataGridViewTextBoxCell() { Value = (ts2 > ts1 ? "超 " : "") + ts.Days.ToString("D2") + "天" + ts.Hours.ToString("D2") + "时" + ts.Minutes.ToString("D2") + "分", }); /*"延迟剩余"*/
|
|
r.Cells.Add(new DataGridViewTextBoxCell() { Value = douYinOrderModel.buy_time.ParseToDateTime() <= new DateTime(2021, 1, 1, 1, 1, 1) ? "--" : douYinOrderModel.buy_time, }); /*"拍单时间"*/
|
|
r.Cells.Add(new DataGridViewLinkCell() { Value = douYinOrderModel.order_id_buy, }); /*"拍单订单号"*/
|
|
r.Cells.Add(new DataGridViewTextBoxCell() { Value = orderstatus, }); /*"订单状态"*/
|
|
r.Cells.Add(new DataGridViewTextBoxCell() { Value = douYinOrderModel.buyer_mobile, }); /*"买手号"*/
|
|
r.Cells.Add(new DataGridViewTextBoxCell() { Value = douYinOrderModel.express_name, }); /*"物流公司"*/
|
|
r.Cells.Add(new DataGridViewTextBoxCell() { Value = douYinOrderModel.express_no, }); /*"物流单号"*/
|
|
r.Cells.Add(new DataGridViewTextBoxCell() { Value = douYinOrderModel.is_evaluate_status == 1 ? "已催评" : "未催评", });
|
|
r.Cells.Add(new DataGridViewTextBoxCell() { Value = douYinOrderModel.is_comment == 1 ? "已评价" : "未评价", }); /*"是否评价"*/
|
|
r.Cells.Add(new DataGridViewTextBoxCell() { Value = douYinOrderModel.remark, });
|
|
DgvSuccessOrderList.Rows.Add(r);
|
|
|
|
if (whereStatus.Contains("已签收"))
|
|
{
|
|
r.Visible = orderstatus.Contains("已完成");
|
|
}
|
|
else if (whereStatus.Contains("未签收") && !whereStatus.Contains("已签收"))
|
|
{
|
|
r.Visible = orderstatus.Contains("已完成");
|
|
}
|
|
|
|
if (orderstatus.Contains("已取消"))
|
|
{
|
|
r.Visible = false;
|
|
}
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
}
|
|
}));
|
|
}
|
|
|
|
string GetOrderStatusDescribe(DouYinOrderModel douYinOrderModel)
|
|
{
|
|
string orderstatus = "";
|
|
// 订单状态
|
|
// 1 待确认/ 待支付(订单创建完毕)
|
|
// 105 已支付
|
|
// 2 备货中
|
|
// 101 部分发货
|
|
// 3 已发货(全部发货)
|
|
// 4 已取消
|
|
// 5 已完成(已收货)
|
|
switch (douYinOrderModel.order_status)
|
|
{
|
|
case 1:
|
|
orderstatus = "待确认/ 待支付";
|
|
break;
|
|
case 105:
|
|
orderstatus = "已支付";
|
|
break;
|
|
case 2:
|
|
orderstatus = "备货中";
|
|
break;
|
|
case 101:
|
|
orderstatus = "部分发货";
|
|
break;
|
|
case 3:
|
|
orderstatus = "已发货(全部发货)";
|
|
break;
|
|
case 4:
|
|
orderstatus = "已取消";
|
|
break;
|
|
case 5:
|
|
orderstatus = "已完成(已收货)";
|
|
break;
|
|
}
|
|
return orderstatus;
|
|
}
|
|
|
|
|
|
public bool isOrderReading = false;
|
|
void UpdateFinishOrder(List<string> shopIds, List<DouYinOrderModel> orderList, DateTime startTime, DateTime endTime)
|
|
{
|
|
try
|
|
{
|
|
if (isOrderReading)
|
|
{
|
|
return;
|
|
}
|
|
isOrderReading = true;
|
|
//string url = BaseClass.ApiUrl + "/do";
|
|
Task.Run(() =>
|
|
{
|
|
try
|
|
{
|
|
foreach (ShopLoginInfo shop in GlobalConfig.ShopLoginList)
|
|
{
|
|
if (!shopIds.Contains(shop.ShopId) || shop.ApiAuthStatus != "授权成功")
|
|
continue;
|
|
|
|
int size = 100;
|
|
int totalcount = 100;
|
|
int page = 0;
|
|
|
|
downpage:
|
|
Dictionary<string, string> dic = new Dictionary<string, string>() { };
|
|
dic["size"] = size.ToString();
|
|
dic["page"] = page.ToString();
|
|
dic["create_time_start"] = BaseClass.DateTimeToTimestampSeconds(startTime).ToString();
|
|
dic["create_time_end"] = BaseClass.DateTimeToTimestampSeconds(endTime).ToString();
|
|
dic["order_by"] = "create_time";
|
|
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();
|
|
}
|
|
|
|
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;
|
|
}
|
|
|
|
try
|
|
{
|
|
DouOrderListInfo.OrderData orderListInfo = JsonConvert.DeserializeObject<DouOrderListInfo.OrderListResponse>(html).data;
|
|
// todo: 修改订单
|
|
foreach (var order in orderListInfo.shop_order_list)
|
|
{
|
|
foreach (var childOrder in order.sku_order_list)
|
|
{
|
|
var successOrder = CollectionClass.successOrderDataList.FirstOrDefault(o => o.order_id == childOrder.order_id);
|
|
if (successOrder != null && successOrder.order_status != 4)
|
|
{
|
|
successOrder.is_comment = childOrder.is_comment;
|
|
successOrder.order_status = order.order_status;
|
|
|
|
StringBuilder sb = new StringBuilder();
|
|
sb.Append("&order_id=" + successOrder.order_id);
|
|
sb.Append("&order_status=" + successOrder.order_status);
|
|
sb.Append("&is_comment=" + successOrder.is_comment);
|
|
var url = BaseClass.Build29WxObjString("order&act=update");
|
|
var result = GetHtml.PostUtf8(url, UserLogin.GetSignaturex() + sb.ToString());
|
|
var row = this.DgvSuccessOrderList.Rows.Cast<DataGridViewRow>().FirstOrDefault(r => r.Cells["col_order_id"].Value.ToString() == successOrder.order_id);
|
|
if (row != null)
|
|
{
|
|
Invoke(new Action(() =>
|
|
{
|
|
var orderstatus = GetOrderStatusDescribe(successOrder);
|
|
row.Cells["order_Status"].Value = orderstatus;
|
|
row.Cells["is_comment"].Value = successOrder.is_comment == 1 ? "已评价" : "未评价";
|
|
|
|
if (whereStatus.Contains("已签收"))
|
|
{
|
|
row.Visible = orderstatus.Contains("已完成");
|
|
}
|
|
else if (whereStatus.Contains("未签收") && !whereStatus.Contains("已签收"))
|
|
{
|
|
row.Visible = orderstatus.Contains("已完成");
|
|
}
|
|
|
|
if (orderstatus.Contains("已取消"))
|
|
{
|
|
row.Visible = false;
|
|
}
|
|
}));
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
if (orderListInfo.total > totalcount)
|
|
{
|
|
page++;
|
|
totalcount += orderListInfo.shop_order_list.Count;
|
|
goto downpage;
|
|
}
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
}
|
|
}
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
NaiBa.Util.Helper.LogHelper.WriteWithTime(ex.Message);
|
|
}
|
|
isOrderReading = false;
|
|
});
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
isOrderReading = false;
|
|
}
|
|
}
|
|
|
|
public bool SelectOrder(string order_id)
|
|
{
|
|
IEnumerable<DataGridViewRow> enumerableList = this.DgvSuccessOrderList.Rows.Cast<DataGridViewRow>();
|
|
bool isexist = false;
|
|
for (int i = 0; i < DgvSuccessOrderList.Rows.Count; i++)
|
|
{
|
|
string orderid = DgvSuccessOrderList.Rows[i].Cells["col_order_id"].Value.ToString();
|
|
string ordermobile = DgvSuccessOrderList.Rows[i].Cells["col_mobile"].Value.ToString();
|
|
string orderusername = DgvSuccessOrderList.Rows[i].Cells["col_name"].Value.ToString();
|
|
string title = DgvSuccessOrderList.Rows[i].Cells["col_title"].Value.ToString();
|
|
string productId = DgvSuccessOrderList.Rows[i].Cells["col_product_id"].Value.ToString();
|
|
string buyOrderNumber = DgvSuccessOrderList.Rows[i].Cells["buyOrderNum"].Value.ToString();
|
|
if (string.IsNullOrEmpty(order_id) || orderid.Contains(order_id) || ordermobile.Contains(order_id) || orderusername.Contains(order_id) ||
|
|
title.Contains(order_id) || productId.Contains(order_id) || buyOrderNumber.Contains(order_id))
|
|
{
|
|
DgvSuccessOrderList.Rows[i].Visible = true;
|
|
isexist = true;
|
|
}
|
|
else
|
|
{
|
|
DgvSuccessOrderList.Rows[i].Visible = false;
|
|
}
|
|
}
|
|
return isexist;
|
|
}
|
|
|
|
private void successOrderListDgv_CellMouseEnter(object sender, DataGridViewCellEventArgs e)
|
|
{
|
|
if (e.RowIndex < 0 || e.ColumnIndex < 0)
|
|
return;
|
|
|
|
try
|
|
{
|
|
var orderId = DgvSuccessOrderList.Rows[e.RowIndex].Cells["col_order_id"].Value?.ToString();
|
|
var order = CollectionClass.successOrderDataList.FirstOrDefault(x => x.order_id == orderId);
|
|
if (order != null)
|
|
{
|
|
if (DgvSuccessOrderList.Rows[e.RowIndex].Cells[e.ColumnIndex] == DgvSuccessOrderList.Rows[e.RowIndex].Cells["productImgSku"])
|
|
{
|
|
var original = Image.FromStream(System.Net.WebRequest.Create(order.sku_img).GetResponse().GetResponseStream());
|
|
var skuImg = new Bitmap(original, new Size(216, 216));
|
|
mainform.skuimg(skuImg);
|
|
}
|
|
else
|
|
{
|
|
mainform.skuimghide();
|
|
}
|
|
}
|
|
}
|
|
catch (Exception)
|
|
{
|
|
}
|
|
}
|
|
|
|
string whereStatus = ",";
|
|
public void successOrderWhere(string status)
|
|
{
|
|
whereStatus = status;
|
|
for (int i = 0; i < DgvSuccessOrderList.Rows.Count; i++)
|
|
{
|
|
string aftersale_stutas = DgvSuccessOrderList.Rows[i].Cells["order_Status"].Value.ToString();
|
|
|
|
if (status == ",")
|
|
{
|
|
DgvSuccessOrderList.Rows[i].Visible = true;
|
|
}
|
|
else
|
|
{
|
|
if (status.Contains("已签收") && status.Contains("未签收"))
|
|
{
|
|
continue;
|
|
}
|
|
if (status.Contains("已签收"))
|
|
{
|
|
if (aftersale_stutas.Contains("已完成"))
|
|
{
|
|
DgvSuccessOrderList.Rows[i].Visible = true;
|
|
}
|
|
else
|
|
{
|
|
DgvSuccessOrderList.Rows[i].Visible = false;
|
|
}
|
|
}
|
|
else if (status.Contains("未签收"))
|
|
{
|
|
if (aftersale_stutas.Contains("已完成"))
|
|
{
|
|
DgvSuccessOrderList.Rows[i].Visible = false;
|
|
}
|
|
else
|
|
{
|
|
DgvSuccessOrderList.Rows[i].Visible = true;
|
|
}
|
|
}
|
|
}
|
|
|
|
if (status.Contains("已取消"))
|
|
{
|
|
if (aftersale_stutas.Contains("已取消"))
|
|
{
|
|
DgvSuccessOrderList.Rows[i].Visible = true;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (aftersale_stutas.Contains("已取消"))
|
|
{
|
|
DgvSuccessOrderList.Rows[i].Visible = false;
|
|
}
|
|
}
|
|
|
|
|
|
}
|
|
}
|
|
|
|
private void successOrderListDgv_CellMouseLeave(object sender, DataGridViewCellEventArgs e)
|
|
{
|
|
if (e.RowIndex != -1)
|
|
{
|
|
if (e.RowIndex % 2 == 0)
|
|
{
|
|
DgvSuccessOrderList.Rows[e.RowIndex].DefaultCellStyle.BackColor = Color.FromArgb(244, 244, 244);
|
|
}
|
|
else
|
|
{
|
|
DgvSuccessOrderList.Rows[e.RowIndex].DefaultCellStyle.BackColor = Color.White;
|
|
}
|
|
}
|
|
}
|
|
|
|
private void successOrderListDgv_CellContentClick(object sender, DataGridViewCellEventArgs e)
|
|
{
|
|
|
|
if (e.ColumnIndex < 0 || e.RowIndex < 0)
|
|
return;
|
|
string name = DgvSuccessOrderList.Columns[e.ColumnIndex].HeaderText;
|
|
string orderid = DgvSuccessOrderList.Rows[e.RowIndex].Cells["col_order_id"].Value.ToString();
|
|
string shopid = DgvSuccessOrderList.Rows[e.RowIndex].Cells["col_shop_id"].Value.ToString();
|
|
if (name == "拍单订单号")
|
|
{
|
|
string orderurl = "";
|
|
string buyOrderId = "";
|
|
if (DgvSuccessOrderList.Rows[e.RowIndex].Cells["col_order_id"].Value != null)
|
|
{
|
|
buyOrderId = DgvSuccessOrderList.Rows[e.RowIndex].Cells["col_order_id"].Value.ToString();
|
|
}
|
|
|
|
string buyOrderNum = DgvSuccessOrderList.Rows[e.RowIndex].Cells["buyOrderNum"].Value.ToString();
|
|
DouYinOrderModel douyinModel = CollectionClass.successOrderDataList.Find(x => x.order_id == buyOrderId);
|
|
if (douyinModel != null)
|
|
{
|
|
string buycookies = "";
|
|
if (buyOrderNum.Contains("-"))
|
|
{
|
|
if (douyinModel.buyer_mobile.StartsWith("plbuy_"))
|
|
{
|
|
var pdduid = douyinModel.buyer_mobile.Replace("plbuy_", "");
|
|
var mulitUserCookie = AllBase.Helper.GlobalConfig.LstMultiBuyer.Find(u => u.pdd_user_id == pdduid);
|
|
if (mulitUserCookie == null)
|
|
{
|
|
BaseMsgForm.ShowError("多买手拍单买手号未找到");
|
|
return;
|
|
}
|
|
orderurl = "https://yangkeduo.com/order.html?order_sn=" + buyOrderNum + "&refer_page_name=my_order&refer_page_id=10032_1633690608873_o25zt3yc2e&refer_page_sn=10032";
|
|
BuyProductBrower buyProductBrower = new BuyProductBrower();
|
|
buyProductBrower.TitleText = "拍单订单详情";
|
|
buyProductBrower.Width = 405;
|
|
buyProductBrower.Height = 692;
|
|
buyProductBrower.cookies = "PDDAccessToken=" + mulitUserCookie.cookies + ";";
|
|
buyProductBrower.WebUrl = orderurl;
|
|
buyProductBrower.Show();
|
|
}
|
|
// 拼多多批发订单
|
|
else if (douyinModel.buyer_mobile.StartsWith("pdd"))
|
|
{
|
|
var pddPifaBuyer = AllBase.Helper.GlobalConfig.LstPddPifaShop.FirstOrDefault(s => s.PddId == douyinModel.buyer_mobile);
|
|
if (pddPifaBuyer == null)
|
|
{
|
|
BaseMsgForm.ShowError("拼多多批发拍单买手号未找到");
|
|
return;
|
|
}
|
|
buycookies = pddPifaBuyer.CookieStr;
|
|
orderurl = "https://pifa.pinduoduo.com/order";
|
|
BuyProductBrower buyProductBrower = new BuyProductBrower();
|
|
buyProductBrower.TitleText = "拍单订单列表 " + douyinModel.order_id_buy;
|
|
buyProductBrower.Width = 1280;
|
|
buyProductBrower.Height = 700;
|
|
buyProductBrower.cookies = buycookies;
|
|
buyProductBrower.WebUrl = orderurl;
|
|
buyProductBrower.Show();
|
|
}
|
|
else
|
|
{
|
|
var dicbuyer = PddBuyUser.buyUserCookies.FirstOrDefault(x => x.Value.uid == douyinModel.buyer_mobile_uid);
|
|
if (dicbuyer.Key == null)
|
|
{
|
|
BaseMsgForm.ShowError("拼多多拍单买手号未找到");
|
|
return;
|
|
}
|
|
for (int kk = 0; dicbuyer.Key != null && kk < dicbuyer.Value.Cookies.Count; kk++)
|
|
{
|
|
buycookies += dicbuyer.Value.Cookies[kk].Name + "=" + dicbuyer.Value.Cookies[kk].Value + "; ";
|
|
}
|
|
orderurl = "https://yangkeduo.com/order.html?order_sn=" + buyOrderNum + "&refer_page_name=my_order&refer_page_id=10032_1633690608873_o25zt3yc2e&refer_page_sn=10032";
|
|
BuyProductBrower buyProductBrower = new BuyProductBrower();
|
|
buyProductBrower.TitleText = "拍单订单详情";
|
|
buyProductBrower.Width = 405;
|
|
buyProductBrower.Height = 692;
|
|
buyProductBrower.cookies = buycookies;
|
|
buyProductBrower.WebUrl = orderurl;
|
|
buyProductBrower.Show();
|
|
}
|
|
}
|
|
else
|
|
{
|
|
var upId = this.DgvSuccessOrderList.Rows[e.RowIndex].Cells["col_up_product_id"].Value.ToString();
|
|
if (ALBuyUser.buyUserCookies.Count > 0)
|
|
{
|
|
var dicbuyer = ALBuyUser.buyUserCookies.FirstOrDefault(x => x.Value.UserName == douyinModel.buyer_mobile);
|
|
for (int kk = 0; dicbuyer.Key != null && kk < dicbuyer.Value.Cookies.Count; kk++)
|
|
{
|
|
buycookies += dicbuyer.Value.Cookies[kk].Name + "=" + dicbuyer.Value.Cookies[kk].Value + "; ";
|
|
}
|
|
}
|
|
|
|
if (string.IsNullOrEmpty(buycookies))
|
|
{
|
|
if (TaoBaoBuyUser.buyUserCookies.Count > 0)
|
|
{
|
|
var dicbuyer = TaoBaoBuyUser.buyUserCookies.FirstOrDefault(x => x.Value.UserName == douyinModel.buyer_mobile);
|
|
for (int kk = 0; dicbuyer.Key != null && kk < dicbuyer.Value.Cookies.Count; kk++)
|
|
{
|
|
buycookies += dicbuyer.Value.Cookies[kk].Name + "=" + dicbuyer.Value.Cookies[kk].Value + "; ";
|
|
}
|
|
}
|
|
}
|
|
orderurl = "https://buyertrade.taobao.com/trade/detail/trade_item_detail.htm?bizOrderId=" + buyOrderNum;
|
|
if (upId.StartsWith("al-") || upId.StartsWith("1688-"))
|
|
orderurl = "https://trade.1688.com/order/order_detail.htm?spm=a360q.8274423.0.0.49c84c9apfOGVj&order_id=" + buyOrderNum;
|
|
if (string.IsNullOrEmpty(buycookies))
|
|
{
|
|
BaseMsgForm.ShowConfirm("无此买手号", "提示");
|
|
return;
|
|
}
|
|
BuyProductBrower buyProductBrower = new BuyProductBrower();
|
|
buyProductBrower.TitleText = "拍单订单详情";
|
|
buyProductBrower.buyermobile = douyinModel.buyer_mobile;
|
|
buyProductBrower.Width = 1080;
|
|
buyProductBrower.Height = 700;
|
|
buyProductBrower.cookies = buycookies;
|
|
buyProductBrower.WebUrl = orderurl;
|
|
buyProductBrower.Show();
|
|
}
|
|
}
|
|
}
|
|
else if (name == "订单号")
|
|
{
|
|
ShopLoginInfo shop = GlobalConfig.ShopLoginList.FirstOrDefault(x => x.ShopId == shopid);
|
|
if (shop != null)
|
|
{
|
|
ShopForms.ShopBrower shopBrower = new ShopForms.ShopBrower();
|
|
shopBrower.TitleText = "店铺后台";
|
|
shopBrower.shop = shop;
|
|
shopBrower.WindowState = FormWindowState.Maximized;
|
|
shopBrower.webUrl = "https://fxg.jinritemai.com/ffa/morder/order/detail?id=" + orderid;
|
|
shopBrower.Show();
|
|
}
|
|
}
|
|
|
|
}
|
|
|
|
/// <summary>
|
|
/// 点击行列
|
|
/// </summary>
|
|
private DataGridViewCellMouseEventArgs mouseEvent;
|
|
private void successmenu_click(object sender, EventArgs e)
|
|
{
|
|
ToolStripMenuItem tsmenu = sender as ToolStripMenuItem;
|
|
if (mouseEvent == null)
|
|
{
|
|
return;
|
|
}
|
|
var buyOrderId = DgvSuccessOrderList.Rows[mouseEvent.RowIndex].Cells["col_order_id"].Value.ToString();
|
|
DouYinOrderModel orderDetail;
|
|
switch (tsmenu.Text)
|
|
{
|
|
case "已催评":
|
|
orderDetail = CollectionClass.successOrderDataList.Find(x => x.order_id == buyOrderId);
|
|
if (orderDetail != null)
|
|
{
|
|
orderDetail.is_evaluate_status = 1;
|
|
IEnumerable<DataGridViewRow> enumerableList = this.DgvSuccessOrderList.Rows.Cast<DataGridViewRow>();
|
|
List<DataGridViewRow> list = (from item in enumerableList where item.Cells["col_order_id"].Value.ToString() == buyOrderId select item).ToList();
|
|
if (list.Count > 0)
|
|
{
|
|
StringBuilder sb = new StringBuilder();
|
|
sb.Append("&order_id=" + buyOrderId);
|
|
sb.Append("&is_evaluate_status=1");
|
|
string url = BaseClass.Build29WxObjString("order&act=update");
|
|
GetHtml.PostUtf8(url, UserLogin.GetSignaturex() + sb.ToString());
|
|
var item = DgvSuccessOrderList.Rows[list[0].Index];
|
|
item.Cells["is_evaluate_status"].Value = "已催评";
|
|
}
|
|
}
|
|
break;
|
|
}
|
|
}
|
|
|
|
private void successOrderListDgv_CellMouseDown(object sender, DataGridViewCellMouseEventArgs e)
|
|
{
|
|
try
|
|
{
|
|
mouseEvent = e;
|
|
}
|
|
catch (Exception)
|
|
{
|
|
|
|
}
|
|
}
|
|
|
|
private void colore_clicke(object sender, EventArgs e)
|
|
{
|
|
ToolStripMenuItem tsmenu = sender as ToolStripMenuItem;
|
|
if (mouseEvent == null)
|
|
{
|
|
return;
|
|
}
|
|
var orderId = DgvSuccessOrderList.Rows[mouseEvent.RowIndex].Cells["col_order_id"].Value.ToString();
|
|
var shopid = DgvSuccessOrderList.Rows[mouseEvent.RowIndex].Cells["col_shop_id"].Value.ToString();
|
|
|
|
int color = 3;
|
|
switch (tsmenu.Text)
|
|
{
|
|
case "灰色":
|
|
color = 0;
|
|
break;
|
|
case "紫色":
|
|
color = 1;
|
|
break;
|
|
case "蓝色":
|
|
color = 2;
|
|
break;
|
|
case "绿色":
|
|
color = 3;
|
|
break;
|
|
case "橙色":
|
|
color = 4;
|
|
break;
|
|
case "红色":
|
|
color = 5;
|
|
break;
|
|
}
|
|
mainform.chaqi(orderId, color, shopid);
|
|
}
|
|
|
|
|
|
Task readorderthread = null;
|
|
private void successOrderListDgv_Scroll(object sender, ScrollEventArgs e)
|
|
{
|
|
if (e == null || (e.ScrollOrientation == ScrollOrientation.VerticalScroll && DgvSuccessOrderList.FirstDisplayedScrollingRowIndex > DgvSuccessOrderList.RowCount - 60)) // 垂直滚动条滚动到底部,数据为加载完,则再次加载
|
|
{
|
|
if (pagecount > page)
|
|
{
|
|
if (readorderthread != null)
|
|
{
|
|
if (!readorderthread.IsCompleted)
|
|
{
|
|
return;
|
|
}
|
|
}
|
|
page++;
|
|
|
|
readorderthread = Task.Run(() => { ReadServerOrder(true); });
|
|
}
|
|
}
|
|
}
|
|
|
|
private void 待拍单ToolStripMenuItem_Click(object sender, EventArgs e)
|
|
{
|
|
var order_id = "0";
|
|
if (mouseEvent.RowIndex >= 0)
|
|
order_id = DgvSuccessOrderList.Rows[mouseEvent.RowIndex].Cells["col_order_id"].Value.ToString();
|
|
|
|
DouYinOrderModel dyorderModel = CollectionClass.successOrderDataList.Find(x => x.order_id == order_id);
|
|
if (dyorderModel != null)
|
|
{
|
|
if (!string.IsNullOrEmpty(dyorderModel.express_name) || !string.IsNullOrEmpty(dyorderModel.order_id_buy))
|
|
{
|
|
BaseMsgForm.ShowError("已经实际完成拍单发货的订单不能再回退到未拍单!");
|
|
return;
|
|
}
|
|
}
|
|
|
|
StringBuilder sb = new StringBuilder();
|
|
sb.Append("&order_id=" + order_id);
|
|
sb.Append("&order_status_buy=" + 1);
|
|
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();
|
|
|
|
IEnumerable<DataGridViewRow> enumerableList = this.DgvSuccessOrderList.Rows.Cast<DataGridViewRow>();
|
|
List<DataGridViewRow> list = (from item in enumerableList where item.Cells["col_order_id"].Value.ToString() == order_id select item).ToList();
|
|
if (list.Count > 0)
|
|
this.DgvSuccessOrderList.Rows.Remove(list[0]);
|
|
|
|
CollectionClass.successOrderDataList.RemoveAll(x => x.order_id == order_id);
|
|
CollectionClass.orderDataList.Add(dyorderModel);
|
|
mainform.buyOrderListForm.SetOrderEditShowInDgvRows(dyorderModel, 1);
|
|
}
|
|
|
|
/// <summary>
|
|
/// 更新列表
|
|
/// </summary>
|
|
/// <param name="order"></param>
|
|
/// <param name="type">1 添加 修改 2删除</param>
|
|
public void SetOrderEditShowInDgvRows(DouYinOrderModel douYinOrderModel, int type)
|
|
{
|
|
if (!this.Created)
|
|
return;
|
|
|
|
Invoke(new Action(() =>
|
|
{
|
|
try
|
|
{
|
|
IEnumerable<DataGridViewRow> enumerableList = this.DgvSuccessOrderList.Rows.Cast<DataGridViewRow>();
|
|
List<DataGridViewRow> list = (from item in enumerableList
|
|
where item.Cells["col_order_id"].Value.ToString() == douYinOrderModel.order_id
|
|
select item).ToList();
|
|
if (type == 1)
|
|
{
|
|
if (list.Count == 0)
|
|
{
|
|
AddDgvRowByDouYinOrderModel(douYinOrderModel);
|
|
}
|
|
else
|
|
{
|
|
var row = list[0];
|
|
var orderstatus = GetOrderStatusDescribe(douYinOrderModel);
|
|
row.Cells["order_Status"].Value = orderstatus;
|
|
row.Cells["is_comment"].Value = douYinOrderModel.is_comment == 1 ? "已评价" : "未评价";
|
|
}
|
|
|
|
}
|
|
else if (type == 2)
|
|
{
|
|
if (list.Count > 0)
|
|
{
|
|
this.DgvSuccessOrderList.Rows.RemoveAt(list[0].Index);
|
|
}
|
|
|
|
}
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
|
|
}
|
|
}));
|
|
}
|
|
public void SetDgvHeaders(bool isEditDgvHeaders = true)
|
|
{
|
|
if (isEditDgvHeaders)
|
|
{
|
|
DgvHeaderEditForm df = new DgvHeaderEditForm(this.DgvSuccessOrderList);
|
|
df.TitleText = "编辑已完成列表表头";
|
|
df.ShowDialog();
|
|
}
|
|
DgvHeaderEditForm.SetDgvHeaderVisible(this.DgvSuccessOrderList);
|
|
}
|
|
|
|
public void outexcel()
|
|
{
|
|
OutExcel.ExportToExcel(OutExcel.ToDataTable(DgvSuccessOrderList));
|
|
}
|
|
}
|
|
}
|