diff --git a/AllBase/BaseClass.cs b/AllBase/BaseClass.cs
index e997376..a16336c 100644
--- a/AllBase/BaseClass.cs
+++ b/AllBase/BaseClass.cs
@@ -27,7 +27,7 @@ namespace AllBase
///
/// 版本ID
///
- public static int VersionCount = 712;
+ public static int VersionCount = 718;
//public static int VersionCount = 613;
///
diff --git a/AllBase/Model/Param/PDDProdParam/PDDActivitySubmitParam.cs b/AllBase/Model/Param/PDDProdParam/PDDActivitySubmitParam.cs
index 9440c67..88c6fbd 100644
--- a/AllBase/Model/Param/PDDProdParam/PDDActivitySubmitParam.cs
+++ b/AllBase/Model/Param/PDDProdParam/PDDActivitySubmitParam.cs
@@ -63,7 +63,7 @@ namespace AllBase.Model.Param.PDDProdParam
public class create_activity_price_vo_param
{
public List create_sku_vos { get; set; } = new List();
- public create_traffic_protect_vo_param create_traffic_protect_vo { get; set; } = new create_traffic_protect_vo_param();
+ public create_traffic_protect_vo_param create_traffic_protect_vo { get; set; } = null; // new create_traffic_protect_vo_param();
public create_quantity_vo_param create_quantity_vo { get; set; } = new create_quantity_vo_param();
public object create_time_vo { get; set; } = new object();
}
@@ -74,7 +74,8 @@ namespace AllBase.Model.Param.PDDProdParam
public class create_traffic_protect_vo_param
{
- public int? max_cut_price_amount { get; set; } = 50; //任意规格当前价失效时,降价0.5元恢复活动权益 //可考虑转换为总价的百分比
+ //public int? max_cut_price_amount { get; set; } = 50; //任意规格当前价失效时,降价0.5元恢复活动权益 //可考虑转换为总价的百分比
+ public int? max_cut_price_amount { get; set; } = 1; //任意规格当前价失效时,降价0.5元恢复活动权益 //可考虑转换为总价的百分比
}
public class create_sku_vo_param
diff --git a/AllBase/Model/Param/PDDProdParam/PDDActivitySubmitParam20981.cs b/AllBase/Model/Param/PDDProdParam/PDDActivitySubmitParam20981.cs
index 294a768..c71fa11 100644
--- a/AllBase/Model/Param/PDDProdParam/PDDActivitySubmitParam20981.cs
+++ b/AllBase/Model/Param/PDDProdParam/PDDActivitySubmitParam20981.cs
@@ -44,13 +44,14 @@ namespace AllBase.Model.Param.PDDProdParam20981
public class create_activity_price_vo_item
{
public List create_sku_vos { get; set; } = new List();
- public create_traffic_protect_vo_item create_traffic_protect_vo { get; set; } = new create_traffic_protect_vo_item();
+ public create_traffic_protect_vo_item create_traffic_protect_vo { get; set; } = null; //new create_traffic_protect_vo_item();
public object create_quantity_vo { get; set; } = new object();
}
public class create_traffic_protect_vo_item //如果流量降低降价多少维持活动
{
- public int? max_cut_price_amount { get; set; } = 50;
+ //public int? max_cut_price_amount { get; set; } = 50;
+ public int? max_cut_price_amount { get; set; } = 1;
}
public class create_sku_vo_item
diff --git a/AllBase/Model/Result/TemuResult/AdsDetailInfo.cs b/AllBase/Model/Result/TemuResult/AdsDetailInfo.cs
index 70dd8f0..ccbe5d9 100644
--- a/AllBase/Model/Result/TemuResult/AdsDetailInfo.cs
+++ b/AllBase/Model/Result/TemuResult/AdsDetailInfo.cs
@@ -141,7 +141,7 @@ namespace AllBase.Model.Result.TemuResult
public class reports_summary_dto_item_info
{
- public int? val { get; set; } // 0,
+ public long? val { get; set; } // 0,
public object incr_rate { get; set; } // null,
public string trans_val { get; set; } // "0"
diff --git a/KJDService/KJD_WebService/BLL/KJD/OrderManage.cs b/KJDService/KJD_WebService/BLL/KJD/OrderManage.cs
index 195b85c..b4d24e2 100644
--- a/KJDService/KJD_WebService/BLL/KJD/OrderManage.cs
+++ b/KJDService/KJD_WebService/BLL/KJD/OrderManage.cs
@@ -7,6 +7,7 @@ using Newtonsoft.Json.Linq;
using System;
using System.Collections.Generic;
using System.Data;
+using System.Diagnostics;
using System.Linq;
using System.Web;
using System.Web.Security;
@@ -15,6 +16,13 @@ namespace KJD_Web.BLL
{
public class OrderManage
{
+ public List year_mounth_lst = new List() { "202510", "202511", "202512",
+ "202601", "202602", "202603", "202604", "202605", "202606", "202607", "202608", "202609", "202610", "202611", "202612",
+ "202701", "202702", "202703", "202704", "202705", "202706", "202707", "202708", "202709", "202710", "202711", "202712",
+ "202801", "202802", "202803", "202804", "202805", "202806", "202807", "202808", "202809", "202810", "202811", "202812",
+ "202901", "202902", "202903", "202904", "202905", "202906", "202907", "202908", "202909", "202910", "202911", "202912",
+ "203001", "203002", "203003", "203004", "203005", "203006", "203007", "203008", "203009", "203010", "203011", "203012",
+ "203101", "203102", "203103", "203104", "203105", "203106", "203107", "203108", "203109", "203110", "203111", "203112" };
public string AddOrder(string inputData)
{
if (!string.IsNullOrEmpty(inputData))
@@ -36,7 +44,12 @@ namespace KJD_Web.BLL
string order_data = HtmlUtils.UrlDecodeUtf8(RegexUtils.GetStringQuery(ref inputData, "order_data"))?.Replace("'", "\\'");
if (string.IsNullOrEmpty(order_data))
- return "{\"code\":500,\"msg\":\"请输入订单\"}";
+ return "{\"code\":500,\"msg\":\"请输入订单参数\"}";
+
+ //string orderPurchaseTime = HtmlUtils.UrlDecodeUtf8(RegexUtils.GetStringQuery(ref inputData, "order_data"))?.Replace("'", "\\'");
+ //if (string.IsNullOrEmpty(order_data))
+ // return "{\"code\":500,\"msg\":\"请输入订单创建时间\"}";
+
JObject jObj = null;
try
{
@@ -47,7 +60,17 @@ namespace KJD_Web.BLL
return "{\"code\":500,\"msg\":\"数据格式错误\"}";
}
- long table_id = shop_id.ParseToLong() % 128;
+ //long table_id = shop_id.ParseToLong() % 128;
+ string table_id = "999999";
+ try
+ {
+ table_id = TimeUtils.StampMillisecondsToDateTime(long.Parse(jObj["purchaseTime"].ToString())).ToString("yyyyMM");
+ }
+ catch (Exception ex)
+ {
+ return "{\"code\":500,\"msg\":\"" + ex.Message + "\"}";
+ }
+
string conn = System.Configuration.ConfigurationManager.ConnectionStrings["ConnKJD"].ConnectionString;
MysqlUtils mySql = new MysqlUtils(conn);
string sql = "";
@@ -97,21 +120,41 @@ namespace KJD_Web.BLL
var password = RegexUtils.GetStringQuery(ref inputData, "password")?.Replace("'", "\\'");
var shop_id = RegexUtils.GetStringQuery(ref inputData, "shop_id")?.Replace("'", "\\'");
- if (string.IsNullOrEmpty(shop_id))
- return "{\"code\":500,\"msg\":\"请输入查询店铺\",\"data\":[],\"count\":" + 0 + "}";
+ //if (string.IsNullOrEmpty(shop_id))
+ // return "{\"code\":500,\"msg\":\"请输入查询店铺\",\"data\":[],\"count\":" + 0 + "}";
var upload_order_status = RegexUtils.GetStringQuery(ref inputData, "upload_order_status")?.Replace("'", "\\'");
//var start_time = RegexUtils.GetStringQuery(ref inputData, "start_time")?.Replace("'", "\\'");
- var start_time = TimeUtils.DateTimeToTimestampMilliseconds(DateTime.Now.Date.AddDays(-45));
+ var start_time = TimeUtils.DateTimeToTimestampMilliseconds(DateTime.Now.Date.AddDays(-30));
int page = RegexUtils.GetStringQuery(ref inputData, "page").ParseToInt();
int page_size = RegexUtils.GetStringQuery(ref inputData, "page_size").ParseToInt(50);
+ string startTimeStr = HtmlUtils.UrlDecodeUtf8(RegexUtils.GetStringQuery(ref inputData, "startTime"))?.Replace("'", "\\'");
+ string endTimeStr = HtmlUtils.UrlDecodeUtf8(RegexUtils.GetStringQuery(ref inputData, "endTime"))?.Replace("'", "\\'");
+ if (string.IsNullOrEmpty(endTimeStr))
+ {
+ var datetime = DateTime.Now;
+ startTimeStr = datetime.AddMonths(-1).ToString("yyyyMM");
+ endTimeStr = datetime.ToString("yyyyMM");
+ }
+ var startIndex = year_mounth_lst.IndexOf(startTimeStr);
+ var endIndex = year_mounth_lst.IndexOf(endTimeStr);
+
string conn = System.Configuration.ConfigurationManager.ConnectionStrings["ConnKJD"].ConnectionString;
MysqlUtils mySql = new MysqlUtils(conn);
- long table_id = shop_id.ParseToLong() % 128;
- string sql = "select count(id) from kjd_order.order_" + table_id + " o where 1=1";
+ //long table_id = shop_id.ParseToLong() % 128;
+ //sql = "select count(id) from kjd_order.order_" + table_id + " o where 1=1";
+ string sql = "";
+ sql += " SELECT count(*) FROM ( ";
+ for (int i = startIndex; i<=endIndex; i++)
+ {
+ if (i > startIndex)
+ sql += " UNION ALL ";
+ sql += " SELECT id,purchaseTime,supplierId,upLoadStatus FROM kjd_order.order_" + year_mounth_lst[i];
+ }
+ sql += " ) AS o WHERE 1=1";
string where = "";
if (start_time > 0)
@@ -119,7 +162,7 @@ namespace KJD_Web.BLL
if (!string.IsNullOrWhiteSpace(shop_id))
where += " and o.supplierId = '" + shop_id + "'";
if (!string.IsNullOrEmpty(upload_order_status))
- where += " and upLoadStatus = " + upload_order_status;
+ where += " and upLoadStatus >= " + upload_order_status;
sql += where;
var count = mySql.ExecuteRowCount(sql);
@@ -131,11 +174,20 @@ namespace KJD_Web.BLL
}
else
{
- sql = "SELECT * from kjd_order.order_" + table_id + " o where 1=1"; // p.is_del=0
+ //sql = "SELECT * FROM kjd_order.order_" + table_id + " o where 1=1"; // p.is_del=0
+ sql = " SELECT * FROM ( ";
+ for (int i = startIndex; i <= endIndex; i++)
+ {
+ if (i > startIndex)
+ sql += " UNION ALL ";
+ sql += " SELECT * FROM kjd_order.order_" + year_mounth_lst[i];
+ }
+ sql += " ) AS o WHERE 1=1";
//where子句
sql += where;
- sql += " ORDER BY o.purchaseTime";
+
+ sql += " ORDER BY o.purchaseTime desc";
//sql += " ORDER BY o.select_total_count desc, p.id desc";
sql += " LIMIT " + Math.Max(page - 1, 0) * page_size + "," + page_size;
dt = mySql.ExecuteDataTable(sql);
@@ -215,50 +267,51 @@ namespace KJD_Web.BLL
public string UpdateOrderStatus1(string inputData, bool isDetail = false)
{
- if (!string.IsNullOrEmpty(inputData))
- {
- var time = RegexUtils.GetStringQuery(ref inputData, "time").ParseToInt();
- string time1 = RegexUtils.GetStringQuery(ref inputData, "code");
- if (time1 != EncrypUtil.Encryption(time))
- return "{\"code\":50000,\"msg\":\"校验失败\"}";
+ //作废
+ //if (!string.IsNullOrEmpty(inputData))
+ //{
+ // var time = RegexUtils.GetStringQuery(ref inputData, "time").ParseToInt();
+ // string time1 = RegexUtils.GetStringQuery(ref inputData, "code");
+ // if (time1 != EncrypUtil.Encryption(time))
+ // return "{\"code\":50000,\"msg\":\"校验失败\"}";
- var user_name = RegexUtils.GetStringQuery(ref inputData, "user_name")?.Replace("'", "\\'");
- var password = RegexUtils.GetStringQuery(ref inputData, "password")?.Replace("'", "\\'");
+ // var user_name = RegexUtils.GetStringQuery(ref inputData, "user_name")?.Replace("'", "\\'");
+ // var password = RegexUtils.GetStringQuery(ref inputData, "password")?.Replace("'", "\\'");
- var shop_id = RegexUtils.GetStringQuery(ref inputData, "shop_id")?.Replace("'", "\\'");
- if (string.IsNullOrEmpty(shop_id))
- return "{\"code\":500,\"msg\":\"请输入查询店铺\"}";
- var product_id = RegexUtils.GetStringQuery(ref inputData, "product_id")?.Replace("'", "\\'");
- if (string.IsNullOrEmpty(product_id))
- return "{\"code\":500,\"msg\":\"请输入商品编号\"}";
+ // var shop_id = RegexUtils.GetStringQuery(ref inputData, "shop_id")?.Replace("'", "\\'");
+ // if (string.IsNullOrEmpty(shop_id))
+ // return "{\"code\":500,\"msg\":\"请输入查询店铺\"}";
+ // var product_id = RegexUtils.GetStringQuery(ref inputData, "product_id")?.Replace("'", "\\'");
+ // if (string.IsNullOrEmpty(product_id))
+ // return "{\"code\":500,\"msg\":\"请输入商品编号\"}";
- int page = RegexUtils.GetStringQuery(ref inputData, "page").ParseToInt();
- int page_size = RegexUtils.GetStringQuery(ref inputData, "page_size").ParseToInt(50);
+ // int page = RegexUtils.GetStringQuery(ref inputData, "page").ParseToInt();
+ // int page_size = RegexUtils.GetStringQuery(ref inputData, "page_size").ParseToInt(50);
- string conn = System.Configuration.ConfigurationManager.ConnectionStrings["ConnKJD"].ConnectionString;
- MysqlUtils mySql = new MysqlUtils(conn);
+ // string conn = System.Configuration.ConfigurationManager.ConnectionStrings["ConnKJD"].ConnectionString;
+ // MysqlUtils mySql = new MysqlUtils(conn);
- long table_id = shop_id.ParseToLong() % 128;
- string sql = "update kjd_order.order_" + table_id + " o set o.upLoadStatus=1";
+ // long table_id = shop_id.ParseToLong() % 128;
+ // string sql = "update kjd_order.order_" + table_id + " o set o.upLoadStatus=1";
- string where = "";
- where += " and o.supplierId = '" + shop_id + "'";
- where += " and o.productId = '" + product_id + "'";
- where += " and o.upLoadStatus < 1";
- sql += where;
+ // string where = "";
+ // where += " and o.supplierId = '" + shop_id + "'";
+ // where += " and o.productId = '" + product_id + "'";
+ // where += " and o.upLoadStatus < 1";
+ // sql += where;
- var rst = mySql.ExecuteNonQuery(sql);
- mySql.Close();
+ // var rst = mySql.ExecuteNonQuery(sql);
+ // mySql.Close();
- if (rst)
- {
- return "{\"code\":200,\"msg\":\"success\"}";
- }
- else
- {
- return "{\"code\":500,\"msg\":\"" + mySql.Message + "\"}";
- }
- }
+ // if (rst)
+ // {
+ // return "{\"code\":200,\"msg\":\"success\"}";
+ // }
+ // else
+ // {
+ // return "{\"code\":500,\"msg\":\"" + mySql.Message + "\"}";
+ // }
+ //}
return "{\"code\":19999,\"msg\":\"输入为空\"}";
}
@@ -287,7 +340,18 @@ namespace KJD_Web.BLL
if (string.IsNullOrEmpty(file_md5) || string.IsNullOrEmpty(file_base64))
return "{\"code\":500,\"msg\":\"请输入文件信息\"}";
- long table_id = shop_id.ParseToLong() % 128;
+ //long table_id = shop_id.ParseToLong() % 128;
+ string purchaseTime = RegexUtils.GetStringQuery(ref inputData, "purchaseTime")?.Replace("'", "\\'");
+ string table_id = "999999";
+ try
+ {
+ table_id = TimeUtils.StampMillisecondsToDateTime(long.Parse(purchaseTime)).ToString("yyyyMM");
+ }
+ catch (Exception ex)
+ {
+ return "{\"code\":500,\"msg\":\"请输入正确的时间:" + ex.Message + "\"}";
+ }
+
string conn = System.Configuration.ConfigurationManager.ConnectionStrings["ConnKJD"].ConnectionString;
MysqlUtils mySql = new MysqlUtils(conn);
string sql = "";
@@ -320,7 +384,6 @@ namespace KJD_Web.BLL
return "{\"code\":19999,\"msg\":\"输入为空\"}";
}
-
public string SaveOrderCodeFileLink(string inputData)
{
if (!string.IsNullOrEmpty(inputData))
@@ -349,7 +412,17 @@ namespace KJD_Web.BLL
if (string.IsNullOrEmpty(jia_tong_code) && string.IsNullOrEmpty(bar_code_md5) && string.IsNullOrEmpty(shipping_mark_md5))
return "{\"code\":500,\"msg\":\"请输入文件信息\"}";
- long table_id = shop_id.ParseToLong() % 128;
+ //long table_id = shop_id.ParseToLong() % 128;
+ string purchaseTime = RegexUtils.GetStringQuery(ref inputData, "purchaseTime")?.Replace("'", "\\'"); // 佳同码
+ string table_id = "999999";
+ try
+ {
+ table_id = TimeUtils.StampMillisecondsToDateTime(long.Parse(purchaseTime)).ToString("yyyyMM");
+ }
+ catch (Exception ex)
+ {
+ return "{\"code\":500,\"msg\":\"请输入正确的时间:" + ex.Message + "\"}";
+ }
string conn = System.Configuration.ConfigurationManager.ConnectionStrings["ConnKJD"].ConnectionString;
MysqlUtils mySql = new MysqlUtils(conn);
string sql = "";
@@ -375,7 +448,6 @@ namespace KJD_Web.BLL
return "{\"code\":19999,\"msg\":\"输入为空\"}";
}
-
public string getOrderCodeFile(string inputData)
{
if (!string.IsNullOrEmpty(inputData))
@@ -399,7 +471,18 @@ namespace KJD_Web.BLL
if (string.IsNullOrEmpty(file_md5))
return "{\"code\":500,\"msg\":\"请输入文件信息\"}";
- long table_id = shop_id.ParseToLong() % 128;
+ //long table_id = shop_id.ParseToLong() % 128;
+ string purchaseTime = RegexUtils.GetStringQuery(ref inputData, "purchaseTime")?.Replace("'", "\\'");
+ string table_id = "999999";
+ try
+ {
+ table_id = TimeUtils.StampMillisecondsToDateTime(long.Parse(purchaseTime)).ToString("yyyyMM");
+ }
+ catch (Exception ex)
+ {
+ return "{\"code\":500,\"msg\":\"请输入正确的时间:" + ex.Message + "\"}";
+ }
+
string conn = System.Configuration.ConfigurationManager.ConnectionStrings["ConnKJD"].ConnectionString;
MysqlUtils mySql = new MysqlUtils(conn);
string sql = "";
@@ -437,7 +520,7 @@ namespace KJD_Web.BLL
if (time1 != EncrypUtil.Encryption(time))
return "{\"code\":50000,\"msg\":\"校验失败\"}";
- string user_name = RegexUtils.GetStringQuery(ref inputData, "user_name");
+ string user_name = RegexUtils.GetStringQuery(ref inputData, "user_name")?.Replace("'", "\\'");
if (string.IsNullOrEmpty(user_name))
{
return "{\"code\":500,\"msg\":\"没有用户名\"}";
@@ -455,24 +538,118 @@ namespace KJD_Web.BLL
return "{\"code\":500,\"msg\":\"请输入费用\"}";
decimal fee = feeStr.ParseToDecimal();
+ //long table_id = shop_id.ParseToLong() % 128;
+ string purchaseTime = RegexUtils.GetStringQuery(ref inputData, "purchaseTime")?.Replace("'", "\\'");
+ string table_id = "999999";
+ try
+ {
+ table_id = TimeUtils.StampMillisecondsToDateTime(long.Parse(purchaseTime)).ToString("yyyyMM");
+ }
+ catch (Exception ex)
+ {
+ return "{\"code\":500,\"msg\":\"请输入正确的时间:" + ex.Message + "\"}";
+ }
- long table_id = shop_id.ParseToLong() % 128;
string conn = System.Configuration.ConfigurationManager.ConnectionStrings["ConnKJD"].ConnectionString;
MysqlUtils mySql = new MysqlUtils(conn);
string sql = "";
- sql = "update kjd_order.order_" + table_id + " set upLoadStatus=2 where upLoadStatus < 2 and subPurchaseOrderSn in('" + subPurchaseOrderSn + "');";
- var rst = mySql.ExecuteRecordsRows(sql);
+ sql = "select authorized_amount from kjd.user where user_name='" + user_name + "'";
+ var value = mySql.ExecuteFirst(sql);
if (!string.IsNullOrEmpty(mySql.Message))
{
mySql.Close();
return "{\"code\":500,\"msg\":\"" + mySql.Message + "\"}";
}
- if (rst > 0)
+ if (value.IsNullOrEmpty())
{
- sql = "update kjd.user set authorized_amount=authorized_amount-" + fee + " where user_name='" + user_name + "';";
- rst = mySql.ExecuteRecordsRows(sql);
+ mySql.Close();
+ return "{\"code\":500,\"msg\":\"用户不存\"}";
}
+ if (value.ParseToDecimal() < fee)
+ {
+ mySql.Close();
+ return "{\"code\":500,\"msg\":\"授权金不足\"}";
+ }
+
+ sql = "update kjd_order.order_" + table_id + " set upLoadStatus=2 where upLoadStatus < 2 and subPurchaseOrderSn in('" + subPurchaseOrderSn + "');";
+ var rst = mySql.ExecuteAffectedRows(sql);
+ if (!string.IsNullOrEmpty(mySql.Message))
+ {
+ mySql.Close();
+ return "{\"code\":500,\"msg\":\"" + mySql.Message + "\"}";
+ }
+ if (rst == 0)
+ {
+ mySql.Close();
+ return "{\"code\":500,\"msg\":\"订单不存在或已上传\"}";
+ }
+
+ sql = "update kjd.user set authorized_amount=authorized_amount-" + fee + " where user_name='" + user_name + "';";
+ rst = mySql.ExecuteAffectedRows(sql);
+ mySql.Close();
+ if (!string.IsNullOrEmpty(mySql.Message))
+ {
+ return "{\"code\":500,\"msg\":\"" + mySql.Message + "\"}";
+ }
+ if(rst == 0)
+ {
+ return "{\"code\":500,\"msg\":\"订单已提交但扣费失败\"}";
+ }
+ return "{\"code\":200,\"msg\":\"success\"}";
+ }
+ return "{\"code\":19999,\"msg\":\"输入为空\"}";
+ }
+
+ public string UpdateOrderStatus(string inputData)
+ {
+ if (!string.IsNullOrEmpty(inputData))
+ {
+ var time = 0;
+ int.TryParse(RegexUtils.GetStringQuery(ref inputData, "time"), out time);
+ string time1 = RegexUtils.GetStringQuery(ref inputData, "code");
+ if (time1 != EncrypUtil.Encryption(time))
+ return "{\"code\":50000,\"msg\":\"校验失败\"}";
+
+ string user_name = RegexUtils.GetStringQuery(ref inputData, "user_name");
+ if (string.IsNullOrEmpty(user_name))
+ {
+ return "{\"code\":500,\"msg\":\"没有用户名\"}";
+ }
+ var shop_id = RegexUtils.GetStringQuery(ref inputData, "shop_id")?.Replace("'", "\\'");
+ if (string.IsNullOrEmpty(shop_id))
+ return "{\"code\":500,\"msg\":\"请输入店铺\"}";
+
+ string subPurchaseOrderSn = RegexUtils.GetStringQuery(ref inputData, "subPurchaseOrderSn")?.Replace("'", "\\'");
+ if (string.IsNullOrEmpty(subPurchaseOrderSn))
+ return "{\"code\":500,\"msg\":\"请输入订单编号\"}";
+
+ string new_status = RegexUtils.GetStringQuery(ref inputData, "new_status")?.Replace("'", "\\'");
+ string old_status = RegexUtils.GetStringQuery(ref inputData, "old_status")?.Replace("'", "\\'");
+ if (string.IsNullOrEmpty(new_status))
+ return "{\"code\":500,\"msg\":\"请输入订单状态\"}";
+
+ //long table_id = shop_id.ParseToLong() % 128;
+ string purchaseTime = RegexUtils.GetStringQuery(ref inputData, "purchaseTime")?.Replace("'", "\\'");
+ string table_id = "999999";
+ try
+ {
+ table_id = TimeUtils.StampMillisecondsToDateTime(long.Parse(purchaseTime)).ToString("yyyyMM");
+ }
+ catch (Exception ex)
+ {
+ return "{\"code\":500,\"msg\":\"请输入正确的时间:" + ex.Message + "\"}";
+ }
+
+ string conn = System.Configuration.ConfigurationManager.ConnectionStrings["ConnKJD"].ConnectionString;
+ MysqlUtils mySql = new MysqlUtils(conn);
+ string sql = "";
+
+ sql = "update kjd_order.order_" + table_id + " set upLoadStatus=" + new_status + " where 1=1";
+ if (!string.IsNullOrEmpty(old_status))
+ sql += " and upLoadStatus=" + old_status;
+ sql += " and subPurchaseOrderSn in('" + subPurchaseOrderSn + "');";
+ var rst = mySql.ExecuteAffectedRows(sql);
mySql.Close();
if (!string.IsNullOrEmpty(mySql.Message))
{
diff --git a/KJDService/KJD_WebService/BLL/KJD/ToolManage.cs b/KJDService/KJD_WebService/BLL/KJD/ToolManage.cs
index ad4323b..e13319b 100644
--- a/KJDService/KJD_WebService/BLL/KJD/ToolManage.cs
+++ b/KJDService/KJD_WebService/BLL/KJD/ToolManage.cs
@@ -88,62 +88,82 @@ namespace KJD_Web.BLL
string conn = System.Configuration.ConfigurationManager.ConnectionStrings["ConnKJD"].ConnectionString;
MysqlUtils mySql = new MysqlUtils(conn);
string sql = "";
- for (int i = 0; i < 128; i++)
+ for (int i = 1; i <= 12; i++)
{
- //sql = @"drop table if exists kjd_map.spu_map_" + i + ";\r\n";
- sql = @"CREATE TABLE IF NOT EXISTS kjd_order.order_" + i + @" (
+
+ //sql = @"drop table if exists kjd_order.order_code_" + i + ";\r\n";
+ sql = @"CREATE TABLE IF NOT EXISTS kjd_order.order_2026" + i.ToString("D2") + @" (
`id` int NOT NULL AUTO_INCREMENT,
- `supplierId` varchar(25) COLLATE utf8mb4_general_ci NOT NULL COMMENT '店铺Id',
- `originalPurchaseOrderSn` varchar(25) COLLATE utf8mb4_general_ci NOT NULL COMMENT '备货单号',
- `subPurchaseOrderSn` varchar(25) COLLATE utf8mb4_general_ci NOT NULL COMMENT '备货母单号',
- `productName` varchar(1000) COLLATE utf8mb4_general_ci NOT NULL,
- `category` varchar(50) COLLATE utf8mb4_general_ci NOT NULL,
- `productId` varchar(25) COLLATE utf8mb4_general_ci NOT NULL COMMENT '商品编号',
- `productSkcId` varchar(25) COLLATE utf8mb4_general_ci NOT NULL,
- `productSkcPicture` varchar(250) COLLATE utf8mb4_general_ci NOT NULL COMMENT '主图',
- `productSn` varchar(50) COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '货号',
+ `supplierId` varchar(25) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '店铺Id',
+ `supplierName` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '店铺名称',
+ `originalPurchaseOrderSn` varchar(25) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '备母货单号',
+ `subPurchaseOrderSn` varchar(25) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '备货单号',
+ `productName` varchar(1000) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL,
+ `category` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL,
+ `productId` varchar(25) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '商品编号',
+ `upProductId` varchar(25) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '上家编号',
+ `productSkcId` varchar(25) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL,
+ `productSkcPicture` varchar(250) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '主图',
+ `productSn` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '货号',
`status` int NOT NULL COMMENT '状态 1待发货 2已送货 7已入库 8已作废',
- `productSkuId` varchar(25) COLLATE utf8mb4_general_ci NOT NULL,
- `className` varchar(100) COLLATE utf8mb4_general_ci NOT NULL COMMENT 'sku规格',
- `currencyType` varchar(10) COLLATE utf8mb4_general_ci NOT NULL,
+ `productSkuId` varchar(25) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL,
+ `extCode` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT 'sku货号',
+ `className` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT 'sku规格',
+ `currencyType` varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL,
`supplierPrice` int NOT NULL COMMENT '申报价格',
+ `costPrice` int DEFAULT NULL COMMENT '成本价',
+ `deliveryFee` int DEFAULT NULL COMMENT '车队费',
+ `markFee` int DEFAULT NULL COMMENT '贴标费',
`purchaseQuantity` int NOT NULL COMMENT '备货件数',
`deliverQuantity` int NOT NULL COMMENT '送货件数',
`realReceiveAuthenticQuantity` int NOT NULL COMMENT '入库件数',
- `availableSaleDays` decimal(10, 0) NOT NULL COMMENT '可售天数',
+ `availableSaleDays` decimal(10, 0) DEFAULT NULL COMMENT '可售天数',
`qcResult` int DEFAULT NULL COMMENT '抽检结果 1合格 2不合格',
- `thumbUrlList` varchar(500) COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT 'sku图片',
+ `thumbUrlList` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT 'sku图片',
`purchaseTime` bigint NOT NULL COMMENT '备货单创建时间',
`deliverTime` bigint DEFAULT NULL COMMENT '发货时间',
`receiveTime` bigint DEFAULT NULL COMMENT '收货时间',
`expectLatestDeliverTimeOrDefault` bigint NOT NULL COMMENT '最迟发货时间',
`expectLatestArrivalTimeOrDefault` bigint NOT NULL COMMENT '最迟到货时间',
- `deliveryOrderSn` varchar(50) COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '发货单号',
- `receiveWarehouseId` varchar(25) COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '实际收货仓库Id',
- `receiveWarehouseName` varchar(50) COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '实际收货仓库',
- `warehouseGroupId` varchar(25) COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '仓组Id',
- `jiaTongCode` varchar(50) COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '佳同码',
- `barCodeMd5` varchar(32) COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '商品条码MD5',
- `shippingMarkMd5` varchar(32) COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '箱唛文件MD5',
- `notes` varchar(50) COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '备注',
+ `deliveryOrderSn` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '发货单号',
+ `receiveWarehouseId` varchar(25) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '实际收货仓库Id',
+ `receiveWarehouseName` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '实际收货仓库',
+ `warehouseGroupId` varchar(25) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '仓组Id',
+ `jiaTongCode` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '佳同码',
+ `barCodeMd5` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '商品条码MD5',
+ `shippingMarkMd5` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '箱唛文件MD5',
+ `notes` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '备注',
+ `upLoadStatus` int NOT NULL DEFAULT '0' COMMENT '是否上传订单(上传后扣除用户授权金额,产生扣费记录)',
`add_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP,
`mdy_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
PRIMARY KEY (`id`),
UNIQUE KEY `index_subPurchaseOrderSn` (`subPurchaseOrderSn`) USING BTREE
) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '订单推送表'";
- sql = "ALTER TABLE\r\n kjd_order.order_" + i + "\r\nADD\r\n COLUMN `upLoadStatus` int NOT NULL DEFAULT 0 COMMENT '是否上传订单(上传后扣除用户授权金额,产生扣费记录)',\r\nMODIFY\r\n COLUMN `add_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP\r\nAFTER\r\n `upLoadStatus`,\r\nMODIFY\r\n COLUMN `mdy_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP\r\nAFTER\r\n `add_time`";
- sql = "ALTER TABLE\r\n kjd_order.order_" + i + "\r\nADD\r\n COLUMN `extCode` varchar (50) NOT NULL COMMENT 'sku货号',\r\nMODIFY\r\n COLUMN `className` varchar (100) NOT NULL COMMENT 'sku规格'\r\nAFTER\r\n `extCode`,\r\nMODIFY\r\n COLUMN `currencyType` varchar (10) NOT NULL\r\nAFTER\r\n `className`,\r\nMODIFY\r\n COLUMN `supplierPrice` int NOT NULL COMMENT '申报价格'\r\nAFTER\r\n `currencyType`,\r\nMODIFY\r\n COLUMN `purchaseQuantity` int NOT NULL COMMENT '备货件数'\r\nAFTER\r\n `supplierPrice`,\r\nMODIFY\r\n COLUMN `deliverQuantity` int NOT NULL COMMENT '送货件数'\r\nAFTER\r\n `purchaseQuantity`,\r\nMODIFY\r\n COLUMN `realReceiveAuthenticQuantity` int NOT NULL COMMENT '入库件数'\r\nAFTER\r\n `deliverQuantity`,\r\nMODIFY\r\n COLUMN `availableSaleDays` decimal (10, 0) NOT NULL COMMENT '可售天数'\r\nAFTER\r\n `realReceiveAuthenticQuantity`,\r\nMODIFY\r\n COLUMN `qcResult` int NULL COMMENT '抽检结果 1合格 2不合格'\r\nAFTER\r\n `availableSaleDays`,\r\nMODIFY\r\n COLUMN `thumbUrlList` varchar (500) NULL COMMENT 'sku图片'\r\nAFTER\r\n `qcResult`,\r\nMODIFY\r\n COLUMN `purchaseTime` bigint NOT NULL COMMENT '备货单创建时间'\r\nAFTER\r\n `thumbUrlList`,\r\nMODIFY\r\n COLUMN `deliverTime` bigint NULL COMMENT '发货时间'\r\nAFTER\r\n `purchaseTime`,\r\nMODIFY\r\n COLUMN `receiveTime` bigint NULL COMMENT '收货时间'\r\nAFTER\r\n `deliverTime`,\r\nMODIFY\r\n COLUMN `expectLatestDeliverTimeOrDefault` bigint NOT NULL COMMENT '最迟发货时间'\r\nAFTER\r\n `receiveTime`,\r\nMODIFY\r\n COLUMN `expectLatestArrivalTimeOrDefault` bigint NOT NULL COMMENT '最迟到货时间'\r\nAFTER\r\n `expectLatestDeliverTimeOrDefault`,\r\nMODIFY\r\n COLUMN `deliveryOrderSn` varchar (50) NULL COMMENT '发货单号'\r\nAFTER\r\n `expectLatestArrivalTimeOrDefault`,\r\nMODIFY\r\n COLUMN `receiveWarehouseId` varchar (25) NULL COMMENT '实际收货仓库Id'\r\nAFTER\r\n `deliveryOrderSn`,\r\nMODIFY\r\n COLUMN `receiveWarehouseName` varchar (50) NULL COMMENT '实际收货仓库'\r\nAFTER\r\n `receiveWarehouseId`,\r\nMODIFY\r\n COLUMN `warehouseGroupId` varchar (25) NULL COMMENT '仓组Id'\r\nAFTER\r\n `receiveWarehouseName`,\r\nMODIFY\r\n COLUMN `jiaTongCode` varchar (50) NULL COMMENT '佳同码'\r\nAFTER\r\n `warehouseGroupId`,\r\nMODIFY\r\n COLUMN `barCodeMd5` varchar (32) NULL COMMENT '商品条码MD5'\r\nAFTER\r\n `jiaTongCode`,\r\nMODIFY\r\n COLUMN `shippingMarkMd5` varchar (32) NULL COMMENT '箱唛文件MD5'\r\nAFTER\r\n `barCodeMd5`,\r\nMODIFY\r\n COLUMN `notes` varchar (50) NULL COMMENT '备注'\r\nAFTER\r\n `shippingMarkMd5`,\r\nMODIFY\r\n COLUMN `add_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP\r\nAFTER\r\n `notes`,\r\nMODIFY\r\n COLUMN `mdy_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP\r\nAFTER\r\n `add_time`";
- sql = "ALTER TABLE\r\n kjd_order.order_" + i + "\r\nMODIFY\r\n COLUMN `extCode` varchar (50) NOT NULL COMMENT 'sku货号'\r\nAFTER\r\n `productSkuId`,\r\nMODIFY\r\n COLUMN `className` varchar (100) NOT NULL COMMENT 'sku规格'\r\nAFTER\r\n `extCode`,\r\nMODIFY\r\n COLUMN `currencyType` varchar (10) NOT NULL\r\nAFTER\r\n `className`,\r\nMODIFY\r\n COLUMN `supplierPrice` int NOT NULL COMMENT '申报价格'\r\nAFTER\r\n `currencyType`,\r\nMODIFY\r\n COLUMN `purchaseQuantity` int NOT NULL COMMENT '备货件数'\r\nAFTER\r\n `supplierPrice`,\r\nMODIFY\r\n COLUMN `deliverQuantity` int NOT NULL COMMENT '送货件数'\r\nAFTER\r\n `purchaseQuantity`,\r\nMODIFY\r\n COLUMN `realReceiveAuthenticQuantity` int NOT NULL COMMENT '入库件数'\r\nAFTER\r\n `deliverQuantity`,\r\nMODIFY\r\n COLUMN `availableSaleDays` decimal (10, 0) NOT NULL COMMENT '可售天数'\r\nAFTER\r\n `realReceiveAuthenticQuantity`,\r\nMODIFY\r\n COLUMN `qcResult` int NULL COMMENT '抽检结果 1合格 2不合格'\r\nAFTER\r\n `availableSaleDays`,\r\nMODIFY\r\n COLUMN `thumbUrlList` varchar (500) NULL COMMENT 'sku图片'\r\nAFTER\r\n `qcResult`,\r\nMODIFY\r\n COLUMN `purchaseTime` bigint NOT NULL COMMENT '备货单创建时间'\r\nAFTER\r\n `thumbUrlList`,\r\nMODIFY\r\n COLUMN `deliverTime` bigint NULL COMMENT '发货时间'\r\nAFTER\r\n `purchaseTime`,\r\nMODIFY\r\n COLUMN `receiveTime` bigint NULL COMMENT '收货时间'\r\nAFTER\r\n `deliverTime`,\r\nMODIFY\r\n COLUMN `expectLatestDeliverTimeOrDefault` bigint NOT NULL COMMENT '最迟发货时间'\r\nAFTER\r\n `receiveTime`,\r\nMODIFY\r\n COLUMN `expectLatestArrivalTimeOrDefault` bigint NOT NULL COMMENT '最迟到货时间'\r\nAFTER\r\n `expectLatestDeliverTimeOrDefault`,\r\nMODIFY\r\n COLUMN `deliveryOrderSn` varchar (50) NULL COMMENT '发货单号'\r\nAFTER\r\n `expectLatestArrivalTimeOrDefault`,\r\nMODIFY\r\n COLUMN `receiveWarehouseId` varchar (25) NULL COMMENT '实际收货仓库Id'\r\nAFTER\r\n `deliveryOrderSn`,\r\nMODIFY\r\n COLUMN `receiveWarehouseName` varchar (50) NULL COMMENT '实际收货仓库'\r\nAFTER\r\n `receiveWarehouseId`,\r\nMODIFY\r\n COLUMN `warehouseGroupId` varchar (25) NULL COMMENT '仓组Id'\r\nAFTER\r\n `receiveWarehouseName`,\r\nMODIFY\r\n COLUMN `jiaTongCode` varchar (50) NULL COMMENT '佳同码'\r\nAFTER\r\n `warehouseGroupId`,\r\nMODIFY\r\n COLUMN `barCodeMd5` varchar (32) NULL COMMENT '商品条码MD5'\r\nAFTER\r\n `jiaTongCode`,\r\nMODIFY\r\n COLUMN `shippingMarkMd5` varchar (32) NULL COMMENT '箱唛文件MD5'\r\nAFTER\r\n `barCodeMd5`,\r\nMODIFY\r\n COLUMN `notes` varchar (50) NULL COMMENT '备注'\r\nAFTER\r\n `shippingMarkMd5`,\r\nMODIFY\r\n COLUMN `upLoadStatus` int NOT NULL DEFAULT '0' COMMENT '是否上传订单(上传后扣除用户授权金额,产生扣费记录)'\r\nAFTER\r\n `notes`";
- sql = "ALTER TABLE\r\n kjd_order.order_" + i + "\r\nADD\r\n COLUMN `costPrice` int NULL COMMENT '成本价',\r\nADD\r\n COLUMN `deliveryFee` int NULL COMMENT '车队费',\r\nADD\r\n COLUMN `markFee` int NULL COMMENT '贴标费',\r\nMODIFY\r\n COLUMN `purchaseQuantity` int NOT NULL COMMENT '备货件数'\r\nAFTER\r\n `markFee`,\r\nMODIFY\r\n COLUMN `deliverQuantity` int NOT NULL COMMENT '送货件数'\r\nAFTER\r\n `purchaseQuantity`,\r\nMODIFY\r\n COLUMN `realReceiveAuthenticQuantity` int NOT NULL COMMENT '入库件数'\r\nAFTER\r\n `deliverQuantity`,\r\nMODIFY\r\n COLUMN `availableSaleDays` decimal (10, 0) NOT NULL COMMENT '可售天数'\r\nAFTER\r\n `realReceiveAuthenticQuantity`,\r\nMODIFY\r\n COLUMN `qcResult` int NULL COMMENT '抽检结果 1合格 2不合格'\r\nAFTER\r\n `availableSaleDays`,\r\nMODIFY\r\n COLUMN `thumbUrlList` varchar (500) NULL COMMENT 'sku图片'\r\nAFTER\r\n `qcResult`,\r\nMODIFY\r\n COLUMN `purchaseTime` bigint NOT NULL COMMENT '备货单创建时间'\r\nAFTER\r\n `thumbUrlList`,\r\nMODIFY\r\n COLUMN `deliverTime` bigint NULL COMMENT '发货时间'\r\nAFTER\r\n `purchaseTime`,\r\nMODIFY\r\n COLUMN `receiveTime` bigint NULL COMMENT '收货时间'\r\nAFTER\r\n `deliverTime`,\r\nMODIFY\r\n COLUMN `expectLatestDeliverTimeOrDefault` bigint NOT NULL COMMENT '最迟发货时间'\r\nAFTER\r\n `receiveTime`,\r\nMODIFY\r\n COLUMN `expectLatestArrivalTimeOrDefault` bigint NOT NULL COMMENT '最迟到货时间'\r\nAFTER\r\n `expectLatestDeliverTimeOrDefault`,\r\nMODIFY\r\n COLUMN `deliveryOrderSn` varchar (50) NULL COMMENT '发货单号'\r\nAFTER\r\n `expectLatestArrivalTimeOrDefault`,\r\nMODIFY\r\n COLUMN `receiveWarehouseId` varchar (25) NULL COMMENT '实际收货仓库Id'\r\nAFTER\r\n `deliveryOrderSn`,\r\nMODIFY\r\n COLUMN `receiveWarehouseName` varchar (50) NULL COMMENT '实际收货仓库'\r\nAFTER\r\n `receiveWarehouseId`,\r\nMODIFY\r\n COLUMN `warehouseGroupId` varchar (25) NULL COMMENT '仓组Id'\r\nAFTER\r\n `receiveWarehouseName`,\r\nMODIFY\r\n COLUMN `jiaTongCode` varchar (50) NULL COMMENT '佳同码'\r\nAFTER\r\n `warehouseGroupId`,\r\nMODIFY\r\n COLUMN `barCodeMd5` varchar (32) NULL COMMENT '商品条码MD5'\r\nAFTER\r\n `jiaTongCode`,\r\nMODIFY\r\n COLUMN `shippingMarkMd5` varchar (32) NULL COMMENT '箱唛文件MD5'\r\nAFTER\r\n `barCodeMd5`,\r\nMODIFY\r\n COLUMN `notes` varchar (50) NULL COMMENT '备注'\r\nAFTER\r\n `shippingMarkMd5`,\r\nMODIFY\r\n COLUMN `upLoadStatus` int NOT NULL DEFAULT '0' COMMENT '是否上传订单(上传后扣除用户授权金额,产生扣费记录)'\r\nAFTER\r\n `notes`,\r\nMODIFY\r\n COLUMN `add_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP\r\nAFTER\r\n `upLoadStatus`,\r\nMODIFY\r\n COLUMN `mdy_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP\r\nAFTER\r\n `add_time`";
- sql = "ALTER TABLE\r\n kjd_order.order_" + i + "\r\nMODIFY\r\n COLUMN `originalPurchaseOrderSn` varchar (25) NOT NULL COMMENT '备母货单号'\r\nAFTER\r\n `supplierId`,\r\nMODIFY\r\n COLUMN `subPurchaseOrderSn` varchar (25) NOT NULL COMMENT '备货单号'\r\nAFTER\r\n `originalPurchaseOrderSn`";
- sql = "ALTER TABLE\r\n kjd_order.order_" + i + "\r\nMODIFY\r\n COLUMN `availableSaleDays` decimal (10, 0) NULL COMMENT '可售天数'\r\nAFTER\r\n `realReceiveAuthenticQuantity`";
- sql = "ALTER TABLE\r\n kjd_order.order_" + i + "\r\nADD\r\n COLUMN `upProductId` varchar (25) NOT NULL COMMENT '上家编号',\r\nMODIFY\r\n COLUMN `productSkcId` varchar (25) NOT NULL\r\nAFTER\r\n `upProductId`,\r\nMODIFY\r\n COLUMN `productSkcPicture` varchar (250) NOT NULL COMMENT '主图'\r\nAFTER\r\n `productSkcId`,\r\nMODIFY\r\n COLUMN `productSn` varchar (50) NULL COMMENT '货号'\r\nAFTER\r\n `productSkcPicture`,\r\nMODIFY\r\n COLUMN `status` int NOT NULL COMMENT '状态 1待发货 2已送货 7已入库 8已作废'\r\nAFTER\r\n `productSn`,\r\nMODIFY\r\n COLUMN `productSkuId` varchar (25) NOT NULL\r\nAFTER\r\n `status`,\r\nMODIFY\r\n COLUMN `extCode` varchar (50) NOT NULL COMMENT 'sku货号'\r\nAFTER\r\n `productSkuId`,\r\nMODIFY\r\n COLUMN `className` varchar (100) NOT NULL COMMENT 'sku规格'\r\nAFTER\r\n `extCode`,\r\nMODIFY\r\n COLUMN `currencyType` varchar (10) NOT NULL\r\nAFTER\r\n `className`,\r\nMODIFY\r\n COLUMN `supplierPrice` int NOT NULL COMMENT '申报价格'\r\nAFTER\r\n `currencyType`,\r\nMODIFY\r\n COLUMN `costPrice` int NULL COMMENT '成本价'\r\nAFTER\r\n `supplierPrice`,\r\nMODIFY\r\n COLUMN `deliveryFee` int NULL COMMENT '车队费'\r\nAFTER\r\n `costPrice`,\r\nMODIFY\r\n COLUMN `markFee` int NULL COMMENT '贴标费'\r\nAFTER\r\n `deliveryFee`,\r\nMODIFY\r\n COLUMN `purchaseQuantity` int NOT NULL COMMENT '备货件数'\r\nAFTER\r\n `markFee`,\r\nMODIFY\r\n COLUMN `deliverQuantity` int NOT NULL COMMENT '送货件数'\r\nAFTER\r\n `purchaseQuantity`,\r\nMODIFY\r\n COLUMN `realReceiveAuthenticQuantity` int NOT NULL COMMENT '入库件数'\r\nAFTER\r\n `deliverQuantity`,\r\nMODIFY\r\n COLUMN `availableSaleDays` decimal (10, 0) NULL COMMENT '可售天数'\r\nAFTER\r\n `realReceiveAuthenticQuantity`,\r\nMODIFY\r\n COLUMN `qcResult` int NULL COMMENT '抽检结果 1合格 2不合格'\r\nAFTER\r\n `availableSaleDays`,\r\nMODIFY\r\n COLUMN `thumbUrlList` varchar (500) NULL COMMENT 'sku图片'\r\nAFTER\r\n `qcResult`,\r\nMODIFY\r\n COLUMN `purchaseTime` bigint NOT NULL COMMENT '备货单创建时间'\r\nAFTER\r\n `thumbUrlList`,\r\nMODIFY\r\n COLUMN `deliverTime` bigint NULL COMMENT '发货时间'\r\nAFTER\r\n `purchaseTime`,\r\nMODIFY\r\n COLUMN `receiveTime` bigint NULL COMMENT '收货时间'\r\nAFTER\r\n `deliverTime`,\r\nMODIFY\r\n COLUMN `expectLatestDeliverTimeOrDefault` bigint NOT NULL COMMENT '最迟发货时间'\r\nAFTER\r\n `receiveTime`,\r\nMODIFY\r\n COLUMN `expectLatestArrivalTimeOrDefault` bigint NOT NULL COMMENT '最迟到货时间'\r\nAFTER\r\n `expectLatestDeliverTimeOrDefault`,\r\nMODIFY\r\n COLUMN `deliveryOrderSn` varchar (50) NULL COMMENT '发货单号'\r\nAFTER\r\n `expectLatestArrivalTimeOrDefault`,\r\nMODIFY\r\n COLUMN `receiveWarehouseId` varchar (25) NULL COMMENT '实际收货仓库Id'\r\nAFTER\r\n `deliveryOrderSn`,\r\nMODIFY\r\n COLUMN `receiveWarehouseName` varchar (50) NULL COMMENT '实际收货仓库'\r\nAFTER\r\n `receiveWarehouseId`,\r\nMODIFY\r\n COLUMN `warehouseGroupId` varchar (25) NULL COMMENT '仓组Id'\r\nAFTER\r\n `receiveWarehouseName`,\r\nMODIFY\r\n COLUMN `jiaTongCode` varchar (50) NULL COMMENT '佳同码'\r\nAFTER\r\n `warehouseGroupId`,\r\nMODIFY\r\n COLUMN `barCodeMd5` varchar (32) NULL COMMENT '商品条码MD5'\r\nAFTER\r\n `jiaTongCode`,\r\nMODIFY\r\n COLUMN `shippingMarkMd5` varchar (32) NULL COMMENT '箱唛文件MD5'\r\nAFTER\r\n `barCodeMd5`,\r\nMODIFY\r\n COLUMN `notes` varchar (50) NULL COMMENT '备注'\r\nAFTER\r\n `shippingMarkMd5`,\r\nMODIFY\r\n COLUMN `upLoadStatus` int NOT NULL DEFAULT '0' COMMENT '是否上传订单(上传后扣除用户授权金额,产生扣费记录)'\r\nAFTER\r\n `notes`,\r\nMODIFY\r\n COLUMN `add_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP\r\nAFTER\r\n `upLoadStatus`,\r\nMODIFY\r\n COLUMN `mdy_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP\r\nAFTER\r\n `add_time`";
- sql = "ALTER TABLE\r\n kjd_order.order_" + i + "\r\nMODIFY\r\n COLUMN `upProductId` varchar (25) NULL COMMENT '上家编号'\r\nAFTER\r\n `productId`";
- sql = "ALTER TABLE\r\n kjd_order.order_" + i + "\r\nADD\r\n COLUMN `supplierName` varchar (50) NOT NULL COMMENT '店铺名称',\r\nMODIFY\r\n COLUMN `originalPurchaseOrderSn` varchar (25) NOT NULL COMMENT '备母货单号'\r\nAFTER\r\n `supplierName`,\r\nMODIFY\r\n COLUMN `subPurchaseOrderSn` varchar (25) NOT NULL COMMENT '备货单号'\r\nAFTER\r\n `originalPurchaseOrderSn`,\r\nMODIFY\r\n COLUMN `productName` varchar (1000) NOT NULL\r\nAFTER\r\n `subPurchaseOrderSn`,\r\nMODIFY\r\n COLUMN `category` varchar (50) NOT NULL\r\nAFTER\r\n `productName`,\r\nMODIFY\r\n COLUMN `productId` varchar (25) NOT NULL COMMENT '商品编号'\r\nAFTER\r\n `category`,\r\nMODIFY\r\n COLUMN `upProductId` varchar (25) NULL COMMENT '上家编号'\r\nAFTER\r\n `productId`,\r\nMODIFY\r\n COLUMN `productSkcId` varchar (25) NOT NULL\r\nAFTER\r\n `upProductId`,\r\nMODIFY\r\n COLUMN `productSkcPicture` varchar (250) NOT NULL COMMENT '主图'\r\nAFTER\r\n `productSkcId`,\r\nMODIFY\r\n COLUMN `productSn` varchar (50) NULL COMMENT '货号'\r\nAFTER\r\n `productSkcPicture`,\r\nMODIFY\r\n COLUMN `status` int NOT NULL COMMENT '状态 1待发货 2已送货 7已入库 8已作废'\r\nAFTER\r\n `productSn`,\r\nMODIFY\r\n COLUMN `productSkuId` varchar (25) NOT NULL\r\nAFTER\r\n `status`,\r\nMODIFY\r\n COLUMN `extCode` varchar (50) NOT NULL COMMENT 'sku货号'\r\nAFTER\r\n `productSkuId`,\r\nMODIFY\r\n COLUMN `className` varchar (100) NOT NULL COMMENT 'sku规格'\r\nAFTER\r\n `extCode`,\r\nMODIFY\r\n COLUMN `currencyType` varchar (10) NOT NULL\r\nAFTER\r\n `className`,\r\nMODIFY\r\n COLUMN `supplierPrice` int NOT NULL COMMENT '申报价格'\r\nAFTER\r\n `currencyType`,\r\nMODIFY\r\n COLUMN `costPrice` int NULL COMMENT '成本价'\r\nAFTER\r\n `supplierPrice`,\r\nMODIFY\r\n COLUMN `deliveryFee` int NULL COMMENT '车队费'\r\nAFTER\r\n `costPrice`,\r\nMODIFY\r\n COLUMN `markFee` int NULL COMMENT '贴标费'\r\nAFTER\r\n `deliveryFee`,\r\nMODIFY\r\n COLUMN `purchaseQuantity` int NOT NULL COMMENT '备货件数'\r\nAFTER\r\n `markFee`,\r\nMODIFY\r\n COLUMN `deliverQuantity` int NOT NULL COMMENT '送货件数'\r\nAFTER\r\n `purchaseQuantity`,\r\nMODIFY\r\n COLUMN `realReceiveAuthenticQuantity` int NOT NULL COMMENT '入库件数'\r\nAFTER\r\n `deliverQuantity`,\r\nMODIFY\r\n COLUMN `availableSaleDays` decimal (10, 0) NULL COMMENT '可售天数'\r\nAFTER\r\n `realReceiveAuthenticQuantity`,\r\nMODIFY\r\n COLUMN `qcResult` int NULL COMMENT '抽检结果 1合格 2不合格'\r\nAFTER\r\n `availableSaleDays`,\r\nMODIFY\r\n COLUMN `thumbUrlList` varchar (500) NULL COMMENT 'sku图片'\r\nAFTER\r\n `qcResult`,\r\nMODIFY\r\n COLUMN `purchaseTime` bigint NOT NULL COMMENT '备货单创建时间'\r\nAFTER\r\n `thumbUrlList`,\r\nMODIFY\r\n COLUMN `deliverTime` bigint NULL COMMENT '发货时间'\r\nAFTER\r\n `purchaseTime`,\r\nMODIFY\r\n COLUMN `receiveTime` bigint NULL COMMENT '收货时间'\r\nAFTER\r\n `deliverTime`,\r\nMODIFY\r\n COLUMN `expectLatestDeliverTimeOrDefault` bigint NOT NULL COMMENT '最迟发货时间'\r\nAFTER\r\n `receiveTime`,\r\nMODIFY\r\n COLUMN `expectLatestArrivalTimeOrDefault` bigint NOT NULL COMMENT '最迟到货时间'\r\nAFTER\r\n `expectLatestDeliverTimeOrDefault`,\r\nMODIFY\r\n COLUMN `deliveryOrderSn` varchar (50) NULL COMMENT '发货单号'\r\nAFTER\r\n `expectLatestArrivalTimeOrDefault`,\r\nMODIFY\r\n COLUMN `receiveWarehouseId` varchar (25) NULL COMMENT '实际收货仓库Id'\r\nAFTER\r\n `deliveryOrderSn`,\r\nMODIFY\r\n COLUMN `receiveWarehouseName` varchar (50) NULL COMMENT '实际收货仓库'\r\nAFTER\r\n `receiveWarehouseId`,\r\nMODIFY\r\n COLUMN `warehouseGroupId` varchar (25) NULL COMMENT '仓组Id'\r\nAFTER\r\n `receiveWarehouseName`,\r\nMODIFY\r\n COLUMN `jiaTongCode` varchar (50) NULL COMMENT '佳同码'\r\nAFTER\r\n `warehouseGroupId`,\r\nMODIFY\r\n COLUMN `barCodeMd5` varchar (32) NULL COMMENT '商品条码MD5'\r\nAFTER\r\n `jiaTongCode`,\r\nMODIFY\r\n COLUMN `shippingMarkMd5` varchar (32) NULL COMMENT '箱唛文件MD5'\r\nAFTER\r\n `barCodeMd5`,\r\nMODIFY\r\n COLUMN `notes` varchar (50) NULL COMMENT '备注'\r\nAFTER\r\n `shippingMarkMd5`,\r\nMODIFY\r\n COLUMN `upLoadStatus` int NOT NULL DEFAULT '0' COMMENT '是否上传订单(上传后扣除用户授权金额,产生扣费记录)'\r\nAFTER\r\n `notes`,\r\nMODIFY\r\n COLUMN `add_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP\r\nAFTER\r\n `upLoadStatus`,\r\nMODIFY\r\n COLUMN `mdy_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP\r\nAFTER\r\n `add_time`";
+ //sql = @"drop table if exists kjd_order.order_code_" + i + ";\r\n";
+ sql = @"CREATE TABLE IF NOT EXISTS kjd_order.order_code_2026" + i.ToString("D2") + @" (
+ `id` int unsigned NOT NULL AUTO_INCREMENT,
+ `supplierId` varchar(25) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL,
+ `fileCodeMd5` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL,
+ `fileCodeBase64` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL,
+ `add_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP,
+ `mdy_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
+ PRIMARY KEY (`id`),
+ UNIQUE KEY `index_fileCodeMd5` (`fileCodeMd5`) USING BTREE
+) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_general_ci";
- sql = "ALTER TABLE\r\n kjd_order.order_" + i + " CHANGE COLUMN `shippingMarkMd5` `shippingMarkMd5` varchar (32) NULL COMMENT '箱唛文件MD5'";
- sql = "ALTER TABLE\r\n kjd_order.order_code_" + i + " DROP COLUMN `subPurchaseOrderSn`,\r\n DROP COLUMN `jiaTongCode`,\r\n DROP COLUMN `shippingMarkMd5`,\r\n DROP COLUMN `shippingMarkBase64`,\r\n CHANGE COLUMN `barCodeMd5` `fileCodeMd5` varchar (32) NOT NULL,\r\n CHANGE COLUMN `barCodeBase64` `fileCodeBase64` longtext NOT NULL,\r\nMODIFY\r\n COLUMN `add_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP\r\nAFTER\r\n `fileCodeBase64`,\r\nMODIFY\r\n COLUMN `mdy_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP\r\nAFTER\r\n `add_time`,\r\n DROP INDEX `index_subPurchaseOrderSn`,\r\nADD\r\n UNIQUE `index_fileCodeMd5` USING btree (`fileCodeMd5`)";
+ // sql = "ALTER TABLE\r\n kjd_order.order_" + i + "\r\nADD\r\n COLUMN `upLoadStatus` int NOT NULL DEFAULT 0 COMMENT '是否上传订单(上传后扣除用户授权金额,产生扣费记录)',\r\nMODIFY\r\n COLUMN `add_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP\r\nAFTER\r\n `upLoadStatus`,\r\nMODIFY\r\n COLUMN `mdy_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP\r\nAFTER\r\n `add_time`";
+ // sql = "ALTER TABLE\r\n kjd_order.order_" + i + "\r\nADD\r\n COLUMN `extCode` varchar (50) NOT NULL COMMENT 'sku货号',\r\nMODIFY\r\n COLUMN `className` varchar (100) NOT NULL COMMENT 'sku规格'\r\nAFTER\r\n `extCode`,\r\nMODIFY\r\n COLUMN `currencyType` varchar (10) NOT NULL\r\nAFTER\r\n `className`,\r\nMODIFY\r\n COLUMN `supplierPrice` int NOT NULL COMMENT '申报价格'\r\nAFTER\r\n `currencyType`,\r\nMODIFY\r\n COLUMN `purchaseQuantity` int NOT NULL COMMENT '备货件数'\r\nAFTER\r\n `supplierPrice`,\r\nMODIFY\r\n COLUMN `deliverQuantity` int NOT NULL COMMENT '送货件数'\r\nAFTER\r\n `purchaseQuantity`,\r\nMODIFY\r\n COLUMN `realReceiveAuthenticQuantity` int NOT NULL COMMENT '入库件数'\r\nAFTER\r\n `deliverQuantity`,\r\nMODIFY\r\n COLUMN `availableSaleDays` decimal (10, 0) NOT NULL COMMENT '可售天数'\r\nAFTER\r\n `realReceiveAuthenticQuantity`,\r\nMODIFY\r\n COLUMN `qcResult` int NULL COMMENT '抽检结果 1合格 2不合格'\r\nAFTER\r\n `availableSaleDays`,\r\nMODIFY\r\n COLUMN `thumbUrlList` varchar (500) NULL COMMENT 'sku图片'\r\nAFTER\r\n `qcResult`,\r\nMODIFY\r\n COLUMN `purchaseTime` bigint NOT NULL COMMENT '备货单创建时间'\r\nAFTER\r\n `thumbUrlList`,\r\nMODIFY\r\n COLUMN `deliverTime` bigint NULL COMMENT '发货时间'\r\nAFTER\r\n `purchaseTime`,\r\nMODIFY\r\n COLUMN `receiveTime` bigint NULL COMMENT '收货时间'\r\nAFTER\r\n `deliverTime`,\r\nMODIFY\r\n COLUMN `expectLatestDeliverTimeOrDefault` bigint NOT NULL COMMENT '最迟发货时间'\r\nAFTER\r\n `receiveTime`,\r\nMODIFY\r\n COLUMN `expectLatestArrivalTimeOrDefault` bigint NOT NULL COMMENT '最迟到货时间'\r\nAFTER\r\n `expectLatestDeliverTimeOrDefault`,\r\nMODIFY\r\n COLUMN `deliveryOrderSn` varchar (50) NULL COMMENT '发货单号'\r\nAFTER\r\n `expectLatestArrivalTimeOrDefault`,\r\nMODIFY\r\n COLUMN `receiveWarehouseId` varchar (25) NULL COMMENT '实际收货仓库Id'\r\nAFTER\r\n `deliveryOrderSn`,\r\nMODIFY\r\n COLUMN `receiveWarehouseName` varchar (50) NULL COMMENT '实际收货仓库'\r\nAFTER\r\n `receiveWarehouseId`,\r\nMODIFY\r\n COLUMN `warehouseGroupId` varchar (25) NULL COMMENT '仓组Id'\r\nAFTER\r\n `receiveWarehouseName`,\r\nMODIFY\r\n COLUMN `jiaTongCode` varchar (50) NULL COMMENT '佳同码'\r\nAFTER\r\n `warehouseGroupId`,\r\nMODIFY\r\n COLUMN `barCodeMd5` varchar (32) NULL COMMENT '商品条码MD5'\r\nAFTER\r\n `jiaTongCode`,\r\nMODIFY\r\n COLUMN `shippingMarkMd5` varchar (32) NULL COMMENT '箱唛文件MD5'\r\nAFTER\r\n `barCodeMd5`,\r\nMODIFY\r\n COLUMN `notes` varchar (50) NULL COMMENT '备注'\r\nAFTER\r\n `shippingMarkMd5`,\r\nMODIFY\r\n COLUMN `add_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP\r\nAFTER\r\n `notes`,\r\nMODIFY\r\n COLUMN `mdy_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP\r\nAFTER\r\n `add_time`";
+ // sql = "ALTER TABLE\r\n kjd_order.order_" + i + "\r\nMODIFY\r\n COLUMN `extCode` varchar (50) NOT NULL COMMENT 'sku货号'\r\nAFTER\r\n `productSkuId`,\r\nMODIFY\r\n COLUMN `className` varchar (100) NOT NULL COMMENT 'sku规格'\r\nAFTER\r\n `extCode`,\r\nMODIFY\r\n COLUMN `currencyType` varchar (10) NOT NULL\r\nAFTER\r\n `className`,\r\nMODIFY\r\n COLUMN `supplierPrice` int NOT NULL COMMENT '申报价格'\r\nAFTER\r\n `currencyType`,\r\nMODIFY\r\n COLUMN `purchaseQuantity` int NOT NULL COMMENT '备货件数'\r\nAFTER\r\n `supplierPrice`,\r\nMODIFY\r\n COLUMN `deliverQuantity` int NOT NULL COMMENT '送货件数'\r\nAFTER\r\n `purchaseQuantity`,\r\nMODIFY\r\n COLUMN `realReceiveAuthenticQuantity` int NOT NULL COMMENT '入库件数'\r\nAFTER\r\n `deliverQuantity`,\r\nMODIFY\r\n COLUMN `availableSaleDays` decimal (10, 0) NOT NULL COMMENT '可售天数'\r\nAFTER\r\n `realReceiveAuthenticQuantity`,\r\nMODIFY\r\n COLUMN `qcResult` int NULL COMMENT '抽检结果 1合格 2不合格'\r\nAFTER\r\n `availableSaleDays`,\r\nMODIFY\r\n COLUMN `thumbUrlList` varchar (500) NULL COMMENT 'sku图片'\r\nAFTER\r\n `qcResult`,\r\nMODIFY\r\n COLUMN `purchaseTime` bigint NOT NULL COMMENT '备货单创建时间'\r\nAFTER\r\n `thumbUrlList`,\r\nMODIFY\r\n COLUMN `deliverTime` bigint NULL COMMENT '发货时间'\r\nAFTER\r\n `purchaseTime`,\r\nMODIFY\r\n COLUMN `receiveTime` bigint NULL COMMENT '收货时间'\r\nAFTER\r\n `deliverTime`,\r\nMODIFY\r\n COLUMN `expectLatestDeliverTimeOrDefault` bigint NOT NULL COMMENT '最迟发货时间'\r\nAFTER\r\n `receiveTime`,\r\nMODIFY\r\n COLUMN `expectLatestArrivalTimeOrDefault` bigint NOT NULL COMMENT '最迟到货时间'\r\nAFTER\r\n `expectLatestDeliverTimeOrDefault`,\r\nMODIFY\r\n COLUMN `deliveryOrderSn` varchar (50) NULL COMMENT '发货单号'\r\nAFTER\r\n `expectLatestArrivalTimeOrDefault`,\r\nMODIFY\r\n COLUMN `receiveWarehouseId` varchar (25) NULL COMMENT '实际收货仓库Id'\r\nAFTER\r\n `deliveryOrderSn`,\r\nMODIFY\r\n COLUMN `receiveWarehouseName` varchar (50) NULL COMMENT '实际收货仓库'\r\nAFTER\r\n `receiveWarehouseId`,\r\nMODIFY\r\n COLUMN `warehouseGroupId` varchar (25) NULL COMMENT '仓组Id'\r\nAFTER\r\n `receiveWarehouseName`,\r\nMODIFY\r\n COLUMN `jiaTongCode` varchar (50) NULL COMMENT '佳同码'\r\nAFTER\r\n `warehouseGroupId`,\r\nMODIFY\r\n COLUMN `barCodeMd5` varchar (32) NULL COMMENT '商品条码MD5'\r\nAFTER\r\n `jiaTongCode`,\r\nMODIFY\r\n COLUMN `shippingMarkMd5` varchar (32) NULL COMMENT '箱唛文件MD5'\r\nAFTER\r\n `barCodeMd5`,\r\nMODIFY\r\n COLUMN `notes` varchar (50) NULL COMMENT '备注'\r\nAFTER\r\n `shippingMarkMd5`,\r\nMODIFY\r\n COLUMN `upLoadStatus` int NOT NULL DEFAULT '0' COMMENT '是否上传订单(上传后扣除用户授权金额,产生扣费记录)'\r\nAFTER\r\n `notes`";
+ // sql = "ALTER TABLE\r\n kjd_order.order_" + i + "\r\nADD\r\n COLUMN `costPrice` int NULL COMMENT '成本价',\r\nADD\r\n COLUMN `deliveryFee` int NULL COMMENT '车队费',\r\nADD\r\n COLUMN `markFee` int NULL COMMENT '贴标费',\r\nMODIFY\r\n COLUMN `purchaseQuantity` int NOT NULL COMMENT '备货件数'\r\nAFTER\r\n `markFee`,\r\nMODIFY\r\n COLUMN `deliverQuantity` int NOT NULL COMMENT '送货件数'\r\nAFTER\r\n `purchaseQuantity`,\r\nMODIFY\r\n COLUMN `realReceiveAuthenticQuantity` int NOT NULL COMMENT '入库件数'\r\nAFTER\r\n `deliverQuantity`,\r\nMODIFY\r\n COLUMN `availableSaleDays` decimal (10, 0) NOT NULL COMMENT '可售天数'\r\nAFTER\r\n `realReceiveAuthenticQuantity`,\r\nMODIFY\r\n COLUMN `qcResult` int NULL COMMENT '抽检结果 1合格 2不合格'\r\nAFTER\r\n `availableSaleDays`,\r\nMODIFY\r\n COLUMN `thumbUrlList` varchar (500) NULL COMMENT 'sku图片'\r\nAFTER\r\n `qcResult`,\r\nMODIFY\r\n COLUMN `purchaseTime` bigint NOT NULL COMMENT '备货单创建时间'\r\nAFTER\r\n `thumbUrlList`,\r\nMODIFY\r\n COLUMN `deliverTime` bigint NULL COMMENT '发货时间'\r\nAFTER\r\n `purchaseTime`,\r\nMODIFY\r\n COLUMN `receiveTime` bigint NULL COMMENT '收货时间'\r\nAFTER\r\n `deliverTime`,\r\nMODIFY\r\n COLUMN `expectLatestDeliverTimeOrDefault` bigint NOT NULL COMMENT '最迟发货时间'\r\nAFTER\r\n `receiveTime`,\r\nMODIFY\r\n COLUMN `expectLatestArrivalTimeOrDefault` bigint NOT NULL COMMENT '最迟到货时间'\r\nAFTER\r\n `expectLatestDeliverTimeOrDefault`,\r\nMODIFY\r\n COLUMN `deliveryOrderSn` varchar (50) NULL COMMENT '发货单号'\r\nAFTER\r\n `expectLatestArrivalTimeOrDefault`,\r\nMODIFY\r\n COLUMN `receiveWarehouseId` varchar (25) NULL COMMENT '实际收货仓库Id'\r\nAFTER\r\n `deliveryOrderSn`,\r\nMODIFY\r\n COLUMN `receiveWarehouseName` varchar (50) NULL COMMENT '实际收货仓库'\r\nAFTER\r\n `receiveWarehouseId`,\r\nMODIFY\r\n COLUMN `warehouseGroupId` varchar (25) NULL COMMENT '仓组Id'\r\nAFTER\r\n `receiveWarehouseName`,\r\nMODIFY\r\n COLUMN `jiaTongCode` varchar (50) NULL COMMENT '佳同码'\r\nAFTER\r\n `warehouseGroupId`,\r\nMODIFY\r\n COLUMN `barCodeMd5` varchar (32) NULL COMMENT '商品条码MD5'\r\nAFTER\r\n `jiaTongCode`,\r\nMODIFY\r\n COLUMN `shippingMarkMd5` varchar (32) NULL COMMENT '箱唛文件MD5'\r\nAFTER\r\n `barCodeMd5`,\r\nMODIFY\r\n COLUMN `notes` varchar (50) NULL COMMENT '备注'\r\nAFTER\r\n `shippingMarkMd5`,\r\nMODIFY\r\n COLUMN `upLoadStatus` int NOT NULL DEFAULT '0' COMMENT '是否上传订单(上传后扣除用户授权金额,产生扣费记录)'\r\nAFTER\r\n `notes`,\r\nMODIFY\r\n COLUMN `add_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP\r\nAFTER\r\n `upLoadStatus`,\r\nMODIFY\r\n COLUMN `mdy_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP\r\nAFTER\r\n `add_time`";
+ // sql = "ALTER TABLE\r\n kjd_order.order_" + i + "\r\nMODIFY\r\n COLUMN `originalPurchaseOrderSn` varchar (25) NOT NULL COMMENT '备母货单号'\r\nAFTER\r\n `supplierId`,\r\nMODIFY\r\n COLUMN `subPurchaseOrderSn` varchar (25) NOT NULL COMMENT '备货单号'\r\nAFTER\r\n `originalPurchaseOrderSn`";
+ // sql = "ALTER TABLE\r\n kjd_order.order_" + i + "\r\nMODIFY\r\n COLUMN `availableSaleDays` decimal (10, 0) NULL COMMENT '可售天数'\r\nAFTER\r\n `realReceiveAuthenticQuantity`";
+ // sql = "ALTER TABLE\r\n kjd_order.order_" + i + "\r\nADD\r\n COLUMN `upProductId` varchar (25) NOT NULL COMMENT '上家编号',\r\nMODIFY\r\n COLUMN `productSkcId` varchar (25) NOT NULL\r\nAFTER\r\n `upProductId`,\r\nMODIFY\r\n COLUMN `productSkcPicture` varchar (250) NOT NULL COMMENT '主图'\r\nAFTER\r\n `productSkcId`,\r\nMODIFY\r\n COLUMN `productSn` varchar (50) NULL COMMENT '货号'\r\nAFTER\r\n `productSkcPicture`,\r\nMODIFY\r\n COLUMN `status` int NOT NULL COMMENT '状态 1待发货 2已送货 7已入库 8已作废'\r\nAFTER\r\n `productSn`,\r\nMODIFY\r\n COLUMN `productSkuId` varchar (25) NOT NULL\r\nAFTER\r\n `status`,\r\nMODIFY\r\n COLUMN `extCode` varchar (50) NOT NULL COMMENT 'sku货号'\r\nAFTER\r\n `productSkuId`,\r\nMODIFY\r\n COLUMN `className` varchar (100) NOT NULL COMMENT 'sku规格'\r\nAFTER\r\n `extCode`,\r\nMODIFY\r\n COLUMN `currencyType` varchar (10) NOT NULL\r\nAFTER\r\n `className`,\r\nMODIFY\r\n COLUMN `supplierPrice` int NOT NULL COMMENT '申报价格'\r\nAFTER\r\n `currencyType`,\r\nMODIFY\r\n COLUMN `costPrice` int NULL COMMENT '成本价'\r\nAFTER\r\n `supplierPrice`,\r\nMODIFY\r\n COLUMN `deliveryFee` int NULL COMMENT '车队费'\r\nAFTER\r\n `costPrice`,\r\nMODIFY\r\n COLUMN `markFee` int NULL COMMENT '贴标费'\r\nAFTER\r\n `deliveryFee`,\r\nMODIFY\r\n COLUMN `purchaseQuantity` int NOT NULL COMMENT '备货件数'\r\nAFTER\r\n `markFee`,\r\nMODIFY\r\n COLUMN `deliverQuantity` int NOT NULL COMMENT '送货件数'\r\nAFTER\r\n `purchaseQuantity`,\r\nMODIFY\r\n COLUMN `realReceiveAuthenticQuantity` int NOT NULL COMMENT '入库件数'\r\nAFTER\r\n `deliverQuantity`,\r\nMODIFY\r\n COLUMN `availableSaleDays` decimal (10, 0) NULL COMMENT '可售天数'\r\nAFTER\r\n `realReceiveAuthenticQuantity`,\r\nMODIFY\r\n COLUMN `qcResult` int NULL COMMENT '抽检结果 1合格 2不合格'\r\nAFTER\r\n `availableSaleDays`,\r\nMODIFY\r\n COLUMN `thumbUrlList` varchar (500) NULL COMMENT 'sku图片'\r\nAFTER\r\n `qcResult`,\r\nMODIFY\r\n COLUMN `purchaseTime` bigint NOT NULL COMMENT '备货单创建时间'\r\nAFTER\r\n `thumbUrlList`,\r\nMODIFY\r\n COLUMN `deliverTime` bigint NULL COMMENT '发货时间'\r\nAFTER\r\n `purchaseTime`,\r\nMODIFY\r\n COLUMN `receiveTime` bigint NULL COMMENT '收货时间'\r\nAFTER\r\n `deliverTime`,\r\nMODIFY\r\n COLUMN `expectLatestDeliverTimeOrDefault` bigint NOT NULL COMMENT '最迟发货时间'\r\nAFTER\r\n `receiveTime`,\r\nMODIFY\r\n COLUMN `expectLatestArrivalTimeOrDefault` bigint NOT NULL COMMENT '最迟到货时间'\r\nAFTER\r\n `expectLatestDeliverTimeOrDefault`,\r\nMODIFY\r\n COLUMN `deliveryOrderSn` varchar (50) NULL COMMENT '发货单号'\r\nAFTER\r\n `expectLatestArrivalTimeOrDefault`,\r\nMODIFY\r\n COLUMN `receiveWarehouseId` varchar (25) NULL COMMENT '实际收货仓库Id'\r\nAFTER\r\n `deliveryOrderSn`,\r\nMODIFY\r\n COLUMN `receiveWarehouseName` varchar (50) NULL COMMENT '实际收货仓库'\r\nAFTER\r\n `receiveWarehouseId`,\r\nMODIFY\r\n COLUMN `warehouseGroupId` varchar (25) NULL COMMENT '仓组Id'\r\nAFTER\r\n `receiveWarehouseName`,\r\nMODIFY\r\n COLUMN `jiaTongCode` varchar (50) NULL COMMENT '佳同码'\r\nAFTER\r\n `warehouseGroupId`,\r\nMODIFY\r\n COLUMN `barCodeMd5` varchar (32) NULL COMMENT '商品条码MD5'\r\nAFTER\r\n `jiaTongCode`,\r\nMODIFY\r\n COLUMN `shippingMarkMd5` varchar (32) NULL COMMENT '箱唛文件MD5'\r\nAFTER\r\n `barCodeMd5`,\r\nMODIFY\r\n COLUMN `notes` varchar (50) NULL COMMENT '备注'\r\nAFTER\r\n `shippingMarkMd5`,\r\nMODIFY\r\n COLUMN `upLoadStatus` int NOT NULL DEFAULT '0' COMMENT '是否上传订单(上传后扣除用户授权金额,产生扣费记录)'\r\nAFTER\r\n `notes`,\r\nMODIFY\r\n COLUMN `add_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP\r\nAFTER\r\n `upLoadStatus`,\r\nMODIFY\r\n COLUMN `mdy_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP\r\nAFTER\r\n `add_time`";
+ // sql = "ALTER TABLE\r\n kjd_order.order_" + i + "\r\nMODIFY\r\n COLUMN `upProductId` varchar (25) NULL COMMENT '上家编号'\r\nAFTER\r\n `productId`";
+ // sql = "ALTER TABLE\r\n kjd_order.order_" + i + "\r\nADD\r\n COLUMN `supplierName` varchar (50) NOT NULL COMMENT '店铺名称',\r\nMODIFY\r\n COLUMN `originalPurchaseOrderSn` varchar (25) NOT NULL COMMENT '备母货单号'\r\nAFTER\r\n `supplierName`,\r\nMODIFY\r\n COLUMN `subPurchaseOrderSn` varchar (25) NOT NULL COMMENT '备货单号'\r\nAFTER\r\n `originalPurchaseOrderSn`,\r\nMODIFY\r\n COLUMN `productName` varchar (1000) NOT NULL\r\nAFTER\r\n `subPurchaseOrderSn`,\r\nMODIFY\r\n COLUMN `category` varchar (50) NOT NULL\r\nAFTER\r\n `productName`,\r\nMODIFY\r\n COLUMN `productId` varchar (25) NOT NULL COMMENT '商品编号'\r\nAFTER\r\n `category`,\r\nMODIFY\r\n COLUMN `upProductId` varchar (25) NULL COMMENT '上家编号'\r\nAFTER\r\n `productId`,\r\nMODIFY\r\n COLUMN `productSkcId` varchar (25) NOT NULL\r\nAFTER\r\n `upProductId`,\r\nMODIFY\r\n COLUMN `productSkcPicture` varchar (250) NOT NULL COMMENT '主图'\r\nAFTER\r\n `productSkcId`,\r\nMODIFY\r\n COLUMN `productSn` varchar (50) NULL COMMENT '货号'\r\nAFTER\r\n `productSkcPicture`,\r\nMODIFY\r\n COLUMN `status` int NOT NULL COMMENT '状态 1待发货 2已送货 7已入库 8已作废'\r\nAFTER\r\n `productSn`,\r\nMODIFY\r\n COLUMN `productSkuId` varchar (25) NOT NULL\r\nAFTER\r\n `status`,\r\nMODIFY\r\n COLUMN `extCode` varchar (50) NOT NULL COMMENT 'sku货号'\r\nAFTER\r\n `productSkuId`,\r\nMODIFY\r\n COLUMN `className` varchar (100) NOT NULL COMMENT 'sku规格'\r\nAFTER\r\n `extCode`,\r\nMODIFY\r\n COLUMN `currencyType` varchar (10) NOT NULL\r\nAFTER\r\n `className`,\r\nMODIFY\r\n COLUMN `supplierPrice` int NOT NULL COMMENT '申报价格'\r\nAFTER\r\n `currencyType`,\r\nMODIFY\r\n COLUMN `costPrice` int NULL COMMENT '成本价'\r\nAFTER\r\n `supplierPrice`,\r\nMODIFY\r\n COLUMN `deliveryFee` int NULL COMMENT '车队费'\r\nAFTER\r\n `costPrice`,\r\nMODIFY\r\n COLUMN `markFee` int NULL COMMENT '贴标费'\r\nAFTER\r\n `deliveryFee`,\r\nMODIFY\r\n COLUMN `purchaseQuantity` int NOT NULL COMMENT '备货件数'\r\nAFTER\r\n `markFee`,\r\nMODIFY\r\n COLUMN `deliverQuantity` int NOT NULL COMMENT '送货件数'\r\nAFTER\r\n `purchaseQuantity`,\r\nMODIFY\r\n COLUMN `realReceiveAuthenticQuantity` int NOT NULL COMMENT '入库件数'\r\nAFTER\r\n `deliverQuantity`,\r\nMODIFY\r\n COLUMN `availableSaleDays` decimal (10, 0) NULL COMMENT '可售天数'\r\nAFTER\r\n `realReceiveAuthenticQuantity`,\r\nMODIFY\r\n COLUMN `qcResult` int NULL COMMENT '抽检结果 1合格 2不合格'\r\nAFTER\r\n `availableSaleDays`,\r\nMODIFY\r\n COLUMN `thumbUrlList` varchar (500) NULL COMMENT 'sku图片'\r\nAFTER\r\n `qcResult`,\r\nMODIFY\r\n COLUMN `purchaseTime` bigint NOT NULL COMMENT '备货单创建时间'\r\nAFTER\r\n `thumbUrlList`,\r\nMODIFY\r\n COLUMN `deliverTime` bigint NULL COMMENT '发货时间'\r\nAFTER\r\n `purchaseTime`,\r\nMODIFY\r\n COLUMN `receiveTime` bigint NULL COMMENT '收货时间'\r\nAFTER\r\n `deliverTime`,\r\nMODIFY\r\n COLUMN `expectLatestDeliverTimeOrDefault` bigint NOT NULL COMMENT '最迟发货时间'\r\nAFTER\r\n `receiveTime`,\r\nMODIFY\r\n COLUMN `expectLatestArrivalTimeOrDefault` bigint NOT NULL COMMENT '最迟到货时间'\r\nAFTER\r\n `expectLatestDeliverTimeOrDefault`,\r\nMODIFY\r\n COLUMN `deliveryOrderSn` varchar (50) NULL COMMENT '发货单号'\r\nAFTER\r\n `expectLatestArrivalTimeOrDefault`,\r\nMODIFY\r\n COLUMN `receiveWarehouseId` varchar (25) NULL COMMENT '实际收货仓库Id'\r\nAFTER\r\n `deliveryOrderSn`,\r\nMODIFY\r\n COLUMN `receiveWarehouseName` varchar (50) NULL COMMENT '实际收货仓库'\r\nAFTER\r\n `receiveWarehouseId`,\r\nMODIFY\r\n COLUMN `warehouseGroupId` varchar (25) NULL COMMENT '仓组Id'\r\nAFTER\r\n `receiveWarehouseName`,\r\nMODIFY\r\n COLUMN `jiaTongCode` varchar (50) NULL COMMENT '佳同码'\r\nAFTER\r\n `warehouseGroupId`,\r\nMODIFY\r\n COLUMN `barCodeMd5` varchar (32) NULL COMMENT '商品条码MD5'\r\nAFTER\r\n `jiaTongCode`,\r\nMODIFY\r\n COLUMN `shippingMarkMd5` varchar (32) NULL COMMENT '箱唛文件MD5'\r\nAFTER\r\n `barCodeMd5`,\r\nMODIFY\r\n COLUMN `notes` varchar (50) NULL COMMENT '备注'\r\nAFTER\r\n `shippingMarkMd5`,\r\nMODIFY\r\n COLUMN `upLoadStatus` int NOT NULL DEFAULT '0' COMMENT '是否上传订单(上传后扣除用户授权金额,产生扣费记录)'\r\nAFTER\r\n `notes`,\r\nMODIFY\r\n COLUMN `add_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP\r\nAFTER\r\n `upLoadStatus`,\r\nMODIFY\r\n COLUMN `mdy_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP\r\nAFTER\r\n `add_time`";
+
+ // sql = "ALTER TABLE\r\n kjd_order.order_" + i + " CHANGE COLUMN `shippingMarkMd5` `shippingMarkMd5` varchar (32) NULL COMMENT '箱唛文件MD5'";
+ // sql = "ALTER TABLE\r\n kjd_order.order_code_" + i + " DROP COLUMN `subPurchaseOrderSn`,\r\n DROP COLUMN `jiaTongCode`,\r\n DROP COLUMN `shippingMarkMd5`,\r\n DROP COLUMN `shippingMarkBase64`,\r\n CHANGE COLUMN `barCodeMd5` `fileCodeMd5` varchar (32) NOT NULL,\r\n CHANGE COLUMN `barCodeBase64` `fileCodeBase64` longtext NOT NULL,\r\nMODIFY\r\n COLUMN `add_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP\r\nAFTER\r\n `fileCodeBase64`,\r\nMODIFY\r\n COLUMN `mdy_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP\r\nAFTER\r\n `add_time`,\r\n DROP INDEX `index_subPurchaseOrderSn`,\r\nADD\r\n UNIQUE `index_fileCodeMd5` USING btree (`fileCodeMd5`)";
var rst = mySql.ExecuteNonQuery(sql);
}
mySql.Close();
diff --git a/KJDService/KJD_WebService/BLL/KJD/UserManage.cs b/KJDService/KJD_WebService/BLL/KJD/UserManage.cs
index a870c9b..b472eed 100644
--- a/KJDService/KJD_WebService/BLL/KJD/UserManage.cs
+++ b/KJDService/KJD_WebService/BLL/KJD/UserManage.cs
@@ -397,8 +397,6 @@ namespace KJD_Web.BLL
return "{\"code\":19999,\"msg\":\"输入为空\"}";
}
-
-
public string ChangePassword(string inputData)
{
var userName = RegexUtils.GetStringJson(ref inputData, "user_name")?.Replace("'", "\\'");
@@ -436,6 +434,37 @@ namespace KJD_Web.BLL
}
}
+ public string GetUserAmount(string inputData)
+ {
+ if (!string.IsNullOrEmpty(inputData))
+ {
+ var time = 0;
+ int.TryParse(RegexUtils.GetStringQuery(ref inputData, "time"), out time);
+ string time1 = RegexUtils.GetStringQuery(ref inputData, "code");
+ if (time1 != EncrypUtil.Encryption(time))
+ return "{\"code\":50000,\"msg\":\"校验失败\"}";
+
+ var user_name = RegexUtils.GetStringQuery(ref inputData, "user_name")?.Replace("'", "\\'");
+ if (string.IsNullOrEmpty(user_name))
+ {
+ return "{\"code\":500,\"msg\":\"请输入用户\"}";
+ }
+ var password = RegexUtils.GetStringQuery(ref inputData, "password")?.Replace("'", "\\'");
+
+ string conn = System.Configuration.ConfigurationManager.ConnectionStrings["ConnKJD"].ConnectionString;
+ MysqlUtils mySql = new MysqlUtils(conn);
+ string sql = "select authorized_amount from kjd.user where user_name=" + user_name;
+
+ var rst = mySql.ExecuteFirst(sql);
+ mySql.Close();
+ if (!string.IsNullOrEmpty(rst))
+ {
+ return "{\"code\":200,\"msg\":\"success\",\"data\":" + rst + "}";
+ }
+ }
+ return "{\"code\":19999,\"msg\":\"输入为空\"}";
+ }
+
public string return_package_secret_key { get; set; } = "aaMETt2bPe6YHzZ1ojbC+6wOvgtwehqc6A+/Rz+pCUU=";
public string GetPackageSign(string inputData)
diff --git a/KJDService/KJD_WebService/OrderService.asmx.cs b/KJDService/KJD_WebService/OrderService.asmx.cs
index 4a90183..3cc286a 100644
--- a/KJDService/KJD_WebService/OrderService.asmx.cs
+++ b/KJDService/KJD_WebService/OrderService.asmx.cs
@@ -137,5 +137,17 @@ namespace KJD_Web
Context.Response.Write(result);
Context.Response.End();
}
+
+ [WebMethod]
+ public void update_order_status()
+ {
+ string jsontext = GetRequestJsonString();
+
+ var result = jsontext;
+ result = new OrderManage().UpdateOrderStatus(jsontext);
+
+ Context.Response.Write(result);
+ Context.Response.End();
+ }
}
}
diff --git a/KJDService/KJD_WebService/UserService.asmx.cs b/KJDService/KJD_WebService/UserService.asmx.cs
index dacd3e1..44a36ac 100644
--- a/KJDService/KJD_WebService/UserService.asmx.cs
+++ b/KJDService/KJD_WebService/UserService.asmx.cs
@@ -186,6 +186,19 @@ namespace KJD_Web
Context.Response.End();
}
+ [WebMethod]
+ public void get_user_amount()
+ {
+ string jsontext = GetRequestJsonString();
+
+ var result = jsontext;
+ result = new UserManage().GetUserAmount(jsontext);
+
+ Context.Response.Write(result);
+ Context.Response.End();
+ }
+
+
#region 暂时作废
/*
diff --git a/KJDService/KJD_WebService/Utils/MySqlUtils.cs b/KJDService/KJD_WebService/Utils/MySqlUtils.cs
index 1614f74..a3e3f32 100644
--- a/KJDService/KJD_WebService/Utils/MySqlUtils.cs
+++ b/KJDService/KJD_WebService/Utils/MySqlUtils.cs
@@ -381,9 +381,15 @@ namespace KJD_Web.Utils
return null;
}
- public int ExecuteRecordsRows(string SqlString)
+ ///
+ /// 返回更改、插入或删除的行数
+ ///
+ ///
+ ///
+ ///
+ public int ExecuteAffectedRows(string SqlString)
{
- return ExecuteRecordsRows(SqlString, null);
+ return ExecuteAffectedRows(SqlString, null);
}
///
/// 返回更改、插入或删除的行数
@@ -391,7 +397,7 @@ namespace KJD_Web.Utils
///
///
///
- public int ExecuteRecordsRows(string SqlString, MySqlParameter[] parms)
+ public int ExecuteAffectedRows(string SqlString, MySqlParameter[] parms)
{
SleepOrGo();
bool frist = true;
diff --git a/TEMUKJD/KJDForms/AdminForms/AdminProductPriceCheckForm.Designer.cs b/TEMUKJD/KJDForms/AdminForms/AdminProductPriceCheckForm.Designer.cs
index 6d05993..3804706 100644
--- a/TEMUKJD/KJDForms/AdminForms/AdminProductPriceCheckForm.Designer.cs
+++ b/TEMUKJD/KJDForms/AdminForms/AdminProductPriceCheckForm.Designer.cs
@@ -30,15 +30,15 @@ namespace TemuKJD.KJDForms.AdminForms
private void InitializeComponent()
{
this.components = new System.ComponentModel.Container();
- System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle19 = new System.Windows.Forms.DataGridViewCellStyle();
- System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle20 = new System.Windows.Forms.DataGridViewCellStyle();
- System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle21 = new System.Windows.Forms.DataGridViewCellStyle();
- System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle22 = new System.Windows.Forms.DataGridViewCellStyle();
- System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle23 = new System.Windows.Forms.DataGridViewCellStyle();
- System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle24 = new System.Windows.Forms.DataGridViewCellStyle();
- System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle25 = new System.Windows.Forms.DataGridViewCellStyle();
- System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle26 = new System.Windows.Forms.DataGridViewCellStyle();
- System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle27 = new System.Windows.Forms.DataGridViewCellStyle();
+ System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle1 = new System.Windows.Forms.DataGridViewCellStyle();
+ System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle2 = new System.Windows.Forms.DataGridViewCellStyle();
+ System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle3 = new System.Windows.Forms.DataGridViewCellStyle();
+ System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle4 = new System.Windows.Forms.DataGridViewCellStyle();
+ System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle5 = new System.Windows.Forms.DataGridViewCellStyle();
+ System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle6 = new System.Windows.Forms.DataGridViewCellStyle();
+ System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle7 = new System.Windows.Forms.DataGridViewCellStyle();
+ System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle8 = new System.Windows.Forms.DataGridViewCellStyle();
+ System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle9 = new System.Windows.Forms.DataGridViewCellStyle();
this.splitContainer1 = new System.Windows.Forms.SplitContainer();
this.ucGroupBoxEx1 = new TemuKJD.UserComponent.UcGroupBoxEx(this.components);
this.btnSearchPrice3 = new DevComponents.DotNetBar.PanelEx();
@@ -497,22 +497,22 @@ namespace TemuKJD.KJDForms.AdminForms
//
this.dgvExtCode.AllowUserToAddRows = false;
this.dgvExtCode.AllowUserToDeleteRows = false;
- dataGridViewCellStyle19.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(249)))), ((int)(((byte)(249)))), ((int)(((byte)(249)))));
- this.dgvExtCode.AlternatingRowsDefaultCellStyle = dataGridViewCellStyle19;
+ dataGridViewCellStyle1.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(249)))), ((int)(((byte)(249)))), ((int)(((byte)(249)))));
+ this.dgvExtCode.AlternatingRowsDefaultCellStyle = dataGridViewCellStyle1;
this.dgvExtCode.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
| System.Windows.Forms.AnchorStyles.Left)));
this.dgvExtCode.AutoRowNumber = false;
this.dgvExtCode.AutoSizeColumnsMode = System.Windows.Forms.DataGridViewAutoSizeColumnsMode.Fill;
this.dgvExtCode.BackgroundColor = System.Drawing.Color.White;
this.dgvExtCode.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255)))));
- dataGridViewCellStyle20.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleLeft;
- dataGridViewCellStyle20.BackColor = System.Drawing.SystemColors.Control;
- dataGridViewCellStyle20.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
- dataGridViewCellStyle20.ForeColor = System.Drawing.SystemColors.WindowText;
- dataGridViewCellStyle20.SelectionBackColor = System.Drawing.SystemColors.Highlight;
- dataGridViewCellStyle20.SelectionForeColor = System.Drawing.SystemColors.HighlightText;
- dataGridViewCellStyle20.WrapMode = System.Windows.Forms.DataGridViewTriState.False;
- this.dgvExtCode.ColumnHeadersDefaultCellStyle = dataGridViewCellStyle20;
+ dataGridViewCellStyle2.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleLeft;
+ dataGridViewCellStyle2.BackColor = System.Drawing.SystemColors.Control;
+ dataGridViewCellStyle2.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
+ dataGridViewCellStyle2.ForeColor = System.Drawing.SystemColors.WindowText;
+ dataGridViewCellStyle2.SelectionBackColor = System.Drawing.SystemColors.Highlight;
+ dataGridViewCellStyle2.SelectionForeColor = System.Drawing.SystemColors.HighlightText;
+ dataGridViewCellStyle2.WrapMode = System.Windows.Forms.DataGridViewTriState.False;
+ this.dgvExtCode.ColumnHeadersDefaultCellStyle = dataGridViewCellStyle2;
this.dgvExtCode.Columns.AddRange(new System.Windows.Forms.DataGridViewColumn[] {
this.colSelectExtCode,
this.colFilterExtCode,
@@ -1361,19 +1361,19 @@ namespace TemuKJD.KJDForms.AdminForms
//
this.dgvShop.AllowUserToAddRows = false;
this.dgvShop.AllowUserToDeleteRows = false;
- dataGridViewCellStyle21.BackColor = System.Drawing.Color.WhiteSmoke;
- this.dgvShop.AlternatingRowsDefaultCellStyle = dataGridViewCellStyle21;
+ dataGridViewCellStyle3.BackColor = System.Drawing.Color.WhiteSmoke;
+ this.dgvShop.AlternatingRowsDefaultCellStyle = dataGridViewCellStyle3;
this.dgvShop.AutoRowNumber = true;
this.dgvShop.BackgroundColor = System.Drawing.Color.White;
this.dgvShop.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255)))));
- dataGridViewCellStyle22.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleLeft;
- dataGridViewCellStyle22.BackColor = System.Drawing.SystemColors.Control;
- dataGridViewCellStyle22.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
- dataGridViewCellStyle22.ForeColor = System.Drawing.SystemColors.WindowText;
- dataGridViewCellStyle22.SelectionBackColor = System.Drawing.SystemColors.Highlight;
- dataGridViewCellStyle22.SelectionForeColor = System.Drawing.SystemColors.HighlightText;
- dataGridViewCellStyle22.WrapMode = System.Windows.Forms.DataGridViewTriState.False;
- this.dgvShop.ColumnHeadersDefaultCellStyle = dataGridViewCellStyle22;
+ dataGridViewCellStyle4.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleLeft;
+ dataGridViewCellStyle4.BackColor = System.Drawing.SystemColors.Control;
+ dataGridViewCellStyle4.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
+ dataGridViewCellStyle4.ForeColor = System.Drawing.SystemColors.WindowText;
+ dataGridViewCellStyle4.SelectionBackColor = System.Drawing.SystemColors.Highlight;
+ dataGridViewCellStyle4.SelectionForeColor = System.Drawing.SystemColors.HighlightText;
+ dataGridViewCellStyle4.WrapMode = System.Windows.Forms.DataGridViewTriState.False;
+ this.dgvShop.ColumnHeadersDefaultCellStyle = dataGridViewCellStyle4;
this.dgvShop.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize;
this.dgvShop.Columns.AddRange(new System.Windows.Forms.DataGridViewColumn[] {
this.colSelect,
@@ -1592,19 +1592,19 @@ namespace TemuKJD.KJDForms.AdminForms
//
this.dgvPriceCheck.AllowUserToAddRows = false;
this.dgvPriceCheck.AllowUserToDeleteRows = false;
- dataGridViewCellStyle23.BackColor = System.Drawing.Color.WhiteSmoke;
- this.dgvPriceCheck.AlternatingRowsDefaultCellStyle = dataGridViewCellStyle23;
+ dataGridViewCellStyle5.BackColor = System.Drawing.Color.WhiteSmoke;
+ this.dgvPriceCheck.AlternatingRowsDefaultCellStyle = dataGridViewCellStyle5;
this.dgvPriceCheck.AutoRowNumber = true;
this.dgvPriceCheck.BackgroundColor = System.Drawing.Color.White;
this.dgvPriceCheck.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255)))));
- dataGridViewCellStyle24.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleLeft;
- dataGridViewCellStyle24.BackColor = System.Drawing.SystemColors.Control;
- dataGridViewCellStyle24.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
- dataGridViewCellStyle24.ForeColor = System.Drawing.SystemColors.WindowText;
- dataGridViewCellStyle24.SelectionBackColor = System.Drawing.SystemColors.Highlight;
- dataGridViewCellStyle24.SelectionForeColor = System.Drawing.SystemColors.HighlightText;
- dataGridViewCellStyle24.WrapMode = System.Windows.Forms.DataGridViewTriState.False;
- this.dgvPriceCheck.ColumnHeadersDefaultCellStyle = dataGridViewCellStyle24;
+ dataGridViewCellStyle6.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleLeft;
+ dataGridViewCellStyle6.BackColor = System.Drawing.SystemColors.Control;
+ dataGridViewCellStyle6.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
+ dataGridViewCellStyle6.ForeColor = System.Drawing.SystemColors.WindowText;
+ dataGridViewCellStyle6.SelectionBackColor = System.Drawing.SystemColors.Highlight;
+ dataGridViewCellStyle6.SelectionForeColor = System.Drawing.SystemColors.HighlightText;
+ dataGridViewCellStyle6.WrapMode = System.Windows.Forms.DataGridViewTriState.False;
+ this.dgvPriceCheck.ColumnHeadersDefaultCellStyle = dataGridViewCellStyle6;
this.dgvPriceCheck.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize;
this.dgvPriceCheck.Columns.AddRange(new System.Windows.Forms.DataGridViewColumn[] {
this.colCheck,
@@ -1717,8 +1717,8 @@ namespace TemuKJD.KJDForms.AdminForms
//
// colProdName
//
- dataGridViewCellStyle25.WrapMode = System.Windows.Forms.DataGridViewTriState.True;
- this.colProdName.DefaultCellStyle = dataGridViewCellStyle25;
+ dataGridViewCellStyle7.WrapMode = System.Windows.Forms.DataGridViewTriState.True;
+ this.colProdName.DefaultCellStyle = dataGridViewCellStyle7;
this.colProdName.HeaderText = "标题";
this.colProdName.Name = "colProdName";
this.colProdName.ReadOnly = true;
@@ -1726,8 +1726,8 @@ namespace TemuKJD.KJDForms.AdminForms
//
// colSkuName
//
- dataGridViewCellStyle26.WrapMode = System.Windows.Forms.DataGridViewTriState.True;
- this.colSkuName.DefaultCellStyle = dataGridViewCellStyle26;
+ dataGridViewCellStyle8.WrapMode = System.Windows.Forms.DataGridViewTriState.True;
+ this.colSkuName.DefaultCellStyle = dataGridViewCellStyle8;
this.colSkuName.HeaderText = "规格名称";
this.colSkuName.Name = "colSkuName";
this.colSkuName.ReadOnly = true;
@@ -1777,8 +1777,8 @@ namespace TemuKJD.KJDForms.AdminForms
//
// colCreatTime
//
- dataGridViewCellStyle27.WrapMode = System.Windows.Forms.DataGridViewTriState.True;
- this.colCreatTime.DefaultCellStyle = dataGridViewCellStyle27;
+ dataGridViewCellStyle9.WrapMode = System.Windows.Forms.DataGridViewTriState.True;
+ this.colCreatTime.DefaultCellStyle = dataGridViewCellStyle9;
this.colCreatTime.HeaderText = "创建时间";
this.colCreatTime.Name = "colCreatTime";
this.colCreatTime.ReadOnly = true;
@@ -1833,15 +1833,15 @@ namespace TemuKJD.KJDForms.AdminForms
//
this.splitContainer4.Panel2.Controls.Add(this.statusBar);
this.splitContainer4.Size = new System.Drawing.Size(1484, 26);
- this.splitContainer4.SplitterDistance = 282;
+ this.splitContainer4.SplitterDistance = 322;
this.splitContainer4.TabIndex = 3;
//
// ucSplitPage1
//
this.ucSplitPage1.CurrentPage = 1;
- this.ucSplitPage1.Dock = System.Windows.Forms.DockStyle.Left;
+ this.ucSplitPage1.Dock = System.Windows.Forms.DockStyle.Right;
this.ucSplitPage1.IsShowPageSize = false;
- this.ucSplitPage1.Location = new System.Drawing.Point(0, 0);
+ this.ucSplitPage1.Location = new System.Drawing.Point(40, 0);
this.ucSplitPage1.Margin = new System.Windows.Forms.Padding(0);
this.ucSplitPage1.Name = "ucSplitPage1";
this.ucSplitPage1.PageSize = 50;
@@ -1858,7 +1858,7 @@ namespace TemuKJD.KJDForms.AdminForms
this.statusBar.Location = new System.Drawing.Point(0, 0);
this.statusBar.Margin = new System.Windows.Forms.Padding(0);
this.statusBar.Name = "statusBar";
- this.statusBar.Size = new System.Drawing.Size(1198, 26);
+ this.statusBar.Size = new System.Drawing.Size(1158, 26);
this.statusBar.TabIndex = 2;
//
// AdminProductPriceCheckForm
diff --git a/TEMUKJD/KJDForms/JITForms/JitOrderUploadFileForm.cs b/TEMUKJD/KJDForms/JITForms/JitOrderUploadFileForm.cs
index 2c68d33..b242b98 100644
--- a/TEMUKJD/KJDForms/JITForms/JitOrderUploadFileForm.cs
+++ b/TEMUKJD/KJDForms/JITForms/JitOrderUploadFileForm.cs
@@ -46,14 +46,15 @@ namespace TemuKJD.KJDForms.JITForms
var data = UserLogin.GetSignaturex();
data += "&file_md5=" + temuDBOrderInfo.barCodeMd5;
data += "&shop_id=" + temuDBOrderInfo.supplierId;
-
+ data += "&purchaseTime=" + temuDBOrderInfo.purchaseTime;
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("\"code\":200"))
{
+ var errMsg = BaseRegex.GetStringJson(ref html, "msg");
+ BaseMsgForm.ShowError(errMsg);
+ return;
}
else
{
@@ -74,14 +75,16 @@ namespace TemuKJD.KJDForms.JITForms
var data = UserLogin.GetSignaturex();
data += "&file_md5=" + temuDBOrderInfo.shippingMarkMd5;
data += "&shop_id=" + temuDBOrderInfo.supplierId;
+ data += "&purchaseTime=" + temuDBOrderInfo.purchaseTime;
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("\"code\":200"))
{
+ var errMsg = BaseRegex.GetStringJson(ref html, "msg");
+ BaseMsgForm.ShowError(errMsg);
+ return;
}
else
{
@@ -144,15 +147,15 @@ namespace TemuKJD.KJDForms.JITForms
data += "&file_base64=" + file_base64;
data += "&file_md5=" + file_md5;
data += "&shop_id=" + temuDBOrderInfo.supplierId;
+ data += "&purchaseTime=" + temuDBOrderInfo.purchaseTime;
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("\"code\":200"))
{
- BaseMsgForm.ShowError("文件上传服务端失败,请重试!" + BaseRegex.GetStringJson(ref html, "msg"));
+ var errMsg = BaseRegex.GetStringJson(ref html, "msg");
+ BaseMsgForm.ShowError("文件上传服务端失败,请重试!" + errMsg);
return false;
}
else
@@ -194,10 +197,9 @@ namespace TemuKJD.KJDForms.JITForms
data += "&shipping_mark_md5=" + shippingMarkMd5;
data += "&sub_order_sn=" + temuDBOrderInfo.subPurchaseOrderSn;
data += "&shop_id=" + temuDBOrderInfo.supplierId;
+ data += "&purchaseTime=" + temuDBOrderInfo.purchaseTime;
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("\"code\":200"))
diff --git a/TEMUKJD/KJDForms/JITForms/JitPushOrder.Designer.cs b/TEMUKJD/KJDForms/JITForms/JitPushOrder.Designer.cs
index 9d95f90..e40900d 100644
--- a/TEMUKJD/KJDForms/JITForms/JitPushOrder.Designer.cs
+++ b/TEMUKJD/KJDForms/JITForms/JitPushOrder.Designer.cs
@@ -41,12 +41,28 @@ namespace TemuKJD.KJDForms.JITForms
System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle9 = new System.Windows.Forms.DataGridViewCellStyle();
System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle10 = new System.Windows.Forms.DataGridViewCellStyle();
System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle11 = new System.Windows.Forms.DataGridViewCellStyle();
+ System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle12 = new System.Windows.Forms.DataGridViewCellStyle();
this.splitContainer1 = new System.Windows.Forms.SplitContainer();
this.ucGroupBoxEx1 = new TemuKJD.UserComponent.UcGroupBoxEx(this.components);
this.btnGetDbOrder = new DevComponents.DotNetBar.PanelEx();
this.pnlStatistics = new System.Windows.Forms.Panel();
+ this.tableLayoutPanel1 = new System.Windows.Forms.TableLayoutPanel();
+ this.lblOriginalOrderNumber = new System.Windows.Forms.Label();
+ this.label13 = new System.Windows.Forms.Label();
+ this.lblOrderTotalCost = new System.Windows.Forms.Label();
+ this.lblOrderTotalPrice = new System.Windows.Forms.Label();
+ this.label14 = new System.Windows.Forms.Label();
+ this.label16 = new System.Windows.Forms.Label();
+ this.lblOrderNumber = new System.Windows.Forms.Label();
+ this.label22 = new System.Windows.Forms.Label();
+ this.lblOrderTotalProfit = new System.Windows.Forms.Label();
+ this.label23 = new System.Windows.Forms.Label();
+ this.flowLayoutPanel1 = new System.Windows.Forms.FlowLayoutPanel();
+ this.lblRefreshAmount = new System.Windows.Forms.Label();
this.lblAuthorizedAmount = new System.Windows.Forms.Label();
+ this.label10 = new System.Windows.Forms.Label();
this.pnlGetNewOrder = new System.Windows.Forms.Panel();
+ this.txtErr = new System.Windows.Forms.TextBox();
this.btnStop = new DevComponents.DotNetBar.PanelEx();
this.btnSearchOrder = new DevComponents.DotNetBar.PanelEx();
this.lblNextGetTime = new System.Windows.Forms.Label();
@@ -84,18 +100,20 @@ namespace TemuKJD.KJDForms.JITForms
this.colLoginStatus = new System.Windows.Forms.DataGridViewLinkColumn();
this.colJitStatus = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.colCanUse = new System.Windows.Forms.DataGridViewCheckBoxColumn();
+ this.colOrderToday = new System.Windows.Forms.DataGridViewTextBoxColumn();
+ this.colOrder7Days = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.colMessage = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.panel1 = new System.Windows.Forms.Panel();
this.label7 = new System.Windows.Forms.Label();
- this.chkSearchTime = new TemuKJD.UserComponent.UcCheckBox(this.components);
this.txtSkcId = new System.Windows.Forms.TextBox();
this.txtSpuId = new System.Windows.Forms.TextBox();
this.label1 = new System.Windows.Forms.Label();
this.dtpStartTime = new System.Windows.Forms.DateTimePicker();
this.dtpEndTime = new System.Windows.Forms.DateTimePicker();
- this.label12 = new System.Windows.Forms.Label();
this.txtExtCode = new System.Windows.Forms.TextBox();
this.btnResetExtCode = new DevComponents.DotNetBar.PanelEx();
+ this.label12 = new System.Windows.Forms.Label();
+ this.chkSearchTime = new TemuKJD.UserComponent.UcCheckBox(this.components);
this.btnRestoreSizeAndNumber = new DevComponents.DotNetBar.PanelEx();
this.numJudgeWeight = new System.Windows.Forms.NumericUpDown();
this.numJudgeLen = new System.Windows.Forms.NumericUpDown();
@@ -142,6 +160,7 @@ namespace TemuKJD.KJDForms.JITForms
this.colCost = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.colPrcie = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.colStockUpNum = new System.Windows.Forms.DataGridViewTextBoxColumn();
+ this.colCreateTimeTick = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.colCreateTime = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.colUploadCode = new System.Windows.Forms.DataGridViewLinkColumn();
this.colUploadOrder = new System.Windows.Forms.DataGridViewLinkColumn();
@@ -156,6 +175,8 @@ namespace TemuKJD.KJDForms.JITForms
this.splitContainer1.SuspendLayout();
this.ucGroupBoxEx1.SuspendLayout();
this.pnlStatistics.SuspendLayout();
+ this.tableLayoutPanel1.SuspendLayout();
+ this.flowLayoutPanel1.SuspendLayout();
this.pnlGetNewOrder.SuspendLayout();
((System.ComponentModel.ISupportInitialize)(this.splitContainer3)).BeginInit();
this.splitContainer3.Panel1.SuspendLayout();
@@ -243,7 +264,6 @@ namespace TemuKJD.KJDForms.JITForms
this.ucGroupBoxEx1.TabIndex = 399;
this.ucGroupBoxEx1.TabStop = false;
this.ucGroupBoxEx1.Text = "参数设置";
- this.ucGroupBoxEx1.Enter += new System.EventHandler(this.ucGroupBoxEx1_Enter);
//
// btnGetDbOrder
//
@@ -251,9 +271,9 @@ namespace TemuKJD.KJDForms.JITForms
this.btnGetDbOrder.Cursor = System.Windows.Forms.Cursors.Hand;
this.btnGetDbOrder.DisabledBackColor = System.Drawing.Color.Empty;
this.btnGetDbOrder.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
- this.btnGetDbOrder.Location = new System.Drawing.Point(400, 103);
+ this.btnGetDbOrder.Location = new System.Drawing.Point(350, 103);
this.btnGetDbOrder.Name = "btnGetDbOrder";
- this.btnGetDbOrder.Size = new System.Drawing.Size(86, 23);
+ this.btnGetDbOrder.Size = new System.Drawing.Size(109, 23);
this.btnGetDbOrder.Style.Alignment = System.Drawing.StringAlignment.Center;
this.btnGetDbOrder.Style.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255)))));
this.btnGetDbOrder.Style.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255)))));
@@ -271,24 +291,206 @@ namespace TemuKJD.KJDForms.JITForms
//
// pnlStatistics
//
- this.pnlStatistics.Controls.Add(this.lblAuthorizedAmount);
- this.pnlStatistics.Location = new System.Drawing.Point(880, 13);
+ this.pnlStatistics.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
+ | System.Windows.Forms.AnchorStyles.Right)));
+ this.pnlStatistics.Controls.Add(this.tableLayoutPanel1);
+ this.pnlStatistics.Controls.Add(this.flowLayoutPanel1);
+ this.pnlStatistics.Location = new System.Drawing.Point(870, 13);
this.pnlStatistics.Name = "pnlStatistics";
- this.pnlStatistics.Size = new System.Drawing.Size(577, 119);
+ this.pnlStatistics.Size = new System.Drawing.Size(610, 119);
this.pnlStatistics.TabIndex = 1367;
//
+ // tableLayoutPanel1
+ //
+ this.tableLayoutPanel1.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
+ | System.Windows.Forms.AnchorStyles.Left)
+ | System.Windows.Forms.AnchorStyles.Right)));
+ this.tableLayoutPanel1.ColumnCount = 5;
+ this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 20.00105F));
+ this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 19.99974F));
+ this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 19.99974F));
+ this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 19.99974F));
+ this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 19.99974F));
+ this.tableLayoutPanel1.Controls.Add(this.lblOriginalOrderNumber, 0, 1);
+ this.tableLayoutPanel1.Controls.Add(this.label13, 0, 0);
+ this.tableLayoutPanel1.Controls.Add(this.lblOrderTotalCost, 3, 1);
+ this.tableLayoutPanel1.Controls.Add(this.lblOrderTotalPrice, 2, 1);
+ this.tableLayoutPanel1.Controls.Add(this.label14, 2, 0);
+ this.tableLayoutPanel1.Controls.Add(this.label16, 1, 0);
+ this.tableLayoutPanel1.Controls.Add(this.lblOrderNumber, 1, 1);
+ this.tableLayoutPanel1.Controls.Add(this.label22, 4, 0);
+ this.tableLayoutPanel1.Controls.Add(this.lblOrderTotalProfit, 4, 1);
+ this.tableLayoutPanel1.Controls.Add(this.label23, 3, 0);
+ this.tableLayoutPanel1.Location = new System.Drawing.Point(30, 35);
+ this.tableLayoutPanel1.Name = "tableLayoutPanel1";
+ this.tableLayoutPanel1.RowCount = 4;
+ this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 23F));
+ this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 27F));
+ this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 23F));
+ this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 27F));
+ this.tableLayoutPanel1.Size = new System.Drawing.Size(557, 134);
+ this.tableLayoutPanel1.TabIndex = 1172;
+ //
+ // lblOriginalOrderNumber
+ //
+ this.lblOriginalOrderNumber.Anchor = System.Windows.Forms.AnchorStyles.Left;
+ this.lblOriginalOrderNumber.AutoSize = true;
+ this.lblOriginalOrderNumber.Font = new System.Drawing.Font("微软雅黑", 11F);
+ this.lblOriginalOrderNumber.Location = new System.Drawing.Point(3, 38);
+ this.lblOriginalOrderNumber.Name = "lblOriginalOrderNumber";
+ this.lblOriginalOrderNumber.Size = new System.Drawing.Size(18, 20);
+ this.lblOriginalOrderNumber.TabIndex = 1172;
+ this.lblOriginalOrderNumber.Text = "0";
+ //
+ // label13
+ //
+ this.label13.Anchor = System.Windows.Forms.AnchorStyles.Left;
+ this.label13.AutoSize = true;
+ this.label13.ForeColor = System.Drawing.SystemColors.ControlDarkDark;
+ this.label13.Location = new System.Drawing.Point(3, 6);
+ this.label13.Name = "label13";
+ this.label13.Size = new System.Drawing.Size(92, 17);
+ this.label13.TabIndex = 1172;
+ this.label13.Text = "列表母订单总数";
+ //
+ // lblOrderTotalCost
+ //
+ this.lblOrderTotalCost.Anchor = System.Windows.Forms.AnchorStyles.Left;
+ this.lblOrderTotalCost.AutoSize = true;
+ this.lblOrderTotalCost.Font = new System.Drawing.Font("微软雅黑", 11F);
+ this.lblOrderTotalCost.Location = new System.Drawing.Point(336, 38);
+ this.lblOrderTotalCost.Name = "lblOrderTotalCost";
+ this.lblOrderTotalCost.Size = new System.Drawing.Size(18, 20);
+ this.lblOrderTotalCost.TabIndex = 16;
+ this.lblOrderTotalCost.Text = "0";
+ //
+ // lblOrderTotalPrice
+ //
+ this.lblOrderTotalPrice.Anchor = System.Windows.Forms.AnchorStyles.Left;
+ this.lblOrderTotalPrice.AutoSize = true;
+ this.lblOrderTotalPrice.Font = new System.Drawing.Font("微软雅黑", 11F);
+ this.lblOrderTotalPrice.Location = new System.Drawing.Point(225, 38);
+ this.lblOrderTotalPrice.Name = "lblOrderTotalPrice";
+ this.lblOrderTotalPrice.Size = new System.Drawing.Size(18, 20);
+ this.lblOrderTotalPrice.TabIndex = 15;
+ this.lblOrderTotalPrice.Text = "0";
+ //
+ // label14
+ //
+ this.label14.Anchor = System.Windows.Forms.AnchorStyles.Left;
+ this.label14.AutoSize = true;
+ this.label14.ForeColor = System.Drawing.SystemColors.ControlDarkDark;
+ this.label14.Location = new System.Drawing.Point(225, 6);
+ this.label14.Name = "label14";
+ this.label14.Size = new System.Drawing.Size(92, 17);
+ this.label14.TabIndex = 7;
+ this.label14.Text = "列表订单总金额";
+ //
+ // label16
+ //
+ this.label16.Anchor = System.Windows.Forms.AnchorStyles.Left;
+ this.label16.AutoSize = true;
+ this.label16.ForeColor = System.Drawing.SystemColors.ControlDarkDark;
+ this.label16.Location = new System.Drawing.Point(114, 6);
+ this.label16.Name = "label16";
+ this.label16.Size = new System.Drawing.Size(80, 17);
+ this.label16.TabIndex = 0;
+ this.label16.Text = "列表订单总数";
+ //
+ // lblOrderNumber
+ //
+ this.lblOrderNumber.Anchor = System.Windows.Forms.AnchorStyles.Left;
+ this.lblOrderNumber.AutoSize = true;
+ this.lblOrderNumber.Font = new System.Drawing.Font("微软雅黑", 11F);
+ this.lblOrderNumber.Location = new System.Drawing.Point(114, 38);
+ this.lblOrderNumber.Name = "lblOrderNumber";
+ this.lblOrderNumber.Size = new System.Drawing.Size(18, 20);
+ this.lblOrderNumber.TabIndex = 14;
+ this.lblOrderNumber.Text = "0";
+ //
+ // label22
+ //
+ this.label22.Anchor = System.Windows.Forms.AnchorStyles.Left;
+ this.label22.AutoSize = true;
+ this.label22.ForeColor = System.Drawing.SystemColors.ControlDarkDark;
+ this.label22.Location = new System.Drawing.Point(447, 6);
+ this.label22.Name = "label22";
+ this.label22.Size = new System.Drawing.Size(92, 17);
+ this.label22.TabIndex = 14;
+ this.label22.Text = "列表订单总利润";
+ //
+ // lblOrderTotalProfit
+ //
+ this.lblOrderTotalProfit.Anchor = System.Windows.Forms.AnchorStyles.Left;
+ this.lblOrderTotalProfit.AutoSize = true;
+ this.lblOrderTotalProfit.Font = new System.Drawing.Font("微软雅黑", 11F);
+ this.lblOrderTotalProfit.Location = new System.Drawing.Point(447, 38);
+ this.lblOrderTotalProfit.Name = "lblOrderTotalProfit";
+ this.lblOrderTotalProfit.Size = new System.Drawing.Size(18, 20);
+ this.lblOrderTotalProfit.TabIndex = 16;
+ this.lblOrderTotalProfit.Text = "0";
+ //
+ // label23
+ //
+ this.label23.Anchor = System.Windows.Forms.AnchorStyles.Left;
+ this.label23.AutoSize = true;
+ this.label23.ForeColor = System.Drawing.SystemColors.ControlDarkDark;
+ this.label23.Location = new System.Drawing.Point(336, 6);
+ this.label23.Name = "label23";
+ this.label23.Size = new System.Drawing.Size(92, 17);
+ this.label23.TabIndex = 14;
+ this.label23.Text = "列表订单总成本";
+ //
+ // flowLayoutPanel1
+ //
+ this.flowLayoutPanel1.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
+ this.flowLayoutPanel1.Controls.Add(this.lblRefreshAmount);
+ this.flowLayoutPanel1.Controls.Add(this.lblAuthorizedAmount);
+ this.flowLayoutPanel1.Controls.Add(this.label10);
+ this.flowLayoutPanel1.FlowDirection = System.Windows.Forms.FlowDirection.RightToLeft;
+ this.flowLayoutPanel1.Location = new System.Drawing.Point(326, 2);
+ this.flowLayoutPanel1.Name = "flowLayoutPanel1";
+ this.flowLayoutPanel1.Size = new System.Drawing.Size(284, 17);
+ this.flowLayoutPanel1.TabIndex = 1337;
+ //
+ // lblRefreshAmount
+ //
+ this.lblRefreshAmount.AutoSize = true;
+ this.lblRefreshAmount.Cursor = System.Windows.Forms.Cursors.Hand;
+ this.lblRefreshAmount.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Underline, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
+ this.lblRefreshAmount.ForeColor = System.Drawing.Color.Blue;
+ this.lblRefreshAmount.Location = new System.Drawing.Point(228, 0);
+ this.lblRefreshAmount.Margin = new System.Windows.Forms.Padding(10, 0, 0, 0);
+ this.lblRefreshAmount.Name = "lblRefreshAmount";
+ this.lblRefreshAmount.Size = new System.Drawing.Size(56, 17);
+ this.lblRefreshAmount.TabIndex = 1336;
+ this.lblRefreshAmount.Text = "点击刷新";
+ this.lblRefreshAmount.Click += new System.EventHandler(this.lblRefreshAmount_Click);
+ //
// lblAuthorizedAmount
//
this.lblAuthorizedAmount.AutoSize = true;
- this.lblAuthorizedAmount.Location = new System.Drawing.Point(21, 15);
- this.lblAuthorizedAmount.Margin = new System.Windows.Forms.Padding(6, 0, 0, 0);
+ this.lblAuthorizedAmount.ForeColor = System.Drawing.Color.OrangeRed;
+ this.lblAuthorizedAmount.Location = new System.Drawing.Point(203, 0);
+ this.lblAuthorizedAmount.Margin = new System.Windows.Forms.Padding(0);
this.lblAuthorizedAmount.Name = "lblAuthorizedAmount";
- this.lblAuthorizedAmount.Size = new System.Drawing.Size(104, 17);
+ this.lblAuthorizedAmount.Size = new System.Drawing.Size(15, 17);
this.lblAuthorizedAmount.TabIndex = 1335;
- this.lblAuthorizedAmount.Text = "账号剩余授权金:";
+ this.lblAuthorizedAmount.Text = "0";
+ //
+ // label10
+ //
+ this.label10.AutoSize = true;
+ this.label10.Location = new System.Drawing.Point(99, 0);
+ this.label10.Margin = new System.Windows.Forms.Padding(6, 0, 0, 0);
+ this.label10.Name = "label10";
+ this.label10.Size = new System.Drawing.Size(104, 17);
+ this.label10.TabIndex = 1337;
+ this.label10.Text = "账号剩余授权金:";
//
// pnlGetNewOrder
//
+ this.pnlGetNewOrder.Controls.Add(this.txtErr);
this.pnlGetNewOrder.Controls.Add(this.btnStop);
this.pnlGetNewOrder.Controls.Add(this.btnSearchOrder);
this.pnlGetNewOrder.Controls.Add(this.lblNextGetTime);
@@ -298,12 +500,21 @@ namespace TemuKJD.KJDForms.JITForms
this.pnlGetNewOrder.Size = new System.Drawing.Size(249, 119);
this.pnlGetNewOrder.TabIndex = 1354;
//
+ // txtErr
+ //
+ this.txtErr.BorderStyle = System.Windows.Forms.BorderStyle.None;
+ this.txtErr.Location = new System.Drawing.Point(13, 40);
+ this.txtErr.Multiline = true;
+ this.txtErr.Name = "txtErr";
+ this.txtErr.Size = new System.Drawing.Size(194, 49);
+ this.txtErr.TabIndex = 1308;
+ //
// btnStop
//
this.btnStop.CanvasColor = System.Drawing.SystemColors.Control;
this.btnStop.ColorSchemeStyle = DevComponents.DotNetBar.eDotNetBarStyle.StyleManagerControlled;
this.btnStop.DisabledBackColor = System.Drawing.Color.Empty;
- this.btnStop.Location = new System.Drawing.Point(18, 29);
+ this.btnStop.Location = new System.Drawing.Point(13, 10);
this.btnStop.Name = "btnStop";
this.btnStop.Size = new System.Drawing.Size(45, 23);
this.btnStop.Style.Alignment = System.Drawing.StringAlignment.Center;
@@ -328,7 +539,7 @@ namespace TemuKJD.KJDForms.JITForms
this.btnSearchOrder.Cursor = System.Windows.Forms.Cursors.Hand;
this.btnSearchOrder.DisabledBackColor = System.Drawing.Color.Empty;
this.btnSearchOrder.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
- this.btnSearchOrder.Location = new System.Drawing.Point(65, 29);
+ this.btnSearchOrder.Location = new System.Drawing.Point(60, 10);
this.btnSearchOrder.Name = "btnSearchOrder";
this.btnSearchOrder.Size = new System.Drawing.Size(147, 23);
this.btnSearchOrder.Style.Alignment = System.Drawing.StringAlignment.Center;
@@ -343,22 +554,22 @@ namespace TemuKJD.KJDForms.JITForms
this.btnSearchOrder.StyleMouseOver.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(25)))), ((int)(((byte)(102)))), ((int)(((byte)(255)))));
this.btnSearchOrder.StyleMouseOver.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(25)))), ((int)(((byte)(102)))), ((int)(((byte)(255)))));
this.btnSearchOrder.TabIndex = 996;
- this.btnSearchOrder.Text = "查询待发货订单";
+ this.btnSearchOrder.Text = "循环读取待发货订单";
this.btnSearchOrder.Click += new System.EventHandler(this.btnSearchOrder_Click);
//
// lblNextGetTime
//
this.lblNextGetTime.ForeColor = System.Drawing.SystemColors.ControlDarkDark;
- this.lblNextGetTime.Location = new System.Drawing.Point(16, 58);
+ this.lblNextGetTime.Location = new System.Drawing.Point(11, 93);
this.lblNextGetTime.Name = "lblNextGetTime";
- this.lblNextGetTime.Size = new System.Drawing.Size(201, 45);
+ this.lblNextGetTime.Size = new System.Drawing.Size(201, 18);
this.lblNextGetTime.TabIndex = 1291;
this.lblNextGetTime.Text = "这里显示距离下次读取订单剩余时间间隔数字";
//
// line1
//
this.line1.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255)))));
- this.line1.Location = new System.Drawing.Point(233, 9);
+ this.line1.Location = new System.Drawing.Point(235, 9);
this.line1.Name = "line1";
this.line1.Size = new System.Drawing.Size(11, 104);
this.line1.TabIndex = 1263;
@@ -426,9 +637,9 @@ namespace TemuKJD.KJDForms.JITForms
this.btnFilter.Cursor = System.Windows.Forms.Cursors.Hand;
this.btnFilter.DisabledBackColor = System.Drawing.Color.Empty;
this.btnFilter.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
- this.btnFilter.Location = new System.Drawing.Point(491, 103);
+ this.btnFilter.Location = new System.Drawing.Point(462, 103);
this.btnFilter.Name = "btnFilter";
- this.btnFilter.Size = new System.Drawing.Size(80, 23);
+ this.btnFilter.Size = new System.Drawing.Size(109, 23);
this.btnFilter.Style.Alignment = System.Drawing.StringAlignment.Center;
this.btnFilter.Style.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255)))));
this.btnFilter.Style.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255)))));
@@ -441,7 +652,7 @@ namespace TemuKJD.KJDForms.JITForms
this.btnFilter.StyleMouseOver.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(25)))), ((int)(((byte)(102)))), ((int)(((byte)(255)))));
this.btnFilter.StyleMouseOver.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(25)))), ((int)(((byte)(102)))), ((int)(((byte)(255)))));
this.btnFilter.TabIndex = 1290;
- this.btnFilter.Text = "筛选订单";
+ this.btnFilter.Text = "筛选订单列表";
this.btnFilter.Click += new System.EventHandler(this.btnFilter_Click);
//
// line2
@@ -637,14 +848,14 @@ namespace TemuKJD.KJDForms.JITForms
this.splitContainer2.Panel2.Controls.Add(this.dgvStock);
this.splitContainer2.Panel2.Padding = new System.Windows.Forms.Padding(0, 0, 4, 0);
this.splitContainer2.Size = new System.Drawing.Size(1489, 437);
- this.splitContainer2.SplitterDistance = 325;
+ this.splitContainer2.SplitterDistance = 430;
this.splitContainer2.TabIndex = 0;
//
// pbShopLoading
//
this.pbShopLoading.Anchor = System.Windows.Forms.AnchorStyles.None;
this.pbShopLoading.Image = global::TemuKJD.Properties.Resources.loading_blue;
- this.pbShopLoading.Location = new System.Drawing.Point(137, 193);
+ this.pbShopLoading.Location = new System.Drawing.Point(190, 193);
this.pbShopLoading.Name = "pbShopLoading";
this.pbShopLoading.Size = new System.Drawing.Size(50, 50);
this.pbShopLoading.SizeMode = System.Windows.Forms.PictureBoxSizeMode.StretchImage;
@@ -691,6 +902,8 @@ namespace TemuKJD.KJDForms.JITForms
this.colLoginStatus,
this.colJitStatus,
this.colCanUse,
+ this.colOrderToday,
+ this.colOrder7Days,
this.colMessage});
this.dgvShop.Dock = System.Windows.Forms.DockStyle.Fill;
this.dgvShop.Location = new System.Drawing.Point(4, 0);
@@ -698,7 +911,7 @@ namespace TemuKJD.KJDForms.JITForms
this.dgvShop.ReadOnly = true;
this.dgvShop.RowHeadersWidth = 25;
this.dgvShop.RowTemplate.Height = 23;
- this.dgvShop.Size = new System.Drawing.Size(321, 437);
+ this.dgvShop.Size = new System.Drawing.Size(426, 437);
this.dgvShop.TabIndex = 6;
this.dgvShop.CellContentClick += new System.Windows.Forms.DataGridViewCellEventHandler(this.dgvShop_CellContentClick);
//
@@ -774,6 +987,20 @@ namespace TemuKJD.KJDForms.JITForms
this.colCanUse.Visible = false;
this.colCanUse.Width = 28;
//
+ // colOrderToday
+ //
+ this.colOrderToday.HeaderText = "日订单";
+ this.colOrderToday.Name = "colOrderToday";
+ this.colOrderToday.ReadOnly = true;
+ this.colOrderToday.Width = 58;
+ //
+ // colOrder7Days
+ //
+ this.colOrder7Days.HeaderText = "7日订单";
+ this.colOrder7Days.Name = "colOrder7Days";
+ this.colOrder7Days.ReadOnly = true;
+ this.colOrder7Days.Width = 58;
+ //
// colMessage
//
this.colMessage.HeaderText = "消息";
@@ -783,15 +1010,15 @@ namespace TemuKJD.KJDForms.JITForms
// panel1
//
this.panel1.Controls.Add(this.label7);
- this.panel1.Controls.Add(this.chkSearchTime);
this.panel1.Controls.Add(this.txtSkcId);
this.panel1.Controls.Add(this.txtSpuId);
this.panel1.Controls.Add(this.label1);
this.panel1.Controls.Add(this.dtpStartTime);
this.panel1.Controls.Add(this.dtpEndTime);
- this.panel1.Controls.Add(this.label12);
this.panel1.Controls.Add(this.txtExtCode);
this.panel1.Controls.Add(this.btnResetExtCode);
+ this.panel1.Controls.Add(this.label12);
+ this.panel1.Controls.Add(this.chkSearchTime);
this.panel1.Location = new System.Drawing.Point(22, 151);
this.panel1.Name = "panel1";
this.panel1.Size = new System.Drawing.Size(278, 152);
@@ -807,18 +1034,6 @@ namespace TemuKJD.KJDForms.JITForms
this.label7.TabIndex = 998;
this.label7.Text = "SpuId:";
//
- // chkSearchTime
- //
- this.chkSearchTime.AutoSize = true;
- this.chkSearchTime.Checked = true;
- this.chkSearchTime.CheckState = System.Windows.Forms.CheckState.Checked;
- this.chkSearchTime.Location = new System.Drawing.Point(4, 86);
- this.chkSearchTime.Name = "chkSearchTime";
- this.chkSearchTime.Size = new System.Drawing.Size(63, 21);
- this.chkSearchTime.TabIndex = 1002;
- this.chkSearchTime.Text = "日期:";
- this.chkSearchTime.UseVisualStyleBackColor = true;
- //
// txtSkcId
//
this.txtSkcId.Location = new System.Drawing.Point(51, 37);
@@ -856,15 +1071,6 @@ namespace TemuKJD.KJDForms.JITForms
this.dtpEndTime.Size = new System.Drawing.Size(110, 23);
this.dtpEndTime.TabIndex = 1001;
//
- // label12
- //
- this.label12.AutoSize = true;
- this.label12.Location = new System.Drawing.Point(17, 64);
- this.label12.Name = "label12";
- this.label12.Size = new System.Drawing.Size(44, 17);
- this.label12.TabIndex = 1004;
- this.label12.Text = "货号:";
- //
// txtExtCode
//
this.txtExtCode.Location = new System.Drawing.Point(51, 61);
@@ -895,6 +1101,27 @@ namespace TemuKJD.KJDForms.JITForms
this.btnResetExtCode.TabIndex = 1005;
this.btnResetExtCode.Text = "重置";
//
+ // label12
+ //
+ this.label12.AutoSize = true;
+ this.label12.Location = new System.Drawing.Point(17, 64);
+ this.label12.Name = "label12";
+ this.label12.Size = new System.Drawing.Size(44, 17);
+ this.label12.TabIndex = 1004;
+ this.label12.Text = "货号:";
+ //
+ // chkSearchTime
+ //
+ this.chkSearchTime.AutoSize = true;
+ this.chkSearchTime.Checked = true;
+ this.chkSearchTime.CheckState = System.Windows.Forms.CheckState.Checked;
+ this.chkSearchTime.Location = new System.Drawing.Point(4, 86);
+ this.chkSearchTime.Name = "chkSearchTime";
+ this.chkSearchTime.Size = new System.Drawing.Size(63, 21);
+ this.chkSearchTime.TabIndex = 1002;
+ this.chkSearchTime.Text = "日期:";
+ this.chkSearchTime.UseVisualStyleBackColor = true;
+ //
// btnRestoreSizeAndNumber
//
this.btnRestoreSizeAndNumber.ColorSchemeStyle = DevComponents.DotNetBar.eDotNetBarStyle.StyleManagerControlled;
@@ -1241,7 +1468,7 @@ namespace TemuKJD.KJDForms.JITForms
//
this.pbLoading.Anchor = System.Windows.Forms.AnchorStyles.None;
this.pbLoading.Image = global::TemuKJD.Properties.Resources.loading_blue;
- this.pbLoading.Location = new System.Drawing.Point(539, 193);
+ this.pbLoading.Location = new System.Drawing.Point(486, 193);
this.pbLoading.Name = "pbLoading";
this.pbLoading.Size = new System.Drawing.Size(50, 50);
this.pbLoading.SizeMode = System.Windows.Forms.PictureBoxSizeMode.StretchImage;
@@ -1290,6 +1517,7 @@ namespace TemuKJD.KJDForms.JITForms
this.colCost,
this.colPrcie,
this.colStockUpNum,
+ this.colCreateTimeTick,
this.colCreateTime,
this.colUploadCode,
this.colUploadOrder,
@@ -1299,8 +1527,9 @@ namespace TemuKJD.KJDForms.JITForms
this.dgvStock.Name = "dgvStock";
this.dgvStock.ReadOnly = true;
this.dgvStock.RowTemplate.Height = 23;
- this.dgvStock.Size = new System.Drawing.Size(1156, 437);
+ this.dgvStock.Size = new System.Drawing.Size(1051, 437);
this.dgvStock.TabIndex = 676;
+ this.dgvStock.CellClick += new System.Windows.Forms.DataGridViewCellEventHandler(this.dgvStock_CellClick);
this.dgvStock.CellContentClick += new System.Windows.Forms.DataGridViewCellEventHandler(this.dgvStock_CellContentClick);
//
// colCheck
@@ -1495,6 +1724,13 @@ namespace TemuKJD.KJDForms.JITForms
this.colStockUpNum.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.NotSortable;
this.colStockUpNum.Width = 65;
//
+ // colCreateTimeTick
+ //
+ this.colCreateTimeTick.HeaderText = "创建时间戳";
+ this.colCreateTimeTick.Name = "colCreateTimeTick";
+ this.colCreateTimeTick.ReadOnly = true;
+ this.colCreateTimeTick.Visible = false;
+ //
// colCreateTime
//
dataGridViewCellStyle11.WrapMode = System.Windows.Forms.DataGridViewTriState.True;
@@ -1510,14 +1746,17 @@ namespace TemuKJD.KJDForms.JITForms
this.colUploadCode.Name = "colUploadCode";
this.colUploadCode.ReadOnly = true;
this.colUploadCode.Resizable = System.Windows.Forms.DataGridViewTriState.True;
+ this.colUploadCode.Width = 95;
//
// colUploadOrder
//
+ dataGridViewCellStyle12.WrapMode = System.Windows.Forms.DataGridViewTriState.True;
+ this.colUploadOrder.DefaultCellStyle = dataGridViewCellStyle12;
this.colUploadOrder.HeaderText = "上传订单";
this.colUploadOrder.Name = "colUploadOrder";
this.colUploadOrder.ReadOnly = true;
this.colUploadOrder.Resizable = System.Windows.Forms.DataGridViewTriState.True;
- this.colUploadOrder.Width = 80;
+ this.colUploadOrder.Width = 65;
//
// colMsg
//
@@ -1614,8 +1853,12 @@ namespace TemuKJD.KJDForms.JITForms
this.ucGroupBoxEx1.ResumeLayout(false);
this.ucGroupBoxEx1.PerformLayout();
this.pnlStatistics.ResumeLayout(false);
- this.pnlStatistics.PerformLayout();
+ this.tableLayoutPanel1.ResumeLayout(false);
+ this.tableLayoutPanel1.PerformLayout();
+ this.flowLayoutPanel1.ResumeLayout(false);
+ this.flowLayoutPanel1.PerformLayout();
this.pnlGetNewOrder.ResumeLayout(false);
+ this.pnlGetNewOrder.PerformLayout();
this.splitContainer3.Panel1.ResumeLayout(false);
this.splitContainer3.Panel2.ResumeLayout(false);
((System.ComponentModel.ISupportInitialize)(this.splitContainer3)).EndInit();
@@ -1681,16 +1924,6 @@ namespace TemuKJD.KJDForms.JITForms
private System.Windows.Forms.PictureBox pbShopLoading;
private UserComponent.UcCheckBox chkSearchAllShop;
private UserComponent.DataGridViewEx dgvShop;
- private System.Windows.Forms.DataGridViewCheckBoxColumn colSelect;
- private System.Windows.Forms.DataGridViewTextBoxColumn colUser;
- private System.Windows.Forms.DataGridViewTextBoxColumn colLoginName;
- private System.Windows.Forms.DataGridViewTextBoxColumn colShopId;
- private System.Windows.Forms.DataGridViewTextBoxColumn colShopName;
- private System.Windows.Forms.DataGridViewTextBoxColumn colShopNotes;
- private System.Windows.Forms.DataGridViewLinkColumn colLoginStatus;
- private System.Windows.Forms.DataGridViewTextBoxColumn colJitStatus;
- private System.Windows.Forms.DataGridViewCheckBoxColumn colCanUse;
- private System.Windows.Forms.DataGridViewTextBoxColumn colMessage;
private System.Windows.Forms.PictureBox pbLoading;
private System.Windows.Forms.SplitContainer splitContainer4;
private UserControls.UcSplitPage ucSplitPage1;
@@ -1738,6 +1971,22 @@ namespace TemuKJD.KJDForms.JITForms
private System.Windows.Forms.Label lblNextGetTime;
private System.Windows.Forms.Panel pnlStatistics;
private DevComponents.DotNetBar.PanelEx btnGetDbOrder;
+ private System.Windows.Forms.TextBox txtErr;
+ private System.Windows.Forms.FlowLayoutPanel flowLayoutPanel1;
+ private System.Windows.Forms.Label lblRefreshAmount;
+ private System.Windows.Forms.Label label10;
+ private System.Windows.Forms.DataGridViewCheckBoxColumn colSelect;
+ private System.Windows.Forms.DataGridViewTextBoxColumn colUser;
+ private System.Windows.Forms.DataGridViewTextBoxColumn colLoginName;
+ private System.Windows.Forms.DataGridViewTextBoxColumn colShopId;
+ private System.Windows.Forms.DataGridViewTextBoxColumn colShopName;
+ private System.Windows.Forms.DataGridViewTextBoxColumn colShopNotes;
+ private System.Windows.Forms.DataGridViewLinkColumn colLoginStatus;
+ private System.Windows.Forms.DataGridViewTextBoxColumn colJitStatus;
+ private System.Windows.Forms.DataGridViewCheckBoxColumn colCanUse;
+ private System.Windows.Forms.DataGridViewTextBoxColumn colOrderToday;
+ private System.Windows.Forms.DataGridViewTextBoxColumn colOrder7Days;
+ private System.Windows.Forms.DataGridViewTextBoxColumn colMessage;
private System.Windows.Forms.DataGridViewCheckBoxColumn colCheck;
private System.Windows.Forms.DataGridViewTextBoxColumn colIndexId;
private System.Windows.Forms.DataGridViewTextBoxColumn colSupplierId;
@@ -1760,9 +2009,21 @@ namespace TemuKJD.KJDForms.JITForms
private System.Windows.Forms.DataGridViewTextBoxColumn colCost;
private System.Windows.Forms.DataGridViewTextBoxColumn colPrcie;
private System.Windows.Forms.DataGridViewTextBoxColumn colStockUpNum;
+ private System.Windows.Forms.DataGridViewTextBoxColumn colCreateTimeTick;
private System.Windows.Forms.DataGridViewTextBoxColumn colCreateTime;
private System.Windows.Forms.DataGridViewLinkColumn colUploadCode;
private System.Windows.Forms.DataGridViewLinkColumn colUploadOrder;
private System.Windows.Forms.DataGridViewTextBoxColumn colMsg;
+ private System.Windows.Forms.TableLayoutPanel tableLayoutPanel1;
+ private System.Windows.Forms.Label lblOrderTotalCost;
+ private System.Windows.Forms.Label lblOrderTotalPrice;
+ private System.Windows.Forms.Label label14;
+ private System.Windows.Forms.Label label16;
+ private System.Windows.Forms.Label lblOrderNumber;
+ private System.Windows.Forms.Label label22;
+ private System.Windows.Forms.Label lblOrderTotalProfit;
+ private System.Windows.Forms.Label label23;
+ private System.Windows.Forms.Label lblOriginalOrderNumber;
+ private System.Windows.Forms.Label label13;
}
}
\ No newline at end of file
diff --git a/TEMUKJD/KJDForms/JITForms/JitPushOrder.cs b/TEMUKJD/KJDForms/JITForms/JitPushOrder.cs
index e677860..2ca4f45 100644
--- a/TEMUKJD/KJDForms/JITForms/JitPushOrder.cs
+++ b/TEMUKJD/KJDForms/JITForms/JitPushOrder.cs
@@ -20,6 +20,7 @@ using TemuKJD.Extension;
using TemuKJD.KJDForms.AdminForms;
using TemuKJD.KJDForms.ProductForms;
using TemuKJD.KJDForms.ShopForms;
+using TemuKJD.KJDForms.ShopForms.Statistics;
using TemuKJD.ToolForms;
using Work;
@@ -60,18 +61,24 @@ namespace TemuKJD.KJDForms.JITForms
if (!IsClientJit)
{
ucSplitPage1.Visible = true;
- btnGetDbOrder.Visible = true;
+ //btnGetDbOrder.Visible = true;
+ btnGetDbOrder.Text = "拉取已上传订单";
pnlGetNewOrder.Visible = false;
pnlStatistics.Visible = false;
colJitStatus.Visible = false;
+ dgvShop.Columns["colOrderToday"].Visible = false;
+ dgvShop.Columns["colOrder7days"].Visible = false;
+ splitContainer2.SplitterDistance = 320;
}
else
{
ucSplitPage1.Visible = false;
- btnGetDbOrder.Visible = false;
+ //btnGetDbOrder.Visible = false;
+ btnGetDbOrder.Text = "刷新已读取订单";
pnlGetNewOrder.Visible = true;
pnlStatistics.Visible = true;
}
+ splitContainer4.SplitterDistance = splitContainer2.SplitterDistance - 4;
lblNextGetTime.Text = "";
@@ -110,10 +117,10 @@ namespace TemuKJD.KJDForms.JITForms
this.txtExtCode.TextChanged += Txt_TextChanged;
this.chkSearchTime.CheckedChanged += Txt_TextChanged;
- lblAuthorizedAmount.Text = "剩余授权金:" + BaseClass.AuthorizedAmount;
+ lblAuthorizedAmount.Text = "" + BaseClass.AuthorizedAmount.ParseToDecimal().ToString("0.0");
if (IsClientJit)
- loadServerDbOrder();
+ btnGetDbOrder_Click(null, null);
}
private void chkSelectAll_CheckedChanged(object sender, EventArgs e)
{
@@ -218,6 +225,8 @@ namespace TemuKJD.KJDForms.JITForms
shop.Notes,
canUse ? "在线" : "掉线",
canUse,
+ string.Empty,
+ string.Empty,
string.Empty
);
displayShopStatus(shop);
@@ -516,6 +525,9 @@ namespace TemuKJD.KJDForms.JITForms
row.Cells["colMessage"].Value = "";
}
+ txtErr.Text = "状态正常";
+ txtErr.ForeColor = Color.Black;
+
cancellationTokenSource = new CancellationTokenSource();
Task.Run(() =>
{
@@ -532,15 +544,18 @@ namespace TemuKJD.KJDForms.JITForms
{
Task.Run(() =>
{
+ Task.Run(() => { GetMainStatics(lstShopId, cancellationTokenSource); });
+
lstOrderForSupplierInfo.Clear();
GetNewOrder(lstShopId, cancellationTokenSource);
+ statisticsListOrder();
});
nextReadTime = DateTime.Now.AddMinutes(30);
}
Thread.Sleep(1000);
Invoke(new Action(() => {
var ticks = nextReadTime - DateTime.Now;
- lblNextGetTime.Text = "距离下次读取剩余:" + ticks.Minutes + "分" + ticks.Seconds + "秒";
+ lblNextGetTime.Text = "下次读取:" + nextReadTime.ToString("HH:mm") + ",剩余:" + ticks.Minutes + "分" + ticks.Seconds + "秒";
}));
if (cancellationTokenSource?.IsCancellationRequested == true)
{
@@ -554,9 +569,76 @@ namespace TemuKJD.KJDForms.JITForms
}
}
+ void GetMainStatics(List lstShopId, CancellationTokenSource _cancellationTokenSource)
+ {
+
+ var lstShopIdTemp = new ConcurrentList();
+ lstShopIdTemp.AddRange(lstShopId);
+ foreach (var shopId in lstShopIdTemp)
+ {
+ if (_cancellationTokenSource.IsCancellationRequested)
+ break;
+
+ bool rst = true;
+ ShopLoginInfo shop = GetAndCheckShopLogin(shopId, ref rst);
+ if (!rst)
+ {
+ continue;
+ }
+
+ ShopOrderStatisticsInfo statistics = new ShopOrderStatisticsInfo();
+ string html = ShopOrderStatisticsForm.GetMainStatistics(shop);
+ if (!html.Contains("\"success\":true"))
+ html = ShopOrderStatisticsForm.GetMainStatistics(shop);
+ if (html.Contains("\"success\":true"))
+ {
+ statistics.aboutToSellOutNumber = BaseRegex.GetNullableIntJson(ref html, "aboutToSellOutNumber");
+ statistics.adjustPrice = BaseRegex.GetNullableIntJson(ref html, "adjustPrice");
+ statistics.advicePrepareSkcNumber = BaseRegex.GetNullableIntJson(ref html, "advicePrepareSkcNumber");
+ statistics.alreadySoldOutNumber = BaseRegex.GetNullableIntJson(ref html, "alreadySoldOutNumber");
+ statistics.havePublishProduct = BaseRegex.GetNullableBoolJson(ref html, "havePublishProduct");
+ statistics.highPriceLimitNumber = BaseRegex.GetNullableIntJson(ref html, "highPriceLimitNumber");
+ statistics.lackSkcNumber = BaseRegex.GetNullableIntJson(ref html, "lackSkcNumber");
+ statistics.onSaleProductNumber = BaseRegex.GetNullableIntJson(ref html, "onSaleProductNumber");
+ statistics.qualityAfterSaleRatio90d = BaseRegex.GetNullableIntJson(ref html, "qualityAfterSaleRatio90d");
+ statistics.reviewAdjustPrice = BaseRegex.GetNullableIntJson(ref html, "reviewAdjustPrice");
+ statistics.saleVolume = BaseRegex.GetNullableIntJson(ref html, "saleVolume");
+ statistics.sevenDaysSaleVolume = BaseRegex.GetNullableIntJson(ref html, "sevenDaysSaleVolume");
+ statistics.thirtyDaysSaleVolume = BaseRegex.GetNullableIntJson(ref html, "thirtyDaysSaleVolume");
+ statistics.waitProductNumber = BaseRegex.GetNullableIntJson(ref html, "waitProductNumber");
+ statistics.is_search_1 = true;
+
+ Invoke(new Action(() =>
+ {
+ var rows = this.dgvShop.Rows.Cast().Where(r => r.Cells["colShopId"].Value.ToString() == shop.ShopId);
+ foreach (var row in rows)
+ {
+ row.Cells["colOrderToday"].Value = statistics.saleVolume;
+ row.Cells["colOrder7Days"].Value = statistics.sevenDaysSaleVolume;
+ }
+ }));
+ }
+ else
+ {
+ string errStr = BaseRegex.GetStringJson(ref html, "errorMsg");
+ if (string.IsNullOrEmpty(errStr))
+ errStr = BaseRegex.GetStringJson(ref html, "error_msg");
+ if (string.IsNullOrEmpty(errStr))
+ errStr = html;
+ if (errStr.Contains("Invalid Login State"))
+ {
+ ShopListForm.Instance.CheckShopLogin(new string[] { shop.LoginName }, false);
+ }
+ Thread.Sleep(Randomx.GetId(100, 200));
+ statistics.err_msg = errStr;
+ continue;
+ }
+ }
+ }
+
void GetNewOrder(List lstShopId, CancellationTokenSource _cancellationTokenSource)
{
- var lstShopIdTemp = new List();
+ var lstShopIdTemp = new ConcurrentList();
lstShopIdTemp.AddRange(lstShopId);
int i = 0;
foreach (var shopId in lstShopIdTemp)
@@ -569,49 +651,15 @@ namespace TemuKJD.KJDForms.JITForms
i++;
}));
- if (cancellationTokenSource.IsCancellationRequested)
+ if (_cancellationTokenSource.IsCancellationRequested)
break;
- ShopLoginInfo shop = null;
- if (!IsClientJit)
- {
- shop = this.lstAdminShopInfo.FirstOrDefault(s => s.ShopId == shopId);
- }
- else
- {
- shop = GlobalConfig.ShopLoginList.FirstOrDefault(s => s.ShopId == shopId);
- }
- if (shop == null)
- continue;
-
- #region 检测登录
- if (shop.LoginStatus2 != "国际版在线")
+ bool rst = true;
+ ShopLoginInfo shop = GetAndCheckShopLogin(shopId, ref rst);
+ if (!rst)
{
continue;
}
- if (!IsClientJit)
- {
- AdminShopListForm.Instance.CheckShopLogin(new ShopLoginInfo[] { shop }, false);
- }
- else
- {
- ShopListForm.Instance.CheckShopLogin(new ShopLoginInfo[] { shop }, false);
- }
- if (shop.LoginStatus2 != "国际版在线")
- {
- Invoke(new Action(() =>
- {
- var rows = this.dgvShop.Rows.Cast().Where(r => r.Cells["colLoginName"].Value.ToString() == shop.LoginName);
- foreach (var row in rows)
- {
- row.Cells["colMessage"].Value = "店铺掉线";
- row.Cells["colLoginStatus"].Value = "未登录";
- row.Cells["colCanUse"].Value = false;
- }
- }));
- continue;
- }
- #endregion
Invoke(new Action(() =>
{
@@ -629,7 +677,7 @@ namespace TemuKJD.KJDForms.JITForms
string errorMsg = "";
while (page <= totalPage)
{
- if (cancellationTokenSource.IsCancellationRequested)
+ if (_cancellationTokenSource.IsCancellationRequested)
break;
Thread.Sleep(100 + Randomx.GetId(200));
@@ -651,6 +699,9 @@ namespace TemuKJD.KJDForms.JITForms
ConcurrentList subOrderInfoLst = new ConcurrentList();
if (jsonStr.Contains("\"success\":true"))
{
+ int total = BaseRegex.GetStringJson(ref jsonStr, "total").ParseToInt();
+ totalPage = Math.Ceiling(1.0m * total / pageSize).ParseToInt();
+
var jArr = new JArray();
try
{
@@ -740,46 +791,43 @@ namespace TemuKJD.KJDForms.JITForms
var url = BaseClass.BuildObjString("order/add_order");
var data = UserLogin.GetSignaturex() +
- //"&page=" + page +
- //"&page_size=" + pageSize +
"&shop_id=" + dbOrderInfo.supplierId +
"&order_data=" + HttpUtility.UrlEncode(JsonHelper.SerializeObject(dbOrderInfo), Encoding.UTF8);
- //if (BaseClass.SaLevel > 1 && !chkSearchAllShop.Checked)
- // data += "&operate_sub_sa_name=" + BaseClass.UserName;
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("\"code\":200"))
+#if RELEASE
+ if (string.IsNullOrEmpty(html) || !html.Contains("\"code\":200"))
+ html = GetHtml.PostUtf8(url, data);
+#endif
+ if (string.IsNullOrEmpty(html) || !html.Contains("\"code\":200"))
{
-
-
-
+ var errMsg = BaseRegex.GetStringJson(ref html, "msg");
+ Invoke(new Action(() =>
+ {
+ txtErr.Text = "订单入库失败,请检查网络" + errMsg;
+ txtErr.ForeColor = Color.Red;
+ }));
}
-
Invoke(new Action(() =>
{
int rowId = 0;
- var rows = this.dgvStock.Rows.Cast();
- foreach (var r in rows)
+ var rw = this.dgvStock.Rows.Cast().LastOrDefault(r =>
+ r.Cells["colSupplierId"].Value.ParseToString() == shop.ShopId &&
+ r.Cells["colCreateTimeTick"].Value.ParseToLong() > dbOrderInfo.purchaseTime
+ );
+ if (rw != null)
{
- if (r.Cells["colSupplierId"].Value.ParseToString() == shop.ShopId && r.Cells["colCreateTime"].Value.ParseToLong() <= dbOrderInfo.purchaseTime)
- {
- rowId = r.Index;
- break;
- }
+ rowId = rw.Index + 1;
}
- InsertRow(rowId, dbOrderInfo);
+ if (dbOrderInfo.costPrice > 0)
+ InsertRow(rowId, dbOrderInfo);
}));
}
- int total = BaseRegex.GetStringJson(ref jsonStr, "total").ParseToInt();
- totalPage = Math.Ceiling(1.0m * total / pageSize).ParseToInt();
}
page++;
}
+ InsertRowEnd(); // 处理合并单元格恰在好最后一行的情况
Invoke(new Action(() =>
{
@@ -804,7 +852,7 @@ namespace TemuKJD.KJDForms.JITForms
Invoke(new Action(() =>
{
string sRst = "查询结束!";
- if (cancellationTokenSource.IsCancellationRequested)
+ if (_cancellationTokenSource.IsCancellationRequested)
sRst = "已取消查询!";
//BaseMsgForm.ShowInfo(sRst);
@@ -812,6 +860,8 @@ namespace TemuKJD.KJDForms.JITForms
}));
}
+ Dictionary> dicMergeInfoCells = new Dictionary>();
+ Dictionary> dicMergeImgCells = new Dictionary>();
ConcurrentList MergeInfoCells = new ConcurrentList();
ConcurrentList MergeImgCells = new ConcurrentList();
void InsertRow(int rowId, TemuDBOrderInfo dbOrderInfo)
@@ -851,6 +901,7 @@ namespace TemuKJD.KJDForms.JITForms
dbOrderInfo.supplierPrice / 100m,
dbOrderInfo.purchaseQuantity, // 备货件数
+ dbOrderInfo.purchaseTime,
BaseClass.StampToDateTime((dbOrderInfo.purchaseTime / 1000).ParseToInt()).ToString("yyyy-MM-dd HH:mm:ss"), // 备货单创建时间
"",
""
@@ -868,13 +919,13 @@ namespace TemuKJD.KJDForms.JITForms
if (MergeInfoCells.Count > 1)
{
ConcurrentList cells = new ConcurrentList();
- cells.AddRange(MergeInfoCells);
+ cells.AddRange(MergeInfoCells.OrderBy(c => c.RowIndex));
dgvStock.AddVerticalMergeCell(cells);
}
if (MergeImgCells.Count > 1)
{
ConcurrentList cells = new ConcurrentList();
- cells.AddRange(MergeImgCells);
+ cells.AddRange(MergeImgCells.OrderBy(c => c.RowIndex));
dgvStock.AddVerticalMergeCell(cells);
}
MergeInfoCells.Clear();
@@ -886,12 +937,15 @@ namespace TemuKJD.KJDForms.JITForms
{
MergeInfoCells.Insert(0, dgvStock.Rows[rowId].Cells["colProdInfo"]);
MergeImgCells.Insert(0, dgvStock.Rows[rowId].Cells["colProductSkcPic"]);
- if (dgvStock.Rows.Count > rowId + 1)
- {
- //dgvStock.Rows[rowId + 1].Cells["colProdInfo"].Value = "";
- dgvStock.Rows[rowId + 1].Cells["colProductSkcPic"].Value = this.defaultBitmap;
- }
}
+
+ //if (!dicMergeInfoCells.ContainsKey(dbOrderInfo.originalPurchaseOrderSn))
+ // dicMergeInfoCells.Add(dbOrderInfo.originalPurchaseOrderSn, new ConcurrentList());
+ //dicMergeInfoCells["dbOrderInfo.originalPurchaseOrderSn"].Add(dgvStock.Rows[rowId].Cells["colProdInfo"]);
+ //if (!dicMergeImgCells.ContainsKey(dbOrderInfo.originalPurchaseOrderSn))
+ // dicMergeImgCells.Add(dbOrderInfo.originalPurchaseOrderSn, new ConcurrentList());
+ //dicMergeImgCells["dbOrderInfo.originalPurchaseOrderSn"].Add(dgvStock.Rows[rowId].Cells["colProductSkcPic"]);
+
if (indexId % 2 == 1)
row.DefaultCellStyle.BackColor = Color.White;
else
@@ -900,10 +954,28 @@ namespace TemuKJD.KJDForms.JITForms
FilterRow(row);
}
+ void InsertRowEnd()
+ {
+ if (MergeInfoCells.Count > 1)
+ {
+ ConcurrentList cells = new ConcurrentList();
+ cells.AddRange(MergeInfoCells.OrderBy(c => c.RowIndex));
+ dgvStock.AddVerticalMergeCell(cells);
+ }
+ if (MergeImgCells.Count > 1)
+ {
+ ConcurrentList cells = new ConcurrentList();
+ cells.AddRange(MergeImgCells.OrderBy(c => c.RowIndex));
+ dgvStock.AddVerticalMergeCell(cells);
+ }
+ MergeInfoCells.Clear();
+ MergeImgCells.Clear();
+ }
+
void SetRowLinkCellText(TemuDBOrderInfo dbOrderInfo, DataGridViewRow row)
{
string upLoadCodeText = "";
- //if (dbOrderInfo.upLoadStatus < 2)
+ if(IsClientJit)
{
upLoadCodeText = "上传";
if (!string.IsNullOrWhiteSpace(dbOrderInfo.jiaTongCode) && !string.IsNullOrWhiteSpace(dbOrderInfo.barCodeMd5) &&
@@ -912,102 +984,125 @@ namespace TemuKJD.KJDForms.JITForms
upLoadCodeText = "修改上传";
}
}
- if (!IsClientJit)
+ else
{
upLoadCodeText = "查看";
}
string upLoadOrderText = "";
- if (dbOrderInfo.upLoadStatus < 2 && upLoadCodeText == "修改上传")
+ if (IsClientJit)
{
- upLoadOrderText = "上传订单";
+ if (dbOrderInfo.upLoadStatus < 2)
+ {
+ if (!string.IsNullOrWhiteSpace(dbOrderInfo.jiaTongCode) && !string.IsNullOrWhiteSpace(dbOrderInfo.barCodeMd5) &&
+ !string.IsNullOrWhiteSpace(dbOrderInfo.shippingMarkMd5))
+ {
+ upLoadOrderText = "上传订单";
+ }
+ }
+ if (dbOrderInfo.upLoadStatus == 2)
+ {
+ upLoadOrderText = "已上传";
+ }
+ if (dbOrderInfo.upLoadStatus == 3)
+ {
+ upLoadOrderText = "已打单";
+ }
+ if (dbOrderInfo.upLoadStatus == 4)
+ {
+ upLoadOrderText = "已发货";
+ }
}
- if (dbOrderInfo.upLoadStatus >= 2)
+ else
{
- upLoadOrderText = "已上传";
+ if (dbOrderInfo.upLoadStatus == 2)
+ {
+ upLoadOrderText = "已上传 点击打单";
+ }
+ if (dbOrderInfo.upLoadStatus == 3)
+ {
+ upLoadOrderText = "已打单 点击发货";
+ }
+ if (dbOrderInfo.upLoadStatus == 4)
+ {
+ upLoadOrderText = "已发货";
+ }
}
row.Cells["colUploadCode"].Value = upLoadCodeText;
row.Cells["colUploadOrder"].Value = upLoadOrderText;
}
- void loadServerDbOrder()
+ void clientLoadServerDbOrder()
{
- Task.Run(() =>
+ var shops = GlobalConfig.ShopLoginList;
+ for (int i = shops.Count - 1; i >= 0; i--)
{
- var shops = GlobalConfig.ShopLoginList;
- if (!IsClientJit)
+ var shop = shops[i];
+ if (shop.jit_expire_time >= DateTime.Now.Date)
{
- var lstShopId = dgvShop.Rows.Cast().Where(row
- => row.Cells["colSelect"]?.Value.ParseToBool() == true).Select(r => r.Cells["colShopId"]?.Value.ToString()).ToList();
- if (lstShopId.Count == 0)
+ loadServerDbOrder(shop);
+ }
+ }
+ statisticsListOrder();
+ }
+
+ void loadServerDbOrder(ShopLoginInfo shop)
+ {
+ int page = 0;
+ int totalPage = 1;
+ int pageSize = 200;
+ while (page < totalPage)
+ {
+ page++;
+ var url = BaseClass.BuildObjString("order/get_order_list");
+ var data = UserLogin.GetSignaturex() +
+ "&page_size=" + pageSize +
+ "&page=" + page;
+ if (shop != null)
+ data += "&shop_id=" + shop.ShopId;
+ if (!IsClientJit)
+ data += "&upload_order_status=2";
+ var html = GetHtml.PostUtf8(url, data);
+ if (string.IsNullOrEmpty(html) || !html.Contains("\"code\":200"))
+ html = GetHtml.PostUtf8(url, data);
+ Thread.Sleep(50);
+ if (string.IsNullOrEmpty(html) || !html.Contains("\"code\":200"))
+ {
+ var errMsg = BaseRegex.GetStringJson(ref html, "msg");
+ Invoke(new Action(() =>
+ {
+ txtErr.Text = "拉取入库订单失败,请检查网络" + errMsg;
+ txtErr.ForeColor = Color.Red;
+ }));
+ }
+ else
+ {
+ int total = BaseRegex.GetStringJson(ref html, "count").ParseToInt();
+ totalPage = Math.Ceiling(1.0m * total / pageSize).ParseToInt();
+
+ var jObj = JObject.Parse(html);
+ var list = JsonHelper.DeserializeJsonToList(jObj["data"].ToString());
+ list = list.Where(s => !lstTemuDBOrderInfo.Any(o => o.subPurchaseOrderSn == s.subPurchaseOrderSn)).ToList();
+ lstTemuDBOrderInfo.AddRange(list);
+ foreach (var dbOrderInfo in list)
{
Invoke(new Action(() =>
{
- BaseMsgForm.ShowInfo("请选择店铺!");
- }));
- return;
- }
- lstTemuDBOrderInfo.Clear();
- Invoke(new Action(() =>
- {
- dgvStock.Rows.Clear();
- }));
- shops.Clear();
- foreach (var shopId in lstShopId)
- {
- shops.Add(this.lstAdminShopInfo.FirstOrDefault(s => s.ShopId == shopId));
- }
- }
- for (int i = shops.Count - 1; i >= 0; i--)
- {
- var shop = shops[i];
- if (shop.jit_expire_time >= DateTime.Now.Date)
- {
- int page = 0;
- int totalPage = 1;
- int pageSize = 50;
- while (page < totalPage)
- {
- page++;
- var url = BaseClass.BuildObjString("order/get_order_list");
- var data = UserLogin.GetSignaturex() +
- //"&page=" + page +
- //"&page_size=" + pageSize +
- "&shop_id=" + shop.ShopId +
- "&page=" + page;
- if (!IsClientJit)
- data += "&upload_order_status=2";
- //if (BaseClass.SaLevel > 1 && !chkSearchAllShop.Checked)
- // data += "&operate_sub_sa_name=" + BaseClass.UserName;
- 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("\"code\":200"))
+ int rowId = 0;
+ var rw = this.dgvStock.Rows.Cast().LastOrDefault(r =>
+ r.Cells["colSupplierId"].Value.ParseToString() == shop.ShopId &&
+ r.Cells["colCreateTimeTick"].Value.ParseToLong() > dbOrderInfo.purchaseTime
+ );
+ if (rw != null)
{
- //lstTemuDBOrderInfo.AddRange()
-
- var jObj = JObject.Parse(html);
- var list = JsonHelper.DeserializeJsonToList(jObj["data"].ToString());
- list = list.Where(s => !lstTemuDBOrderInfo.Any(o => o.subPurchaseOrderSn == s.subPurchaseOrderSn)).ToList();
- lstTemuDBOrderInfo.AddRange(list);
- foreach (var dbOrderInfo in list)
- {
- Invoke(new Action(() =>
- {
- int rowId = 0;
- InsertRow(rowId, dbOrderInfo);
-
- }));
- }
-
- int total = BaseRegex.GetStringJson(ref html, "count").ParseToInt();
- totalPage = Math.Ceiling(1.0m * total / pageSize).ParseToInt();
+ rowId = rw.Index + 1;
}
- }
+ if(dbOrderInfo.costPrice > 0)
+ InsertRow(rowId, dbOrderInfo);
+ }));
}
}
- });
+ }
+ InsertRowEnd(); // 处理合并单元格恰在好最后一行的情况
}
string getLength2312Str(string text, int length = 30)
@@ -1083,17 +1178,18 @@ namespace TemuKJD.KJDForms.JITForms
{
if (!checkNeedRestoreSizeAndNumber(priceInfo))
{
- // todo 更改不用再修商品并改参数提交到数据库;
+ //不用再修尺寸的商品提交到数据库更新所有同id商品,已废弃;
var url = BaseClass.BuildObjString("order/update_order_status1");
var data = UserLogin.GetSignaturex() +
"&shop_id=" + shop.ShopId +
"&product_id=" + priceInfo.productId;
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("\"code\":200"))
+ if (string.IsNullOrEmpty(html) || !html.Contains("\"code\":200"))
+ html = GetHtml.PostUtf8(url, data);
+ if (string.IsNullOrEmpty(html) || !html.Contains("\"code\":200"))
+ {
+ }
+ else
{
foreach(var o in lstTemuDBOrderInfo)
{
@@ -1285,7 +1381,10 @@ namespace TemuKJD.KJDForms.JITForms
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"))
+ if (string.IsNullOrEmpty(html) || !html.Contains("\"code\":200"))
+ {
+ }
+ else
{
try
{
@@ -1294,7 +1393,9 @@ namespace TemuKJD.KJDForms.JITForms
if (cateSizeWeightConfig != null)
lstCateSizeWeightConfig.Add(cateSizeWeightConfig);
}
- catch { }
+ catch
+ {
+ }
}
}
@@ -1551,12 +1652,88 @@ namespace TemuKJD.KJDForms.JITForms
else
ShopListForm.Instance.CheckShopLogin(shops, isShowProgress);
}
+
+ ShopLoginInfo GetAndCheckShopLogin(string shopId, ref bool chkRst)
+ {
+ ShopLoginInfo shop = null;
+ if (!IsClientJit)
+ {
+ shop = this.lstAdminShopInfo.FirstOrDefault(s => s.ShopId == shopId);
+ }
+ else
+ {
+ shop = GlobalConfig.ShopLoginList.FirstOrDefault(s => s.ShopId == shopId);
+ }
+ if (shop == null)
+ {
+ chkRst = false;
+ return shop;
+ }
+
+ #region 检测登录
+ if (shop.LoginStatus2 != "国际版在线")
+ {
+ chkRst = false;
+ return shop;
+ }
+ this.CheckShopLogin(new ShopLoginInfo[] { shop }, false);
+ if (shop.LoginStatus2 != "国际版在线")
+ {
+ Invoke(new Action(() =>
+ {
+ var rows = this.dgvShop.Rows.Cast().Where(r => r.Cells["colLoginName"].Value.ToString() == shop.LoginName);
+ foreach (var row in rows)
+ {
+ row.Cells["colMessage"].Value = "店铺掉线";
+ row.Cells["colLoginStatus"].Value = "未登录";
+ row.Cells["colCanUse"].Value = false;
+ }
+ }));
+ chkRst = false;
+ return shop;
+ }
+ #endregion
+
+ chkRst = true;
+ return shop;
+ }
+
public static int sleepTime = 300;
void commonSleep()
{
Thread.Sleep(sleepTime);
}
+ private void dgvStock_CellClick(object sender, DataGridViewCellEventArgs e)
+ {
+ if (e.ColumnIndex < 0 || e.RowIndex < 0)
+ return;
+ string headerText = dgvStock.Columns[e.ColumnIndex].HeaderText;
+ string shopId = dgvStock.Rows[e.RowIndex].Cells["colSupplierId"].Value.ParseToString();
+ string prodId = dgvStock.Rows[e.RowIndex].Cells["colProductId"].Value.ParseToString();
+ string subOrderId = dgvStock.Rows[e.RowIndex].Cells["colSubOrderSn"].Value.ParseToString(); // 备货单号
+
+ switch (headerText)
+ {
+ case "Skc图":
+ case "SKC图":
+ {
+ string url = dgvStock.Rows[e.RowIndex].Cells["colImgUrl"].Value.ParseToString().Replace("img.kwcdn.com", "img.cdnfe.com").Split('?').FirstOrDefault();
+ url = url.IndexOf("?") < 0 ? url : url.Substring(0, url.IndexOf("?"));
+ ShowImgForm imgFrom = new ShowImgForm(url);
+ imgFrom.ShowDialog();
+ }
+ break;
+ case "SKU图":
+ {
+ string url = dgvStock.Rows[e.RowIndex].Cells["colSkuImgUrl"].Value.ParseToString().Replace("img.kwcdn.com", "img.cdnfe.com").Split('?').FirstOrDefault();
+ url = url.IndexOf("?") < 0 ? url : url.Substring(0, url.IndexOf("?"));
+ ShowImgForm imgFrom = new ShowImgForm(url);
+ imgFrom.ShowDialog();
+ }
+ break;
+ }
+ }
private void dgvStock_CellContentClick(object sender, DataGridViewCellEventArgs e)
{
if (e.ColumnIndex < 0 || e.RowIndex < 0)
@@ -1568,14 +1745,6 @@ namespace TemuKJD.KJDForms.JITForms
switch (headerText)
{
- case "Skc图片111":
- {
- string url = dgvStock.Rows[e.RowIndex].Cells["colImgUrl"].Value.ParseToString().Replace("img.kwcdn.com", "img.cdnfe.com").Split('?').FirstOrDefault();
- url = url.IndexOf("?") < 0 ? url : url.Substring(0, url.IndexOf("?"));
- ShowImgForm imgFrom = new ShowImgForm(url);
- imgFrom.ShowDialog();
- }
- break;
case "上传条码/箱唛":
{
var dbOrder = this.lstTemuDBOrderInfo.FirstOrDefault(o => o.subPurchaseOrderSn == subOrderId);
@@ -1585,6 +1754,13 @@ namespace TemuKJD.KJDForms.JITForms
BaseMsgForm.ShowError("订单不存在!");
return;
}
+ decimal fee = (dbOrder.costPrice.ParseToDecimal() * 0.01m + dbOrder.deliveryFee.ParseToDecimal() * 0.01m +
+ dbOrder.markFee.ParseToDecimal() * 0.01m) * dbOrder.purchaseQuantity;
+ if (fee <= 0)
+ {
+ BaseMsgForm.ShowError("该订单类型不支持操作!");
+ return;
+ }
JitOrderUploadFileForm uploadFileForm = new JitOrderUploadFileForm(dbOrder);
uploadFileForm.isClientJit = this.IsClientJit;
uploadFileForm.ShowDialog();
@@ -1595,25 +1771,44 @@ namespace TemuKJD.KJDForms.JITForms
{
var dbOrder = this.lstTemuDBOrderInfo.FirstOrDefault(o => o.subPurchaseOrderSn == subOrderId);
var row = dgvStock.Rows[e.RowIndex];
- if (row.Cells["colUploadOrder"].Value.ParseToString() != "上传订单")
+ if (IsClientJit)
{
- //BaseMsgForm.ShowError("订单状态不可上传!");
- return;
- }
- if (BaseMsgForm.ShowConfirm("确定上传?将扣除授权金!").DialogResult == DialogResult.OK)
- {
- decimal fee = (dbOrder.deliveryFee.ParseToDecimal() * 0.01m + dbOrder.markFee.ParseToDecimal() * 0.01m) * dbOrder.purchaseQuantity;
- var url = BaseClass.BuildObjString("order/upload_order");
- var data = UserLogin.GetSignaturex();
- data += "&shop_id=" + dbOrder.supplierId;
- data += "&subPurchaseOrderSn=" + dbOrder.subPurchaseOrderSn;
- data += "&fee=" + fee;
- 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"))
+ if (row.Cells["colUploadOrder"].Value.ParseToString() != "上传订单")
{
- try
+ //BaseMsgForm.ShowError("订单状态不可上传!");
+ return;
+ }
+ if (BaseMsgForm.ShowConfirm("确定上传?将扣除授权金!").DialogResult == DialogResult.OK)
+ {
+ decimal fee = (dbOrder.costPrice.ParseToDecimal() * 0.01m + dbOrder.deliveryFee.ParseToDecimal() * 0.01m +
+ dbOrder.markFee.ParseToDecimal() * 0.01m) * dbOrder.purchaseQuantity;
+ if (fee < 0)
+ {
+ BaseMsgForm.ShowError("该订单类型不支持操作!");
+ return;
+ }
+ if (fee > BaseClass.AuthorizedAmount)
+ {
+ BaseMsgForm.ShowError("剩余授权金不足,请联系管理员!");
+ return;
+ }
+
+ var url = BaseClass.BuildObjString("order/upload_order");
+ var data = UserLogin.GetSignaturex();
+ data += "&shop_id=" + dbOrder.supplierId;
+ data += "&subPurchaseOrderSn=" + dbOrder.subPurchaseOrderSn;
+ data += "&purchaseTime=" + dbOrder.purchaseTime;
+ data += "&fee=" + fee;
+ 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"))
+ {
+ var errMsg = BaseRegex.GetStringJson(ref html, "msg");
+ BaseMsgForm.ShowError(errMsg);
+ return;
+ }
+ else
{
BaseClass.AuthorizedAmount -= fee;
this.lblAuthorizedAmount.Text = "剩余授权金:" + BaseClass.AuthorizedAmount;
@@ -1621,12 +1816,65 @@ namespace TemuKJD.KJDForms.JITForms
dbOrder.upLoadStatus = 2;
SetRowLinkCellText(dbOrder, row);
}
- catch { }
}
- else
+ }
+ else
+ {
+ if (row.Cells["colUploadOrder"].Value.ParseToString() == "已上传 点击打单")
{
- var errMsg = BaseRegex.GetStringJson(ref html, "msg");
- BaseMsgForm.ShowError(errMsg);
+ if (BaseMsgForm.ShowConfirm("确定更改状态为发货?").DialogResult == DialogResult.OK)
+ {
+ decimal fee = (dbOrder.deliveryFee.ParseToDecimal() * 0.01m + dbOrder.markFee.ParseToDecimal() * 0.01m) * dbOrder.purchaseQuantity;
+ var url = BaseClass.BuildObjString("order/update_order_status");
+ var data = UserLogin.GetSignaturex();
+ data += "&shop_id=" + dbOrder.supplierId;
+ data += "&subPurchaseOrderSn=" + dbOrder.subPurchaseOrderSn;
+ data += "&purchaseTime=" + dbOrder.purchaseTime;
+ data += "&new_status=3";
+ data += "&old_status=2";
+ 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"))
+ {
+ var errMsg = BaseRegex.GetStringJson(ref html, "msg");
+ BaseMsgForm.ShowError(errMsg);
+ return;
+ }
+ else
+ {
+ dbOrder.upLoadStatus = 3;
+ SetRowLinkCellText(dbOrder, row);
+ }
+ }
+ }
+ else if (row.Cells["colUploadOrder"].Value.ParseToString() == "已打单 点击发货")
+ {
+ if (BaseMsgForm.ShowConfirm("确定更改状态为发货?").DialogResult == DialogResult.OK)
+ {
+ decimal fee = (dbOrder.deliveryFee.ParseToDecimal() * 0.01m + dbOrder.markFee.ParseToDecimal() * 0.01m) * dbOrder.purchaseQuantity;
+ var url = BaseClass.BuildObjString("order/update_order_status");
+ var data = UserLogin.GetSignaturex();
+ data += "&shop_id=" + dbOrder.supplierId;
+ data += "&subPurchaseOrderSn=" + dbOrder.subPurchaseOrderSn;
+ data += "&purchaseTime=" + dbOrder.purchaseTime;
+ data += "&new_status=4";
+ data += "&old_status=3";
+ 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"))
+ {
+ var errMsg = BaseRegex.GetStringJson(ref html, "msg");
+ BaseMsgForm.ShowError(errMsg);
+ return;
+ }
+ else
+ {
+ dbOrder.upLoadStatus = 4;
+ SetRowLinkCellText(dbOrder, row);
+ }
+ }
}
}
}
@@ -1667,11 +1915,6 @@ namespace TemuKJD.KJDForms.JITForms
}
}
- private void ucGroupBoxEx1_Enter(object sender, EventArgs e)
- {
-
- }
-
private void btnRestore_Click(object sender, EventArgs e)
{
txtSubOrderSn.Text = txtProductSn.Text = txtProductId.Text = "";
@@ -1679,7 +1922,18 @@ namespace TemuKJD.KJDForms.JITForms
private void btnGetDbOrder_Click(object sender, EventArgs e)
{
- loadServerDbOrder();
+ lstTemuDBOrderInfo.Clear();
+ dgvStock.Rows.Clear();
+
+ this.pbLoading.Visible = true;
+ Task.Run(() =>
+ {
+ if(IsClientJit)
+ clientLoadServerDbOrder();
+ else
+ loadServerDbOrder(null);
+ Invoke(new Action(() => { this.pbLoading.Visible = false; }));
+ });
}
private void ucSplitPage1_PageChange(object obj)
@@ -1689,5 +1943,37 @@ namespace TemuKJD.KJDForms.JITForms
SearchShop(this.ucSplitPage1.CurrentPage);
}
}
+
+ private void lblRefreshAmount_Click(object sender, EventArgs e)
+ {
+ var url = BaseClass.BuildObjString("user/get_user_amount");
+ var data = UserLogin.GetSignaturex();
+ 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"))
+ {
+ var errMsg = BaseRegex.GetStringJson(ref html, "msg");
+ BaseMsgForm.ShowError(errMsg);
+ return;
+ }
+ else
+ {
+ BaseClass.AuthorizedAmount = BaseRegex.GetStringJson(ref html, "data").ParseToDecimal();
+ this.lblAuthorizedAmount.Text = "" + BaseClass.AuthorizedAmount.ParseToDecimal().ToString("0.0");
+ }
+ }
+
+ void statisticsListOrder()
+ {
+ Invoke(new Action(() =>
+ {
+ lblOriginalOrderNumber.Text = this.dgvStock.Rows.Cast().Select(r => r.Cells["colParentStockId"].Value.ParseToString()).Distinct().Count().ToString();
+ lblOrderNumber.Text = this.dgvStock.Rows.Cast().Select(r => r.Cells["colSubOrderSn"].Value.ParseToString()).Distinct().Count().ToString();
+ lblOrderTotalPrice.Text = lstTemuDBOrderInfo.Where(o => o.costPrice > 0).Sum(o => o.supplierPrice * o.purchaseQuantity * 0.01).ToString("0.00");
+ lblOrderTotalCost.Text = lstTemuDBOrderInfo.Where(o => o.costPrice > 0).Sum(o => (o.costPrice + o.deliveryFee + o.markFee) * o.purchaseQuantity * 0.01).ParseToDecimal().ToString("0.00");
+ lblOrderTotalProfit.Text = (lblOrderTotalPrice.Text.ParseToDecimal() - lblOrderTotalCost.Text.ParseToDecimal()).ToString("0.00");
+ }));
+ }
}
}
diff --git a/TEMUKJD/KJDForms/JITForms/JitPushOrder.resx b/TEMUKJD/KJDForms/JITForms/JitPushOrder.resx
index 53ac99b..a7b8deb 100644
--- a/TEMUKJD/KJDForms/JITForms/JitPushOrder.resx
+++ b/TEMUKJD/KJDForms/JITForms/JitPushOrder.resx
@@ -141,6 +141,12 @@
True
+
+ True
+
+
+ True
+
True
@@ -207,6 +213,9 @@
True
+
+ True
+
True
diff --git a/TEMUKJD/KJDForms/ProductForms/TemuAdsForm.cs b/TEMUKJD/KJDForms/ProductForms/TemuAdsForm.cs
index 8ebe603..096e19b 100644
--- a/TEMUKJD/KJDForms/ProductForms/TemuAdsForm.cs
+++ b/TEMUKJD/KJDForms/ProductForms/TemuAdsForm.cs
@@ -563,6 +563,7 @@ namespace TemuKJD.KJDForms.ProductForms
}));
int page = 1;
+ int total = 0;
int totalPage = 1;
int pageSize = 40;
bool isError = false;
@@ -643,7 +644,22 @@ namespace TemuKJD.KJDForms.ProductForms
if (jArr == null)
jArr = new JArray();
}
- catch (Exception ex) { BaseMsgForm.ShowError(ex.Message); }
+ catch (Exception ex)
+ {
+ BaseMsgForm.ShowError(ex.Message);
+ var rows = this.dgvShop.Rows.Cast().Where(r => r.Cells["colShopId"].Value.ToString() == shop.ShopId);
+ foreach (var row in rows)
+ {
+ row.Cells["colMessage"].Value = "直通车查询失败 " + ex.Message;
+ }
+ this.Invoke(new Action(() =>
+ {
+ this.statusBar.lblTaskStatus.Text = "店铺 " + shop.ShopAccount + " 直通车查询失败 " + ex.Message;
+ }));
+ page++;
+ Thread.Sleep(1000);
+ continue;
+ }
List spuIdLst = new List();
foreach (var item in jArr)
{
@@ -657,7 +673,6 @@ namespace TemuKJD.KJDForms.ProductForms
//string url = pInfo.image.Replace("https", "http");
//var image = Image.FromStream(WebRequest.Create(url).GetResponse().GetResponseStream());
-
Invoke(new Action(() =>
{
int rowId = this.dgvAds.Rows.Add(
@@ -742,9 +757,13 @@ namespace TemuKJD.KJDForms.ProductForms
}
}
- int total = BaseRegex.GetStringJson(ref jsonStr, "total").ParseToInt();
+ total = BaseRegex.GetStringJson(ref jsonStr, "total").ParseToInt();
totalPage = Math.Ceiling(1.0 * total / pageSize).ParseToInt();
}
+ this.Invoke(new Action(() =>
+ {
+ this.statusBar.lblTaskStatus.Text = "正在查询店铺 " + shop.ShopAccount + " 直通车商品 " + page + "/" + totalPage + " 共 " + total + " 件";
+ }));
page++;
}
diff --git a/TEMUKJD/KJDForms/ProductForms/TemuJitSubForms/ComplianceForm.cs b/TEMUKJD/KJDForms/ProductForms/TemuJitSubForms/ComplianceForm.cs
index e9a114d..9dfa253 100644
--- a/TEMUKJD/KJDForms/ProductForms/TemuJitSubForms/ComplianceForm.cs
+++ b/TEMUKJD/KJDForms/ProductForms/TemuJitSubForms/ComplianceForm.cs
@@ -265,7 +265,7 @@ namespace TemuKJD.KJDForms.ProductForms.TemuJitSubForms
j_template_edit.Add("punish_time", wait_task.punish_time);
j_template_edit.Add("sale_effect_info", JObject.Parse(JsonHelper.SerializeObject(wait_task.sale_effect_info)));
j_template_edit.Add("rep_detail_list", new JArray());
- var rep_detail = temp.rep_detail_list.FirstOrDefault(r => r.rep_name == cmbMakerInfo.Text.Trim());
+ var rep_detail = temp.rep_detail_list.FirstOrDefault(r => r.rep_name.Trim() == cmbMakerInfo.Text.Trim());
rep_detail_param rep_param = new rep_detail_param { rep_id = rep_detail?.rep_id, rep_name = rep_detail?.rep_name };
(j_template_edit["rep_detail_list"] as JArray).Add(JObject.Parse(JsonHelper.SerializeObject(rep_param)));
}
@@ -299,7 +299,7 @@ namespace TemuKJD.KJDForms.ProductForms.TemuJitSubForms
if (!IsAuto)
{
BaseMsgForm.ShowInfo("修改成功!");
- this.Close();
+ Invoke(new Action(() => { this.Close(); }));
}
}
else
diff --git a/TEMUKJD/KJDForms/ProductSelectForms/DbProductListForm.Designer.cs b/TEMUKJD/KJDForms/ProductSelectForms/DbProductListForm.Designer.cs
index 2b1491d..2e7a530 100644
--- a/TEMUKJD/KJDForms/ProductSelectForms/DbProductListForm.Designer.cs
+++ b/TEMUKJD/KJDForms/ProductSelectForms/DbProductListForm.Designer.cs
@@ -86,8 +86,6 @@ namespace TemuKJD.KJDForms.ProductSelectForms
this.txtShopId = new System.Windows.Forms.TextBox();
this.label8 = new System.Windows.Forms.Label();
this.dgvDbProduct = new TemuKJD.UserComponent.DataGridViewEx();
- this.ucSplitPage1 = new TemuKJD.UserControls.UcSplitPage();
- this.statusBar = new TemuKJD.UserControls.StatusBarUserControl();
this.colSelect = new System.Windows.Forms.DataGridViewCheckBoxColumn();
this.col_db_id = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.col_spu_id = new System.Windows.Forms.DataGridViewTextBoxColumn();
@@ -113,6 +111,8 @@ namespace TemuKJD.KJDForms.ProductSelectForms
this.col_edit = new System.Windows.Forms.DataGridViewLinkColumn();
this.col_delete = new System.Windows.Forms.DataGridViewLinkColumn();
this.col_select_product = new System.Windows.Forms.DataGridViewLinkColumn();
+ this.ucSplitPage1 = new TemuKJD.UserControls.UcSplitPage();
+ this.statusBar = new TemuKJD.UserControls.StatusBarUserControl();
((System.ComponentModel.ISupportInitialize)(this.splitContainer1)).BeginInit();
this.splitContainer1.Panel1.SuspendLayout();
this.splitContainer1.Panel2.SuspendLayout();
@@ -769,31 +769,6 @@ namespace TemuKJD.KJDForms.ProductSelectForms
this.dgvDbProduct.CellContentClick += new System.Windows.Forms.DataGridViewCellEventHandler(this.dgvDbProduct_CellContentClick);
this.dgvDbProduct.Scroll += new System.Windows.Forms.ScrollEventHandler(this.dgvDbProduct_Scroll);
//
- // ucSplitPage1
- //
- this.ucSplitPage1.CurrentPage = 1;
- this.ucSplitPage1.Dock = System.Windows.Forms.DockStyle.Right;
- this.ucSplitPage1.IsShowPageSize = false;
- this.ucSplitPage1.Location = new System.Drawing.Point(916, 0);
- this.ucSplitPage1.Margin = new System.Windows.Forms.Padding(0);
- this.ucSplitPage1.Name = "ucSplitPage1";
- this.ucSplitPage1.Padding = new System.Windows.Forms.Padding(0, 0, 1, 0);
- this.ucSplitPage1.PageSize = 50;
- this.ucSplitPage1.Size = new System.Drawing.Size(362, 25);
- this.ucSplitPage1.TabIndex = 6;
- this.ucSplitPage1.TotalPage = 1;
- //
- // statusBar
- //
- this.statusBar.BackColor = System.Drawing.Color.White;
- this.statusBar.Dock = System.Windows.Forms.DockStyle.Fill;
- this.statusBar.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
- this.statusBar.Location = new System.Drawing.Point(0, 0);
- this.statusBar.Margin = new System.Windows.Forms.Padding(0);
- this.statusBar.Name = "statusBar";
- this.statusBar.Size = new System.Drawing.Size(1278, 25);
- this.statusBar.TabIndex = 5;
- //
// colSelect
//
this.colSelect.FillWeight = 26F;
@@ -997,6 +972,31 @@ namespace TemuKJD.KJDForms.ProductSelectForms
this.col_select_product.Resizable = System.Windows.Forms.DataGridViewTriState.True;
this.col_select_product.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.Automatic;
//
+ // ucSplitPage1
+ //
+ this.ucSplitPage1.CurrentPage = 1;
+ this.ucSplitPage1.Dock = System.Windows.Forms.DockStyle.Right;
+ this.ucSplitPage1.IsShowPageSize = false;
+ this.ucSplitPage1.Location = new System.Drawing.Point(916, 0);
+ this.ucSplitPage1.Margin = new System.Windows.Forms.Padding(0);
+ this.ucSplitPage1.Name = "ucSplitPage1";
+ this.ucSplitPage1.Padding = new System.Windows.Forms.Padding(0, 0, 1, 0);
+ this.ucSplitPage1.PageSize = 50;
+ this.ucSplitPage1.Size = new System.Drawing.Size(362, 25);
+ this.ucSplitPage1.TabIndex = 6;
+ this.ucSplitPage1.TotalPage = 1;
+ //
+ // statusBar
+ //
+ this.statusBar.BackColor = System.Drawing.Color.White;
+ this.statusBar.Dock = System.Windows.Forms.DockStyle.Fill;
+ this.statusBar.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
+ this.statusBar.Location = new System.Drawing.Point(0, 0);
+ this.statusBar.Margin = new System.Windows.Forms.Padding(0);
+ this.statusBar.Name = "statusBar";
+ this.statusBar.Size = new System.Drawing.Size(1278, 25);
+ this.statusBar.TabIndex = 5;
+ //
// DbProductListForm
//
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.None;
diff --git a/TEMUKJD/KJDForms/ProductSelectForms/DbProductListForm.cs b/TEMUKJD/KJDForms/ProductSelectForms/DbProductListForm.cs
index 32fc98a..bed5845 100644
--- a/TEMUKJD/KJDForms/ProductSelectForms/DbProductListForm.cs
+++ b/TEMUKJD/KJDForms/ProductSelectForms/DbProductListForm.cs
@@ -277,10 +277,13 @@ namespace TemuKJD.KJDForms.ProductSelectForms
"&search_spu=" + txtSPU.Text.Trim() +
"&search_skc=" + txtSKC.Text.Trim() +
"&search_notes=" + txtNotes.Text.Trim() +
- "&search_group=" + cmbGroup.Text.Trim() +
"&search_cat=" + txtCat.Text.Trim() +
"&search_ext_code=" + txtExtCode.Text.Trim() +
"&search_prod_name=" + txtProdName.Text.Trim();
+ if (!IsClientJit)
+ data += "&search_group=" + cmbGroup.Text.Trim();
+ else
+ data += "&search_group=" + "Jit分组";
if (shop != null && !string.IsNullOrEmpty(shop.ShopId))
{
data += "&get_select_count=true";
@@ -353,7 +356,8 @@ namespace TemuKJD.KJDForms.ProductSelectForms
this.txtSKC.Text = "";
this.txtSPU.Text = "";
this.txtNotes.Text = "";
- this.cmbGroup.Text = "";
+ if (!IsClientJit)
+ this.cmbGroup.Text = "";
}
private void dgvDbProduct_CellContentClick(object sender, DataGridViewCellEventArgs e)
diff --git a/TEMUKJD/KJDForms/ShopForms/ShopListForm.cs b/TEMUKJD/KJDForms/ShopForms/ShopListForm.cs
index db3b80e..a7f7904 100644
--- a/TEMUKJD/KJDForms/ShopForms/ShopListForm.cs
+++ b/TEMUKJD/KJDForms/ShopForms/ShopListForm.cs
@@ -122,7 +122,6 @@ namespace TemuKJD.KJDForms.ShopForms
if (string.IsNullOrEmpty(html)
|| !html.Contains("shop_id") || !html.Contains("shop_account") || !html.Contains("login_pass"))
{
- //return list;
break;
}
diff --git a/TEMUKJD/KJDForms/ShopForms/Statistics/ShopOrderStatisticsForm.cs b/TEMUKJD/KJDForms/ShopForms/Statistics/ShopOrderStatisticsForm.cs
index 17120e7..db7f5f7 100644
--- a/TEMUKJD/KJDForms/ShopForms/Statistics/ShopOrderStatisticsForm.cs
+++ b/TEMUKJD/KJDForms/ShopForms/Statistics/ShopOrderStatisticsForm.cs
@@ -673,7 +673,7 @@ namespace TemuKJD.KJDForms.ShopForms.Statistics
return "";
}
- private string GetMainStatistics(ShopLoginInfo shop)
+ public static string GetMainStatistics(ShopLoginInfo shop)
{
string url = "https://agentseller.temu.com/bg/swift/api/common/statistics/web/queryStatisticDataFullManaged";
string body = @"{}";
diff --git a/TEMUKJD/PDDForms/ProductSelectForms/PDDDBProdUserSelectForm.Designer.cs b/TEMUKJD/PDDForms/ProductSelectForms/PDDDBProdUserSelectForm.Designer.cs
index 290ad7f..b86e3bc 100644
--- a/TEMUKJD/PDDForms/ProductSelectForms/PDDDBProdUserSelectForm.Designer.cs
+++ b/TEMUKJD/PDDForms/ProductSelectForms/PDDDBProdUserSelectForm.Designer.cs
@@ -30,14 +30,22 @@ namespace TemuKJD.PDDForms.ProductSelectForms
private void InitializeComponent()
{
this.components = new System.ComponentModel.Container();
- System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle7 = new System.Windows.Forms.DataGridViewCellStyle();
- System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle8 = new System.Windows.Forms.DataGridViewCellStyle();
- System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle9 = new System.Windows.Forms.DataGridViewCellStyle();
- System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle10 = new System.Windows.Forms.DataGridViewCellStyle();
- System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle11 = new System.Windows.Forms.DataGridViewCellStyle();
- System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle12 = new System.Windows.Forms.DataGridViewCellStyle();
+ System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle1 = new System.Windows.Forms.DataGridViewCellStyle();
+ System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle2 = new System.Windows.Forms.DataGridViewCellStyle();
+ System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle3 = new System.Windows.Forms.DataGridViewCellStyle();
+ System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle4 = new System.Windows.Forms.DataGridViewCellStyle();
+ System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle5 = new System.Windows.Forms.DataGridViewCellStyle();
+ System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle6 = new System.Windows.Forms.DataGridViewCellStyle();
this.splitContainer1 = new System.Windows.Forms.SplitContainer();
this.ucGroupBoxEx2 = new TemuKJD.UserComponent.UcGroupBoxEx(this.components);
+ this.pbUpgradeVersion = new System.Windows.Forms.PictureBox();
+ this.lblUpgradeVersion = new System.Windows.Forms.Label();
+ this.label3 = new System.Windows.Forms.Label();
+ this.txtUpgradeVersionAddPrice = new System.Windows.Forms.TextBox();
+ this.label5 = new System.Windows.Forms.Label();
+ this.txtUpgradeVersionName = new System.Windows.Forms.TextBox();
+ this.chkUpgradeVersion = new TemuKJD.UserComponent.UcCheckBox(this.components);
+ this.btnStop = new DevComponents.DotNetBar.PanelEx();
this.chk15996 = new TemuKJD.UserComponent.UcCheckBox(this.components);
this.chk21365 = new TemuKJD.UserComponent.UcCheckBox(this.components);
this.chk20981 = new TemuKJD.UserComponent.UcCheckBox(this.components);
@@ -67,7 +75,6 @@ namespace TemuKJD.PDDForms.ProductSelectForms
this.txtAddMorePrice = new System.Windows.Forms.TextBox();
this.txtAddTimes = new System.Windows.Forms.TextBox();
this.label10 = new System.Windows.Forms.Label();
- this.btnStop = new DevComponents.DotNetBar.PanelEx();
this.btnUpload = new DevComponents.DotNetBar.PanelEx();
this.txtStockNum = new System.Windows.Forms.TextBox();
this.label4 = new System.Windows.Forms.Label();
@@ -142,6 +149,7 @@ namespace TemuKJD.PDDForms.ProductSelectForms
this.splitContainer1.Panel2.SuspendLayout();
this.splitContainer1.SuspendLayout();
this.ucGroupBoxEx2.SuspendLayout();
+ ((System.ComponentModel.ISupportInitialize)(this.pbUpgradeVersion)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.pbSkuImg)).BeginInit();
this.panel4.SuspendLayout();
this.panel3.SuspendLayout();
@@ -182,7 +190,7 @@ namespace TemuKJD.PDDForms.ProductSelectForms
// splitContainer1.Panel2
//
this.splitContainer1.Panel2.Controls.Add(this.splitContainer3);
- this.splitContainer1.Size = new System.Drawing.Size(1584, 546);
+ this.splitContainer1.Size = new System.Drawing.Size(1484, 546);
this.splitContainer1.SplitterDistance = 140;
this.splitContainer1.TabIndex = 11;
//
@@ -193,6 +201,14 @@ namespace TemuKJD.PDDForms.ProductSelectForms
| System.Windows.Forms.AnchorStyles.Right)));
this.ucGroupBoxEx2.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255)))));
this.ucGroupBoxEx2.BorderStyle = TemuKJD.UserComponent.UcGroupBoxEx.GroupBoxBorderStyle.ROUND;
+ this.ucGroupBoxEx2.Controls.Add(this.pbUpgradeVersion);
+ this.ucGroupBoxEx2.Controls.Add(this.lblUpgradeVersion);
+ this.ucGroupBoxEx2.Controls.Add(this.label3);
+ this.ucGroupBoxEx2.Controls.Add(this.txtUpgradeVersionAddPrice);
+ this.ucGroupBoxEx2.Controls.Add(this.label5);
+ this.ucGroupBoxEx2.Controls.Add(this.txtUpgradeVersionName);
+ this.ucGroupBoxEx2.Controls.Add(this.chkUpgradeVersion);
+ this.ucGroupBoxEx2.Controls.Add(this.btnStop);
this.ucGroupBoxEx2.Controls.Add(this.chk15996);
this.ucGroupBoxEx2.Controls.Add(this.chk21365);
this.ucGroupBoxEx2.Controls.Add(this.chk20981);
@@ -218,7 +234,6 @@ namespace TemuKJD.PDDForms.ProductSelectForms
this.ucGroupBoxEx2.Controls.Add(this.txtAddMorePrice);
this.ucGroupBoxEx2.Controls.Add(this.txtAddTimes);
this.ucGroupBoxEx2.Controls.Add(this.label10);
- this.ucGroupBoxEx2.Controls.Add(this.btnStop);
this.ucGroupBoxEx2.Controls.Add(this.btnUpload);
this.ucGroupBoxEx2.Controls.Add(this.txtStockNum);
this.ucGroupBoxEx2.Controls.Add(this.label4);
@@ -227,19 +242,133 @@ namespace TemuKJD.PDDForms.ProductSelectForms
this.ucGroupBoxEx2.Controls.Add(this.chkChance);
this.ucGroupBoxEx2.Controls.Add(this.chkLowPriceSku);
this.ucGroupBoxEx2.Controls.Add(this.lblLowPriceSkuImg);
- this.ucGroupBoxEx2.Location = new System.Drawing.Point(476, 2);
+ this.ucGroupBoxEx2.Location = new System.Drawing.Point(459, 2);
this.ucGroupBoxEx2.Name = "ucGroupBoxEx2";
- this.ucGroupBoxEx2.Size = new System.Drawing.Size(1106, 140);
+ this.ucGroupBoxEx2.Size = new System.Drawing.Size(1023, 140);
this.ucGroupBoxEx2.TabIndex = 667;
this.ucGroupBoxEx2.TabStop = false;
this.ucGroupBoxEx2.Text = "商品上传";
//
+ // pbUpgradeVersion
+ //
+ this.pbUpgradeVersion.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
+ this.pbUpgradeVersion.Location = new System.Drawing.Point(853, 80);
+ this.pbUpgradeVersion.Name = "pbUpgradeVersion";
+ this.pbUpgradeVersion.Size = new System.Drawing.Size(25, 25);
+ this.pbUpgradeVersion.SizeMode = System.Windows.Forms.PictureBoxSizeMode.Zoom;
+ this.pbUpgradeVersion.TabIndex = 706;
+ this.pbUpgradeVersion.TabStop = false;
+ this.pbUpgradeVersion.Visible = false;
+ this.pbUpgradeVersion.Click += new System.EventHandler(this.pbUpgradeVersion_Click);
+ //
+ // lblUpgradeVersion
+ //
+ this.lblUpgradeVersion.AutoSize = true;
+ this.lblUpgradeVersion.Cursor = System.Windows.Forms.Cursors.Hand;
+ this.lblUpgradeVersion.ForeColor = System.Drawing.SystemColors.HotTrack;
+ this.lblUpgradeVersion.Location = new System.Drawing.Point(799, 84);
+ this.lblUpgradeVersion.Margin = new System.Windows.Forms.Padding(6, 0, 0, 0);
+ this.lblUpgradeVersion.Name = "lblUpgradeVersion";
+ this.lblUpgradeVersion.Size = new System.Drawing.Size(56, 17);
+ this.lblUpgradeVersion.TabIndex = 707;
+ this.lblUpgradeVersion.Text = "传叠加图";
+ this.lblUpgradeVersion.Visible = false;
+ this.lblUpgradeVersion.Click += new System.EventHandler(this.lblUpgradeVersion_Click);
+ //
+ // label3
+ //
+ this.label3.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
+ this.label3.AutoSize = true;
+ this.label3.Location = new System.Drawing.Point(782, 84);
+ this.label3.Margin = new System.Windows.Forms.Padding(6, 0, 0, 0);
+ this.label3.Name = "label3";
+ this.label3.Size = new System.Drawing.Size(20, 17);
+ this.label3.TabIndex = 696;
+ this.label3.Text = "元";
+ this.label3.Visible = false;
+ //
+ // txtUpgradeVersionAddPrice
+ //
+ this.txtUpgradeVersionAddPrice.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
+ this.txtUpgradeVersionAddPrice.Location = new System.Drawing.Point(751, 81);
+ this.txtUpgradeVersionAddPrice.Margin = new System.Windows.Forms.Padding(0, 2, 0, 2);
+ this.txtUpgradeVersionAddPrice.Name = "txtUpgradeVersionAddPrice";
+ this.txtUpgradeVersionAddPrice.Size = new System.Drawing.Size(31, 23);
+ this.txtUpgradeVersionAddPrice.TabIndex = 695;
+ this.txtUpgradeVersionAddPrice.Text = "1.0";
+ this.txtUpgradeVersionAddPrice.Visible = false;
+ this.txtUpgradeVersionAddPrice.TextChanged += new System.EventHandler(this.txtUpgradeVersionAddPrice_TextChanged);
+ //
+ // label5
+ //
+ this.label5.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
+ this.label5.AutoSize = true;
+ this.label5.Location = new System.Drawing.Point(695, 84);
+ this.label5.Margin = new System.Windows.Forms.Padding(6, 0, 0, 0);
+ this.label5.Name = "label5";
+ this.label5.Size = new System.Drawing.Size(56, 17);
+ this.label5.TabIndex = 694;
+ this.label5.Text = "额外多加";
+ this.label5.Visible = false;
+ //
+ // txtUpgradeVersionName
+ //
+ this.txtUpgradeVersionName.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
+ this.txtUpgradeVersionName.Location = new System.Drawing.Point(607, 81);
+ this.txtUpgradeVersionName.Margin = new System.Windows.Forms.Padding(0, 2, 0, 2);
+ this.txtUpgradeVersionName.Name = "txtUpgradeVersionName";
+ this.txtUpgradeVersionName.Size = new System.Drawing.Size(88, 23);
+ this.txtUpgradeVersionName.TabIndex = 693;
+ this.txtUpgradeVersionName.Text = "升级版";
+ this.txtUpgradeVersionName.Visible = false;
+ this.txtUpgradeVersionName.TextChanged += new System.EventHandler(this.txtUpgradeVersionName_TextChanged);
+ //
+ // chkUpgradeVersion
+ //
+ this.chkUpgradeVersion.AutoSize = true;
+ this.chkUpgradeVersion.Checked = true;
+ this.chkUpgradeVersion.CheckState = System.Windows.Forms.CheckState.Checked;
+ this.chkUpgradeVersion.Location = new System.Drawing.Point(531, 82);
+ this.chkUpgradeVersion.Name = "chkUpgradeVersion";
+ this.chkUpgradeVersion.Size = new System.Drawing.Size(83, 21);
+ this.chkUpgradeVersion.TabIndex = 692;
+ this.chkUpgradeVersion.Text = "升级sku名";
+ this.chkUpgradeVersion.UseVisualStyleBackColor = true;
+ this.chkUpgradeVersion.Visible = false;
+ this.chkUpgradeVersion.CheckedChanged += new System.EventHandler(this.chkUpgradeVersion_CheckedChanged);
+ //
+ // btnStop
+ //
+ this.btnStop.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
+ this.btnStop.CanvasColor = System.Drawing.SystemColors.Control;
+ this.btnStop.ColorSchemeStyle = DevComponents.DotNetBar.eDotNetBarStyle.StyleManagerControlled;
+ this.btnStop.DisabledBackColor = System.Drawing.Color.Empty;
+ this.btnStop.Location = new System.Drawing.Point(926, 68);
+ this.btnStop.Margin = new System.Windows.Forms.Padding(4, 2, 2, 2);
+ this.btnStop.Name = "btnStop";
+ this.btnStop.Size = new System.Drawing.Size(84, 23);
+ this.btnStop.Style.Alignment = System.Drawing.StringAlignment.Center;
+ this.btnStop.Style.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(185)))), ((int)(((byte)(215)))), ((int)(((byte)(255)))));
+ this.btnStop.Style.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(185)))), ((int)(((byte)(215)))), ((int)(((byte)(255)))));
+ this.btnStop.Style.Border = DevComponents.DotNetBar.eBorderType.SingleLine;
+ this.btnStop.Style.BorderColor.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255)))));
+ this.btnStop.Style.ForeColor.ColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelText;
+ this.btnStop.Style.GradientAngle = 90;
+ this.btnStop.StyleMouseDown.Alignment = System.Drawing.StringAlignment.Center;
+ this.btnStop.StyleMouseOver.Alignment = System.Drawing.StringAlignment.Center;
+ this.btnStop.StyleMouseOver.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255)))));
+ this.btnStop.StyleMouseOver.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255)))));
+ this.btnStop.StyleMouseOver.ForeColor.Color = System.Drawing.Color.White;
+ this.btnStop.TabIndex = 546;
+ this.btnStop.Text = "停止上传";
+ this.btnStop.Click += new System.EventHandler(this.btnStop_Click);
+ //
// chk15996
//
this.chk15996.AutoSize = true;
this.chk15996.Checked = true;
this.chk15996.CheckState = System.Windows.Forms.CheckState.Checked;
- this.chk15996.Location = new System.Drawing.Point(727, 88);
+ this.chk15996.Location = new System.Drawing.Point(870, 52);
this.chk15996.Name = "chk15996";
this.chk15996.Size = new System.Drawing.Size(62, 21);
this.chk15996.TabIndex = 682;
@@ -252,7 +381,7 @@ namespace TemuKJD.PDDForms.ProductSelectForms
this.chk21365.AutoSize = true;
this.chk21365.Checked = true;
this.chk21365.CheckState = System.Windows.Forms.CheckState.Checked;
- this.chk21365.Location = new System.Drawing.Point(663, 88);
+ this.chk21365.Location = new System.Drawing.Point(815, 52);
this.chk21365.Name = "chk21365";
this.chk21365.Size = new System.Drawing.Size(62, 21);
this.chk21365.TabIndex = 681;
@@ -265,7 +394,7 @@ namespace TemuKJD.PDDForms.ProductSelectForms
this.chk20981.AutoSize = true;
this.chk20981.Checked = true;
this.chk20981.CheckState = System.Windows.Forms.CheckState.Checked;
- this.chk20981.Location = new System.Drawing.Point(599, 88);
+ this.chk20981.Location = new System.Drawing.Point(760, 52);
this.chk20981.Name = "chk20981";
this.chk20981.Size = new System.Drawing.Size(62, 21);
this.chk20981.TabIndex = 680;
@@ -278,7 +407,7 @@ namespace TemuKJD.PDDForms.ProductSelectForms
this.chk22347.AutoSize = true;
this.chk22347.Checked = true;
this.chk22347.CheckState = System.Windows.Forms.CheckState.Checked;
- this.chk22347.Location = new System.Drawing.Point(535, 88);
+ this.chk22347.Location = new System.Drawing.Point(705, 52);
this.chk22347.Name = "chk22347";
this.chk22347.Size = new System.Drawing.Size(62, 21);
this.chk22347.TabIndex = 679;
@@ -291,7 +420,7 @@ namespace TemuKJD.PDDForms.ProductSelectForms
this.chkKeepChanceGoodsImg.AutoSize = true;
this.chkKeepChanceGoodsImg.Checked = true;
this.chkKeepChanceGoodsImg.CheckState = System.Windows.Forms.CheckState.Checked;
- this.chkKeepChanceGoodsImg.Location = new System.Drawing.Point(652, 42);
+ this.chkKeepChanceGoodsImg.Location = new System.Drawing.Point(642, 22);
this.chkKeepChanceGoodsImg.Name = "chkKeepChanceGoodsImg";
this.chkKeepChanceGoodsImg.Size = new System.Drawing.Size(135, 21);
this.chkKeepChanceGoodsImg.TabIndex = 669;
@@ -302,18 +431,19 @@ namespace TemuKJD.PDDForms.ProductSelectForms
// pbSkuImg
//
this.pbSkuImg.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
- this.pbSkuImg.Location = new System.Drawing.Point(503, 108);
+ this.pbSkuImg.Location = new System.Drawing.Point(810, 109);
this.pbSkuImg.Name = "pbSkuImg";
- this.pbSkuImg.Size = new System.Drawing.Size(27, 27);
+ this.pbSkuImg.Size = new System.Drawing.Size(25, 25);
this.pbSkuImg.SizeMode = System.Windows.Forms.PictureBoxSizeMode.Zoom;
this.pbSkuImg.TabIndex = 664;
this.pbSkuImg.TabStop = false;
+ this.pbSkuImg.Click += new System.EventHandler(this.pbSkuImg_Click);
//
// label19
//
this.label19.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
this.label19.AutoSize = true;
- this.label19.Location = new System.Drawing.Point(749, 113);
+ this.label19.Location = new System.Drawing.Point(743, 113);
this.label19.Margin = new System.Windows.Forms.Padding(6, 0, 0, 0);
this.label19.Name = "label19";
this.label19.Size = new System.Drawing.Size(20, 17);
@@ -323,7 +453,7 @@ namespace TemuKJD.PDDForms.ProductSelectForms
// txtLowPriceSkuPrice
//
this.txtLowPriceSkuPrice.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
- this.txtLowPriceSkuPrice.Location = new System.Drawing.Point(717, 110);
+ this.txtLowPriceSkuPrice.Location = new System.Drawing.Point(711, 110);
this.txtLowPriceSkuPrice.Margin = new System.Windows.Forms.Padding(0, 2, 0, 2);
this.txtLowPriceSkuPrice.Name = "txtLowPriceSkuPrice";
this.txtLowPriceSkuPrice.Size = new System.Drawing.Size(32, 23);
@@ -334,7 +464,7 @@ namespace TemuKJD.PDDForms.ProductSelectForms
// txtLowPriceSkuName
//
this.txtLowPriceSkuName.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
- this.txtLowPriceSkuName.Location = new System.Drawing.Point(611, 110);
+ this.txtLowPriceSkuName.Location = new System.Drawing.Point(607, 110);
this.txtLowPriceSkuName.Margin = new System.Windows.Forms.Padding(0, 2, 0, 2);
this.txtLowPriceSkuName.Name = "txtLowPriceSkuName";
this.txtLowPriceSkuName.Size = new System.Drawing.Size(50, 23);
@@ -346,7 +476,7 @@ namespace TemuKJD.PDDForms.ProductSelectForms
//
this.label18.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
this.label18.AutoSize = true;
- this.label18.Location = new System.Drawing.Point(661, 113);
+ this.label18.Location = new System.Drawing.Point(657, 113);
this.label18.Margin = new System.Windows.Forms.Padding(6, 0, 0, 0);
this.label18.Name = "label18";
this.label18.Size = new System.Drawing.Size(56, 17);
@@ -356,10 +486,10 @@ namespace TemuKJD.PDDForms.ProductSelectForms
// txtAddTimesFake
//
this.txtAddTimesFake.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
- this.txtAddTimesFake.Location = new System.Drawing.Point(662, 64);
+ this.txtAddTimesFake.Location = new System.Drawing.Point(658, 51);
this.txtAddTimesFake.Margin = new System.Windows.Forms.Padding(0, 2, 0, 2);
this.txtAddTimesFake.Name = "txtAddTimesFake";
- this.txtAddTimesFake.Size = new System.Drawing.Size(32, 23);
+ this.txtAddTimesFake.Size = new System.Drawing.Size(26, 23);
this.txtAddTimesFake.TabIndex = 645;
this.txtAddTimesFake.Text = "3";
this.txtAddTimesFake.TextChanged += new System.EventHandler(this.txtAddTimesFake_TextChanged);
@@ -369,7 +499,7 @@ namespace TemuKJD.PDDForms.ProductSelectForms
this.chkActivity.AutoSize = true;
this.chkActivity.Checked = true;
this.chkActivity.CheckState = System.Windows.Forms.CheckState.Checked;
- this.chkActivity.Location = new System.Drawing.Point(535, 65);
+ this.chkActivity.Location = new System.Drawing.Point(531, 52);
this.chkActivity.Name = "chkActivity";
this.chkActivity.Size = new System.Drawing.Size(135, 21);
this.chkActivity.TabIndex = 648;
@@ -381,7 +511,7 @@ namespace TemuKJD.PDDForms.ProductSelectForms
//
this.label17.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
this.label17.AutoSize = true;
- this.label17.Location = new System.Drawing.Point(694, 67);
+ this.label17.Location = new System.Drawing.Point(684, 54);
this.label17.Margin = new System.Windows.Forms.Padding(6, 0, 0, 0);
this.label17.Name = "label17";
this.label17.Size = new System.Drawing.Size(20, 17);
@@ -393,7 +523,7 @@ namespace TemuKJD.PDDForms.ProductSelectForms
this.chkUpperSizeSpec.AutoSize = true;
this.chkUpperSizeSpec.Checked = true;
this.chkUpperSizeSpec.CheckState = System.Windows.Forms.CheckState.Checked;
- this.chkUpperSizeSpec.Location = new System.Drawing.Point(535, 42);
+ this.chkUpperSizeSpec.Location = new System.Drawing.Point(531, 22);
this.chkUpperSizeSpec.Name = "chkUpperSizeSpec";
this.chkUpperSizeSpec.Size = new System.Drawing.Size(111, 21);
this.chkUpperSizeSpec.TabIndex = 635;
@@ -404,7 +534,7 @@ namespace TemuKJD.PDDForms.ProductSelectForms
// chkAddMorePriceFirst
//
this.chkAddMorePriceFirst.AutoSize = true;
- this.chkAddMorePriceFirst.Location = new System.Drawing.Point(312, 111);
+ this.chkAddMorePriceFirst.Location = new System.Drawing.Point(306, 111);
this.chkAddMorePriceFirst.Name = "chkAddMorePriceFirst";
this.chkAddMorePriceFirst.Size = new System.Drawing.Size(111, 21);
this.chkAddMorePriceFirst.TabIndex = 625;
@@ -418,7 +548,7 @@ namespace TemuKJD.PDDForms.ProductSelectForms
this.btnClearDgv.CanvasColor = System.Drawing.SystemColors.Control;
this.btnClearDgv.ColorSchemeStyle = DevComponents.DotNetBar.eDotNetBarStyle.StyleManagerControlled;
this.btnClearDgv.DisabledBackColor = System.Drawing.Color.Empty;
- this.btnClearDgv.Location = new System.Drawing.Point(1003, 92);
+ this.btnClearDgv.Location = new System.Drawing.Point(926, 96);
this.btnClearDgv.Margin = new System.Windows.Forms.Padding(4, 2, 2, 2);
this.btnClearDgv.Name = "btnClearDgv";
this.btnClearDgv.Size = new System.Drawing.Size(84, 23);
@@ -443,7 +573,7 @@ namespace TemuKJD.PDDForms.ProductSelectForms
this.label14.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
this.label14.AutoSize = true;
this.label14.ForeColor = System.Drawing.SystemColors.GrayText;
- this.label14.Location = new System.Drawing.Point(12, 62);
+ this.label14.Location = new System.Drawing.Point(8, 62);
this.label14.Margin = new System.Windows.Forms.Padding(6, 0, 0, 0);
this.label14.Name = "label14";
this.label14.Size = new System.Drawing.Size(68, 51);
@@ -454,7 +584,7 @@ namespace TemuKJD.PDDForms.ProductSelectForms
//
this.label15.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
this.label15.AutoSize = true;
- this.label15.Location = new System.Drawing.Point(289, 113);
+ this.label15.Location = new System.Drawing.Point(283, 113);
this.label15.Margin = new System.Windows.Forms.Padding(6, 0, 0, 0);
this.label15.Name = "label15";
this.label15.Size = new System.Drawing.Size(20, 17);
@@ -464,7 +594,7 @@ namespace TemuKJD.PDDForms.ProductSelectForms
// txtSinglePriceAdd
//
this.txtSinglePriceAdd.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
- this.txtSinglePriceAdd.Location = new System.Drawing.Point(258, 110);
+ this.txtSinglePriceAdd.Location = new System.Drawing.Point(252, 110);
this.txtSinglePriceAdd.Margin = new System.Windows.Forms.Padding(0, 2, 0, 2);
this.txtSinglePriceAdd.Name = "txtSinglePriceAdd";
this.txtSinglePriceAdd.Size = new System.Drawing.Size(31, 23);
@@ -478,7 +608,7 @@ namespace TemuKJD.PDDForms.ProductSelectForms
| System.Windows.Forms.AnchorStyles.Left)));
this.panel4.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255)))));
this.panel4.Controls.Add(this.panel3);
- this.panel4.Location = new System.Drawing.Point(80, 17);
+ this.panel4.Location = new System.Drawing.Point(76, 17);
this.panel4.Name = "panel4";
this.panel4.Size = new System.Drawing.Size(450, 89);
this.panel4.TabIndex = 577;
@@ -586,7 +716,7 @@ namespace TemuKJD.PDDForms.ProductSelectForms
//
this.label11.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
this.label11.AutoSize = true;
- this.label11.Location = new System.Drawing.Point(190, 113);
+ this.label11.Location = new System.Drawing.Point(184, 113);
this.label11.Margin = new System.Windows.Forms.Padding(6, 0, 0, 0);
this.label11.Name = "label11";
this.label11.Size = new System.Drawing.Size(68, 17);
@@ -598,7 +728,7 @@ namespace TemuKJD.PDDForms.ProductSelectForms
this.lblNewAddPrice.AutoSize = true;
this.lblNewAddPrice.Cursor = System.Windows.Forms.Cursors.Hand;
this.lblNewAddPrice.ForeColor = System.Drawing.SystemColors.HotTrack;
- this.lblNewAddPrice.Location = new System.Drawing.Point(24, 42);
+ this.lblNewAddPrice.Location = new System.Drawing.Point(20, 42);
this.lblNewAddPrice.Margin = new System.Windows.Forms.Padding(6, 0, 0, 0);
this.lblNewAddPrice.Name = "lblNewAddPrice";
this.lblNewAddPrice.Size = new System.Drawing.Size(56, 17);
@@ -609,7 +739,7 @@ namespace TemuKJD.PDDForms.ProductSelectForms
// txtAddMorePrice
//
this.txtAddMorePrice.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
- this.txtAddMorePrice.Location = new System.Drawing.Point(159, 110);
+ this.txtAddMorePrice.Location = new System.Drawing.Point(153, 110);
this.txtAddMorePrice.Margin = new System.Windows.Forms.Padding(0, 2, 0, 2);
this.txtAddMorePrice.Name = "txtAddMorePrice";
this.txtAddMorePrice.Size = new System.Drawing.Size(31, 23);
@@ -620,7 +750,7 @@ namespace TemuKJD.PDDForms.ProductSelectForms
// txtAddTimes
//
this.txtAddTimes.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
- this.txtAddTimes.Location = new System.Drawing.Point(84, 110);
+ this.txtAddTimes.Location = new System.Drawing.Point(78, 110);
this.txtAddTimes.Margin = new System.Windows.Forms.Padding(0, 2, 0, 2);
this.txtAddTimes.Name = "txtAddTimes";
this.txtAddTimes.Size = new System.Drawing.Size(31, 23);
@@ -632,39 +762,13 @@ namespace TemuKJD.PDDForms.ProductSelectForms
//
this.label10.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
this.label10.AutoSize = true;
- this.label10.Location = new System.Drawing.Point(115, 113);
+ this.label10.Location = new System.Drawing.Point(109, 113);
this.label10.Margin = new System.Windows.Forms.Padding(6, 0, 0, 0);
this.label10.Name = "label10";
this.label10.Size = new System.Drawing.Size(44, 17);
this.label10.TabIndex = 534;
this.label10.Text = "倍再加";
//
- // btnStop
- //
- this.btnStop.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
- this.btnStop.CanvasColor = System.Drawing.SystemColors.Control;
- this.btnStop.ColorSchemeStyle = DevComponents.DotNetBar.eDotNetBarStyle.StyleManagerControlled;
- this.btnStop.DisabledBackColor = System.Drawing.Color.Empty;
- this.btnStop.Location = new System.Drawing.Point(1003, 62);
- this.btnStop.Margin = new System.Windows.Forms.Padding(4, 2, 2, 2);
- this.btnStop.Name = "btnStop";
- this.btnStop.Size = new System.Drawing.Size(84, 23);
- this.btnStop.Style.Alignment = System.Drawing.StringAlignment.Center;
- this.btnStop.Style.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(185)))), ((int)(((byte)(215)))), ((int)(((byte)(255)))));
- this.btnStop.Style.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(185)))), ((int)(((byte)(215)))), ((int)(((byte)(255)))));
- this.btnStop.Style.Border = DevComponents.DotNetBar.eBorderType.SingleLine;
- this.btnStop.Style.BorderColor.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255)))));
- this.btnStop.Style.ForeColor.ColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelText;
- this.btnStop.Style.GradientAngle = 90;
- this.btnStop.StyleMouseDown.Alignment = System.Drawing.StringAlignment.Center;
- this.btnStop.StyleMouseOver.Alignment = System.Drawing.StringAlignment.Center;
- this.btnStop.StyleMouseOver.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255)))));
- this.btnStop.StyleMouseOver.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255)))));
- this.btnStop.StyleMouseOver.ForeColor.Color = System.Drawing.Color.White;
- this.btnStop.TabIndex = 546;
- this.btnStop.Text = "停止上传";
- this.btnStop.Click += new System.EventHandler(this.btnStop_Click);
- //
// btnUpload
//
this.btnUpload.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
@@ -672,7 +776,7 @@ namespace TemuKJD.PDDForms.ProductSelectForms
this.btnUpload.Cursor = System.Windows.Forms.Cursors.Hand;
this.btnUpload.DisabledBackColor = System.Drawing.Color.Empty;
this.btnUpload.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
- this.btnUpload.Location = new System.Drawing.Point(1003, 32);
+ this.btnUpload.Location = new System.Drawing.Point(926, 40);
this.btnUpload.Name = "btnUpload";
this.btnUpload.Size = new System.Drawing.Size(84, 23);
this.btnUpload.Style.Alignment = System.Drawing.StringAlignment.Center;
@@ -692,7 +796,7 @@ namespace TemuKJD.PDDForms.ProductSelectForms
//
// txtStockNum
//
- this.txtStockNum.Location = new System.Drawing.Point(587, 19);
+ this.txtStockNum.Location = new System.Drawing.Point(486, 110);
this.txtStockNum.Margin = new System.Windows.Forms.Padding(0, 2, 0, 2);
this.txtStockNum.Name = "txtStockNum";
this.txtStockNum.Size = new System.Drawing.Size(32, 23);
@@ -703,7 +807,7 @@ namespace TemuKJD.PDDForms.ProductSelectForms
// label4
//
this.label4.AutoSize = true;
- this.label4.Location = new System.Drawing.Point(531, 22);
+ this.label4.Location = new System.Drawing.Point(430, 113);
this.label4.Margin = new System.Windows.Forms.Padding(6, 0, 0, 0);
this.label4.Name = "label4";
this.label4.Size = new System.Drawing.Size(56, 17);
@@ -714,7 +818,7 @@ namespace TemuKJD.PDDForms.ProductSelectForms
//
this.label9.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
this.label9.AutoSize = true;
- this.label9.Location = new System.Drawing.Point(12, 113);
+ this.label9.Location = new System.Drawing.Point(8, 113);
this.label9.Margin = new System.Windows.Forms.Padding(6, 0, 0, 0);
this.label9.Name = "label9";
this.label9.Size = new System.Drawing.Size(68, 17);
@@ -724,7 +828,7 @@ namespace TemuKJD.PDDForms.ProductSelectForms
// chkStepAddPrice
//
this.chkStepAddPrice.AutoSize = true;
- this.chkStepAddPrice.Location = new System.Drawing.Point(12, 20);
+ this.chkStepAddPrice.Location = new System.Drawing.Point(8, 20);
this.chkStepAddPrice.Name = "chkStepAddPrice";
this.chkStepAddPrice.Size = new System.Drawing.Size(75, 21);
this.chkStepAddPrice.TabIndex = 598;
@@ -738,7 +842,7 @@ namespace TemuKJD.PDDForms.ProductSelectForms
this.chkChance.AutoSize = true;
this.chkChance.Checked = true;
this.chkChance.CheckState = System.Windows.Forms.CheckState.Checked;
- this.chkChance.Location = new System.Drawing.Point(917, 33);
+ this.chkChance.Location = new System.Drawing.Point(929, 17);
this.chkChance.Name = "chkChance";
this.chkChance.Size = new System.Drawing.Size(87, 21);
this.chkChance.TabIndex = 556;
@@ -751,7 +855,7 @@ namespace TemuKJD.PDDForms.ProductSelectForms
this.chkLowPriceSku.AutoSize = true;
this.chkLowPriceSku.Checked = true;
this.chkLowPriceSku.CheckState = System.Windows.Forms.CheckState.Checked;
- this.chkLowPriceSku.Location = new System.Drawing.Point(535, 111);
+ this.chkLowPriceSku.Location = new System.Drawing.Point(531, 111);
this.chkLowPriceSku.Name = "chkLowPriceSku";
this.chkLowPriceSku.Size = new System.Drawing.Size(83, 21);
this.chkLowPriceSku.TabIndex = 660;
@@ -764,7 +868,7 @@ namespace TemuKJD.PDDForms.ProductSelectForms
this.lblLowPriceSkuImg.AutoSize = true;
this.lblLowPriceSkuImg.Cursor = System.Windows.Forms.Cursors.Hand;
this.lblLowPriceSkuImg.ForeColor = System.Drawing.SystemColors.HotTrack;
- this.lblLowPriceSkuImg.Location = new System.Drawing.Point(452, 113);
+ this.lblLowPriceSkuImg.Location = new System.Drawing.Point(760, 113);
this.lblLowPriceSkuImg.Margin = new System.Windows.Forms.Padding(6, 0, 0, 0);
this.lblLowPriceSkuImg.Name = "lblLowPriceSkuImg";
this.lblLowPriceSkuImg.Size = new System.Drawing.Size(52, 17);
@@ -794,7 +898,7 @@ namespace TemuKJD.PDDForms.ProductSelectForms
this.ucGroupBoxEx4.Controls.Add(this.label16);
this.ucGroupBoxEx4.Location = new System.Drawing.Point(147, 2);
this.ucGroupBoxEx4.Name = "ucGroupBoxEx4";
- this.ucGroupBoxEx4.Size = new System.Drawing.Size(329, 140);
+ this.ucGroupBoxEx4.Size = new System.Drawing.Size(312, 140);
this.ucGroupBoxEx4.TabIndex = 666;
this.ucGroupBoxEx4.TabStop = false;
this.ucGroupBoxEx4.Text = "待传商品";
@@ -805,7 +909,7 @@ namespace TemuKJD.PDDForms.ProductSelectForms
this.btnClearFilter.CanvasColor = System.Drawing.SystemColors.Control;
this.btnClearFilter.ColorSchemeStyle = DevComponents.DotNetBar.eDotNetBarStyle.StyleManagerControlled;
this.btnClearFilter.DisabledBackColor = System.Drawing.Color.Empty;
- this.btnClearFilter.Location = new System.Drawing.Point(266, 23);
+ this.btnClearFilter.Location = new System.Drawing.Point(254, 23);
this.btnClearFilter.Margin = new System.Windows.Forms.Padding(4, 2, 2, 2);
this.btnClearFilter.Name = "btnClearFilter";
this.btnClearFilter.Size = new System.Drawing.Size(48, 51);
@@ -827,9 +931,7 @@ namespace TemuKJD.PDDForms.ProductSelectForms
//
// txtIdFilter
//
- this.txtIdFilter.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
- | System.Windows.Forms.AnchorStyles.Right)));
- this.txtIdFilter.Location = new System.Drawing.Point(170, 51);
+ this.txtIdFilter.Location = new System.Drawing.Point(158, 51);
this.txtIdFilter.Margin = new System.Windows.Forms.Padding(0, 2, 0, 2);
this.txtIdFilter.Name = "txtIdFilter";
this.txtIdFilter.Size = new System.Drawing.Size(92, 23);
@@ -838,7 +940,7 @@ namespace TemuKJD.PDDForms.ProductSelectForms
// label1
//
this.label1.AutoSize = true;
- this.label1.Location = new System.Drawing.Point(140, 54);
+ this.label1.Location = new System.Drawing.Point(130, 54);
this.label1.Margin = new System.Windows.Forms.Padding(6, 0, 0, 0);
this.label1.Name = "label1";
this.label1.Size = new System.Drawing.Size(32, 17);
@@ -848,7 +950,7 @@ namespace TemuKJD.PDDForms.ProductSelectForms
// cmbCateFilter
//
this.cmbCateFilter.FormattingEnabled = true;
- this.cmbCateFilter.Location = new System.Drawing.Point(170, 22);
+ this.cmbCateFilter.Location = new System.Drawing.Point(158, 22);
this.cmbCateFilter.Name = "cmbCateFilter";
this.cmbCateFilter.Size = new System.Drawing.Size(92, 25);
this.cmbCateFilter.TabIndex = 663;
@@ -856,7 +958,7 @@ namespace TemuKJD.PDDForms.ProductSelectForms
// label2
//
this.label2.AutoSize = true;
- this.label2.Location = new System.Drawing.Point(140, 26);
+ this.label2.Location = new System.Drawing.Point(130, 26);
this.label2.Margin = new System.Windows.Forms.Padding(6, 0, 0, 0);
this.label2.Name = "label2";
this.label2.Size = new System.Drawing.Size(32, 17);
@@ -866,7 +968,7 @@ namespace TemuKJD.PDDForms.ProductSelectForms
// cmbGroupFilter
//
this.cmbGroupFilter.FormattingEnabled = true;
- this.cmbGroupFilter.Location = new System.Drawing.Point(47, 22);
+ this.cmbGroupFilter.Location = new System.Drawing.Point(37, 22);
this.cmbGroupFilter.Name = "cmbGroupFilter";
this.cmbGroupFilter.Size = new System.Drawing.Size(92, 25);
this.cmbGroupFilter.TabIndex = 641;
@@ -874,7 +976,7 @@ namespace TemuKJD.PDDForms.ProductSelectForms
// label20
//
this.label20.AutoSize = true;
- this.label20.Location = new System.Drawing.Point(16, 25);
+ this.label20.Location = new System.Drawing.Point(8, 25);
this.label20.Margin = new System.Windows.Forms.Padding(6, 0, 0, 0);
this.label20.Name = "label20";
this.label20.Size = new System.Drawing.Size(32, 17);
@@ -883,9 +985,7 @@ namespace TemuKJD.PDDForms.ProductSelectForms
//
// txtExtCodeFilter
//
- this.txtExtCodeFilter.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
- | System.Windows.Forms.AnchorStyles.Right)));
- this.txtExtCodeFilter.Location = new System.Drawing.Point(47, 51);
+ this.txtExtCodeFilter.Location = new System.Drawing.Point(37, 51);
this.txtExtCodeFilter.Margin = new System.Windows.Forms.Padding(0, 2, 0, 2);
this.txtExtCodeFilter.Name = "txtExtCodeFilter";
this.txtExtCodeFilter.Size = new System.Drawing.Size(92, 23);
@@ -897,7 +997,7 @@ namespace TemuKJD.PDDForms.ProductSelectForms
this.btnClearUpload.CanvasColor = System.Drawing.SystemColors.Control;
this.btnClearUpload.ColorSchemeStyle = DevComponents.DotNetBar.eDotNetBarStyle.StyleManagerControlled;
this.btnClearUpload.DisabledBackColor = System.Drawing.Color.Empty;
- this.btnClearUpload.Location = new System.Drawing.Point(238, 105);
+ this.btnClearUpload.Location = new System.Drawing.Point(226, 105);
this.btnClearUpload.Margin = new System.Windows.Forms.Padding(4, 2, 2, 2);
this.btnClearUpload.Name = "btnClearUpload";
this.btnClearUpload.Size = new System.Drawing.Size(76, 23);
@@ -923,7 +1023,7 @@ namespace TemuKJD.PDDForms.ProductSelectForms
this.lblWaitToUp.Cursor = System.Windows.Forms.Cursors.Hand;
this.lblWaitToUp.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Underline, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.lblWaitToUp.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255)))));
- this.lblWaitToUp.Location = new System.Drawing.Point(16, 108);
+ this.lblWaitToUp.Location = new System.Drawing.Point(8, 108);
this.lblWaitToUp.Margin = new System.Windows.Forms.Padding(6, 0, 0, 0);
this.lblWaitToUp.Name = "lblWaitToUp";
this.lblWaitToUp.Size = new System.Drawing.Size(95, 17);
@@ -934,7 +1034,7 @@ namespace TemuKJD.PDDForms.ProductSelectForms
// lblGoodsCount
//
this.lblGoodsCount.AutoSize = true;
- this.lblGoodsCount.Location = new System.Drawing.Point(167, 81);
+ this.lblGoodsCount.Location = new System.Drawing.Point(155, 81);
this.lblGoodsCount.Margin = new System.Windows.Forms.Padding(6, 0, 0, 0);
this.lblGoodsCount.Name = "lblGoodsCount";
this.lblGoodsCount.Size = new System.Drawing.Size(131, 17);
@@ -944,7 +1044,7 @@ namespace TemuKJD.PDDForms.ProductSelectForms
//
// txtAddCount
//
- this.txtAddCount.Location = new System.Drawing.Point(18, 78);
+ this.txtAddCount.Location = new System.Drawing.Point(10, 78);
this.txtAddCount.Margin = new System.Windows.Forms.Padding(0, 2, 0, 2);
this.txtAddCount.Name = "txtAddCount";
this.txtAddCount.Size = new System.Drawing.Size(47, 23);
@@ -957,7 +1057,7 @@ namespace TemuKJD.PDDForms.ProductSelectForms
this.panelEx2.Cursor = System.Windows.Forms.Cursors.Hand;
this.panelEx2.DisabledBackColor = System.Drawing.Color.Empty;
this.panelEx2.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
- this.panelEx2.Location = new System.Drawing.Point(68, 78);
+ this.panelEx2.Location = new System.Drawing.Point(60, 78);
this.panelEx2.Name = "panelEx2";
this.panelEx2.Size = new System.Drawing.Size(92, 23);
this.panelEx2.Style.Alignment = System.Drawing.StringAlignment.Center;
@@ -978,7 +1078,7 @@ namespace TemuKJD.PDDForms.ProductSelectForms
// label16
//
this.label16.AutoSize = true;
- this.label16.Location = new System.Drawing.Point(16, 54);
+ this.label16.Location = new System.Drawing.Point(8, 54);
this.label16.Margin = new System.Windows.Forms.Padding(6, 0, 0, 0);
this.label16.Name = "label16";
this.label16.Size = new System.Drawing.Size(32, 17);
@@ -1039,7 +1139,7 @@ namespace TemuKJD.PDDForms.ProductSelectForms
// splitContainer3.Panel2
//
this.splitContainer3.Panel2.Controls.Add(this.splitContainer4);
- this.splitContainer3.Size = new System.Drawing.Size(1584, 402);
+ this.splitContainer3.Size = new System.Drawing.Size(1484, 402);
this.splitContainer3.SplitterDistance = 372;
this.splitContainer3.TabIndex = 1;
//
@@ -1063,7 +1163,7 @@ namespace TemuKJD.PDDForms.ProductSelectForms
this.splitContainer2.Panel2.Controls.Add(this.panel1);
this.splitContainer2.Panel2.Controls.Add(this.dgvSelectProduct);
this.splitContainer2.Panel2.Padding = new System.Windows.Forms.Padding(0, 0, 4, 0);
- this.splitContainer2.Size = new System.Drawing.Size(1584, 372);
+ this.splitContainer2.Size = new System.Drawing.Size(1484, 372);
this.splitContainer2.SplitterDistance = 300;
this.splitContainer2.TabIndex = 0;
//
@@ -1071,19 +1171,19 @@ namespace TemuKJD.PDDForms.ProductSelectForms
//
this.dgvShop.AllowUserToAddRows = false;
this.dgvShop.AllowUserToDeleteRows = false;
- dataGridViewCellStyle7.BackColor = System.Drawing.Color.WhiteSmoke;
- this.dgvShop.AlternatingRowsDefaultCellStyle = dataGridViewCellStyle7;
+ dataGridViewCellStyle1.BackColor = System.Drawing.Color.WhiteSmoke;
+ this.dgvShop.AlternatingRowsDefaultCellStyle = dataGridViewCellStyle1;
this.dgvShop.AutoRowNumber = true;
this.dgvShop.BackgroundColor = System.Drawing.Color.White;
this.dgvShop.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255)))));
- dataGridViewCellStyle8.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleLeft;
- dataGridViewCellStyle8.BackColor = System.Drawing.SystemColors.Control;
- dataGridViewCellStyle8.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
- dataGridViewCellStyle8.ForeColor = System.Drawing.SystemColors.WindowText;
- dataGridViewCellStyle8.SelectionBackColor = System.Drawing.SystemColors.Highlight;
- dataGridViewCellStyle8.SelectionForeColor = System.Drawing.SystemColors.HighlightText;
- dataGridViewCellStyle8.WrapMode = System.Windows.Forms.DataGridViewTriState.False;
- this.dgvShop.ColumnHeadersDefaultCellStyle = dataGridViewCellStyle8;
+ dataGridViewCellStyle2.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleLeft;
+ dataGridViewCellStyle2.BackColor = System.Drawing.SystemColors.Control;
+ dataGridViewCellStyle2.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
+ dataGridViewCellStyle2.ForeColor = System.Drawing.SystemColors.WindowText;
+ dataGridViewCellStyle2.SelectionBackColor = System.Drawing.SystemColors.Highlight;
+ dataGridViewCellStyle2.SelectionForeColor = System.Drawing.SystemColors.HighlightText;
+ dataGridViewCellStyle2.WrapMode = System.Windows.Forms.DataGridViewTriState.False;
+ this.dgvShop.ColumnHeadersDefaultCellStyle = dataGridViewCellStyle2;
this.dgvShop.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize;
this.dgvShop.Columns.AddRange(new System.Windows.Forms.DataGridViewColumn[] {
this.colSelect,
@@ -1191,7 +1291,7 @@ namespace TemuKJD.PDDForms.ProductSelectForms
// txtTest20981
//
this.txtTest20981.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
- this.txtTest20981.Location = new System.Drawing.Point(1057, 30);
+ this.txtTest20981.Location = new System.Drawing.Point(957, 30);
this.txtTest20981.Margin = new System.Windows.Forms.Padding(0, 2, 0, 2);
this.txtTest20981.Name = "txtTest20981";
this.txtTest20981.Size = new System.Drawing.Size(127, 23);
@@ -1204,7 +1304,7 @@ namespace TemuKJD.PDDForms.ProductSelectForms
this.btnTest20981.CanvasColor = System.Drawing.SystemColors.Control;
this.btnTest20981.ColorSchemeStyle = DevComponents.DotNetBar.eDotNetBarStyle.StyleManagerControlled;
this.btnTest20981.DisabledBackColor = System.Drawing.Color.Empty;
- this.btnTest20981.Location = new System.Drawing.Point(1188, 30);
+ this.btnTest20981.Location = new System.Drawing.Point(1088, 30);
this.btnTest20981.Margin = new System.Windows.Forms.Padding(4, 2, 2, 2);
this.btnTest20981.Name = "btnTest20981";
this.btnTest20981.Size = new System.Drawing.Size(84, 23);
@@ -1228,7 +1328,7 @@ namespace TemuKJD.PDDForms.ProductSelectForms
//
this.pbLoading.Anchor = System.Windows.Forms.AnchorStyles.None;
this.pbLoading.Image = global::TemuKJD.Properties.Resources.loading_blue;
- this.pbLoading.Location = new System.Drawing.Point(615, 161);
+ this.pbLoading.Location = new System.Drawing.Point(565, 161);
this.pbLoading.Name = "pbLoading";
this.pbLoading.Size = new System.Drawing.Size(50, 50);
this.pbLoading.SizeMode = System.Windows.Forms.PictureBoxSizeMode.StretchImage;
@@ -1241,9 +1341,9 @@ namespace TemuKJD.PDDForms.ProductSelectForms
this.panel1.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
| System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
- this.panel1.Location = new System.Drawing.Point(36, 53);
+ this.panel1.Location = new System.Drawing.Point(35, 53);
this.panel1.Name = "panel1";
- this.panel1.Size = new System.Drawing.Size(1206, 286);
+ this.panel1.Size = new System.Drawing.Size(1106, 286);
this.panel1.TabIndex = 189;
this.panel1.Paint += new System.Windows.Forms.PaintEventHandler(this.panel1_Paint);
//
@@ -1251,19 +1351,19 @@ namespace TemuKJD.PDDForms.ProductSelectForms
//
this.dgvSelectProduct.AllowUserToAddRows = false;
this.dgvSelectProduct.AllowUserToDeleteRows = false;
- dataGridViewCellStyle9.BackColor = System.Drawing.Color.WhiteSmoke;
- this.dgvSelectProduct.AlternatingRowsDefaultCellStyle = dataGridViewCellStyle9;
+ dataGridViewCellStyle3.BackColor = System.Drawing.Color.WhiteSmoke;
+ this.dgvSelectProduct.AlternatingRowsDefaultCellStyle = dataGridViewCellStyle3;
this.dgvSelectProduct.AutoRowNumber = true;
this.dgvSelectProduct.BackgroundColor = System.Drawing.Color.White;
this.dgvSelectProduct.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255)))));
- dataGridViewCellStyle10.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleLeft;
- dataGridViewCellStyle10.BackColor = System.Drawing.SystemColors.Control;
- dataGridViewCellStyle10.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
- dataGridViewCellStyle10.ForeColor = System.Drawing.SystemColors.WindowText;
- dataGridViewCellStyle10.SelectionBackColor = System.Drawing.SystemColors.Highlight;
- dataGridViewCellStyle10.SelectionForeColor = System.Drawing.SystemColors.HighlightText;
- dataGridViewCellStyle10.WrapMode = System.Windows.Forms.DataGridViewTriState.False;
- this.dgvSelectProduct.ColumnHeadersDefaultCellStyle = dataGridViewCellStyle10;
+ dataGridViewCellStyle4.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleLeft;
+ dataGridViewCellStyle4.BackColor = System.Drawing.SystemColors.Control;
+ dataGridViewCellStyle4.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
+ dataGridViewCellStyle4.ForeColor = System.Drawing.SystemColors.WindowText;
+ dataGridViewCellStyle4.SelectionBackColor = System.Drawing.SystemColors.Highlight;
+ dataGridViewCellStyle4.SelectionForeColor = System.Drawing.SystemColors.HighlightText;
+ dataGridViewCellStyle4.WrapMode = System.Windows.Forms.DataGridViewTriState.False;
+ this.dgvSelectProduct.ColumnHeadersDefaultCellStyle = dataGridViewCellStyle4;
this.dgvSelectProduct.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize;
this.dgvSelectProduct.Columns.AddRange(new System.Windows.Forms.DataGridViewColumn[] {
this.colCheck,
@@ -1293,7 +1393,7 @@ namespace TemuKJD.PDDForms.ProductSelectForms
this.dgvSelectProduct.Name = "dgvSelectProduct";
this.dgvSelectProduct.ReadOnly = true;
this.dgvSelectProduct.RowTemplate.Height = 23;
- this.dgvSelectProduct.Size = new System.Drawing.Size(1276, 372);
+ this.dgvSelectProduct.Size = new System.Drawing.Size(1176, 372);
this.dgvSelectProduct.TabIndex = 187;
this.dgvSelectProduct.CellContentClick += new System.Windows.Forms.DataGridViewCellEventHandler(this.dgvSelectProduct_CellContentClick);
this.dgvSelectProduct.Scroll += new System.Windows.Forms.ScrollEventHandler(this.dgvSelectProduct_Scroll);
@@ -1324,8 +1424,8 @@ namespace TemuKJD.PDDForms.ProductSelectForms
//
// colSupplierName
//
- dataGridViewCellStyle11.WrapMode = System.Windows.Forms.DataGridViewTriState.True;
- this.colSupplierName.DefaultCellStyle = dataGridViewCellStyle11;
+ dataGridViewCellStyle5.WrapMode = System.Windows.Forms.DataGridViewTriState.True;
+ this.colSupplierName.DefaultCellStyle = dataGridViewCellStyle5;
this.colSupplierName.Frozen = true;
this.colSupplierName.HeaderText = "店铺名称";
this.colSupplierName.Name = "colSupplierName";
@@ -1404,8 +1504,8 @@ namespace TemuKJD.PDDForms.ProductSelectForms
//
// colProductName
//
- dataGridViewCellStyle12.WrapMode = System.Windows.Forms.DataGridViewTriState.True;
- this.colProductName.DefaultCellStyle = dataGridViewCellStyle12;
+ dataGridViewCellStyle6.WrapMode = System.Windows.Forms.DataGridViewTriState.True;
+ this.colProductName.DefaultCellStyle = dataGridViewCellStyle6;
this.colProductName.HeaderText = "商品标题";
this.colProductName.Name = "colProductName";
this.colProductName.ReadOnly = true;
@@ -1492,8 +1592,8 @@ namespace TemuKJD.PDDForms.ProductSelectForms
//
this.splitContainer4.Panel2.Controls.Add(this.btnClear);
this.splitContainer4.Panel2.Controls.Add(this.panelEx1);
- this.splitContainer4.Size = new System.Drawing.Size(1584, 26);
- this.splitContainer4.SplitterDistance = 893;
+ this.splitContainer4.Size = new System.Drawing.Size(1484, 26);
+ this.splitContainer4.SplitterDistance = 793;
this.splitContainer4.TabIndex = 3;
//
// statusBar
@@ -1504,7 +1604,7 @@ namespace TemuKJD.PDDForms.ProductSelectForms
this.statusBar.Location = new System.Drawing.Point(0, 0);
this.statusBar.Margin = new System.Windows.Forms.Padding(0);
this.statusBar.Name = "statusBar";
- this.statusBar.Size = new System.Drawing.Size(893, 26);
+ this.statusBar.Size = new System.Drawing.Size(793, 26);
this.statusBar.TabIndex = 2;
//
// btnClear
@@ -1561,7 +1661,7 @@ namespace TemuKJD.PDDForms.ProductSelectForms
//
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.None;
this.BackColor = System.Drawing.Color.White;
- this.ClientSize = new System.Drawing.Size(1584, 546);
+ this.ClientSize = new System.Drawing.Size(1484, 546);
this.Controls.Add(this.splitContainer1);
this.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.Name = "PDDDBProdUserSelectForm";
@@ -1574,6 +1674,7 @@ namespace TemuKJD.PDDForms.ProductSelectForms
this.splitContainer1.ResumeLayout(false);
this.ucGroupBoxEx2.ResumeLayout(false);
this.ucGroupBoxEx2.PerformLayout();
+ ((System.ComponentModel.ISupportInitialize)(this.pbUpgradeVersion)).EndInit();
((System.ComponentModel.ISupportInitialize)(this.pbSkuImg)).EndInit();
this.panel4.ResumeLayout(false);
this.panel3.ResumeLayout(false);
@@ -1706,5 +1807,12 @@ namespace TemuKJD.PDDForms.ProductSelectForms
private UserComponent.UcCheckBox chk21365;
private UserComponent.UcCheckBox chk20981;
private UserComponent.UcCheckBox chk22347;
+ private System.Windows.Forms.Label label3;
+ private System.Windows.Forms.TextBox txtUpgradeVersionAddPrice;
+ private System.Windows.Forms.Label label5;
+ private System.Windows.Forms.TextBox txtUpgradeVersionName;
+ private UserComponent.UcCheckBox chkUpgradeVersion;
+ private System.Windows.Forms.PictureBox pbUpgradeVersion;
+ private System.Windows.Forms.Label lblUpgradeVersion;
}
}
\ No newline at end of file
diff --git a/TEMUKJD/PDDForms/ProductSelectForms/PDDDBProdUserSelectForm.cs b/TEMUKJD/PDDForms/ProductSelectForms/PDDDBProdUserSelectForm.cs
index 5ace58c..04c0ce5 100644
--- a/TEMUKJD/PDDForms/ProductSelectForms/PDDDBProdUserSelectForm.cs
+++ b/TEMUKJD/PDDForms/ProductSelectForms/PDDDBProdUserSelectForm.cs
@@ -10,7 +10,7 @@ using System.Data;
using System.Drawing;
using System.IO;
using System.Linq;
-using System.Net;
+//using System.Net;
using System.Net.Http;
using System.Text;
using System.Threading;
@@ -25,6 +25,7 @@ using TemuKJD.BLL;
using System.Text.RegularExpressions;
using AllBase.Model.Result.PDDResult;
using AllBase.Model.Param.PDDProdParam;
+using CefSharp;
namespace TemuKJD.PDDForms.ProductSelectForms
{
@@ -121,6 +122,9 @@ namespace TemuKJD.PDDForms.ProductSelectForms
this.chkLowPriceSku.Checked = pddUploadRule.IsLowPriceSku;
this.txtLowPriceSkuName.Text = pddUploadRule.LowPriceSkuName;
this.txtLowPriceSkuPrice.Text = pddUploadRule.LowPriceSkuLowestPrice.ParseToString();
+ this.chkUpgradeVersion.Checked = pddUploadRule.IsUpgradeVersion;
+ this.txtUpgradeVersionName.Text = pddUploadRule.UpgradeVersionName;
+ this.txtUpgradeVersionAddPrice.Text = pddUploadRule.UpgradeVersionAddPrice.ParseToString();
this.lblWaitToUp.Text = "待上传商品 " + lstTemuDBProductSelect.Count + " 件";
@@ -584,6 +588,13 @@ namespace TemuKJD.PDDForms.ProductSelectForms
return;
}
+ if (chkUpgradeVersion.Checked && string.IsNullOrWhiteSpace(pbUpgradeVersion.Tag.ParseToString()))
+ {
+ BaseMsgForm.ShowError("升级版sku叠加图片未指定!");
+ return;
+ }
+
+
if (prodList.Count() > 0)
{
if (PDDShopLoginForm.shopLoginInstance != null && PDDShopLoginForm.shopLoginInstance.IsDisposed != true)
@@ -1602,6 +1613,56 @@ namespace TemuKJD.PDDForms.ProductSelectForms
prodParam.skus.Add(skuParam);
}
+ #region // 添加升级版sku
+ List upgrade_First_spec_lst = new List();
+ List upgrade_Sku_Lst = new List();
+ if (pddUploadRule.IsUpgradeVersion)
+ {
+ foreach (var skuParam in prodParam.skus)
+ {
+ var skuParamUpgrade = JsonHelper.DeserializeJsonToObject(JsonHelper.SerializeObject(skuParam));
+ skuParamUpgrade.multi_price += (txtUpgradeVersionAddPrice.Text.ParseToDecimal() * 100).ParseToInt();
+ skuParamUpgrade.price += (txtUpgradeVersionAddPrice.Text.ParseToDecimal() * 100).ParseToInt();
+ if (prodParam.market_price < skuParamUpgrade.price + 1000)
+ {
+ prodParam.market_price = skuParamUpgrade.price + 1000;
+ prodParam.market_price_in_yuan = (prodParam.market_price * 0.01).ParseToString();
+ }
+ var spec1 = skuParamUpgrade.spec.FirstOrDefault();
+ var specUpgrade = spec1;
+ if (specUpgrade != null)
+ {
+ specUpgrade.spec_name = this.txtUpgradeVersionName.Text.Trim() + specUpgrade.spec_name;
+ upgrade_Sku_Lst.Add(skuParamUpgrade);
+ var specUpgradeExist = upgrade_First_spec_lst.FirstOrDefault(s => s.spec_name == specUpgrade.spec_name);
+ if (specUpgradeExist == null)
+ {
+ specUpgradeExist = specUpgrade;
+ var upgradeSpecRst = get_spec_by_name(shop, specUpgradeExist.spec_name, spec1.parent_id.ParseToLong(), prodInfo.detail.cat_id.ParseToInt(),
+ prodParam.goods_id.ParseToString(), prodParam.goods_commit_id, prodInfo.chance_tab);
+ Thread.Sleep(Randomx.GetId(50, 100));
+ if (!upgradeSpecRst.Contains("\"success\":true"))
+ {
+ var error = BaseRegex.GetStringJson(ref upgradeSpecRst, "error_msg");
+ if (string.IsNullOrEmpty(error))
+ error = upgradeSpecRst;
+ return "设置升级款sku失败 " + error;
+ }
+ else
+ {
+ specUpgradeExist.spec_id = BaseRegex.GetLongJson(ref upgradeSpecRst, "result");
+ }
+ }
+ specUpgrade.spec_id = specUpgradeExist.spec_id;
+ }
+ }
+ foreach (var skuParam in upgrade_Sku_Lst)
+ {
+ prodParam.skus.Add(skuParam);
+ }
+ }
+ #endregion
+
#region // 添加一个申请活动低价sku
//申请skuSpec
var spec = prodInfo.detail.sku.FirstOrDefault().spec.FirstOrDefault(s => !s.spec_name.Contains("码"));
@@ -1922,6 +1983,32 @@ namespace TemuKJD.PDDForms.ProductSelectForms
{
lowPriceSkuImg = BaseRegex.GetStringJson(ref uploadLowPriceSkuImgRst, "url");
pbSkuImg.ImageLocation = lowPriceSkuImg;
+
+ // 测试使用pdd官方接口扣白底图
+ //ShopLoginInfo shop1 = null;
+ //Invoke(new Action(() =>
+ //{
+ // PDDShopLoginForm loginForm = new PDDShopLoginForm(shop);
+ // loginForm.openType = EnumOpenType.manage;
+ // loginForm.WindowState = FormWindowState.Maximized;
+ // loginForm.InitUrl = "https://aid.pinduoduo.com/tools/matting";
+ // loginForm.ShowDialog();
+ // List cookieList = NaiBa.CefHelper.CEFBrowser.GetCookieList("", loginForm.cefWebBrowser.GetCookieManager(null));
+ // shop1 = JsonHelper.DeserializeJsonToObject(JsonHelper.SerializeObject(shop));
+ // //var shopCookies = JsonHelper.DeserializeJsonToList(shop1.Cookies);
+ // //foreach (var cookie in cookieList)
+ // //{
+ // // //cookie.Domain = cookie.Domain.Replace(".mms.pinduoduo.com", "mms.pinduoduo.com");
+ // // shopCookies.Insert(0, cookie);
+ // //}
+ // shop1.Cookies = JsonHelper.SerializeObject(cookieList);
+ //}));
+ //var whiteRst = uploadWhiteBackPicture(shop1, lowPriceSkuImgBase64, "", "", "");
+
+ ////测试白底抠图
+ ////https://img.pddpic.com/garner-api-new/2025120814350989/90bd905ff5aa4d8499275cc8812be538.png
+ //whiteRst = getWhiteBackPicture(shop1, lowPriceSkuImg);
+ //whiteRst = getWhiteBackPicture(shop1, "https://img.pddpic.com/garner-api-new/2025120814350989/90bd905ff5aa4d8499275cc8812be538.png");
}
}
}
@@ -2051,6 +2138,56 @@ namespace TemuKJD.PDDForms.ProductSelectForms
}
prodParamHighPrice.skus.Add(skuParam);
}
+
+ #region 添加升级版sku
+ if (pddUploadRule.IsUpgradeVersion)
+ {
+ foreach (var skuParam in prodParamHighPrice.skus)
+ {
+ var skuParamUpgrade = JsonHelper.DeserializeJsonToObject(JsonHelper.SerializeObject(skuParam));
+ skuParamUpgrade.multi_price += (txtUpgradeVersionAddPrice.Text.ParseToDecimal() * 100).ParseToInt();
+ skuParamUpgrade.price += (txtUpgradeVersionAddPrice.Text.ParseToDecimal() * 100).ParseToInt();
+ if (prodParamHighPrice.market_price < skuParamUpgrade.price + 1000)
+ {
+ prodParamHighPrice.market_price = skuParamUpgrade.price + 1000;
+ prodParamHighPrice.market_price_in_yuan = (prodParamHighPrice.market_price * 0.01).ParseToString();
+ }
+ var spec1 = skuParamUpgrade.spec.FirstOrDefault();
+ var specUpgrade = spec1;
+ if (specUpgrade != null)
+ {
+ specUpgrade.spec_name = this.txtUpgradeVersionName.Text.Trim() + specUpgrade.spec_name;
+ upgrade_Sku_Lst.Add(skuParamUpgrade);
+ var specUpgradeExist = upgrade_First_spec_lst.FirstOrDefault(s => s.spec_name == specUpgrade.spec_name);
+ if (specUpgradeExist == null)
+ {
+ specUpgradeExist = specUpgrade;
+ var upgradeSpecRst = get_spec_by_name(shop, specUpgradeExist.spec_name, spec1.parent_id.ParseToLong(), prodInfo.detail.cat_id.ParseToInt(),
+ prodParamHighPrice.goods_id.ParseToString(), prodParamHighPrice.goods_commit_id, prodInfo.chance_tab);
+ Thread.Sleep(Randomx.GetId(50, 100));
+ if (!upgradeSpecRst.Contains("\"success\":true"))
+ {
+ var error = BaseRegex.GetStringJson(ref upgradeSpecRst, "error_msg");
+ if (string.IsNullOrEmpty(error))
+ error = upgradeSpecRst;
+ return "设置升级款sku失败 " + error;
+ }
+ else
+ {
+ specUpgradeExist.spec_id = BaseRegex.GetLongJson(ref upgradeSpecRst, "result");
+ }
+ }
+ specUpgrade.spec_id = specUpgradeExist.spec_id;
+ }
+ }
+ foreach (var skuParam in upgrade_Sku_Lst)
+ {
+ prodParamHighPrice.skus.Add(skuParam);
+ }
+ }
+ #endregion
+
+ #region 添加低价sku
if (isLowPriceSku)
{
List first_spec_lst = new List();
@@ -2096,6 +2233,7 @@ namespace TemuKJD.PDDForms.ProductSelectForms
prodParamHighPrice.skus.Add(sku);
}
}
+ #endregion
var prodParamHighPriceFakeSkuImg = JsonHelper.DeserializeJsonToObject(JsonHelper.SerializeObject(prodParam));
prodParamHighPriceFakeSkuImg.skus = new List();
@@ -2135,6 +2273,57 @@ namespace TemuKJD.PDDForms.ProductSelectForms
}
prodParamHighPriceFakeSkuImg.skus.Add(skuParam);
}
+
+
+ #region 添加升级版sku
+ if (pddUploadRule.IsUpgradeVersion)
+ {
+ foreach (var skuParam in prodParamHighPriceFakeSkuImg.skus)
+ {
+ var skuParamUpgrade = JsonHelper.DeserializeJsonToObject(JsonHelper.SerializeObject(skuParam));
+ skuParamUpgrade.multi_price += (txtUpgradeVersionAddPrice.Text.ParseToDecimal() * 100).ParseToInt();
+ skuParamUpgrade.price += (txtUpgradeVersionAddPrice.Text.ParseToDecimal() * 100).ParseToInt();
+ if (prodParamHighPriceFakeSkuImg.market_price < skuParamUpgrade.price + 1000)
+ {
+ prodParamHighPriceFakeSkuImg.market_price = skuParamUpgrade.price + 1000;
+ prodParamHighPriceFakeSkuImg.market_price_in_yuan = (prodParamHighPriceFakeSkuImg.market_price * 0.01).ParseToString();
+ }
+ var spec1 = skuParamUpgrade.spec.FirstOrDefault();
+ var specUpgrade = spec1;
+ if (specUpgrade != null)
+ {
+ specUpgrade.spec_name = this.txtUpgradeVersionName.Text.Trim() + specUpgrade.spec_name;
+ upgrade_Sku_Lst.Add(skuParamUpgrade);
+ var specUpgradeExist = upgrade_First_spec_lst.FirstOrDefault(s => s.spec_name == specUpgrade.spec_name);
+ if (specUpgradeExist == null)
+ {
+ specUpgradeExist = specUpgrade;
+ var upgradeSpecRst = get_spec_by_name(shop, specUpgradeExist.spec_name, spec1.parent_id.ParseToLong(), prodInfo.detail.cat_id.ParseToInt(),
+ prodParamHighPriceFakeSkuImg.goods_id.ParseToString(), prodParamHighPriceFakeSkuImg.goods_commit_id, prodInfo.chance_tab);
+ Thread.Sleep(Randomx.GetId(50, 100));
+ if (!upgradeSpecRst.Contains("\"success\":true"))
+ {
+ var error = BaseRegex.GetStringJson(ref upgradeSpecRst, "error_msg");
+ if (string.IsNullOrEmpty(error))
+ error = upgradeSpecRst;
+ return "设置升级款sku失败 " + error;
+ }
+ else
+ {
+ specUpgradeExist.spec_id = BaseRegex.GetLongJson(ref upgradeSpecRst, "result");
+ }
+ }
+ specUpgrade.spec_id = specUpgradeExist.spec_id;
+ }
+ }
+ foreach (var skuParam in upgrade_Sku_Lst)
+ {
+ prodParamHighPriceFakeSkuImg.skus.Add(skuParam);
+ }
+ }
+ #endregion
+
+ #region 添加低价Sku
if (isLowPriceSku)
{
List first_spec_lst = new List();
@@ -2181,6 +2370,8 @@ namespace TemuKJD.PDDForms.ProductSelectForms
}
#endregion
+ #endregion
+
if (cell != null)
{
Invoke(new Action(() =>
@@ -2376,7 +2567,7 @@ namespace TemuKJD.PDDForms.ProductSelectForms
else if (chk22347.Checked)
{
// 如果报了直通车,判断商品自动加入直通车以后再放行(循环12次应该已加入,否则认为加入失败跳过)
- for (int i = 0; i < 12 && !getProdRst2.Contains(prodParam.goods_id.ParseToString()); i++)
+ for (int i = 0; i < 30 && !getProdRst2.Contains(prodParam.goods_id.ParseToString()); i++)
{
if (cell != null)
{
@@ -2389,6 +2580,7 @@ namespace TemuKJD.PDDForms.ProductSelectForms
}));
}
Thread.Sleep(60 * 1000);
+ //getProdRst1 = queryActivityGoodsEnabled(shop, prodParam.goods_id.ParseToString(), 22347, 0);
getProdRst2 = queryActivityGoodsEnabled(shop, prodParam.goods_id.ParseToString(), 22347, 1);
if (getProdRst2.Contains(prodParam.goods_id.ParseToString()))
{
@@ -4485,6 +4677,77 @@ Content-Disposition: form-data; name=""pic_operations""
return result;
}
+
+ public string uploadWhiteBackPicture(ShopLoginInfo shop, string img_base64, string goods_id, string goods_commit_id, string chanceTab)
+ {
+ //if (string.IsNullOrEmpty(img_base64))
+ // img_base64 = "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";
+ byte[] imageBytes = Convert.FromBase64String(img_base64);
+ // 使用MemoryStream创建图片对象
+ using (MemoryStream ms = new MemoryStream(imageBytes))
+ {
+ Image image = Image.FromStream(ms);
+ // 保存图片到文件系统
+ try
+ {
+ image.Save("D:\\图片1.jpg", System.Drawing.Imaging.ImageFormat.Jpeg);
+ }
+ catch (Exception ex) { return "存图失败 " + ex.Message; }
+ }
+ string boundary = "----WebKitFormBoundaryFqcwRDsfAuvxgM4a";
+ string body = @"------WebKitFormBoundaryFqcwRDsfAuvxgM4a
+Content-Disposition: form-data; name=""file""; filename=""图片1.jpg""
+Content-Type: image/jpeg
+
+D:\图片1.jpg
+------WebKitFormBoundaryFqcwRDsfAuvxgM4a--
+";
+
+ var anti = shop.AntiContents.LastOrDefault().ParseToString();
+ if (shop.AntiContents.Count > 0)
+ anti = shop.AntiContents[Randomx.GetId(shop.AntiContents.Count)];
+ string url = "https://aid.pinduoduo.com/api/banner-intelligent/material/upload";
+ string refere = "https://aid.pinduoduo.com/tools/matting?origin=goods_material&msfrom=mms_globalsearch";
+ var result = HttpResponseBLL.PDDPostResponseUpload(shop, url, body, refere, boundary, anti);
+ for (int i = 0; i < 5 && result.Contains("网络繁忙,请不要频繁操作"); i++)
+ {
+ shop.AntiContents.Remove(anti);
+ anti = shop.AntiContents.FirstOrDefault().ParseToString();
+ if (shop.AntiContents.Count > 0)
+ {
+ Thread.Sleep(Randomx.GetId(300, 500));
+ anti = shop.AntiContents[Randomx.GetId(shop.AntiContents.Count)];
+ result = HttpResponseBLL.PDDPostResponseUpload(shop, url, body, refere, boundary, anti);
+ }
+ }
+ return result;
+ }
+
+ private string getWhiteBackPicture(ShopLoginInfo shop, string ImgUrl)
+ {
+ var anti = shop.AntiContents.LastOrDefault().ParseToString();
+ if (shop.AntiContents.Count > 0)
+ anti = shop.AntiContents[Randomx.GetId(shop.AntiContents.Count)];
+ string url = "https://aid.pinduoduo.com/api/banner-intelligent/matting/batch";
+
+ string body = @"[""" + ImgUrl + @"""]";
+ string refere = "https://aid.pinduoduo.com/tools/matting?origin=goods_material&msfrom=mms_globalsearch";
+
+ var result = HttpResponseBLL.PDDPostResponse(shop, url, body.Replace("0asAntiContent", anti), refere, anti);
+ for (int i = 0; i < 5 && result.Contains("网络繁忙,请不要频繁操作"); i++)
+ {
+ shop.AntiContents.Remove(anti);
+ anti = shop.AntiContents.FirstOrDefault().ParseToString();
+ if (shop.AntiContents.Count > 0)
+ {
+ Thread.Sleep(Randomx.GetId(300, 500));
+ anti = shop.AntiContents[Randomx.GetId(shop.AntiContents.Count)];
+ result = HttpResponseBLL.PDDPostResponse(shop, url, body.Replace("0asAntiContent", anti), refere, anti);
+ }
+ }
+ return result;
+ }
+
private void chkChance_CheckedChanged(object sender, EventArgs e)
{
isChanceApi = chkChance.Checked;
@@ -4811,6 +5074,106 @@ Content-Disposition: form-data; name=""pic_operations""
if (!chk15996.Checked && !chk20981.Checked && !chk21365.Checked && !chk22347.Checked)
chkActivity.Checked = false;
}
+
+ private void pbSkuImg_Click(object sender, EventArgs e)
+ {
+
+ }
+
+ private void lblUpgradeVersion_Click(object sender, EventArgs e)
+ {
+ OpenFileDialog openFileDialog = new OpenFileDialog();
+ openFileDialog.Multiselect = false;
+ // 设置过滤条件,只显示文本文件
+ openFileDialog.Filter = "png图片 (*.png)|*.png|All files (*.*)|*.*";
+ // 显示对话框并获取结果
+ if (openFileDialog.ShowDialog() == DialogResult.OK)
+ {
+ try
+ {
+ string filePath = openFileDialog.FileName;
+ Image image = Image.FromFile(filePath);
+
+ string imgBase64 = "";
+ using (MemoryStream memoryStream = new MemoryStream())
+ {
+ image.Save(memoryStream, System.Drawing.Imaging.ImageFormat.Jpeg);
+ byte[] imageBytes = memoryStream.ToArray();
+ imgBase64 = Convert.ToBase64String(imageBytes);
+ }
+ //string img_md5 = BaseClass.GetMd5(imgBase64);
+ if (this.pbUpgradeVersion.Tag.ParseToString() != imgBase64)
+ {
+ this.pbUpgradeVersion.Tag = imgBase64;
+ this.pbUpgradeVersion.ImageLocation = "";
+ this.pbUpgradeVersion.Image = image;
+
+ //if (!this.pbSkuImg.Tag.ParseToString().IsNullOrEmpty())
+ //{
+ // byte[] imageBytes = Convert.FromBase64String(pbSkuImg.Tag.ParseToString());
+ // // 使用MemoryStream创建图片对象
+ // using (MemoryStream ms = new MemoryStream(imageBytes))
+ // {
+ // Image imageBg = Image.FromStream(ms);
+
+ // using (Graphics g = Graphics.FromImage(imageBg))
+ // {
+ // // 将第一张图片绘制到结果图像上
+ // g.DrawImage(image, new Rectangle(0, 0, image.Width, image.Height), 0, 0, image.Width, image.Height, GraphicsUnit.Pixel);
+ // //// 将第二张图片绘制到结果图像上(叠加在第一张图片上)
+ // //g.DrawImage(img2, new Rectangle(0, 0, img2.Width, img2.Height), 0, 0, img2.Width, img2.Height, GraphicsUnit.Pixel);
+ // }
+
+ // // 保存图片到文件系统
+ // try
+ // {
+ // imageBg.Save("D:\\图片1.jpg", System.Drawing.Imaging.ImageFormat.Jpeg);
+ // }
+ // catch (Exception ex) { BaseMsgForm.ShowError("存图失败 " + ex.Message); }
+ // }
+ //}
+ }
+ }
+ catch (Exception ex)
+ {
+ BaseMsgForm.ShowError("打开增强版sku叠加图片失败 " + ex.Message);
+ return;
+ }
+ }
+
+ }
+
+ private void pbUpgradeVersion_Click(object sender, EventArgs e)
+ {
+
+ }
+
+ private void chkUpgradeVersion_CheckedChanged(object sender, EventArgs e)
+ {
+ if (IsLoadComplate)
+ {
+ pddUploadRule.IsUpgradeVersion = chkUpgradeVersion.Checked;
+ NaiBa.Util.Helper.ConfigHelper.SaveConfig("pdd_upload_rule", pddUploadRule);
+ }
+ }
+
+ private void txtUpgradeVersionName_TextChanged(object sender, EventArgs e)
+ {
+ if (IsLoadComplate)
+ {
+ pddUploadRule.UpgradeVersionName = txtUpgradeVersionName.Text.Trim();
+ NaiBa.Util.Helper.ConfigHelper.SaveConfig("pdd_upload_rule", pddUploadRule);
+ }
+ }
+
+ private void txtUpgradeVersionAddPrice_TextChanged(object sender, EventArgs e)
+ {
+ if (IsLoadComplate)
+ {
+ pddUploadRule.UpgradeVersionAddPrice = txtUpgradeVersionAddPrice.Text.Trim().ParseToDecimal();
+ NaiBa.Util.Helper.ConfigHelper.SaveConfig("pdd_upload_rule", pddUploadRule);
+ }
+ }
}
public class AddPriceRule
@@ -4857,5 +5220,15 @@ Content-Disposition: form-data; name=""pic_operations""
public bool IsLowPriceSku { get; set; } = true;
public string LowPriceSkuName { get; set; } = "福利款";
public decimal LowPriceSkuLowestPrice { get; set; } = 5m;
+
+ ///
+ /// 升级版
+ ///
+ public bool IsUpgradeVersion { get; set; } = false;
+ public string UpgradeVersionName { get; set; } = "升级版";
+ ///
+ /// 升级版额外加价
+ ///
+ public decimal UpgradeVersionAddPrice { get; set; } = 1m;
}
}
diff --git a/TEMUKJD/PDDForms/ShopForms/PDDShopLoginForm.cs b/TEMUKJD/PDDForms/ShopForms/PDDShopLoginForm.cs
index 3422b32..a0bf4ef 100644
--- a/TEMUKJD/PDDForms/ShopForms/PDDShopLoginForm.cs
+++ b/TEMUKJD/PDDForms/ShopForms/PDDShopLoginForm.cs
@@ -58,7 +58,7 @@ namespace TemuKJD.PDDForms.ShopForms
private string shopCookieHead = "pinduoduo.com";
private string shopLoginUrl = "https://mms.pinduoduo.com/login";
private string shopMainUrl = "https://mms.pinduoduo.com/home";
- private ChromiumWebBrowser cefWebBrowser = null;
+ public ChromiumWebBrowser cefWebBrowser = null;
private ShopLoginInfo shop = null;
private List lstShopCompany = new List();
private string currentUrl = "";