From b4ec400796e69160d8b3ff5e311cb16aa2dbc123 Mon Sep 17 00:00:00 2001 From: wule Date: Tue, 28 Jul 2026 21:12:07 +0800 Subject: [PATCH] =?UTF-8?q?1=E6=9C=8D=E5=8A=A1=E5=8A=9F=E8=83=BD=202?= =?UTF-8?q?=E7=94=A8=E6=88=B7=E5=95=86=E5=93=81=E5=A4=87=E6=B3=A8=E5=B9=B6?= =?UTF-8?q?=E6=94=AF=E6=8C=81=E4=B8=8B=E6=8B=89=E6=A1=86=E6=98=BE=E7=A4=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- AllBase/BaseClass.cs | 2 +- .../BLL/BXX/BXXProductManage.cs | 193 +++++++ .../KJD_WebService/BLL/WXXD/WXOrderManage.cs | 509 +++++++++++++++++- .../KJD_WebService/BXXProductService.asmx.cs | 36 ++ .../KJD_WebService/KJD_WebService.csproj | 2 + .../Model/WxModel/order_item_ext.cs | 26 + .../WxModel/order_pdd_buyer_after_sale.cs | 29 + .../Model/WxModel/order_pdd_buyer_order.cs | 1 + .../KJD_WebService/WXOrderService.asmx.cs | 61 +++ TEMUKJD/KJD.csproj | 10 + .../PDDDBProdGroupManageFrom.Designer.cs | 72 +-- .../ProductSelectForms/PDDDBProdListForm.cs | 40 ++ .../PDDDBProdNotesManageFrom.Designer.cs | 316 +++++++++++ .../PDDDBProdNotesManageFrom.cs | 164 ++++++ .../PDDDBProdNotesManageFrom.resx | 310 +++++++++++ .../ProductSelectForms/UcAddPrice.Designer.cs | 28 +- TEMUKJD/Properties/Resources.Designer.cs | 10 + TEMUKJD/Properties/Resources.resx | 3 + TEMUKJD/Resources/empty_book_900_1200.jpg | Bin 0 -> 82870 bytes .../WXAdminAccountBalanceForm.Designer.cs | 98 +++- .../AdminForms/WXAdminAccountBalanceForm.cs | 30 +- TEMUKJD/WXForms/AiTalkForms/WxAiTalkForm.cs | 35 +- .../WXDBProdUploadForm.Designer.cs | 427 ++++++++------- .../ProductForms/WXDBProdUploadForm.cs | 380 +++++++++---- .../WXProdPreSaleForm.Designer.cs | 17 +- .../WXForms/ProductForms/WXProdPreSaleForm.cs | 5 +- .../WXUserCollectAuthProdListForm.Designer.cs | 236 ++++---- .../WXUserCollectAuthProdListForm.cs | 79 ++- .../ShopForms/WXGetTopUpQrCode.Designer.cs | 2 +- TEMUKJD/WXForms/ShopForms/WXGetTopUpQrCode.cs | 13 + .../WXForms/ShopForms/WXShopForm.Designer.cs | 6 +- TEMUKJD/WXForms/ShopForms/WXShopForm.cs | 6 +- .../WXForms/ShopForms/WXSubAccountListForm.cs | 2 +- 33 files changed, 2597 insertions(+), 551 deletions(-) create mode 100644 KJDService/KJD_WebService/Model/WxModel/order_item_ext.cs create mode 100644 KJDService/KJD_WebService/Model/WxModel/order_pdd_buyer_after_sale.cs create mode 100644 TEMUKJD/PDDForms/ProductSelectForms/PDDDBProdNotesManageFrom.Designer.cs create mode 100644 TEMUKJD/PDDForms/ProductSelectForms/PDDDBProdNotesManageFrom.cs create mode 100644 TEMUKJD/PDDForms/ProductSelectForms/PDDDBProdNotesManageFrom.resx create mode 100644 TEMUKJD/Resources/empty_book_900_1200.jpg diff --git a/AllBase/BaseClass.cs b/AllBase/BaseClass.cs index cca726a..8dd1e06 100644 --- a/AllBase/BaseClass.cs +++ b/AllBase/BaseClass.cs @@ -31,7 +31,7 @@ namespace AllBase /// /// 版本ID /// - public static int VersionCount = 1250; + public static int VersionCount = 1256; public static string MainPath = "29wx"; //public static string MainPath = "29wx"; //public static string MainPath = "29pdd"; diff --git a/KJDService/KJD_WebService/BLL/BXX/BXXProductManage.cs b/KJDService/KJD_WebService/BLL/BXX/BXXProductManage.cs index e383073..db25511 100644 --- a/KJDService/KJD_WebService/BLL/BXX/BXXProductManage.cs +++ b/KJDService/KJD_WebService/BLL/BXX/BXXProductManage.cs @@ -1562,6 +1562,193 @@ namespace KJD_Web.BLL.BXX return "{\"code\":19999,\"msg\":\"输入为空\"}"; } + public string GetProductNotes(string inputData) + { + if (!string.IsNullOrEmpty(inputData)) + { + var time = RegexUtils.GetStringQuery(ref inputData, "time").ParseToInt(); + string time1 = RegexUtils.GetStringQuery(ref inputData, "code"); + if (time1 != EncrypUtil.Encryption(time)) + return "{\"code\":50000,\"msg\":\"校验失败\"}"; + + var user_name = RegexUtils.GetStringQuery(ref inputData, "user_name")?.Replace("'", "\\'"); + if (string.IsNullOrEmpty(user_name)) + { + return "{\"code\":50001,\"msg\":\"没有用户名\"}"; + } + + int page = RegexUtils.GetStringQuery(ref inputData, "page").ParseToInt(); + int page_size = RegexUtils.GetStringQuery(ref inputData, "page_size").ParseToInt(200); + var add_user_name = RegexUtils.GetStringQuery(ref inputData, "add_user_name")?.Replace("'", "\\'"); + var is_get_detail = RegexUtils.GetStringQuery(ref inputData, "is_get_detail") == "true"; + + string conn = System.Configuration.ConfigurationManager.ConnectionStrings["ConnKJD"].ConnectionString; + MysqlUtils mySql = new MysqlUtils(conn); + + string sql = "SELECT p.* FROM `bxx`.`product_notes` p where 1=1 "; + string where = ""; + if (!string.IsNullOrEmpty(add_user_name)) + { + add_user_name = "'" + string.Join("','", add_user_name.Split(new string[] { ",", ",", " " }, StringSplitOptions.RemoveEmptyEntries)) + "'"; + where += " and p.add_user_name in (" + add_user_name + ")"; + } + else + { + where += " and p.add_user_name='admin'"; + } + sql += where; + sql += " ORDER BY id DESC"; + + var dt = mySql.ExecuteDataTable(sql); + mySql.Close(); + + if (dt != null) + { + try + { + JArray notesArr = new JArray(); + string notes_data = ""; + foreach (DataRow row in dt.Rows) + { + notes_data += row["notes"].ToString() + ","; + + if (is_get_detail) + { + JObject notesObj = new JObject(); + notesObj["id"] = row["id"].ParseToLong(); + notesObj["notes"] = row["notes"].ParseToString(); + notesObj["add_user_name"] = row["add_user_name"].ParseToString(); + notesArr.Add(notesObj); + } + } + var data = notes_data.Trim(','); + return "{\"code\":200,\"msg\":\"success\",\"data\":\"" + data + "\",\"notes\":" + JsonUtils.SerializeObject(notesArr) + "}"; + } + catch (Exception ex) + { + return "{\"code\":50002,\"msg\":\"" + ex.Message + "\",\"data\":\"\"}"; + } + } + else + { + return "{\"code\":50003,\"msg\":\"" + mySql.Message + "\",\"data\":\"\"}"; + } + } + return "{\"code\":19999,\"msg\":\"输入为空\"}"; + } + + public string AddProductNotes(string inputData) + { + if (!string.IsNullOrEmpty(inputData)) + { + var time = RegexUtils.GetStringQuery(ref inputData, "time").ParseToInt(); + string time1 = RegexUtils.GetStringQuery(ref inputData, "code"); + if (time1 != EncrypUtil.Encryption(time)) + return "{\"code\":50000,\"msg\":\"校验失败\"}"; + + var user_name = RegexUtils.GetStringQuery(ref inputData, "user_name")?.Replace("'", "\\'"); + if (string.IsNullOrEmpty(user_name)) + { + return "{\"code\":50001,\"msg\":\"没有用户名\"}"; + } + + var add_user_name = RegexUtils.GetStringQuery(ref inputData, "add_user_name")?.Replace("'", "\\'"); + if (string.IsNullOrEmpty(add_user_name)) + { + add_user_name = "admin"; + } + var notes = RegexUtils.GetStringQuery(ref inputData, "notes")?.Replace("'", "\\'"); + if (string.IsNullOrEmpty(notes)) + { + return "{\"code\":500,\"msg\":\"未指定要新增的组\"}"; + } + + string conn = System.Configuration.ConfigurationManager.ConnectionStrings["ConnKJD"].ConnectionString; + MysqlUtils mySql = new MysqlUtils(conn); + + string sql = "INSERT IGNORE INTO `bxx`.`product_notes` (notes,add_user_name) VALUES ('" + notes + "','" + add_user_name + "')"; + + var add_rows = mySql.ExecuteAffectedRows(sql); + mySql.Close(); + + if (string.IsNullOrEmpty(mySql.Message)) + { + return "{\"code\":200,\"msg\":\"success\", \"add_rows\":" + add_rows + "}"; + } + else + { + return "{\"code\":50003,\"msg\":\"" + mySql.Message + "\",\"data\":\"\"}"; + } + } + return "{\"code\":19999,\"msg\":\"输入为空\"}"; + } + + public string DelProductNotes(string inputData) + { + if (!string.IsNullOrEmpty(inputData)) + { + var time = RegexUtils.GetStringQuery(ref inputData, "time").ParseToInt(); + string time1 = RegexUtils.GetStringQuery(ref inputData, "code"); + if (time1 != EncrypUtil.Encryption(time)) + return "{\"code\":50000,\"msg\":\"校验失败\"}"; + + var user_name = RegexUtils.GetStringQuery(ref inputData, "user_name")?.Replace("'", "\\'"); + if (string.IsNullOrEmpty(user_name)) + { + return "{\"code\":50001,\"msg\":\"没有用户名\"}"; + } + + var add_user_name = RegexUtils.GetStringQuery(ref inputData, "add_user_name")?.Replace("'", "\\'"); + if (string.IsNullOrEmpty(add_user_name)) + { + add_user_name = "admin"; + } + var id = RegexUtils.GetStringQuery(ref inputData, "notes_id")?.Replace("'", "\\'"); + var notes = RegexUtils.GetStringQuery(ref inputData, "notes")?.Replace("'", "\\'"); + if (string.IsNullOrEmpty(id) && string.IsNullOrEmpty(notes)) + { + return "{\"code\":500,\"msg\":\"未指定要删除的组\"}"; + } + + string conn = System.Configuration.ConfigurationManager.ConnectionStrings["ConnKJD"].ConnectionString; + MysqlUtils mySql = new MysqlUtils(conn); + + string sql = "DELETE FROM `bxx`.`product_notes` p where 1=1"; + + string where = ""; + if (!string.IsNullOrEmpty(id)) + { + id = "" + string.Join(",", id.Split(new string[] { ",", ",", " " }, StringSplitOptions.RemoveEmptyEntries)) + ""; + where += " and p.id in (" + id + ")"; + } + if (!string.IsNullOrEmpty(notes)) + { + notes = "'" + string.Join("','", notes.Split(new string[] { ",", ",", " " }, StringSplitOptions.RemoveEmptyEntries)) + "'"; + where += " and p.notes in (" + notes + ")"; + } + if (!string.IsNullOrEmpty(add_user_name)) + { + add_user_name = "'" + string.Join("','", add_user_name.Split(new string[] { ",", ",", " " }, StringSplitOptions.RemoveEmptyEntries)) + "'"; + where += " and p.add_user_name in (" + add_user_name + ")"; + } + sql += where; + + var del_rows = mySql.ExecuteAffectedRows(sql); + mySql.Close(); + + if (string.IsNullOrEmpty(mySql.Message)) + { + return "{\"code\":200,\"msg\":\"success\", \"del_rows\":" + del_rows + "}"; + } + else + { + return "{\"code\":50003,\"msg\":\"" + mySql.Message + "\",\"data\":\"\"}"; + } + } + return "{\"code\":19999,\"msg\":\"输入为空\"}"; + } + + public string GetProductCates(string inputData) { return "{\"code\":19999,\"msg\":\"接口废弃\"}"; @@ -1706,6 +1893,7 @@ namespace KJD_Web.BLL.BXX var in_spu_ids = RegexUtils.GetStringQuery(ref inputData, "in_spu_ids")?.Replace("'", "\\'"); var in_skc_ids = RegexUtils.GetStringQuery(ref inputData, "in_skc_ids")?.Replace("'", "\\'"); var in_groups = RegexUtils.GetStringQuery(ref inputData, "in_groups")?.Replace("'", "\\'"); + var in_notes = RegexUtils.GetStringQuery(ref inputData, "in_notes")?.Replace("'", "\\'"); var product_name = HtmlUtils.UrlDecodeUtf8(RegexUtils.GetStringQuery(ref inputData, "product_name"))?.Replace("'", "\\'"); var in_cates = RegexUtils.GetStringQuery(ref inputData, "in_cates")?.Replace("'", "\\'"); var wx_cat_1 = RegexUtils.GetStringQuery(ref inputData, "wx_cat_1")?.Replace("'", "\\'"); @@ -1775,6 +1963,11 @@ namespace KJD_Web.BLL.BXX in_groups = "'" + string.Join("','", in_groups.Split(new string[] { ",", ",", " " }, StringSplitOptions.RemoveEmptyEntries)) + "'"; where += " and p.group in (" + in_groups + ")"; } + if (!string.IsNullOrEmpty(in_notes)) + { + in_notes = "'" + string.Join("','", in_notes.Split(new string[] { ",", ",", " " }, StringSplitOptions.RemoveEmptyEntries)) + "'"; + where += " and p.notes in (" + in_notes + ")"; + } if (!string.IsNullOrEmpty(in_cates)) { in_cates = "'" + string.Join("','", in_cates.Split(new string[] { ",", ",", " " }, StringSplitOptions.RemoveEmptyEntries)) + "'"; diff --git a/KJDService/KJD_WebService/BLL/WXXD/WXOrderManage.cs b/KJDService/KJD_WebService/BLL/WXXD/WXOrderManage.cs index 07f0064..970dc34 100644 --- a/KJDService/KJD_WebService/BLL/WXXD/WXOrderManage.cs +++ b/KJDService/KJD_WebService/BLL/WXXD/WXOrderManage.cs @@ -18,10 +18,9 @@ namespace KJD_Web.BLL.WXXD { if (!string.IsNullOrEmpty(inputData)) { - var time = RegexUtils.GetStringQuery(ref inputData, "time").ParseToInt(); - string time1 = RegexUtils.GetStringQuery(ref inputData, "code"); - if (time1 != EncrypUtil.Encryption(time)) - return "{\"code\":50000,\"msg\":\"校验失败\"}"; + if (!WXUserManage.GetSign(inputData)) + return "{\"code\":999,\"msg\":\"校验失败\"}"; + var timeCalc = DateTime.Now; var erp_shop_id_in = RegexUtils.GetStringQuery(ref inputData, "erp_shop_id_in")?.Replace("'", "\\'"); var erp_order_id_in = RegexUtils.GetStringQuery(ref inputData, "erp_order_id_in")?.Replace("'", "\\'"); @@ -54,9 +53,9 @@ namespace KJD_Web.BLL.WXXD if (!string.IsNullOrWhiteSpace(purchase_status)) where += " and o.purchase_status = " + purchase_status; if (start_time > 0) - where += " and o.create_time >= " + start_time; + where += " and o.update_time >= " + start_time; if (end_time > 0) - where += " and o.create_time <= " + end_time; + where += " and o.update_time <= " + end_time; sql += where; var count = 0; @@ -70,9 +69,7 @@ namespace KJD_Web.BLL.WXXD } else { - sql = "SELECT o.* FROM" + - " erp.oms_wei_order o " + - " WHERE 1=1"; + sql = "SELECT o.* FROM erp.oms_wei_order o WHERE 1=1"; //where子句 sql += where; @@ -167,7 +164,8 @@ namespace KJD_Web.BLL.WXXD } JsonSerializerSettings jsonSetting = new JsonSerializerSettings { NullValueHandling = NullValueHandling.Ignore }; var data = JsonUtils.SerializeObjectToString(orderList, jsonSetting); - return "{\"code\":200,\"msg\":\"success\",\"data\":" + data + ",\"count\":" + count + "}"; + var seconds = (DateTime.Now - timeCalc).TotalSeconds.ToString("0.000"); + return "{\"code\":200,\"msg\":\"success\",\"data\":" + data + ",\"count\":" + count + ",\"seconds\":" + seconds + "}"; } catch (Exception ex) { @@ -226,9 +224,7 @@ namespace KJD_Web.BLL.WXXD } else { - sql = "SELECT o.* FROM" + - " erp.oms_wei_order_item o " + - " WHERE 1=1"; + sql = "SELECT o.* FROM erp.oms_wei_order_item o WHERE 1=1"; //where子句 sql += where; @@ -695,7 +691,7 @@ namespace KJD_Web.BLL.WXXD // 客戶端查兩次 //if (is_admin == "true") //{ - // sql = "SELECT e.*,o.create_time as order_create_time FROM `erp`.`oms_wei_external_procurement_log` e LEFT JOIN `erp`.`oms_wei_order` ON e.order_no = o.order_id WHERE 1=1"; + // sql = "SELECT e.*,o.create_time as order_create_time FROM erp.oms_wei_external_procurement_log e LEFT JOIN erp.oms_wei_order ON e.order_no = o.order_id WHERE 1=1"; // sql += where; // sql += " order by id desc limit " + Math.Max(0, page - 1) * page_size + "," + page_size + ";"; //} @@ -928,7 +924,7 @@ namespace KJD_Web.BLL.WXXD string sql = ""; var count = -1; - sql = " update `erp`.`oms_wei_order` set "; + sql = " update erp.oms_wei_order set "; if (soft_remark != null) sql += " soft_remark='" + soft_remark + "',"; sql = sql.TrimEnd(','); @@ -968,6 +964,9 @@ namespace KJD_Web.BLL.WXXD string order_status_prompt = HtmlUtils.UrlDecodeUtf8(RegexUtils.GetStringQuery(ref inputData, "order_status_prompt"))?.Replace("'", "\\'"); string after_sales_status = HtmlUtils.UrlDecodeUtf8(RegexUtils.GetStringQuery(ref inputData, "after_sales_status"))?.Replace("'", "\\'"); string order_detail = HtmlUtils.UrlDecodeUtf8(RegexUtils.GetStringQuery(ref inputData, "order_detail"))?.Replace("'", "\\'"); + string wx_order_send_type = HtmlUtils.UrlDecodeUtf8(RegexUtils.GetStringQuery(ref inputData, "wx_order_send_type"))?.Replace("'", "\\'"); + if (string.IsNullOrEmpty(wx_order_send_type)) + wx_order_send_type = "1"; if (string.IsNullOrEmpty(wx_order_id) || string.IsNullOrEmpty(pdd_order_sn)) return "{\"code\":500,\"msg\":\"订单ID不能为空\"}"; @@ -997,9 +996,9 @@ namespace KJD_Web.BLL.WXXD if (id == 0) { sql = "INSERT INTO wxxd.order_pdd_buyer_order (wx_order_id,wx_sku_id,TransitCreateTime,pre_allocated_order_no,buyerId,buyerName,order_sn,order_amount,order_time," + - "outExpressCompanyCode,tracking_number,order_status_prompt,after_sales_status,order_detail)"; + "outExpressCompanyCode,tracking_number,order_status_prompt,after_sales_status,order_detail,wx_order_send_type)"; sql += "VALUES(@wx_order_id,@wx_sku_id,@TransitCreateTime,@pre_allocated_order_no,@buyerId,@buyerName,@pdd_order_sn,@order_amount,@order_time," + - "@outExpressCompanyCode,@tracking_number,@order_status_prompt,@after_sales_status,@order_detail);"; + "@outExpressCompanyCode,@tracking_number,@order_status_prompt,@after_sales_status,@order_detail@wx_order_send_type);"; } else { @@ -1030,6 +1029,8 @@ namespace KJD_Web.BLL.WXXD sql += " after_sales_status=@after_sales_status,"; if (!string.IsNullOrEmpty(order_detail)) sql += " order_detail=@order_detail,"; + if (!string.IsNullOrEmpty(wx_order_send_type)) + sql += " wx_order_send_type=@wx_order_send_type,"; sql = sql.TrimEnd(','); sql += " where order_sn=@pdd_order_sn"; } @@ -1044,12 +1045,13 @@ namespace KJD_Web.BLL.WXXD paramLst.Add(new MySqlParameter() { DbType = DbType.String, ParameterName = "buyerId", Value = buyerId, }); paramLst.Add(new MySqlParameter() { DbType = DbType.String, ParameterName = "buyerName", Value = buyerName, }); paramLst.Add(new MySqlParameter() { DbType = DbType.String, ParameterName = "pdd_order_sn", Value = pdd_order_sn, }); - paramLst.Add(new MySqlParameter() { DbType = DbType.String, ParameterName = "order_amount", Value = order_amount, }); + paramLst.Add(new MySqlParameter() { DbType = DbType.Int32, ParameterName = "order_amount", Value = order_amount.ParseToNullableInt(), }); paramLst.Add(new MySqlParameter() { DbType = DbType.Int64, ParameterName = "order_time", Value = order_time.ParseToLong(), }); paramLst.Add(new MySqlParameter() { DbType = DbType.String, ParameterName = "outExpressCompanyCode", Value = outExpressCompanyCode, }); paramLst.Add(new MySqlParameter() { DbType = DbType.String, ParameterName = "tracking_number", Value = tracking_number, }); paramLst.Add(new MySqlParameter() { DbType = DbType.String, ParameterName = "order_status_prompt", Value = order_status_prompt, }); paramLst.Add(new MySqlParameter() { DbType = DbType.Int32, ParameterName = "after_sales_status", Value = after_sales_status.ParseToInt(), }); + paramLst.Add(new MySqlParameter() { DbType = DbType.Int32, ParameterName = "wx_order_send_type", Value = wx_order_send_type.ParseToInt(), }); paramLst.Add(new MySqlParameter() { DbType = DbType.String, ParameterName = "order_detail", Value = order_detail, }); //sql = " update `wxxd`.`order_pdd_buyer_order` set "; //if (!string.IsNullOrEmpty(soft_remark)) @@ -1069,7 +1071,6 @@ namespace KJD_Web.BLL.WXXD return "{\"code\":19999,\"msg\":\"输入为空\"}"; } - public string WXGetBuyerOrderList(string inputData, bool isDetail = false) { if (!string.IsNullOrEmpty(inputData)) @@ -1133,7 +1134,7 @@ namespace KJD_Web.BLL.WXXD { try { - List refundItemList = new List(); + List buyerOrderList = new List(); foreach (DataRow row in dt.Rows) { order_pdd_buyer_order order = new order_pdd_buyer_order @@ -1155,11 +1156,228 @@ namespace KJD_Web.BLL.WXXD TransitCreateTime = row["TransitCreateTime"].ParseToString().ParseToDateTime(), wx_order_id = row["wx_order_id"].ParseToString(), wx_sku_id = row["wx_sku_id"].ParseToString(), + wx_order_send_type = row["wx_order_send_type"].ParseToNullableInt(), }; - refundItemList.Add(order); + buyerOrderList.Add(order); } JsonSerializerSettings jsonSetting = new JsonSerializerSettings { NullValueHandling = NullValueHandling.Ignore }; - var data = JsonUtils.SerializeObjectToString(refundItemList, jsonSetting); + var data = JsonUtils.SerializeObjectToString(buyerOrderList, 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 WXAddMdyBuyerAfterSale(string inputData) + { + if (!string.IsNullOrEmpty(inputData)) + { + if (!WXUserManage.GetSign(inputData)) + return "{\"code\":999,\"msg\":\"校验失败\"}"; + var timeCalc = DateTime.Now; + + string wx_order_id = HtmlUtils.UrlDecodeUtf8(RegexUtils.GetStringQuery(ref inputData, "wx_order_id"))?.Replace("'", "\\'"); + string wx_sku_id = HtmlUtils.UrlDecodeUtf8(RegexUtils.GetStringQuery(ref inputData, "wx_sku_id"))?.Replace("'", "\\'"); + string TransitCreateTime = HtmlUtils.UrlDecodeUtf8(RegexUtils.GetStringQuery(ref inputData, "TransitCreateTime"))?.Replace("'", "\\'"); + string pre_allocated_order_no = HtmlUtils.UrlDecodeUtf8(RegexUtils.GetStringQuery(ref inputData, "pre_allocated_order_no"))?.Replace("'", "\\'"); + string buyerId = HtmlUtils.UrlDecodeUtf8(RegexUtils.GetStringQuery(ref inputData, "buyerId"))?.Replace("'", "\\'"); + string buyerName = HtmlUtils.UrlDecodeUtf8(RegexUtils.GetStringQuery(ref inputData, "buyerName"))?.Replace("'", "\\'"); + string orderSn = HtmlUtils.UrlDecodeUtf8(RegexUtils.GetStringQuery(ref inputData, "orderSn"))?.Replace("'", "\\'"); + string afterSalesId = HtmlUtils.UrlDecodeUtf8(RegexUtils.GetStringQuery(ref inputData, "afterSalesId"))?.Replace("'", "\\'"); + string orderAmount = HtmlUtils.UrlDecodeUtf8(RegexUtils.GetStringQuery(ref inputData, "orderAmount"))?.Replace("'", "\\'"); + string orderDate = HtmlUtils.UrlDecodeUtf8(RegexUtils.GetStringQuery(ref inputData, "orderDate"))?.Replace("'", "\\'"); + string order_detail = HtmlUtils.UrlDecodeUtf8(RegexUtils.GetStringQuery(ref inputData, "order_detail"))?.Replace("'", "\\'"); + string refundAmount = HtmlUtils.UrlDecodeUtf8(RegexUtils.GetStringQuery(ref inputData, "refundAmount"))?.Replace("'", "\\'"); + string statusText = HtmlUtils.UrlDecodeUtf8(RegexUtils.GetStringQuery(ref inputData, "statusText"))?.Replace("'", "\\'"); + string afterSaleAddress = HtmlUtils.UrlDecodeUtf8(RegexUtils.GetStringQuery(ref inputData, "afterSaleAddress"))?.Replace("'", "\\'"); + string is_mdy = HtmlUtils.UrlDecodeUtf8(RegexUtils.GetStringQuery(ref inputData, "is_mdy"))?.Replace("'", "\\'"); + if (string.IsNullOrEmpty(wx_order_id) || string.IsNullOrEmpty(orderSn) || string.IsNullOrEmpty(afterSalesId)) + return "{\"code\":500,\"msg\":\"订单ID不能为空\"}"; + + string conn = System.Configuration.ConfigurationManager.ConnectionStrings["ConnKJD"].ConnectionString; + MysqlUtils mySql = new MysqlUtils(conn); + + string sql = ""; + var count = -1; + + sql = "select id from wxxd.order_pdd_buyer_after_sale where afterSalesId='" + afterSalesId + "'"; + var id = mySql.ExecuteFirstInt(sql); + if (!string.IsNullOrEmpty(mySql.Message)) + { + mySql.Close(); + return "{\"code\":500,\"msg\":\"" + mySql.Message + "\"}"; + } + + if (id == 0 && is_mdy != "true") + { + sql = "INSERT INTO wxxd.order_pdd_buyer_after_sale (wx_order_id,wx_sku_id,TransitCreateTime,pre_allocated_order_no,buyerId,buyerName,orderSn,afterSalesId,orderAmount,orderDate," + + "refundAmount,statusText,afterSaleAddress,order_detail)"; + sql += "VALUES(@wx_order_id,@wx_sku_id,@TransitCreateTime,@pre_allocated_order_no,@buyerId,@buyerName,@orderSn,@afterSalesId,@orderAmount,@orderDate," + + "@refundAmount,@statusText,@afterSaleAddress,@order_detail);"; + } + else + { + sql = "UPDATE wxxd.order_pdd_buyer_after_sale SET "; + if (!string.IsNullOrEmpty(wx_order_id)) + sql += " wx_order_id=@wx_order_id,"; + if (!string.IsNullOrEmpty(wx_sku_id)) + sql += " wx_sku_id=@wx_sku_id,"; + if (!string.IsNullOrEmpty(TransitCreateTime)) + sql += " TransitCreateTime=@TransitCreateTime,"; + if (!string.IsNullOrEmpty(pre_allocated_order_no)) + sql += " pre_allocated_order_no=@pre_allocated_order_no,"; + if (!string.IsNullOrEmpty(buyerId)) + sql += " buyerId=@buyerId,"; + if (!string.IsNullOrEmpty(buyerName)) + sql += " buyerName=@buyerName,"; + if (!string.IsNullOrEmpty(orderSn)) + sql += " orderSn=@orderSn,"; + if (!string.IsNullOrEmpty(orderAmount)) + sql += " orderAmount=@orderAmount,"; + if (!string.IsNullOrEmpty(refundAmount)) + sql += " refundAmount=@refundAmount,"; + if (!string.IsNullOrEmpty(statusText)) + sql += " statusText=@statusText,"; + if (!string.IsNullOrEmpty(orderDate)) + sql += " orderDate=@orderDate,"; + if (!string.IsNullOrEmpty(afterSaleAddress)) + sql += " afterSaleAddress=@afterSaleAddress,"; + + if (!string.IsNullOrEmpty(order_detail)) + sql += " order_detail=@order_detail,"; + sql = sql.TrimEnd(','); + sql += " where afterSalesId=@afterSalesId"; + } + + List paramLst = new List(); + paramLst.Add(new MySqlParameter() { DbType = DbType.String, ParameterName = "wx_order_id", Value = wx_order_id, }); + paramLst.Add(new MySqlParameter() { DbType = DbType.String, ParameterName = "wx_sku_id", Value = wx_sku_id, }); + paramLst.Add(new MySqlParameter() { DbType = DbType.DateTime, ParameterName = "TransitCreateTime", Value = TransitCreateTime.ParseToDateTime(), }); + paramLst.Add(new MySqlParameter() { DbType = DbType.Int32, ParameterName = "pre_allocated_order_no", Value = pre_allocated_order_no.ParseToInt(), }); + paramLst.Add(new MySqlParameter() { DbType = DbType.String, ParameterName = "buyerId", Value = buyerId, }); + paramLst.Add(new MySqlParameter() { DbType = DbType.String, ParameterName = "buyerName", Value = buyerName, }); + paramLst.Add(new MySqlParameter() { DbType = DbType.String, ParameterName = "statusText", Value = statusText, }); + paramLst.Add(new MySqlParameter() { DbType = DbType.String, ParameterName = "orderSn", Value = orderSn, }); + paramLst.Add(new MySqlParameter() { DbType = DbType.String, ParameterName = "afterSalesId", Value = afterSalesId, }); + paramLst.Add(new MySqlParameter() { DbType = DbType.Int32, ParameterName = "refundAmount", Value = refundAmount.ParseToNullableInt(), }); + paramLst.Add(new MySqlParameter() { DbType = DbType.Int32, ParameterName = "orderAmount", Value = orderAmount.ParseToNullableInt(), }); + paramLst.Add(new MySqlParameter() { DbType = DbType.Int64, ParameterName = "orderDate", Value = orderDate.ParseToLong(), }); + paramLst.Add(new MySqlParameter() { DbType = DbType.String, ParameterName = "afterSaleAddress", Value = afterSaleAddress, }); + paramLst.Add(new MySqlParameter() { DbType = DbType.String, ParameterName = "order_detail", Value = order_detail, }); + + count = mySql.ExecuteAffectedRows(sql, paramLst.ToArray()); + mySql.Close(); + + if (!string.IsNullOrEmpty(mySql.Message)) + { + return "{\"code\":500,\"msg\":\"" + mySql.Message + "\",\"affected_rows\":" + count + "}"; + } + return "{\"code\":200,\"msg\":\"success\",\"affected_rows\":" + count + "}"; + } + return "{\"code\":19999,\"msg\":\"输入为空\"}"; + } + + public string WXGetBuyerAfterSaleList(string inputData, bool isDetail = false) + { + if (!string.IsNullOrEmpty(inputData)) + { + if (!WXUserManage.GetSign(inputData)) + return "{\"code\":999,\"msg\":\"校验失败\"}"; + var timeCalc = DateTime.Now; + + var wx_order_id_in = RegexUtils.GetStringQuery(ref inputData, "wx_order_id_in")?.Replace("'", "\\'"); + var buyer_order_sn_in = RegexUtils.GetStringQuery(ref inputData, "buyer_order_sn_in")?.Replace("'", "\\'"); + if (wx_order_id_in.IsNullOrEmpty() && string.IsNullOrEmpty(buyer_order_sn_in)) + { + return "{\"code\":500,\"msg\":\"未指定订单\"}"; + } + var sort_type = RegexUtils.GetStringQuery(ref inputData, "sort_type")?.Replace("'", "\\'"); + var is_not_count = RegexUtils.GetStringQuery(ref inputData, "is_not_count") != "false"; + + int page = RegexUtils.GetStringQuery(ref inputData, "page").ParseToInt(); + int page_size = RegexUtils.GetStringQuery(ref inputData, "page_size").ParseToInt(500); + + string conn = System.Configuration.ConfigurationManager.ConnectionStrings["ConnKJD"].ConnectionString; + MysqlUtils mySql = new MysqlUtils(conn); + + string sql = "SELECT COUNT(id) FROM wxxd.order_pdd_buyer_after_sale o WHERE 1=1 "; + + string where = ""; + if (!string.IsNullOrWhiteSpace(wx_order_id_in)) + where += " and o.wx_order_id in ('" + wx_order_id_in.Replace(",", "','") + "')"; + if (!string.IsNullOrWhiteSpace(buyer_order_sn_in)) + where += " and o.order_sn in ('" + buyer_order_sn_in.Replace(",", "','") + "')"; + sql += where; + + var count = 0; + if (!is_not_count) + count = mySql.ExecuteRowCount(sql); + + DataTable dt; + if (count == 0 && !is_not_count) + { + dt = new DataTable(); + } + else + { + sql = "SELECT o.* FROM" + + " wxxd.order_pdd_buyer_after_sale o " + + " WHERE 1=1"; + + //where子句 + sql += where; + + if (sort_type == "asc") + sql += " ORDER BY o.id ASC"; + else + sql += " ORDER BY o.id DESC"; + sql += " LIMIT " + Math.Max(page - 1, 0) * page_size + "," + page_size; + dt = mySql.ExecuteDataTable(sql); + } + + mySql.Close(); + if (dt != null) + { + try + { + List buyerAfterSaleLst = new List(); + foreach (DataRow row in dt.Rows) + { + order_pdd_buyer_after_sale afterSale = new order_pdd_buyer_after_sale + { + id = row["id"].ParseToLong(), + add_time = row["add_time"].ParseToString().ParseToDateTime(), + afterSalesId = row["afterSalesId"].ParseToString(), + buyerId = row["buyerId"].ParseToString(), + buyerName = row["buyerName"].ParseToString(), + mdy_time = row["mdy_time"].ParseToString().ParseToDateTime(), + orderAmount = row["orderAmount"].ParseToNullableInt(), + order_detail = row["order_detail"].ParseToString(), + orderSn = row["orderSn"].ParseToString(), + orderDate = row["orderDate"].ParseToNullableInt(), + refundAmount = row["refundAmount"].ParseToNullableInt(), + statusText = row["statusText"].ParseToString(), + afterSaleAddress = row["afterSaleAddress"].ParseToString(), + pre_allocated_order_no = row["pre_allocated_order_no"].ParseToNullableInt(), + TransitCreateTime = row["TransitCreateTime"].ParseToString().ParseToDateTime(), + wx_order_id = row["wx_order_id"].ParseToString(), + wx_sku_id = row["wx_sku_id"].ParseToString(), + }; + buyerAfterSaleLst.Add(afterSale); + } + JsonSerializerSettings jsonSetting = new JsonSerializerSettings { NullValueHandling = NullValueHandling.Ignore }; + var data = JsonUtils.SerializeObjectToString(buyerAfterSaleLst, jsonSetting); var seconds = (DateTime.Now - timeCalc).TotalSeconds.ToString("0.000"); return "{\"code\":200,\"msg\":\"success\",\"data\":" + data + ",\"count\":" + count + ",\"seconds\":" + seconds + "}"; } @@ -1292,7 +1510,11 @@ namespace KJD_Web.BLL.WXXD return "{\"code\":19999,\"msg\":\"输入为空\"}"; } - + /// + /// 订单异常重拍 + /// + /// + /// public string WXUpdateAbnormalTransitOrder(string inputData) { if (!string.IsNullOrEmpty(inputData)) @@ -1326,7 +1548,7 @@ namespace KJD_Web.BLL.WXXD string sql; - sql = "INSERT INTO wxxd.order_abnormal_order_record (out_order_no,order_no,order_sku_id,buyer_account,out_amount,purchaser_note,refund_status,order_code) "; + sql = "INSERT INTO wxxd.order_abnormal_transit_order_rebuy_record (out_order_no,order_no,order_sku_id,buyer_account,out_amount,purchaser_note,refund_status,order_code) "; sql += " VALUES('" + old_out_order_no + "','" + old_order_no + "','" + old_order_sku_id + "','" + old_buyer_account + "'," + old_out_amount + ",'" + old_purchaser_note + "','" + old_refund_status + "','" + order_code + "')"; var rows = mySql.ExecuteAffectedRows(sql); @@ -1340,7 +1562,7 @@ namespace KJD_Web.BLL.WXXD { mySql.RollBack(); mySql.Close(); - return "{\"code\":500,\"msg\":\"创建异常单记录失败\",\"affected_rows\":" + rows + "}"; + return "{\"code\":500,\"msg\":\"创建异常单重拍记录失败\",\"affected_rows\":" + rows + "}"; } sql = "UPDATE erp.oms_wei_external_procurement_log SET "; @@ -1372,5 +1594,242 @@ namespace KJD_Web.BLL.WXXD } return "{\"code\":19999,\"msg\":\"输入为空\"}"; } + + + public string WXAddOrderItemExtInfo(string inputData) + { + if (!string.IsNullOrEmpty(inputData)) + { + if (!WXUserManage.GetSign(inputData)) + return "{\"code\":999,\"msg\":\"校验失败\"}"; + var timeCalc = DateTime.Now; + + string order_id = HtmlUtils.UrlDecodeUtf8(RegexUtils.GetStringQuery(ref inputData, "wx_order_id"))?.Replace("'", "\\'"); + string sku_id = HtmlUtils.UrlDecodeUtf8(RegexUtils.GetStringQuery(ref inputData, "wx_sku_id"))?.Replace("'", "\\'"); + string shop_app_id = HtmlUtils.UrlDecodeUtf8(RegexUtils.GetStringQuery(ref inputData, "shop_app_id"))?.Replace("'", "\\'"); + string shop_name = HtmlUtils.UrlDecodeUtf8(RegexUtils.GetStringQuery(ref inputData, "shop_name"))?.Replace("'", "\\'"); + string abnormal_text = HtmlUtils.UrlDecodeUtf8(RegexUtils.GetStringQuery(ref inputData, "abnormal_text"))?.Replace("'", "\\'"); + string flag = HtmlUtils.UrlDecodeUtf8(RegexUtils.GetStringQuery(ref inputData, "flag"))?.Replace("'", "\\'"); + string label = HtmlUtils.UrlDecodeUtf8(RegexUtils.GetStringQuery(ref inputData, "label"))?.Replace("'", "\\'"); + string remark = HtmlUtils.UrlDecodeUtf8(RegexUtils.GetStringQuery(ref inputData, "remark"))?.Replace("'", "\\'"); + string after_sale_user_delivery_address = HtmlUtils.UrlDecodeUtf8(RegexUtils.GetStringQuery(ref inputData, "after_sale_user_delivery_address"))?.Replace("'", "\\'"); + + if (string.IsNullOrEmpty(order_id) || string.IsNullOrEmpty(sku_id)) + return "{\"code\":500,\"msg\":\"订单ID不能为空\"}"; + + string conn = System.Configuration.ConfigurationManager.ConnectionStrings["ConnKJD"].ConnectionString; + MysqlUtils mySql = new MysqlUtils(conn); + + string sql = ""; + var count = -1; + + sql = "select id from wxxd.order_item_ext where order_id='" + order_id + "' and sku_id='" + sku_id + "'"; + var id = mySql.ExecuteFirstInt(sql); + if (!string.IsNullOrEmpty(mySql.Message)) + { + mySql.Close(); + return "{\"code\":500,\"msg\":\"" + mySql.Message + "\"}"; + } + if (id > 0) + { + mySql.Close(); + return "{\"code\":500,\"msg\":\"订单已存在\"}"; + } + + sql = "INSERT INTO wxxd.order_item_ext (order_id,sku_id,shop_app_id,shop_name,abnormal_text,flag,label,remark,after_sale_user_delivery_address)"; + sql += "VALUES(@order_id,@sku_id,@shop_app_id,@shop_name,@abnormal_text,@flag,@label,@remark,@after_sale_user_delivery_address);"; + + List paramLst = new List(); + paramLst.Add(new MySqlParameter() { DbType = DbType.String, ParameterName = "order_id", Value = order_id, }); + paramLst.Add(new MySqlParameter() { DbType = DbType.String, ParameterName = "sku_id", Value = sku_id, }); + paramLst.Add(new MySqlParameter() { DbType = DbType.String, ParameterName = "shop_app_id", Value = shop_app_id, }); + paramLst.Add(new MySqlParameter() { DbType = DbType.String, ParameterName = "shop_name", Value = shop_name, }); + paramLst.Add(new MySqlParameter() { DbType = DbType.String, ParameterName = "abnormal_text", Value = abnormal_text, }); + paramLst.Add(new MySqlParameter() { DbType = DbType.Int32, ParameterName = "flag", Value = flag, }); + paramLst.Add(new MySqlParameter() { DbType = DbType.String, ParameterName = "label", Value = label, }); + paramLst.Add(new MySqlParameter() { DbType = DbType.String, ParameterName = "remark", Value = remark, }); + paramLst.Add(new MySqlParameter() { DbType = DbType.String, ParameterName = "after_sale_user_delivery_address", Value = after_sale_user_delivery_address, }); + + count = mySql.ExecuteAffectedRows(sql, paramLst.ToArray()); + mySql.Close(); + + if (!string.IsNullOrEmpty(mySql.Message)) + { + return "{\"code\":500,\"msg\":\"" + mySql.Message + "\",\"affected_rows\":" + count + "}"; + } + return "{\"code\":200,\"msg\":\"success\",\"affected_rows\":" + count + "}"; + } + return "{\"code\":19999,\"msg\":\"输入为空\"}"; + } + + public string WXMdyOrderItemExtInfo(string inputData) + { + if (!string.IsNullOrEmpty(inputData)) + { + if (!WXUserManage.GetSign(inputData)) + return "{\"code\":999,\"msg\":\"校验失败\"}"; + var timeCalc = DateTime.Now; + + string order_id = HtmlUtils.UrlDecodeUtf8(RegexUtils.GetStringQuery(ref inputData, "wx_order_id"))?.Replace("'", "\\'"); + string sku_id = HtmlUtils.UrlDecodeUtf8(RegexUtils.GetStringQuery(ref inputData, "wx_sku_id"))?.Replace("'", "\\'"); + string shop_app_id = HtmlUtils.UrlDecodeUtf8(RegexUtils.GetStringQuery(ref inputData, "shop_app_id"))?.Replace("'", "\\'"); + string shop_name = HtmlUtils.UrlDecodeUtf8(RegexUtils.GetStringQuery(ref inputData, "shop_name"))?.Replace("'", "\\'"); + string abnormal_text = HtmlUtils.UrlDecodeUtf8(RegexUtils.GetStringQuery(ref inputData, "abnormal_text"))?.Replace("'", "\\'"); + string flag = HtmlUtils.UrlDecodeUtf8(RegexUtils.GetStringQuery(ref inputData, "flag"))?.Replace("'", "\\'"); + string label = HtmlUtils.UrlDecodeUtf8(RegexUtils.GetStringQuery(ref inputData, "label"))?.Replace("'", "\\'"); + string remark = HtmlUtils.UrlDecodeUtf8(RegexUtils.GetStringQuery(ref inputData, "remark"))?.Replace("'", "\\'"); + string after_sale_user_delivery_address = HtmlUtils.UrlDecodeUtf8(RegexUtils.GetStringQuery(ref inputData, "after_sale_user_delivery_address"))?.Replace("'", "\\'"); + + if (string.IsNullOrEmpty(order_id)) + return "{\"code\":500,\"msg\":\"订单ID不能为空\"}"; + + string conn = System.Configuration.ConfigurationManager.ConnectionStrings["ConnKJD"].ConnectionString; + MysqlUtils mySql = new MysqlUtils(conn); + + string sql = "UPDATE wxxd.order_item_ext SET "; + if (!string.IsNullOrEmpty(shop_app_id)) + sql += " shop_app_id=@shop_app_id,"; + if (!string.IsNullOrEmpty(shop_name)) + sql += " shop_name=@shop_name,"; + if (abnormal_text != null) + sql += " abnormal_text=@abnormal_text,"; + if (!string.IsNullOrEmpty(flag)) + sql += " flag=@flag,"; + if (label != null) + sql += " label=@label,"; + if (remark != null) + sql += " remark=@remark,"; + if (!string.IsNullOrEmpty(after_sale_user_delivery_address)) + sql += " after_sale_user_delivery_address=@after_sale_user_delivery_address,"; + sql = sql.TrimEnd(','); + sql += " where 1=1"; + if (!string.IsNullOrEmpty(order_id)) + sql += " and order_id=@order_id,"; + if (!string.IsNullOrEmpty(sku_id)) + sql += " and sku_id=@sku_id,"; + + List paramLst = new List(); + paramLst.Add(new MySqlParameter() { DbType = DbType.String, ParameterName = "order_id", Value = order_id, }); + paramLst.Add(new MySqlParameter() { DbType = DbType.String, ParameterName = "sku_id", Value = sku_id, }); + paramLst.Add(new MySqlParameter() { DbType = DbType.String, ParameterName = "shop_app_id", Value = shop_app_id, }); + paramLst.Add(new MySqlParameter() { DbType = DbType.String, ParameterName = "shop_name", Value = shop_name, }); + paramLst.Add(new MySqlParameter() { DbType = DbType.String, ParameterName = "abnormal_text", Value = abnormal_text, }); + paramLst.Add(new MySqlParameter() { DbType = DbType.Int32, ParameterName = "flag", Value = flag, }); + paramLst.Add(new MySqlParameter() { DbType = DbType.String, ParameterName = "label", Value = label, }); + paramLst.Add(new MySqlParameter() { DbType = DbType.String, ParameterName = "remark", Value = remark, }); + paramLst.Add(new MySqlParameter() { DbType = DbType.String, ParameterName = "after_sale_user_delivery_address", Value = after_sale_user_delivery_address, }); + + var count = mySql.ExecuteAffectedRows(sql, paramLst.ToArray()); + mySql.Close(); + + if (!string.IsNullOrEmpty(mySql.Message)) + { + return "{\"code\":500,\"msg\":\"" + mySql.Message + "\",\"affected_rows\":" + count + "}"; + } + return "{\"code\":200,\"msg\":\"success\",\"affected_rows\":" + count + "}"; + } + return "{\"code\":19999,\"msg\":\"输入为空\"}"; + } + + public string WXGetOrderItemExtInfoList(string inputData, bool isDetail = false) + { + if (!string.IsNullOrEmpty(inputData)) + { + if (!WXUserManage.GetSign(inputData)) + return "{\"code\":999,\"msg\":\"校验失败\"}"; + var timeCalc = DateTime.Now; + + var wx_order_id_in = RegexUtils.GetStringQuery(ref inputData, "wx_order_id_in")?.Replace("'", "\\'"); + var wx_sku_id = RegexUtils.GetStringQuery(ref inputData, "wx_sku_id_in")?.Replace("'", "\\'"); + if (wx_order_id_in.IsNullOrEmpty()) + { + return "{\"code\":500,\"msg\":\"未指定订单\"}"; + } + var sort_type = RegexUtils.GetStringQuery(ref inputData, "sort_type")?.Replace("'", "\\'"); + var is_not_count = RegexUtils.GetStringQuery(ref inputData, "is_not_count") != "false"; + + int page = RegexUtils.GetStringQuery(ref inputData, "page").ParseToInt(); + int page_size = RegexUtils.GetStringQuery(ref inputData, "page_size").ParseToInt(500); + + string conn = System.Configuration.ConfigurationManager.ConnectionStrings["ConnKJD"].ConnectionString; + MysqlUtils mySql = new MysqlUtils(conn); + + string sql = "SELECT COUNT(id) FROM wxxd.order_item_ext o WHERE 1=1 "; + + string where = ""; + if (!string.IsNullOrWhiteSpace(wx_order_id_in)) + where += " and o.order_id in ('" + wx_order_id_in.Replace(",", "','") + "')"; + if (!string.IsNullOrWhiteSpace(wx_sku_id)) + where += " and o.sku_id in ('" + wx_sku_id.Replace(",", "','") + "')"; + sql += where; + + var count = 0; + if (!is_not_count) + count = mySql.ExecuteRowCount(sql); + + DataTable dt; + if (count == 0 && !is_not_count) + { + dt = new DataTable(); + } + else + { + sql = "SELECT o.* FROM" + + " wxxd.order_item_ext o " + + " WHERE 1=1"; + + //where子句 + sql += where; + + if (sort_type == "asc") + sql += " ORDER BY o.id ASC"; + else + sql += " ORDER BY o.id DESC"; + sql += " LIMIT " + Math.Max(page - 1, 0) * page_size + "," + page_size; + dt = mySql.ExecuteDataTable(sql); + } + + mySql.Close(); + if (dt != null) + { + try + { + List buyerOrderList = new List(); + foreach (DataRow row in dt.Rows) + { + order_item_ext order = new order_item_ext + { + id = row["id"].ParseToLong(), + add_time = row["add_time"].ParseToString().ParseToDateTime(), + abnormal_text = row["abnormal_text"].ParseToString(), + after_sale_user_delivery_address = row["after_sale_user_delivery_address"].ParseToString(), + flag = row["flag"].ParseToNullableInt(), + mdy_time = row["mdy_time"].ParseToString().ParseToDateTime(), + label = row["label"].ParseToString(), + order_id = row["order_id"].ParseToString(), + remark = row["remark"].ParseToString(), + shop_app_id = row["shop_app_id"].ParseToString(), + shop_name = row["shop_name"].ParseToString(), + sku_id = row["sku_id"].ParseToString(), + }; + buyerOrderList.Add(order); + } + JsonSerializerSettings jsonSetting = new JsonSerializerSettings { NullValueHandling = NullValueHandling.Ignore }; + var data = JsonUtils.SerializeObjectToString(buyerOrderList, 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\":\"输入为空\"}"; + } } } \ No newline at end of file diff --git a/KJDService/KJD_WebService/BXXProductService.asmx.cs b/KJDService/KJD_WebService/BXXProductService.asmx.cs index 04e469c..afaae19 100644 --- a/KJDService/KJD_WebService/BXXProductService.asmx.cs +++ b/KJDService/KJD_WebService/BXXProductService.asmx.cs @@ -290,6 +290,42 @@ namespace KJD_Web Context.Response.End(); } + [WebMethod] + public void get_product_notes() + { + string jsontext = GetRequestJsonString(); + + var result = jsontext; + result = new BXXProductManage().GetProductNotes(jsontext); + + Context.Response.Write(result); + Context.Response.End(); + } + + [WebMethod] + public void add_product_notes() + { + string jsontext = GetRequestJsonString(); + + var result = jsontext; + result = new BXXProductManage().AddProductNotes(jsontext); + + Context.Response.Write(result); + Context.Response.End(); + } + + [WebMethod] + public void del_product_notes() + { + string jsontext = GetRequestJsonString(); + + var result = jsontext; + result = new BXXProductManage().DelProductNotes(jsontext); + + Context.Response.Write(result); + Context.Response.End(); + } + [WebMethod] public void get_pdd_product_cates() { diff --git a/KJDService/KJD_WebService/KJD_WebService.csproj b/KJDService/KJD_WebService/KJD_WebService.csproj index 3c64a2a..38dbbd0 100644 --- a/KJDService/KJD_WebService/KJD_WebService.csproj +++ b/KJDService/KJD_WebService/KJD_WebService.csproj @@ -138,6 +138,8 @@ + + diff --git a/KJDService/KJD_WebService/Model/WxModel/order_item_ext.cs b/KJDService/KJD_WebService/Model/WxModel/order_item_ext.cs new file mode 100644 index 0000000..5635a05 --- /dev/null +++ b/KJDService/KJD_WebService/Model/WxModel/order_item_ext.cs @@ -0,0 +1,26 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Web; + +namespace KJD_Web.Model.WxModel +{ + public class order_item_ext + { + public long? id { get; set; } + public string order_id { get; set; } + public string sku_id { get; set; } + public string shop_app_id { get; set; } + public string shop_name { get; set; } + /// + /// 订单异常文本 + /// + public string abnormal_text { get; set; } + public int? flag { get; set; } + public string label { get; set; } + public string remark { get; set; } + public string after_sale_user_delivery_address { 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/Model/WxModel/order_pdd_buyer_after_sale.cs b/KJDService/KJD_WebService/Model/WxModel/order_pdd_buyer_after_sale.cs new file mode 100644 index 0000000..9a3a540 --- /dev/null +++ b/KJDService/KJD_WebService/Model/WxModel/order_pdd_buyer_after_sale.cs @@ -0,0 +1,29 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Web; + +namespace KJD_Web.Model.WxModel +{ + public class order_pdd_buyer_after_sale + { + public long? id { get; set; } + public string wx_order_id { get; set; } + public string wx_sku_id { get; set; } + public DateTime TransitCreateTime { get; set; } + //public DateTime TransitPickupTime { get; set; } + public int? pre_allocated_order_no { get; set; } + public string buyerId { get; set; } + public string buyerName { get; set; } + public string afterSalesId { get; set; } + public string orderSn { get; set; } + public int? orderAmount { get; set; } + public long? refundAmount { get; set; } + public long? orderDate { get; set; } + public string statusText { get; set; } + public string afterSaleAddress { get; set; } + public string order_detail { 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/Model/WxModel/order_pdd_buyer_order.cs b/KJDService/KJD_WebService/Model/WxModel/order_pdd_buyer_order.cs index 95585ea..1c740f4 100644 --- a/KJDService/KJD_WebService/Model/WxModel/order_pdd_buyer_order.cs +++ b/KJDService/KJD_WebService/Model/WxModel/order_pdd_buyer_order.cs @@ -24,6 +24,7 @@ namespace KJD_Web.Model.WxModel /// public string order_status_prompt { get; set; } public int? after_sales_status { get; set; } + public int? wx_order_send_type { get; set; } public string order_detail { get; set; } public DateTime add_time { get; set; } public DateTime mdy_time { get; set; } diff --git a/KJDService/KJD_WebService/WXOrderService.asmx.cs b/KJDService/KJD_WebService/WXOrderService.asmx.cs index c055275..d9a1506 100644 --- a/KJDService/KJD_WebService/WXOrderService.asmx.cs +++ b/KJDService/KJD_WebService/WXOrderService.asmx.cs @@ -222,6 +222,30 @@ namespace KJD_Web Context.Response.End(); } + [WebMethod] + public void wx_add_mdy_buyer_after_sale() + { + string jsontext = GetRequestJsonString(); + + var result = jsontext; + result = new WXOrderManage().WXAddMdyBuyerAfterSale(jsontext); + + Context.Response.Write(result); + Context.Response.End(); + } + + [WebMethod] + public void wx_get_buyer_after_sale_list() + { + string jsontext = GetRequestJsonString(); + + var result = jsontext; + result = new WXOrderManage().WXGetBuyerAfterSaleList(jsontext); + + Context.Response.Write(result); + Context.Response.End(); + } + [WebMethod] @@ -248,5 +272,42 @@ namespace KJD_Web Context.Response.Write(result); Context.Response.End(); } + + + [WebMethod] + public void wx_add_order_item_ext_info() + { + string jsontext = GetRequestJsonString(); + + var result = jsontext; + result = new WXOrderManage().WXAddOrderItemExtInfo(jsontext); + + Context.Response.Write(result); + Context.Response.End(); + } + + [WebMethod] + public void wx_mdy_order_item_ext_info() + { + string jsontext = GetRequestJsonString(); + + var result = jsontext; + result = new WXOrderManage().WXMdyOrderItemExtInfo(jsontext); + + Context.Response.Write(result); + Context.Response.End(); + } + + [WebMethod] + public void wx_get_order_item_ext_info() + { + string jsontext = GetRequestJsonString(); + + var result = jsontext; + result = new WXOrderManage().WXGetOrderItemExtInfoList(jsontext); + + Context.Response.Write(result); + Context.Response.End(); + } } } diff --git a/TEMUKJD/KJD.csproj b/TEMUKJD/KJD.csproj index 7503bda..50b35e0 100644 --- a/TEMUKJD/KJD.csproj +++ b/TEMUKJD/KJD.csproj @@ -201,6 +201,12 @@ JstBanPlatformForm.cs + + Form + + + PDDDBProdNotesManageFrom.cs + Form @@ -1412,6 +1418,9 @@ JstBanPlatformForm.cs + + PDDDBProdNotesManageFrom.cs + PDDDBProdGroupManageFrom.cs @@ -2002,6 +2011,7 @@ + diff --git a/TEMUKJD/PDDForms/ProductSelectForms/PDDDBProdGroupManageFrom.Designer.cs b/TEMUKJD/PDDForms/ProductSelectForms/PDDDBProdGroupManageFrom.Designer.cs index 3e43dae..6ff7988 100644 --- a/TEMUKJD/PDDForms/ProductSelectForms/PDDDBProdGroupManageFrom.Designer.cs +++ b/TEMUKJD/PDDForms/ProductSelectForms/PDDDBProdGroupManageFrom.Designer.cs @@ -35,17 +35,17 @@ namespace TemuKJD.PDDForms.ProductSelectForms this.panel2 = new System.Windows.Forms.Panel(); this.splitContainer1 = new System.Windows.Forms.SplitContainer(); this.splitContainer2 = new System.Windows.Forms.SplitContainer(); + this.label2 = new System.Windows.Forms.Label(); this.label1 = new System.Windows.Forms.Label(); this.btnDeleteGroup = new DevComponents.DotNetBar.PanelEx(); this.btnAddGroup = new DevComponents.DotNetBar.PanelEx(); this.txtGroupName = new System.Windows.Forms.TextBox(); this.dgvProdGroup = new TemuKJD.UserComponent.DataGridViewEx(); - this.btnClose = new TemuKJD.UserControls.ButtonEx(); this.colSelect = new System.Windows.Forms.DataGridViewCheckBoxColumn(); this.colDbId = new System.Windows.Forms.DataGridViewTextBoxColumn(); this.colGroupName = new System.Windows.Forms.DataGridViewTextBoxColumn(); this.colSAddUserName = new System.Windows.Forms.DataGridViewTextBoxColumn(); - this.label2 = new System.Windows.Forms.Label(); + this.btnClose = new TemuKJD.UserControls.ButtonEx(); this.panel2.SuspendLayout(); ((System.ComponentModel.ISupportInitialize)(this.splitContainer1)).BeginInit(); this.splitContainer1.Panel1.SuspendLayout(); @@ -106,15 +106,25 @@ namespace TemuKJD.PDDForms.ProductSelectForms // this.splitContainer2.Panel2.Controls.Add(this.dgvProdGroup); this.splitContainer2.Size = new System.Drawing.Size(383, 455); - this.splitContainer2.SplitterDistance = 55; + this.splitContainer2.SplitterDistance = 54; this.splitContainer2.TabIndex = 190; // + // label2 + // + this.label2.AutoSize = true; + this.label2.ForeColor = System.Drawing.SystemColors.ActiveCaption; + this.label2.Location = new System.Drawing.Point(42, 34); + this.label2.Name = "label2"; + this.label2.Size = new System.Drawing.Size(308, 17); + this.label2.TabIndex = 842; + this.label2.Text = "备注:删除选中仅删除分组,原分组内的商品仍然保留。"; + // // label1 // this.label1.AutoSize = true; - this.label1.Location = new System.Drawing.Point(9, 13); + this.label1.Location = new System.Drawing.Point(9, 11); this.label1.Name = "label1"; - this.label1.Size = new System.Drawing.Size(77, 12); + this.label1.Size = new System.Drawing.Size(80, 17); this.label1.TabIndex = 835; this.label1.Text = "输入分组名称"; // @@ -126,7 +136,7 @@ namespace TemuKJD.PDDForms.ProductSelectForms this.btnDeleteGroup.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); this.btnDeleteGroup.Location = new System.Drawing.Point(296, 8); this.btnDeleteGroup.Name = "btnDeleteGroup"; - this.btnDeleteGroup.Size = new System.Drawing.Size(80, 21); + this.btnDeleteGroup.Size = new System.Drawing.Size(80, 23); this.btnDeleteGroup.Style.Alignment = System.Drawing.StringAlignment.Center; this.btnDeleteGroup.Style.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255))))); this.btnDeleteGroup.Style.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255))))); @@ -150,7 +160,7 @@ namespace TemuKJD.PDDForms.ProductSelectForms this.btnAddGroup.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); this.btnAddGroup.Location = new System.Drawing.Point(230, 8); this.btnAddGroup.Name = "btnAddGroup"; - this.btnAddGroup.Size = new System.Drawing.Size(46, 21); + this.btnAddGroup.Size = new System.Drawing.Size(46, 23); this.btnAddGroup.Style.Alignment = System.Drawing.StringAlignment.Center; this.btnAddGroup.Style.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255))))); this.btnAddGroup.Style.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255))))); @@ -170,7 +180,7 @@ namespace TemuKJD.PDDForms.ProductSelectForms // this.txtGroupName.Location = new System.Drawing.Point(90, 8); this.txtGroupName.Name = "txtGroupName"; - this.txtGroupName.Size = new System.Drawing.Size(137, 21); + this.txtGroupName.Size = new System.Drawing.Size(137, 23); this.txtGroupName.TabIndex = 0; // // dgvProdGroup @@ -203,27 +213,10 @@ namespace TemuKJD.PDDForms.ProductSelectForms this.dgvProdGroup.ReadOnly = true; this.dgvProdGroup.RowHeadersWidth = 51; this.dgvProdGroup.RowTemplate.Height = 23; - this.dgvProdGroup.Size = new System.Drawing.Size(383, 396); + this.dgvProdGroup.Size = new System.Drawing.Size(383, 397); this.dgvProdGroup.TabIndex = 189; this.dgvProdGroup.CellContentClick += new System.Windows.Forms.DataGridViewCellEventHandler(this.dgvSaUser_CellContentClick); // - // btnClose - // - this.btnClose.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); - this.btnClose.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255))))); - this.btnClose.Cursor = System.Windows.Forms.Cursors.Hand; - this.btnClose.FlatStyle = System.Windows.Forms.FlatStyle.Flat; - this.btnClose.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); - this.btnClose.ForeColor = System.Drawing.Color.White; - this.btnClose.Location = new System.Drawing.Point(321, 2); - this.btnClose.Margin = new System.Windows.Forms.Padding(2); - this.btnClose.Name = "btnClose"; - this.btnClose.Size = new System.Drawing.Size(66, 26); - this.btnClose.TabIndex = 374; - this.btnClose.Text = "关闭"; - this.btnClose.UseVisualStyleBackColor = false; - this.btnClose.Click += new System.EventHandler(this.btnClose_Click); - // // colSelect // this.colSelect.HeaderText = "选择"; @@ -258,22 +251,29 @@ namespace TemuKJD.PDDForms.ProductSelectForms this.colSAddUserName.Visible = false; this.colSAddUserName.Width = 150; // - // label2 + // btnClose // - this.label2.AutoSize = true; - this.label2.ForeColor = System.Drawing.SystemColors.ActiveCaption; - this.label2.Location = new System.Drawing.Point(42, 36); - this.label2.Name = "label2"; - this.label2.Size = new System.Drawing.Size(305, 12); - this.label2.TabIndex = 842; - this.label2.Text = "备注:删除选中仅删除分组,原分组内的商品仍然保留。"; + this.btnClose.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); + this.btnClose.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255))))); + this.btnClose.Cursor = System.Windows.Forms.Cursors.Hand; + this.btnClose.FlatStyle = System.Windows.Forms.FlatStyle.Flat; + this.btnClose.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); + this.btnClose.ForeColor = System.Drawing.Color.White; + this.btnClose.Location = new System.Drawing.Point(321, 2); + this.btnClose.Margin = new System.Windows.Forms.Padding(2); + this.btnClose.Name = "btnClose"; + this.btnClose.Size = new System.Drawing.Size(66, 26); + this.btnClose.TabIndex = 374; + this.btnClose.Text = "关闭"; + this.btnClose.UseVisualStyleBackColor = false; + this.btnClose.Click += new System.EventHandler(this.btnClose_Click); // // PDDDBProdGroupManageFrom // - this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F); - this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.None; this.ClientSize = new System.Drawing.Size(393, 540); this.Controls.Add(this.panel2); + 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 = "PDDDBProdGroupManageFrom"; diff --git a/TEMUKJD/PDDForms/ProductSelectForms/PDDDBProdListForm.cs b/TEMUKJD/PDDForms/ProductSelectForms/PDDDBProdListForm.cs index 77580ff..dceaa8c 100644 --- a/TEMUKJD/PDDForms/ProductSelectForms/PDDDBProdListForm.cs +++ b/TEMUKJD/PDDForms/ProductSelectForms/PDDDBProdListForm.cs @@ -875,6 +875,46 @@ namespace TemuKJD.PDDForms.ProductSelectForms } } + public static void GetPDDProductNotes(List boxs, string notes_add_user_name = "", string addMoreItems = "") + { + var url = BaseClass.BuildPDDObjString("product/get_product_notes"); + var data = UserLogin.GetSignaturex(); + if (!string.IsNullOrWhiteSpace(notes_add_user_name)) + data += "&add_user_name=" + notes_add_user_name; + 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")); + } + else + { + MainForm.instance.Invoke(new Action(() => + { + foreach (var box in boxs) + { + box.Items.Clear(); + var groups = BaseRegex.GetStringJson(ref html, "data"); + box.Items.Add(""); + if (!string.IsNullOrEmpty(addMoreItems)) + { + foreach (var item in addMoreItems.Split(new string[] { "," }, StringSplitOptions.RemoveEmptyEntries)) + { + box.Items.Add(item); + } + } + foreach (var item in groups.Split(new string[] { "," }, StringSplitOptions.RemoveEmptyEntries)) + { + box.Items.Add(item); + } + } + })); + } + } + private void btnEditExtCodePriceOK_Click(object sender, EventArgs e) { var url = BaseClass.BuildPDDObjString("price/add_ext_code_price"); diff --git a/TEMUKJD/PDDForms/ProductSelectForms/PDDDBProdNotesManageFrom.Designer.cs b/TEMUKJD/PDDForms/ProductSelectForms/PDDDBProdNotesManageFrom.Designer.cs new file mode 100644 index 0000000..8ffb22e --- /dev/null +++ b/TEMUKJD/PDDForms/ProductSelectForms/PDDDBProdNotesManageFrom.Designer.cs @@ -0,0 +1,316 @@ + +namespace TemuKJD.PDDForms.ProductSelectForms +{ + partial class PDDDBProdNotesManageFrom + { + /// + /// 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.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(PDDDBProdNotesManageFrom)); + this.panel2 = new System.Windows.Forms.Panel(); + this.splitContainer1 = new System.Windows.Forms.SplitContainer(); + this.splitContainer2 = new System.Windows.Forms.SplitContainer(); + this.label2 = new System.Windows.Forms.Label(); + this.label1 = new System.Windows.Forms.Label(); + this.btnDeleteGroup = new DevComponents.DotNetBar.PanelEx(); + this.btnAddGroup = new DevComponents.DotNetBar.PanelEx(); + this.txtNotes = new System.Windows.Forms.TextBox(); + this.dgvNotes = new TemuKJD.UserComponent.DataGridViewEx(); + this.btnClose = new TemuKJD.UserControls.ButtonEx(); + this.colSelect = new System.Windows.Forms.DataGridViewCheckBoxColumn(); + this.colDbId = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.colNotes = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.colAddUserName = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.panel2.SuspendLayout(); + ((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.dgvNotes)).BeginInit(); + this.SuspendLayout(); + // + // panel2 + // + this.panel2.BackColor = System.Drawing.Color.White; + this.panel2.Controls.Add(this.splitContainer1); + this.panel2.Dock = System.Windows.Forms.DockStyle.Fill; + this.panel2.Location = new System.Drawing.Point(1, 33); + this.panel2.Name = "panel2"; + this.panel2.Size = new System.Drawing.Size(391, 506); + this.panel2.TabIndex = 1; + // + // splitContainer1 + // + this.splitContainer1.Dock = System.Windows.Forms.DockStyle.Fill; + 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.splitContainer2); + this.splitContainer1.Panel1.Padding = new System.Windows.Forms.Padding(4); + // + // splitContainer1.Panel2 + // + this.splitContainer1.Panel2.Controls.Add(this.btnClose); + this.splitContainer1.Size = new System.Drawing.Size(391, 506); + this.splitContainer1.SplitterDistance = 463; + this.splitContainer1.TabIndex = 190; + // + // splitContainer2 + // + this.splitContainer2.Dock = System.Windows.Forms.DockStyle.Fill; + this.splitContainer2.Location = new System.Drawing.Point(4, 4); + this.splitContainer2.Name = "splitContainer2"; + this.splitContainer2.Orientation = System.Windows.Forms.Orientation.Horizontal; + // + // splitContainer2.Panel1 + // + this.splitContainer2.Panel1.Controls.Add(this.label2); + this.splitContainer2.Panel1.Controls.Add(this.label1); + this.splitContainer2.Panel1.Controls.Add(this.btnDeleteGroup); + this.splitContainer2.Panel1.Controls.Add(this.btnAddGroup); + this.splitContainer2.Panel1.Controls.Add(this.txtNotes); + // + // splitContainer2.Panel2 + // + this.splitContainer2.Panel2.Controls.Add(this.dgvNotes); + this.splitContainer2.Size = new System.Drawing.Size(383, 455); + this.splitContainer2.SplitterDistance = 54; + this.splitContainer2.TabIndex = 190; + // + // label2 + // + this.label2.AutoSize = true; + this.label2.ForeColor = System.Drawing.SystemColors.ActiveCaption; + this.label2.Location = new System.Drawing.Point(42, 34); + this.label2.Name = "label2"; + this.label2.Size = new System.Drawing.Size(320, 17); + this.label2.TabIndex = 842; + this.label2.Text = "备注:删除选中仅删除备注,原备注关联的商品仍然保留。"; + // + // label1 + // + this.label1.AutoSize = true; + this.label1.Location = new System.Drawing.Point(9, 11); + this.label1.Name = "label1"; + this.label1.Size = new System.Drawing.Size(80, 17); + this.label1.TabIndex = 835; + this.label1.Text = "输入备注内容"; + // + // btnDeleteGroup + // + this.btnDeleteGroup.ColorSchemeStyle = DevComponents.DotNetBar.eDotNetBarStyle.StyleManagerControlled; + this.btnDeleteGroup.Cursor = System.Windows.Forms.Cursors.Hand; + this.btnDeleteGroup.DisabledBackColor = System.Drawing.Color.Empty; + this.btnDeleteGroup.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); + this.btnDeleteGroup.Location = new System.Drawing.Point(296, 8); + this.btnDeleteGroup.Name = "btnDeleteGroup"; + this.btnDeleteGroup.Size = new System.Drawing.Size(80, 23); + this.btnDeleteGroup.Style.Alignment = System.Drawing.StringAlignment.Center; + this.btnDeleteGroup.Style.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255))))); + this.btnDeleteGroup.Style.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255))))); + this.btnDeleteGroup.Style.BorderColor.ColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelBorder; + this.btnDeleteGroup.Style.BorderDashStyle = System.Drawing.Drawing2D.DashStyle.Dash; + this.btnDeleteGroup.Style.BorderSide = DevComponents.DotNetBar.eBorderSide.None; + this.btnDeleteGroup.Style.ForeColor.Color = System.Drawing.Color.White; + this.btnDeleteGroup.Style.GradientAngle = 90; + this.btnDeleteGroup.StyleMouseOver.Alignment = System.Drawing.StringAlignment.Center; + this.btnDeleteGroup.StyleMouseOver.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(25)))), ((int)(((byte)(102)))), ((int)(((byte)(255))))); + this.btnDeleteGroup.StyleMouseOver.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(25)))), ((int)(((byte)(102)))), ((int)(((byte)(255))))); + this.btnDeleteGroup.TabIndex = 828; + this.btnDeleteGroup.Text = "删除选中"; + this.btnDeleteGroup.Click += new System.EventHandler(this.btnDeleteNotes_Click); + // + // btnAddGroup + // + this.btnAddGroup.ColorSchemeStyle = DevComponents.DotNetBar.eDotNetBarStyle.StyleManagerControlled; + this.btnAddGroup.Cursor = System.Windows.Forms.Cursors.Hand; + this.btnAddGroup.DisabledBackColor = System.Drawing.Color.Empty; + this.btnAddGroup.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); + this.btnAddGroup.Location = new System.Drawing.Point(230, 8); + this.btnAddGroup.Name = "btnAddGroup"; + this.btnAddGroup.Size = new System.Drawing.Size(46, 23); + this.btnAddGroup.Style.Alignment = System.Drawing.StringAlignment.Center; + this.btnAddGroup.Style.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255))))); + this.btnAddGroup.Style.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255))))); + this.btnAddGroup.Style.BorderColor.ColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelBorder; + this.btnAddGroup.Style.BorderDashStyle = System.Drawing.Drawing2D.DashStyle.Dash; + this.btnAddGroup.Style.BorderSide = DevComponents.DotNetBar.eBorderSide.None; + this.btnAddGroup.Style.ForeColor.Color = System.Drawing.Color.White; + this.btnAddGroup.Style.GradientAngle = 90; + this.btnAddGroup.StyleMouseOver.Alignment = System.Drawing.StringAlignment.Center; + this.btnAddGroup.StyleMouseOver.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(25)))), ((int)(((byte)(102)))), ((int)(((byte)(255))))); + this.btnAddGroup.StyleMouseOver.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(25)))), ((int)(((byte)(102)))), ((int)(((byte)(255))))); + this.btnAddGroup.TabIndex = 824; + this.btnAddGroup.Text = "新增"; + this.btnAddGroup.Click += new System.EventHandler(this.btnAddNotes_Click); + // + // txtGroupName + // + this.txtNotes.Location = new System.Drawing.Point(90, 8); + this.txtNotes.Name = "txtGroupName"; + this.txtNotes.Size = new System.Drawing.Size(137, 23); + this.txtNotes.TabIndex = 0; + // + // dgvProdGroup + // + this.dgvNotes.AllowUserToAddRows = false; + this.dgvNotes.AllowUserToDeleteRows = false; + dataGridViewCellStyle1.BackColor = System.Drawing.Color.WhiteSmoke; + this.dgvNotes.AlternatingRowsDefaultCellStyle = dataGridViewCellStyle1; + this.dgvNotes.AutoRowNumber = true; + this.dgvNotes.BackgroundColor = System.Drawing.Color.White; + this.dgvNotes.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.dgvNotes.ColumnHeadersDefaultCellStyle = dataGridViewCellStyle2; + this.dgvNotes.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize; + this.dgvNotes.Columns.AddRange(new System.Windows.Forms.DataGridViewColumn[] { + this.colSelect, + this.colDbId, + this.colNotes, + this.colAddUserName}); + this.dgvNotes.Dock = System.Windows.Forms.DockStyle.Fill; + this.dgvNotes.Location = new System.Drawing.Point(0, 0); + this.dgvNotes.MultiSelectCheckBox = true; + this.dgvNotes.Name = "dgvProdGroup"; + this.dgvNotes.ReadOnly = true; + this.dgvNotes.RowHeadersWidth = 51; + this.dgvNotes.RowTemplate.Height = 23; + this.dgvNotes.Size = new System.Drawing.Size(383, 397); + this.dgvNotes.TabIndex = 189; + this.dgvNotes.CellContentClick += new System.Windows.Forms.DataGridViewCellEventHandler(this.dgvSaUser_CellContentClick); + // + // btnClose + // + this.btnClose.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); + this.btnClose.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255))))); + this.btnClose.Cursor = System.Windows.Forms.Cursors.Hand; + this.btnClose.FlatStyle = System.Windows.Forms.FlatStyle.Flat; + this.btnClose.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); + this.btnClose.ForeColor = System.Drawing.Color.White; + this.btnClose.Location = new System.Drawing.Point(321, 2); + this.btnClose.Margin = new System.Windows.Forms.Padding(2); + this.btnClose.Name = "btnClose"; + this.btnClose.Size = new System.Drawing.Size(66, 26); + this.btnClose.TabIndex = 374; + this.btnClose.Text = "关闭"; + this.btnClose.UseVisualStyleBackColor = false; + this.btnClose.Click += new System.EventHandler(this.btnClose_Click); + // + // colSelect + // + this.colSelect.HeaderText = "选择"; + this.colSelect.MinimumWidth = 6; + this.colSelect.Name = "colSelect"; + this.colSelect.ReadOnly = true; + this.colSelect.Resizable = System.Windows.Forms.DataGridViewTriState.True; + this.colSelect.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.Automatic; + this.colSelect.Width = 50; + // + // colDbId + // + this.colDbId.HeaderText = "数据库Id"; + this.colDbId.MinimumWidth = 6; + this.colDbId.Name = "colDbId"; + this.colDbId.ReadOnly = true; + this.colDbId.Visible = false; + this.colDbId.Width = 125; + // + // colNotes + // + this.colNotes.HeaderText = "备注"; + this.colNotes.Name = "colNotes"; + this.colNotes.ReadOnly = true; + this.colNotes.Width = 280; + // + // colSAddUserName + // + this.colAddUserName.HeaderText = "所属账户"; + this.colAddUserName.Name = "colSAddUserName"; + this.colAddUserName.ReadOnly = true; + this.colAddUserName.Visible = false; + this.colAddUserName.Width = 150; + // + // PDDDBProdNotesManageFrom + // + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.None; + this.ClientSize = new System.Drawing.Size(393, 540); + this.Controls.Add(this.panel2); + 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 = "PDDDBProdNotesManageFrom"; + this.Text = "备注管理"; + this.TitleText = "备注管理"; + this.Load += new System.EventHandler(this.AdminShopAddSubSaForm_Load); + this.Controls.SetChildIndex(this.panel2, 0); + this.panel2.ResumeLayout(false); + this.splitContainer1.Panel1.ResumeLayout(false); + this.splitContainer1.Panel2.ResumeLayout(false); + ((System.ComponentModel.ISupportInitialize)(this.splitContainer1)).EndInit(); + this.splitContainer1.ResumeLayout(false); + this.splitContainer2.Panel1.ResumeLayout(false); + this.splitContainer2.Panel1.PerformLayout(); + this.splitContainer2.Panel2.ResumeLayout(false); + ((System.ComponentModel.ISupportInitialize)(this.splitContainer2)).EndInit(); + this.splitContainer2.ResumeLayout(false); + ((System.ComponentModel.ISupportInitialize)(this.dgvNotes)).EndInit(); + this.ResumeLayout(false); + + } + + #endregion + + private System.Windows.Forms.Panel panel2; + private UserComponent.DataGridViewEx dgvNotes; + private System.Windows.Forms.SplitContainer splitContainer1; + private UserControls.ButtonEx btnClose; + private System.Windows.Forms.SplitContainer splitContainer2; + private System.Windows.Forms.TextBox txtNotes; + private DevComponents.DotNetBar.PanelEx btnDeleteGroup; + private DevComponents.DotNetBar.PanelEx btnAddGroup; + private System.Windows.Forms.Label label1; + private System.Windows.Forms.Label label2; + private System.Windows.Forms.DataGridViewCheckBoxColumn colSelect; + private System.Windows.Forms.DataGridViewTextBoxColumn colDbId; + private System.Windows.Forms.DataGridViewTextBoxColumn colNotes; + private System.Windows.Forms.DataGridViewTextBoxColumn colAddUserName; + } +} \ No newline at end of file diff --git a/TEMUKJD/PDDForms/ProductSelectForms/PDDDBProdNotesManageFrom.cs b/TEMUKJD/PDDForms/ProductSelectForms/PDDDBProdNotesManageFrom.cs new file mode 100644 index 0000000..5e073a4 --- /dev/null +++ b/TEMUKJD/PDDForms/ProductSelectForms/PDDDBProdNotesManageFrom.cs @@ -0,0 +1,164 @@ +using AllBase; +using AllBase.Model.Result; +using NaiBa.Util.Extension; +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Data; +using System.Drawing; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Windows.Forms; +using TemuKJD.BaseForms; +using Work; + +namespace TemuKJD.PDDForms.ProductSelectForms +{ + public partial class PDDDBProdNotesManageFrom : BaseGeneralForm + { + public string AddUserName { get; set; } = "admin"; + public PDDDBProdNotesManageFrom(string addUserName = null) + { + InitializeComponent(); + if (addUserName != null) + { + AddUserName = addUserName; + } + } + + private void btnClose_Click(object sender, EventArgs e) + { + this.Close(); + } + + private void AdminShopAddSubSaForm_Load(object sender, EventArgs e) + { + GetNotes(); + } + + public void GetNotes() + { + dgvNotes.Rows.Clear(); + string url = BaseClass.BuildPDDObjString("product/get_product_notes"); + StringBuilder data = new StringBuilder(); + data.Append(UserLogin.GetSignaturex()); + data.Append("&is_get_detail=true"); + data.Append("&add_user_name=" + AddUserName); + string html = GetHtml.PostUtf8(url, data.ToString()); + if (string.IsNullOrEmpty(html)) + return; + if (html.Contains("\"data\"")) + { + var jObj = JsonHelper.JObjectParse(html); + foreach (Newtonsoft.Json.Linq.JObject obj in jObj["notes"]) + { + string oStr = JsonHelper.SerializeObject(obj); + + dgvNotes.Rows.Add( + false, + BaseRegex.GetIntJson(ref oStr, "id"), + BaseRegex.GetStringJson(ref oStr, "notes"), + BaseRegex.GetStringJson(ref oStr, "add_user_name")); + } + } + } + + private void dgvSaUser_CellContentClick(object sender, DataGridViewCellEventArgs e) + { + + if (e.ColumnIndex < 0 || e.RowIndex < 0) + return; + + ////string columnName = dgvSaUser.Columns[e.ColumnIndex].Name; + ////switch (columnName) + ////{ + //// case "colSelect": + //var value = dgvProdNotes.Rows[e.RowIndex].Cells["colSelect"].Value; + //foreach (DataGridViewRow row in this.dgvProdNotes.Rows) + // row.Cells["colSelect"].Value = false; + //dgvProdNotes.Rows[e.RowIndex].Cells["colSelect"].Value = !(bool)value; + //// break; + //// default: + //// break; + ////} + /// + dgvNotes.Rows[e.RowIndex].Cells["colSelect"].Value = !dgvNotes.Rows[e.RowIndex].Cells["colSelect"].Value.ParseToBool(); + } + + private void btnDeleteNotes_Click(object sender, EventArgs e) + { + var selectRows = this.dgvNotes.Rows.Cast().Where(r => r.Cells["colSelect"]?.Value.ParseToBool() == true).ToList(); + if (selectRows.Count == 0) + { + BaseMsgForm.ShowError("请选择要删除的备注!"); + return; + } + + StringBuilder data = new StringBuilder(); + data.Append(UserLogin.GetSignaturex()); + data.Append("¬es=" + string.Join(",", selectRows.Select(r => r.Cells["colNotes"].Value.ParseToString()))); + data.Append("&add_user_name=" + AddUserName); + string url = BaseClass.BuildPDDObjString("product/del_product_notes"); + string html = GetHtml.PostUtf8(url, data.ToString()).Trim(); + if (!string.IsNullOrEmpty(html)) + { + if (html.Contains("\"code\":200")) + { + BaseMsgForm.ShowInfo("删除成功!"); + foreach (var row in selectRows) + dgvNotes.Rows.Remove(row); + //this.Close(); + } + else + { + var msg = BaseRegex.GetStringJson(ref html, "msg"); + if (string.IsNullOrEmpty(msg)) + msg = html; + BaseMsgForm.ShowError(msg, "错误"); + } + } + else + BaseMsgForm.ShowError("未知错误,请重试!", "错误"); + } + + private void btnAddNotes_Click(object sender, EventArgs e) + { + AddProductNotes(txtNotes.Text, AddUserName); + this.GetNotes(); + //this.Close(); + } + + public static void AddProductNotes(string notes, string add_user_name = "admin") + { + if (string.IsNullOrEmpty(notes)) + { + BaseMsgForm.ShowError("请输入"); + return; + } + + StringBuilder data = new StringBuilder(); + data.Append(UserLogin.GetSignaturex()); + data.Append("&add_user_name=" + add_user_name); + data.Append("¬es=" + notes); + string url = BaseClass.BuildPDDObjString("product/add_product_notes"); + string html = GetHtml.PostUtf8(url, data.ToString()).Trim(); + if (!string.IsNullOrEmpty(html)) + { + if (html.Contains("\"code\":200")) + { + BaseMsgForm.ShowInfo("添加成功!"); + } + else + { + var msg = BaseRegex.GetStringJson(ref html, "msg"); + if (string.IsNullOrEmpty(msg)) + msg = html; + BaseMsgForm.ShowError(msg, "错误"); + } + } + else + BaseMsgForm.ShowError("未知错误,请重试!", "错误"); + } + } +} diff --git a/TEMUKJD/PDDForms/ProductSelectForms/PDDDBProdNotesManageFrom.resx b/TEMUKJD/PDDForms/ProductSelectForms/PDDDBProdNotesManageFrom.resx new file mode 100644 index 0000000..b354c36 --- /dev/null +++ b/TEMUKJD/PDDForms/ProductSelectForms/PDDDBProdNotesManageFrom.resx @@ -0,0 +1,310 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 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 + + + + + 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/UcAddPrice.Designer.cs b/TEMUKJD/PDDForms/ProductSelectForms/UcAddPrice.Designer.cs index 006a433..d246964 100644 --- a/TEMUKJD/PDDForms/ProductSelectForms/UcAddPrice.Designer.cs +++ b/TEMUKJD/PDDForms/ProductSelectForms/UcAddPrice.Designer.cs @@ -70,7 +70,7 @@ namespace TemuKJD.PDDForms.ProductSelectForms this.txtPriceStart.Location = new System.Drawing.Point(0, 0); this.txtPriceStart.Margin = new System.Windows.Forms.Padding(0); this.txtPriceStart.Name = "txtPriceStart"; - this.txtPriceStart.Size = new System.Drawing.Size(38, 23); + this.txtPriceStart.Size = new System.Drawing.Size(36, 23); this.txtPriceStart.TabIndex = 551; this.txtPriceStart.Text = "0.0"; this.txtPriceStart.TextChanged += new System.EventHandler(this.Price_TextChanged); @@ -79,7 +79,7 @@ namespace TemuKJD.PDDForms.ProductSelectForms // this.lblPrice.Anchor = System.Windows.Forms.AnchorStyles.Left; this.lblPrice.AutoSize = true; - this.lblPrice.Location = new System.Drawing.Point(38, 3); + this.lblPrice.Location = new System.Drawing.Point(36, 3); this.lblPrice.Margin = new System.Windows.Forms.Padding(0); this.lblPrice.Name = "lblPrice"; this.lblPrice.Size = new System.Drawing.Size(58, 17); @@ -89,10 +89,10 @@ namespace TemuKJD.PDDForms.ProductSelectForms // txtPriceEnd // this.txtPriceEnd.Anchor = System.Windows.Forms.AnchorStyles.Left; - this.txtPriceEnd.Location = new System.Drawing.Point(96, 0); + this.txtPriceEnd.Location = new System.Drawing.Point(94, 0); this.txtPriceEnd.Margin = new System.Windows.Forms.Padding(0); this.txtPriceEnd.Name = "txtPriceEnd"; - this.txtPriceEnd.Size = new System.Drawing.Size(38, 23); + this.txtPriceEnd.Size = new System.Drawing.Size(36, 23); this.txtPriceEnd.TabIndex = 549; this.txtPriceEnd.Text = "999.0"; this.txtPriceEnd.TextChanged += new System.EventHandler(this.Price_TextChanged); @@ -101,7 +101,7 @@ namespace TemuKJD.PDDForms.ProductSelectForms // this.label9.Anchor = System.Windows.Forms.AnchorStyles.Left; this.label9.AutoSize = true; - this.label9.Location = new System.Drawing.Point(134, 3); + this.label9.Location = new System.Drawing.Point(130, 3); this.label9.Margin = new System.Windows.Forms.Padding(0); this.label9.Name = "label9"; this.label9.Size = new System.Drawing.Size(44, 17); @@ -111,10 +111,10 @@ namespace TemuKJD.PDDForms.ProductSelectForms // txtAddTimes // this.txtAddTimes.Anchor = System.Windows.Forms.AnchorStyles.Left; - this.txtAddTimes.Location = new System.Drawing.Point(178, 0); + this.txtAddTimes.Location = new System.Drawing.Point(174, 0); this.txtAddTimes.Margin = new System.Windows.Forms.Padding(0); this.txtAddTimes.Name = "txtAddTimes"; - this.txtAddTimes.Size = new System.Drawing.Size(31, 23); + this.txtAddTimes.Size = new System.Drawing.Size(26, 23); this.txtAddTimes.TabIndex = 544; this.txtAddTimes.Text = "2.0"; this.txtAddTimes.TextChanged += new System.EventHandler(this.Price_TextChanged); @@ -123,7 +123,7 @@ namespace TemuKJD.PDDForms.ProductSelectForms // this.label10.Anchor = System.Windows.Forms.AnchorStyles.Left; this.label10.AutoSize = true; - this.label10.Location = new System.Drawing.Point(209, 3); + this.label10.Location = new System.Drawing.Point(200, 3); this.label10.Margin = new System.Windows.Forms.Padding(0); this.label10.Name = "label10"; this.label10.Size = new System.Drawing.Size(44, 17); @@ -133,10 +133,10 @@ namespace TemuKJD.PDDForms.ProductSelectForms // txtAddMorePrice // this.txtAddMorePrice.Anchor = System.Windows.Forms.AnchorStyles.Left; - this.txtAddMorePrice.Location = new System.Drawing.Point(253, 0); + this.txtAddMorePrice.Location = new System.Drawing.Point(244, 0); this.txtAddMorePrice.Margin = new System.Windows.Forms.Padding(0); this.txtAddMorePrice.Name = "txtAddMorePrice"; - this.txtAddMorePrice.Size = new System.Drawing.Size(31, 23); + this.txtAddMorePrice.Size = new System.Drawing.Size(30, 23); this.txtAddMorePrice.TabIndex = 547; this.txtAddMorePrice.Text = "10.0"; this.txtAddMorePrice.TextChanged += new System.EventHandler(this.Price_TextChanged); @@ -145,7 +145,7 @@ namespace TemuKJD.PDDForms.ProductSelectForms // this.lblSinglePriceAdd.Anchor = System.Windows.Forms.AnchorStyles.Left; this.lblSinglePriceAdd.AutoSize = true; - this.lblSinglePriceAdd.Location = new System.Drawing.Point(284, 3); + this.lblSinglePriceAdd.Location = new System.Drawing.Point(274, 3); this.lblSinglePriceAdd.Margin = new System.Windows.Forms.Padding(0); this.lblSinglePriceAdd.Name = "lblSinglePriceAdd"; this.lblSinglePriceAdd.Size = new System.Drawing.Size(68, 17); @@ -155,7 +155,7 @@ namespace TemuKJD.PDDForms.ProductSelectForms // txtSinglePriceAdd // this.txtSinglePriceAdd.Anchor = System.Windows.Forms.AnchorStyles.Left; - this.txtSinglePriceAdd.Location = new System.Drawing.Point(352, 0); + this.txtSinglePriceAdd.Location = new System.Drawing.Point(342, 0); this.txtSinglePriceAdd.Margin = new System.Windows.Forms.Padding(0); this.txtSinglePriceAdd.Name = "txtSinglePriceAdd"; this.txtSinglePriceAdd.Size = new System.Drawing.Size(31, 23); @@ -167,7 +167,7 @@ namespace TemuKJD.PDDForms.ProductSelectForms // this.label1.Anchor = System.Windows.Forms.AnchorStyles.Left; this.label1.AutoSize = true; - this.label1.Location = new System.Drawing.Point(383, 3); + this.label1.Location = new System.Drawing.Point(373, 3); this.label1.Margin = new System.Windows.Forms.Padding(0); this.label1.Name = "label1"; this.label1.Size = new System.Drawing.Size(20, 17); @@ -180,7 +180,7 @@ namespace TemuKJD.PDDForms.ProductSelectForms this.lblClose.AutoSize = true; this.lblClose.Cursor = System.Windows.Forms.Cursors.Hand; this.lblClose.ForeColor = System.Drawing.SystemColors.HotTrack; - this.lblClose.Location = new System.Drawing.Point(403, 3); + this.lblClose.Location = new System.Drawing.Point(393, 3); this.lblClose.Margin = new System.Windows.Forms.Padding(0); this.lblClose.Name = "lblClose"; this.lblClose.Size = new System.Drawing.Size(17, 17); diff --git a/TEMUKJD/Properties/Resources.Designer.cs b/TEMUKJD/Properties/Resources.Designer.cs index 35b9ba3..4407301 100644 --- a/TEMUKJD/Properties/Resources.Designer.cs +++ b/TEMUKJD/Properties/Resources.Designer.cs @@ -229,6 +229,16 @@ namespace TemuKJD.Properties { } } + /// + /// 查找 System.Drawing.Bitmap 类型的本地化资源。 + /// + internal static System.Drawing.Bitmap empty_book_900_1200 { + get { + object obj = ResourceManager.GetObject("empty_book_900_1200", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + /// /// 查找 System.Drawing.Bitmap 类型的本地化资源。 /// diff --git a/TEMUKJD/Properties/Resources.resx b/TEMUKJD/Properties/Resources.resx index 204c46d..b4b1309 100644 --- a/TEMUKJD/Properties/Resources.resx +++ b/TEMUKJD/Properties/Resources.resx @@ -160,6 +160,9 @@ ..\static\dycategorys.txt;System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089;utf-8 + + ..\Resources\empty_book_900_1200.jpg;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + ..\resources\errpic.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a diff --git a/TEMUKJD/Resources/empty_book_900_1200.jpg b/TEMUKJD/Resources/empty_book_900_1200.jpg new file mode 100644 index 0000000000000000000000000000000000000000..304d4dac61bfe1bc1967626b7700769b8f2fdce0 GIT binary patch literal 82870 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 literal 0 HcmV?d00001 diff --git a/TEMUKJD/WXForms/AdminForms/WXAdminAccountBalanceForm.Designer.cs b/TEMUKJD/WXForms/AdminForms/WXAdminAccountBalanceForm.Designer.cs index fe04841..a2a0c92 100644 --- a/TEMUKJD/WXForms/AdminForms/WXAdminAccountBalanceForm.Designer.cs +++ b/TEMUKJD/WXForms/AdminForms/WXAdminAccountBalanceForm.Designer.cs @@ -46,6 +46,8 @@ namespace TemuKJD.WXForms.AdminForms this.panel1 = new System.Windows.Forms.Panel(); this.splitContainer2 = new System.Windows.Forms.SplitContainer(); this.ucGroupBoxEx1 = new TemuKJD.UserComponent.UcGroupBoxEx(this.components); + this.txtOutOrderId = new System.Windows.Forms.TextBox(); + this.label6 = new System.Windows.Forms.Label(); this.lblProfit = new System.Windows.Forms.Label(); this.label13 = new System.Windows.Forms.Label(); this.label12 = new System.Windows.Forms.Label(); @@ -114,6 +116,8 @@ namespace TemuKJD.WXForms.AdminForms this.colCreateTime = new System.Windows.Forms.DataGridViewTextBoxColumn(); this.colRemark = new System.Windows.Forms.DataGridViewTextBoxColumn(); this.ucSplitPage1 = new TemuKJD.UserControls.UcSplitPage(); + this.txtShopOrderNo = new System.Windows.Forms.TextBox(); + this.label9 = new System.Windows.Forms.Label(); this.panel1.SuspendLayout(); ((System.ComponentModel.ISupportInitialize)(this.splitContainer2)).BeginInit(); this.splitContainer2.Panel1.SuspendLayout(); @@ -167,6 +171,10 @@ namespace TemuKJD.WXForms.AdminForms | System.Windows.Forms.AnchorStyles.Right))); this.ucGroupBoxEx1.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255))))); this.ucGroupBoxEx1.BorderStyle = TemuKJD.UserComponent.UcGroupBoxEx.GroupBoxBorderStyle.ROUND; + this.ucGroupBoxEx1.Controls.Add(this.txtShopOrderNo); + this.ucGroupBoxEx1.Controls.Add(this.label9); + this.ucGroupBoxEx1.Controls.Add(this.txtOutOrderId); + this.ucGroupBoxEx1.Controls.Add(this.label6); this.ucGroupBoxEx1.Controls.Add(this.lblProfit); this.ucGroupBoxEx1.Controls.Add(this.label13); this.ucGroupBoxEx1.Controls.Add(this.label12); @@ -194,11 +202,29 @@ namespace TemuKJD.WXForms.AdminForms this.ucGroupBoxEx1.TabStop = false; this.ucGroupBoxEx1.Text = "查询条件"; // + // txtOutOrderId + // + this.txtOutOrderId.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; + this.txtOutOrderId.Location = new System.Drawing.Point(325, 21); + this.txtOutOrderId.Name = "txtOutOrderId"; + this.txtOutOrderId.Size = new System.Drawing.Size(136, 23); + this.txtOutOrderId.TabIndex = 1165; + // + // label6 + // + this.label6.AutoSize = true; + this.label6.Location = new System.Drawing.Point(270, 24); + this.label6.Name = "label6"; + this.label6.Size = new System.Drawing.Size(56, 17); + this.label6.TabIndex = 1192; + this.label6.Text = "买手单号"; + this.label6.Click += new System.EventHandler(this.label6_Click); + // // lblProfit // this.lblProfit.AutoSize = true; this.lblProfit.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(192)))), ((int)(((byte)(0)))), ((int)(((byte)(0))))); - this.lblProfit.Location = new System.Drawing.Point(1261, 24); + this.lblProfit.Location = new System.Drawing.Point(1271, 24); this.lblProfit.Name = "lblProfit"; this.lblProfit.Size = new System.Drawing.Size(40, 17); this.lblProfit.TabIndex = 1185; @@ -208,7 +234,7 @@ namespace TemuKJD.WXForms.AdminForms // label13 // this.label13.AutoSize = true; - this.label13.Location = new System.Drawing.Point(1166, 24); + this.label13.Location = new System.Drawing.Point(1176, 24); this.label13.Name = "label13"; this.label13.Size = new System.Drawing.Size(104, 17); this.label13.TabIndex = 1184; @@ -218,7 +244,7 @@ namespace TemuKJD.WXForms.AdminForms // label12 // this.label12.AutoSize = true; - this.label12.Location = new System.Drawing.Point(546, 24); + this.label12.Location = new System.Drawing.Point(682, 24); this.label12.Name = "label12"; this.label12.Size = new System.Drawing.Size(80, 17); this.label12.TabIndex = 1183; @@ -228,7 +254,7 @@ namespace TemuKJD.WXForms.AdminForms // lblPostageNotReturnCnt // this.lblPostageNotReturnCnt.AutoSize = true; - this.lblPostageNotReturnCnt.Location = new System.Drawing.Point(993, 51); + this.lblPostageNotReturnCnt.Location = new System.Drawing.Point(1056, 51); this.lblPostageNotReturnCnt.Name = "lblPostageNotReturnCnt"; this.lblPostageNotReturnCnt.Size = new System.Drawing.Size(135, 17); this.lblPostageNotReturnCnt.TabIndex = 1182; @@ -238,7 +264,7 @@ namespace TemuKJD.WXForms.AdminForms // label10 // this.label10.AutoSize = true; - this.label10.Location = new System.Drawing.Point(910, 51); + this.label10.Location = new System.Drawing.Point(973, 51); this.label10.Name = "label10"; this.label10.Size = new System.Drawing.Size(92, 17); this.label10.TabIndex = 1181; @@ -248,7 +274,7 @@ namespace TemuKJD.WXForms.AdminForms // lblPostageWeightTotal // this.lblPostageWeightTotal.AutoSize = true; - this.lblPostageWeightTotal.Location = new System.Drawing.Point(747, 51); + this.lblPostageWeightTotal.Location = new System.Drawing.Point(858, 51); this.lblPostageWeightTotal.Name = "lblPostageWeightTotal"; this.lblPostageWeightTotal.Size = new System.Drawing.Size(126, 17); this.lblPostageWeightTotal.TabIndex = 1180; @@ -258,7 +284,7 @@ namespace TemuKJD.WXForms.AdminForms // label8 // this.label8.AutoSize = true; - this.label8.Location = new System.Drawing.Point(652, 51); + this.label8.Location = new System.Drawing.Point(763, 51); this.label8.Name = "label8"; this.label8.Size = new System.Drawing.Size(104, 17); this.label8.TabIndex = 1179; @@ -268,7 +294,7 @@ namespace TemuKJD.WXForms.AdminForms // lblPostageReturnTotal // this.lblPostageReturnTotal.AutoSize = true; - this.lblPostageReturnTotal.Location = new System.Drawing.Point(993, 24); + this.lblPostageReturnTotal.Location = new System.Drawing.Point(1056, 24); this.lblPostageReturnTotal.Name = "lblPostageReturnTotal"; this.lblPostageReturnTotal.Size = new System.Drawing.Size(123, 17); this.lblPostageReturnTotal.TabIndex = 1178; @@ -278,7 +304,7 @@ namespace TemuKJD.WXForms.AdminForms // label7 // this.label7.AutoSize = true; - this.label7.Location = new System.Drawing.Point(898, 24); + this.label7.Location = new System.Drawing.Point(961, 24); this.label7.Name = "label7"; this.label7.Size = new System.Drawing.Size(104, 17); this.label7.TabIndex = 1177; @@ -288,7 +314,7 @@ namespace TemuKJD.WXForms.AdminForms // lblPostageTotal // this.lblPostageTotal.AutoSize = true; - this.lblPostageTotal.Location = new System.Drawing.Point(747, 24); + this.lblPostageTotal.Location = new System.Drawing.Point(858, 24); this.lblPostageTotal.Name = "lblPostageTotal"; this.lblPostageTotal.Size = new System.Drawing.Size(85, 17); this.lblPostageTotal.TabIndex = 1176; @@ -298,7 +324,7 @@ namespace TemuKJD.WXForms.AdminForms // label3 // this.label3.AutoSize = true; - this.label3.Location = new System.Drawing.Point(652, 24); + this.label3.Location = new System.Drawing.Point(763, 24); this.label3.Name = "label3"; this.label3.Size = new System.Drawing.Size(104, 17); this.label3.TabIndex = 1169; @@ -311,7 +337,7 @@ namespace TemuKJD.WXForms.AdminForms this.btnSearchShop.Cursor = System.Windows.Forms.Cursors.Hand; this.btnSearchShop.DisabledBackColor = System.Drawing.Color.Empty; this.btnSearchShop.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); - this.btnSearchShop.Location = new System.Drawing.Point(419, 51); + this.btnSearchShop.Location = new System.Drawing.Point(566, 51); this.btnSearchShop.Name = "btnSearchShop"; this.btnSearchShop.Size = new System.Drawing.Size(27, 23); this.btnSearchShop.Style.Alignment = System.Drawing.StringAlignment.Center; @@ -332,7 +358,7 @@ namespace TemuKJD.WXForms.AdminForms // label1 // this.label1.AutoSize = true; - this.label1.Location = new System.Drawing.Point(11, 54); + this.label1.Location = new System.Drawing.Point(154, 54); this.label1.Name = "label1"; this.label1.Size = new System.Drawing.Size(44, 17); this.label1.TabIndex = 1158; @@ -341,9 +367,9 @@ namespace TemuKJD.WXForms.AdminForms // txtUserName // this.txtUserName.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; - this.txtUserName.Location = new System.Drawing.Point(55, 51); + this.txtUserName.Location = new System.Drawing.Point(198, 51); this.txtUserName.Name = "txtUserName"; - this.txtUserName.Size = new System.Drawing.Size(358, 23); + this.txtUserName.Size = new System.Drawing.Size(365, 23); this.txtUserName.TabIndex = 1157; // // btnSearch @@ -352,9 +378,9 @@ namespace TemuKJD.WXForms.AdminForms 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(451, 51); + this.btnSearch.Location = new System.Drawing.Point(596, 51); this.btnSearch.Name = "btnSearch"; - this.btnSearch.Size = new System.Drawing.Size(58, 23); + this.btnSearch.Size = new System.Drawing.Size(63, 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))))); @@ -372,22 +398,23 @@ namespace TemuKJD.WXForms.AdminForms // // dtpTimeEnd // - this.dtpTimeEnd.Location = new System.Drawing.Point(377, 21); + this.dtpTimeEnd.Location = new System.Drawing.Point(165, 21); this.dtpTimeEnd.Name = "dtpTimeEnd"; - this.dtpTimeEnd.Size = new System.Drawing.Size(132, 23); + this.dtpTimeEnd.Size = new System.Drawing.Size(100, 23); this.dtpTimeEnd.TabIndex = 1149; // // dtpTimeBegin // - this.dtpTimeBegin.Location = new System.Drawing.Point(239, 21); + this.dtpTimeBegin.Location = new System.Drawing.Point(63, 21); this.dtpTimeBegin.Name = "dtpTimeBegin"; - this.dtpTimeBegin.Size = new System.Drawing.Size(132, 23); + this.dtpTimeBegin.Size = new System.Drawing.Size(100, 23); this.dtpTimeBegin.TabIndex = 1148; + this.dtpTimeBegin.ValueChanged += new System.EventHandler(this.dtpTimeBegin_ValueChanged); // // label5 // this.label5.AutoSize = true; - this.label5.Location = new System.Drawing.Point(182, 24); + this.label5.Location = new System.Drawing.Point(7, 24); this.label5.Name = "label5"; this.label5.Size = new System.Drawing.Size(56, 17); this.label5.TabIndex = 1147; @@ -396,7 +423,7 @@ namespace TemuKJD.WXForms.AdminForms // label4 // this.label4.AutoSize = true; - this.label4.Location = new System.Drawing.Point(22, 24); + this.label4.Location = new System.Drawing.Point(31, 54); this.label4.Name = "label4"; this.label4.Size = new System.Drawing.Size(32, 17); this.label4.TabIndex = 1145; @@ -412,9 +439,9 @@ namespace TemuKJD.WXForms.AdminForms "支付宝充值", "拍单扣除/作废返还", "超重扣费"}); - this.cmbType.Location = new System.Drawing.Point(55, 20); + this.cmbType.Location = new System.Drawing.Point(63, 50); this.cmbType.Name = "cmbType"; - this.cmbType.Size = new System.Drawing.Size(121, 25); + this.cmbType.Size = new System.Drawing.Size(90, 25); this.cmbType.TabIndex = 0; this.cmbType.Text = "充值"; // @@ -1008,6 +1035,23 @@ namespace TemuKJD.WXForms.AdminForms this.ucSplitPage1.TotalPage = 1; this.ucSplitPage1.PageChange += new System.Action(this.ucSplitPage1_PageChange); // + // txtShopOrderNo + // + this.txtShopOrderNo.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; + this.txtShopOrderNo.Location = new System.Drawing.Point(523, 21); + this.txtShopOrderNo.Name = "txtShopOrderNo"; + this.txtShopOrderNo.Size = new System.Drawing.Size(136, 23); + this.txtShopOrderNo.TabIndex = 1199; + // + // label9 + // + this.label9.AutoSize = true; + this.label9.Location = new System.Drawing.Point(467, 24); + this.label9.Name = "label9"; + this.label9.Size = new System.Drawing.Size(56, 17); + this.label9.TabIndex = 1200; + this.label9.Text = "店铺单号"; + // // WXAdminAccountBalanceForm // this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.None; @@ -1116,5 +1160,9 @@ namespace TemuKJD.WXForms.AdminForms private System.Windows.Forms.Label label7; private System.Windows.Forms.Label lblPostageTotal; private System.Windows.Forms.Label label3; + private System.Windows.Forms.Label label6; + private System.Windows.Forms.TextBox txtOutOrderId; + private System.Windows.Forms.TextBox txtShopOrderNo; + private System.Windows.Forms.Label label9; } } \ No newline at end of file diff --git a/TEMUKJD/WXForms/AdminForms/WXAdminAccountBalanceForm.cs b/TEMUKJD/WXForms/AdminForms/WXAdminAccountBalanceForm.cs index c52c513..e03aabb 100644 --- a/TEMUKJD/WXForms/AdminForms/WXAdminAccountBalanceForm.cs +++ b/TEMUKJD/WXForms/AdminForms/WXAdminAccountBalanceForm.cs @@ -4,6 +4,7 @@ using AllBase.Model.DBModel; using AllBase.Model.Result; using CefSharp; using CefSharp.WinForms; +using DevComponents.AdvTree; using DevComponents.WinForms.Drawing; using NaiBa.CefHelper; using NaiBa.Util.Extension; @@ -101,6 +102,10 @@ namespace TemuKJD.WXForms.AdminForms data3 += "&type_in=20,23"; if (cmbType.Text == "超重扣费") data3 += "&type_in=24"; + if (!string.IsNullOrEmpty(txtOutOrderId.Text.Trim())) + data3 += "&order_id_in=" + txtOutOrderId.Text.Trim(); + if (!string.IsNullOrEmpty(txtShopOrderNo.Text.Trim())) + data3 += "&remark_fulltext=" + txtShopOrderNo.Text.Trim(); data3 += "&page=" + ucSplitPage1.CurrentPage; data3 += "&page_size=" + ucSplitPage1.PageSize; pageSize = ucSplitPage1.PageSize; @@ -113,6 +118,7 @@ namespace TemuKJD.WXForms.AdminForms BaseMsgForm.ShowError("查询失败:" + BaseRegex.GetStringJsonByRegs(ref html3, html3, "msg")); return; } + List paymentList = new List(); paymentList = JsonHelper.DeserializeJsonToList(JsonHelper.JObjectParse(html3)["data"].ParseToString()); foreach (var payment in paymentList) @@ -129,7 +135,19 @@ namespace TemuKJD.WXForms.AdminForms payment.create_time.ToString("yyyy-MM-dd HH:mm:ss"), payment.remark ); - this.dgvPayment.Rows[rowIndex].Height = 60; + var row = this.dgvPayment.Rows[rowIndex]; + row.Height = 60; + + var rowExists = dgvPayment.Rows.Cast() + .Where(r => r.Cells["colOrderId"].Value.ParseToString() == payment.order_id && r.Cells["colType"].Value.ParseToString() == "中转仓作废返还收入").ToList(); + if (rowExists.Count > 1) + { + var c = Color.FromArgb(Randomx.GetId(127, 200), Randomx.GetId(127, 200), Randomx.GetId(127, 200)); + foreach (var rowExist in rowExists) + { + rowExist.Cells["colOrderId"].Style.BackColor = c; + } + } })); } int count = BaseRegex.GetIntJson(ref html3, "count"); @@ -374,5 +392,15 @@ namespace TemuKJD.WXForms.AdminForms await Task.Run(() => { GetUser(); }); pictureBox1.Visible = false; } + + private void label6_Click(object sender, EventArgs e) + { + + } + + private void dtpTimeBegin_ValueChanged(object sender, EventArgs e) + { + + } } } diff --git a/TEMUKJD/WXForms/AiTalkForms/WxAiTalkForm.cs b/TEMUKJD/WXForms/AiTalkForms/WxAiTalkForm.cs index 4aca353..3e07fde 100644 --- a/TEMUKJD/WXForms/AiTalkForms/WxAiTalkForm.cs +++ b/TEMUKJD/WXForms/AiTalkForms/WxAiTalkForm.cs @@ -527,24 +527,29 @@ namespace TemuKJD.WXForms.AiTalkForms Thread.Sleep(500); } - var shopIds = string.Join(",", GlobalConfig.ShopLoginList.Select(s => s.ShopId)); - url = AiTalkUrl + "/api/stores?page=1&pageSize=5000&keyword=" + shopIds; - refer = AiTalkUrl + "/api/stores"; - var adminCookies = CEFBrowser.GetCookieList("", aiTalkAdminWebBrowser.RequestContext.GetCookieManager(null)); - rst = HttpResponseWxAiTalkBLL.GetResponse(new ShopLoginInfo() { Cookies = JsonHelper.SerializeObject(adminCookies) }, url, refer); - - if (rst.Contains("\"stores\":[")) + int pageSize = 5000; + for (int i = 1; i <= 100; i++) { - List aiTalkInfoLst = JsonHelper.DeserializeJsonToList(JsonHelper.JObjectParse(rst)["stores"].ParseToString()); - foreach (var shop in GlobalConfig.ShopLoginList) + var shopIds = string.Join(",", GlobalConfig.ShopLoginList.Select(s => s.ShopId)); + url = AiTalkUrl + "/api/stores?page=" + i + "&pageSize=" + pageSize + "&keyword=" + shopIds; + refer = AiTalkUrl + "/api/stores"; + var adminCookies = CEFBrowser.GetCookieList("", aiTalkAdminWebBrowser.RequestContext.GetCookieManager(null)); + rst = HttpResponseWxAiTalkBLL.GetResponse(new ShopLoginInfo() { Cookies = JsonHelper.SerializeObject(adminCookies) }, url, refer); + if (rst.Contains("\"stores\":[")) { - shop.shopAiTalkInfo = aiTalkInfoLst.FirstOrDefault(s => s.id == shop.ShopId); + List aiTalkInfoLst = JsonHelper.DeserializeJsonToList(JsonHelper.JObjectParse(rst)["stores"].ParseToString()); + foreach (var shop in GlobalConfig.ShopLoginList) + { + shop.shopAiTalkInfo = aiTalkInfoLst.FirstOrDefault(s => s.id == shop.ShopId); + } + if (aiTalkInfoLst.Count < pageSize) + break; + } + else + { + BaseMsgForm.ShowError("AI客服账户登录失败,请稍候重试!"); + return; } - } - else - { - BaseMsgForm.ShowError("AI客服账户登录失败,请稍候重试!"); - return; } Thread.Sleep(1000); diff --git a/TEMUKJD/WXForms/ProductForms/WXDBProdUploadForm.Designer.cs b/TEMUKJD/WXForms/ProductForms/WXDBProdUploadForm.Designer.cs index bfa3ebd..2c86371 100644 --- a/TEMUKJD/WXForms/ProductForms/WXDBProdUploadForm.Designer.cs +++ b/TEMUKJD/WXForms/ProductForms/WXDBProdUploadForm.Designer.cs @@ -32,19 +32,22 @@ namespace TemuKJD.WXForms.ProductForms private void InitializeComponent() { this.components = new System.ComponentModel.Container(); - 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(); + System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle25 = new System.Windows.Forms.DataGridViewCellStyle(); + System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle26 = new System.Windows.Forms.DataGridViewCellStyle(); + System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle27 = new System.Windows.Forms.DataGridViewCellStyle(); + System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle28 = new System.Windows.Forms.DataGridViewCellStyle(); + System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle29 = new System.Windows.Forms.DataGridViewCellStyle(); + System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle30 = new System.Windows.Forms.DataGridViewCellStyle(); + System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle31 = new System.Windows.Forms.DataGridViewCellStyle(); + System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle32 = new System.Windows.Forms.DataGridViewCellStyle(); this.splitContainer1 = new System.Windows.Forms.SplitContainer(); this.ucGroupBoxEx2 = new TemuKJD.UserComponent.UcGroupBoxEx(this.components); + this.txtStockNum = new System.Windows.Forms.TextBox(); + this.txtShippingPriceTimes = new System.Windows.Forms.TextBox(); + this.txtAddTimes = new System.Windows.Forms.TextBox(); + this.txtAddMorePrice = new System.Windows.Forms.TextBox(); this.label6 = new System.Windows.Forms.Label(); this.chkRemoveSpecialChar = new TemuKJD.UserComponent.UcCheckBox(this.components); - this.txtShippingPriceTimes = new System.Windows.Forms.TextBox(); this.label13 = new System.Windows.Forms.Label(); this.btnStop = new DevComponents.DotNetBar.PanelEx(); this.label7 = new System.Windows.Forms.Label(); @@ -52,7 +55,6 @@ namespace TemuKJD.WXForms.ProductForms this.chkAddMorePriceFirst = new TemuKJD.UserComponent.UcCheckBox(this.components); this.btnClearDgv = new DevComponents.DotNetBar.PanelEx(); this.label14 = new System.Windows.Forms.Label(); - this.label15 = new System.Windows.Forms.Label(); this.pnlStep = new System.Windows.Forms.Panel(); this.panel3 = new System.Windows.Forms.Panel(); this.fPnlPriceRule = new System.Windows.Forms.FlowLayoutPanel(); @@ -60,11 +62,8 @@ namespace TemuKJD.WXForms.ProductForms this.ucAddPrice2 = new TemuKJD.PDDForms.ProductSelectForms.UcAddPrice(); this.lblNewAddPrice = new System.Windows.Forms.Label(); this.txtWaitSeconds = new System.Windows.Forms.TextBox(); - this.txtAddMorePrice = new System.Windows.Forms.TextBox(); - this.txtAddTimes = new System.Windows.Forms.TextBox(); this.label10 = new System.Windows.Forms.Label(); this.btnUpload = new DevComponents.DotNetBar.PanelEx(); - this.txtStockNum = new System.Windows.Forms.TextBox(); this.label4 = new System.Windows.Forms.Label(); this.label9 = new System.Windows.Forms.Label(); this.chkStepAddPrice = new TemuKJD.UserComponent.UcCheckBox(this.components); @@ -101,6 +100,7 @@ namespace TemuKJD.WXForms.ProductForms this.label22 = new System.Windows.Forms.Label(); this.label3 = new System.Windows.Forms.Label(); this.label39 = new System.Windows.Forms.Label(); + this.chkSkipReplaceText = new TemuKJD.UserComponent.UcCheckBox(this.components); this.佣金上货 = new System.Windows.Forms.TabPage(); this.label31 = new System.Windows.Forms.Label(); this.txtCommissionChangeValue = new System.Windows.Forms.TextBox(); @@ -136,17 +136,19 @@ namespace TemuKJD.WXForms.ProductForms this.chkRandomImgBorder = new TemuKJD.UserComponent.UcCheckBox(this.components); this.line1 = new DevComponents.DotNetBar.Controls.Line(); this.label37 = new System.Windows.Forms.Label(); + this.label15 = new System.Windows.Forms.Label(); this.ucGroupBoxEx4 = new TemuKJD.UserComponent.UcGroupBoxEx(this.components); + this.cmbNotes = new System.Windows.Forms.ComboBox(); this.cmbJstInitSet = new System.Windows.Forms.ComboBox(); this.pbSelectProd = new System.Windows.Forms.PictureBox(); this.chkSevenDays = new TemuKJD.UserComponent.UcCheckBox(this.components); this.chkSkipQualification = new TemuKJD.UserComponent.UcCheckBox(this.components); this.lblGoodsCount = new System.Windows.Forms.Label(); this.txtRandomFissionProductCount = new System.Windows.Forms.TextBox(); + this.lblJstInitSet = new System.Windows.Forms.Label(); this.btnSwitchCatType = new DevComponents.DotNetBar.PanelEx(); this.cmbHot = new System.Windows.Forms.ComboBox(); this.btnProdDb = new DevComponents.DotNetBar.PanelEx(); - this.chkWXComplateProd = new TemuKJD.UserComponent.UcCheckBox(this.components); this.txtAddCount = new System.Windows.Forms.TextBox(); this.txtSearchGoodsName = new System.Windows.Forms.TextBox(); this.cmbSourceType = new System.Windows.Forms.ComboBox(); @@ -170,7 +172,8 @@ namespace TemuKJD.WXForms.ProductForms this.label19 = new System.Windows.Forms.Label(); this.chkRandomFissionProduct = new TemuKJD.UserComponent.UcCheckBox(this.components); this.lblWaitToUp = new System.Windows.Forms.Label(); - this.lblJstInitSet = new System.Windows.Forms.Label(); + this.chkWXComplateProd = new TemuKJD.UserComponent.UcCheckBox(this.components); + this.lblNotes = new System.Windows.Forms.Label(); this.ucGroupBoxEx1 = new TemuKJD.UserComponent.UcGroupBoxEx(this.components); this.cmbFilterShopGroup = new TemuKJD.UserComponent.UcComboBoxMutiSelect(); this.label24 = new System.Windows.Forms.Label(); @@ -303,9 +306,12 @@ namespace TemuKJD.WXForms.ProductForms this.ucGroupBoxEx2.AutoSizeMode = System.Windows.Forms.AutoSizeMode.GrowAndShrink; 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.txtStockNum); + this.ucGroupBoxEx2.Controls.Add(this.txtShippingPriceTimes); + this.ucGroupBoxEx2.Controls.Add(this.txtAddTimes); + this.ucGroupBoxEx2.Controls.Add(this.txtAddMorePrice); this.ucGroupBoxEx2.Controls.Add(this.label6); this.ucGroupBoxEx2.Controls.Add(this.chkRemoveSpecialChar); - this.ucGroupBoxEx2.Controls.Add(this.txtShippingPriceTimes); this.ucGroupBoxEx2.Controls.Add(this.label13); this.ucGroupBoxEx2.Controls.Add(this.btnStop); this.ucGroupBoxEx2.Controls.Add(this.label7); @@ -313,31 +319,71 @@ namespace TemuKJD.WXForms.ProductForms this.ucGroupBoxEx2.Controls.Add(this.chkAddMorePriceFirst); this.ucGroupBoxEx2.Controls.Add(this.btnClearDgv); this.ucGroupBoxEx2.Controls.Add(this.label14); - this.ucGroupBoxEx2.Controls.Add(this.label15); this.ucGroupBoxEx2.Controls.Add(this.pnlStep); this.ucGroupBoxEx2.Controls.Add(this.lblNewAddPrice); this.ucGroupBoxEx2.Controls.Add(this.txtWaitSeconds); - this.ucGroupBoxEx2.Controls.Add(this.txtAddMorePrice); - this.ucGroupBoxEx2.Controls.Add(this.txtAddTimes); this.ucGroupBoxEx2.Controls.Add(this.label10); this.ucGroupBoxEx2.Controls.Add(this.btnUpload); - this.ucGroupBoxEx2.Controls.Add(this.txtStockNum); this.ucGroupBoxEx2.Controls.Add(this.label4); this.ucGroupBoxEx2.Controls.Add(this.label9); this.ucGroupBoxEx2.Controls.Add(this.chkStepAddPrice); this.ucGroupBoxEx2.Controls.Add(this.ucTabControlMetro1); - this.ucGroupBoxEx2.Location = new System.Drawing.Point(595, 2); + this.ucGroupBoxEx2.Controls.Add(this.label15); + this.ucGroupBoxEx2.Location = new System.Drawing.Point(608, 2); this.ucGroupBoxEx2.Name = "ucGroupBoxEx2"; - this.ucGroupBoxEx2.Size = new System.Drawing.Size(1113, 165); + this.ucGroupBoxEx2.Size = new System.Drawing.Size(1100, 165); this.ucGroupBoxEx2.TabIndex = 667; this.ucGroupBoxEx2.TabStop = false; this.ucGroupBoxEx2.Text = "商品上传"; // + // txtStockNum + // + this.txtStockNum.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); + this.txtStockNum.Location = new System.Drawing.Point(378, 135); + this.txtStockNum.Margin = new System.Windows.Forms.Padding(0, 2, 0, 2); + this.txtStockNum.Name = "txtStockNum"; + this.txtStockNum.Size = new System.Drawing.Size(30, 23); + this.txtStockNum.TabIndex = 530; + this.txtStockNum.Text = "99"; + this.txtStockNum.TextChanged += new System.EventHandler(this.txtAddPrice_TextChanged); + // + // txtShippingPriceTimes + // + this.txtShippingPriceTimes.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); + this.txtShippingPriceTimes.Location = new System.Drawing.Point(319, 135); + this.txtShippingPriceTimes.Margin = new System.Windows.Forms.Padding(0, 2, 0, 2); + this.txtShippingPriceTimes.Name = "txtShippingPriceTimes"; + this.txtShippingPriceTimes.Size = new System.Drawing.Size(28, 23); + this.txtShippingPriceTimes.TabIndex = 810; + this.txtShippingPriceTimes.Text = "1.5"; + // + // txtAddTimes + // + this.txtAddTimes.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); + this.txtAddTimes.Location = new System.Drawing.Point(76, 135); + this.txtAddTimes.Margin = new System.Windows.Forms.Padding(0, 2, 0, 2); + this.txtAddTimes.Name = "txtAddTimes"; + this.txtAddTimes.Size = new System.Drawing.Size(28, 23); + this.txtAddTimes.TabIndex = 532; + this.txtAddTimes.Text = "1.3"; + this.txtAddTimes.TextChanged += new System.EventHandler(this.txtAddPrice_TextChanged); + // + // txtAddMorePrice + // + this.txtAddMorePrice.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); + this.txtAddMorePrice.Location = new System.Drawing.Point(144, 135); + this.txtAddMorePrice.Margin = new System.Windows.Forms.Padding(0, 2, 0, 2); + this.txtAddMorePrice.Name = "txtAddMorePrice"; + this.txtAddMorePrice.Size = new System.Drawing.Size(28, 23); + this.txtAddMorePrice.TabIndex = 535; + this.txtAddMorePrice.Text = "1.0"; + this.txtAddMorePrice.TextChanged += new System.EventHandler(this.txtAddPrice_TextChanged); + // // label6 // this.label6.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); this.label6.AutoSize = true; - this.label6.Location = new System.Drawing.Point(939, 15); + this.label6.Location = new System.Drawing.Point(930, 15); this.label6.Margin = new System.Windows.Forms.Padding(6, 0, 0, 0); this.label6.Name = "label6"; this.label6.Size = new System.Drawing.Size(56, 17); @@ -350,28 +396,18 @@ namespace TemuKJD.WXForms.ProductForms this.chkRemoveSpecialChar.AutoSize = true; this.chkRemoveSpecialChar.Checked = true; this.chkRemoveSpecialChar.CheckState = System.Windows.Forms.CheckState.Checked; - this.chkRemoveSpecialChar.Location = new System.Drawing.Point(797, 13); + this.chkRemoveSpecialChar.Location = new System.Drawing.Point(788, 13); this.chkRemoveSpecialChar.Name = "chkRemoveSpecialChar"; this.chkRemoveSpecialChar.Size = new System.Drawing.Size(147, 21); this.chkRemoveSpecialChar.TabIndex = 896; this.chkRemoveSpecialChar.Text = "移除标题前部特殊符号"; this.chkRemoveSpecialChar.UseVisualStyleBackColor = true; // - // txtShippingPriceTimes - // - this.txtShippingPriceTimes.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); - this.txtShippingPriceTimes.Location = new System.Drawing.Point(327, 135); - this.txtShippingPriceTimes.Margin = new System.Windows.Forms.Padding(0, 2, 0, 2); - this.txtShippingPriceTimes.Name = "txtShippingPriceTimes"; - this.txtShippingPriceTimes.Size = new System.Drawing.Size(30, 23); - this.txtShippingPriceTimes.TabIndex = 810; - this.txtShippingPriceTimes.Text = "1.5"; - // // 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(290, 138); + this.label13.Location = new System.Drawing.Point(282, 138); this.label13.Margin = new System.Windows.Forms.Padding(6, 0, 0, 0); this.label13.Name = "label13"; this.label13.Size = new System.Drawing.Size(41, 17); @@ -384,10 +420,10 @@ namespace TemuKJD.WXForms.ProductForms this.btnStop.CanvasColor = System.Drawing.SystemColors.Control; this.btnStop.ColorSchemeStyle = DevComponents.DotNetBar.eDotNetBarStyle.StyleManagerControlled; this.btnStop.DisabledBackColor = System.Drawing.Color.Empty; - this.btnStop.Location = new System.Drawing.Point(1041, 44); + this.btnStop.Location = new System.Drawing.Point(1032, 44); this.btnStop.Margin = new System.Windows.Forms.Padding(4, 2, 2, 2); this.btnStop.Name = "btnStop"; - this.btnStop.Size = new System.Drawing.Size(64, 23); + this.btnStop.Size = new System.Drawing.Size(60, 23); this.btnStop.Style.Alignment = System.Drawing.StringAlignment.Center; this.btnStop.Style.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(185)))), ((int)(((byte)(215)))), ((int)(((byte)(255))))); this.btnStop.Style.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(185)))), ((int)(((byte)(215)))), ((int)(((byte)(255))))); @@ -408,7 +444,7 @@ namespace TemuKJD.WXForms.ProductForms // this.label7.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); this.label7.AutoSize = true; - this.label7.Location = new System.Drawing.Point(1019, 15); + this.label7.Location = new System.Drawing.Point(1010, 15); this.label7.Margin = new System.Windows.Forms.Padding(6, 0, 0, 0); this.label7.Name = "label7"; this.label7.Size = new System.Drawing.Size(20, 17); @@ -420,7 +456,7 @@ namespace TemuKJD.WXForms.ProductForms this.chkRandomCompanyProd.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); this.chkRandomCompanyProd.Checked = true; this.chkRandomCompanyProd.CheckState = System.Windows.Forms.CheckState.Checked; - this.chkRandomCompanyProd.Location = new System.Drawing.Point(699, 13); + this.chkRandomCompanyProd.Location = new System.Drawing.Point(690, 13); this.chkRandomCompanyProd.Name = "chkRandomCompanyProd"; this.chkRandomCompanyProd.Size = new System.Drawing.Size(87, 21); this.chkRandomCompanyProd.TabIndex = 889; @@ -432,7 +468,7 @@ namespace TemuKJD.WXForms.ProductForms // this.chkAddMorePriceFirst.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); this.chkAddMorePriceFirst.AutoSize = true; - this.chkAddMorePriceFirst.Location = new System.Drawing.Point(197, 136); + this.chkAddMorePriceFirst.Location = new System.Drawing.Point(190, 136); this.chkAddMorePriceFirst.Name = "chkAddMorePriceFirst"; this.chkAddMorePriceFirst.Size = new System.Drawing.Size(99, 21); this.chkAddMorePriceFirst.TabIndex = 625; @@ -446,10 +482,10 @@ namespace TemuKJD.WXForms.ProductForms this.btnClearDgv.CanvasColor = System.Drawing.SystemColors.Control; this.btnClearDgv.ColorSchemeStyle = DevComponents.DotNetBar.eDotNetBarStyle.StyleManagerControlled; this.btnClearDgv.DisabledBackColor = System.Drawing.Color.Empty; - this.btnClearDgv.Location = new System.Drawing.Point(1041, 72); + this.btnClearDgv.Location = new System.Drawing.Point(1032, 72); this.btnClearDgv.Margin = new System.Windows.Forms.Padding(4, 2, 2, 2); this.btnClearDgv.Name = "btnClearDgv"; - this.btnClearDgv.Size = new System.Drawing.Size(64, 23); + this.btnClearDgv.Size = new System.Drawing.Size(60, 23); this.btnClearDgv.Style.Alignment = System.Drawing.StringAlignment.Center; this.btnClearDgv.Style.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(185)))), ((int)(((byte)(215)))), ((int)(((byte)(255))))); this.btnClearDgv.Style.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(185)))), ((int)(((byte)(215)))), ((int)(((byte)(255))))); @@ -478,17 +514,6 @@ namespace TemuKJD.WXForms.ProductForms this.label14.TabIndex = 599; this.label14.Text = "阶梯加价未\r\n勾选或条件\r\n不满足,按"; // - // label15 - // - this.label15.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); - this.label15.AutoSize = true; - this.label15.Location = new System.Drawing.Point(178, 138); - this.label15.Margin = new System.Windows.Forms.Padding(6, 0, 0, 0); - this.label15.Name = "label15"; - this.label15.Size = new System.Drawing.Size(20, 17); - this.label15.TabIndex = 588; - this.label15.Text = "元"; - // // pnlStep // this.pnlStep.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) @@ -497,7 +522,7 @@ namespace TemuKJD.WXForms.ProductForms this.pnlStep.Controls.Add(this.panel3); this.pnlStep.Location = new System.Drawing.Point(76, 17); this.pnlStep.Name = "pnlStep"; - this.pnlStep.Size = new System.Drawing.Size(342, 114); + this.pnlStep.Size = new System.Drawing.Size(332, 114); this.pnlStep.TabIndex = 577; // // panel3 @@ -510,7 +535,7 @@ namespace TemuKJD.WXForms.ProductForms this.panel3.Controls.Add(this.fPnlPriceRule); this.panel3.Location = new System.Drawing.Point(1, 1); this.panel3.Name = "panel3"; - this.panel3.Size = new System.Drawing.Size(340, 112); + this.panel3.Size = new System.Drawing.Size(330, 112); this.panel3.TabIndex = 541; // // fPnlPriceRule @@ -522,7 +547,7 @@ namespace TemuKJD.WXForms.ProductForms this.fPnlPriceRule.FlowDirection = System.Windows.Forms.FlowDirection.TopDown; this.fPnlPriceRule.Location = new System.Drawing.Point(0, 0); this.fPnlPriceRule.Name = "fPnlPriceRule"; - this.fPnlPriceRule.Size = new System.Drawing.Size(426, 58); + this.fPnlPriceRule.Size = new System.Drawing.Size(416, 58); this.fPnlPriceRule.TabIndex = 7; // // ucAddPrice1 @@ -559,7 +584,7 @@ namespace TemuKJD.WXForms.ProductForms 0, 0, 0}); - this.ucAddPrice1.Size = new System.Drawing.Size(420, 23); + this.ucAddPrice1.Size = new System.Drawing.Size(410, 23); this.ucAddPrice1.TabIndex = 12; // // ucAddPrice2 @@ -596,7 +621,7 @@ namespace TemuKJD.WXForms.ProductForms 0, 0, 0}); - this.ucAddPrice2.Size = new System.Drawing.Size(420, 23); + this.ucAddPrice2.Size = new System.Drawing.Size(410, 23); this.ucAddPrice2.TabIndex = 13; // // lblNewAddPrice @@ -615,7 +640,7 @@ namespace TemuKJD.WXForms.ProductForms // txtWaitSeconds // this.txtWaitSeconds.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); - this.txtWaitSeconds.Location = new System.Drawing.Point(995, 12); + this.txtWaitSeconds.Location = new System.Drawing.Point(986, 12); this.txtWaitSeconds.Margin = new System.Windows.Forms.Padding(0, 2, 0, 2); this.txtWaitSeconds.Name = "txtWaitSeconds"; this.txtWaitSeconds.Size = new System.Drawing.Size(24, 23); @@ -623,33 +648,11 @@ namespace TemuKJD.WXForms.ProductForms this.txtWaitSeconds.Text = "10"; this.txtWaitSeconds.TextChanged += new System.EventHandler(this.txtWaitSeconds_TextChanged); // - // txtAddMorePrice - // - this.txtAddMorePrice.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); - this.txtAddMorePrice.Location = new System.Drawing.Point(148, 135); - this.txtAddMorePrice.Margin = new System.Windows.Forms.Padding(0, 2, 0, 2); - this.txtAddMorePrice.Name = "txtAddMorePrice"; - this.txtAddMorePrice.Size = new System.Drawing.Size(30, 23); - this.txtAddMorePrice.TabIndex = 535; - this.txtAddMorePrice.Text = "1.0"; - this.txtAddMorePrice.TextChanged += new System.EventHandler(this.txtAddPrice_TextChanged); - // - // txtAddTimes - // - this.txtAddTimes.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); - this.txtAddTimes.Location = new System.Drawing.Point(76, 135); - this.txtAddTimes.Margin = new System.Windows.Forms.Padding(0, 2, 0, 2); - this.txtAddTimes.Name = "txtAddTimes"; - this.txtAddTimes.Size = new System.Drawing.Size(30, 23); - this.txtAddTimes.TabIndex = 532; - this.txtAddTimes.Text = "1.3"; - this.txtAddTimes.TextChanged += new System.EventHandler(this.txtAddPrice_TextChanged); - // // label10 // this.label10.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); this.label10.AutoSize = true; - this.label10.Location = new System.Drawing.Point(106, 138); + this.label10.Location = new System.Drawing.Point(103, 138); this.label10.Margin = new System.Windows.Forms.Padding(6, 0, 0, 0); this.label10.Name = "label10"; this.label10.Size = new System.Drawing.Size(44, 17); @@ -663,9 +666,9 @@ namespace TemuKJD.WXForms.ProductForms this.btnUpload.Cursor = System.Windows.Forms.Cursors.Hand; this.btnUpload.DisabledBackColor = System.Drawing.Color.Empty; this.btnUpload.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); - this.btnUpload.Location = new System.Drawing.Point(1041, 16); + this.btnUpload.Location = new System.Drawing.Point(1032, 16); this.btnUpload.Name = "btnUpload"; - this.btnUpload.Size = new System.Drawing.Size(64, 23); + this.btnUpload.Size = new System.Drawing.Size(60, 23); this.btnUpload.Style.Alignment = System.Drawing.StringAlignment.Center; this.btnUpload.Style.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255))))); this.btnUpload.Style.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255))))); @@ -681,22 +684,11 @@ namespace TemuKJD.WXForms.ProductForms this.btnUpload.Text = "批量上传"; this.btnUpload.Click += new System.EventHandler(this.btnUpload_Click); // - // txtStockNum - // - this.txtStockNum.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); - this.txtStockNum.Location = new System.Drawing.Point(388, 135); - this.txtStockNum.Margin = new System.Windows.Forms.Padding(0, 2, 0, 2); - this.txtStockNum.Name = "txtStockNum"; - this.txtStockNum.Size = new System.Drawing.Size(30, 23); - this.txtStockNum.TabIndex = 530; - this.txtStockNum.Text = "99"; - this.txtStockNum.TextChanged += new System.EventHandler(this.txtAddPrice_TextChanged); - // // label4 // this.label4.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); this.label4.AutoSize = true; - this.label4.Location = new System.Drawing.Point(357, 138); + this.label4.Location = new System.Drawing.Point(348, 138); this.label4.Margin = new System.Windows.Forms.Padding(6, 0, 0, 0); this.label4.Name = "label4"; this.label4.Size = new System.Drawing.Size(32, 17); @@ -736,11 +728,11 @@ namespace TemuKJD.WXForms.ProductForms this.ucTabControlMetro1.Controls.Add(this.佣金上货); this.ucTabControlMetro1.Controls.Add(this.裂变调试); this.ucTabControlMetro1.ItemSize = new System.Drawing.Size(72, 24); - this.ucTabControlMetro1.Location = new System.Drawing.Point(421, 11); + this.ucTabControlMetro1.Location = new System.Drawing.Point(411, 11); this.ucTabControlMetro1.Name = "ucTabControlMetro1"; this.ucTabControlMetro1.SelectedIndex = 0; this.ucTabControlMetro1.ShowCloseButton = false; - this.ucTabControlMetro1.Size = new System.Drawing.Size(617, 150); + this.ucTabControlMetro1.Size = new System.Drawing.Size(619, 150); this.ucTabControlMetro1.TabIndex = 822; this.ucTabControlMetro1.TabSelectColor = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255))))); this.ucTabControlMetro1.TabSelectTextColor = System.Drawing.Color.Gray; @@ -779,10 +771,11 @@ namespace TemuKJD.WXForms.ProductForms this.上传参数.Controls.Add(this.label22); this.上传参数.Controls.Add(this.label3); this.上传参数.Controls.Add(this.label39); + this.上传参数.Controls.Add(this.chkSkipReplaceText); this.上传参数.Location = new System.Drawing.Point(4, 28); this.上传参数.Name = "上传参数"; this.上传参数.Padding = new System.Windows.Forms.Padding(3); - this.上传参数.Size = new System.Drawing.Size(609, 118); + this.上传参数.Size = new System.Drawing.Size(611, 118); this.上传参数.TabIndex = 1; this.上传参数.Text = "上传参数"; this.上传参数.UseVisualStyleBackColor = true; @@ -835,7 +828,7 @@ namespace TemuKJD.WXForms.ProductForms // this.chkUseRecommand.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); this.chkUseRecommand.AutoSize = true; - this.chkUseRecommand.Location = new System.Drawing.Point(490, 51); + this.chkUseRecommand.Location = new System.Drawing.Point(492, 51); this.chkUseRecommand.Name = "chkUseRecommand"; this.chkUseRecommand.Size = new System.Drawing.Size(123, 21); this.chkUseRecommand.TabIndex = 907; @@ -922,7 +915,7 @@ namespace TemuKJD.WXForms.ProductForms // this.chkUpDraft.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); this.chkUpDraft.AutoSize = true; - this.chkUpDraft.Location = new System.Drawing.Point(490, 72); + this.chkUpDraft.Location = new System.Drawing.Point(492, 72); this.chkUpDraft.Name = "chkUpDraft"; this.chkUpDraft.Size = new System.Drawing.Size(87, 21); this.chkUpDraft.TabIndex = 769; @@ -985,7 +978,7 @@ namespace TemuKJD.WXForms.ProductForms this.txtReplaceText.MaxLength = 1000000; this.txtReplaceText.Multiline = true; this.txtReplaceText.Name = "txtReplaceText"; - this.txtReplaceText.Size = new System.Drawing.Size(420, 40); + this.txtReplaceText.Size = new System.Drawing.Size(422, 40); this.txtReplaceText.TabIndex = 740; this.txtReplaceText.Text = "真丝,蚕丝,香云纱,羊绒,羊毛,羊羔绒,羊羔毛,羽绒,皮草"; this.txtReplaceText.TextChanged += new System.EventHandler(this.txtReplaceText_TextChanged); @@ -1123,7 +1116,7 @@ namespace TemuKJD.WXForms.ProductForms // label3 // this.label3.AutoSize = true; - this.label3.Location = new System.Drawing.Point(1, 52); + this.label3.Location = new System.Drawing.Point(1, 53); this.label3.Margin = new System.Windows.Forms.Padding(3, 0, 0, 0); this.label3.Name = "label3"; this.label3.Size = new System.Drawing.Size(68, 17); @@ -1140,6 +1133,17 @@ namespace TemuKJD.WXForms.ProductForms this.label39.TabIndex = 911; this.label39.Text = "或>"; // + // chkSkipReplaceText + // + this.chkSkipReplaceText.AutoSize = true; + this.chkSkipReplaceText.Location = new System.Drawing.Point(0, 70); + this.chkSkipReplaceText.Name = "chkSkipReplaceText"; + this.chkSkipReplaceText.Size = new System.Drawing.Size(75, 21); + this.chkSkipReplaceText.TabIndex = 921; + this.chkSkipReplaceText.Text = "跳过商品"; + this.chkSkipReplaceText.UseVisualStyleBackColor = true; + this.chkSkipReplaceText.CheckedChanged += new System.EventHandler(this.chkSkipReplaceText_CheckedChanged); + // // 佣金上货 // this.佣金上货.Controls.Add(this.label31); @@ -1157,7 +1161,7 @@ namespace TemuKJD.WXForms.ProductForms this.佣金上货.Location = new System.Drawing.Point(4, 28); this.佣金上货.Name = "佣金上货"; this.佣金上货.Padding = new System.Windows.Forms.Padding(3); - this.佣金上货.Size = new System.Drawing.Size(609, 118); + this.佣金上货.Size = new System.Drawing.Size(611, 118); this.佣金上货.TabIndex = 2; this.佣金上货.Text = "佣金上货"; this.佣金上货.UseVisualStyleBackColor = true; @@ -1325,7 +1329,7 @@ namespace TemuKJD.WXForms.ProductForms this.裂变调试.Location = new System.Drawing.Point(4, 28); this.裂变调试.Name = "裂变调试"; this.裂变调试.Padding = new System.Windows.Forms.Padding(3); - this.裂变调试.Size = new System.Drawing.Size(609, 118); + this.裂变调试.Size = new System.Drawing.Size(611, 118); this.裂变调试.TabIndex = 3; this.裂变调试.Text = "裂变调试"; this.裂变调试.UseVisualStyleBackColor = true; @@ -1339,7 +1343,7 @@ namespace TemuKJD.WXForms.ProductForms this.txtFissionTitle.Multiline = true; this.txtFissionTitle.Name = "txtFissionTitle"; this.txtFissionTitle.ScrollBars = System.Windows.Forms.ScrollBars.Both; - this.txtFissionTitle.Size = new System.Drawing.Size(522, 79); + this.txtFissionTitle.Size = new System.Drawing.Size(524, 79); this.txtFissionTitle.TabIndex = 0; this.txtFissionTitle.TextChanged += new System.EventHandler(this.txtFissionTitle_TextChanged); // @@ -1454,7 +1458,7 @@ namespace TemuKJD.WXForms.ProductForms // this.label32.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); this.label32.AutoSize = true; - this.label32.Location = new System.Drawing.Point(575, 57); + this.label32.Location = new System.Drawing.Point(577, 57); this.label32.Margin = new System.Windows.Forms.Padding(6, 0, 0, 0); this.label32.Name = "label32"; this.label32.Size = new System.Drawing.Size(20, 17); @@ -1465,7 +1469,7 @@ namespace TemuKJD.WXForms.ProductForms // txtAiImgCount // this.txtAiImgCount.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); - this.txtAiImgCount.Location = new System.Drawing.Point(550, 54); + this.txtAiImgCount.Location = new System.Drawing.Point(552, 54); this.txtAiImgCount.Margin = new System.Windows.Forms.Padding(0, 2, 0, 2); this.txtAiImgCount.Name = "txtAiImgCount"; this.txtAiImgCount.Size = new System.Drawing.Size(24, 23); @@ -1477,7 +1481,7 @@ namespace TemuKJD.WXForms.ProductForms // this.chkAiImage.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); this.chkAiImage.AutoSize = true; - this.chkAiImage.Location = new System.Drawing.Point(481, 55); + this.chkAiImage.Location = new System.Drawing.Point(483, 55); this.chkAiImage.Name = "chkAiImage"; this.chkAiImage.Size = new System.Drawing.Size(74, 21); this.chkAiImage.TabIndex = 892; @@ -1558,22 +1562,34 @@ namespace TemuKJD.WXForms.ProductForms this.label37.TabIndex = 907; this.label37.Text = "元"; // + // label15 + // + this.label15.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); + this.label15.AutoSize = true; + this.label15.Location = new System.Drawing.Point(171, 138); + this.label15.Margin = new System.Windows.Forms.Padding(6, 0, 0, 0); + this.label15.Name = "label15"; + this.label15.Size = new System.Drawing.Size(20, 17); + this.label15.TabIndex = 588; + this.label15.Text = "元"; + // // ucGroupBoxEx4 // this.ucGroupBoxEx4.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) | System.Windows.Forms.AnchorStyles.Left))); this.ucGroupBoxEx4.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255))))); this.ucGroupBoxEx4.BorderStyle = TemuKJD.UserComponent.UcGroupBoxEx.GroupBoxBorderStyle.ROUND; + this.ucGroupBoxEx4.Controls.Add(this.cmbNotes); this.ucGroupBoxEx4.Controls.Add(this.cmbJstInitSet); this.ucGroupBoxEx4.Controls.Add(this.pbSelectProd); this.ucGroupBoxEx4.Controls.Add(this.chkSevenDays); this.ucGroupBoxEx4.Controls.Add(this.chkSkipQualification); this.ucGroupBoxEx4.Controls.Add(this.lblGoodsCount); this.ucGroupBoxEx4.Controls.Add(this.txtRandomFissionProductCount); + this.ucGroupBoxEx4.Controls.Add(this.lblJstInitSet); this.ucGroupBoxEx4.Controls.Add(this.btnSwitchCatType); this.ucGroupBoxEx4.Controls.Add(this.cmbHot); this.ucGroupBoxEx4.Controls.Add(this.btnProdDb); - this.ucGroupBoxEx4.Controls.Add(this.chkWXComplateProd); this.ucGroupBoxEx4.Controls.Add(this.txtAddCount); this.ucGroupBoxEx4.Controls.Add(this.txtSearchGoodsName); this.ucGroupBoxEx4.Controls.Add(this.cmbSourceType); @@ -1597,14 +1613,24 @@ namespace TemuKJD.WXForms.ProductForms this.ucGroupBoxEx4.Controls.Add(this.label19); this.ucGroupBoxEx4.Controls.Add(this.chkRandomFissionProduct); this.ucGroupBoxEx4.Controls.Add(this.lblWaitToUp); - this.ucGroupBoxEx4.Controls.Add(this.lblJstInitSet); + this.ucGroupBoxEx4.Controls.Add(this.chkWXComplateProd); + this.ucGroupBoxEx4.Controls.Add(this.lblNotes); this.ucGroupBoxEx4.Location = new System.Drawing.Point(186, 2); this.ucGroupBoxEx4.Name = "ucGroupBoxEx4"; - this.ucGroupBoxEx4.Size = new System.Drawing.Size(410, 165); + this.ucGroupBoxEx4.Size = new System.Drawing.Size(423, 165); this.ucGroupBoxEx4.TabIndex = 666; this.ucGroupBoxEx4.TabStop = false; this.ucGroupBoxEx4.Text = "待传商品"; // + // cmbNotes + // + this.cmbNotes.FormattingEnabled = true; + this.cmbNotes.Location = new System.Drawing.Point(322, 46); + this.cmbNotes.Name = "cmbNotes"; + this.cmbNotes.Size = new System.Drawing.Size(96, 25); + this.cmbNotes.TabIndex = 823; + this.cmbNotes.Visible = false; + // // cmbJstInitSet // this.cmbJstInitSet.FormattingEnabled = true; @@ -1612,7 +1638,7 @@ namespace TemuKJD.WXForms.ProductForms "", "是", "否"}); - this.cmbJstInitSet.Location = new System.Drawing.Point(228, 132); + this.cmbJstInitSet.Location = new System.Drawing.Point(242, 132); this.cmbJstInitSet.Name = "cmbJstInitSet"; this.cmbJstInitSet.Size = new System.Drawing.Size(33, 25); this.cmbJstInitSet.TabIndex = 697; @@ -1667,7 +1693,7 @@ namespace TemuKJD.WXForms.ProductForms this.txtRandomFissionProductCount.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); this.txtRandomFissionProductCount.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; this.txtRandomFissionProductCount.Font = new System.Drawing.Font("微软雅黑", 10F); - this.txtRandomFissionProductCount.Location = new System.Drawing.Point(244, 100); + this.txtRandomFissionProductCount.Location = new System.Drawing.Point(253, 100); this.txtRandomFissionProductCount.Margin = new System.Windows.Forms.Padding(0, 2, 0, 2); this.txtRandomFissionProductCount.Name = "txtRandomFissionProductCount"; this.txtRandomFissionProductCount.Size = new System.Drawing.Size(32, 25); @@ -1675,6 +1701,18 @@ namespace TemuKJD.WXForms.ProductForms this.txtRandomFissionProductCount.Text = "100"; this.txtRandomFissionProductCount.Visible = false; // + // lblJstInitSet + // + this.lblJstInitSet.AutoSize = true; + this.lblJstInitSet.BackColor = System.Drawing.Color.Transparent; + this.lblJstInitSet.Location = new System.Drawing.Point(214, 136); + this.lblJstInitSet.Margin = new System.Windows.Forms.Padding(6, 0, 0, 0); + this.lblJstInitSet.Name = "lblJstInitSet"; + this.lblJstInitSet.Size = new System.Drawing.Size(32, 17); + this.lblJstInitSet.TabIndex = 696; + this.lblJstInitSet.Text = "分销"; + this.lblJstInitSet.Visible = false; + // // btnSwitchCatType // this.btnSwitchCatType.ColorSchemeStyle = DevComponents.DotNetBar.eDotNetBarStyle.StyleManagerControlled; @@ -1706,9 +1744,9 @@ namespace TemuKJD.WXForms.ProductForms "", "爆款数据", "普通商品"}); - this.cmbHot.Location = new System.Drawing.Point(312, 73); + this.cmbHot.Location = new System.Drawing.Point(322, 73); this.cmbHot.Name = "cmbHot"; - this.cmbHot.Size = new System.Drawing.Size(92, 25); + this.cmbHot.Size = new System.Drawing.Size(96, 25); this.cmbHot.TabIndex = 837; this.cmbHot.Text = "普通商品"; this.cmbHot.Visible = false; @@ -1721,7 +1759,7 @@ namespace TemuKJD.WXForms.ProductForms this.btnProdDb.Cursor = System.Windows.Forms.Cursors.Hand; this.btnProdDb.DisabledBackColor = System.Drawing.Color.Empty; this.btnProdDb.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); - this.btnProdDb.Location = new System.Drawing.Point(373, 132); + this.btnProdDb.Location = new System.Drawing.Point(387, 132); this.btnProdDb.Name = "btnProdDb"; this.btnProdDb.Size = new System.Drawing.Size(31, 25); this.btnProdDb.Style.Alignment = System.Drawing.StringAlignment.Center; @@ -1739,21 +1777,11 @@ namespace TemuKJD.WXForms.ProductForms this.btnProdDb.Text = "选品"; this.btnProdDb.Click += new System.EventHandler(this.btnProdDb_Click); // - // chkWXComplateProd - // - this.chkWXComplateProd.Location = new System.Drawing.Point(283, 102); - this.chkWXComplateProd.Name = "chkWXComplateProd"; - this.chkWXComplateProd.Size = new System.Drawing.Size(87, 21); - this.chkWXComplateProd.TabIndex = 807; - this.chkWXComplateProd.Text = "微信回采商品"; - this.chkWXComplateProd.UseVisualStyleBackColor = true; - this.chkWXComplateProd.Visible = false; - // // txtAddCount // this.txtAddCount.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; this.txtAddCount.Font = new System.Drawing.Font("微软雅黑", 10F); - this.txtAddCount.Location = new System.Drawing.Point(296, 132); + this.txtAddCount.Location = new System.Drawing.Point(310, 132); this.txtAddCount.Margin = new System.Windows.Forms.Padding(0, 2, 0, 2); this.txtAddCount.Name = "txtAddCount"; this.txtAddCount.Size = new System.Drawing.Size(29, 25); @@ -1764,10 +1792,10 @@ namespace TemuKJD.WXForms.ProductForms // this.txtSearchGoodsName.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; this.txtSearchGoodsName.Font = new System.Drawing.Font("微软雅黑", 10F); - this.txtSearchGoodsName.Location = new System.Drawing.Point(184, 46); + this.txtSearchGoodsName.Location = new System.Drawing.Point(189, 46); this.txtSearchGoodsName.Margin = new System.Windows.Forms.Padding(0, 2, 0, 2); this.txtSearchGoodsName.Name = "txtSearchGoodsName"; - this.txtSearchGoodsName.Size = new System.Drawing.Size(220, 25); + this.txtSearchGoodsName.Size = new System.Drawing.Size(96, 25); this.txtSearchGoodsName.TabIndex = 795; // // cmbSourceType @@ -1786,7 +1814,7 @@ namespace TemuKJD.WXForms.ProductForms "多多外部数据"}); this.cmbSourceType.Location = new System.Drawing.Point(56, 73); this.cmbSourceType.Name = "cmbSourceType"; - this.cmbSourceType.Size = new System.Drawing.Size(92, 25); + this.cmbSourceType.Size = new System.Drawing.Size(96, 25); this.cmbSourceType.TabIndex = 673; this.cmbSourceType.Text = "厂商直采"; this.cmbSourceType.Visible = false; @@ -1800,9 +1828,9 @@ namespace TemuKJD.WXForms.ProductForms this.cmbCateFilter3.DropDownWidth = 1; this.cmbCateFilter3.FormattingEnabled = true; this.cmbCateFilter3.IntegralHeight = false; - this.cmbCateFilter3.Location = new System.Drawing.Point(312, 19); + this.cmbCateFilter3.Location = new System.Drawing.Point(322, 19); this.cmbCateFilter3.Name = "cmbCateFilter3"; - this.cmbCateFilter3.Size = new System.Drawing.Size(92, 25); + this.cmbCateFilter3.Size = new System.Drawing.Size(96, 25); this.cmbCateFilter3.TabIndex = 710; this.cmbCateFilter3.Text = "全部"; this.cmbCateFilter3.SelectedIndexChanged += new System.EventHandler(this.cmbCateFilter3_SelectedIndexChanged); @@ -1811,7 +1839,7 @@ namespace TemuKJD.WXForms.ProductForms // label21 // this.label21.AutoSize = true; - this.label21.Location = new System.Drawing.Point(276, 23); + this.label21.Location = new System.Drawing.Point(286, 23); this.label21.Margin = new System.Windows.Forms.Padding(6, 0, 0, 0); this.label21.Name = "label21"; this.label21.Size = new System.Drawing.Size(39, 17); @@ -1821,9 +1849,9 @@ namespace TemuKJD.WXForms.ProductForms // cmbGroupFilter // this.cmbGroupFilter.FormattingEnabled = true; - this.cmbGroupFilter.Location = new System.Drawing.Point(184, 73); + this.cmbGroupFilter.Location = new System.Drawing.Point(189, 73); this.cmbGroupFilter.Name = "cmbGroupFilter"; - this.cmbGroupFilter.Size = new System.Drawing.Size(92, 25); + this.cmbGroupFilter.Size = new System.Drawing.Size(96, 25); this.cmbGroupFilter.TabIndex = 641; this.cmbGroupFilter.Visible = false; this.cmbGroupFilter.SelectedIndexChanged += new System.EventHandler(this.cmbGroupFilter_SelectedIndexChanged); @@ -1835,7 +1863,7 @@ namespace TemuKJD.WXForms.ProductForms this.txtIdFilter.Location = new System.Drawing.Point(56, 100); this.txtIdFilter.Margin = new System.Windows.Forms.Padding(0, 2, 0, 2); this.txtIdFilter.Name = "txtIdFilter"; - this.txtIdFilter.Size = new System.Drawing.Size(92, 25); + this.txtIdFilter.Size = new System.Drawing.Size(96, 25); this.txtIdFilter.TabIndex = 652; this.txtIdFilter.Visible = false; // @@ -1846,9 +1874,9 @@ namespace TemuKJD.WXForms.ProductForms this.cmbCateFilter2.DropDownWidth = 1; this.cmbCateFilter2.FormattingEnabled = true; this.cmbCateFilter2.IntegralHeight = false; - this.cmbCateFilter2.Location = new System.Drawing.Point(184, 19); + this.cmbCateFilter2.Location = new System.Drawing.Point(189, 19); this.cmbCateFilter2.Name = "cmbCateFilter2"; - this.cmbCateFilter2.Size = new System.Drawing.Size(92, 25); + this.cmbCateFilter2.Size = new System.Drawing.Size(96, 25); this.cmbCateFilter2.TabIndex = 708; this.cmbCateFilter2.Text = "全部"; this.cmbCateFilter2.SelectedIndexChanged += new System.EventHandler(this.cmbCateFilter2_SelectedIndexChanged); @@ -1860,7 +1888,7 @@ namespace TemuKJD.WXForms.ProductForms this.btnClearFilter.CanvasColor = System.Drawing.SystemColors.Control; this.btnClearFilter.ColorSchemeStyle = DevComponents.DotNetBar.eDotNetBarStyle.StyleManagerControlled; this.btnClearFilter.DisabledBackColor = System.Drawing.Color.Empty; - this.btnClearFilter.Location = new System.Drawing.Point(373, 100); + this.btnClearFilter.Location = new System.Drawing.Point(387, 100); this.btnClearFilter.Margin = new System.Windows.Forms.Padding(4, 2, 2, 2); this.btnClearFilter.Name = "btnClearFilter"; this.btnClearFilter.Size = new System.Drawing.Size(31, 25); @@ -1889,7 +1917,7 @@ namespace TemuKJD.WXForms.ProductForms "未校验"}); this.cmbWxSafe.Location = new System.Drawing.Point(56, 46); this.cmbWxSafe.Name = "cmbWxSafe"; - this.cmbWxSafe.Size = new System.Drawing.Size(92, 25); + this.cmbWxSafe.Size = new System.Drawing.Size(96, 25); this.cmbWxSafe.TabIndex = 675; this.cmbWxSafe.Text = "安全+未校验"; // @@ -1899,7 +1927,7 @@ namespace TemuKJD.WXForms.ProductForms this.btnClearUpload.CanvasColor = System.Drawing.SystemColors.Control; this.btnClearUpload.ColorSchemeStyle = DevComponents.DotNetBar.eDotNetBarStyle.StyleManagerControlled; this.btnClearUpload.DisabledBackColor = System.Drawing.Color.Empty; - this.btnClearUpload.Location = new System.Drawing.Point(263, 132); + this.btnClearUpload.Location = new System.Drawing.Point(277, 132); this.btnClearUpload.Margin = new System.Windows.Forms.Padding(4, 2, 2, 2); this.btnClearUpload.Name = "btnClearUpload"; this.btnClearUpload.Size = new System.Drawing.Size(31, 25); @@ -1928,7 +1956,7 @@ namespace TemuKJD.WXForms.ProductForms this.cmbCateFilter1.IntegralHeight = false; this.cmbCateFilter1.Location = new System.Drawing.Point(56, 19); this.cmbCateFilter1.Name = "cmbCateFilter1"; - this.cmbCateFilter1.Size = new System.Drawing.Size(92, 25); + this.cmbCateFilter1.Size = new System.Drawing.Size(96, 25); this.cmbCateFilter1.TabIndex = 663; this.cmbCateFilter1.Text = "全部"; this.cmbCateFilter1.SelectedIndexChanged += new System.EventHandler(this.cmbCateFilter1_SelectedIndexChanged); @@ -1950,7 +1978,7 @@ namespace TemuKJD.WXForms.ProductForms this.btnRandomAdd.Cursor = System.Windows.Forms.Cursors.Hand; this.btnRandomAdd.DisabledBackColor = System.Drawing.Color.Empty; this.btnRandomAdd.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); - this.btnRandomAdd.Location = new System.Drawing.Point(327, 132); + this.btnRandomAdd.Location = new System.Drawing.Point(341, 132); this.btnRandomAdd.Name = "btnRandomAdd"; this.btnRandomAdd.Size = new System.Drawing.Size(44, 25); this.btnRandomAdd.Style.Alignment = System.Drawing.StringAlignment.Center; @@ -1965,7 +1993,7 @@ namespace TemuKJD.WXForms.ProductForms this.btnRandomAdd.StyleMouseOver.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(25)))), ((int)(((byte)(102)))), ((int)(((byte)(255))))); this.btnRandomAdd.StyleMouseOver.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(25)))), ((int)(((byte)(102)))), ((int)(((byte)(255))))); this.btnRandomAdd.TabIndex = 431; - this.btnRandomAdd.Text = "随机选"; + this.btnRandomAdd.Text = "随机"; this.btnRandomAdd.Click += new System.EventHandler(this.btnRandomAdd_Click); // // lblSourceType @@ -1982,7 +2010,7 @@ namespace TemuKJD.WXForms.ProductForms // lblGroupFilter // this.lblGroupFilter.AutoSize = true; - this.lblGroupFilter.Location = new System.Drawing.Point(155, 77); + this.lblGroupFilter.Location = new System.Drawing.Point(160, 77); this.lblGroupFilter.Margin = new System.Windows.Forms.Padding(6, 0, 0, 0); this.lblGroupFilter.Name = "lblGroupFilter"; this.lblGroupFilter.Size = new System.Drawing.Size(32, 17); @@ -2003,7 +2031,7 @@ namespace TemuKJD.WXForms.ProductForms // label20 // this.label20.AutoSize = true; - this.label20.Location = new System.Drawing.Point(155, 50); + this.label20.Location = new System.Drawing.Point(160, 50); this.label20.Margin = new System.Windows.Forms.Padding(6, 0, 0, 0); this.label20.Name = "label20"; this.label20.Size = new System.Drawing.Size(32, 17); @@ -2024,7 +2052,7 @@ namespace TemuKJD.WXForms.ProductForms // lblHot // this.lblHot.AutoSize = true; - this.lblHot.Location = new System.Drawing.Point(283, 77); + this.lblHot.Location = new System.Drawing.Point(293, 77); this.lblHot.Margin = new System.Windows.Forms.Padding(6, 0, 0, 0); this.lblHot.Name = "lblHot"; this.lblHot.Size = new System.Drawing.Size(32, 17); @@ -2035,7 +2063,7 @@ namespace TemuKJD.WXForms.ProductForms // label19 // this.label19.AutoSize = true; - this.label19.Location = new System.Drawing.Point(148, 23); + this.label19.Location = new System.Drawing.Point(153, 23); this.label19.Margin = new System.Windows.Forms.Padding(6, 0, 0, 0); this.label19.Name = "label19"; this.label19.Size = new System.Drawing.Size(39, 17); @@ -2044,11 +2072,11 @@ namespace TemuKJD.WXForms.ProductForms // // chkRandomFissionProduct // - this.chkRandomFissionProduct.Location = new System.Drawing.Point(155, 104); + this.chkRandomFissionProduct.Location = new System.Drawing.Point(163, 102); this.chkRandomFissionProduct.Name = "chkRandomFissionProduct"; - this.chkRandomFissionProduct.Size = new System.Drawing.Size(92, 17); + this.chkRandomFissionProduct.Size = new System.Drawing.Size(96, 21); this.chkRandomFissionProduct.TabIndex = 910; - this.chkRandomFissionProduct.Text = "裂变商品数量"; + this.chkRandomFissionProduct.Text = "裂变标题数量"; this.chkRandomFissionProduct.UseVisualStyleBackColor = true; this.chkRandomFissionProduct.Visible = false; // @@ -2067,17 +2095,27 @@ namespace TemuKJD.WXForms.ProductForms this.lblWaitToUp.Text = "待上传 0 件"; this.lblWaitToUp.Click += new System.EventHandler(this.lblWaitToUp_Click); // - // lblJstInitSet + // chkWXComplateProd // - this.lblJstInitSet.AutoSize = true; - this.lblJstInitSet.BackColor = System.Drawing.Color.Transparent; - this.lblJstInitSet.Location = new System.Drawing.Point(200, 136); - this.lblJstInitSet.Margin = new System.Windows.Forms.Padding(6, 0, 0, 0); - this.lblJstInitSet.Name = "lblJstInitSet"; - this.lblJstInitSet.Size = new System.Drawing.Size(32, 17); - this.lblJstInitSet.TabIndex = 696; - this.lblJstInitSet.Text = "分销"; - this.lblJstInitSet.Visible = false; + this.chkWXComplateProd.AutoSize = true; + this.chkWXComplateProd.Location = new System.Drawing.Point(296, 102); + this.chkWXComplateProd.Name = "chkWXComplateProd"; + this.chkWXComplateProd.Size = new System.Drawing.Size(99, 21); + this.chkWXComplateProd.TabIndex = 807; + this.chkWXComplateProd.Text = "微信回采商品"; + this.chkWXComplateProd.UseVisualStyleBackColor = true; + this.chkWXComplateProd.Visible = false; + // + // lblNotes + // + this.lblNotes.AutoSize = true; + this.lblNotes.Location = new System.Drawing.Point(293, 50); + this.lblNotes.Margin = new System.Windows.Forms.Padding(6, 0, 0, 0); + this.lblNotes.Name = "lblNotes"; + this.lblNotes.Size = new System.Drawing.Size(32, 17); + this.lblNotes.TabIndex = 822; + this.lblNotes.Text = "备注"; + this.lblNotes.Visible = false; // // ucGroupBoxEx1 // @@ -2489,7 +2527,7 @@ namespace TemuKJD.WXForms.ProductForms // lblExtCodeFilter // this.lblExtCodeFilter.AutoSize = true; - this.lblExtCodeFilter.Location = new System.Drawing.Point(260, 38); + this.lblExtCodeFilter.Location = new System.Drawing.Point(262, 38); this.lblExtCodeFilter.Margin = new System.Windows.Forms.Padding(6, 0, 0, 0); this.lblExtCodeFilter.Name = "lblExtCodeFilter"; this.lblExtCodeFilter.Size = new System.Drawing.Size(32, 17); @@ -2501,19 +2539,19 @@ namespace TemuKJD.WXForms.ProductForms // this.dgvShop.AllowUserToAddRows = false; this.dgvShop.AllowUserToDeleteRows = false; - dataGridViewCellStyle9.BackColor = System.Drawing.Color.WhiteSmoke; - this.dgvShop.AlternatingRowsDefaultCellStyle = dataGridViewCellStyle9; + dataGridViewCellStyle25.BackColor = System.Drawing.Color.WhiteSmoke; + this.dgvShop.AlternatingRowsDefaultCellStyle = dataGridViewCellStyle25; 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))))); - 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; + dataGridViewCellStyle26.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleLeft; + dataGridViewCellStyle26.BackColor = System.Drawing.SystemColors.Control; + dataGridViewCellStyle26.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); + dataGridViewCellStyle26.ForeColor = System.Drawing.SystemColors.WindowText; + dataGridViewCellStyle26.SelectionBackColor = System.Drawing.SystemColors.Highlight; + dataGridViewCellStyle26.SelectionForeColor = System.Drawing.SystemColors.HighlightText; + dataGridViewCellStyle26.WrapMode = System.Windows.Forms.DataGridViewTriState.False; + this.dgvShop.ColumnHeadersDefaultCellStyle = dataGridViewCellStyle26; this.dgvShop.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize; this.dgvShop.Columns.AddRange(new System.Windows.Forms.DataGridViewColumn[] { this.colSelect, @@ -2745,19 +2783,19 @@ namespace TemuKJD.WXForms.ProductForms // this.dgvSelectProduct.AllowUserToAddRows = false; this.dgvSelectProduct.AllowUserToDeleteRows = false; - dataGridViewCellStyle11.BackColor = System.Drawing.Color.WhiteSmoke; - this.dgvSelectProduct.AlternatingRowsDefaultCellStyle = dataGridViewCellStyle11; + dataGridViewCellStyle27.BackColor = System.Drawing.Color.WhiteSmoke; + this.dgvSelectProduct.AlternatingRowsDefaultCellStyle = dataGridViewCellStyle27; this.dgvSelectProduct.AutoRowNumber = true; this.dgvSelectProduct.BackgroundColor = System.Drawing.Color.White; this.dgvSelectProduct.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255))))); - 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.dgvSelectProduct.ColumnHeadersDefaultCellStyle = dataGridViewCellStyle12; + dataGridViewCellStyle28.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleLeft; + dataGridViewCellStyle28.BackColor = System.Drawing.SystemColors.Control; + dataGridViewCellStyle28.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); + dataGridViewCellStyle28.ForeColor = System.Drawing.SystemColors.WindowText; + dataGridViewCellStyle28.SelectionBackColor = System.Drawing.SystemColors.Highlight; + dataGridViewCellStyle28.SelectionForeColor = System.Drawing.SystemColors.HighlightText; + dataGridViewCellStyle28.WrapMode = System.Windows.Forms.DataGridViewTriState.False; + this.dgvSelectProduct.ColumnHeadersDefaultCellStyle = dataGridViewCellStyle28; this.dgvSelectProduct.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize; this.dgvSelectProduct.Columns.AddRange(new System.Windows.Forms.DataGridViewColumn[] { this.colCheck, @@ -2819,8 +2857,8 @@ namespace TemuKJD.WXForms.ProductForms // // colSupplierName // - dataGridViewCellStyle13.WrapMode = System.Windows.Forms.DataGridViewTriState.True; - this.colSupplierName.DefaultCellStyle = dataGridViewCellStyle13; + dataGridViewCellStyle29.WrapMode = System.Windows.Forms.DataGridViewTriState.True; + this.colSupplierName.DefaultCellStyle = dataGridViewCellStyle29; this.colSupplierName.Frozen = true; this.colSupplierName.HeaderText = "店铺名称"; this.colSupplierName.Name = "colSupplierName"; @@ -2900,8 +2938,8 @@ namespace TemuKJD.WXForms.ProductForms // // colProductName // - dataGridViewCellStyle14.WrapMode = System.Windows.Forms.DataGridViewTriState.True; - this.colProductName.DefaultCellStyle = dataGridViewCellStyle14; + dataGridViewCellStyle30.WrapMode = System.Windows.Forms.DataGridViewTriState.True; + this.colProductName.DefaultCellStyle = dataGridViewCellStyle30; this.colProductName.HeaderText = "商品标题"; this.colProductName.Name = "colProductName"; this.colProductName.ReadOnly = true; @@ -2909,8 +2947,8 @@ namespace TemuKJD.WXForms.ProductForms // // colProductCat // - dataGridViewCellStyle15.WrapMode = System.Windows.Forms.DataGridViewTriState.True; - this.colProductCat.DefaultCellStyle = dataGridViewCellStyle15; + dataGridViewCellStyle31.WrapMode = System.Windows.Forms.DataGridViewTriState.True; + this.colProductCat.DefaultCellStyle = dataGridViewCellStyle31; this.colProductCat.HeaderText = "商品类目"; this.colProductCat.Name = "colProductCat"; this.colProductCat.ReadOnly = true; @@ -2965,8 +3003,8 @@ namespace TemuKJD.WXForms.ProductForms // // colAddTime // - dataGridViewCellStyle16.WrapMode = System.Windows.Forms.DataGridViewTriState.True; - this.colAddTime.DefaultCellStyle = dataGridViewCellStyle16; + dataGridViewCellStyle32.WrapMode = System.Windows.Forms.DataGridViewTriState.True; + this.colAddTime.DefaultCellStyle = dataGridViewCellStyle32; this.colAddTime.HeaderText = "上传时间"; this.colAddTime.Name = "colAddTime"; this.colAddTime.ReadOnly = true; @@ -3157,8 +3195,6 @@ namespace TemuKJD.WXForms.ProductForms private System.Windows.Forms.TextBox txtExtCodeFilter; private System.Windows.Forms.Label lblExtCodeFilter; private System.Windows.Forms.Label label9; - private System.Windows.Forms.Label lblGroupFilter; - private System.Windows.Forms.ComboBox cmbGroupFilter; private DevComponents.DotNetBar.PanelEx btnClear; private DevComponents.DotNetBar.PanelEx panelEx1; private System.Windows.Forms.TextBox txtIdFilter; @@ -3319,5 +3355,10 @@ namespace TemuKJD.WXForms.ProductForms private UserComponent.UcCheckBox chkSameSpecPriceDown; private UserComponent.UcCheckBox chkLowestPriceSku; private UserComponent.UcCheckBox chkRemoveSpecialChar; + private UserComponent.UcCheckBox chkSkipReplaceText; + private System.Windows.Forms.ComboBox cmbGroupFilter; + private System.Windows.Forms.Label lblGroupFilter; + private System.Windows.Forms.ComboBox cmbNotes; + private System.Windows.Forms.Label lblNotes; } } \ No newline at end of file diff --git a/TEMUKJD/WXForms/ProductForms/WXDBProdUploadForm.cs b/TEMUKJD/WXForms/ProductForms/WXDBProdUploadForm.cs index f27c424..a85ee32 100644 --- a/TEMUKJD/WXForms/ProductForms/WXDBProdUploadForm.cs +++ b/TEMUKJD/WXForms/ProductForms/WXDBProdUploadForm.cs @@ -42,7 +42,6 @@ namespace TemuKJD.WXForms.ProductForms public CancellationTokenSource cancellationTokenSource { get; set; } = null; public bool IsWxNotUseSoftwareDefaultAddressOnce { get; set; } = false; - public bool IsLoadComplate { get; set; } = false; public ConcurrentList lstTemuDBProductSelect = new ConcurrentList(); ConcurrentList lstAddPriceRule = new ConcurrentList(); @@ -205,6 +204,7 @@ namespace TemuKJD.WXForms.ProductForms this.txtPreDays.Text = wxUploadRule.PreSaleDays.ParseToString(); this.txtReplaceText.Text = wxUploadRule.FilterWords.ParseToString(); + this.chkSkipReplaceText.Checked = wxUploadRule.IsSkipHasFilterWordsProd.ParseToBool(); this.txtMinPrice.Text = wxUploadRule.SkuMinPrice.ParseToString(); this.txtWaitSeconds.Text = wxUploadRule.WaitSeconds.ParseToString(); this.chkHighestPriceSku.Checked = wxUploadRule.OnlyHighestPriceSku.ParseToBool(); @@ -389,6 +389,14 @@ namespace TemuKJD.WXForms.ProductForms chkRandomFissionProduct.Visible = true; txtRandomFissionProductCount.Visible = true; + + lblNotes.Visible = true; + cmbNotes.Visible = true; + Task.Run(() => + { + string addUserName = BaseClass.GroupId == 3 ? BaseClass.UserName : BaseClass.ParentUserName; + PDDDBProdListForm.GetPDDProductNotes(new List { cmbNotes }, addUserName); + }); } cmbHot_TextChanged(null, null); @@ -405,7 +413,7 @@ namespace TemuKJD.WXForms.ProductForms List ctrlLst = new List() { lblSourceType, cmbSourceType, lblGroupFilter, cmbGroupFilter, lblHot, cmbHot, lblIdFilter, txtIdFilter, - chkRandomFissionProduct, txtRandomFissionProductCount, lblJstInitSet, cmbJstInitSet + chkRandomFissionProduct, txtRandomFissionProductCount/*, lblNotes, cmbNotes*//*, lblJstInitSet, cmbJstInitSet*/ }; for (int i = 0; i < ctrlLst.Count - 2; i += 2) { @@ -413,14 +421,19 @@ namespace TemuKJD.WXForms.ProductForms { for (int j= ctrlLst.Count - 2; j > i; j-=2) { + ctrlLst[j].Parent = ucGroupBoxEx4; ctrlLst[j].Location = new Point(ctrlLst[j - 2].Location.X, ctrlLst[j - 2].Location.Y); ctrlLst[j + 1].Location = new Point(ctrlLst[j].Location.X + ctrlLst[j].Width - 3, ctrlLst[j - 1].Location.Y); ctrlLst[j + 1].BringToFront(); } } } + if (cmbNotes.Visible == false) + { + txtSearchGoodsName.Width = 229; + } - IsLoadComplate = true; + IsFormLoad = true; } private void btnRefreshAuthor_Click(object sender, EventArgs e) @@ -1780,74 +1793,66 @@ namespace TemuKJD.WXForms.ProductForms // 过滤标题敏感词 if (lstTitleReplaceText.Count > 0) { - foreach (var txt in lstTitleReplaceText) + if (chkSkipReplaceText.Checked) { - dbProd.product_name = dbProd.product_name.Replace(txt, ""); - selectProd.product_name = selectProd.product_name.Replace(txt, ""); - } + if (lstTitleReplaceText.Any(t => selectProd.product_name.Contains(t))) + return "{\"success\":false,\"draftId\":0,\"status\":\"未上传\",\"errMsg\":\"命中敏感词\"}"; + if (lstTitleReplaceText.Any(t => dbProd.product_name.Contains(t))) + return "{\"success\":false,\"draftId\":0,\"status\":\"未上传\",\"errMsg\":\"命中敏感词\"}"; - var goods_name = prodJObj["detail"]["goods_name"].ParseToString(); - foreach (var txt in lstTitleReplaceText) - { - goods_name = goods_name.Replace(txt, ""); + var goods_name = prodJObj["detail"]["goods_name"].ParseToString(); + if (lstTitleReplaceText.Any(t => goods_name.Contains(t))) + return "{\"success\":false,\"draftId\":0,\"status\":\"未上传\",\"errMsg\":\"命中敏感词\"}"; + var tiny_name = prodJObj["detail"]["tiny_name"].ParseToString(); + if (lstTitleReplaceText.Any(t => tiny_name.Contains(t))) + return "{\"success\":false,\"draftId\":0,\"status\":\"未上传\",\"errMsg\":\"命中敏感词\"}"; + var goods_desc = prodJObj["detail"]["goods_desc"].ParseToString(); + if (lstTitleReplaceText.Any(t => goods_desc.Contains(t))) + return "{\"success\":false,\"draftId\":0,\"status\":\"未上传\",\"errMsg\":\"命中敏感词\"}"; + var share_desc = prodJObj["detail"]["share_desc"].ParseToString(); + if (lstTitleReplaceText.Any(t => share_desc.Contains(t))) + return "{\"success\":false,\"draftId\":0,\"status\":\"未上传\",\"errMsg\":\"命中敏感词\"}"; } - prodJObj["detail"]["goods_name"] = goods_name; + else + { + foreach (var txt in lstTitleReplaceText) + { + dbProd.product_name = dbProd.product_name.Replace(txt, ""); + selectProd.product_name = selectProd.product_name.Replace(txt, ""); + } - var tiny_name = prodJObj["detail"]["tiny_name"].ParseToString(); - foreach (var txt in lstTitleReplaceText) - { - tiny_name = tiny_name.Replace(txt, ""); - } - prodJObj["detail"]["tiny_name"] = tiny_name; + var goods_name = prodJObj["detail"]["goods_name"].ParseToString(); + foreach (var txt in lstTitleReplaceText) + { + goods_name = goods_name.Replace(txt, ""); + } + prodJObj["detail"]["goods_name"] = goods_name; - var goods_desc = prodJObj["detail"]["goods_desc"].ParseToString(); - foreach (var txt in lstTitleReplaceText) - { - goods_desc = goods_desc.Replace(txt, ""); - } - prodJObj["detail"]["goods_desc"] = goods_desc; + var tiny_name = prodJObj["detail"]["tiny_name"].ParseToString(); + foreach (var txt in lstTitleReplaceText) + { + tiny_name = tiny_name.Replace(txt, ""); + } + prodJObj["detail"]["tiny_name"] = tiny_name; - var share_desc = prodJObj["detail"]["share_desc"].ParseToString(); - foreach (var txt in lstTitleReplaceText) - { - share_desc = share_desc.Replace(txt, ""); + var goods_desc = prodJObj["detail"]["goods_desc"].ParseToString(); + foreach (var txt in lstTitleReplaceText) + { + goods_desc = goods_desc.Replace(txt, ""); + } + prodJObj["detail"]["goods_desc"] = goods_desc; + + var share_desc = prodJObj["detail"]["share_desc"].ParseToString(); + foreach (var txt in lstTitleReplaceText) + { + share_desc = share_desc.Replace(txt, ""); + } + prodJObj["detail"]["share_desc"] = share_desc; } - prodJObj["detail"]["share_desc"] = share_desc; } // 过滤标题特殊字符 if (chkRemoveSpecialChar.Checked) { - //if (dbProd.product_name.Contains("】") && dbProd.product_name.IndexOf("】") < dbProd.product_name.Length / 2 && dbProd.product_name.Length > 10) - // dbProd.product_name = dbProd.product_name.Substring(dbProd.product_name.IndexOf("】")).Trim('】'); - - //if (selectProd.product_name.Contains("】") && selectProd.product_name.IndexOf("】") < selectProd.product_name.Length / 2 && selectProd.product_name.Length > 10) - // selectProd.product_name = selectProd.product_name.Substring(selectProd.product_name.IndexOf("】")).Trim('】'); - - //var goods_name = prodJObj["detail"]["goods_name"].ParseToString(); - //if (goods_name.Contains("】") && goods_name.IndexOf("】") < goods_name.Length / 2 && goods_name.Length > 10) - // prodJObj["detail"]["goods_name"] = goods_name.Substring(goods_name.IndexOf("】")).Trim('】'); - - //if (dbProd.product_name.Contains("]") && dbProd.product_name.IndexOf("]") < dbProd.product_name.Length / 2 && dbProd.product_name.Length > 10) - // dbProd.product_name = dbProd.product_name.Substring(dbProd.product_name.IndexOf("]")).Trim(']'); - - //if (selectProd.product_name.Contains("]") && selectProd.product_name.IndexOf("]") < selectProd.product_name.Length / 2 && selectProd.product_name.Length > 10) - // selectProd.product_name = selectProd.product_name.Substring(selectProd.product_name.IndexOf("]")).Trim(']'); - - //goods_name = prodJObj["detail"]["goods_name"].ParseToString(); - //if (goods_name.Contains("]") && goods_name.IndexOf("]") < goods_name.Length / 2 && goods_name.Length > 10) - // prodJObj["detail"]["goods_name"] = goods_name.Substring(goods_name.IndexOf("]")).Trim(']'); - - - //if (dbProd.product_name.Contains("}") && dbProd.product_name.IndexOf("}") < dbProd.product_name.Length / 2 && dbProd.product_name.Length > 10) - // dbProd.product_name = dbProd.product_name.Substring(dbProd.product_name.IndexOf("}")).Trim('}'); - - //if (selectProd.product_name.Contains("}") && selectProd.product_name.IndexOf("}") < selectProd.product_name.Length / 2 && selectProd.product_name.Length > 10) - // selectProd.product_name = selectProd.product_name.Substring(selectProd.product_name.IndexOf("}")).Trim('}'); - - //goods_name = prodJObj["detail"]["goods_name"].ParseToString(); - //if (goods_name.Contains("}") && goods_name.IndexOf("}") < goods_name.Length / 2 && goods_name.Length > 10) - // prodJObj["detail"]["goods_name"] = goods_name.Substring(goods_name.IndexOf("}")).Trim('}'); - var chLst = new List { ']', '】', ')', ')', '}', }; foreach (var ch in chLst) { @@ -4432,21 +4437,131 @@ namespace TemuKJD.WXForms.ProductForms })); } - string publisher = "出版社名称:" + new List() { "技术出版社", "文化出版社", "美术出版社" }[Randomx.GetId(3)]; + //string publisher = "出版社名称:" + new List() { "技术出版社", "文化出版社", "美术出版社" }[Randomx.GetId(3)]; + ////string isbn = "ISBN:"; + //string isbn = "ISBN/CN刊号:"; + ////string bookName = "书名:"; + //string bookName = "图书名称:"; + //string bookPrice = "定价:" + upProdParam.product.productSkus.Max(s => s.productSkuInfo.salePrice) * 0.01; + //string author = "作者:王老师"; + //string publishTime = "出版时间:" + DateTime.Now.AddMonths(-3).ToString("yyyy年MM月dd日"); + //string edition = "版次:1"; + //string binding = "装帧:平装"; + + //foreach (var propParam in upProdParam.product.info.param) + //{ + // if (propParam.categorys[0].name.Contains("出版社名称")) + // publisher = "出版社名称:" + propParam.categorys[1].name; + // else if (propParam.categorys[0].name.Contains("ISBN版号/CN刊号")) + // { + // //isbn = "ISBN:" + propParam.categorys[1].name; + // isbn = "ISBN/CN刊号:" + propParam.categorys[1].name; + // if (propParam.categorys[1].name.Length == 13) + // { + // var isbnStr = propParam.categorys[1].name; + // isbn = "ISBN/CN刊号:" + isbnStr[0] + isbnStr[1] + isbnStr[2] + "-" + isbnStr[3] + "-" + isbnStr[4] + isbnStr[5] + isbnStr[6] + isbnStr[7] + "-" + isbnStr[8] + isbnStr[9] + isbnStr[10] + isbnStr[11] + "-" + isbnStr[12]; + // } + // } + // else if (propParam.categorys[0].name.Contains("书名")) + // { + // //bookName = "书名:" + propParam.categorys[1].name; + // bookName = "图书名称:" + propParam.categorys[1].name; + // } + // else if (propParam.categorys[0].name.Contains("定价")) + // { + // //bookPrice = "定价:" + propParam.categorys[1].name; + // propParam.categorys[1].name = bookPrice; + // } + // else if (propParam.categorys[0].name.Contains("作者")) + // author = "作者:" + propParam.categorys[1].name; + // else if (propParam.categorys[0].name.Contains("出版时间")) + // publishTime = "出版时间:" + propParam.categorys[1].name; + // else if (propParam.categorys[0].name.Contains("版次")) + // edition = "版次:" + propParam.categorys[1].name; + // else if (propParam.categorys[0].name.Contains("包装")) + // binding = "装帧:" + propParam.categorys[1].name; + //} + + //var bookStr = publisher + "\r\n" + "\r\n" + + // isbn + "\r\n" + "\r\n" + + // bookName + "\r\n" + "\r\n" + + // bookPrice + "\r\n" + "\r\n" + + // author + "\r\n" + "\r\n" + + // publishTime + "\r\n" + "\r\n" + + // edition + "\r\n" + "\r\n" + + // binding; + + //int imgW = 800; int imgH = 800; int textImgH = 0; + //string getImgError; + //var img_url = upProdParam.product.info.headImg[0]; + //if (!img_url.Contains("wst.wxapp.tc.qq.com") && !img_url.Contains("mmecimage.cn")) + // img_url = img_url.Replace("https://", "http://"); + //var imageMain = GetHtml.GetUrlImg(img_url, out getImgError); + //if (imageMain == null) + // imageMain = new Bitmap(800, 800); + //using (Bitmap bitmap = new Bitmap(1, 1)) // 尺寸不重要,只是为了使用Graphics对象 + //using (Graphics g = Graphics.FromImage(bitmap)) // 获取Graphics对象 + //{ + // // 定义字体 + // Font font = new Font("微软雅黑", 16, FontStyle.Regular); + // g.TextRenderingHint = System.Drawing.Text.TextRenderingHint.ClearTypeGridFit; + // // 定义要测量的字符串 + // string text = bookStr; + // // 测量字符串大小 + // SizeF size = g.MeasureString(text, font, imgW - 120); + // // 输出高度信息 + // //Console.WriteLine("Text Height: " + size.Height); + // textImgH = size.Height.ParseToInt() + 180; + //} + + ////var bookImg = new Bitmap(imgW, imgH); + ////using (Graphics g = Graphics.FromImage(bookImg)) + ////{ + //// g.Clear(Color.White); + //// //Font font = new Font("宋体", 15, FontStyle.Bold); + //// //Font font = new Font("微软雅黑", 15, FontStyle.Regular); + //// Font font = new Font("微软雅黑", 16, FontStyle.Regular); + //// //Font font = new Font("宋体", 17, FontStyle.Bold); + //// Brush textBrush = Brushes.Black; + //// g.TextRenderingHint = System.Drawing.Text.TextRenderingHint.ClearTypeGridFit; + //// RectangleF rectF = new RectangleF(60, 80, imgW - 120, imgH - 180); + //// g.DrawString(bookStr, font, textBrush, rectF); + ////} + + //// 绘制一张带主图的商品详情页 + //var bookImg = new Bitmap(imgW, imgH + textImgH); + //using (Graphics g = Graphics.FromImage(bookImg)) + //{ + // g.Clear(Color.FromArgb(248, 239, 244)); + + // g.DrawImage(imageMain, new Rectangle(0, 0, imgW, imgH), 0, 0, imageMain.Width, imageMain.Height, GraphicsUnit.Pixel); + + // //Font font = new Font("宋体", 15, FontStyle.Bold); + // //Font font = new Font("微软雅黑", 15, FontStyle.Regular); + // Font font = new Font("微软雅黑", 18, FontStyle.Regular); + // //Font font = new Font("宋体", 17, FontStyle.Bold); + // Brush textBrush = Brushes.Black; + // g.TextRenderingHint = System.Drawing.Text.TextRenderingHint.ClearTypeGridFit; + // RectangleF rectF = new RectangleF(60, imgH + 80, imgW - 120, textImgH - 180); + // g.DrawString(bookStr, font, textBrush, rectF); + //} + + + string publisher = "出版发行:" + new List() { "技术出版社", "文化出版社", "美术出版社" }[Randomx.GetId(3)]; //string isbn = "ISBN:"; string isbn = "ISBN/CN刊号:"; //string bookName = "书名:"; string bookName = "图书名称:"; - string bookPrice = "定价:" + upProdParam.product.productSkus.Max(s => s.productSkuInfo.salePrice) * 0.01; - string author = "作者:王老师"; + string bookPrice = "定  价:" + upProdParam.product.productSkus.Max(s => s.productSkuInfo.salePrice) * 0.01; + string author = "作  者:王老师"; string publishTime = "出版时间:" + DateTime.Now.AddMonths(-3).ToString("yyyy年MM月dd日"); - string edition = "版次:1"; - string binding = "装帧:平装"; + string edition = "版  次:1"; + string binding = "装  帧:平装"; foreach (var propParam in upProdParam.product.info.param) { if (propParam.categorys[0].name.Contains("出版社名称")) - publisher = "出版社名称:" + propParam.categorys[1].name; + publisher = "出版发行:" + propParam.categorys[1].name; else if (propParam.categorys[0].name.Contains("ISBN版号/CN刊号")) { //isbn = "ISBN:" + propParam.categorys[1].name; @@ -4468,13 +4583,13 @@ namespace TemuKJD.WXForms.ProductForms propParam.categorys[1].name = bookPrice; } else if (propParam.categorys[0].name.Contains("作者")) - author = "作者:" + propParam.categorys[1].name; + author = "作  者:" + propParam.categorys[1].name; else if (propParam.categorys[0].name.Contains("出版时间")) publishTime = "出版时间:" + propParam.categorys[1].name; else if (propParam.categorys[0].name.Contains("版次")) - edition = "版次:" + propParam.categorys[1].name; + edition = "版  次:" + propParam.categorys[1].name; else if (propParam.categorys[0].name.Contains("包装")) - binding = "装帧:" + propParam.categorys[1].name; + binding = "装  帧:" + propParam.categorys[1].name; } var bookStr = publisher + "\r\n" + "\r\n" + @@ -4509,38 +4624,95 @@ namespace TemuKJD.WXForms.ProductForms textImgH = size.Height.ParseToInt() + 180; } - //var bookImg = new Bitmap(imgW, imgH); - //using (Graphics g = Graphics.FromImage(bookImg)) - //{ - // g.Clear(Color.White); - // //Font font = new Font("宋体", 15, FontStyle.Bold); - // //Font font = new Font("微软雅黑", 15, FontStyle.Regular); - // Font font = new Font("微软雅黑", 16, FontStyle.Regular); - // //Font font = new Font("宋体", 17, FontStyle.Bold); - // Brush textBrush = Brushes.Black; - // g.TextRenderingHint = System.Drawing.Text.TextRenderingHint.ClearTypeGridFit; - // RectangleF rectF = new RectangleF(60, 80, imgW - 120, imgH - 180); - // g.DrawString(bookStr, font, textBrush, rectF); - //} - - // 绘制一张带主图的商品详情页 - var bookImg = new Bitmap(imgW, imgH + textImgH); + var bookImg = TemuKJD.Properties.Resources.empty_book_900_1200; + imgH = bookImg.Height; + imgW = bookImg.Width; using (Graphics g = Graphics.FromImage(bookImg)) { - g.Clear(Color.FromArgb(248, 239, 244)); - - g.DrawImage(imageMain, new Rectangle(0, 0, imgW, imgH), 0, 0, imageMain.Width, imageMain.Height, GraphicsUnit.Pixel); - - //Font font = new Font("宋体", 15, FontStyle.Bold); - //Font font = new Font("微软雅黑", 15, FontStyle.Regular); - Font font = new Font("微软雅黑", 18, FontStyle.Regular); - //Font font = new Font("宋体", 17, FontStyle.Bold); Brush textBrush = Brushes.Black; g.TextRenderingHint = System.Drawing.Text.TextRenderingHint.ClearTypeGridFit; - RectangleF rectF = new RectangleF(60, imgH + 80, imgW - 120, textImgH - 180); - g.DrawString(bookStr, font, textBrush, rectF); + float txtY = 80; + + // 书名 + Font font = new Font("宋体", 22, FontStyle.Bold); + RectangleF rectF = new RectangleF(100, txtY, imgW - 200, imgH - txtY - 80); + g.DrawString(bookName.Replace("图书名称:", ""), font, textBrush, rectF); + // 测量文本的高度 决定接下来文字绘制位置 + var textSize = g.MeasureString(bookName.Replace("图书名称:", ""), font, imgW - 200); + txtY += 20 + textSize.Height; + + font = new Font("宋体", 16, FontStyle.Bold); + rectF = new RectangleF(100, txtY, imgW - 200, imgH - txtY - 80); + g.DrawString(author.Replace("作  者:", "").TrimEnd('著', ' ') + " 著", font, textBrush, rectF); + // 测量文本的高度 + textSize = g.MeasureString(author.Replace("作  者:", "").TrimEnd('著', ' ') + " 著", font, imgW - 200); + txtY += 20 + textSize.Height; + + rectF = new RectangleF(100, txtY, imgW - 200, imgH - txtY - 80); + g.DrawString(publisher.Replace("出版发行:", ""), font, textBrush, rectF); + // 测量文本的高度 + textSize = g.MeasureString(publisher.Replace("出版发行:", ""), font, imgW - 200); + txtY += 20 + textSize.Height; + + rectF = new RectangleF(100, txtY, imgW - 200, imgH - txtY - 80); + g.DrawString(isbn.Replace("ISBN/CN刊号:", "ISBN "), font, textBrush, rectF); + // 测量文本的高度 + textSize = g.MeasureString(isbn.Replace("ISBN/CN刊号:", "ISBN "), font, imgW - 200); + txtY += 20 + textSize.Height; + + // 以下从下往上写 + txtY = imgH - 120; + // 测量文本的高度 + textSize = g.MeasureString(binding, font, imgW - 200); + txtY -= (10 + textSize.Height); + rectF = new RectangleF(100, txtY, imgW - 200, imgH - txtY); + g.DrawString(binding, font, textBrush, rectF); + + // 测量文本的高度 + textSize = g.MeasureString(edition, font, imgW - 200); + txtY -= (10 + textSize.Height); + rectF = new RectangleF(100, txtY, imgW - 200, imgH - txtY); + g.DrawString(edition, font, textBrush, rectF); + + // 测量文本的高度 + textSize = g.MeasureString(publishTime, font, imgW - 200); + txtY -= (10 + textSize.Height); + rectF = new RectangleF(100, txtY, imgW - 200, imgH - txtY); + g.DrawString(publishTime, font, textBrush, rectF); + + // 测量文本的高度 + textSize = g.MeasureString(author, font, imgW - 200); + txtY -= (10 + textSize.Height); + rectF = new RectangleF(100, txtY, imgW - 200, imgH - txtY); + g.DrawString(author, font, textBrush, rectF); + + // 测量文本的高度 + textSize = g.MeasureString(bookPrice + "元", font, imgW - 200); + txtY -= (10 + textSize.Height); + rectF = new RectangleF(100, txtY, imgW - 200, imgH - txtY); + g.DrawString(bookPrice + "元", font, textBrush, rectF); + + // 测量文本的高度 + textSize = g.MeasureString(bookName, font, imgW - 200); + txtY -= (10 + textSize.Height); + rectF = new RectangleF(100, txtY, imgW - 200, imgH - txtY); + g.DrawString(bookName, font, textBrush, rectF); + + // 测量文本的高度 + textSize = g.MeasureString(isbn.Replace("ISBN/CN刊号:", "书号 ISBN "), font, imgW - 200); + txtY -= (10 + textSize.Height); + rectF = new RectangleF(100, txtY, imgW - 200, imgH - txtY); + g.DrawString(isbn.Replace("ISBN/CN刊号:", "书  号:ISBN "), font, textBrush, rectF); + + // 测量文本的高度 + textSize = g.MeasureString(publisher, font, imgW - 200); + txtY -= (10 + textSize.Height); + rectF = new RectangleF(100, txtY, imgW - 200, imgH - txtY); + g.DrawString(publisher, font, textBrush, rectF); + } + Thread.Sleep(Randomx.GetId(500, 800)); var locationStr = UploadImg(shop, bookImg, cell); if (!locationStr.Contains("\"success\":true")) @@ -5666,6 +5838,8 @@ namespace TemuKJD.WXForms.ProductForms } data += "&in_groups=" + serach_group; + data += "&in_notes=" + cmbNotes.Text.Trim(); + data += "&product_name=" + txtSearchGoodsName.Text.Trim(); // 商品采集权限可以随机管理员或自己采集的商品 @@ -5678,6 +5852,7 @@ namespace TemuKJD.WXForms.ProductForms cmbHot.Text != "爆款数据" && !BaseClass.UserAuthority.Contains("货源选择")) data += "&add_user_name=" + (BaseClass.GroupId == 3 ? BaseClass.UserName : BaseClass.ParentUserName); + // 防止手输查询学员数据 if (!BaseClass.UserAuthority.Contains("学员数据") && !BaseClass.ParentAuthority.Contains("学员数据") && cmbSourceType.Text.Contains("学员数据")) { cmbSourceType.Text = cmbSourceType.Text.Replace("学员数据", ""); @@ -5928,7 +6103,7 @@ namespace TemuKJD.WXForms.ProductForms private void txtAddPrice_TextChanged(object sender, EventArgs e) { - if (IsLoadComplate) + if (IsFormLoad) { defaultAddPriceRule.AddPriceTimes = txtAddTimes.Text.Trim().ParseToDecimal(); defaultAddPriceRule.AddMorePrice = txtAddMorePrice.Text.Trim().ParseToDecimal(); @@ -5965,7 +6140,7 @@ namespace TemuKJD.WXForms.ProductForms private void chkAddMorePriceFirst_CheckedChanged(object sender, EventArgs e) { - if (IsLoadComplate) + if (IsFormLoad) { defaultAddPriceRule.AddMorePriceFirst = chkAddMorePriceFirst.Checked; NaiBa.Util.Helper.ConfigHelper.SaveConfig("wx_default_add_price_rule", defaultAddPriceRule); @@ -6574,7 +6749,7 @@ namespace TemuKJD.WXForms.ProductForms private void txtFissionTitle_TextChanged(object sender, EventArgs e) { - if (this.IsLoadComplate) + if (this.IsFormLoad) NaiBa.Util.Helper.ConfigHelper.SaveConfig("wx_prod_fission_title", txtFissionTitle.Text); lblFissionTitleCount.Text = "标题数:" + txtFissionTitle.Text.Split(new string[] { "\r", "\n" }, StringSplitOptions.RemoveEmptyEntries).ToList().Count(); } @@ -6593,9 +6768,13 @@ namespace TemuKJD.WXForms.ProductForms } } - private void chkSameSpecPrice_CheckedChanged(object sender, EventArgs e) + private void chkSkipReplaceText_CheckedChanged(object sender, EventArgs e) { - + if (this.IsFormLoad) + { + wxUploadRule.IsSkipHasFilterWordsProd = chkSkipReplaceText.Checked; + NaiBa.Util.Helper.ConfigHelper.SaveConfig("wx_upload_rule", wxUploadRule); + } } } @@ -7046,6 +7225,7 @@ Content-Type: application/octet-stream public int PreSaleDays { get; set; } = 5; public string FilterWords { get; set; } = "顶级,之王,二手,亏本,冲量,白菜价,跳楼价,xx,xxx,最大,最小,低价,降价,成本,赔钱,甩卖,真丝,蚕丝,香云纱,羊绒,羊毛,羊羔绒,羊羔毛,羽绒,皮草"; + public bool IsSkipHasFilterWordsProd { get; set; } = false; public int SkuMinPrice { get; set; } = 10; public int SkuMaxPrice { get; set; } = 9999; diff --git a/TEMUKJD/WXForms/ProductForms/WXProdPreSaleForm.Designer.cs b/TEMUKJD/WXForms/ProductForms/WXProdPreSaleForm.Designer.cs index 47afb8a..c31a37a 100644 --- a/TEMUKJD/WXForms/ProductForms/WXProdPreSaleForm.Designer.cs +++ b/TEMUKJD/WXForms/ProductForms/WXProdPreSaleForm.Designer.cs @@ -159,6 +159,7 @@ namespace TemuKJD.WXForms.ProductForms this.colOpResult = new System.Windows.Forms.DataGridViewTextBoxColumn(); this.splitContainer4 = new System.Windows.Forms.SplitContainer(); this.statusBar = new TemuKJD.UserControls.StatusBarUserControl(); + this.comboBox1 = new System.Windows.Forms.ComboBox(); ((System.ComponentModel.ISupportInitialize)(this.splitContainer1)).BeginInit(); this.splitContainer1.Panel1.SuspendLayout(); this.splitContainer1.Panel2.SuspendLayout(); @@ -729,6 +730,7 @@ namespace TemuKJD.WXForms.ProductForms | System.Windows.Forms.AnchorStyles.Left))); this.ucGroupBoxEx4.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255))))); this.ucGroupBoxEx4.BorderStyle = TemuKJD.UserComponent.UcGroupBoxEx.GroupBoxBorderStyle.ROUND; + this.ucGroupBoxEx4.Controls.Add(this.comboBox1); this.ucGroupBoxEx4.Controls.Add(this.label5); this.ucGroupBoxEx4.Controls.Add(this.chkSearchPromotionLink); this.ucGroupBoxEx4.Controls.Add(this.cmbOnSaleStatus); @@ -766,7 +768,7 @@ namespace TemuKJD.WXForms.ProductForms this.chkSearchPromotionLink.Name = "chkSearchPromotionLink"; this.chkSearchPromotionLink.Size = new System.Drawing.Size(147, 21); this.chkSearchPromotionLink.TabIndex = 827; - this.chkSearchPromotionLink.Text = "同时查询商品推广短链"; + this.chkSearchPromotionLink.Text = "同时查询商品推广链接"; this.chkSearchPromotionLink.UseVisualStyleBackColor = true; this.chkSearchPromotionLink.CheckedChanged += new System.EventHandler(this.chkSearchPromotionLink_CheckedChanged); // @@ -1874,6 +1876,18 @@ namespace TemuKJD.WXForms.ProductForms this.statusBar.Size = new System.Drawing.Size(1165, 26); this.statusBar.TabIndex = 2; // + // comboBox1 + // + this.comboBox1.FormattingEnabled = true; + this.comboBox1.Items.AddRange(new object[] { + "短链", + "长链"}); + this.comboBox1.Location = new System.Drawing.Point(156, 89); + this.comboBox1.Name = "comboBox1"; + this.comboBox1.Size = new System.Drawing.Size(49, 25); + this.comboBox1.TabIndex = 995; + this.comboBox1.Text = "短链"; + // // WXProdPreSaleForm // this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.None; @@ -2038,5 +2052,6 @@ namespace TemuKJD.WXForms.ProductForms private System.Windows.Forms.DateTimePicker dtpEndTime; private System.Windows.Forms.Label label9; private System.Windows.Forms.ComboBox cmbChangePriceType; + private System.Windows.Forms.ComboBox comboBox1; } } \ No newline at end of file diff --git a/TEMUKJD/WXForms/ProductForms/WXProdPreSaleForm.cs b/TEMUKJD/WXForms/ProductForms/WXProdPreSaleForm.cs index b9324be..18465ee 100644 --- a/TEMUKJD/WXForms/ProductForms/WXProdPreSaleForm.cs +++ b/TEMUKJD/WXForms/ProductForms/WXProdPreSaleForm.cs @@ -844,7 +844,10 @@ namespace TemuKJD.WXForms.ProductForms { Invoke(new Action(() => { - dgvSelectProduct.Rows[rowIndex].Cells["colPromotionLink"].Value = shareUrl; + if (comboBox1.Text == "短链") + dgvSelectProduct.Rows[rowIndex].Cells["colPromotionLink"].Value = shortLink; + else + dgvSelectProduct.Rows[rowIndex].Cells["colPromotionLink"].Value = shareUrl; })); } else diff --git a/TEMUKJD/WXForms/ProductForms/WXUserCollectAuthProdListForm.Designer.cs b/TEMUKJD/WXForms/ProductForms/WXUserCollectAuthProdListForm.Designer.cs index 037b67e..ca2739b 100644 --- a/TEMUKJD/WXForms/ProductForms/WXUserCollectAuthProdListForm.Designer.cs +++ b/TEMUKJD/WXForms/ProductForms/WXUserCollectAuthProdListForm.Designer.cs @@ -49,6 +49,9 @@ namespace TemuKJD.WXForms.ProductForms System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle17 = new System.Windows.Forms.DataGridViewCellStyle(); System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(WXUserCollectAuthProdListForm)); this.splitContainer1 = new System.Windows.Forms.SplitContainer(); + this.cmbBatchEditNotes = new System.Windows.Forms.ComboBox(); + this.btnEditNotes = new DevComponents.DotNetBar.PanelEx(); + this.btnBatchEditNotes = new DevComponents.DotNetBar.PanelEx(); this.btnAITitleFission = new DevComponents.DotNetBar.PanelEx(); this.txtFissionProductCount = new System.Windows.Forms.TextBox(); this.chkFissionProduct = new TemuKJD.UserComponent.UcCheckBox(this.components); @@ -61,6 +64,8 @@ namespace TemuKJD.WXForms.ProductForms this.btnGetProdWxCate = new DevComponents.DotNetBar.PanelEx(); this.btnDel = new DevComponents.DotNetBar.PanelEx(); this.tableLayoutPanel1 = new System.Windows.Forms.TableLayoutPanel(); + this.cmbNotes = new System.Windows.Forms.ComboBox(); + this.label9 = new System.Windows.Forms.Label(); this.cmbHasFission = new System.Windows.Forms.ComboBox(); this.label8 = new System.Windows.Forms.Label(); this.txtCatBoundLessThan = new System.Windows.Forms.TextBox(); @@ -80,11 +85,13 @@ namespace TemuKJD.WXForms.ProductForms this.lblSourceType = new System.Windows.Forms.Label(); this.cmbSourceType = new System.Windows.Forms.ComboBox(); this.lblNotes = new System.Windows.Forms.Label(); - this.txtNotes = new System.Windows.Forms.TextBox(); this.label12 = new System.Windows.Forms.Label(); this.cmbWxCat = new System.Windows.Forms.ComboBox(); this.lblWxSafe = new System.Windows.Forms.Label(); this.cmbWxSafe = new System.Windows.Forms.ComboBox(); + this.chkTime = new TemuKJD.UserComponent.UcCheckBox(this.components); + this.dtpStart = new System.Windows.Forms.DateTimePicker(); + this.dtpEnd = new System.Windows.Forms.DateTimePicker(); this.label7 = new System.Windows.Forms.Label(); this.splitContainer2 = new System.Windows.Forms.SplitContainer(); this.lblRelation = new System.Windows.Forms.Label(); @@ -144,12 +151,6 @@ namespace TemuKJD.WXForms.ProductForms this.col_select_product = new System.Windows.Forms.DataGridViewLinkColumn(); this.ucSplitPage1 = new TemuKJD.UserControls.UcSplitPage(); this.statusBar = new TemuKJD.UserControls.StatusBarUserControl(); - this.txtBatchEditNotes = new System.Windows.Forms.TextBox(); - this.btnBatchEditNotes = new DevComponents.DotNetBar.PanelEx(); - this.dtpEnd = new System.Windows.Forms.DateTimePicker(); - this.dtpStart = new System.Windows.Forms.DateTimePicker(); - this.chkTime = new TemuKJD.UserComponent.UcCheckBox(this.components); - this.label9 = new System.Windows.Forms.Label(); ((System.ComponentModel.ISupportInitialize)(this.splitContainer1)).BeginInit(); this.splitContainer1.Panel1.SuspendLayout(); this.splitContainer1.Panel2.SuspendLayout(); @@ -174,8 +175,9 @@ namespace TemuKJD.WXForms.ProductForms // // splitContainer1.Panel1 // + this.splitContainer1.Panel1.Controls.Add(this.cmbBatchEditNotes); + this.splitContainer1.Panel1.Controls.Add(this.btnEditNotes); this.splitContainer1.Panel1.Controls.Add(this.btnBatchEditNotes); - this.splitContainer1.Panel1.Controls.Add(this.txtBatchEditNotes); this.splitContainer1.Panel1.Controls.Add(this.btnAITitleFission); this.splitContainer1.Panel1.Controls.Add(this.txtFissionProductCount); this.splitContainer1.Panel1.Controls.Add(this.chkFissionProduct); @@ -197,6 +199,66 @@ namespace TemuKJD.WXForms.ProductForms this.splitContainer1.SplitterDistance = 115; this.splitContainer1.TabIndex = 1; // + // cmbBatchEditNotes + // + this.cmbBatchEditNotes.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); + this.cmbBatchEditNotes.FormattingEnabled = true; + this.cmbBatchEditNotes.Location = new System.Drawing.Point(1221, 43); + this.cmbBatchEditNotes.Margin = new System.Windows.Forms.Padding(0, 3, 3, 3); + this.cmbBatchEditNotes.Name = "cmbBatchEditNotes"; + this.cmbBatchEditNotes.Size = new System.Drawing.Size(105, 25); + this.cmbBatchEditNotes.TabIndex = 886; + // + // btnEditNotes + // + this.btnEditNotes.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); + this.btnEditNotes.ColorSchemeStyle = DevComponents.DotNetBar.eDotNetBarStyle.StyleManagerControlled; + this.btnEditNotes.Cursor = System.Windows.Forms.Cursors.Hand; + this.btnEditNotes.DisabledBackColor = System.Drawing.Color.Empty; + this.btnEditNotes.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); + this.btnEditNotes.Location = new System.Drawing.Point(1328, 43); + this.btnEditNotes.Name = "btnEditNotes"; + this.btnEditNotes.Size = new System.Drawing.Size(15, 25); + this.btnEditNotes.Style.Alignment = System.Drawing.StringAlignment.Center; + this.btnEditNotes.Style.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255))))); + this.btnEditNotes.Style.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255))))); + this.btnEditNotes.Style.BorderColor.ColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelBorder; + this.btnEditNotes.Style.BorderDashStyle = System.Drawing.Drawing2D.DashStyle.Dash; + this.btnEditNotes.Style.BorderSide = DevComponents.DotNetBar.eBorderSide.None; + this.btnEditNotes.Style.ForeColor.Color = System.Drawing.Color.White; + this.btnEditNotes.Style.GradientAngle = 90; + this.btnEditNotes.StyleMouseOver.Alignment = System.Drawing.StringAlignment.Center; + this.btnEditNotes.StyleMouseOver.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(25)))), ((int)(((byte)(102)))), ((int)(((byte)(255))))); + this.btnEditNotes.StyleMouseOver.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(25)))), ((int)(((byte)(102)))), ((int)(((byte)(255))))); + this.btnEditNotes.TabIndex = 1267; + this.btnEditNotes.Text = "+"; + this.btnEditNotes.Click += new System.EventHandler(this.btnEditNotes_Click); + // + // btnBatchEditNotes + // + this.btnBatchEditNotes.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); + this.btnBatchEditNotes.ColorSchemeStyle = DevComponents.DotNetBar.eDotNetBarStyle.StyleManagerControlled; + this.btnBatchEditNotes.Cursor = System.Windows.Forms.Cursors.Hand; + this.btnBatchEditNotes.DisabledBackColor = System.Drawing.Color.Empty; + this.btnBatchEditNotes.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); + this.btnBatchEditNotes.Location = new System.Drawing.Point(1345, 43); + this.btnBatchEditNotes.Name = "btnBatchEditNotes"; + this.btnBatchEditNotes.Size = new System.Drawing.Size(84, 25); + this.btnBatchEditNotes.Style.Alignment = System.Drawing.StringAlignment.Center; + this.btnBatchEditNotes.Style.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255))))); + this.btnBatchEditNotes.Style.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255))))); + this.btnBatchEditNotes.Style.BorderColor.ColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelBorder; + this.btnBatchEditNotes.Style.BorderDashStyle = System.Drawing.Drawing2D.DashStyle.Dash; + this.btnBatchEditNotes.Style.BorderSide = DevComponents.DotNetBar.eBorderSide.None; + this.btnBatchEditNotes.Style.ForeColor.Color = System.Drawing.Color.White; + this.btnBatchEditNotes.Style.GradientAngle = 90; + this.btnBatchEditNotes.StyleMouseOver.Alignment = System.Drawing.StringAlignment.Center; + this.btnBatchEditNotes.StyleMouseOver.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(25)))), ((int)(((byte)(102)))), ((int)(((byte)(255))))); + this.btnBatchEditNotes.StyleMouseOver.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(25)))), ((int)(((byte)(102)))), ((int)(((byte)(255))))); + this.btnBatchEditNotes.TabIndex = 1230; + this.btnBatchEditNotes.Text = "批量修改备注"; + this.btnBatchEditNotes.Click += new System.EventHandler(this.btnBatchEditNotes_Click); + // // btnAITitleFission // this.btnAITitleFission.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); @@ -250,9 +312,9 @@ namespace TemuKJD.WXForms.ProductForms this.btnOut1688ProdSaveDb.Cursor = System.Windows.Forms.Cursors.Hand; this.btnOut1688ProdSaveDb.DisabledBackColor = System.Drawing.Color.Empty; this.btnOut1688ProdSaveDb.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); - this.btnOut1688ProdSaveDb.Location = new System.Drawing.Point(1324, 78); + this.btnOut1688ProdSaveDb.Location = new System.Drawing.Point(1328, 78); this.btnOut1688ProdSaveDb.Name = "btnOut1688ProdSaveDb"; - this.btnOut1688ProdSaveDb.Size = new System.Drawing.Size(105, 25); + this.btnOut1688ProdSaveDb.Size = new System.Drawing.Size(101, 25); this.btnOut1688ProdSaveDb.Style.Alignment = System.Drawing.StringAlignment.Center; this.btnOut1688ProdSaveDb.Style.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255))))); this.btnOut1688ProdSaveDb.Style.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255))))); @@ -275,7 +337,7 @@ namespace TemuKJD.WXForms.ProductForms this.btnImportPddOutData.Cursor = System.Windows.Forms.Cursors.Hand; this.btnImportPddOutData.DisabledBackColor = System.Drawing.Color.Empty; this.btnImportPddOutData.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); - this.btnImportPddOutData.Location = new System.Drawing.Point(1216, 78); + this.btnImportPddOutData.Location = new System.Drawing.Point(1221, 78); this.btnImportPddOutData.Name = "btnImportPddOutData"; this.btnImportPddOutData.Size = new System.Drawing.Size(105, 25); this.btnImportPddOutData.Style.Alignment = System.Drawing.StringAlignment.Center; @@ -462,6 +524,7 @@ namespace TemuKJD.WXForms.ProductForms this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 16.66667F)); this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Absolute, 20F)); this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Absolute, 20F)); + this.tableLayoutPanel1.Controls.Add(this.cmbNotes, 7, 0); this.tableLayoutPanel1.Controls.Add(this.label9, 2, 2); this.tableLayoutPanel1.Controls.Add(this.cmbHasFission, 11, 1); this.tableLayoutPanel1.Controls.Add(this.label8, 10, 1); @@ -482,7 +545,6 @@ namespace TemuKJD.WXForms.ProductForms this.tableLayoutPanel1.Controls.Add(this.lblSourceType, 4, 0); this.tableLayoutPanel1.Controls.Add(this.cmbSourceType, 5, 0); this.tableLayoutPanel1.Controls.Add(this.lblNotes, 6, 0); - this.tableLayoutPanel1.Controls.Add(this.txtNotes, 7, 0); this.tableLayoutPanel1.Controls.Add(this.label12, 8, 0); this.tableLayoutPanel1.Controls.Add(this.cmbWxCat, 9, 0); this.tableLayoutPanel1.Controls.Add(this.lblWxSafe, 10, 0); @@ -499,6 +561,28 @@ namespace TemuKJD.WXForms.ProductForms this.tableLayoutPanel1.Size = new System.Drawing.Size(992, 105); this.tableLayoutPanel1.TabIndex = 679; // + // cmbNotes + // + this.cmbNotes.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.cmbNotes.FormattingEnabled = true; + this.cmbNotes.Location = new System.Drawing.Point(554, 3); + this.cmbNotes.Margin = new System.Windows.Forms.Padding(0, 3, 3, 3); + this.cmbNotes.Name = "cmbNotes"; + this.cmbNotes.Size = new System.Drawing.Size(99, 25); + this.cmbNotes.TabIndex = 885; + // + // label9 + // + this.label9.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); + this.label9.AutoSize = true; + this.label9.Location = new System.Drawing.Point(181, 77); + this.label9.Margin = new System.Windows.Forms.Padding(3, 7, 0, 0); + this.label9.Name = "label9"; + this.label9.Size = new System.Drawing.Size(56, 17); + this.label9.TabIndex = 885; + this.label9.Text = "结束时间"; + // // cmbHasFission // this.cmbHasFission.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) @@ -748,18 +832,6 @@ namespace TemuKJD.WXForms.ProductForms this.lblNotes.TabIndex = 440; this.lblNotes.Text = " 备注"; // - // txtNotes - // - this.txtNotes.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) - | System.Windows.Forms.AnchorStyles.Right))); - this.txtNotes.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; - this.txtNotes.Font = new System.Drawing.Font("微软雅黑", 10F); - this.txtNotes.Location = new System.Drawing.Point(554, 3); - this.txtNotes.Margin = new System.Windows.Forms.Padding(0, 3, 3, 3); - this.txtNotes.Name = "txtNotes"; - this.txtNotes.Size = new System.Drawing.Size(99, 25); - this.txtNotes.TabIndex = 439; - // // label12 // this.label12.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); @@ -814,6 +886,38 @@ namespace TemuKJD.WXForms.ProductForms this.cmbWxSafe.TabIndex = 676; this.cmbWxSafe.Text = "安全+未校验"; // + // chkTime + // + this.chkTime.Anchor = System.Windows.Forms.AnchorStyles.Right; + this.chkTime.Location = new System.Drawing.Point(3, 77); + this.chkTime.Name = "chkTime"; + this.chkTime.Size = new System.Drawing.Size(66, 21); + this.chkTime.TabIndex = 980; + this.chkTime.Text = "开始时间"; + this.chkTime.UseVisualStyleBackColor = true; + // + // dtpStart + // + this.dtpStart.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right))); + this.dtpStart.CustomFormat = "yyyy-MM-dd HH:mm"; + this.dtpStart.Format = System.Windows.Forms.DateTimePickerFormat.Custom; + this.dtpStart.Location = new System.Drawing.Point(72, 76); + this.dtpStart.Margin = new System.Windows.Forms.Padding(0, 3, 3, 3); + this.dtpStart.Name = "dtpStart"; + this.dtpStart.Size = new System.Drawing.Size(99, 23); + this.dtpStart.TabIndex = 981; + // + // dtpEnd + // + this.dtpEnd.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right))); + this.dtpEnd.CustomFormat = "yyyy-MM-dd HH:mm"; + this.dtpEnd.Format = System.Windows.Forms.DateTimePickerFormat.Custom; + this.dtpEnd.Location = new System.Drawing.Point(237, 76); + this.dtpEnd.Margin = new System.Windows.Forms.Padding(0, 3, 3, 3); + this.dtpEnd.Name = "dtpEnd"; + this.dtpEnd.Size = new System.Drawing.Size(99, 23); + this.dtpEnd.TabIndex = 982; + // // label7 // this.label7.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); @@ -1477,85 +1581,6 @@ namespace TemuKJD.WXForms.ProductForms this.statusBar.Size = new System.Drawing.Size(1438, 25); this.statusBar.TabIndex = 5; // - // txtBatchEditNotes - // - this.txtBatchEditNotes.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); - this.txtBatchEditNotes.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; - this.txtBatchEditNotes.Font = new System.Drawing.Font("微软雅黑", 10F); - this.txtBatchEditNotes.Location = new System.Drawing.Point(1216, 43); - this.txtBatchEditNotes.Margin = new System.Windows.Forms.Padding(0, 3, 3, 3); - this.txtBatchEditNotes.Name = "txtBatchEditNotes"; - this.txtBatchEditNotes.Size = new System.Drawing.Size(126, 25); - this.txtBatchEditNotes.TabIndex = 1226; - // - // btnBatchEditNotes - // - this.btnBatchEditNotes.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); - this.btnBatchEditNotes.ColorSchemeStyle = DevComponents.DotNetBar.eDotNetBarStyle.StyleManagerControlled; - this.btnBatchEditNotes.Cursor = System.Windows.Forms.Cursors.Hand; - this.btnBatchEditNotes.DisabledBackColor = System.Drawing.Color.Empty; - this.btnBatchEditNotes.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); - this.btnBatchEditNotes.Location = new System.Drawing.Point(1345, 43); - this.btnBatchEditNotes.Name = "btnBatchEditNotes"; - this.btnBatchEditNotes.Size = new System.Drawing.Size(84, 25); - this.btnBatchEditNotes.Style.Alignment = System.Drawing.StringAlignment.Center; - this.btnBatchEditNotes.Style.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255))))); - this.btnBatchEditNotes.Style.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255))))); - this.btnBatchEditNotes.Style.BorderColor.ColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelBorder; - this.btnBatchEditNotes.Style.BorderDashStyle = System.Drawing.Drawing2D.DashStyle.Dash; - this.btnBatchEditNotes.Style.BorderSide = DevComponents.DotNetBar.eBorderSide.None; - this.btnBatchEditNotes.Style.ForeColor.Color = System.Drawing.Color.White; - this.btnBatchEditNotes.Style.GradientAngle = 90; - this.btnBatchEditNotes.StyleMouseOver.Alignment = System.Drawing.StringAlignment.Center; - this.btnBatchEditNotes.StyleMouseOver.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(25)))), ((int)(((byte)(102)))), ((int)(((byte)(255))))); - this.btnBatchEditNotes.StyleMouseOver.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(25)))), ((int)(((byte)(102)))), ((int)(((byte)(255))))); - this.btnBatchEditNotes.TabIndex = 1230; - this.btnBatchEditNotes.Text = "批量修改备注"; - this.btnBatchEditNotes.Click += new System.EventHandler(this.btnBatchEditNotes_Click); - // - // dtpEnd - // - this.dtpEnd.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right))); - this.dtpEnd.CustomFormat = "yyyy-MM-dd HH:mm"; - this.dtpEnd.Format = System.Windows.Forms.DateTimePickerFormat.Custom; - this.dtpEnd.Location = new System.Drawing.Point(237, 76); - this.dtpEnd.Margin = new System.Windows.Forms.Padding(0, 3, 3, 3); - this.dtpEnd.Name = "dtpEnd"; - this.dtpEnd.Size = new System.Drawing.Size(99, 23); - this.dtpEnd.TabIndex = 982; - // - // dtpStart - // - this.dtpStart.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right))); - this.dtpStart.CustomFormat = "yyyy-MM-dd HH:mm"; - this.dtpStart.Format = System.Windows.Forms.DateTimePickerFormat.Custom; - this.dtpStart.Location = new System.Drawing.Point(72, 76); - this.dtpStart.Margin = new System.Windows.Forms.Padding(0, 3, 3, 3); - this.dtpStart.Name = "dtpStart"; - this.dtpStart.Size = new System.Drawing.Size(99, 23); - this.dtpStart.TabIndex = 981; - // - // chkTime - // - this.chkTime.Anchor = System.Windows.Forms.AnchorStyles.Right; - this.chkTime.Location = new System.Drawing.Point(3, 77); - this.chkTime.Name = "chkTime"; - this.chkTime.Size = new System.Drawing.Size(66, 21); - this.chkTime.TabIndex = 980; - this.chkTime.Text = "开始时间"; - this.chkTime.UseVisualStyleBackColor = true; - // - // label9 - // - this.label9.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); - this.label9.AutoSize = true; - this.label9.Location = new System.Drawing.Point(181, 77); - this.label9.Margin = new System.Windows.Forms.Padding(3, 7, 0, 0); - this.label9.Name = "label9"; - this.label9.Size = new System.Drawing.Size(56, 17); - this.label9.TabIndex = 885; - this.label9.Text = "结束时间"; - // // WXUserCollectAuthProdListForm // this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.None; @@ -1608,7 +1633,6 @@ namespace TemuKJD.WXForms.ProductForms private System.Windows.Forms.Label label2; private UserComponent.DataGridViewEx dgvDbProduct; private System.Windows.Forms.PictureBox pbLoading; - private System.Windows.Forms.TextBox txtNotes; private System.Windows.Forms.Label lblNotes; private System.Windows.Forms.ComboBox cmbSort; private System.Windows.Forms.Label label6; @@ -1690,10 +1714,12 @@ namespace TemuKJD.WXForms.ProductForms private System.Windows.Forms.DataGridViewLinkColumn col_delete; private System.Windows.Forms.DataGridViewLinkColumn col_select_product; private DevComponents.DotNetBar.PanelEx btnBatchEditNotes; - private System.Windows.Forms.TextBox txtBatchEditNotes; private System.Windows.Forms.DateTimePicker dtpStart; private System.Windows.Forms.DateTimePicker dtpEnd; private UserComponent.UcCheckBox chkTime; private System.Windows.Forms.Label label9; + private DevComponents.DotNetBar.PanelEx btnEditNotes; + public System.Windows.Forms.ComboBox cmbNotes; + public System.Windows.Forms.ComboBox cmbBatchEditNotes; } } \ No newline at end of file diff --git a/TEMUKJD/WXForms/ProductForms/WXUserCollectAuthProdListForm.cs b/TEMUKJD/WXForms/ProductForms/WXUserCollectAuthProdListForm.cs index 42e45f5..b5d0b1f 100644 --- a/TEMUKJD/WXForms/ProductForms/WXUserCollectAuthProdListForm.cs +++ b/TEMUKJD/WXForms/ProductForms/WXUserCollectAuthProdListForm.cs @@ -54,6 +54,13 @@ namespace TemuKJD.WXForms.ProductForms dtpStart.Value = DateTime.Now.Date.AddMonths(-1); dtpEnd.Value = DateTime.Now.Date.AddDays(1).AddSeconds(-1); + Task.Run(() => + { + string addUserName = BaseClass.GroupId == 3 ? BaseClass.UserName : BaseClass.ParentUserName; + PDDDBProdListForm.GetPDDProductNotes(new List { cmbNotes }, addUserName); + PDDDBProdListForm.GetPDDProductNotes(new List { cmbBatchEditNotes }, addUserName); + }); + //chkCatBoundLessThan.Visible = false; //chkCatBoundMoreThan.Visible = false; //tableLayoutPanel1.SetColumn(lblSourceType, 2); @@ -198,7 +205,7 @@ namespace TemuKJD.WXForms.ProductForms // 清除整个Bitmap为白色 g.Clear(Color.White); } - foreach (var prod in lstTemuDbProduct) + foreach (var prod in lstTemuDbProduct.Reverse().ToList()) { var catName = GetProdCateName(prod); Invoke(new Action(() => @@ -379,7 +386,7 @@ namespace TemuKJD.WXForms.ProductForms "&page_size=" + pageSize + "&search_spu=" + string.Join(",", txtSPU.Text.Trim().Split(new string[] { ",", ",", " " }, StringSplitOptions.RemoveEmptyEntries).Select(s => s + collectAuthorityTag)) + "&search_skc=" + txtSKC.Text.Trim() + - "&search_notes=" + txtNotes.Text.Trim() + + "&search_notes=" + cmbNotes.Text.Trim() + "&search_ext_code=" + txtExtCode.Text.Trim() + //"&search_group=" + cmbGroupFilter.Text.Trim() + "&search_prod_name=" + txtProdName.Text.Trim() + @@ -562,7 +569,7 @@ namespace TemuKJD.WXForms.ProductForms this.txtProdName.Text = ""; this.txtSKC.Text = ""; this.txtSPU.Text = ""; - this.txtNotes.Text = ""; + this.cmbNotes.Text = ""; this.cmbGroupFilter.Text = ""; this.cmbSort.Text = "入库时间"; this.cmbSourceType.Text = ""; @@ -1204,8 +1211,10 @@ namespace TemuKJD.WXForms.ProductForms private void btnBatchEditNotes_Click(object sender, EventArgs e) { - var lstProdId = dgvDbProduct.Rows.Cast().Where(row - => row.Cells["colSelect"]?.Value.ParseToBool() == true).Select(r => r.Cells["col_spu_id"]?.Value.ToString()).ToList(); + var rows = dgvDbProduct.Rows.Cast().Where(row + => row.Cells["colSelect"]?.Value.ParseToBool() == true); + var lstProdId = rows.Select(r => r.Cells["col_spu_id"]?.Value.ToString()).ToList(); + string newNotes = this.cmbBatchEditNotes.Text.Trim(); if (BaseMsgForm.ShowConfirm("确定批量编辑备注吗?").DialogResult == DialogResult.Cancel) return; if (lstProdId.Count == 0) @@ -1215,30 +1224,12 @@ namespace TemuKJD.WXForms.ProductForms } this.pbLoading.Visible = true; - //int total = 0, successCnt = 0, failCnt = 0; Task.Run(() => { var prodList = lstTemuDbProduct.Where(p => lstProdId.Contains(p.spu_id)).ToList(); - //foreach (var dbProd in prodList) - //{ - // total++; - // var url = BaseClass.BuildPDDObjString("product/mdy_db_product"); - // var data = UserLogin.GetSignaturex() + - // "&db_id=" + dbProd.id + "¬es=" + this.txtBatchEditNotes.Text.Trim(); - // var html = GetHtml.PostUtf8(url, data); - // if (string.IsNullOrEmpty(html) || !html.Contains("\"code\":200")) - // { - // failCnt++; - // } - // else - // { - // successCnt++; - // } - // Thread.Sleep(100); - //} var url = BaseClass.BuildPDDObjString("product/mdy_db_product"); var data = UserLogin.GetSignaturex() + - "&in_db_ids=" + string.Join(",", prodList.Select(p => p.id).ToList()) + "¬es=" + this.txtBatchEditNotes.Text.Trim(); + "&in_db_ids=" + string.Join(",", prodList.Select(p => p.id).ToList()) + "¬es=" + newNotes; var html = GetHtml.PostUtf8(url, data); if (string.IsNullOrEmpty(html) || !html.Contains("\"code\":200")) { @@ -1246,10 +1237,46 @@ namespace TemuKJD.WXForms.ProductForms } else { - SearchDbProd(this.ucSplitPage1.CurrentPage); - BaseMsgForm.ShowInfo("修改完成"); + //SearchDbProd(this.ucSplitPage1.CurrentPage); + //BaseMsgForm.ShowInfo("修改完成"); + + foreach (var prod in prodList) + { + prod.notes = newNotes; + } + foreach (var row in rows) + { + Invoke(new Action(() => { row.Cells["col_notes"].Value = newNotes; })); + + } + + if (!string.IsNullOrEmpty(newNotes)) + { + string addUserName = BaseClass.GroupId == 3 ? BaseClass.UserName : BaseClass.ParentUserName; + PDDDBProdNotesManageFrom.AddProductNotes(newNotes, addUserName); + + PDDDBProdListForm.GetPDDProductNotes(new List { cmbNotes }, addUserName); + PDDDBProdListForm.GetPDDProductNotes(new List { cmbBatchEditNotes }, addUserName); + } } + Invoke(new Action(() => + { + this.pbLoading.Visible = false; + })); }); } + + private void btnEditNotes_Click(object sender, EventArgs e) + { + string addUserName = BaseClass.GroupId == 3 ? BaseClass.UserName : BaseClass.ParentUserName; + PDDDBProdNotesManageFrom groupMf = new PDDDBProdNotesManageFrom(addUserName); + groupMf.ShowDialog(); + + + PDDDBProdListForm.GetPDDProductNotes(new List { cmbNotes }, addUserName); + PDDDBProdListForm.GetPDDProductNotes(new List { cmbBatchEditNotes }, addUserName); + } + + } } diff --git a/TEMUKJD/WXForms/ShopForms/WXGetTopUpQrCode.Designer.cs b/TEMUKJD/WXForms/ShopForms/WXGetTopUpQrCode.Designer.cs index b0a2751..386f4b7 100644 --- a/TEMUKJD/WXForms/ShopForms/WXGetTopUpQrCode.Designer.cs +++ b/TEMUKJD/WXForms/ShopForms/WXGetTopUpQrCode.Designer.cs @@ -157,7 +157,7 @@ namespace TemuKJD.WXForms.ShopForms this.label2.Name = "label2"; this.label2.Size = new System.Drawing.Size(92, 17); this.label2.TabIndex = 1150; - this.label2.Text = "余额充值金额:"; + this.label2.Text = "积分充值金额:"; // // splitContainer1 // diff --git a/TEMUKJD/WXForms/ShopForms/WXGetTopUpQrCode.cs b/TEMUKJD/WXForms/ShopForms/WXGetTopUpQrCode.cs index 79cd142..9a1c7e6 100644 --- a/TEMUKJD/WXForms/ShopForms/WXGetTopUpQrCode.cs +++ b/TEMUKJD/WXForms/ShopForms/WXGetTopUpQrCode.cs @@ -115,6 +115,19 @@ namespace TemuKJD.WXForms.ShopForms //{ // updateBalanceAction(); //} + + var url3 = BaseClass.BuildWXObjString("user/get_all_user"); + var data3 = UserLogin.GetSignaturex(); + data3 += "&search_user_name=" + BaseClass.UserName; + var html = GetHtml.PostUtf8(url3, data3); + if (string.IsNullOrEmpty(html) || !html.Contains("\"code\":200")) + html = GetHtml.PostUtf8(url3, data3); + if (html.Contains("\"code\":200")) + { + var p = BaseRegex.GetDecimalJson(ref html, "points"); + BaseClass.Points = p.ParseToInt(); + MainForm.instance.lblPoints.Text = "账户积分:" + BaseClass.Points.ToString(); + } } } } diff --git a/TEMUKJD/WXForms/ShopForms/WXShopForm.Designer.cs b/TEMUKJD/WXForms/ShopForms/WXShopForm.Designer.cs index a783092..eba14b6 100644 --- a/TEMUKJD/WXForms/ShopForms/WXShopForm.Designer.cs +++ b/TEMUKJD/WXForms/ShopForms/WXShopForm.Designer.cs @@ -37,7 +37,7 @@ System.Windows.Forms.TreeNode treeNode7 = new System.Windows.Forms.TreeNode("店铺经营统计"); System.Windows.Forms.TreeNode treeNode8 = new System.Windows.Forms.TreeNode("评分考核"); System.Windows.Forms.TreeNode treeNode9 = new System.Windows.Forms.TreeNode("税务申报"); - System.Windows.Forms.TreeNode treeNode10 = new System.Windows.Forms.TreeNode("充值二维码"); + System.Windows.Forms.TreeNode treeNode10 = new System.Windows.Forms.TreeNode("积分充值"); System.Windows.Forms.TreeNode treeNode11 = new System.Windows.Forms.TreeNode("店铺管理", new System.Windows.Forms.TreeNode[] { treeNode1, treeNode2, @@ -158,8 +158,8 @@ treeNode8.Text = "评分考核"; treeNode9.Name = "税务申报"; treeNode9.Text = "税务申报"; - treeNode10.Name = "充值二维码"; - treeNode10.Text = "充值二维码"; + treeNode10.Name = "积分充值"; + treeNode10.Text = "积分充值"; treeNode11.Name = "店铺管理"; treeNode11.Text = "店铺管理"; this.tv.Nodes.AddRange(new System.Windows.Forms.TreeNode[] { diff --git a/TEMUKJD/WXForms/ShopForms/WXShopForm.cs b/TEMUKJD/WXForms/ShopForms/WXShopForm.cs index 8ccd3ae..0a81287 100644 --- a/TEMUKJD/WXForms/ShopForms/WXShopForm.cs +++ b/TEMUKJD/WXForms/ShopForms/WXShopForm.cs @@ -60,7 +60,7 @@ namespace TemuKJD.WXForms.ShopForms public List getHideTreeNodes() { - List hideNames = new List() { "充值二维码", "OEM账号管理", "OEM返现明细", "OEM积分明细", "店铺地址管理", "评分考核", "子账号管理", "高级运费模板", "运费模板", "素材库管理", "订单金额统计", "工作明细统计", "店铺经营统计1" }; + List hideNames = new List() { "积分充值", "OEM账号管理", "OEM返现明细", "OEM积分明细", "店铺地址管理", "评分考核", "子账号管理", "高级运费模板", "运费模板", "素材库管理", "订单金额统计", "工作明细统计", "店铺经营统计1" }; if (BaseClass.SaLevel == 1) { @@ -78,7 +78,7 @@ namespace TemuKJD.WXForms.ShopForms } if (BaseClass.UserAuthority.Contains("充值用户") && BaseClass.GroupId == 3 && BaseClass.AgentCode.IsNullOrEmpty() && BaseClass.OemId.IsNullOrEmpty()) { - hideNames.Remove("充值二维码"); + //hideNames.Remove("积分充值"); } if (!BaseClass.OemId.IsNullOrEmpty() && BaseClass.IsOemOwner) { @@ -133,7 +133,7 @@ namespace TemuKJD.WXForms.ShopForms case "评分考核": SetForm(shopOptimizeForm.Value); break; - case "充值二维码": + case "积分充值": SetForm(getTopUpQrCode.Value); break; case "OEM账号管理": diff --git a/TEMUKJD/WXForms/ShopForms/WXSubAccountListForm.cs b/TEMUKJD/WXForms/ShopForms/WXSubAccountListForm.cs index 522f830..70ccb66 100644 --- a/TEMUKJD/WXForms/ShopForms/WXSubAccountListForm.cs +++ b/TEMUKJD/WXForms/ShopForms/WXSubAccountListForm.cs @@ -246,7 +246,7 @@ namespace TemuKJD.WXForms.ShopForms this.flowLayoutPanel1.Controls.Add(new UcCheckBox() { Name = "拍单", Text = "拍单", AutoSize = true }); this.flowLayoutPanel1.Controls.Add(new Label() { Text = "-------------------------------------", AutoSize = true }); //this.flowLayoutPanel1.Controls.Add(new UcCheckBox() { Name = "采购", Text = "采购", AutoSize = true }); - List subUserNoAuthorityPageNames = new List() { "子账号管理", "店铺地址管理", "充值二维码", "1688商品采集", "多多商品采集" }; + List subUserNoAuthorityPageNames = new List() { "子账号管理", "店铺地址管理", "积分充值", "1688商品采集", "多多商品采集" }; var shopForm = MainForm.instance.shopForm as WXShopForm; if (shopForm != null) {