diff --git a/AllBase/AllBase.csproj b/AllBase/AllBase.csproj
index 14be498..a148be6 100644
--- a/AllBase/AllBase.csproj
+++ b/AllBase/AllBase.csproj
@@ -293,6 +293,7 @@
+
diff --git a/AllBase/BaseClass.cs b/AllBase/BaseClass.cs
index a926a0a..ee16b48 100644
--- a/AllBase/BaseClass.cs
+++ b/AllBase/BaseClass.cs
@@ -27,7 +27,7 @@ namespace AllBase
///
/// 版本ID
///
- public static int VersionCount = 1020;
+ public static int VersionCount = 1022;
//public static int VersionCount = 613;
///
diff --git a/AllBase/Model/Result/PDDResult/PddBuyerOrderInfoLite.cs b/AllBase/Model/Result/PDDResult/PddBuyerOrderInfoLite.cs
index b798f23..cb93ad2 100644
--- a/AllBase/Model/Result/PDDResult/PddBuyerOrderInfoLite.cs
+++ b/AllBase/Model/Result/PDDResult/PddBuyerOrderInfoLite.cs
@@ -37,6 +37,7 @@ namespace AllBase.Model.Result.PDDResult
if (expressCompanyName.Contains("顺丰速运")) return "SF";
if (expressCompanyName.Contains("京东快递")) return "JD";
if (expressCompanyName.Contains("京东快运")) return "JDKY";
+ if (expressCompanyName.Contains("京东大件物流")) return "JD";
return "";
}
@@ -74,6 +75,7 @@ namespace AllBase.Model.Result.PDDResult
if (outExpressCompanyMsg == null || outExpressCompanyMsg == "") return "";
if (outExpressCompanyMsg.Contains("邮政快递包裹")) return "邮政快递包裹";
if (outExpressCompanyMsg.Contains("邮政电商标快")) return "邮政电商标快";
+ if (outExpressCompanyMsg.Contains("邮政EMS")) return "邮政EMS";
if (outExpressCompanyMsg.Contains("极兔速递")) return "极兔速递";
if (outExpressCompanyMsg.Contains("极兔快递")) return "极兔速递";
if (outExpressCompanyMsg.Contains("申通快递")) return "申通快递";
@@ -82,10 +84,11 @@ namespace AllBase.Model.Result.PDDResult
if (outExpressCompanyMsg.Contains("中通快递")) return "中通快递";
if (outExpressCompanyMsg.Contains("百世快运")) return "百世快运";
if (outExpressCompanyMsg.Contains("百世快递")) return "百世快递";
- if (outExpressCompanyMsg.Contains("邮政EMS")) return "邮政EMS";
if (outExpressCompanyMsg.Contains("顺丰速运")) return "顺丰速运";
+ if (outExpressCompanyMsg.Contains("顺丰快递")) return "顺丰速运";
if (outExpressCompanyMsg.Contains("京东快递")) return "京东快递";
if (outExpressCompanyMsg.Contains("京东快运")) return "京东快运";
+ if (outExpressCompanyMsg.Contains("京东大件物流")) return "京东大件物流";
return "物流名称获取失败";
}
}
diff --git a/AllBase/Model/Result/WXResult/WXShopDefaultAddressInfo.cs b/AllBase/Model/Result/WXResult/WXShopDefaultAddressInfo.cs
new file mode 100644
index 0000000..c6116d2
--- /dev/null
+++ b/AllBase/Model/Result/WXResult/WXShopDefaultAddressInfo.cs
@@ -0,0 +1,23 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace AllBase.Model.Result.WXResult
+{
+ public class WXShopDefaultAddressInfo
+ {
+ public int? id { get; set; }
+ public string user_id { get; set; }
+ public string shop_id { get; set; }
+ public string province_name { get; set; }
+ public string city_name { get; set; }
+ public string county_name { get; set; }
+ public string detail_info { get; set; }
+ public string tel_number { get; set; }
+ public string user_name { get; set; }
+ public DateTime add_time { get; set; }
+ public DateTime mdy_time { get; set; }
+ }
+}
diff --git a/KJDService/KJD_WebService/BLL/WXXD/WXExpressOptimizeManage.cs b/KJDService/KJD_WebService/BLL/WXXD/WXExpressOptimizeManage.cs
index 6bea845..e4abdb0 100644
--- a/KJDService/KJD_WebService/BLL/WXXD/WXExpressOptimizeManage.cs
+++ b/KJDService/KJD_WebService/BLL/WXXD/WXExpressOptimizeManage.cs
@@ -52,7 +52,14 @@ namespace KJD_Web.BLL.WXXD
string conn = System.Configuration.ConfigurationManager.ConnectionStrings["ConnKJD"].ConnectionString;
MysqlUtils mySql = new MysqlUtils(conn);
string sql = "";
- sql = "select count(*) from wxxd.delivery where 1=1";
+
+ //string tableName = "wxxd.express_optimize";
+ //sql = "select exists (SELECT table_name FROM information_schema.tables WHERE table_schema = 'wxxd' AND table_name = 'express_optimize')";
+ //var existTable = mySql.ExecuteFirstInt(sql);
+ //if (existTable == 0)
+ // sql = "select count(*) from wxxd.express_optimize where 1=1";
+ //else
+ sql = "select count(*) from wxxd.express_optimize where 1=1";
string where = "";
if (!isNoUserName)
@@ -74,7 +81,7 @@ namespace KJD_Web.BLL.WXXD
}
else
{
- sql = "select * from wxxd.delivery where 1=1";
+ sql = "select * from wxxd.express_optimize where 1=1";
sql += where;
sql += " order by id desc limit " + Math.Max(0, page - 1) * page_size + "," + page_size + ";";
dt = mySql.ExecuteDataTable(sql);
@@ -158,21 +165,26 @@ namespace KJD_Web.BLL.WXXD
string conn = System.Configuration.ConfigurationManager.ConnectionStrings["ConnKJD"].ConnectionString;
MysqlUtils mySql = new MysqlUtils(conn);
string sql = "";
- sql = "select exists (select 1 from wxxd.delivery where waybill_id='" + waybill_id + "')";
+ sql = "SELECT EXISTS (SELECT 1 FROM wxxd.express_optimize WHERE waybill_id='" + waybill_id + "')";
var exist = mySql.ExecuteFirstInt(sql);
+ if (!mySql.Message.IsNullOrEmpty())
+ {
+ mySql.Close();
+ return "{\"code\":501,\"msg\":\"" + mySql.Message + "\"}";
+ }
if (exist > 0)
{
mySql.Close();
return "{\"code\":500,\"msg\":\"运单号已存在\"}";
}
- sql = "insert into wxxd.delivery (user_name,delivery_id,delivery_name,waybill_id,";
+ sql = "INSERT INTO wxxd.express_optimize (user_name,delivery_id,delivery_name,waybill_id,";
if (!bind_order_id.IsNullOrEmpty())
sql += "bind_order_id,";
if (waybill_pickup_time != null)
sql += "waybill_pickup_time,";
sql = sql.Trim(',');
- sql += ") values ('" + user_name + "','" + delivery_id + "','" + delivery_name + "','" + waybill_id + "',";
+ sql += ") VALUES ('" + user_name + "','" + delivery_id + "','" + delivery_name + "','" + waybill_id + "',";
if (!bind_order_id.IsNullOrEmpty())
sql += "'" + bind_order_id + "',";
if (waybill_pickup_time != null)
@@ -210,7 +222,7 @@ namespace KJD_Web.BLL.WXXD
string conn = System.Configuration.ConfigurationManager.ConnectionStrings["ConnKJD"].ConnectionString;
MysqlUtils mySql = new MysqlUtils(conn);
string sql = "";
- sql = "delete from wxxd.delivery WHERE waybill_id in ('" + waybill_ids.Replace(",", "','") + "') and status=0";
+ sql = "DELETE FROM wxxd.express_optimize WHERE waybill_id in ('" + waybill_ids.Replace(",", "','") + "') and status=0";
var rst = mySql.ExecuteNonQuery(sql);
mySql.Close();
if (!rst || !mySql.Message.IsNullOrEmpty())
@@ -249,7 +261,7 @@ namespace KJD_Web.BLL.WXXD
MysqlUtils mySql = new MysqlUtils(conn, true);
string sql = "";
- sql = "select * from wxxd.delivery where order_id='" + order_id + "' and status = 1";
+ sql = "select * from wxxd.express_optimize where order_id='" + order_id + "' and status = 1";
var dt = mySql.ExecuteDataTable(sql);
if (!mySql.Message.IsNullOrEmpty())
{
@@ -259,7 +271,7 @@ namespace KJD_Web.BLL.WXXD
}
if (dt?.Rows?.Count == 0)
{
- sql = "UPDATE wxxd.delivery SET order_id='" + order_id + "',status=1 WHERE user_name='" + user_name +
+ sql = "UPDATE wxxd.express_optimize SET order_id='" + order_id + "',status=1 WHERE user_name='" + user_name +
"' AND status=0 AND (order_id IS NULL OR order_id='') LIMIT 1";
var cnt = mySql.ExecuteAffectedRows(sql);
if (cnt == 0 || !mySql.Message.IsNullOrEmpty())
@@ -269,7 +281,7 @@ namespace KJD_Web.BLL.WXXD
return "{\"code\":501,\"msg\":\"物流信息提取失败 " + mySql.Message + "\"}";
}
- sql = "SELECT * FROM wxxd.delivery WHERE user_name='" + user_name + "' AND order_id='" + order_id + "' AND status = 1";
+ sql = "SELECT * FROM wxxd.express_optimize WHERE user_name='" + user_name + "' AND order_id='" + order_id + "' AND status = 1";
dt = mySql.ExecuteDataTable(sql);
if (!mySql.Message.IsNullOrEmpty())
{
@@ -290,7 +302,7 @@ namespace KJD_Web.BLL.WXXD
mySql.Close();
mySql = new MysqlUtils(conn, true);
- sql = " UPDATE wxxd.delivery SET shop_id='" + shop_id + "',status=2,use_time='" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + "' " +
+ sql = " UPDATE wxxd.express_optimize SET shop_id='" + shop_id + "',status=2,use_time='" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + "' " +
" WHERE user_name='" + user_name + "' AND status=1 AND order_id='" + order_id + "' AND waybill_id='" + waybill_id + "'";
var rst = mySql.ExecuteAffectedRows(sql);
if (rst == 0 || !mySql.Message.IsNullOrEmpty())
@@ -336,7 +348,7 @@ namespace KJD_Web.BLL.WXXD
try
{
string sql = "";
- sql = "select * from wxxd.delivery WHERE user_name='" + user_name + "' AND order_id='" + order_id + "' and status = 1 LIMIT 1";
+ sql = "select * from wxxd.express_optimize WHERE user_name='" + user_name + "' AND order_id='" + order_id + "' and status = 1 LIMIT 1";
var dt = mySql.ExecuteDataTable(sql);
if (!mySql.Message.IsNullOrEmpty())
{
@@ -347,7 +359,7 @@ namespace KJD_Web.BLL.WXXD
if (dt?.Rows?.Count == 0)
{
// 获取事先绑定的订单运单
- sql = " UPDATE wxxd.delivery SET order_id='" + order_id + "',status=1" +
+ sql = " UPDATE wxxd.express_optimize SET order_id='" + order_id + "',status=1" +
" WHERE user_name='" + user_name + "' AND status=0 AND bind_order_id='" + order_id + "'" +
" LIMIT 1";
var cnt = mySql.ExecuteAffectedRows(sql);
@@ -363,7 +375,7 @@ namespace KJD_Web.BLL.WXXD
// 第一天的订单用第二天的物流发货
var start_time = order_time.Value.Date.AddHours(24).ToString("yyyy-MM-dd HH:mm:ss");
var end_time = order_time.Value.Date.AddHours(48).AddSeconds(-1).ToString("yyyy-MM-dd HH:mm:ss");
- sql = " UPDATE wxxd.delivery SET order_id='" + order_id + "',status=1" +
+ sql = " UPDATE wxxd.express_optimize SET order_id='" + order_id + "',status=1" +
" WHERE user_name='" + user_name + "' AND status=0 AND (order_id IS NULL OR order_id='') AND (bind_order_id IS NULL OR bind_order_id='')" +
" AND waybill_pickup_time between '" + start_time + "' and '" + end_time + "'" +
" LIMIT 1";
@@ -378,7 +390,7 @@ namespace KJD_Web.BLL.WXXD
// 挑选最早入库的运单号
//if (cnt == 0 && order_time == null)
//{
- // sql = " UPDATE wxxd.delivery SET order_id='" + order_id + "',status=1" +
+ // sql = " UPDATE wxxd.express_optimize SET order_id='" + order_id + "',status=1" +
// " WHERE user_name='" + user_name + "' AND status=0 AND (order_id IS NULL OR order_id='') AND (bind_order_id IS NULL OR bind_order_id='')" +
// " LIMIT 1";
// cnt = mySql.ExecuteAffectedRows(sql);
@@ -396,7 +408,7 @@ namespace KJD_Web.BLL.WXXD
return "{\"code\":501,\"msg\":\"没有可用的运单号\"}";
}
- sql = "SELECT * FROM wxxd.delivery WHERE user_name='" + user_name + "' AND order_id='" + order_id + "' AND status = 1";
+ sql = "SELECT * FROM wxxd.express_optimize WHERE user_name='" + user_name + "' AND order_id='" + order_id + "' AND status = 1";
dt = mySql.ExecuteDataTable(sql);
if (!mySql.Message.IsNullOrEmpty())
{
@@ -455,10 +467,10 @@ namespace KJD_Web.BLL.WXXD
string conn = System.Configuration.ConfigurationManager.ConnectionStrings["ConnKJD"].ConnectionString;
MysqlUtils mySql = new MysqlUtils(conn, true);
- var sql = " UPDATE wxxd.delivery SET shop_id='" + shop_id + "',status=2,use_time='" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + "' " +
+ var sql = " UPDATE wxxd.express_optimize SET shop_id='" + shop_id + "',status=2,use_time='" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + "' " +
" WHERE user_name='" + user_name + "' AND status=1 AND order_id='" + order_id + "' AND waybill_id='" + waybill_id + "'";
if (is_rollback == "true")
- sql = " UPDATE wxxd.delivery SET shop_id='',order_id='',status=0,use_time=NULL" +
+ sql = " UPDATE wxxd.express_optimize SET shop_id='',order_id='',status=0,use_time=NULL" +
" WHERE user_name='" + user_name + "' AND status=1 AND order_id='" + order_id + "' AND waybill_id='" + waybill_id + "'";
var rst = mySql.ExecuteAffectedRows(sql);
@@ -477,7 +489,7 @@ namespace KJD_Web.BLL.WXXD
//var delivery_name = HtmlUtils.UrlDecodeUtf8(RegexUtils.GetStringQuery(ref inputData, "delivery_name"))?.Replace("'", "\\'");
//if (optimize_rst != null)
//{
- // sql = "select exists (select 1 from wxxd.delivery where order_id='" + order_id + "')";
+ // sql = "select exists (select 1 from wxxd.express_optimize where order_id='" + order_id + "')";
// var exist = mySql.ExecuteFirstInt(sql);
// if (exist > 0)
// {
@@ -565,6 +577,11 @@ namespace KJD_Web.BLL.WXXD
string sql = "";
sql = "select exists (select 1 from wxxd.express_optimize_rst where order_id='" + order_id + "')";
var exist = mySql.ExecuteFirstInt(sql);
+ if (!mySql.Message.IsNullOrEmpty())
+ {
+ mySql.Close();
+ return "{\"code\":501,\"msg\":\"" + mySql.Message + "\"}";
+ }
if (exist > 0)
{
sql = " UPDATE wxxd.express_optimize_rst SET ";
diff --git a/KJDService/KJD_WebService/BLL/WXXD/WXProductManage.cs b/KJDService/KJD_WebService/BLL/WXXD/WXProductManage.cs
index b12ffa4..a984b89 100644
--- a/KJDService/KJD_WebService/BLL/WXXD/WXProductManage.cs
+++ b/KJDService/KJD_WebService/BLL/WXXD/WXProductManage.cs
@@ -683,7 +683,179 @@ namespace KJD_Web.BLL.WXXD
return "{\"code\":19999,\"msg\":\"输入为空\"}";
}
+ public string WXAddMdyShopDefaultAfterSale(string inputData)
+ {
+ if (!string.IsNullOrEmpty(inputData))
+ {
+ if (!WXUserManage.GetSign(inputData))
+ return "{\"code\":999,\"msg\":\"校验失败\"}";
+
+ // 软件用户名
+ string user_id = HtmlUtils.UrlDecodeUtf8(RegexUtils.GetStringQuery(ref inputData, "user_name"))?.Replace("'", "\\'");
+ string shop_id = HtmlUtils.UrlDecodeUtf8(RegexUtils.GetStringQuery(ref inputData, "shop_id"))?.Replace("'", "\\'");
+ string province_name = HtmlUtils.UrlDecodeUtf8(RegexUtils.GetStringQuery(ref inputData, "province_name"))?.Replace("'", "\\'");
+ string city_name = HtmlUtils.UrlDecodeUtf8(RegexUtils.GetStringQuery(ref inputData, "city_name"))?.Replace("'", "\\'");
+ string county_name = HtmlUtils.UrlDecodeUtf8(RegexUtils.GetStringQuery(ref inputData, "county_name"))?.Replace("'", "\\'");
+ string detail_info = HtmlUtils.UrlDecodeUtf8(RegexUtils.GetStringQuery(ref inputData, "detail_info"))?.Replace("'", "\\'");
+ string tel_number = HtmlUtils.UrlDecodeUtf8(RegexUtils.GetStringQuery(ref inputData, "tel_number"))?.Replace("'", "\\'");
+ // 收件人
+ string user_name = HtmlUtils.UrlDecodeUtf8(RegexUtils.GetStringQuery(ref inputData, "receiver"))?.Replace("'", "\\'");
+ if (string.IsNullOrEmpty("user_id"))
+ return "{\"code\":500,\"msg\":\"缺少用户编号\"}";
+ if (string.IsNullOrEmpty("after_sale_json"))
+ return "{\"code\":500,\"msg\":\"缺少店铺编号\"}";
+ if (string.IsNullOrEmpty("province_name") || string.IsNullOrEmpty("city_name") || string.IsNullOrEmpty("county_name") || string.IsNullOrEmpty("detail_info"))
+ return "{\"code\":500,\"msg\":\"省市区或详细地址不完整\"}";
+ if (string.IsNullOrEmpty("user_name"))
+ return "{\"code\":500,\"msg\":\"缺少收件人\"}";
+ if (string.IsNullOrEmpty("tel_number"))
+ return "{\"code\":500,\"msg\":\"缺少收件人电话\"}";
+ string conn = System.Configuration.ConfigurationManager.ConnectionStrings["ConnKJD"].ConnectionString;
+ MysqlUtils mySql = new MysqlUtils(conn);
+
+ string sql = "SELECT 1 FROM `wxxd`.`wx_shop_default_address` where user_id='" + user_id + "' AND shop_id='" + shop_id + "'";
+ string where = "";
+ sql += where;
+ var exist = mySql.ExecuteFirstInt(sql);
+ if (!mySql.Message.IsNullOrEmpty())
+ {
+ mySql.Close();
+ return "{\"code\":501,\"msg\":\"" + mySql.Message + "\"}";
+ }
+
+ if (exist == 0)
+ {
+ sql = " INSERT INTO `wxxd`.`wx_shop_default_address` (user_id,shop_id,province_name,city_name,county_name,detail_info,tel_number,user_name)" +
+ " VALUES (@user_id,@shop_id,@province_name,@city_name,@county_name,@detail_info,@tel_number,@user_name);";
+ }
+ else
+ {
+ sql = "UPDATE `wxxd`.`wx_shop_default_address` SET ";
+ if (province_name != null)
+ sql += " province_name=@province_name,";
+ if (city_name != null)
+ sql += " city_name=@city_name,";
+ if (county_name != null)
+ sql += " county_name=@county_name,";
+ if (detail_info != null)
+ sql += " detail_info=@detail_info,";
+ if (tel_number != null)
+ sql += " tel_number=@tel_number,";
+ if (user_name != null)
+ sql += " user_name=@user_name,";
+ sql = sql.TrimEnd(',');
+ sql += " WHERE user_id=@user_id and shop_id=@shop_id;";
+ }
+
+ List paramLst = new List();
+ paramLst.Add(new MySqlParameter() { DbType = DbType.String, ParameterName = "province_name", Value = province_name, });
+ paramLst.Add(new MySqlParameter() { DbType = DbType.String, ParameterName = "city_name", Value = city_name, });
+ paramLst.Add(new MySqlParameter() { DbType = DbType.String, ParameterName = "county_name", Value = county_name, });
+ paramLst.Add(new MySqlParameter() { DbType = DbType.String, ParameterName = "detail_info", Value = detail_info, });
+ paramLst.Add(new MySqlParameter() { DbType = DbType.String, ParameterName = "tel_number", Value = tel_number, });
+ paramLst.Add(new MySqlParameter() { DbType = DbType.String, ParameterName = "user_name", Value = user_name, });
+ paramLst.Add(new MySqlParameter() { DbType = DbType.String, ParameterName = "user_id", Value = user_id, });
+ paramLst.Add(new MySqlParameter() { DbType = DbType.String, ParameterName = "shop_id", Value = shop_id, });
+ mySql.ExecuteNonQuery(sql, paramLst.ToArray());
+ mySql.Close();
+ if (string.IsNullOrEmpty(mySql.Message))
+ {
+ return "{\"code\":200,\"msg\":\"success\",\"data\":\"\"}";
+ }
+ else
+ {
+ return "{\"code\":50003,\"msg\":\"" + mySql.Message + "\",\"data\":\"\"}";
+ }
+ }
+ return "{\"code\":19999,\"msg\":\"输入为空\"}";
+ }
+
+ public string WXGetShopDefaultAfterSaleList(string inputData)
+ {
+ if (!string.IsNullOrEmpty(inputData))
+ {
+ var timeCalc = DateTime.Now;
+ if (!WXUserManage.GetSign(inputData))
+ return "{\"code\":999,\"msg\":\"校验失败\"}";
+
+ int page = RegexUtils.GetStringQuery(ref inputData, "page").ParseToInt();
+ int page_size = RegexUtils.GetStringQuery(ref inputData, "page_size").ParseToInt(200);
+ string user_id = RegexUtils.GetStringQuery(ref inputData, "user_name")?.Replace("'", "\\'");
+ string shop_ids = RegexUtils.GetStringQuery(ref inputData, "shop_ids")?.Replace("'", "\\'");
+ string not_count = RegexUtils.GetStringQuery(ref inputData, "not_count")?.Replace("'", "\\'");
+
+ string conn = System.Configuration.ConfigurationManager.ConnectionStrings["ConnKJD"].ConnectionString;
+ MysqlUtils mySql = new MysqlUtils(conn);
+
+ string sql = "";
+ var count = 0;
+
+ sql = "SELECT count(*) FROM `wxxd`.`wx_shop_default_address` where 1=1";
+ string where = "";
+ if (user_id != null)
+ where += " and user_id='" + user_id + "'";
+ if (shop_ids != null)
+ where += " and shop_ids IN ('" + shop_ids.Replace(",", "','") + "')";
+ sql += where;
+ sql += ";";
+
+ if (not_count != "true")
+ count = mySql.ExecuteRowCount(sql);
+
+ DataTable dt;
+ if (count == 0 && not_count != "true")
+ {
+ dt = new DataTable();
+ }
+ else
+ {
+ sql = "SELECT * FROM `wxxd`.`wx_shop_default_address` where 1=1";
+ sql += where;
+ sql += " order by id desc limit " + Math.Max(0, page - 1) * page_size + "," + page_size + ";";
+ dt = mySql.ExecuteDataTable(sql);
+ }
+ mySql.Close();
+
+ if (dt != null)
+ {
+ try
+ {
+ List WXShopDefaultAddressInfoLst = new List();
+ foreach (DataRow row in dt.Rows)
+ {
+ WXShopDefaultAddressInfoLst.Add(new WXShopDefaultAddressInfo()
+ {
+ id = row["id"].ParseToInt(),
+ city_name = row["city_name"].ParseToString(),
+ county_name = row["county_name"].ParseToString(),
+ detail_info = row["detail_info"].ParseToString(),
+ province_name = row["province_name"].ParseToString(),
+ shop_id = row["shop_id"].ParseToString(),
+ tel_number = row["tel_number"].ParseToString(),
+ user_id = row["user_id"].ParseToString(),
+ user_name = row["user_name"].ParseToString(),
+ add_time = Convert.ToDateTime(row["add_time"]),
+ mdy_time = Convert.ToDateTime(row["mdy_time"]),
+ });
+ }
+ JsonSerializerSettings jsonSetting = new JsonSerializerSettings { NullValueHandling = NullValueHandling.Ignore };
+ var data = JsonUtils.SerializeObjectToString(WXShopDefaultAddressInfoLst, jsonSetting);
+ var seconds = (DateTime.Now - timeCalc).TotalSeconds.ToString("0.000");
+ return "{\"code\":200,\"msg\":\"success\",\"data\":" + data + ",\"count\":" + count + ",\"seconds\":" + seconds + "}";
+ }
+ catch (Exception ex)
+ {
+ return "{\"code\":500,\"msg\":\"" + ex.Message + "\",\"data\":[],\"count\":" + 0 + "}";
+ }
+ }
+ else
+ {
+ return "{\"code\":500,\"msg\":\"" + mySql.Message + "\",\"data\":[],\"count\":" + 0 + "}";
+ }
+ }
+ return "{\"code\":19999,\"msg\":\"输入为空\"}";
+ }
public string WXAddMdyAfterSale(string inputData)
@@ -703,11 +875,11 @@ namespace KJD_Web.BLL.WXXD
//int page = RegexUtils.GetStringQuery(ref inputData, "page").ParseToInt();
//int page_size = RegexUtils.GetStringQuery(ref inputData, "page_size").ParseToInt(50);
- string coid = RegexUtils.GetStringQuery(ref inputData, "coid")?.Replace("'", "\\'");
+ string coid = HtmlUtils.UrlDecodeUtf8(RegexUtils.GetStringQuery(ref inputData, "coid"))?.Replace("'", "\\'");
string after_sale_json = HtmlUtils.UrlDecodeUtf8(RegexUtils.GetStringQuery(ref inputData, "after_sale_json"))?.Replace("'", "\\'");
- if (string.IsNullOrEmpty("coid"))
+ if (string.IsNullOrEmpty(coid))
return "{\"code\":50001,\"msg\":\"没有售后编号\"}";
- if (string.IsNullOrEmpty("after_sale_json"))
+ if (string.IsNullOrEmpty(after_sale_json))
return "{\"code\":50001,\"msg\":\"没有售后信息\"}";
string supplier_name = HtmlUtils.UrlDecodeUtf8(RegexUtils.GetStringQuery(ref inputData, "supplier_name"))?.Replace("'", "\\'");
string type = HtmlUtils.UrlDecodeUtf8(RegexUtils.GetStringQuery(ref inputData, "type"))?.Replace("'", "\\'");
@@ -766,7 +938,7 @@ namespace KJD_Web.BLL.WXXD
}
///
- /// 上货实时获取
+ /// 上货实时获取聚水潭等外部平台售后地址
///
///
///
@@ -829,7 +1001,7 @@ namespace KJD_Web.BLL.WXXD
}
///
- /// 售后列表管理
+ /// 聚水潭等外部平台售后列表
///
///
///
diff --git a/KJDService/KJD_WebService/BLL/WXXD/WXShopManage.cs b/KJDService/KJD_WebService/BLL/WXXD/WXShopManage.cs
index 2d5ed4d..e0ef832 100644
--- a/KJDService/KJD_WebService/BLL/WXXD/WXShopManage.cs
+++ b/KJDService/KJD_WebService/BLL/WXXD/WXShopManage.cs
@@ -96,8 +96,8 @@ namespace KJD_Web.BLL.WXXD
}
else
{
- sql = "SELECT s.*,se.user_points_expire_time FROM wxxd.shop s" +
- " LEFT JOIN wxxd.shop_expire se ON s.shop_id=se.shop_id" +
+ sql = "SELECT s.*,se.expire_time FROM wxxd.shop s" +
+ " LEFT JOIN wxxd.user_points_shop_expire se ON s.shop_id=se.shop_id" +
" WHERE 1=1";
sql += where; // where 子句
diff --git a/KJDService/KJD_WebService/KJD_WebService.csproj b/KJDService/KJD_WebService/KJD_WebService.csproj
index 4f62324..42f473c 100644
--- a/KJDService/KJD_WebService/KJD_WebService.csproj
+++ b/KJDService/KJD_WebService/KJD_WebService.csproj
@@ -131,6 +131,7 @@
+
WXProd.aspx
diff --git a/KJDService/KJD_WebService/KJD_WebService.csproj.user b/KJDService/KJD_WebService/KJD_WebService.csproj.user
index 4bcdc04..1b87364 100644
--- a/KJDService/KJD_WebService/KJD_WebService.csproj.user
+++ b/KJDService/KJD_WebService/KJD_WebService.csproj.user
@@ -8,7 +8,7 @@
- Release|Any CPU
+ Debug|Any CPU
ShowAllFiles
diff --git a/KJDService/KJD_WebService/Model/WXShopDefaultAddressInfo.cs b/KJDService/KJD_WebService/Model/WXShopDefaultAddressInfo.cs
new file mode 100644
index 0000000..58e5abc
--- /dev/null
+++ b/KJDService/KJD_WebService/Model/WXShopDefaultAddressInfo.cs
@@ -0,0 +1,22 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Web;
+
+namespace KJD_Web.Model
+{
+ public class WXShopDefaultAddressInfo
+ {
+ public int? id { get; set; }
+ public string user_id { get; set; }
+ public string shop_id { get; set; }
+ public string province_name { get; set; }
+ public string city_name { get; set; }
+ public string county_name { get; set; }
+ public string detail_info { get; set; }
+ public string tel_number { get; set; }
+ public string user_name { get; set; }
+ public DateTime add_time { get; set; }
+ public DateTime mdy_time { get; set; }
+ }
+}
\ No newline at end of file
diff --git a/KJDService/KJD_WebService/WXProductService.asmx.cs b/KJDService/KJD_WebService/WXProductService.asmx.cs
index eee933a..ef1a4e2 100644
--- a/KJDService/KJD_WebService/WXProductService.asmx.cs
+++ b/KJDService/KJD_WebService/WXProductService.asmx.cs
@@ -197,6 +197,29 @@ namespace KJD_Web
Context.Response.End();
}
+ [WebMethod]
+ public void wx_add_mdy_shop_default_after_sale()
+ {
+ string jsontext = GetRequestJsonString();
+
+ var result = jsontext;
+ result = new WXProductManage().WXAddMdyShopDefaultAfterSale(jsontext);
+
+ Context.Response.Write(result);
+ Context.Response.End();
+ }
+ [WebMethod]
+ public void wx_get_shop_default_after_sale_list()
+ {
+ string jsontext = GetRequestJsonString();
+
+ var result = jsontext;
+ result = new WXProductManage().WXGetShopDefaultAfterSaleList(jsontext);
+
+ Context.Response.Write(result);
+ Context.Response.End();
+ }
+
[WebMethod]
public void wx_add_mdy_after_sale()
{
diff --git a/TEMUKJD/KJD.csproj b/TEMUKJD/KJD.csproj
index 3c914c8..4cb4708 100644
--- a/TEMUKJD/KJD.csproj
+++ b/TEMUKJD/KJD.csproj
@@ -166,6 +166,12 @@
ExprotProductForm.cs
+
+ Form
+
+
+ JstBanPlatformForm.cs
+
Form
@@ -280,6 +286,12 @@
WXFinderSquareForm.cs
+
+ Form
+
+
+ WXShopAfterSaleAddressListForm.cs
+
Form
@@ -1238,6 +1250,9 @@
ExprotProductForm.cs
+
+ JstBanPlatformForm.cs
+
PDDGetChanceProdByImgForm.cs
@@ -1331,6 +1346,9 @@
WXProductForm.cs
+
+ WXShopAfterSaleAddressListForm.cs
+
WXShopOptimizeForm.cs
diff --git a/TEMUKJD/PDDForms/ProductForms/ActivityForms/PDDAddActivityForm.Designer.cs b/TEMUKJD/PDDForms/ProductForms/ActivityForms/PDDAddActivityForm.Designer.cs
index be669ca..5ea4584 100644
--- a/TEMUKJD/PDDForms/ProductForms/ActivityForms/PDDAddActivityForm.Designer.cs
+++ b/TEMUKJD/PDDForms/ProductForms/ActivityForms/PDDAddActivityForm.Designer.cs
@@ -32,16 +32,21 @@ namespace TemuKJD.PDDForms.ProductForms.ActivityForms
private void InitializeComponent()
{
this.components = new System.ComponentModel.Container();
- 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();
+ 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 dataGridViewCellStyle13 = new System.Windows.Forms.DataGridViewCellStyle();
+ System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle14 = new System.Windows.Forms.DataGridViewCellStyle();
+ System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle15 = new System.Windows.Forms.DataGridViewCellStyle();
+ System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle16 = new System.Windows.Forms.DataGridViewCellStyle();
this.splitContainer1 = new System.Windows.Forms.SplitContainer();
this.ucGroupBoxEx2 = new TemuKJD.UserComponent.UcGroupBoxEx(this.components);
+ this.txtLowPriceAddPriceTimes = new System.Windows.Forms.TextBox();
+ this.txtLowPriceAddMorePrice = new System.Windows.Forms.TextBox();
+ this.label8 = new System.Windows.Forms.Label();
+ this.label13 = new System.Windows.Forms.Label();
+ this.label7 = new System.Windows.Forms.Label();
this.chkLowPrice = new TemuKJD.UserComponent.UcCheckBox(this.components);
this.label6 = new System.Windows.Forms.Label();
this.txtMultiCnt = new System.Windows.Forms.TextBox();
@@ -192,6 +197,11 @@ namespace TemuKJD.PDDForms.ProductForms.ActivityForms
| 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.txtLowPriceAddPriceTimes);
+ this.ucGroupBoxEx2.Controls.Add(this.txtLowPriceAddMorePrice);
+ this.ucGroupBoxEx2.Controls.Add(this.label8);
+ this.ucGroupBoxEx2.Controls.Add(this.label13);
+ this.ucGroupBoxEx2.Controls.Add(this.label7);
this.ucGroupBoxEx2.Controls.Add(this.chkLowPrice);
this.ucGroupBoxEx2.Controls.Add(this.label6);
this.ucGroupBoxEx2.Controls.Add(this.txtMultiCnt);
@@ -233,6 +243,61 @@ namespace TemuKJD.PDDForms.ProductForms.ActivityForms
this.ucGroupBoxEx2.TabStop = false;
this.ucGroupBoxEx2.Text = "活动价格配置";
//
+ // txtLowPriceAddTimes
+ //
+ this.txtLowPriceAddPriceTimes.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
+ this.txtLowPriceAddPriceTimes.Location = new System.Drawing.Point(770, 89);
+ this.txtLowPriceAddPriceTimes.Margin = new System.Windows.Forms.Padding(0, 2, 0, 2);
+ this.txtLowPriceAddPriceTimes.Name = "txtLowPriceAddTimes";
+ this.txtLowPriceAddPriceTimes.Size = new System.Drawing.Size(31, 23);
+ this.txtLowPriceAddPriceTimes.TabIndex = 924;
+ this.txtLowPriceAddPriceTimes.Text = "1.0";
+ this.txtLowPriceAddPriceTimes.TextChanged += new System.EventHandler(this.txtAddPrice_TextChanged);
+ //
+ // txtLowPriceAddMorePrice
+ //
+ this.txtLowPriceAddMorePrice.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
+ this.txtLowPriceAddMorePrice.Location = new System.Drawing.Point(843, 89);
+ this.txtLowPriceAddMorePrice.Margin = new System.Windows.Forms.Padding(0, 2, 0, 2);
+ this.txtLowPriceAddMorePrice.Name = "txtLowPriceAddMorePrice";
+ this.txtLowPriceAddMorePrice.Size = new System.Drawing.Size(31, 23);
+ this.txtLowPriceAddMorePrice.TabIndex = 927;
+ this.txtLowPriceAddMorePrice.Text = "0";
+ this.txtLowPriceAddMorePrice.TextChanged += new System.EventHandler(this.txtAddPrice_TextChanged);
+ //
+ // label8
+ //
+ this.label8.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
+ this.label8.AutoSize = true;
+ this.label8.Location = new System.Drawing.Point(801, 92);
+ this.label8.Margin = new System.Windows.Forms.Padding(6, 0, 0, 0);
+ this.label8.Name = "label8";
+ this.label8.Size = new System.Drawing.Size(44, 17);
+ this.label8.TabIndex = 926;
+ this.label8.Text = "倍再加";
+ //
+ // label13
+ //
+ this.label13.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
+ this.label13.AutoSize = true;
+ this.label13.Location = new System.Drawing.Point(874, 92);
+ this.label13.Margin = new System.Windows.Forms.Padding(6, 0, 0, 0);
+ this.label13.Name = "label13";
+ this.label13.Size = new System.Drawing.Size(20, 17);
+ this.label13.TabIndex = 928;
+ this.label13.Text = "元";
+ //
+ // label7
+ //
+ this.label7.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
+ this.label7.AutoSize = true;
+ this.label7.Location = new System.Drawing.Point(727, 92);
+ this.label7.Margin = new System.Windows.Forms.Padding(6, 0, 0, 0);
+ this.label7.Name = "label7";
+ this.label7.Size = new System.Drawing.Size(44, 17);
+ this.label7.TabIndex = 925;
+ this.label7.Text = "加价加";
+ //
// chkLowPrice
//
this.chkLowPrice.AutoSize = true;
@@ -1053,19 +1118,19 @@ namespace TemuKJD.PDDForms.ProductForms.ActivityForms
//
this.dgvShop.AllowUserToAddRows = false;
this.dgvShop.AllowUserToDeleteRows = false;
- dataGridViewCellStyle1.BackColor = System.Drawing.Color.WhiteSmoke;
- this.dgvShop.AlternatingRowsDefaultCellStyle = dataGridViewCellStyle1;
+ dataGridViewCellStyle9.BackColor = System.Drawing.Color.WhiteSmoke;
+ this.dgvShop.AlternatingRowsDefaultCellStyle = dataGridViewCellStyle9;
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)))));
- 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;
+ 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.dgvShop.ColumnHeadersDefaultCellStyle = dataGridViewCellStyle10;
this.dgvShop.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize;
this.dgvShop.Columns.AddRange(new System.Windows.Forms.DataGridViewColumn[] {
this.colSelect,
@@ -1270,19 +1335,19 @@ namespace TemuKJD.PDDForms.ProductForms.ActivityForms
//
this.dgvActProduct.AllowUserToAddRows = false;
this.dgvActProduct.AllowUserToDeleteRows = false;
- dataGridViewCellStyle3.BackColor = System.Drawing.Color.WhiteSmoke;
- this.dgvActProduct.AlternatingRowsDefaultCellStyle = dataGridViewCellStyle3;
+ dataGridViewCellStyle11.BackColor = System.Drawing.Color.WhiteSmoke;
+ this.dgvActProduct.AlternatingRowsDefaultCellStyle = dataGridViewCellStyle11;
this.dgvActProduct.AutoRowNumber = true;
this.dgvActProduct.BackgroundColor = System.Drawing.Color.White;
this.dgvActProduct.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255)))));
- 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.dgvActProduct.ColumnHeadersDefaultCellStyle = dataGridViewCellStyle4;
+ dataGridViewCellStyle12.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleLeft;
+ dataGridViewCellStyle12.BackColor = System.Drawing.SystemColors.Control;
+ dataGridViewCellStyle12.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
+ dataGridViewCellStyle12.ForeColor = System.Drawing.SystemColors.WindowText;
+ dataGridViewCellStyle12.SelectionBackColor = System.Drawing.SystemColors.Highlight;
+ dataGridViewCellStyle12.SelectionForeColor = System.Drawing.SystemColors.HighlightText;
+ dataGridViewCellStyle12.WrapMode = System.Windows.Forms.DataGridViewTriState.False;
+ this.dgvActProduct.ColumnHeadersDefaultCellStyle = dataGridViewCellStyle12;
this.dgvActProduct.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize;
this.dgvActProduct.Columns.AddRange(new System.Windows.Forms.DataGridViewColumn[] {
this.colCheck,
@@ -1331,8 +1396,8 @@ namespace TemuKJD.PDDForms.ProductForms.ActivityForms
//
// colSupplierName
//
- dataGridViewCellStyle5.WrapMode = System.Windows.Forms.DataGridViewTriState.True;
- this.colSupplierName.DefaultCellStyle = dataGridViewCellStyle5;
+ dataGridViewCellStyle13.WrapMode = System.Windows.Forms.DataGridViewTriState.True;
+ this.colSupplierName.DefaultCellStyle = dataGridViewCellStyle13;
this.colSupplierName.Frozen = true;
this.colSupplierName.HeaderText = "店铺名称";
this.colSupplierName.Name = "colSupplierName";
@@ -1387,8 +1452,8 @@ namespace TemuKJD.PDDForms.ProductForms.ActivityForms
//
// colProductName
//
- dataGridViewCellStyle6.WrapMode = System.Windows.Forms.DataGridViewTriState.True;
- this.colProductName.DefaultCellStyle = dataGridViewCellStyle6;
+ dataGridViewCellStyle14.WrapMode = System.Windows.Forms.DataGridViewTriState.True;
+ this.colProductName.DefaultCellStyle = dataGridViewCellStyle14;
this.colProductName.HeaderText = "商品标题";
this.colProductName.Name = "colProductName";
this.colProductName.ReadOnly = true;
@@ -1415,8 +1480,8 @@ namespace TemuKJD.PDDForms.ProductForms.ActivityForms
//
// colUpdateTime
//
- dataGridViewCellStyle7.WrapMode = System.Windows.Forms.DataGridViewTriState.True;
- this.colUpdateTime.DefaultCellStyle = dataGridViewCellStyle7;
+ dataGridViewCellStyle15.WrapMode = System.Windows.Forms.DataGridViewTriState.True;
+ this.colUpdateTime.DefaultCellStyle = dataGridViewCellStyle15;
this.colUpdateTime.FillWeight = 80F;
this.colUpdateTime.HeaderText = "上架时间";
this.colUpdateTime.Name = "colUpdateTime";
@@ -1432,8 +1497,8 @@ namespace TemuKJD.PDDForms.ProductForms.ActivityForms
//
// colOpResult
//
- dataGridViewCellStyle8.WrapMode = System.Windows.Forms.DataGridViewTriState.True;
- this.colOpResult.DefaultCellStyle = dataGridViewCellStyle8;
+ dataGridViewCellStyle16.WrapMode = System.Windows.Forms.DataGridViewTriState.True;
+ this.colOpResult.DefaultCellStyle = dataGridViewCellStyle16;
this.colOpResult.HeaderText = "操作结果";
this.colOpResult.Name = "colOpResult";
this.colOpResult.ReadOnly = true;
@@ -1678,5 +1743,10 @@ namespace TemuKJD.PDDForms.ProductForms.ActivityForms
private System.Windows.Forms.Label label6;
private System.Windows.Forms.TextBox txtMultiCnt;
private UserComponent.UcCheckBox chkLowPrice;
+ private System.Windows.Forms.TextBox txtLowPriceAddPriceTimes;
+ private System.Windows.Forms.TextBox txtLowPriceAddMorePrice;
+ private System.Windows.Forms.Label label8;
+ private System.Windows.Forms.Label label13;
+ private System.Windows.Forms.Label label7;
}
}
\ No newline at end of file
diff --git a/TEMUKJD/PDDForms/ProductForms/ActivityForms/PDDAddActivityForm.cs b/TEMUKJD/PDDForms/ProductForms/ActivityForms/PDDAddActivityForm.cs
index 41ec8fe..8b3ed6b 100644
--- a/TEMUKJD/PDDForms/ProductForms/ActivityForms/PDDAddActivityForm.cs
+++ b/TEMUKJD/PDDForms/ProductForms/ActivityForms/PDDAddActivityForm.cs
@@ -103,11 +103,13 @@ namespace TemuKJD.PDDForms.ProductForms.ActivityForms
defaultAddPriceRule = NaiBa.Util.Helper.ConfigHelper.LoadConfig("pdd_default_add_price_rule_for_activity");
if (defaultAddPriceRule == null)
{
- defaultAddPriceRule = new AddPriceRule() { AddPriceTimes = 1.3m, AddMorePrice = 1, SinglePriceAdd = 1 };
+ defaultAddPriceRule = new AddPriceRule() { AddPriceTimes = 1.3m, AddMorePrice = 1, SinglePriceAdd = 1, LowPriceAddPriceTimes = 1, LowPriceAddMorePrice = 0 };
}
this.txtAddTimes.Text = defaultAddPriceRule.AddPriceTimes.ToString();
this.txtAddMorePrice.Text = defaultAddPriceRule.AddMorePrice.ToString();
this.txtSinglePriceAdd.Text = defaultAddPriceRule.SinglePriceAdd.ToString();
+ this.txtLowPriceAddPriceTimes.Text = defaultAddPriceRule.LowPriceAddPriceTimes.ToString();
+ this.txtLowPriceAddMorePrice.Text = defaultAddPriceRule.LowPriceAddMorePrice.ToString();
this.txtStockNum.Text = defaultAddPriceRule.StockNum.ToString();
this.txtAddShippingFeeTimes.Text = defaultAddPriceRule.AddShippingFeeTimes.ToString();
this.chkAddMorePriceFirst.Checked = defaultAddPriceRule.AddMorePriceFirst;
@@ -634,6 +636,28 @@ namespace TemuKJD.PDDForms.ProductForms.ActivityForms
Thread.Sleep((moreSleepTime * 1000).ParseToInt());
for (int i = 0; i < 5 && activityRst1.Contains("频繁"); i++)
{
+ if (i > 0)
+ {
+ int totalPage = 9999;
+ int page = 1;
+ int readCount = 0;
+ while (page < totalPage)
+ {
+ Thread.Sleep(Randomx.GetId(2000, 5000));
+ var refreshRst = get_activity_goods_list_info(shop, page, "20981");
+ if (totalPage == 9999)
+ totalPage = BaseRegex.GetIntJson(ref refreshRst, "total_page");
+
+ if (!refreshRst.ParseToString().Contains("\"result\":[]"))
+ {
+ readCount++;
+ if (readCount > Randomx.GetId(2, 5))
+ break;
+ }
+ page++;
+ }
+ }
+
activityRst1 = activity_goods_info(shop, prodParams.Select(p => p.goods_id.ParseToString()).ToList(), "20981");
//activityRst1 = activity_goods_price_rule(shop, string.Join(",", prodParams.Select(p => p.goods_id.ParseToString()).ToList()), 20981, 27);
Thread.Sleep(Randomx.GetId(1000, 2000));
@@ -708,6 +732,28 @@ namespace TemuKJD.PDDForms.ProductForms.ActivityForms
Thread.Sleep((moreSleepTime * 1000).ParseToInt());
for (int i = 0; i < 5 && activityRst1.Contains("频繁"); i++)
{
+ if (i > 0)
+ {
+ int totalPage = 9999;
+ int page = 1;
+ int readCount = 0;
+ while (page < totalPage)
+ {
+ Thread.Sleep(Randomx.GetId(2000, 5000));
+ var refreshRst = get_activity_goods_list_info(shop, page, "20981");
+ if (totalPage == 9999)
+ totalPage = BaseRegex.GetIntJson(ref refreshRst, "total_page");
+
+ if (!refreshRst.ParseToString().Contains("\"result\":[]"))
+ {
+ readCount++;
+ if (readCount > Randomx.GetId(2, 5))
+ break;
+ }
+ page++;
+ }
+ }
+
activityRst1 = activity_goods_info(shop, prodParams.Select(p => p.goods_id.ParseToString()).ToList(), "20981");
//activityRst1 = activity_goods_price_rule(shop, string.Join(",", prodParams.Select(p => p.goods_id.ParseToString()).ToList()), 20981, 27);
Thread.Sleep(Randomx.GetId(1000, 2000));
@@ -2099,7 +2145,7 @@ namespace TemuKJD.PDDForms.ProductForms.ActivityForms
string refere = "https://mms.pinduoduo.com/act/multi-act-enroll?activityId=" + activityId + "&SourceType=PROMO-OwnHome";
var result = HttpResponseBLL.PDDPostResponse(shop, url, body, refere, anti);
- for (int i = 0; i < 5 && (result.Contains("当前请求频繁,请2小时后重试") || result.Contains("网络繁忙,请不要频繁操作") || result.Contains("您的店铺操作过于频繁,请稍后操作")); i++)
+ for (int i = 0; i < 1 && (result.Contains("当前请求频繁,请2小时后重试") || result.Contains("网络繁忙,请不要频繁操作") || result.Contains("您的店铺操作过于频繁,请稍后操作")); i++)
{
shop.AntiContents.Remove(anti);
anti = shop.AntiContents.FirstOrDefault().ParseToString();
@@ -2630,6 +2676,8 @@ namespace TemuKJD.PDDForms.ProductForms.ActivityForms
{
defaultAddPriceRule.AddPriceTimes = txtAddTimes.Text.Trim().ParseToDecimal();
defaultAddPriceRule.AddMorePrice = txtAddMorePrice.Text.Trim().ParseToDecimal();
+ defaultAddPriceRule.LowPriceAddPriceTimes = txtLowPriceAddPriceTimes.Text.Trim().ParseToDecimal();
+ defaultAddPriceRule.LowPriceAddMorePrice = txtLowPriceAddMorePrice.Text.Trim().ParseToDecimal();
defaultAddPriceRule.SinglePriceAdd = txtSinglePriceAdd.Text.Trim().ParseToDecimal();
defaultAddPriceRule.StockNum = txtStockNum.Text.Trim().ParseToInt();
defaultAddPriceRule.AddShippingFeeTimes = txtAddShippingFeeTimes.Text.Trim().ParseToDecimal();
@@ -3263,7 +3311,25 @@ namespace TemuKJD.PDDForms.ProductForms.ActivityForms
var skuTmpLst = prodParam.skus.Where(s => s.multi_price == lowPrice).ToList();
var prodInfo = lstActListProdInfo.FirstOrDefault(a => a.goods_id == prodParam.goods_id).productInfo;
var skuInfos = prodInfo.detail.sku.Where(s => skuTmpLst.Any(st => st.out_sku_sn == s.out_sku_sn)).ToList();
+
+ // 校验sku是否存在
+ if (skuInfos.Count == 0 || skuInfos.FirstOrDefault().multi_price == null)
+ {
+ goodsIds.Add(prodParam.goods_id);
+ Invoke(new Action(() =>
+ {
+ foreach (var rw in rws)
+ rw.Cells["colOpResult"].Value = rw.Cells["colOpResult"].Value.ParseToString().Replace("正在设置低价Sku", "设置低价Sku失败 获取价格失败");
+ }));
+ continue;
+ }
+
var newMultiPrice = skuInfos.Max(s => s.multi_price) + prodInfo.ship_price;
+ //newMultiPrice = (newMultiPrice * txtLowPriceAddPriceTimes.Text.ParseToDecimal() + txtLowPriceAddMorePrice.Text.ParseToDecimal() * 100).ParseToInt();
+ if (defaultAddPriceRule.AddMorePriceFirst) // 先加后乘
+ newMultiPrice = ((newMultiPrice + txtLowPriceAddMorePrice.Text.ParseToDecimal() * 100) * txtLowPriceAddPriceTimes.Text.ParseToDecimal()).ParseToInt();
+ else
+ newMultiPrice = (newMultiPrice * txtLowPriceAddPriceTimes.Text.ParseToDecimal() + txtLowPriceAddMorePrice.Text.ParseToDecimal() * 100).ParseToInt();
PddEditProdStockQuantity prodQuantity = new PddEditProdStockQuantity();
prodQuantity.data = new List();
@@ -3315,6 +3381,11 @@ namespace TemuKJD.PDDForms.ProductForms.ActivityForms
rowOperateLst = rowOperateLst.Where(r => prodParamLst.Any(p => p.goods_id == r.Cells["colSpuId"].Value.ParseToLong())).ToList();
}
+ if (prodParamLst.Count == 0)
+ {
+ continue;
+ }
+
string activityRsts = SignActivity(shop, prodParamLst, sign22347, sign20981, sign21365, sign15996, sign23513, sign23730, sign23456);
failList = JsonHelper.DeserializeJsonToList(activityRsts);
foreach (var prodParam in prodParamLst)
diff --git a/TEMUKJD/PDDForms/ProductForms/WXProdViolationManage.cs b/TEMUKJD/PDDForms/ProductForms/WXProdViolationManage.cs
index e1a3c53..253cf80 100644
--- a/TEMUKJD/PDDForms/ProductForms/WXProdViolationManage.cs
+++ b/TEMUKJD/PDDForms/ProductForms/WXProdViolationManage.cs
@@ -75,8 +75,9 @@ namespace TemuKJD.PDDForms.ProductForms
var productId = BaseRegex.GetStringJson(ref sVioInfo, "productId");
var productDesc = BaseRegex.GetStringJson(ref sVioInfo, "productDesc");
//相似同款低质商品 不当使用他人权利
- if (!punishReason.Contains("发布违禁信息") && !punishReason.Contains("材质夸大宣传") &&
- !punishReason.Contains("价格违规") && !punishReason.Contains("售假") && !punishReason.Contains("品牌资质问题"))
+ if (!punishReason.Contains("发布违禁信息") && !punishReason.Contains("材质夸大宣传") && !punishReason.Contains("相似同款低质商品") &&
+ !punishReason.Contains("价格违规") && !punishReason.Contains("售假") && !punishReason.Contains("品牌资质问题") &&
+ !punishReason.Contains("不当使用他人权利"))
continue;
if (!string.IsNullOrWhiteSpace(productDesc) && !string.IsNullOrWhiteSpace(productId))
{
diff --git a/TEMUKJD/PDDForms/ProductSelectForms/JstBanPlatformForm.Designer.cs b/TEMUKJD/PDDForms/ProductSelectForms/JstBanPlatformForm.Designer.cs
new file mode 100644
index 0000000..38ccf9a
--- /dev/null
+++ b/TEMUKJD/PDDForms/ProductSelectForms/JstBanPlatformForm.Designer.cs
@@ -0,0 +1,353 @@
+
+namespace TemuKJD.PDDForms.ProductSelectForms
+{
+ partial class JstBanPlatformForm
+ {
+ ///
+ /// Required designer variable.
+ ///
+ private System.ComponentModel.IContainer components = null;
+
+ ///
+ /// Clean up any resources being used.
+ ///
+ /// true if managed resources should be disposed; otherwise, false.
+ protected override void Dispose(bool disposing)
+ {
+ if (disposing && (components != null))
+ {
+ components.Dispose();
+ }
+ base.Dispose(disposing);
+ }
+
+ #region Windows Form Designer generated code
+
+ ///
+ /// Required method for Designer support - do not modify
+ /// the contents of this method with the code editor.
+ ///
+ private void InitializeComponent()
+ {
+ 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.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(JstBanPlatformForm));
+ this.splitContainer1 = new System.Windows.Forms.SplitContainer();
+ this.txtCoid = new System.Windows.Forms.TextBox();
+ this.label7 = new System.Windows.Forms.Label();
+ this.btnEmpty = new DevComponents.DotNetBar.PanelEx();
+ this.btnSearchCoid = new DevComponents.DotNetBar.PanelEx();
+ this.splitContainer2 = new System.Windows.Forms.SplitContainer();
+ this.pbLoading = new System.Windows.Forms.PictureBox();
+ this.dgvBanPlatform = new TemuKJD.UserComponent.DataGridViewEx();
+ this.colSelect = new System.Windows.Forms.DataGridViewCheckBoxColumn();
+ this.colCoid = new System.Windows.Forms.DataGridViewTextBoxColumn();
+ this.colSupplierName = new System.Windows.Forms.DataGridViewTextBoxColumn();
+ this.colBanWx = new System.Windows.Forms.DataGridViewTextBoxColumn();
+ this.colBanPdd = new System.Windows.Forms.DataGridViewTextBoxColumn();
+ this.colOpreateResult = new System.Windows.Forms.DataGridViewTextBoxColumn();
+ 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();
+ this.splitContainer1.SuspendLayout();
+ ((System.ComponentModel.ISupportInitialize)(this.splitContainer2)).BeginInit();
+ this.splitContainer2.Panel1.SuspendLayout();
+ this.splitContainer2.Panel2.SuspendLayout();
+ this.splitContainer2.SuspendLayout();
+ ((System.ComponentModel.ISupportInitialize)(this.pbLoading)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.dgvBanPlatform)).BeginInit();
+ this.SuspendLayout();
+ //
+ // splitContainer1
+ //
+ this.splitContainer1.BackColor = System.Drawing.Color.White;
+ this.splitContainer1.Dock = System.Windows.Forms.DockStyle.Fill;
+ this.splitContainer1.FixedPanel = System.Windows.Forms.FixedPanel.Panel1;
+ this.splitContainer1.Location = new System.Drawing.Point(1, 33);
+ this.splitContainer1.Name = "splitContainer1";
+ this.splitContainer1.Orientation = System.Windows.Forms.Orientation.Horizontal;
+ //
+ // splitContainer1.Panel1
+ //
+ this.splitContainer1.Panel1.Controls.Add(this.txtCoid);
+ this.splitContainer1.Panel1.Controls.Add(this.label7);
+ this.splitContainer1.Panel1.Controls.Add(this.btnEmpty);
+ this.splitContainer1.Panel1.Controls.Add(this.btnSearchCoid);
+ //
+ // splitContainer1.Panel2
+ //
+ this.splitContainer1.Panel2.Controls.Add(this.splitContainer2);
+ this.splitContainer1.Size = new System.Drawing.Size(1438, 686);
+ this.splitContainer1.SplitterDistance = 110;
+ this.splitContainer1.TabIndex = 1;
+ //
+ // txtCoid
+ //
+ this.txtCoid.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right)));
+ this.txtCoid.Location = new System.Drawing.Point(102, 22);
+ this.txtCoid.Margin = new System.Windows.Forms.Padding(0, 3, 3, 3);
+ this.txtCoid.Name = "txtCoid";
+ this.txtCoid.Size = new System.Drawing.Size(243, 23);
+ this.txtCoid.TabIndex = 1029;
+ //
+ // label7
+ //
+ this.label7.Anchor = System.Windows.Forms.AnchorStyles.Right;
+ this.label7.AutoSize = true;
+ this.label7.Location = new System.Drawing.Point(31, 25);
+ this.label7.Margin = new System.Windows.Forms.Padding(3, 0, 0, 0);
+ this.label7.Name = "label7";
+ this.label7.Size = new System.Drawing.Size(81, 17);
+ this.label7.TabIndex = 1028;
+ this.label7.Text = "供应商coid:";
+ //
+ // btnEmpty
+ //
+ this.btnEmpty.Anchor = System.Windows.Forms.AnchorStyles.Left;
+ this.btnEmpty.CanvasColor = System.Drawing.SystemColors.Control;
+ this.btnEmpty.ColorSchemeStyle = DevComponents.DotNetBar.eDotNetBarStyle.StyleManagerControlled;
+ this.btnEmpty.DisabledBackColor = System.Drawing.Color.Empty;
+ this.btnEmpty.Location = new System.Drawing.Point(403, 22);
+ this.btnEmpty.Name = "btnEmpty";
+ this.btnEmpty.Size = new System.Drawing.Size(46, 23);
+ this.btnEmpty.Style.Alignment = System.Drawing.StringAlignment.Center;
+ this.btnEmpty.Style.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(185)))), ((int)(((byte)(215)))), ((int)(((byte)(255)))));
+ this.btnEmpty.Style.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(185)))), ((int)(((byte)(215)))), ((int)(((byte)(255)))));
+ this.btnEmpty.Style.Border = DevComponents.DotNetBar.eBorderType.SingleLine;
+ this.btnEmpty.Style.BorderColor.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255)))));
+ this.btnEmpty.Style.ForeColor.ColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelText;
+ this.btnEmpty.Style.GradientAngle = 90;
+ this.btnEmpty.StyleMouseDown.Alignment = System.Drawing.StringAlignment.Center;
+ this.btnEmpty.StyleMouseOver.Alignment = System.Drawing.StringAlignment.Center;
+ this.btnEmpty.StyleMouseOver.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255)))));
+ this.btnEmpty.StyleMouseOver.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255)))));
+ this.btnEmpty.StyleMouseOver.ForeColor.Color = System.Drawing.Color.White;
+ this.btnEmpty.TabIndex = 1027;
+ this.btnEmpty.Text = "清空";
+ this.btnEmpty.Click += new System.EventHandler(this.btnEmpty_Click);
+ //
+ // btnSearchCoid
+ //
+ this.btnSearchCoid.Anchor = System.Windows.Forms.AnchorStyles.Left;
+ this.btnSearchCoid.ColorSchemeStyle = DevComponents.DotNetBar.eDotNetBarStyle.StyleManagerControlled;
+ this.btnSearchCoid.Cursor = System.Windows.Forms.Cursors.Hand;
+ this.btnSearchCoid.DisabledBackColor = System.Drawing.Color.Empty;
+ this.btnSearchCoid.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
+ this.btnSearchCoid.Location = new System.Drawing.Point(351, 22);
+ this.btnSearchCoid.Name = "btnSearchCoid";
+ this.btnSearchCoid.Size = new System.Drawing.Size(46, 23);
+ this.btnSearchCoid.Style.Alignment = System.Drawing.StringAlignment.Center;
+ this.btnSearchCoid.Style.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255)))));
+ this.btnSearchCoid.Style.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255)))));
+ this.btnSearchCoid.Style.BorderColor.ColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelBorder;
+ this.btnSearchCoid.Style.BorderDashStyle = System.Drawing.Drawing2D.DashStyle.Dash;
+ this.btnSearchCoid.Style.BorderSide = DevComponents.DotNetBar.eBorderSide.None;
+ this.btnSearchCoid.Style.ForeColor.Color = System.Drawing.Color.White;
+ this.btnSearchCoid.Style.GradientAngle = 90;
+ this.btnSearchCoid.StyleMouseOver.Alignment = System.Drawing.StringAlignment.Center;
+ this.btnSearchCoid.StyleMouseOver.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(25)))), ((int)(((byte)(102)))), ((int)(((byte)(255)))));
+ this.btnSearchCoid.StyleMouseOver.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(25)))), ((int)(((byte)(102)))), ((int)(((byte)(255)))));
+ this.btnSearchCoid.TabIndex = 1023;
+ this.btnSearchCoid.Text = "搜索";
+ this.btnSearchCoid.Click += new System.EventHandler(this.btnSearch_Click);
+ //
+ // splitContainer2
+ //
+ this.splitContainer2.Dock = System.Windows.Forms.DockStyle.Fill;
+ this.splitContainer2.FixedPanel = System.Windows.Forms.FixedPanel.Panel2;
+ this.splitContainer2.Location = new System.Drawing.Point(0, 0);
+ this.splitContainer2.Name = "splitContainer2";
+ this.splitContainer2.Orientation = System.Windows.Forms.Orientation.Horizontal;
+ //
+ // splitContainer2.Panel1
+ //
+ this.splitContainer2.Panel1.Controls.Add(this.pbLoading);
+ this.splitContainer2.Panel1.Controls.Add(this.dgvBanPlatform);
+ this.splitContainer2.Panel1.Padding = new System.Windows.Forms.Padding(4, 0, 4, 0);
+ //
+ // splitContainer2.Panel2
+ //
+ this.splitContainer2.Panel2.Controls.Add(this.ucSplitPage1);
+ this.splitContainer2.Panel2.Controls.Add(this.statusBar);
+ this.splitContainer2.Size = new System.Drawing.Size(1438, 572);
+ this.splitContainer2.SplitterDistance = 543;
+ this.splitContainer2.TabIndex = 0;
+ //
+ // pbLoading
+ //
+ this.pbLoading.Anchor = System.Windows.Forms.AnchorStyles.None;
+ this.pbLoading.Image = global::TemuKJD.Properties.Resources.loading_blue;
+ this.pbLoading.Location = new System.Drawing.Point(694, 246);
+ this.pbLoading.Name = "pbLoading";
+ this.pbLoading.Size = new System.Drawing.Size(50, 50);
+ this.pbLoading.SizeMode = System.Windows.Forms.PictureBoxSizeMode.StretchImage;
+ this.pbLoading.TabIndex = 7;
+ this.pbLoading.TabStop = false;
+ //
+ // dgvBanPlatform
+ //
+ this.dgvBanPlatform.AllowUserToAddRows = false;
+ this.dgvBanPlatform.AllowUserToDeleteRows = false;
+ dataGridViewCellStyle1.BackColor = System.Drawing.Color.WhiteSmoke;
+ this.dgvBanPlatform.AlternatingRowsDefaultCellStyle = dataGridViewCellStyle1;
+ this.dgvBanPlatform.AutoRowNumber = true;
+ this.dgvBanPlatform.AutoSizeColumnsMode = System.Windows.Forms.DataGridViewAutoSizeColumnsMode.Fill;
+ this.dgvBanPlatform.BackgroundColor = System.Drawing.Color.White;
+ this.dgvBanPlatform.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255)))));
+ 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.dgvBanPlatform.ColumnHeadersDefaultCellStyle = dataGridViewCellStyle2;
+ this.dgvBanPlatform.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize;
+ this.dgvBanPlatform.Columns.AddRange(new System.Windows.Forms.DataGridViewColumn[] {
+ this.colSelect,
+ this.colCoid,
+ this.colSupplierName,
+ this.colBanWx,
+ this.colBanPdd,
+ this.colOpreateResult});
+ this.dgvBanPlatform.Dock = System.Windows.Forms.DockStyle.Fill;
+ this.dgvBanPlatform.Location = new System.Drawing.Point(4, 0);
+ this.dgvBanPlatform.MultiSelectCheckBox = true;
+ this.dgvBanPlatform.Name = "dgvBanPlatform";
+ this.dgvBanPlatform.ReadOnly = true;
+ this.dgvBanPlatform.RowTemplate.Height = 23;
+ this.dgvBanPlatform.Size = new System.Drawing.Size(1430, 543);
+ this.dgvBanPlatform.TabIndex = 6;
+ this.dgvBanPlatform.CellClick += new System.Windows.Forms.DataGridViewCellEventHandler(this.dgvDbProduct_CellClick);
+ this.dgvBanPlatform.CellContentClick += new System.Windows.Forms.DataGridViewCellEventHandler(this.dgvDbProduct_CellContentClick);
+ this.dgvBanPlatform.Scroll += new System.Windows.Forms.ScrollEventHandler(this.dgvDbProduct_Scroll);
+ //
+ // colSelect
+ //
+ this.colSelect.FillWeight = 10F;
+ this.colSelect.HeaderText = "选";
+ this.colSelect.Name = "colSelect";
+ this.colSelect.ReadOnly = true;
+ this.colSelect.Resizable = System.Windows.Forms.DataGridViewTriState.True;
+ this.colSelect.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.Automatic;
+ //
+ // colCoid
+ //
+ this.colCoid.FillWeight = 50F;
+ this.colCoid.HeaderText = "coid";
+ this.colCoid.Name = "colCoid";
+ this.colCoid.ReadOnly = true;
+ //
+ // colSupplierName
+ //
+ dataGridViewCellStyle3.WrapMode = System.Windows.Forms.DataGridViewTriState.True;
+ this.colSupplierName.DefaultCellStyle = dataGridViewCellStyle3;
+ this.colSupplierName.HeaderText = "供应商名称";
+ this.colSupplierName.Name = "colSupplierName";
+ this.colSupplierName.ReadOnly = true;
+ //
+ // colBanWx
+ //
+ this.colBanWx.FillWeight = 30F;
+ this.colBanWx.HeaderText = "微信禁售";
+ this.colBanWx.Name = "colBanWx";
+ this.colBanWx.ReadOnly = true;
+ //
+ // colBanPdd
+ //
+ dataGridViewCellStyle4.WrapMode = System.Windows.Forms.DataGridViewTriState.True;
+ this.colBanPdd.DefaultCellStyle = dataGridViewCellStyle4;
+ this.colBanPdd.FillWeight = 30F;
+ this.colBanPdd.HeaderText = "拼多多禁售";
+ this.colBanPdd.Name = "colBanPdd";
+ this.colBanPdd.ReadOnly = true;
+ //
+ // colOpreateResult
+ //
+ dataGridViewCellStyle5.WrapMode = System.Windows.Forms.DataGridViewTriState.True;
+ this.colOpreateResult.DefaultCellStyle = dataGridViewCellStyle5;
+ this.colOpreateResult.HeaderText = "操作结果";
+ this.colOpreateResult.Name = "colOpreateResult";
+ this.colOpreateResult.ReadOnly = true;
+ //
+ // ucSplitPage1
+ //
+ this.ucSplitPage1.CurrentPage = 1;
+ this.ucSplitPage1.Dock = System.Windows.Forms.DockStyle.Right;
+ this.ucSplitPage1.IsShowPageSize = true;
+ this.ucSplitPage1.Location = new System.Drawing.Point(985, 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 = 100;
+ this.ucSplitPage1.Size = new System.Drawing.Size(453, 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(1438, 25);
+ this.statusBar.TabIndex = 5;
+ //
+ // JstBanPlatformForm
+ //
+ this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.None;
+ this.ClientSize = new System.Drawing.Size(1440, 720);
+ this.Controls.Add(this.splitContainer1);
+ this.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
+ this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon")));
+ this.KeyPreview = true;
+ this.Name = "JstBanPlatformForm";
+ this.Text = "产品数据库";
+ this.TitleText = "产品数据库";
+ this.Load += new System.EventHandler(this.ProductListForm_Load);
+ this.VisibleChanged += new System.EventHandler(this.ProductListForm_VisibleChanged);
+ this.KeyDown += new System.Windows.Forms.KeyEventHandler(this.PDDDBProdListForm_KeyDown);
+ this.KeyUp += new System.Windows.Forms.KeyEventHandler(this.PDDDBProdListForm_KeyUp);
+ this.Controls.SetChildIndex(this.splitContainer1, 0);
+ this.splitContainer1.Panel1.ResumeLayout(false);
+ this.splitContainer1.Panel1.PerformLayout();
+ this.splitContainer1.Panel2.ResumeLayout(false);
+ ((System.ComponentModel.ISupportInitialize)(this.splitContainer1)).EndInit();
+ this.splitContainer1.ResumeLayout(false);
+ this.splitContainer2.Panel1.ResumeLayout(false);
+ this.splitContainer2.Panel2.ResumeLayout(false);
+ ((System.ComponentModel.ISupportInitialize)(this.splitContainer2)).EndInit();
+ this.splitContainer2.ResumeLayout(false);
+ ((System.ComponentModel.ISupportInitialize)(this.pbLoading)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.dgvBanPlatform)).EndInit();
+ this.ResumeLayout(false);
+
+ }
+
+ #endregion
+
+ private System.Windows.Forms.SplitContainer splitContainer1;
+ private System.Windows.Forms.SplitContainer splitContainer2;
+ private UserControls.UcSplitPage ucSplitPage1;
+ private UserControls.StatusBarUserControl statusBar;
+ private UserComponent.DataGridViewEx dgvBanPlatform;
+ private System.Windows.Forms.PictureBox pbLoading;
+ private System.Windows.Forms.TextBox txtCoid;
+ private System.Windows.Forms.Label label7;
+ private DevComponents.DotNetBar.PanelEx btnEmpty;
+ private DevComponents.DotNetBar.PanelEx btnSearchCoid;
+ private System.Windows.Forms.DataGridViewCheckBoxColumn colSelect;
+ private System.Windows.Forms.DataGridViewTextBoxColumn colCoid;
+ private System.Windows.Forms.DataGridViewTextBoxColumn colSupplierName;
+ private System.Windows.Forms.DataGridViewTextBoxColumn colBanWx;
+ private System.Windows.Forms.DataGridViewTextBoxColumn colBanPdd;
+ private System.Windows.Forms.DataGridViewTextBoxColumn colOpreateResult;
+ }
+}
\ No newline at end of file
diff --git a/TEMUKJD/PDDForms/ProductSelectForms/JstBanPlatformForm.cs b/TEMUKJD/PDDForms/ProductSelectForms/JstBanPlatformForm.cs
new file mode 100644
index 0000000..5dc9baf
--- /dev/null
+++ b/TEMUKJD/PDDForms/ProductSelectForms/JstBanPlatformForm.cs
@@ -0,0 +1,309 @@
+using AllBase;
+using AllBase.Helper;
+using AllBase.Model.Param;
+using AllBase.Model.Result;
+using AllBase.Model.Result._1688;
+using AllBase.Model.Result.PDDResult;
+using AllBase.Model.Result.WXResult;
+using NaiBa.Util;
+using NaiBa.Util.Extension;
+using Newtonsoft.Json.Linq;
+using System;
+using System.Collections.Generic;
+using System.ComponentModel;
+using System.Data;
+using System.Diagnostics;
+using System.Drawing;
+using System.IO;
+using System.Linq;
+using System.Net;
+using System.Text;
+using System.Text.RegularExpressions;
+using System.Threading;
+using System.Threading.Tasks;
+using System.Windows.Forms;
+using TemuKJD.BaseForms;
+using TemuKJD.BLL;
+using TemuKJD.Extension;
+using TemuKJD.ToolForms;
+using TemuKJD.WXForms.ProductForms;
+using Work;
+
+namespace TemuKJD.PDDForms.ProductSelectForms
+{
+ public partial class JstBanPlatformForm : BaseGeneralForm
+ {
+ ShopLoginInfo shop = null;
+ public CancellationTokenSource cancellationTokenSource { get; set; } = new CancellationTokenSource();
+
+ ConcurrentList lstTemuDbProduct = new ConcurrentList();
+ ConcurrentList lstTitleReplaceText = new ConcurrentList();
+
+ public JstBanPlatformForm()
+ {
+ InitializeComponent();
+ }
+
+ public JstBanPlatformForm(ShopLoginInfo _shop)
+ {
+ InitializeComponent();
+ shop = _shop;
+ }
+
+ private void ProductListForm_Load(object sender, EventArgs e)
+ {
+ this.dgvBanPlatform.AddSelectorColumn("colSelect");
+ this.ucSplitPage1.PageChange += UcSplitPage1_PageChange;
+ }
+
+ private void btnSearch_Click(object sender, EventArgs e)
+ {
+ if (this.ucSplitPage1.CurrentPage != 1)
+ this.ucSplitPage1.CurrentPage = 1;
+ else
+ SearchBanPlatForm(1);
+ }
+
+ public void SearchBanPlatForm(int page)
+ {
+ if (InvokeRequired)
+ {
+ Invoke(new Action(() =>
+ {
+ this.pbLoading.Visible = true;
+ this.dgvBanPlatform.Rows.Clear();
+ lstTemuDbProduct.Clear();
+ }));
+ }
+ else
+ {
+ this.pbLoading.Visible = true;
+ this.dgvBanPlatform.Rows.Clear();
+ lstTemuDbProduct.Clear();
+ }
+ Task.Run(() =>
+ {
+ int pageCount;
+ int pageSize = 100;
+ decimal seconds;
+ Invoke(new Action(() => { pageSize = this.ucSplitPage1.PageSize; }));
+ var list = GetProductList(out pageCount, out seconds, page, pageSize);
+ lstTemuDbProduct.AddRange(list);
+ this.ucSplitPage1.TotalPage = pageCount;
+
+ // 获取Bitmap的Graphics对象
+ foreach (var prod in lstTemuDbProduct)
+ {
+ Invoke(new Action(() =>
+ {
+ int rowIndex = this.dgvBanPlatform.Rows.Add(
+ false,
+ prod.id,
+ prod.from_shop_id,
+ prod.from_shop_name,
+ prod.product_name,
+ prod.sku_img_replace_url,
+ DataGridViewExtension.defaultBitmap,
+ (prod.spu_id).Trim(),
+ prod.skc_id
+ );
+
+ dgvBanPlatform.Rows[rowIndex].Height = 50;
+ }));
+ }
+
+ Invoke(new Action(() =>
+ {
+ this.pbLoading.Visible = false;
+ this.statusBar.lblTaskStatus.Text = "查询完毕";
+#if DEBUG
+ this.statusBar.lblTaskStatus.Text += ",耗时:" + seconds;
+#endif
+ }));
+ });
+ }
+
+ public List GetProductList(out int pageCount, out decimal seconds, int page = 1, int pageSize = 200)
+ {
+ List list = new List();
+ pageCount = 1;
+ seconds = 0;
+
+ var url = BaseClass.BuildPDDObjString("product/get_ban_platform_list");
+ var data = "";
+ Invoke(new Action(() =>
+ {
+ data = UserLogin.GetSignaturex() +
+ "&page=" + page +
+ "&page_size=" + pageSize +
+ "&coids=" + txtCoid.Text.Trim();
+ }));
+ 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"))
+ {
+ Invoke(new Action(() =>
+ {
+ BaseMsgForm.ShowError("获取商品列表失败,请重试!" + BaseRegex.GetStringJson(ref html, "msg"));
+ }));
+ return list;
+ }
+
+ seconds = BaseRegex.GetDecimalJson(ref html, "seconds");
+ int count = BaseRegex.GetIntJson(ref html, "count");
+ pageCount = Math.Ceiling(1.0 * count / pageSize).ParseToInt();
+ pageCount = Math.Max(pageCount, 1);
+
+ var jArr = JObject.Parse(html)["data"];
+ if (jArr.Count() == 0)
+ return list;
+ var sProd = JsonHelper.SerializeObject(jArr);
+
+ try
+ {
+ list = JsonHelper.DeserializeJsonToList(sProd);
+ return list;
+ }
+ catch (Exception ex)
+ {
+ return new List();
+ }
+ }
+
+ bool first = true;
+ private void ProductListForm_VisibleChanged(object sender, EventArgs e)
+ {
+ if (this.Visible == true && first)
+ {
+ first = false;
+
+ this.pbLoading.Visible = true;
+ SearchBanPlatForm(this.ucSplitPage1.CurrentPage);
+ }
+ }
+
+ private void UcSplitPage1_PageChange(object obj)
+ {
+ SearchBanPlatForm(this.ucSplitPage1.CurrentPage);
+ }
+
+ private void btnEmpty_Click(object sender, EventArgs e)
+ {
+ this.txtCoid.Text = "";
+ }
+
+ private void dgvDbProduct_CellClick(object sender, DataGridViewCellEventArgs e)
+ {
+ if (e.ColumnIndex < 0 || e.RowIndex < 0)
+ return;
+ string headerText = dgvBanPlatform.Columns[e.ColumnIndex].HeaderText;
+ var dbId = dgvBanPlatform.Rows[e.RowIndex].Cells["col_db_id"].Value.ParseToString();
+ var dbProduct = lstTemuDbProduct.FirstOrDefault(p => p.id.ToString() == dbId);
+
+ switch (headerText)
+ {
+ case "标题":
+ dgvBanPlatform.Rows[e.RowIndex].Cells["colSelect"].Value = !(bool)dgvBanPlatform.Rows[e.RowIndex].Cells["colSelect"].Value;
+ break;
+ default:
+ break;
+ }
+ }
+
+ private void dgvDbProduct_CellContentClick(object sender, DataGridViewCellEventArgs e)
+ {
+ if (e.ColumnIndex < 0 || e.RowIndex < 0)
+ return;
+ string headerText = dgvBanPlatform.Columns[e.ColumnIndex].HeaderText;
+ var dbId = dgvBanPlatform.Rows[e.RowIndex].Cells["col_db_id"].Value.ParseToString();
+ var dbProduct = lstTemuDbProduct.FirstOrDefault(p => p.id.ToString() == dbId);
+
+ switch (headerText)
+ {
+ case "资料编码/真实上家":
+ try
+ {
+ string url = "";
+ if (string.IsNullOrEmpty(dbProduct.real_spu_id) || string.IsNullOrEmpty(dbProduct.real_coid))
+ url = "https://sc.scm121.com/manage/goods/qualitySupplier/goodsDetail/" + dbProduct.spu_id + "?itemCoId=" + dbProduct.skc_id + "&noBack=true";
+ else
+ url = "https://sc.scm121.com/manage/goods/qualitySupplier/goodsDetail/" + dbProduct.real_spu_id + "?itemCoId=" + dbProduct.real_coid + "&noBack=true";
+ Process.Start(new ProcessStartInfo(url)
+ {
+ UseShellExecute = true
+ });
+ }
+ catch
+ {
+ // 可能需要手动指定浏览器路径
+ Process.Start(new ProcessStartInfo("https://www.baidu.com") { UseShellExecute = true });
+ }
+ break;
+ case "":
+ dgvBanPlatform.Rows[e.RowIndex].Cells["colSelect"].Value = !(bool)dgvBanPlatform.Rows[e.RowIndex].Cells["colSelect"].Value;
+ break;
+ default:
+ break;
+ }
+ }
+
+ private void DeleteProduct(string dbId, bool isUpdate = true)
+ {
+ var url = BaseClass.BuildPDDObjString("product/del_db_product");
+ var data = UserLogin.GetSignaturex() +
+ "&db_id=" + dbId;
+ 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"));
+ return;
+ }
+ else
+ {
+ if (isUpdate)
+ SearchBanPlatForm(this.ucSplitPage1.CurrentPage);
+ }
+ }
+
+ private void dgvDbProduct_Scroll(object sender, ScrollEventArgs e)
+ {
+ }
+
+ //bool IsShiftDown = false;
+ private void PDDDBProdListForm_KeyDown(object sender, KeyEventArgs e)
+ {
+ //switch (e.KeyCode)
+ //{
+ // case Keys.Shift:
+ // case Keys.ShiftKey:
+ // case Keys.LShiftKey:
+ // case Keys.RShiftKey:
+ // IsShiftDown = true;
+ // break;
+ //}
+ }
+
+ private void PDDDBProdListForm_KeyUp(object sender, KeyEventArgs e)
+ {
+ //switch (e.KeyCode)
+ //{
+ // case Keys.Shift:
+ // case Keys.ShiftKey:
+ // case Keys.LShiftKey:
+ // case Keys.RShiftKey:
+ // IsShiftDown = false;
+ // rowIndex1 = -1;
+ // rowIndex2 = -1;
+ // break;
+ //}
+ }
+
+ }
+}
diff --git a/TEMUKJD/PDDForms/ProductSelectForms/JstBanPlatformForm.resx b/TEMUKJD/PDDForms/ProductSelectForms/JstBanPlatformForm.resx
new file mode 100644
index 0000000..ad7d429
--- /dev/null
+++ b/TEMUKJD/PDDForms/ProductSelectForms/JstBanPlatformForm.resx
@@ -0,0 +1,316 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ text/microsoft-resx
+
+
+ 2.0
+
+
+ System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ True
+
+
+ True
+
+
+ True
+
+
+ True
+
+
+ True
+
+
+ True
+
+
+
+
+ AAABAAEAgIAQAAAAAABoKAAAFgAAACgAAACAAAAAAAEAAAEABAAAAAAAACgAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAACAAACAAAAAgIAAgAAAAIAAgACAgAAAgICAAMDAwAAAAP8AAP8AAAD//wD/AAAA/wD/AP//
+ AAD///8AAAAAAAAAAAAAAAAzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMQ
+ AAAAAAAAAAAAAAAAAAAAAAAAABM5mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ
+ mZmZkzEAAAAAAAAAAAAAAAAAAAAAADOZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ
+ mZmZmZmZmZmZMwAAAAAAAAAAAAAAAAAAABOZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ
+ mZmZmZmZmZmZmZmZmZkzAAAAAAAAAAAAAAAAAAOZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ
+ mZmZmZmZmZmZmZmZmZmZmZmZmTEAAAAAAAAAAAAAAAOZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ
+ mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZMAAAAAAAAAAAAAA5mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ
+ mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZMAAAAAAAAAAAADmZmZmZmZmZmZmZmZmZmZmZmZmZmZ
+ mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZMAAAAAAAAAAAOZmZmZmZmZmZmZmZmZmZmZmZ
+ mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZMAAAAAAAAAA5mZmZmZmZmZmZmZmZmZ
+ mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZMAAAAAAAADmZmZmZmZmZmZmZ
+ mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZMAAAAAAAGZmZmZmZmZ
+ mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZMAAAAAAJmZmZ
+ mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZAAAAAA
+ OZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmT
+ AAAAAZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ
+ mZmZmRAAAAOZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ
+ mZmZmZmZmZkwAAAZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ
+ mZmZmZmZmZmZmZmZkwAAOZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ
+ mZmZmZmZmZmZmZmZmZmZmZMAAJmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ
+ mZmZmZmZmZmZmZmZmZmZmZmZmZmZEAOZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ
+ mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmTADmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ
+ mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZkwCZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ
+ mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZkRmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ
+ mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZM5mZmZmZmZmZmZmZmZmZmZmZmZmZmZ
+ mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmTOZmZmZmZmZmZmZmZmZmZmZmZ
+ mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZkzmZmZmZmZmZmZmZmZmZ
+ mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZM5mZmZmZmZmZmZ
+ mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmTOZmZmZmZ
+ mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZkzmZ
+ mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ
+ mZM5mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ
+ mZmZmZmTOZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ
+ mZmZmZmZmZmZkzmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ
+ mZmZmZmZmZmZmZmZmZM5mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ
+ mZmZmZmZmZmZmZmZmZmZmZmTOZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ
+ mZmZmZmZmZmZmZmZmZmZmZmZmZmZkzmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ
+ mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZM5mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ
+ mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmTOZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ
+ mZmZmZmZmZmZmZOZmZOZmZmZmZmZmZmZmZmZmZmZmZmZkzmZmZmZmZmZmZmZmP+JmZmZmZmZj///////
+ ///4OZmZj/eZmZmZmZmZmPg5OZmZmZuI//iIuZmZmZmZmZmZmZM5mZmZmZmZmZmZmb//+JmZmZmZmP//
+ //////////OZmP//uZmZmZmZmY//+ZmZOZf///////h5k5mZmZmZmZmTOZmZmZmZmZmZmZmP//iZmZmZ
+ mZ/////////////4mZ///4mZmZmZmZP///uZmZmP////////+JmZmZmZmZmZkzmZmZmZmZmZmZmZj//4
+ mZmZmZmf////////////+Jmf//+JmZmZmZmb///4mZmY//////////+JmZmZmZmZmZM5mZmZmZmZmZmZ
+ mY//+JmZmZmZn/////////////mZmP//iZmZmZmZk///+5mZj/////iP////+JmZmZmZmZmTOZmZmZmZ
+ mZmZmZmP//iZmZmZmZ////iIiIiIiIiZOZj//4mZmZmZmZP///uZmf////eZmT////+ZmZmZmZmZkzmZ
+ mZmZmZmZmZmZj//4mZmZmZmf//+JmZmZmZmZk5mY//+JmZmZmZmT///7mZj///+ZmZmZj///uZmZmZmZ
+ mZM5mZmZmZmZmZmZmY//+JmZmZmZn///iZmZmZmZmZmZmP//iZmZN5k5k///+5mY///zk5mZOT///4mZ
+ mZmZmZmTOZmZmZmZmZmZmZmP//iZmZmZmZ///4mZmZmZmZmZmZj//4mZmP/5k5P///uZmP//+ZmZmZmY
+ //+JmZmZmZmZkzmZmZmZmZmZmZmZj//4mZmZmZmf///4iIiIiIg5mZmY//+JOb//+JmT///7mZj//4mZ
+ mZmZmP//+ZmZmZmZmZM5mZmZmZmZmZmZmY//+JmZmZmZn///////////85mZmP//iZn///+Jk///+5mf
+ //+JmZmZmZj///mZmZmZmZmTOZmZmZmZmZmZmZmP//iZmZmZmZ////////////+ZmZj//4mY////85v/
+ //uZmP//iZmZmZmY///5mZmZmZmZkzmZmZmZmZmZmZmZj//4mZmZmZmf////////////mZmY//+Jv///
+ //+Z///7mZj//4mZmZmZmP//+ZmZmZmZmZM5mZmZmZmZmZmZmY//+JmZmZmZn///////////+JmZmP//
+ if//////if//+5mY//+JmZmZmZj///mZmZmZmZmTOZmZmZmZmZmZmZmP//iZmZmZmZ///////////4mZ
+ mZj//4j///////j///uZmP//iZmZmZmY///5mZmZmZmZkzmZmZmZmZmZmZmZj//4mZmZmZmf//+JMzMz
+ MzOZOZmY//////+D///////7mZj//4mZmZmZmP//+ZmZmZmZmZM5mZmZmZmZmZmZmY//+JmZmZmZn///
+ iZmZmZmZmZmZmP//////mY//////+5mY//+JmZmZmZj///mZmZmZmZmTOZmZmZmZmZmZmZmP//iZmZmZ
+ mZ///4mZmZmZmZmZmZj/////+5mf//////uZmP//iZmZmZmY///5mZmZmZmZkzmZmZmZmZmZMzM5j//4
+ kzMzmZmf//+JMzMzMzM5mZmY/////4mTk//////7mZj//4mZmZmZmP//+ZmZmZmZmZM5mZmZmZmZmP//
+ /////////4mZn////////////4mZmP////+ZmZmP////+5mY//+JmZmZmZj///mZmZmZmZmTOZmZmZmZ
+ mY/////////////4mZ/////////////7mZj////7mZmZn/////uZmP//iZmZmZmY///5mZmZmZmZkzmZ
+ mZmZmZn//////////////5mf////////////+Jmf////iZmZk5P////4mZ///4mZmZmZmP//+ZmZmZmZ
+ mZM5mZmZmZmZj/////////////iZn/////////////iZmP///5mZmZmZj///+5mY//+JmZmZmZj//4mZ
+ mZmZmZmTOZmZmZmZmZ/////////////zmZP///////////+JmZP///uTmZmZmZj//4mZm///mZmZmZmZ
+ //85mZmZmZmZkzmZmZmZmZOZiIiIiIiIiIiImTmZOIiIiIiIiIiImTmZOIi5mZmZmZOZiIuZmZk4iZOZ
+ mZmZOZiDmZmZmZmZmZM5mZmZmZmZOZmZmZmZmZmZmZOZmZmZmZmZmZmZmZOZmZmZmZmZmZmZOZmZmZmZ
+ mZk5mZmZmZOZmZmZmZmZmZmTOZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ
+ mZmZmZmZmZmZmZmZmZmZmZmZmZmZkzmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ
+ mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZM5mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ
+ mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmTOZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ
+ mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZkzmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ
+ mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZM5mZmZmZmZmZmTuIiIiIs5mZmZmZmZ
+ mTu4i7mZmZmZmZmZmTMzmZOZmZkzOZmZmZmZmZmZmZmZmZmZmZmZmZmTOZmZmZmZmTmbj///////+HmT
+ mZmZk4j/////iJmZmZk4iP////iZOZmZj/mZOZOIiIiIiIiIiDmZmZmZmZmZkzmZmZmZmZmZj///////
+ ///4mZk5k4///4iI///4OZOY////////iZOZmb/5mZmP///////////4mZmZmZmZmZM5mZmZmZmZn///
+ //////////mZmY///5mZmZP///iZmP////////+ZOZk/iZmY/////////////4mZmZmZmZmTOZmZmZmZ
+ mZ/////////////5mZ////+JmZmY////iZl/////////+ZmZP4mZP//////////////7mZmZmZmZkzmZ
+ mZmZmZmb////////////uZP/j///+HM3j/////+ZmYj///////iZmT+JmY//////////////+JmZmZmZ
+ mZM5mZmZmZmZmY//////////+JmT+Jv///////////iPmTmZOI/4mP//uTk/iZmP//////////////iZ
+ mZmZmZmTOZmZmZmZmZmf//////////mZmZmZ///////////5mZmZmZmTOZk///mZP4mZj///////////
+ ///4mZmZmZmZkzmZmZmZmZmTmP////////+JOZmZOY//////////iZmZmZmZmZk5mf/4mT+JmY//////
+ ////////+JmZmZmZmZM5mZmZmZmZmZn/////////mZmZmZk//////////zmZmZmZmZmZmTmP/zm/iZmP
+ //////////////iZmZmZmZmTOZmZmZmZmZk5v///////85OZmZkzmP////////iZmZmZmZmZmZmZn//4
+ /4mZj/////hzN4/////4mZmZmZmZkzmZmZmZmZmZmZj//////4mZmTmY/4j////////4mZmZmZmZmZmZ
+ mZj///+JmY////+JmZmY////+JmZmZmZmZM5mZmZmZmZmZmZ//////+ZmZmZj////////////4mZmZmZ
+ mZmZmZmb////+ZmP///4mZu5mY////iZmZmZmZmTOZmZmZmZmZmZOb/////4k5mZmP/////////////7
+ mZmZmZmZmZmZk/////OZv///+ZmP+Jmf///4mZmZmZmZkzmZmZmZmZmZmZmf////+ZmZmZj////////4
+ eI//+JmZmZmZmZmZmZP////4mb///4mY//+JmP//+5mZmZmZmZM5mZmZmZmZmZk5v/////uTmZmb////
+ ///4mZmX//iZmZmZmZmZmZmZ////+Jmf//95n///+Zj///OZmZmZmZmTOZmZmZmZmZmZmf//////mZmZ
+ mY//////+ZOZmZiJmZmZmZmZmZmZmY////+ZmP//+I////iP//+JmZmZmZmZkzmZmZmZmZmZmZj/////
+ /4mZmZmf/////5k5mZOZmTmZmZmZmZmZmZmP///4mZP/////////////OZmZmZmZmZM5mZmZmZmZmZk/
+ ///////zmZmZm/////iZmZmZmZmZmZmZmZmZmZmZj///85mZj///////////+JmZmZmZmZmTOZmZmZmZ
+ mZmZv///////+5mZmZmP///5mZmZmZmZmZmZmZmZmZmZmZ///3mZmZj//////////4mZmZmZmZmZkzmZ
+ mZmZmZmZmb///4j///uZmZmZmP//mTmZmZmZmZmZmZmZmZmZmZmY/4OZmZmZeP///////4eZmZmZmZmZ
+ mZM5mZmZmZmZmZmY/4OZOP+JmZmZmZmIiZOZmZmZmZmZmZmZmZmZmZmZmYiZmZmZmZk4iIiIiIOZmZmZ
+ mZmZmZmTOZmZmZmZmZmZmTOZmZkzmZmZmZmZmZk5mZmZmZmZmZmZmZmZmZmZmZmZk5mZmZmZmZmZmZmZ
+ mZmZmZmZmZmZkzmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ
+ mZmZmZmZmZmZmZmZmZM5mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ
+ mZmZmZmZmZmZmZmZmZmZmZmTOZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ
+ mZmZmZmZmZmZmZmZmZmZmZmZmZmZkzmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ
+ mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZM5mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ
+ mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmTOZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ
+ mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZkzmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ
+ mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZM5mZmZmZmZmZmZmZmZmZmZmZmZmZmZ
+ mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmTOZmZmZmZmZmZmZmZmZmZmZmZ
+ mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZkzmZmZmZmZmZmZmZmZmZ
+ mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZM5mZmZmZmZmZmZ
+ mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmTOZmZmZmZ
+ mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZkzmZ
+ mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ
+ mZM5mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ
+ mZmZmZmTGZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ
+ mZmZmZmZmZmZkwmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ
+ mZmZmZmZmZmZmZmZmZADmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ
+ mZmZmZmZmZmZmZmZmZmZmZkwA5mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ
+ mZmZmZmZmZmZmZmZmZmZmZmZmZmZMACZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ
+ mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmQAAOZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ
+ mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZMAABmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ
+ mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmTAAADmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ
+ mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZMAAAAJmZmZmZmZmZmZmZmZmZmZmZmZmZ
+ mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmRAAAAA5mZmZmZmZmZmZmZmZmZmZ
+ mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZMAAAAACZmZmZmZmZmZmZmZ
+ mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmQAAAAAAGZmZmZmZmZ
+ mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZMAAAAAAAOZmZ
+ mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZkwAAAAAA
+ AAOZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmTAA
+ AAAAAAAAOZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ
+ mZMAAAAAAAAAAAOZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ
+ mZmZmZkwAAAAAAAAAAAAOZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ
+ mZmZmZmZmZmTAAAAAAAAAAAAAAGZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ
+ mZmZmZmZmZmZmZmZEAAAAAAAAAAAAAAAA5mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ
+ mZmZmZmZmZmZmZmZmZmZMAAAAAAAAAAAAAAAAAATmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ
+ mZmZmZmZmZmZmZmZmZmZmZmZMQAAAAAAAAAAAAAAAAAAABOZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ
+ mZmZmZmZmZmZmZmZmZmZmZmZmZmZMQAAAAAAAAAAAAAAAAAAAAAAAzmZmZmZmZmZmZmZmZmZmZmZmZmZ
+ mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmTMAAAAAAAAAAAAAAAAAAAAAAAAAAAEzMzMzMzMzMzMzMzMzMz
+ MzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMxAAAAAAAAAAAAAAD////////////////////////4AAAA
+ AAAAAAAAAB//////wAAAAAAAAAAAAAAD/////wAAAAAAAAAAAAAAAP////wAAAAAAAAAAAAAAAA////w
+ AAAAAAAAAAAAAAAAD///4AAAAAAAAAAAAAAAAAf//8AAAAAAAAAAAAAAAAAD//+AAAAAAAAAAAAAAAAA
+ Af//AAAAAAAAAAAAAAAAAAD//gAAAAAAAAAAAAAAAAAAf/wAAAAAAAAAAAAAAAAAAD/4AAAAAAAAAAAA
+ AAAAAAAf+AAAAAAAAAAAAAAAAAAAH/AAAAAAAAAAAAAAAAAAAA/wAAAAAAAAAAAAAAAAAAAP4AAAAAAA
+ AAAAAAAAAAAAB+AAAAAAAAAAAAAAAAAAAAfAAAAAAAAAAAAAAAAAAAADwAAAAAAAAAAAAAAAAAAAA8AA
+ AAAAAAAAAAAAAAAAAAOAAAAAAAAAAAAAAAAAAAABgAAAAAAAAAAAAAAAAAAAAYAAAAAAAAAAAAAAAAAA
+ AAGAAAAAAAAAAAAAAAAAAAABgAAAAAAAAAAAAAAAAAAAAYAAAAAAAAAAAAAAAAAAAAGAAAAAAAAAAAAA
+ AAAAAAABgAAAAAAAAAAAAAAAAAAAAYAAAAAAAAAAAAAAAAAAAAGAAAAAAAAAAAAAAAAAAAABgAAAAAAA
+ AAAAAAAAAAAAAYAAAAAAAAAAAAAAAAAAAAGAAAAAAAAAAAAAAAAAAAABgAAAAAAAAAAAAAAAAAAAAYAA
+ AAAAAAAAAAAAAAAAAAGAAAAAAAAAAAAAAAAAAAABgAAAAAAAAAAAAAAAAAAAAYAAAAAAAAAAAAAAAAAA
+ AAGAAAAAAAAAAAAAAAAAAAABgAAAAAAAAAAAAAAAAAAAAYAAAAAAAAAAAAAAAAAAAAGAAAAAAAAAAAAA
+ AAAAAAABgAAAAAAAAAAAAAAAAAAAAYAAAAAAAAAAAAAAAAAAAAGAAAAAAAAAAAAAAAAAAAABgAAAAAAA
+ AAAAAAAAAAAAAYAAAAAAAAAAAAAAAAAAAAGAAAAAAAAAAAAAAAAAAAABgAAAAAAAAAAAAAAAAAAAAYAA
+ AAAAAAAAAAAAAAAAAAGAAAAAAAAAAAAAAAAAAAABgAAAAAAAAAAAAAAAAAAAAYAAAAAAAAAAAAAAAAAA
+ AAGAAAAAAAAAAAAAAAAAAAABgAAAAAAAAAAAAAAAAAAAAYAAAAAAAAAAAAAAAAAAAAGAAAAAAAAAAAAA
+ AAAAAAABgAAAAAAAAAAAAAAAAAAAAYAAAAAAAAAAAAAAAAAAAAGAAAAAAAAAAAAAAAAAAAABgAAAAAAA
+ AAAAAAAAAAAAAYAAAAAAAAAAAAAAAAAAAAGAAAAAAAAAAAAAAAAAAAABgAAAAAAAAAAAAAAAAAAAAYAA
+ AAAAAAAAAAAAAAAAAAGAAAAAAAAAAAAAAAAAAAABgAAAAAAAAAAAAAAAAAAAAYAAAAAAAAAAAAAAAAAA
+ AAGAAAAAAAAAAAAAAAAAAAABgAAAAAAAAAAAAAAAAAAAAYAAAAAAAAAAAAAAAAAAAAGAAAAAAAAAAAAA
+ AAAAAAABgAAAAAAAAAAAAAAAAAAAAYAAAAAAAAAAAAAAAAAAAAGAAAAAAAAAAAAAAAAAAAABgAAAAAAA
+ AAAAAAAAAAAAAYAAAAAAAAAAAAAAAAAAAAGAAAAAAAAAAAAAAAAAAAABgAAAAAAAAAAAAAAAAAAAAYAA
+ AAAAAAAAAAAAAAAAAAGAAAAAAAAAAAAAAAAAAAABgAAAAAAAAAAAAAAAAAAAAYAAAAAAAAAAAAAAAAAA
+ AAGAAAAAAAAAAAAAAAAAAAABgAAAAAAAAAAAAAAAAAAAAYAAAAAAAAAAAAAAAAAAAAGAAAAAAAAAAAAA
+ AAAAAAABgAAAAAAAAAAAAAAAAAAAAYAAAAAAAAAAAAAAAAAAAAGAAAAAAAAAAAAAAAAAAAABgAAAAAAA
+ AAAAAAAAAAAAAYAAAAAAAAAAAAAAAAAAAAGAAAAAAAAAAAAAAAAAAAABgAAAAAAAAAAAAAAAAAAAAYAA
+ AAAAAAAAAAAAAAAAAAGAAAAAAAAAAAAAAAAAAAABgAAAAAAAAAAAAAAAAAAAAYAAAAAAAAAAAAAAAAAA
+ AAGAAAAAAAAAAAAAAAAAAAABgAAAAAAAAAAAAAAAAAAAAYAAAAAAAAAAAAAAAAAAAAGAAAAAAAAAAAAA
+ AAAAAAABgAAAAAAAAAAAAAAAAAAAAYAAAAAAAAAAAAAAAAAAAAGAAAAAAAAAAAAAAAAAAAABgAAAAAAA
+ AAAAAAAAAAAAAcAAAAAAAAAAAAAAAAAAAAPAAAAAAAAAAAAAAAAAAAAD4AAAAAAAAAAAAAAAAAAAA+AA
+ AAAAAAAAAAAAAAAAAAfgAAAAAAAAAAAAAAAAAAAH8AAAAAAAAAAAAAAAAAAAD/AAAAAAAAAAAAAAAAAA
+ AA/4AAAAAAAAAAAAAAAAAAAf/AAAAAAAAAAAAAAAAAAAH/wAAAAAAAAAAAAAAAAAAD/+AAAAAAAAAAAA
+ AAAAAAB//wAAAAAAAAAAAAAAAAAA//+AAAAAAAAAAAAAAAAAAf//wAAAAAAAAAAAAAAAAAP//+AAAAAA
+ AAAAAAAAAAAH///4AAAAAAAAAAAAAAAAD////AAAAAAAAAAAAAAAAD////8AAAAAAAAAAAAAAAD/////
+ wAAAAAAAAAAAAAAD//////wAAAAAAAAAAAAAH////////////////////////w==
+
+
+
\ No newline at end of file
diff --git a/TEMUKJD/PDDForms/ProductSelectForms/PDDDBProdListForm.Designer.cs b/TEMUKJD/PDDForms/ProductSelectForms/PDDDBProdListForm.Designer.cs
index d59a893..ccfd99b 100644
--- a/TEMUKJD/PDDForms/ProductSelectForms/PDDDBProdListForm.Designer.cs
+++ b/TEMUKJD/PDDForms/ProductSelectForms/PDDDBProdListForm.Designer.cs
@@ -772,7 +772,7 @@ namespace TemuKJD.PDDForms.ProductSelectForms
"",
"是",
"否"});
- this.cmbPddRelation.Location = new System.Drawing.Point(743, 7);
+ this.cmbPddRelation.Location = new System.Drawing.Point(743, 5);
this.cmbPddRelation.Margin = new System.Windows.Forms.Padding(0, 3, 3, 3);
this.cmbPddRelation.Name = "cmbPddRelation";
this.cmbPddRelation.Size = new System.Drawing.Size(47, 25);
@@ -827,7 +827,7 @@ namespace TemuKJD.PDDForms.ProductSelectForms
//
this.cmbCat2.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right)));
this.cmbCat2.FormattingEnabled = true;
- this.cmbCat2.Location = new System.Drawing.Point(278, 75);
+ this.cmbCat2.Location = new System.Drawing.Point(278, 77);
this.cmbCat2.Margin = new System.Windows.Forms.Padding(0, 3, 3, 3);
this.cmbCat2.Name = "cmbCat2";
this.cmbCat2.Size = new System.Drawing.Size(46, 25);
@@ -912,7 +912,7 @@ namespace TemuKJD.PDDForms.ProductSelectForms
"机会商品",
"以图搜品",
"外部数据"});
- this.cmbSourceType.Location = new System.Drawing.Point(278, 40);
+ this.cmbSourceType.Location = new System.Drawing.Point(278, 42);
this.cmbSourceType.Margin = new System.Windows.Forms.Padding(0, 3, 3, 3);
this.cmbSourceType.Name = "cmbSourceType";
this.cmbSourceType.Size = new System.Drawing.Size(46, 25);
@@ -958,7 +958,7 @@ namespace TemuKJD.PDDForms.ProductSelectForms
"",
"是",
"否"});
- this.cmbWxCat.Location = new System.Drawing.Point(622, 5);
+ this.cmbWxCat.Location = new System.Drawing.Point(622, 7);
this.cmbWxCat.Margin = new System.Windows.Forms.Padding(0, 3, 3, 3);
this.cmbWxCat.Name = "cmbWxCat";
this.cmbWxCat.Size = new System.Drawing.Size(47, 25);
@@ -980,7 +980,7 @@ namespace TemuKJD.PDDForms.ProductSelectForms
this.cmbSort.Items.AddRange(new object[] {
"入库时间",
"认领总数"});
- this.cmbSort.Location = new System.Drawing.Point(381, 40);
+ this.cmbSort.Location = new System.Drawing.Point(381, 42);
this.cmbSort.Margin = new System.Windows.Forms.Padding(0, 3, 3, 3);
this.cmbSort.Name = "cmbSort";
this.cmbSort.Size = new System.Drawing.Size(46, 25);
@@ -1056,7 +1056,7 @@ namespace TemuKJD.PDDForms.ProductSelectForms
//
this.cmbGroupFilter.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right)));
this.cmbGroupFilter.FormattingEnabled = true;
- this.cmbGroupFilter.Location = new System.Drawing.Point(175, 40);
+ this.cmbGroupFilter.Location = new System.Drawing.Point(175, 42);
this.cmbGroupFilter.Margin = new System.Windows.Forms.Padding(0, 3, 3, 3);
this.cmbGroupFilter.Name = "cmbGroupFilter";
this.cmbGroupFilter.Size = new System.Drawing.Size(46, 25);
@@ -1071,7 +1071,7 @@ namespace TemuKJD.PDDForms.ProductSelectForms
"是",
"否",
"导出未拉回"});
- this.cmbExportToOutServer.Location = new System.Drawing.Point(622, 40);
+ this.cmbExportToOutServer.Location = new System.Drawing.Point(622, 42);
this.cmbExportToOutServer.Margin = new System.Windows.Forms.Padding(0, 3, 3, 3);
this.cmbExportToOutServer.Name = "cmbExportToOutServer";
this.cmbExportToOutServer.Size = new System.Drawing.Size(47, 25);
@@ -1107,7 +1107,7 @@ namespace TemuKJD.PDDForms.ProductSelectForms
"安全商品",
"违规商品",
"未校验"});
- this.cmbWxSafe.Location = new System.Drawing.Point(501, 40);
+ this.cmbWxSafe.Location = new System.Drawing.Point(501, 42);
this.cmbWxSafe.Margin = new System.Windows.Forms.Padding(0, 3, 3, 3);
this.cmbWxSafe.Name = "cmbWxSafe";
this.cmbWxSafe.Size = new System.Drawing.Size(47, 25);
@@ -1149,7 +1149,7 @@ namespace TemuKJD.PDDForms.ProductSelectForms
//
this.cmbCat1.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right)));
this.cmbCat1.FormattingEnabled = true;
- this.cmbCat1.Location = new System.Drawing.Point(175, 75);
+ this.cmbCat1.Location = new System.Drawing.Point(175, 77);
this.cmbCat1.Margin = new System.Windows.Forms.Padding(0, 3, 3, 3);
this.cmbCat1.Name = "cmbCat1";
this.cmbCat1.Size = new System.Drawing.Size(46, 25);
@@ -1171,7 +1171,7 @@ namespace TemuKJD.PDDForms.ProductSelectForms
//
this.cmbCat3.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right)));
this.cmbCat3.FormattingEnabled = true;
- this.cmbCat3.Location = new System.Drawing.Point(381, 75);
+ this.cmbCat3.Location = new System.Drawing.Point(381, 77);
this.cmbCat3.Margin = new System.Windows.Forms.Padding(0, 3, 3, 3);
this.cmbCat3.Name = "cmbCat3";
this.cmbCat3.Size = new System.Drawing.Size(46, 25);
@@ -1268,7 +1268,7 @@ namespace TemuKJD.PDDForms.ProductSelectForms
"是",
"否",
"修复回传未拉回"});
- this.cmbHasReturn.Location = new System.Drawing.Point(743, 40);
+ this.cmbHasReturn.Location = new System.Drawing.Point(743, 42);
this.cmbHasReturn.Margin = new System.Windows.Forms.Padding(0, 3, 3, 3);
this.cmbHasReturn.Name = "cmbHasReturn";
this.cmbHasReturn.Size = new System.Drawing.Size(47, 25);
diff --git a/TEMUKJD/PDDForms/ProductSelectForms/PDDDBProdUserSelectForm.cs b/TEMUKJD/PDDForms/ProductSelectForms/PDDDBProdUserSelectForm.cs
index 93021a7..316aca0 100644
--- a/TEMUKJD/PDDForms/ProductSelectForms/PDDDBProdUserSelectForm.cs
+++ b/TEMUKJD/PDDForms/ProductSelectForms/PDDDBProdUserSelectForm.cs
@@ -126,7 +126,7 @@ namespace TemuKJD.PDDForms.ProductSelectForms
defaultAddPriceRule = NaiBa.Util.Helper.ConfigHelper.LoadConfig("pdd_default_add_price_rule");
if (defaultAddPriceRule == null)
{
- defaultAddPriceRule = new AddPriceRule() { AddPriceTimes = 1.3m, AddMorePrice = 1, SinglePriceAdd = 1 };
+ defaultAddPriceRule = new AddPriceRule() { AddPriceTimes = 1.3m, AddMorePrice = 1, SinglePriceAdd = 1, LowPriceAddPriceTimes = 1, LowPriceAddMorePrice = 0 };
}
this.txtAddTimes.Text = defaultAddPriceRule.AddPriceTimes.ToString();
this.txtAddMorePrice.Text = defaultAddPriceRule.AddMorePrice.ToString();
@@ -10415,6 +10415,14 @@ Content-Type: image/jpeg
///
public decimal AddMorePrice { get; set; }
///
+ /// 加价倍数
+ ///
+ public decimal LowPriceAddPriceTimes { get; set; } = 1;
+ ///
+ /// 额外加价金额
+ ///
+ public decimal LowPriceAddMorePrice { get; set; } = 0;
+ ///
/// 单买加价
///
public decimal SinglePriceAdd { get; set; }
diff --git a/TEMUKJD/ToolForms/GetAddressForm.cs b/TEMUKJD/ToolForms/GetAddressForm.cs
index 738c619..5255739 100644
--- a/TEMUKJD/ToolForms/GetAddressForm.cs
+++ b/TEMUKJD/ToolForms/GetAddressForm.cs
@@ -110,7 +110,7 @@ namespace TemuKJD.ToolForms
jAfterSale["county_name"] = txtCountyName.Text.Trim();
jAfterSale["street_name"] = "";
jAfterSale["detail_info"] = txtDetailInfo.Text.Trim();
- jAfterSale["number"] = txtCoid.Text.Trim();
+ jAfterSale["number"] = txtCoid.Text.Trim().Split('>').LastOrDefault();
jAfterSale["name"] = txtSupplierName.Text.Trim();
StringBuilder data = new StringBuilder();
diff --git a/TEMUKJD/WXForms/ProductForms/WXDBProdUploadForm.cs b/TEMUKJD/WXForms/ProductForms/WXDBProdUploadForm.cs
index 200ae0c..0988bd1 100644
--- a/TEMUKJD/WXForms/ProductForms/WXDBProdUploadForm.cs
+++ b/TEMUKJD/WXForms/ProductForms/WXDBProdUploadForm.cs
@@ -1978,6 +1978,10 @@ namespace TemuKJD.WXForms.ProductForms
}
List aiCateIdLst = new List();
// 聚水潭商品已识别类目使用类目缓存
+ if (dbProd.product_get_type_text == "厂商直采" && dbProd.wx_cat_leaf == null)
+ {
+ return "{\"success\":false,\"draftId\":0,\"status\":\"未上传\",\"errMsg\":\"该商品类目信息不完整\"}";
+ }
// 微信商品使用类目缓存
if (!dbProd.wx_cat_leaf.IsNullOrZero())
{
@@ -2255,7 +2259,7 @@ namespace TemuKJD.WXForms.ProductForms
var afterSaleAddress = "";
var afterSaleDetail = "";
// 厂商直采获取售后地址用于处理售后单
- if (dbProd.product_get_type_text == "厂商直采" && dbProd.wx_cat_leaf != null)
+ if (dbProd.product_get_type_text == "厂商直采")
{
var urlAfterSale = BaseClass.BuildObjString("product/wx_get_after_sale");
@@ -2322,7 +2326,7 @@ namespace TemuKJD.WXForms.ProductForms
}
}
- if (dbProd.product_get_type_text == "1688厂家")
+ else if (dbProd.product_get_type_text == "1688厂家")
{
var urlAfterSale = BaseClass.BuildObjString("product/wx_get_after_sale");
var dataAfterSale = Work.UserLogin.GetSignaturex();
@@ -2358,6 +2362,11 @@ namespace TemuKJD.WXForms.ProductForms
}
}
+ else
+ {
+
+ }
+
if (!string.IsNullOrEmpty(afterSaleAddress))
{
afterSaleDetail = BaseRegex.GetStringJson(ref afterSaleAddress, "detail_info");
@@ -2419,7 +2428,7 @@ namespace TemuKJD.WXForms.ProductForms
var shippingTemplateJson = "";
var shipPrice = 0;
- if (dbProd.product_get_type_text == "厂商直采" && dbProd.wx_cat_leaf != null)
+ if (dbProd.product_get_type_text == "厂商直采")
{
var urlShipping = BaseClass.BuildObjString("product/wx_get_shipping_template");
var dataShipping = Work.UserLogin.GetSignaturex() +
@@ -2512,7 +2521,7 @@ namespace TemuKJD.WXForms.ProductForms
}
#endregion
- #region 运费模板
+ #region 获取店铺运费模板
var expressRst = WXUpload.getFreightTemplate(shop);
if (!expressRst.Contains("\"code\":0") && !expressRst.Contains("\"success\":true"))
{
diff --git a/TEMUKJD/WXForms/ShopForms/WXShopAfterSaleAddressListForm.Designer.cs b/TEMUKJD/WXForms/ShopForms/WXShopAfterSaleAddressListForm.Designer.cs
new file mode 100644
index 0000000..4b5d044
--- /dev/null
+++ b/TEMUKJD/WXForms/ShopForms/WXShopAfterSaleAddressListForm.Designer.cs
@@ -0,0 +1,645 @@
+namespace TemuKJD.WXForms.ShopForms
+{
+ partial class WXShopAfterSaleAddressListForm
+ {
+ ///
+ /// Required designer variable.
+ ///
+ private System.ComponentModel.IContainer components = null;
+
+ ///
+ /// Clean up any resources being used.
+ ///
+ /// true if managed resources should be disposed; otherwise, false.
+ protected override void Dispose(bool disposing)
+ {
+ if (disposing && (components != null))
+ {
+ components.Dispose();
+ }
+ base.Dispose(disposing);
+ }
+
+ #region Windows Form Designer generated code
+
+ ///
+ /// Required method for Designer support - do not modify
+ /// the contents of this method with the code editor.
+ ///
+ private void InitializeComponent()
+ {
+ System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle1 = new System.Windows.Forms.DataGridViewCellStyle();
+ System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle2 = new System.Windows.Forms.DataGridViewCellStyle();
+ this.label1 = new System.Windows.Forms.Label();
+ this.splitContainer1 = new System.Windows.Forms.SplitContainer();
+ this.tableLayoutPanel2 = new System.Windows.Forms.TableLayoutPanel();
+ this.panel5 = new System.Windows.Forms.Panel();
+ this.btnEdit = new DevComponents.DotNetBar.PanelEx();
+ this.panel4 = new System.Windows.Forms.Panel();
+ this.tableLayoutPanel1 = new System.Windows.Forms.TableLayoutPanel();
+ this.cmbGroup = new TemuKJD.UserComponent.UcComboBoxMutiSelect();
+ this.label2 = new System.Windows.Forms.Label();
+ this.cmbNotes = new TemuKJD.UserComponent.UcComboBoxMutiSelect();
+ this.txtShopId = new System.Windows.Forms.TextBox();
+ this.label3 = new System.Windows.Forms.Label();
+ this.txtShopName = new System.Windows.Forms.TextBox();
+ this.label4 = new System.Windows.Forms.Label();
+ this.label6 = new System.Windows.Forms.Label();
+ this.btnRefreshShop = new DevComponents.DotNetBar.PanelEx();
+ this.btnSearch = new DevComponents.DotNetBar.PanelEx();
+ this.pnlEmpty = new DevComponents.DotNetBar.PanelEx();
+ this.splitContainer2 = new System.Windows.Forms.SplitContainer();
+ this.pbLoading = new System.Windows.Forms.PictureBox();
+ this.dgvShop = new TemuKJD.UserComponent.DataGridViewEx();
+ this.colSelect = new System.Windows.Forms.DataGridViewCheckBoxColumn();
+ this.colLoginName = new System.Windows.Forms.DataGridViewTextBoxColumn();
+ this.colShopId = new System.Windows.Forms.DataGridViewTextBoxColumn();
+ this.colShopAccount = new System.Windows.Forms.DataGridViewTextBoxColumn();
+ this.colNotes = new System.Windows.Forms.DataGridViewTextBoxColumn();
+ this.colGroupName = new System.Windows.Forms.DataGridViewTextBoxColumn();
+ this.colProvinceName = new System.Windows.Forms.DataGridViewTextBoxColumn();
+ this.colCityName = new System.Windows.Forms.DataGridViewTextBoxColumn();
+ this.colCountyName = new System.Windows.Forms.DataGridViewTextBoxColumn();
+ this.colUserName = new System.Windows.Forms.DataGridViewTextBoxColumn();
+ this.colTelNumber = new System.Windows.Forms.DataGridViewTextBoxColumn();
+ this.colDetailInfo = new System.Windows.Forms.DataGridViewTextBoxColumn();
+ this.colEdit = new System.Windows.Forms.DataGridViewLinkColumn();
+ this.colDelete = new System.Windows.Forms.DataGridViewLinkColumn();
+ this.statusBar = new TemuKJD.UserControls.StatusBarUserControl();
+ ((System.ComponentModel.ISupportInitialize)(this.splitContainer1)).BeginInit();
+ this.splitContainer1.Panel1.SuspendLayout();
+ this.splitContainer1.Panel2.SuspendLayout();
+ this.splitContainer1.SuspendLayout();
+ this.tableLayoutPanel2.SuspendLayout();
+ this.panel5.SuspendLayout();
+ this.panel4.SuspendLayout();
+ this.tableLayoutPanel1.SuspendLayout();
+ ((System.ComponentModel.ISupportInitialize)(this.splitContainer2)).BeginInit();
+ this.splitContainer2.Panel1.SuspendLayout();
+ this.splitContainer2.Panel2.SuspendLayout();
+ this.splitContainer2.SuspendLayout();
+ ((System.ComponentModel.ISupportInitialize)(this.pbLoading)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.dgvShop)).BeginInit();
+ this.SuspendLayout();
+ //
+ // label1
+ //
+ this.label1.AutoSize = true;
+ this.label1.Location = new System.Drawing.Point(13, 13);
+ this.label1.Name = "label1";
+ this.label1.Size = new System.Drawing.Size(201, 17);
+ this.label1.TabIndex = 0;
+ this.label1.Text = "这里显示店铺列表 -- ShopListForm";
+ //
+ // splitContainer1
+ //
+ this.splitContainer1.BackColor = System.Drawing.Color.White;
+ this.splitContainer1.Dock = System.Windows.Forms.DockStyle.Fill;
+ this.splitContainer1.FixedPanel = System.Windows.Forms.FixedPanel.Panel1;
+ this.splitContainer1.Location = new System.Drawing.Point(0, 0);
+ this.splitContainer1.Name = "splitContainer1";
+ this.splitContainer1.Orientation = System.Windows.Forms.Orientation.Horizontal;
+ //
+ // splitContainer1.Panel1
+ //
+ this.splitContainer1.Panel1.Controls.Add(this.tableLayoutPanel2);
+ //
+ // splitContainer1.Panel2
+ //
+ this.splitContainer1.Panel2.Controls.Add(this.splitContainer2);
+ this.splitContainer1.Panel2.Margin = new System.Windows.Forms.Padding(4);
+ this.splitContainer1.Size = new System.Drawing.Size(1394, 622);
+ this.splitContainer1.SplitterDistance = 46;
+ this.splitContainer1.TabIndex = 33;
+ //
+ // tableLayoutPanel2
+ //
+ this.tableLayoutPanel2.ColumnCount = 2;
+ this.tableLayoutPanel2.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 100F));
+ this.tableLayoutPanel2.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle());
+ this.tableLayoutPanel2.Controls.Add(this.panel5, 1, 0);
+ this.tableLayoutPanel2.Controls.Add(this.panel4, 0, 0);
+ this.tableLayoutPanel2.Dock = System.Windows.Forms.DockStyle.Fill;
+ this.tableLayoutPanel2.Location = new System.Drawing.Point(0, 0);
+ this.tableLayoutPanel2.Name = "tableLayoutPanel2";
+ this.tableLayoutPanel2.RowCount = 1;
+ this.tableLayoutPanel2.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 100F));
+ this.tableLayoutPanel2.Size = new System.Drawing.Size(1394, 46);
+ this.tableLayoutPanel2.TabIndex = 37;
+ //
+ // panel5
+ //
+ this.panel5.Controls.Add(this.btnEdit);
+ this.panel5.Location = new System.Drawing.Point(1142, 3);
+ this.panel5.Name = "panel5";
+ this.panel5.Size = new System.Drawing.Size(249, 40);
+ this.panel5.TabIndex = 1;
+ //
+ // btnEdit
+ //
+ this.btnEdit.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right)));
+ this.btnEdit.ColorSchemeStyle = DevComponents.DotNetBar.eDotNetBarStyle.StyleManagerControlled;
+ this.btnEdit.Cursor = System.Windows.Forms.Cursors.Hand;
+ this.btnEdit.DisabledBackColor = System.Drawing.Color.Empty;
+ this.btnEdit.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
+ this.btnEdit.Location = new System.Drawing.Point(131, 8);
+ this.btnEdit.Margin = new System.Windows.Forms.Padding(0, 3, 0, 3);
+ this.btnEdit.Name = "btnEdit";
+ this.btnEdit.Size = new System.Drawing.Size(100, 23);
+ this.btnEdit.Style.Alignment = System.Drawing.StringAlignment.Center;
+ this.btnEdit.Style.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255)))));
+ this.btnEdit.Style.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255)))));
+ this.btnEdit.Style.BorderColor.ColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelBorder;
+ this.btnEdit.Style.BorderDashStyle = System.Drawing.Drawing2D.DashStyle.Dash;
+ this.btnEdit.Style.BorderSide = DevComponents.DotNetBar.eBorderSide.None;
+ this.btnEdit.Style.ForeColor.Color = System.Drawing.Color.White;
+ this.btnEdit.Style.GradientAngle = 90;
+ this.btnEdit.StyleMouseOver.Alignment = System.Drawing.StringAlignment.Center;
+ this.btnEdit.StyleMouseOver.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(25)))), ((int)(((byte)(102)))), ((int)(((byte)(255)))));
+ this.btnEdit.StyleMouseOver.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(25)))), ((int)(((byte)(102)))), ((int)(((byte)(255)))));
+ this.btnEdit.TabIndex = 806;
+ this.btnEdit.Text = "批量编辑选中";
+ this.btnEdit.Click += new System.EventHandler(this.btnEdit_Click);
+ //
+ // panel4
+ //
+ this.panel4.Controls.Add(this.tableLayoutPanel1);
+ this.panel4.Dock = System.Windows.Forms.DockStyle.Fill;
+ this.panel4.Location = new System.Drawing.Point(3, 3);
+ this.panel4.Name = "panel4";
+ this.panel4.Size = new System.Drawing.Size(1133, 40);
+ this.panel4.TabIndex = 0;
+ //
+ // tableLayoutPanel1
+ //
+ this.tableLayoutPanel1.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
+ | System.Windows.Forms.AnchorStyles.Right)));
+ this.tableLayoutPanel1.ColumnCount = 14;
+ this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle());
+ this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 25.00067F));
+ this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle());
+ this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 25.00066F));
+ this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle());
+ this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 25.00066F));
+ this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle());
+ this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 24.99801F));
+ this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Absolute, 2F));
+ this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Absolute, 60F));
+ this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Absolute, 2F));
+ this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Absolute, 60F));
+ this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Absolute, 2F));
+ this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Absolute, 60F));
+ this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Absolute, 20F));
+ this.tableLayoutPanel1.Controls.Add(this.cmbGroup, 7, 0);
+ this.tableLayoutPanel1.Controls.Add(this.label2, 0, 0);
+ this.tableLayoutPanel1.Controls.Add(this.cmbNotes, 5, 0);
+ this.tableLayoutPanel1.Controls.Add(this.txtShopId, 1, 0);
+ this.tableLayoutPanel1.Controls.Add(this.label3, 2, 0);
+ this.tableLayoutPanel1.Controls.Add(this.txtShopName, 3, 0);
+ this.tableLayoutPanel1.Controls.Add(this.label4, 4, 0);
+ this.tableLayoutPanel1.Controls.Add(this.label6, 6, 0);
+ this.tableLayoutPanel1.Controls.Add(this.btnRefreshShop, 9, 0);
+ this.tableLayoutPanel1.Controls.Add(this.btnSearch, 11, 0);
+ this.tableLayoutPanel1.Controls.Add(this.pnlEmpty, 13, 0);
+ this.tableLayoutPanel1.Location = new System.Drawing.Point(3, 0);
+ this.tableLayoutPanel1.Name = "tableLayoutPanel1";
+ this.tableLayoutPanel1.RowCount = 1;
+ this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 100F));
+ this.tableLayoutPanel1.Size = new System.Drawing.Size(858, 40);
+ this.tableLayoutPanel1.TabIndex = 375;
+ //
+ // cmbGroup
+ //
+ this.cmbGroup.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right)));
+ this.cmbGroup.DefaultText = "全部";
+ this.cmbGroup.DropDownHeight = 1;
+ this.cmbGroup.DropDownWidth = 1;
+ this.cmbGroup.FormattingEnabled = true;
+ this.cmbGroup.IntegralHeight = false;
+ this.cmbGroup.Location = new System.Drawing.Point(544, 8);
+ this.cmbGroup.Margin = new System.Windows.Forms.Padding(0, 0, 0, 4);
+ this.cmbGroup.Name = "cmbGroup";
+ this.cmbGroup.Size = new System.Drawing.Size(127, 25);
+ this.cmbGroup.TabIndex = 803;
+ this.cmbGroup.Text = "全部";
+ //
+ // label2
+ //
+ this.label2.Anchor = System.Windows.Forms.AnchorStyles.None;
+ this.label2.AutoSize = true;
+ this.label2.Location = new System.Drawing.Point(3, 11);
+ this.label2.Margin = new System.Windows.Forms.Padding(3, 3, 0, 3);
+ this.label2.Name = "label2";
+ this.label2.Size = new System.Drawing.Size(43, 17);
+ this.label2.TabIndex = 373;
+ this.label2.Text = "店铺id";
+ //
+ // cmbNotes
+ //
+ this.cmbNotes.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right)));
+ this.cmbNotes.DefaultText = "全部";
+ this.cmbNotes.DropDownHeight = 1;
+ this.cmbNotes.DropDownWidth = 1;
+ this.cmbNotes.FormattingEnabled = true;
+ this.cmbNotes.IntegralHeight = false;
+ this.cmbNotes.Location = new System.Drawing.Point(382, 8);
+ this.cmbNotes.Margin = new System.Windows.Forms.Padding(0, 0, 0, 4);
+ this.cmbNotes.Name = "cmbNotes";
+ this.cmbNotes.Size = new System.Drawing.Size(127, 25);
+ this.cmbNotes.TabIndex = 413;
+ this.cmbNotes.Text = "全部";
+ //
+ // txtShopId
+ //
+ this.txtShopId.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right)));
+ this.txtShopId.Location = new System.Drawing.Point(46, 8);
+ this.txtShopId.Margin = new System.Windows.Forms.Padding(0, 3, 0, 3);
+ this.txtShopId.Name = "txtShopId";
+ this.txtShopId.Size = new System.Drawing.Size(127, 23);
+ this.txtShopId.TabIndex = 372;
+ //
+ // label3
+ //
+ this.label3.Anchor = System.Windows.Forms.AnchorStyles.None;
+ this.label3.AutoSize = true;
+ this.label3.Location = new System.Drawing.Point(176, 11);
+ this.label3.Margin = new System.Windows.Forms.Padding(3, 3, 0, 3);
+ this.label3.Name = "label3";
+ this.label3.Size = new System.Drawing.Size(44, 17);
+ this.label3.TabIndex = 375;
+ this.label3.Text = "店铺名";
+ //
+ // txtShopName
+ //
+ this.txtShopName.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right)));
+ this.txtShopName.Location = new System.Drawing.Point(220, 8);
+ this.txtShopName.Margin = new System.Windows.Forms.Padding(0, 3, 0, 3);
+ this.txtShopName.Name = "txtShopName";
+ this.txtShopName.Size = new System.Drawing.Size(127, 23);
+ this.txtShopName.TabIndex = 374;
+ //
+ // label4
+ //
+ this.label4.Anchor = System.Windows.Forms.AnchorStyles.None;
+ this.label4.AutoSize = true;
+ this.label4.Location = new System.Drawing.Point(350, 11);
+ this.label4.Margin = new System.Windows.Forms.Padding(3, 3, 0, 3);
+ this.label4.Name = "label4";
+ this.label4.Size = new System.Drawing.Size(32, 17);
+ this.label4.TabIndex = 377;
+ this.label4.Text = "备注";
+ //
+ // label6
+ //
+ this.label6.Anchor = System.Windows.Forms.AnchorStyles.None;
+ this.label6.AutoSize = true;
+ this.label6.Location = new System.Drawing.Point(512, 11);
+ this.label6.Margin = new System.Windows.Forms.Padding(3, 3, 0, 3);
+ this.label6.Name = "label6";
+ this.label6.Size = new System.Drawing.Size(32, 17);
+ this.label6.TabIndex = 415;
+ this.label6.Text = "分组";
+ //
+ // btnRefreshShop
+ //
+ this.btnRefreshShop.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right)));
+ this.btnRefreshShop.ColorSchemeStyle = DevComponents.DotNetBar.eDotNetBarStyle.StyleManagerControlled;
+ this.btnRefreshShop.Cursor = System.Windows.Forms.Cursors.Hand;
+ this.btnRefreshShop.DisabledBackColor = System.Drawing.Color.Empty;
+ this.btnRefreshShop.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
+ this.btnRefreshShop.Location = new System.Drawing.Point(673, 8);
+ this.btnRefreshShop.Margin = new System.Windows.Forms.Padding(0, 3, 0, 3);
+ this.btnRefreshShop.Name = "btnRefreshShop";
+ this.btnRefreshShop.Size = new System.Drawing.Size(60, 23);
+ this.btnRefreshShop.Style.Alignment = System.Drawing.StringAlignment.Center;
+ this.btnRefreshShop.Style.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255)))));
+ this.btnRefreshShop.Style.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255)))));
+ this.btnRefreshShop.Style.BorderColor.ColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelBorder;
+ this.btnRefreshShop.Style.BorderDashStyle = System.Drawing.Drawing2D.DashStyle.Dash;
+ this.btnRefreshShop.Style.BorderSide = DevComponents.DotNetBar.eBorderSide.None;
+ this.btnRefreshShop.Style.ForeColor.Color = System.Drawing.Color.White;
+ this.btnRefreshShop.Style.GradientAngle = 90;
+ this.btnRefreshShop.StyleMouseOver.Alignment = System.Drawing.StringAlignment.Center;
+ this.btnRefreshShop.StyleMouseOver.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(25)))), ((int)(((byte)(102)))), ((int)(((byte)(255)))));
+ this.btnRefreshShop.StyleMouseOver.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(25)))), ((int)(((byte)(102)))), ((int)(((byte)(255)))));
+ this.btnRefreshShop.TabIndex = 802;
+ this.btnRefreshShop.Text = "刷新店铺";
+ this.btnRefreshShop.Click += new System.EventHandler(this.btnRefreshCookie_Click);
+ //
+ // btnSearch
+ //
+ this.btnSearch.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right)));
+ this.btnSearch.ColorSchemeStyle = DevComponents.DotNetBar.eDotNetBarStyle.StyleManagerControlled;
+ this.btnSearch.Cursor = System.Windows.Forms.Cursors.Hand;
+ this.btnSearch.DisabledBackColor = System.Drawing.Color.Empty;
+ this.btnSearch.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
+ this.btnSearch.Location = new System.Drawing.Point(735, 8);
+ this.btnSearch.Margin = new System.Windows.Forms.Padding(0, 3, 0, 3);
+ this.btnSearch.Name = "btnSearch";
+ this.btnSearch.Size = new System.Drawing.Size(60, 23);
+ this.btnSearch.Style.Alignment = System.Drawing.StringAlignment.Center;
+ this.btnSearch.Style.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255)))));
+ this.btnSearch.Style.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255)))));
+ this.btnSearch.Style.BorderColor.ColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelBorder;
+ this.btnSearch.Style.BorderDashStyle = System.Drawing.Drawing2D.DashStyle.Dash;
+ this.btnSearch.Style.BorderSide = DevComponents.DotNetBar.eBorderSide.None;
+ this.btnSearch.Style.ForeColor.Color = System.Drawing.Color.White;
+ this.btnSearch.Style.GradientAngle = 90;
+ this.btnSearch.StyleMouseOver.Alignment = System.Drawing.StringAlignment.Center;
+ this.btnSearch.StyleMouseOver.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(25)))), ((int)(((byte)(102)))), ((int)(((byte)(255)))));
+ this.btnSearch.StyleMouseOver.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(25)))), ((int)(((byte)(102)))), ((int)(((byte)(255)))));
+ this.btnSearch.TabIndex = 798;
+ this.btnSearch.Text = "筛选";
+ this.btnSearch.Click += new System.EventHandler(this.btnSearch_Click);
+ //
+ // pnlEmpty
+ //
+ this.pnlEmpty.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right)));
+ this.pnlEmpty.CanvasColor = System.Drawing.SystemColors.Control;
+ this.pnlEmpty.ColorSchemeStyle = DevComponents.DotNetBar.eDotNetBarStyle.StyleManagerControlled;
+ this.pnlEmpty.DisabledBackColor = System.Drawing.Color.Empty;
+ this.pnlEmpty.Location = new System.Drawing.Point(797, 8);
+ this.pnlEmpty.Margin = new System.Windows.Forms.Padding(0, 3, 0, 3);
+ this.pnlEmpty.Name = "pnlEmpty";
+ this.pnlEmpty.Size = new System.Drawing.Size(61, 23);
+ this.pnlEmpty.Style.Alignment = System.Drawing.StringAlignment.Center;
+ this.pnlEmpty.Style.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(185)))), ((int)(((byte)(215)))), ((int)(((byte)(255)))));
+ this.pnlEmpty.Style.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(185)))), ((int)(((byte)(215)))), ((int)(((byte)(255)))));
+ this.pnlEmpty.Style.Border = DevComponents.DotNetBar.eBorderType.SingleLine;
+ this.pnlEmpty.Style.BorderColor.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255)))));
+ this.pnlEmpty.Style.ForeColor.ColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelText;
+ this.pnlEmpty.Style.GradientAngle = 90;
+ this.pnlEmpty.StyleMouseDown.Alignment = System.Drawing.StringAlignment.Center;
+ this.pnlEmpty.StyleMouseOver.Alignment = System.Drawing.StringAlignment.Center;
+ this.pnlEmpty.StyleMouseOver.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255)))));
+ this.pnlEmpty.StyleMouseOver.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255)))));
+ this.pnlEmpty.StyleMouseOver.ForeColor.Color = System.Drawing.Color.White;
+ this.pnlEmpty.TabIndex = 409;
+ this.pnlEmpty.Text = "清空条件";
+ this.pnlEmpty.Click += new System.EventHandler(this.btnEmpty_Click);
+ //
+ // splitContainer2
+ //
+ this.splitContainer2.BackColor = System.Drawing.Color.White;
+ this.splitContainer2.Dock = System.Windows.Forms.DockStyle.Fill;
+ this.splitContainer2.Location = new System.Drawing.Point(0, 0);
+ this.splitContainer2.Name = "splitContainer2";
+ this.splitContainer2.Orientation = System.Windows.Forms.Orientation.Horizontal;
+ //
+ // splitContainer2.Panel1
+ //
+ this.splitContainer2.Panel1.BackColor = System.Drawing.Color.White;
+ this.splitContainer2.Panel1.Controls.Add(this.pbLoading);
+ this.splitContainer2.Panel1.Controls.Add(this.dgvShop);
+ this.splitContainer2.Panel1.Padding = new System.Windows.Forms.Padding(4, 0, 4, 0);
+ //
+ // splitContainer2.Panel2
+ //
+ this.splitContainer2.Panel2.Controls.Add(this.statusBar);
+ this.splitContainer2.Size = new System.Drawing.Size(1394, 572);
+ this.splitContainer2.SplitterDistance = 540;
+ this.splitContainer2.TabIndex = 0;
+ //
+ // pbLoading
+ //
+ this.pbLoading.Anchor = System.Windows.Forms.AnchorStyles.None;
+ this.pbLoading.Image = global::TemuKJD.Properties.Resources.loading_blue;
+ this.pbLoading.Location = new System.Drawing.Point(672, 245);
+ this.pbLoading.Name = "pbLoading";
+ this.pbLoading.Size = new System.Drawing.Size(50, 50);
+ this.pbLoading.SizeMode = System.Windows.Forms.PictureBoxSizeMode.StretchImage;
+ this.pbLoading.TabIndex = 6;
+ this.pbLoading.TabStop = false;
+ //
+ // dgvShop
+ //
+ this.dgvShop.AllowUserToAddRows = false;
+ this.dgvShop.AllowUserToDeleteRows = false;
+ dataGridViewCellStyle1.BackColor = System.Drawing.Color.WhiteSmoke;
+ this.dgvShop.AlternatingRowsDefaultCellStyle = dataGridViewCellStyle1;
+ this.dgvShop.AutoRowNumber = true;
+ this.dgvShop.AutoSizeColumnsMode = System.Windows.Forms.DataGridViewAutoSizeColumnsMode.Fill;
+ this.dgvShop.BackgroundColor = System.Drawing.Color.White;
+ this.dgvShop.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255)))));
+ 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,
+ this.colLoginName,
+ this.colShopId,
+ this.colShopAccount,
+ this.colNotes,
+ this.colGroupName,
+ this.colProvinceName,
+ this.colCityName,
+ this.colCountyName,
+ this.colUserName,
+ this.colTelNumber,
+ this.colDetailInfo,
+ this.colEdit,
+ this.colDelete});
+ this.dgvShop.Dock = System.Windows.Forms.DockStyle.Fill;
+ this.dgvShop.Location = new System.Drawing.Point(4, 0);
+ this.dgvShop.MultiSelectCheckBox = true;
+ this.dgvShop.Name = "dgvShop";
+ this.dgvShop.ReadOnly = true;
+ this.dgvShop.RowTemplate.Height = 23;
+ this.dgvShop.Size = new System.Drawing.Size(1386, 540);
+ this.dgvShop.TabIndex = 5;
+ this.dgvShop.CellContentClick += new System.Windows.Forms.DataGridViewCellEventHandler(this.dgvShop_CellContentClick);
+ //
+ // colSelect
+ //
+ this.colSelect.FillWeight = 26F;
+ this.colSelect.HeaderText = "选";
+ this.colSelect.Name = "colSelect";
+ this.colSelect.ReadOnly = true;
+ this.colSelect.Resizable = System.Windows.Forms.DataGridViewTriState.True;
+ this.colSelect.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.Automatic;
+ //
+ // colLoginName
+ //
+ this.colLoginName.FillWeight = 70F;
+ this.colLoginName.HeaderText = "店铺登录号码";
+ this.colLoginName.Name = "colLoginName";
+ this.colLoginName.ReadOnly = true;
+ this.colLoginName.Visible = false;
+ //
+ // colShopId
+ //
+ this.colShopId.FillWeight = 70F;
+ this.colShopId.HeaderText = "店铺Id";
+ this.colShopId.Name = "colShopId";
+ this.colShopId.ReadOnly = true;
+ //
+ // colShopAccount
+ //
+ this.colShopAccount.FillWeight = 70F;
+ this.colShopAccount.HeaderText = "店铺账号";
+ this.colShopAccount.Name = "colShopAccount";
+ this.colShopAccount.ReadOnly = true;
+ //
+ // colNotes
+ //
+ this.colNotes.FillWeight = 70F;
+ this.colNotes.HeaderText = "备注";
+ this.colNotes.Name = "colNotes";
+ this.colNotes.ReadOnly = true;
+ //
+ // colGroupName
+ //
+ this.colGroupName.FillWeight = 80F;
+ this.colGroupName.HeaderText = "店铺分组";
+ this.colGroupName.Name = "colGroupName";
+ this.colGroupName.ReadOnly = true;
+ //
+ // colProvinceName
+ //
+ this.colProvinceName.FillWeight = 60F;
+ this.colProvinceName.HeaderText = "省";
+ this.colProvinceName.Name = "colProvinceName";
+ this.colProvinceName.ReadOnly = true;
+ //
+ // colCityName
+ //
+ this.colCityName.FillWeight = 60F;
+ this.colCityName.HeaderText = "市";
+ this.colCityName.Name = "colCityName";
+ this.colCityName.ReadOnly = true;
+ //
+ // colCountyName
+ //
+ this.colCountyName.FillWeight = 60F;
+ this.colCountyName.HeaderText = "区/县";
+ this.colCountyName.Name = "colCountyName";
+ this.colCountyName.ReadOnly = true;
+ //
+ // colUserName
+ //
+ this.colUserName.FillWeight = 70F;
+ this.colUserName.HeaderText = "收件人";
+ this.colUserName.Name = "colUserName";
+ this.colUserName.ReadOnly = true;
+ //
+ // colTelNumber
+ //
+ this.colTelNumber.FillWeight = 70F;
+ this.colTelNumber.HeaderText = "电话";
+ this.colTelNumber.Name = "colTelNumber";
+ this.colTelNumber.ReadOnly = true;
+ //
+ // colDetailInfo
+ //
+ this.colDetailInfo.FillWeight = 200F;
+ this.colDetailInfo.HeaderText = "详细地址";
+ this.colDetailInfo.Name = "colDetailInfo";
+ this.colDetailInfo.ReadOnly = true;
+ //
+ // colEdit
+ //
+ this.colEdit.FillWeight = 40F;
+ this.colEdit.HeaderText = "编辑";
+ this.colEdit.Name = "colEdit";
+ this.colEdit.ReadOnly = true;
+ this.colEdit.Resizable = System.Windows.Forms.DataGridViewTriState.True;
+ this.colEdit.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.Automatic;
+ //
+ // colDelete
+ //
+ this.colDelete.FillWeight = 40F;
+ this.colDelete.HeaderText = "删除";
+ this.colDelete.Name = "colDelete";
+ this.colDelete.ReadOnly = true;
+ //
+ // statusBar
+ //
+ this.statusBar.BackColor = System.Drawing.Color.White;
+ this.statusBar.Dock = System.Windows.Forms.DockStyle.Bottom;
+ 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, -1);
+ this.statusBar.Margin = new System.Windows.Forms.Padding(0);
+ this.statusBar.Name = "statusBar";
+ this.statusBar.Size = new System.Drawing.Size(1394, 29);
+ this.statusBar.TabIndex = 1;
+ //
+ // WXShopAfterSaleAddressListForm
+ //
+ this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.None;
+ this.BackColor = System.Drawing.Color.White;
+ this.ClientSize = new System.Drawing.Size(1394, 622);
+ this.Controls.Add(this.splitContainer1);
+ this.Controls.Add(this.label1);
+ this.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
+ this.KeyPreview = true;
+ this.Margin = new System.Windows.Forms.Padding(3, 4, 3, 4);
+ this.Name = "WXShopAfterSaleAddressListForm";
+ this.Text = "售后地址管理";
+ this.Load += new System.EventHandler(this.ShopListForm_Load);
+ this.VisibleChanged += new System.EventHandler(this.ShopListForm_VisibleChanged);
+ this.splitContainer1.Panel1.ResumeLayout(false);
+ this.splitContainer1.Panel2.ResumeLayout(false);
+ ((System.ComponentModel.ISupportInitialize)(this.splitContainer1)).EndInit();
+ this.splitContainer1.ResumeLayout(false);
+ this.tableLayoutPanel2.ResumeLayout(false);
+ this.panel5.ResumeLayout(false);
+ this.panel4.ResumeLayout(false);
+ this.tableLayoutPanel1.ResumeLayout(false);
+ this.tableLayoutPanel1.PerformLayout();
+ this.splitContainer2.Panel1.ResumeLayout(false);
+ this.splitContainer2.Panel2.ResumeLayout(false);
+ ((System.ComponentModel.ISupportInitialize)(this.splitContainer2)).EndInit();
+ this.splitContainer2.ResumeLayout(false);
+ ((System.ComponentModel.ISupportInitialize)(this.pbLoading)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.dgvShop)).EndInit();
+ this.ResumeLayout(false);
+ this.PerformLayout();
+
+ }
+
+ #endregion
+
+ private System.Windows.Forms.Label label1;
+ private System.Windows.Forms.SplitContainer splitContainer1;
+ private System.Windows.Forms.TableLayoutPanel tableLayoutPanel2;
+ private System.Windows.Forms.Panel panel5;
+ private System.Windows.Forms.Panel panel4;
+ private System.Windows.Forms.SplitContainer splitContainer2;
+ private UserControls.StatusBarUserControl statusBar;
+ private UserComponent.DataGridViewEx dgvShop;
+ private System.Windows.Forms.PictureBox pbLoading;
+ private System.Windows.Forms.TextBox txtShopName;
+ private System.Windows.Forms.Label label3;
+ private System.Windows.Forms.TextBox txtShopId;
+ private System.Windows.Forms.Label label2;
+ private System.Windows.Forms.Label label4;
+ private DevComponents.DotNetBar.PanelEx pnlEmpty;
+ private UserComponent.UcComboBoxMutiSelect cmbNotes;
+ private System.Windows.Forms.TableLayoutPanel tableLayoutPanel1;
+ private DevComponents.DotNetBar.PanelEx btnSearch;
+ private DevComponents.DotNetBar.PanelEx btnRefreshShop;
+ private UserComponent.UcComboBoxMutiSelect cmbGroup;
+ private System.Windows.Forms.Label label6;
+ private DevComponents.DotNetBar.PanelEx btnEdit;
+ private System.Windows.Forms.DataGridViewCheckBoxColumn colSelect;
+ private System.Windows.Forms.DataGridViewTextBoxColumn colLoginName;
+ private System.Windows.Forms.DataGridViewTextBoxColumn colShopId;
+ private System.Windows.Forms.DataGridViewTextBoxColumn colShopAccount;
+ private System.Windows.Forms.DataGridViewTextBoxColumn colNotes;
+ private System.Windows.Forms.DataGridViewTextBoxColumn colGroupName;
+ private System.Windows.Forms.DataGridViewTextBoxColumn colProvinceName;
+ private System.Windows.Forms.DataGridViewTextBoxColumn colCityName;
+ private System.Windows.Forms.DataGridViewTextBoxColumn colCountyName;
+ private System.Windows.Forms.DataGridViewTextBoxColumn colUserName;
+ private System.Windows.Forms.DataGridViewTextBoxColumn colTelNumber;
+ private System.Windows.Forms.DataGridViewTextBoxColumn colDetailInfo;
+ private System.Windows.Forms.DataGridViewLinkColumn colEdit;
+ private System.Windows.Forms.DataGridViewLinkColumn colDelete;
+ }
+}
\ No newline at end of file
diff --git a/TEMUKJD/WXForms/ShopForms/WXShopAfterSaleAddressListForm.cs b/TEMUKJD/WXForms/ShopForms/WXShopAfterSaleAddressListForm.cs
new file mode 100644
index 0000000..13f23a7
--- /dev/null
+++ b/TEMUKJD/WXForms/ShopForms/WXShopAfterSaleAddressListForm.cs
@@ -0,0 +1,506 @@
+using AllBase;
+using AllBase.Helper;
+using AllBase.Model.Result;
+using AllBase.Model.Result.WXResult;
+using NaiBa.Util;
+using NaiBa.Util.Extension;
+using Newtonsoft.Json.Linq;
+using System;
+using System.Collections.Generic;
+using System.Data;
+using System.Drawing;
+using System.Globalization;
+using System.IO;
+using System.Linq;
+using System.Threading;
+using System.Threading.Tasks;
+using System.Windows.Forms;
+using TemuKJD.BaseForms;
+using TemuKJD.BLL;
+using TemuKJD.Extension;
+using Work;
+//using TemuKJD.PDDForms.AdminForms;
+
+namespace TemuKJD.WXForms.ShopForms
+{
+ public partial class WXShopAfterSaleAddressListForm : BaseForm
+ {
+ public static bool IsOperate { get; set; } = false;
+ private bool isLoading { get; set; } = false;
+
+ public ConcurrentList lstWXShopDefaultAddressInfo = new ConcurrentList();
+
+ public WXShopAfterSaleAddressListForm()
+ {
+ InitializeComponent();
+ }
+
+ private void Sae_SaveComplete(object obj, object isAdd, object sender)
+ {
+ WXShopAddEditForm saeForm = sender as WXShopAddEditForm;
+ var shopInfoLst = obj as List;
+ if (shopInfoLst != null)
+ {
+ this.pbLoading.Visible = true;
+ Task.Run(() =>
+ {
+ if ((isAdd as bool?) == true)
+ {
+ int i = 1;
+ foreach (var shopInfo in shopInfoLst)
+ {
+ Invoke(new Action(() => {
+ this.statusBar.pgbTaskProgress.Value = i;
+ this.statusBar.pgbTaskProgress.Text = i + "/" + shopInfoLst.Count;
+ i++;
+ }));
+ var shop = GlobalConfig.ShopLoginList.FirstOrDefault(v => v.LoginName == shopInfo.LoginName);
+ if (shop != null)
+ {
+ BaseMsgForm.ShowError("店铺" + shopInfo.LoginName + "已存在!");
+ }
+ else
+ {
+ ShopBLL.AddServerShop(shopInfo);
+ }
+ }
+ btnRefreshCookie_Click(null, null);
+ }
+ else
+ {
+ int i = 1;
+ foreach (var shopInfo in shopInfoLst)
+ {
+ Invoke(new Action(() => {
+ this.statusBar.pgbTaskProgress.Value = i;
+ this.statusBar.pgbTaskProgress.Text = i + "/" + shopInfoLst.Count;
+ this.statusBar.pgbTaskProgress.Maximum = shopInfoLst.Count;
+ i++;
+ }));
+ ShopBLL.MdyPDDWXServerShopSubInfo(shopInfo, saeForm.chkNotes.Checked, saeForm.chkShopGroup.Checked, saeForm.chkSubAccount.Checked);
+ }
+ RefreshDataGridView(false);
+ //btnRefreshCookie_Click(null, null);
+ }
+ Invoke(new Action(() =>
+ {
+ this.pbLoading.Visible = false;
+ this.statusBar.pgbTaskProgress.Text = "准备就绪";
+ }));
+ });
+ }
+ }
+
+ private void RefreshDataGridView(bool updateStatus=true, List shopUpdateLst = null)
+ {
+ if (isLoading)
+ {
+ //BaseMsgForm.ShowError("当前正在加载,请稍等");
+ return;
+ }
+
+ Task.Run(() =>
+ {
+ isLoading = true;
+ while (StartUp.IsShopInit == false)
+ {
+ Thread.Sleep(1000);
+ }
+
+ Invoke(new Action(() =>
+ {
+ cmbNotes.Items.Clear();
+ var notes = GlobalConfig.ShopLoginList.Select(s => s.Notes).Distinct();
+ cmbNotes.Items.AddRange(notes.Where(n => !n.IsNullOrEmpty()).ToArray());
+
+ cmbGroup.Items.Clear();
+ var groups = GlobalConfig.ShopLoginList.Select(s => s.GroupName).Distinct();
+ cmbGroup.Items.AddRange(groups.Where(n => !n.IsNullOrEmpty()).ToArray());
+ }));
+
+ var shopList = GlobalConfig.ShopLoginList.Where(s => !string.IsNullOrEmpty(s.ShopId)
+ || GlobalConfig.ShopLoginList.Where(ss=>ss.LoginName == s.LoginName).Count() == 1)
+ /*.OrderBy(s=>s.LoginName)*/.ToList();
+
+ Invoke(new Action(() =>
+ {
+ if (!string.IsNullOrWhiteSpace(cmbNotes.Text) && cmbNotes.Text.Trim() != "全部")
+ {
+ var notes = cmbNotes.Text.ToLower();
+ var notesLst = cmbNotes.Text.ToLower().Split(new string[] { ";", ";", ",", " " }, StringSplitOptions.RemoveEmptyEntries);
+ shopList = shopList.Where(s => s.Notes.ParseToString().ToLower().Contains(notes) || notesLst.Contains(s.Notes.ParseToString().ToLower())).ToList();
+ }
+ if (!string.IsNullOrWhiteSpace(cmbGroup.Text) && cmbGroup.Text.Trim() != "全部")
+ {
+ var group = cmbGroup.Text.ToLower();
+ var groupLst = cmbGroup.Text.ToLower().Split(new string[] { ";", ";", ",", " " }, StringSplitOptions.RemoveEmptyEntries);
+ shopList = shopList.Where(s => s.GroupName.ParseToString().ToLower().Contains(group) || groupLst.Contains(s.GroupName.ParseToString().ToLower())).ToList();
+ }
+ if (!string.IsNullOrEmpty(txtShopId.Text))
+ {
+ shopList = shopList.Where(s => s.ShopId.ParseToString().ToLower().Contains(txtShopId.Text.ToLower())).ToList();
+ }
+ if (!string.IsNullOrEmpty(txtShopName.Text))
+ {
+ shopList = shopList.Where(s => s.ShopAccount.ParseToString().ToLower().Contains(txtShopName.Text.ToLower()) ||
+ txtShopName.Text.ToLower().Split(new string[] { ",", ",", ";", ";", " " }, StringSplitOptions.RemoveEmptyEntries)
+ .Contains(s.ShopAccount.ParseToString().ToLower())).ToList();
+ }
+ }));
+
+ List shopIdList = GetCheckedShopIdList();
+ this.Invoke(new Action(() =>
+ {
+ var rows = dgvShop.Rows.Cast().ToList();
+ foreach (DataGridViewRow row in rows)
+ {
+ if (!shopList.Any(s => s.ShopId == row.Cells["colShopId"].Value.ParseToString()))
+ this.dgvShop.Rows.Remove(row);
+ }
+ if (updateStatus)
+ this.statusBar.pgbTaskProgress.Maximum = shopList.Count; // 显示总数
+ }));
+
+ for (int i = 0; i < shopList.Count; i++)
+ {
+ if (this.Created && updateStatus && (i % 5 == 0 || i == shopList.Count - 1))
+ {
+ this.Invoke(new Action(() =>
+ {
+ this.statusBar.lblTaskStatus.Text = "正在加载...";
+ this.statusBar.pgbTaskProgress.Value = (i + 1);
+ this.statusBar.pgbTaskProgress.Text = (i + 1) + "/" + shopList.Count;
+ }));
+ }
+
+ if (shopUpdateLst != null && !shopUpdateLst.Contains(shopList[i]))
+ continue;
+
+ AddDataGridViewRow(shopList[i], true, shopIdList.Contains(shopList[i].ShopId));
+ }
+ if (this.Created)
+ {
+ this.Invoke(new Action(() =>
+ {
+ if (updateStatus)
+ this.statusBar.lblTaskStatus.Text = "加载完毕";
+ this.pbLoading.Visible = false;
+ }));
+ }
+ isLoading = false;
+ });
+ }
+
+ private void AddDataGridViewRow(ShopLoginInfo param, bool isRefresh = false, bool isRowCheck = false)
+ {
+ if (!this.Created)
+ return;
+ this.Invoke(new Action(() =>
+ {
+ DataGridViewRow dgvr = dgvShop.Rows.Cast().Where(p =>
+ p.Cells.GetCellValueFromColumnName("colLoginName").ParseToString() == param.LoginName &&
+ p.Cells.GetCellValueFromColumnName("colShopId").ParseToString() == param.ShopId).FirstOrDefault();
+
+ var addressInfo = lstWXShopDefaultAddressInfo.FirstOrDefault(a => a.shop_id == param.ShopId);
+ if (addressInfo == null)
+ addressInfo = new WXShopDefaultAddressInfo();
+
+ if (dgvr != null)
+ {
+ UpdateDataGridViewRowToken(dgvr, param, addressInfo);
+ if (!isRefresh)
+ {
+ // help to scroll to checked
+ dgvShop.CurrentCell = dgvr.Cells[2];
+ }
+ }
+ else
+ {
+ var subUserNames = param.SubUserName.Split(',').Where(su => !string.IsNullOrEmpty(su));
+ var subUsers = WXSubAccountShopEditForm.lstAllSubAccount.Where(su => subUserNames.Contains(su.user_name));
+ int rowIndex = this.dgvShop.Rows.Add(
+ isRowCheck,
+ param.LoginName,
+ param.ShopId,
+ param.ShopAccount,
+ param.Notes,
+ param.GroupName,
+ addressInfo.province_name,
+ addressInfo.city_name,
+ addressInfo.county_name,
+ addressInfo.user_name,
+ addressInfo.tel_number,
+ addressInfo.detail_info,
+ "编辑",
+ "删除");
+ if (!isRefresh)
+ {
+ // help to scroll to latest checked
+ dgvShop.CurrentCell = this.dgvShop.Rows[rowIndex].Cells[2];
+ }
+ dgvr = this.dgvShop.Rows[rowIndex];
+ }
+ }));
+ }
+
+ private void UpdateDataGridViewRowToken(DataGridViewRow dgvr, ShopLoginInfo param, WXShopDefaultAddressInfo addressInfo)
+ {
+ if (dgvr == null || param == null)
+ return;
+
+ var subUserNames = param.SubUserName.Split(',').Where(su => !string.IsNullOrEmpty(su));
+ var subUsers = WXSubAccountShopEditForm.lstAllSubAccount.Where(su => subUserNames.Contains(su.user_name));
+ dgvr.Cells["colLoginName"].Value = param.LoginName;
+ dgvr.Cells["colShopAccount"].Value = param.ShopAccount;
+ dgvr.Cells["colNotes"].Value = param.Notes;
+ dgvr.Cells["colGroupName"].Value = param.GroupName;
+ dgvr.Cells["colProvinceName"].Value = addressInfo.province_name;
+ dgvr.Cells["colCityName"].Value = addressInfo.city_name;
+ dgvr.Cells["colCountyName"].Value = addressInfo.county_name;
+ dgvr.Cells["colUserName"].Value = addressInfo.user_name;
+ dgvr.Cells["colTelNumber"].Value = addressInfo.tel_number;
+ dgvr.Cells["colDetailInfo"].Value = addressInfo.detail_info;
+ }
+
+ private void ShopListForm_VisibleChanged(object sender, EventArgs e)
+ {
+ if (this.Visible == true)
+ {
+ this.pbLoading.Visible = true;
+ RefreshDataGridView(true);
+ }
+ }
+
+ private void ShopListForm_Load(object sender, EventArgs e)
+ {
+ if (BaseClass.GroupId != 3)
+ {
+ //this.dgvShop.Columns["ColEdit"].Visible = false;
+ this.dgvShop.Columns["colDelete"].Visible = false;
+ this.dgvShop.Columns["colSubUser"].Visible = false;
+ this.dgvShop.Columns["colSubUserAccount"].Visible = false;
+ }
+ if (BaseClass.UserAuthority.Contains("积分用户"))
+ this.dgvShop.Columns["colExpireTime"].Visible = true;
+
+ this.dgvShop.AddSelectorColumn("colSelect");
+ this.splitContainer2.FixedPanel = FixedPanel.Panel2;
+
+ foreach (var shop in GlobalConfig.ShopLoginList)
+ {
+ shop.ShopSubAccountList.Clear();
+ if (!string.IsNullOrWhiteSpace(shop.SubUserName))
+ {
+ ShopSubAccountInfo subAccount = new ShopSubAccountInfo();
+ subAccount.sub_user_name = shop.SubUserName;
+ subAccount.user_name = shop.SubUserName;
+ subAccount.shop_login_name = shop.LoginName;
+ subAccount.group_id = "4";
+ shop.ShopSubAccountList.Add(subAccount);
+ }
+ }
+
+ pbLoading.Visible = true;
+ Task.Run(() =>
+ {
+ WXSubAccountShopEditForm.GetServerSubUser();
+ GetShopDefaultAddress();
+ Invoke(new Action(() =>
+ {
+ RefreshDataGridView(false);
+ pbLoading.Visible = false;
+ }));
+ });
+ }
+
+ private void dgvShop_CellContentClick(object sender, DataGridViewCellEventArgs e)
+ {
+ if (e.ColumnIndex < 0 || e.RowIndex < 0)
+ return;
+ string headerText = dgvShop.Columns[e.ColumnIndex].HeaderText;
+ string loginName = dgvShop.Rows[e.RowIndex].Cells["colLoginName"].Value.ParseToString();
+ string accountId = dgvShop.Rows[e.RowIndex].Cells["colShopId"].Value.ParseToString();
+ var shop = GlobalConfig.ShopLoginList.FirstOrDefault(v => v.LoginName == loginName && v.ShopId == accountId);
+
+ switch (headerText)
+ {
+ case "进入店铺":
+ IsOperate = true;
+ {
+ WXShopLoginForm shopLoginForm = new WXShopLoginForm(shop);
+ shopLoginForm.openType = EnumOpenType.manage;
+ shopLoginForm.WindowState = FormWindowState.Maximized;
+ shopLoginForm.InitUrl = "https://store.weixin.qq.com/shop/home";
+ shopLoginForm.Show();
+ }
+ IsOperate = false;
+ break;
+ case "编辑":
+ WXShopAddEditForm editForm = new WXShopAddEditForm(new List { shop });
+ editForm.SaveCompleteWithDescribe += Sae_SaveComplete;
+ editForm.ShowDialog();
+ break;
+ default:
+ dgvShop.Rows[e.RowIndex].Cells["colSelect"].Value = !(bool)dgvShop.Rows[e.RowIndex].Cells["colSelect"].Value;
+ break;
+ }
+ }
+
+ private void DeleteShop(int rowIndex)
+ {
+ string shopLoginName = this.dgvShop.Rows[rowIndex].Cells["colLoginName"].Value.ParseToString();
+ List dgvRows = dgvShop.Rows.Cast().Where(p =>
+ p.Cells.GetCellValueFromColumnName("colLoginName").ParseToString() == shopLoginName).ToList();
+
+ foreach(var row in dgvRows)
+ dgvShop.Rows.Remove(row);
+ GlobalConfig.ShopLoginList.RemoveAll(v => v.LoginName == shopLoginName);
+ }
+
+ private void btnRefreshCookie_Click(object sender, EventArgs e)
+ {
+ this.pbLoading.Visible = true;
+ this.splitContainer1.Panel1.Enabled = false;
+ var t = Task.Run(() =>
+ {
+ try
+ {
+ WXShopListForm.UpdateShop();
+ WXSubAccountShopEditForm.GetServerSubUser();
+ GetShopDefaultAddress();
+ RefreshDataGridView(false);
+ }
+ catch (Exception ex) { BaseMsgForm.ShowError(ex.Message); }
+ });
+ Task.Run(() =>
+ {
+ while (true)
+ {
+ Thread.Sleep(1000);
+ if (t.IsCompleted || t.IsCanceled || t.IsFaulted)
+ {
+ Invoke(new Action(() =>
+ {
+ this.pbLoading.Visible = false;
+ this.splitContainer1.Panel1.Enabled = true;
+ }));
+ break;
+ }
+ }
+ });
+ }
+
+ void GetShopDefaultAddress()
+ {
+ lstWXShopDefaultAddressInfo.Clear();
+
+ var tmpShopLst = new List();
+ tmpShopLst.AddRange(GlobalConfig.ShopLoginList);
+
+ while (tmpShopLst.Count > 0)
+ {
+ var tmpLst = tmpShopLst.Take(50).ToList();
+ tmpShopLst.RemoveAll(s => tmpLst.Any(ss => ss.ShopId == s.ShopId));
+
+ var url = BaseClass.BuildObjString("product/wx_get_shop_default_after_sale_list");
+ var data = Work.UserLogin.GetSignaturex() + "&shop_ids=" + string.Join(",", tmpLst.Select(t => t.ShopId));
+ var html = GetHtml.PostUtf8(url, data);
+ if (!html.Contains("\"code\":200"))
+ html = GetHtml.PostUtf8(url, data);
+ if (!html.Contains("\"code\":200"))
+ {
+ var errMsg = BaseRegex.GetStringJson(ref html, "msg");
+ if (errMsg.IsNullOrEmpty())
+ errMsg = html;
+ foreach (var shop in tmpLst)
+ {
+ //var rows = dgvShop.Rows.Cast().Where(r => r.Cells["colShopId"].Value.ParseToString() == shop.ShopId).ToList();
+ //Invoke(new Action(() =>
+ //{
+ // foreach (var row in rows)
+ // {
+ // row.Cells["colDetailInfo"].Value = "地址信息查询失败:" + html;
+ // }
+ //}));
+ lstWXShopDefaultAddressInfo.Add(new WXShopDefaultAddressInfo() { user_id = shop.UserName, shop_id = shop.ShopId, detail_info = "地址信息查询失败:" + html });
+ }
+ continue;
+ }
+
+ var jsonObj = JsonHelper.JObjectParse(html)["data"];
+ var lst = JsonHelper.DeserializeJsonToList(JsonHelper.SerializeObject(jsonObj));
+ lstWXShopDefaultAddressInfo.AddRange(lst);
+ }
+ }
+
+ private List GetCheckedList()
+ {
+ List shopNameList = new List();
+ for (int i = 0; i < dgvShop.Rows.Count; i++)
+ {
+ if (dgvShop.Rows[i].Cells["colSelect"].Value.ParseToBool())
+ {
+ string shopName = dgvShop.Rows[i].Cells["colLoginName"].Value.ParseToString();
+ shopNameList.Add(shopName);
+ }
+ }
+ return shopNameList;
+ }
+
+ private List GetCheckedShopIdList()
+ {
+ List shopNameList = new List();
+ for (int i = 0; i < dgvShop.Rows.Count; i++)
+ {
+ if (dgvShop.Rows[i].Cells["colSelect"].Value.ParseToBool())
+ {
+ string shopName = dgvShop.Rows[i].Cells["colShopId"].Value.ParseToString();
+ shopNameList.Add(shopName);
+ }
+ }
+ return shopNameList;
+ }
+
+
+ private void btnSearch_Click(object sender, EventArgs e)
+ {
+ Task.Run(() =>
+ {
+ RefreshDataGridView(false);
+ });
+ }
+
+ private void btnEmpty_Click(object sender, EventArgs e)
+ {
+ this.cmbNotes.Text = "全部";
+ this.cmbGroup.Text = "全部";
+ this.txtShopId.Text = "";
+ this.txtShopName.Text = "";
+ }
+
+ private void btnOpenOrder_Click(object sender, EventArgs e)
+ {
+ ShopLoginInfo shop = NaiBa.Util.Helper.ConfigHelper.LoadConfig("wx_dian_tong_ling_login_info");
+ if (shop == null)
+ shop = new ShopLoginInfo();
+ WXShopLoginForm shopLoginForm = new WXShopLoginForm(shop);
+ shopLoginForm.openType = EnumOpenType.manage;
+ shopLoginForm.WindowState = FormWindowState.Maximized;
+ shopLoginForm.txtUserName.ReadOnly = false;
+ shopLoginForm.txtPassWord.ReadOnly = false;
+ shopLoginForm.btnSaveUserInfo.Visible = true;
+ shopLoginForm.InitUrl = "https://po.e57.cn/login?redirect=%2Findex";
+ shopLoginForm.Show();
+ }
+
+ private void btnEdit_Click(object sender, EventArgs e)
+ {
+ List shopNameList = GetCheckedList();
+ List shops = GlobalConfig.ShopLoginList.Where(s => shopNameList.Contains(s.ShopId)).ToList();
+ WXShopAddEditForm editForm = new WXShopAddEditForm(shops);
+ editForm.chkSubAccount.Checked = editForm.chkShopGroup.Checked = editForm.chkNotes.Checked = false;
+ editForm.SaveCompleteWithDescribe += Sae_SaveComplete;
+ editForm.ShowDialog();
+ }
+ }
+}
diff --git a/TEMUKJD/WXForms/ShopForms/WXShopAfterSaleAddressListForm.resx b/TEMUKJD/WXForms/ShopForms/WXShopAfterSaleAddressListForm.resx
new file mode 100644
index 0000000..b45a7bc
--- /dev/null
+++ b/TEMUKJD/WXForms/ShopForms/WXShopAfterSaleAddressListForm.resx
@@ -0,0 +1,162 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ text/microsoft-resx
+
+
+ 2.0
+
+
+ System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ True
+
+
+ True
+
+
+ True
+
+
+ True
+
+
+ True
+
+
+ True
+
+
+ True
+
+
+ True
+
+
+ True
+
+
+ True
+
+
+ True
+
+
+ True
+
+
+ True
+
+
+ True
+
+
\ No newline at end of file
diff --git a/TEMUKJD/WXForms/ShopForms/WXShopForm.Designer.cs b/TEMUKJD/WXForms/ShopForms/WXShopForm.Designer.cs
index 9bfa055..708de1e 100644
--- a/TEMUKJD/WXForms/ShopForms/WXShopForm.Designer.cs
+++ b/TEMUKJD/WXForms/ShopForms/WXShopForm.Designer.cs
@@ -30,13 +30,15 @@
{
System.Windows.Forms.TreeNode treeNode1 = new System.Windows.Forms.TreeNode("店铺列表");
System.Windows.Forms.TreeNode treeNode2 = new System.Windows.Forms.TreeNode("子账号管理");
- System.Windows.Forms.TreeNode treeNode3 = new System.Windows.Forms.TreeNode("店铺经营统计");
- System.Windows.Forms.TreeNode treeNode4 = new System.Windows.Forms.TreeNode("评分考核");
- System.Windows.Forms.TreeNode treeNode5 = new System.Windows.Forms.TreeNode("店铺管理", new System.Windows.Forms.TreeNode[] {
+ System.Windows.Forms.TreeNode treeNode3 = new System.Windows.Forms.TreeNode("默认地址管理");
+ System.Windows.Forms.TreeNode treeNode4 = new System.Windows.Forms.TreeNode("店铺经营统计");
+ System.Windows.Forms.TreeNode treeNode5 = new System.Windows.Forms.TreeNode("评分考核");
+ System.Windows.Forms.TreeNode treeNode6 = new System.Windows.Forms.TreeNode("店铺管理", new System.Windows.Forms.TreeNode[] {
treeNode1,
treeNode2,
treeNode3,
- treeNode4});
+ treeNode4,
+ treeNode5});
this.panel1 = new System.Windows.Forms.Panel();
this.panel3 = new System.Windows.Forms.Panel();
this.panel2 = new System.Windows.Forms.Panel();
@@ -131,14 +133,16 @@
treeNode1.Text = "店铺列表";
treeNode2.Name = "子账号管理";
treeNode2.Text = "子账号管理";
- treeNode3.Name = "店铺经营统计";
- treeNode3.Text = "店铺经营统计";
- treeNode4.Name = "评分考核";
- treeNode4.Text = "评分考核";
- treeNode5.Name = "店铺管理";
- treeNode5.Text = "店铺管理";
+ treeNode3.Name = "默认地址管理";
+ treeNode3.Text = "默认地址管理";
+ treeNode4.Name = "店铺经营统计";
+ treeNode4.Text = "店铺经营统计";
+ treeNode5.Name = "评分考核";
+ treeNode5.Text = "评分考核";
+ treeNode6.Name = "店铺管理";
+ treeNode6.Text = "店铺管理";
this.tv.Nodes.AddRange(new System.Windows.Forms.TreeNode[] {
- treeNode5});
+ treeNode6});
this.tv.OverForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(235)))), ((int)(((byte)(235)))), ((int)(((byte)(235)))));
this.tv.Size = new System.Drawing.Size(140, 461);
this.tv.TabIndex = 1;
diff --git a/TEMUKJD/WXForms/ShopForms/WXShopForm.cs b/TEMUKJD/WXForms/ShopForms/WXShopForm.cs
index 8331dd3..da81f7f 100644
--- a/TEMUKJD/WXForms/ShopForms/WXShopForm.cs
+++ b/TEMUKJD/WXForms/ShopForms/WXShopForm.cs
@@ -23,6 +23,7 @@ namespace TemuKJD.WXForms.ShopForms
public Lazy sbuAccountForm = new Lazy();
public Lazy shopStatisticsForm = new Lazy();
public Lazy shopOptimizeForm = new Lazy();
+ public Lazy shopAfterSaleAddressListForm = new Lazy();
public WXShopForm()
@@ -34,13 +35,17 @@ namespace TemuKJD.WXForms.ShopForms
tv.SelectedNode = tv.Nodes[0].Nodes[0];
tv.ExpandGroup(tv.Nodes[0].Name);
- List hideName = new List() { "评分考核", "子账号管理", "高级运费模板", "运费模板", "素材库管理", "订单金额统计", "工作明细统计", "店铺经营统计1" };
+ List hideName = new List() { "默认地址管理", "评分考核", "子账号管理", "高级运费模板", "运费模板", "素材库管理", "订单金额统计", "工作明细统计", "店铺经营统计1" };
if (BaseClass.GroupId == 3)
{
hideName.Remove("子账号管理");
hideName.Remove("评分考核");
}
+ if (BaseClass.SaLevel ==1)
+ {
+ //hideName.Remove("默认地址管理");
+ }
foreach (var item in hideName)
{
@@ -74,6 +79,9 @@ namespace TemuKJD.WXForms.ShopForms
case "店铺经营统计":
SetForm(shopStatisticsForm.Value);
break;
+ case "默认地址管理":
+ SetForm(shopAfterSaleAddressListForm.Value);
+ break;
case "评分考核":
SetForm(shopOptimizeForm.Value);
break;
diff --git a/TEMUKJD/WXForms/TalkForms/BuyerOrderListForm.cs b/TEMUKJD/WXForms/TalkForms/BuyerOrderListForm.cs
index e2b5c60..e6e306c 100644
--- a/TEMUKJD/WXForms/TalkForms/BuyerOrderListForm.cs
+++ b/TEMUKJD/WXForms/TalkForms/BuyerOrderListForm.cs
@@ -1288,9 +1288,14 @@ namespace TemuKJD.WXForms.TalkForms
dgvPddBuyerOrder.Rows[e.RowIndex].Cells["colCheck"].Value = !(bool)dgvPddBuyerOrder.Rows[e.RowIndex].Cells["colCheck"].Value;
break;
case "发送":
+ if (tempWaitOrderLst.Any(o => o.order_sn == order.order_sn))
+ return;
Task.Run(() =>
{
- SendOrderE57(order, true);
+ if (1 == 1)
+ SendOrderE57(order, true);
+ else // 测试用
+ SendOrderE57(order);
});
break;
case "退货":
@@ -1306,17 +1311,28 @@ namespace TemuKJD.WXForms.TalkForms
}
}
- bool isSendOrderE57 = false;
+ ConcurrentList tempWaitOrderLst = new ConcurrentList();
+ //bool isSendOrderE57 = false;
public void SendOrderE57(PddBuyerOrderInfoLite order, bool resetSendStatus = false)
{
- if (resetSendStatus == true)
+ //if (resetSendStatus == true)
+ //{
+ // // 防止重复点击发送按钮
+ // if (isSendOrderE57)
+ // return;
+ // isSendOrderE57 = true;
+ // Task.Run(() => { Thread.Sleep(3000); isSendOrderE57 = false; });
+ //}
+
+ if (tempWaitOrderLst.Any(o => o.order_sn == order.order_sn))
+ return;
+ tempWaitOrderLst.Add(order);
+ Task.Run(() =>
{
- // 防止重复点击发送按钮
- if (isSendOrderE57)
- return;
- isSendOrderE57 = true;
- Task.Run(() => { Thread.Sleep(2500); isSendOrderE57 = false; });
- }
+ var orderSn = order.order_sn;
+ Thread.Sleep(5000);
+ tempWaitOrderLst.RemoveAll(o => o.order_sn == orderSn);
+ });
if (order == null)
return;
@@ -1333,9 +1349,9 @@ namespace TemuKJD.WXForms.TalkForms
// 已发货且没有运单号的属于已退货,不再发送
if (order.order_status_prompt != "拼单成功,待发货" && order.order_status_prompt != "免拼成功,待发货" && (
order.order_status_prompt.Contains("交易成功") ||
- order.order_status_prompt.Contains("退款成功") ||
+ //order.order_status_prompt.Contains("退款成功") ||
+ //order.after_sales != null ||
order.order_status_prompt.Contains("交易已取消") ||
- order.after_sales != null ||
string.IsNullOrEmpty(order.tracking_number) ||
string.IsNullOrEmpty(order.outExpressCompanyCode)))
{
@@ -1349,6 +1365,8 @@ namespace TemuKJD.WXForms.TalkForms
// 外采订单已发货的订单不再尝试发货
//if (order.sendStatus == "已发送")
// return;
+ // 微信发货成功,外采订单已发货, orderNo:260429-064214802032823
+ // 外采订单已发货, orderNo:260429-438189442672823
if (order.sendStatus.Contains("外采订单已发货") || order.sendStatus.Contains("更新外采订单微信发货成功"))
{
Invoke(new Action(() =>
@@ -1363,8 +1381,11 @@ namespace TemuKJD.WXForms.TalkForms
obj["outAmount"] = order.order_amount;
obj["outAccount"] = order.buyerName;
obj["outOrderNo"] = order.order_sn;
- obj["outExpressCompany"] = order.outExpressCompanyCode;
- obj["outExpressNo"] = order.tracking_number;
+ if (!order.outExpressCompanyCode.IsNullOrEmpty() && !order.tracking_number.IsNullOrEmpty())
+ {
+ obj["outExpressCompany"] = order.outExpressCompanyCode;
+ obj["outExpressNo"] = order.tracking_number;
+ }
var dataStr = JsonHelper.SerializeObject(obj);
string url = "https://po.e57.cn/prod-api/api/oms-api/external_procurement/bind";
//成功 "0SUCCESS"
@@ -1373,7 +1394,7 @@ namespace TemuKJD.WXForms.TalkForms
var exportRst = WXHttpResponseBLL.e57PostResponse(url, dataStr, "");
for (int i = 0; i < 5 && exportRst.Contains("操作超时"); i++)
{
- Thread.Sleep(3000);
+ Thread.Sleep(10000);
WXHttpResponseBLL.e57PostResponse(url, dataStr, "");
}
if (exportRst.Contains("操作超时"))
@@ -1388,15 +1409,27 @@ namespace TemuKJD.WXForms.TalkForms
}
// exportRst.Contains("已存在") || exportRst.Contains("同运单号拦截") || exportRst.Contains("订单已绑定外采订单")
System.Xml.XmlDocument xmlDoc = new System.Xml.XmlDocument();
- xmlDoc.LoadXml(exportRst); //1505不支持的平台类型: WEISHOP
- string msg = xmlDoc["ResultVo"]["msg"].InnerText;
- string data = xmlDoc["ResultVo"]["data"].InnerText;
- string code = xmlDoc["ResultVo"]["code"].InnerText;
+ string msg = "";
+ string data = "";
+ string code = "";
+ try
+ {
+ xmlDoc.LoadXml(exportRst); //1505不支持的平台类型: WEISHOP
+ msg = xmlDoc["ResultVo"]["msg"].InnerText;
+ data = xmlDoc["ResultVo"]["data"].InnerText;
+ code = xmlDoc["ResultVo"]["code"].InnerText;
+ }
+ catch
+ {
+ msg = exportRst.ParseToString();
+ }
if (code == "0" || msg == "SUCCESS") //if (msg == "SUCCESS")
{
order.sendStatus = string.IsNullOrEmpty(data) ? msg : data;
if (order.sendStatus == "更新微信外采订单状态成功")
order.sendStatus = "已发送";
+ if (order.sendStatus == "处理完成" || order.sendStatus == "快递公司和快递单号必须同时提供或同时为空")
+ order.sendStatus = "已发送完成";
NaiBa.Util.Helper.ConfigHelper.SaveConfig("pdd_buyer_order_list", lstPddBuyerOrderInfoLite);
}
else
@@ -1568,9 +1601,10 @@ namespace TemuKJD.WXForms.TalkForms
var exportRst = WXHttpResponseBLL.e57PostResponse(url, dataStr, "");
for (int i = 0; i < 5 && exportRst.Contains("操作超时"); i++)
{
- Thread.Sleep(2000);
+ Thread.Sleep(5000);
WXHttpResponseBLL.e57PostResponse(url, dataStr, "");
}
+
if (exportRst.Contains("SUCCESS") || exportRst.Contains("更新外采订单的售后成功") /*|| exportRst.Contains("已存在") || exportRst.Contains("同运单号拦截") || exportRst.Contains("订单已绑定外采订单")*/)
{
afterSale.sendStatus = "发送成功";