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 = "发送成功";