using StoreHub.KJDWebService.Models.WxModel; using StoreHub.KJDWebService.Commons; using StoreHub.KJDWebService.Models; using StoreHub.Framework.Repositorys; using Microsoft.Extensions.Configuration; using MySql.Data.MySqlClient; using NaiBa.Util.Extension; using Newtonsoft.Json; using System; using System.Collections.Generic; using System.Data; using System.Linq; namespace StoreHub.KJDWebService.Services { public class WXExpressOptimizeService : ServiceBase { public WXExpressOptimizeService(SqlRepository sqlRepository, IConfiguration configuration) : base(sqlRepository, configuration) { } public string GetWayBill(string inputData, bool isNoUserName = false) { if (!string.IsNullOrEmpty(inputData)) { var timeCalc = DateTime.Now; if (!WXUserService.GetSign(inputData)) return "{\"code\":999,\"msg\":\"校验失败\"}"; //var delivery_id = HtmlUtils.UrlDecodeUtf8(RegexUtils.GetStringQuery(ref inputData, "delivery_id"))?.Replace("'", "\\'"); //var delivery_name = HtmlUtils.UrlDecodeUtf8(RegexUtils.GetStringQuery(ref inputData, "delivery_name"))?.Replace("'", "\\'"); //var waybill_id = HtmlUtils.UrlDecodeUtf8(RegexUtils.GetStringQuery(ref inputData, "waybill_id"))?.Replace("'", "\\'"); //if (string.IsNullOrEmpty(delivery_id) || string.IsNullOrEmpty(delivery_name) || string.IsNullOrEmpty(waybill_id)) //{ // return "{\"code\":500,\"msg\":\"运单号信息不完整\"}"; //} var status = HtmlUtils.UrlDecodeUtf8(RegexUtils.GetStringQuery(ref inputData, "status"))?.Replace("'", "\'"); var order_ids = HtmlUtils.UrlDecodeUtf8(RegexUtils.GetStringQuery(ref inputData, "order_ids"))?.Replace("'", "\'"); var user_name = HtmlUtils.UrlDecodeUtf8(RegexUtils.GetStringQuery(ref inputData, "user_name"))?.Replace("'", "\'"); if (!isNoUserName && user_name.IsNullOrEmpty()) { return "{\"code\":500,\"msg\":\"用户名不能为空\"}"; } if (isNoUserName && order_ids.IsNullOrEmpty()) { return "{\"code\":500,\"msg\":\"订单号不能为空\"}"; } int page = RegexUtils.GetStringQuery(ref inputData, "page").ParseToInt(); int page_size = RegexUtils.GetStringQuery(ref inputData, "page_size").ParseToInt(50); string conn = "ConnKJD"; MysqlUtils mySql = new MysqlUtils(conn); string sql = ""; //string tableName = "wxxd.express_optimize"; //sql = "select exists (SELECT table_name FROM information_schema.tables WHERE table_schema = 'wxxd' AND table_name = 'express_optimize')"; //var existTable = mySql.ExecuteFirstInt(sql); //if (existTable == 0) // sql = "select count(*) from wxxd.express_optimize where 1=1"; //else sql = "select count(*) from wxxd.express_optimize where 1=1"; string where = ""; if (!isNoUserName) where += " AND user_name='" + user_name + "'"; if (status != null) where += " AND status in (" + status + ")"; if (order_ids != null) where += " AND order_id in ('" + order_ids.Replace(",", "','") + "')"; sql += where; var count = 0; count = mySql.ExecuteRowCount(sql); DataTable dt; if (count == 0) { dt = new DataTable(); } else { sql = "select * from wxxd.express_optimize where 1=1"; sql += where; sql += " order by id desc limit " + Math.Max(0, page - 1) * page_size + "," + page_size + ";"; dt = mySql.ExecuteDataTable(sql); } mySql.Close(); if (!string.IsNullOrEmpty(mySql.Message)) return "{\"code\":501,\"msg\":\"" + mySql.Message + "\"}"; if (dt != null) { try { List WxOptimizeExpressInfoLst = new List(); foreach (DataRow row in dt.Rows) { WxOptimizeExpressInfoLst.Add(new WxOptimizeExpressInfo() { id = row["id"].ParseToInt(), delivery_id = row["delivery_id"].ParseToString(), delivery_name = row["delivery_name"].ParseToString(), order_id = row["order_id"].ParseToString(), bind_order_id = row["bind_order_id"].ParseToString(), shop_id = row["shop_id"].ParseToString(), status = row["status"].ParseToInt(), waybill_id = row["waybill_id"].ParseToString(), add_time = Convert.ToDateTime(row["add_time"]), use_time = row["use_time"].ParseToString().ParseToDateTimeNullable(), waybill_pickup_time = row["waybill_pickup_time"].ParseToString().ParseToDateTimeNullable(), }); } JsonSerializerSettings jsonSetting = new JsonSerializerSettings { NullValueHandling = NullValueHandling.Ignore }; var data = JsonUtils.SerializeObjectToString(WxOptimizeExpressInfoLst, 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 AddWaybill(string inputData) { if (!string.IsNullOrEmpty(inputData)) { if (!WXUserService.GetSign(inputData)) return "{\"code\":999,\"msg\":\"校验失败\"}"; var delivery_id = HtmlUtils.UrlDecodeUtf8(RegexUtils.GetStringQuery(ref inputData, "delivery_id"))?.Replace("'", "\\'"); var delivery_name = HtmlUtils.UrlDecodeUtf8(RegexUtils.GetStringQuery(ref inputData, "delivery_name"))?.Replace("'", "\\'"); var waybill_id = HtmlUtils.UrlDecodeUtf8(RegexUtils.GetStringQuery(ref inputData, "waybill_id"))?.Replace("'", "\\'"); var bind_order_id = HtmlUtils.UrlDecodeUtf8(RegexUtils.GetStringQuery(ref inputData, "bind_order_id"))?.Replace("'", "\\'"); var waybill_pickup_time = HtmlUtils.UrlDecodeUtf8(RegexUtils.GetStringQuery(ref inputData, "waybill_pickup_time")).ParseToDateTimeNullable(); if (string.IsNullOrEmpty(delivery_id) || string.IsNullOrEmpty(delivery_name) || string.IsNullOrEmpty(waybill_id)) { return "{\"code\":500,\"msg\":\"运单号信息不完整\"}"; } if (waybill_pickup_time == null && bind_order_id.IsNullOrEmpty()) { return "{\"code\":500,\"msg\":\"揽收时间和绑定订单编号不能同时为空\"}"; } var user_name = HtmlUtils.UrlDecodeUtf8(RegexUtils.GetStringQuery(ref inputData, "user_name"))?.ParseToString(); if (user_name.IsNullOrEmpty()) { return "{\"code\":500,\"msg\":\"请输入用户名\"}"; } string conn = "ConnKJD"; MysqlUtils mySql = new MysqlUtils(conn); string sql = ""; sql = "SELECT EXISTS (SELECT 1 FROM wxxd.express_optimize WHERE waybill_id='" + waybill_id + "')"; var exist = mySql.ExecuteFirstInt(sql); if (!mySql.Message.IsNullOrEmpty()) { mySql.Close(); return "{\"code\":501,\"msg\":\"" + mySql.Message + "\"}"; } if (exist > 0) { mySql.Close(); return "{\"code\":500,\"msg\":\"运单号已存在\"}"; } sql = "INSERT INTO wxxd.express_optimize (user_name,delivery_id,delivery_name,waybill_id,"; if (!bind_order_id.IsNullOrEmpty()) sql += "bind_order_id,"; if (waybill_pickup_time != null) sql += "waybill_pickup_time,"; sql = sql.Trim(','); sql += ") VALUES ('" + user_name + "','" + delivery_id + "','" + delivery_name + "','" + waybill_id + "',"; if (!bind_order_id.IsNullOrEmpty()) sql += "'" + bind_order_id + "',"; if (waybill_pickup_time != null) sql += "'" + waybill_pickup_time.Value.ToString("yyyy-MM-dd HH:mm:ss") + "',"; sql = sql.Trim(','); sql += ");"; var rst = mySql.ExecuteNonQuery(sql); mySql.Close(); if (!rst) return "{\"code\":501,\"msg\":\"" + mySql.Message + "\"}"; else return "{\"code\":200,\"msg\":\"success\"}"; } return "{\"code\":19999,\"msg\":\"输入为空\"}"; } public string DelWaybill(string inputData) { if (!string.IsNullOrEmpty(inputData)) { if (!WXUserService.GetSign(inputData)) return "{\"code\":999,\"msg\":\"校验失败\"}"; var waybill_ids = HtmlUtils.UrlDecodeUtf8(RegexUtils.GetStringQuery(ref inputData, "waybill_ids"))?.Replace("'", "\\'"); if (string.IsNullOrEmpty(waybill_ids)) { return "{\"code\":500,\"msg\":\"运单号信息不完整\"}"; } var user_name = HtmlUtils.UrlDecodeUtf8(RegexUtils.GetStringQuery(ref inputData, "user_name"))?.ParseToString(); if (user_name.IsNullOrEmpty()) { return "{\"code\":500,\"msg\":\"请输入用户名\"}"; } string conn = "ConnKJD"; MysqlUtils mySql = new MysqlUtils(conn); string sql = ""; sql = "DELETE FROM wxxd.express_optimize WHERE waybill_id in ('" + waybill_ids.Replace(",", "','") + "') and status=0"; var rst = mySql.ExecuteNonQuery(sql); mySql.Close(); if (!rst || !mySql.Message.IsNullOrEmpty()) return "{\"code\":501,\"msg\":\"删除失败 " + mySql.Message + "\"}"; else return "{\"code\":200,\"msg\":\"success\"}"; } return "{\"code\":19999,\"msg\":\"输入为空\"}"; } /// /// 选择并使用运单 /// /// /// public string SelectAndSetWaybill(string inputData) { if (!string.IsNullOrEmpty(inputData)) { if (!WXUserService.GetSign(inputData)) return "{\"code\":999,\"msg\":\"校验失败\"}"; var user_name = HtmlUtils.UrlDecodeUtf8(RegexUtils.GetStringQuery(ref inputData, "user_name"))?.ParseToString(); if (user_name.IsNullOrEmpty()) { return "{\"code\":500,\"msg\":\"请输入用户名\"}"; } var shop_id = HtmlUtils.UrlDecodeUtf8(RegexUtils.GetStringQuery(ref inputData, "shop_id"))?.Replace("'", "\\'"); var order_id = HtmlUtils.UrlDecodeUtf8(RegexUtils.GetStringQuery(ref inputData, "order_id"))?.Replace("'", "\\'"); if (string.IsNullOrEmpty(order_id) || string.IsNullOrEmpty(shop_id)) { return "{\"code\":500,\"msg\":\"缺少订单信息\"}"; } string conn = "ConnKJD"; MysqlUtils mySql = new MysqlUtils(conn, true); string sql = ""; sql = "select * from wxxd.express_optimize where order_id='" + order_id + "' and status = 1"; var dt = mySql.ExecuteDataTable(sql); if (!mySql.Message.IsNullOrEmpty()) { mySql.RollBack(); mySql.Close(); return "{\"code\":501,\"msg\":\"物流信息查询失败 " + mySql.Message + "\"}"; } if (dt?.Rows?.Count == 0) { sql = "UPDATE wxxd.express_optimize SET order_id='" + order_id + "',status=1 WHERE user_name='" + user_name + "' AND status=0 AND (order_id IS NULL OR order_id='') LIMIT 1"; var cnt = mySql.ExecuteAffectedRows(sql); if (cnt == 0 || !mySql.Message.IsNullOrEmpty()) { mySql.RollBack(); mySql.Close(); return "{\"code\":501,\"msg\":\"物流信息提取失败 " + mySql.Message + "\"}"; } sql = "SELECT * FROM wxxd.express_optimize WHERE user_name='" + user_name + "' AND order_id='" + order_id + "' AND status = 1"; dt = mySql.ExecuteDataTable(sql); if (!mySql.Message.IsNullOrEmpty()) { mySql.RollBack(); mySql.Close(); return "{\"code\":501,\"msg\":\"物流信息提取失败 " + mySql.Message + "\"}"; } if (dt?.Rows?.Count == 0) { mySql.RollBack(); mySql.Close(); return "{\"code\":501,\"msg\":\"物流信息提取失败 " + mySql.Message + "\"}"; } } var waybill_id = dt.Rows[0]["waybill_id"].ToString(); // todo E57调用接口处理 mySql.Close(); mySql = new MysqlUtils(conn, true); sql = " UPDATE wxxd.express_optimize SET shop_id='" + shop_id + "',status=2,use_time='" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + "' " + " WHERE user_name='" + user_name + "' AND status=1 AND order_id='" + order_id + "' AND waybill_id='" + waybill_id + "'"; var rst = mySql.ExecuteAffectedRows(sql); if (rst == 0 || !mySql.Message.IsNullOrEmpty()) { mySql.RollBack(); mySql.Close(); return "{\"code\":501,\"msg\":\"修改物流信息失败 " + mySql.Message + "\"}"; } else { mySql.Commit(); mySql.Close(); return "{\"code\":200,\"msg\":\"success\"}"; } } return "{\"code\":19999,\"msg\":\"输入为空\"}"; } public string SelectWaybill(string inputData) { if (!string.IsNullOrEmpty(inputData)) { if (!WXUserService.GetSign(inputData)) return "{\"code\":999,\"msg\":\"校验失败\"}"; var user_name = HtmlUtils.UrlDecodeUtf8(RegexUtils.GetStringQuery(ref inputData, "user_name"))?.ParseToString(); if (user_name.IsNullOrEmpty()) { return "{\"code\":500,\"msg\":\"请输入用户名\"}"; } var shop_id = HtmlUtils.UrlDecodeUtf8(RegexUtils.GetStringQuery(ref inputData, "shop_id"))?.Replace("'", "\\'"); var order_id = HtmlUtils.UrlDecodeUtf8(RegexUtils.GetStringQuery(ref inputData, "order_id"))?.Replace("'", "\\'"); var order_time = HtmlUtils.UrlDecodeUtf8(RegexUtils.GetStringQuery(ref inputData, "order_time")).ParseToDateTimeNullable(); if (string.IsNullOrEmpty(order_id) || string.IsNullOrEmpty(shop_id)) { return "{\"code\":500,\"msg\":\"缺少订单信息\"}"; } string conn = "ConnKJD"; MysqlUtils mySql = new MysqlUtils(conn, true); try { string sql = ""; sql = "select * from wxxd.express_optimize WHERE user_name='" + user_name + "' AND order_id='" + order_id + "' and status = 1 LIMIT 1"; var dt = mySql.ExecuteDataTable(sql); if (!mySql.Message.IsNullOrEmpty()) { mySql.RollBack(); mySql.Close(); return "{\"code\":501,\"msg\":\"物流查询失败 " + mySql.Message + "\"}"; } if (dt?.Rows?.Count == 0) { // 获取事先绑定的订单运单 sql = " UPDATE wxxd.express_optimize SET order_id='" + order_id + "',status=1" + " WHERE user_name='" + user_name + "' AND status=0 AND bind_order_id='" + order_id + "'" + " ORDER BY RAND() LIMIT 1"; var cnt = mySql.ExecuteAffectedRows(sql); if (!mySql.Message.IsNullOrEmpty()) { mySql.RollBack(); mySql.Close(); return "{\"code\":501,\"msg\":\"物流提取失败 " + mySql.Message + "\"}"; } // 根据订单时间提取指定时间段内的运单号 if (cnt == 0 && order_time != null) { // 第一天的订单用第二天的物流发货 var start_time = order_time.Value.Date.AddHours(24).ToString("yyyy-MM-dd HH:mm:ss"); var end_time = order_time.Value.Date.AddHours(48).AddSeconds(-1).ToString("yyyy-MM-dd HH:mm:ss"); sql = " UPDATE wxxd.express_optimize SET order_id='" + order_id + "',status=1" + " WHERE user_name='" + user_name + "' AND status=0 AND (order_id IS NULL OR order_id='') AND (bind_order_id IS NULL OR bind_order_id='')" + " AND waybill_pickup_time between '" + start_time + "' and '" + end_time + "'" + " ORDER BY RAND() LIMIT 1"; cnt = mySql.ExecuteAffectedRows(sql); if (!mySql.Message.IsNullOrEmpty()) { mySql.RollBack(); mySql.Close(); return "{\"code\":501,\"msg\":\"物流提取失败 " + mySql.Message + "\"}"; } } // 挑选最早入库的运单号 //if (cnt == 0 && order_time == null) //{ // sql = " UPDATE wxxd.express_optimize SET order_id='" + order_id + "',status=1" + // " WHERE user_name='" + user_name + "' AND status=0 AND (order_id IS NULL OR order_id='') AND (bind_order_id IS NULL OR bind_order_id='')" + // " LIMIT 1"; // cnt = mySql.ExecuteAffectedRows(sql); // if (!mySql.Message.IsNullOrEmpty()) // { // mySql.RollBack(); // mySql.Close(); // return "{\"code\":501,\"msg\":\"物流提取失败 " + mySql.Message + "\"}"; // } //} if (cnt == 0) { mySql.RollBack(); mySql.Close(); return "{\"code\":501,\"msg\":\"没有可用的运单号\"}"; } sql = "SELECT * FROM wxxd.express_optimize WHERE user_name='" + user_name + "' AND order_id='" + order_id + "' AND status = 1"; dt = mySql.ExecuteDataTable(sql); if (!mySql.Message.IsNullOrEmpty()) { mySql.RollBack(); mySql.Close(); return "{\"code\":501,\"msg\":\"物流提取失败 " + mySql.Message + "\"}"; } if (dt?.Rows?.Count == 0) { mySql.RollBack(); mySql.Close(); return "{\"code\":501,\"msg\":\"物流提取失败 " + mySql.Message + "\"}"; } } var waybill_id = dt.Rows[0]["waybill_id"].ToString(); var delivery_id = dt.Rows[0]["delivery_id"].ParseToString(); var delivery_name = dt.Rows[0]["delivery_name"].ParseToString(); mySql.Commit(); mySql.Close(); return "{\"code\":200,\"msg\":\"success\",\"data\":{\"waybill_id\":\"" + waybill_id + "\",\"delivery_id\":\"" + delivery_id + "\",\"delivery_name\":\"" + delivery_name + "\"}}"; } catch (Exception ex) { mySql.RollBack(); mySql.Close(); return "{\"code\":501,\"msg\":\"物流提取失败 " + ex.Message + "\"}"; } } return "{\"code\":19999,\"msg\":\"输入为空\"}"; } public string UpdateUsedWaybill(string inputData) { if (!string.IsNullOrEmpty(inputData)) { if (!WXUserService.GetSign(inputData)) return "{\"code\":999,\"msg\":\"校验失败\"}"; var user_name = HtmlUtils.UrlDecodeUtf8(RegexUtils.GetStringQuery(ref inputData, "user_name"))?.ParseToString(); if (user_name.IsNullOrEmpty()) { return "{\"code\":500,\"msg\":\"请输入用户名\"}"; } var shop_id = HtmlUtils.UrlDecodeUtf8(RegexUtils.GetStringQuery(ref inputData, "shop_id"))?.Replace("'", "\\'"); var order_id = HtmlUtils.UrlDecodeUtf8(RegexUtils.GetStringQuery(ref inputData, "order_id"))?.Replace("'", "\\'"); var waybill_id = HtmlUtils.UrlDecodeUtf8(RegexUtils.GetStringQuery(ref inputData, "waybill_id"))?.Replace("'", "\\'"); var is_rollback = HtmlUtils.UrlDecodeUtf8(RegexUtils.GetStringQuery(ref inputData, "is_rollback"))?.Replace("'", "\\'"); if (string.IsNullOrEmpty(order_id) || string.IsNullOrEmpty(shop_id) || string.IsNullOrEmpty(waybill_id)) { return "{\"code\":500,\"msg\":\"缺少订单信息\"}"; } string conn = "ConnKJD"; MysqlUtils mySql = new MysqlUtils(conn, true); var sql = " UPDATE wxxd.express_optimize SET shop_id='" + shop_id + "',status=2,use_time='" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + "' " + " WHERE user_name='" + user_name + "' AND status=1 AND order_id='" + order_id + "' AND waybill_id='" + waybill_id + "'"; if (is_rollback == "true") sql = " UPDATE wxxd.express_optimize SET shop_id='',order_id='',status=0,use_time=NULL" + " WHERE user_name='" + user_name + "' AND status=1 AND order_id='" + order_id + "' AND waybill_id='" + waybill_id + "'"; var rst = mySql.ExecuteAffectedRows(sql); if (rst == 0 || !mySql.Message.IsNullOrEmpty()) { mySql.RollBack(); mySql.Close(); return "{\"code\":501,\"msg\":\"修改物流信息失败 " + mySql.Message + "\"}"; } // 记录修改结果,暂时注释 if (is_rollback != "true") { //var relation_id = HtmlUtils.UrlDecodeUtf8(RegexUtils.GetStringQuery(ref inputData, "relation_id"))?.Replace("'", "\\'"); //var optimize_rst = HtmlUtils.UrlDecodeUtf8(RegexUtils.GetStringQuery(ref inputData, "optimize_rst"))?.Replace("'", "\\'"); //var delivery_name = HtmlUtils.UrlDecodeUtf8(RegexUtils.GetStringQuery(ref inputData, "delivery_name"))?.Replace("'", "\\'"); //if (optimize_rst != null) //{ // sql = "select exists (select 1 from wxxd.express_optimize where order_id='" + order_id + "')"; // var exist = mySql.ExecuteFirstInt(sql); // if (exist > 0) // { // sql = " UPDATE wxxd.express_optimize_rst SET "; // if (shop_id != null) // sql += " shop_id=@shop_id,"; // if (relation_id != null) // sql += " relation_id=@relation_id,"; // if (optimize_rst != null) // sql += " optimize_rst=@optimize_rst,"; // if (waybill_id != null) // sql += " waybill_id=@waybill_id,"; // if (delivery_name != null) // sql += " delivery_name=@delivery_name,"; // sql = sql.TrimEnd(','); // sql += " WHERE order_id=@order_id"; // } // else // { // sql = " insert into wxxd.express_optimize_rst (shop_id,order_id,"; // if (relation_id != null) // sql += "relation_id,"; // if (optimize_rst != null) // sql += "optimize_rst,"; // if (waybill_id != null) // sql += "waybill_id,"; // if (delivery_name != null) // sql += "delivery_name,"; // sql = sql.TrimEnd(','); // sql += ") "; // sql += " values (@shop_id,@order_id,"; // if (relation_id != null) // sql += "@relation_id,"; // if (optimize_rst != null) // sql += "@optimize_rst,"; // if (waybill_id != null) // sql += "@waybill_id,"; // if (delivery_name != null) // sql += "@delivery_name,"; // sql = sql.TrimEnd(','); // sql += ");"; // } // List paramLst = new List(); // paramLst.Add(new MySqlParameter() { DbType = DbType.String, ParameterName = "@shop_id", Value = shop_id, }); // paramLst.Add(new MySqlParameter() { DbType = DbType.String, ParameterName = "@relation_id", Value = relation_id, }); // paramLst.Add(new MySqlParameter() { DbType = DbType.String, ParameterName = "@optimize_rst", Value = optimize_rst, }); // paramLst.Add(new MySqlParameter() { DbType = DbType.String, ParameterName = "@waybill_id", Value = waybill_id, }); // paramLst.Add(new MySqlParameter() { DbType = DbType.String, ParameterName = "@delivery_name", Value = delivery_name, }); // paramLst.Add(new MySqlParameter() { DbType = DbType.String, ParameterName = "@order_id", Value = order_id, }); // var rows = mySql.ExecuteAffectedRows(sql, paramLst.ToArray()); //} } mySql.Commit(); mySql.Close(); return "{\"code\":200,\"msg\":\"success\"}"; } return "{\"code\":19999,\"msg\":\"输入为空\"}"; } public string AddMdyExpressOptimizeRst(string inputData) { if (!string.IsNullOrEmpty(inputData)) { if (!WXUserService.GetSign(inputData)) return "{\"code\":999,\"msg\":\"校验失败\"}"; var shop_id = HtmlUtils.UrlDecodeUtf8(RegexUtils.GetStringQuery(ref inputData, "shop_id"))?.Replace("'", "\\'"); var order_id = HtmlUtils.UrlDecodeUtf8(RegexUtils.GetStringQuery(ref inputData, "order_id"))?.Replace("'", "\\'"); var optimize_rst = HtmlUtils.UrlDecodeUtf8(RegexUtils.GetStringQuery(ref inputData, "optimize_rst"))?.Replace("'", "\\'"); var waybill_id = HtmlUtils.UrlDecodeUtf8(RegexUtils.GetStringQuery(ref inputData, "waybill_id"))?.Replace("'", "\\'"); var delivery_name = HtmlUtils.UrlDecodeUtf8(RegexUtils.GetStringQuery(ref inputData, "delivery_name"))?.Replace("'", "\\'"); if (string.IsNullOrEmpty(order_id)) { return "{\"code\":500,\"msg\":\"请输入订单编号\"}"; } if (string.IsNullOrEmpty(optimize_rst)) { return "{\"code\":500,\"msg\":\"请输入补发结果\"}"; } string conn = "ConnKJD"; MysqlUtils mySql = new MysqlUtils(conn); string sql = ""; sql = "select exists (select 1 from wxxd.express_optimize_rst where order_id='" + order_id + "')"; var exist = mySql.ExecuteFirstInt(sql); if (!mySql.Message.IsNullOrEmpty()) { mySql.Close(); return "{\"code\":501,\"msg\":\"" + mySql.Message + "\"}"; } if (exist > 0) { sql = " UPDATE wxxd.express_optimize_rst SET "; if (shop_id != null) sql += " shop_id=@shop_id,"; if (optimize_rst != null) sql += " optimize_rst=@optimize_rst,"; if (waybill_id != null) sql += " waybill_id=@waybill_id,"; if (delivery_name != null) sql += " delivery_name=@delivery_name,"; sql = sql.TrimEnd(','); sql += " WHERE order_id=@order_id"; } else { sql = " insert into wxxd.express_optimize_rst (shop_id,order_id,"; if (optimize_rst != null) sql += "optimize_rst,"; if (waybill_id != null) sql += "waybill_id,"; if (delivery_name != null) sql += "delivery_name,"; sql = sql.TrimEnd(','); sql += ") "; sql += " values (@shop_id,@order_id,"; if (optimize_rst != null) sql += "@optimize_rst,"; if (waybill_id != null) sql += "@waybill_id,"; if (delivery_name != null) sql += "@delivery_name,"; sql = sql.TrimEnd(','); sql += ");"; } List paramLst = new List(); paramLst.Add(new MySqlParameter() { DbType = DbType.String, ParameterName = "@shop_id", Value = shop_id, }); paramLst.Add(new MySqlParameter() { DbType = DbType.String, ParameterName = "@optimize_rst", Value = optimize_rst, }); paramLst.Add(new MySqlParameter() { DbType = DbType.String, ParameterName = "@waybill_id", Value = waybill_id, }); paramLst.Add(new MySqlParameter() { DbType = DbType.String, ParameterName = "@delivery_name", Value = delivery_name, }); paramLst.Add(new MySqlParameter() { DbType = DbType.String, ParameterName = "@order_id", Value = order_id, }); var rows = mySql.ExecuteAffectedRows(sql, paramLst.ToArray()); mySql.Close(); if (!mySql.Message.IsNullOrEmpty()) return "{\"code\":501,\"msg\":\"" + mySql.Message + "\"}"; else return "{\"code\":200,\"msg\":\"success\",\"affected_rows\":" + rows + "}"; } return "{\"code\":19999,\"msg\":\"输入为空\"}"; } public string GetExpressOptimizeRst(string inputData, bool isNoUserName = false) { if (!string.IsNullOrEmpty(inputData)) { var timeCalc = DateTime.Now; if (!WXUserService.GetSign(inputData)) return "{\"code\":999,\"msg\":\"校验失败\"}"; var order_ids = HtmlUtils.UrlDecodeUtf8(RegexUtils.GetStringQuery(ref inputData, "order_ids"))?.Replace("'", "\'"); if (isNoUserName && order_ids.IsNullOrEmpty()) { return "{\"code\":500,\"msg\":\"订单号不能为空\"}"; } int page = RegexUtils.GetStringQuery(ref inputData, "page").ParseToInt(); int page_size = RegexUtils.GetStringQuery(ref inputData, "page_size").ParseToInt(200); string conn = "ConnKJD"; MysqlUtils mySql = new MysqlUtils(conn); string sql = ""; sql = "select count(*) from wxxd.express_optimize_rst where 1=1"; string where = ""; if (order_ids != null) where += " AND order_id in ('" + order_ids.Replace(",", "','") + "')"; sql += where; var count = 0; count = mySql.ExecuteRowCount(sql); DataTable dt; if (count == 0) { dt = new DataTable(); } else { sql = "select * from wxxd.express_optimize_rst where 1=1"; sql += where; sql += " order by id desc limit " + Math.Max(0, page - 1) * page_size + "," + page_size + ";"; dt = mySql.ExecuteDataTable(sql); } mySql.Close(); if (!string.IsNullOrEmpty(mySql.Message)) return "{\"code\":501,\"msg\":\"" + mySql.Message + "\"}"; if (dt != null) { try { List WxOptimizeRstInfoLst = new List(); foreach (DataRow row in dt.Rows) { WxOptimizeRstInfoLst.Add(new WxOptimizeRstInfo() { id = row["id"].ParseToInt(), waybill_id = row["waybill_id"].ParseToString(), delivery_name = row["delivery_name"].ParseToString(), order_id = row["order_id"].ParseToString(), optimize_rst = row["optimize_rst"].ParseToString(), shop_id = row["shop_id"].ParseToString(), add_time = Convert.ToDateTime(row["add_time"]), mdy_time = Convert.ToDateTime(row["mdy_time"]), }); } JsonSerializerSettings jsonSetting = new JsonSerializerSettings { NullValueHandling = NullValueHandling.Ignore }; var data = JsonUtils.SerializeObjectToString(WxOptimizeRstInfoLst, 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 AddMdyExpressOptimizeRemark(string inputData) { if (!string.IsNullOrEmpty(inputData)) { if (!WXUserService.GetSign(inputData)) return "{\"code\":999,\"msg\":\"校验失败\"}"; var shop_id = HtmlUtils.UrlDecodeUtf8(RegexUtils.GetStringQuery(ref inputData, "shop_id"))?.Replace("'", "\\'"); var order_id = HtmlUtils.UrlDecodeUtf8(RegexUtils.GetStringQuery(ref inputData, "order_id"))?.Replace("'", "\\'"); var remark = HtmlUtils.UrlDecodeUtf8(RegexUtils.GetStringQuery(ref inputData, "remark"))?.Replace("'", "\\'"); if (string.IsNullOrEmpty(order_id)) { return "{\"code\":500,\"msg\":\"请输入订单编号\"}"; } if (remark == null) { return "{\"code\":500,\"msg\":\"请输入备注内容\"}"; } string conn = "ConnKJD"; MysqlUtils mySql = new MysqlUtils(conn); string sql = ""; sql = "select exists (select 1 from wxxd.express_optimize_remark where order_id='" + order_id + "')"; var exist = mySql.ExecuteFirstInt(sql); if (!mySql.Message.IsNullOrEmpty()) { mySql.Close(); return "{\"code\":501,\"msg\":\"" + mySql.Message + "\"}"; } if (exist > 0) { sql = " UPDATE wxxd.express_optimize_remark SET "; if (shop_id != null) sql += " shop_id=@shop_id,"; if (remark != null) sql += " remark=@remark,"; sql = sql.TrimEnd(','); sql += " WHERE order_id=@order_id"; } else { sql = " insert into wxxd.express_optimize_remark (shop_id,order_id,"; if (remark != null) sql += "remark,"; sql = sql.TrimEnd(','); sql += ") "; sql += " values (@shop_id,@order_id,"; if (remark != null) sql += "@remark,"; sql = sql.TrimEnd(','); sql += ");"; } List paramLst = new List(); paramLst.Add(new MySqlParameter() { DbType = DbType.String, ParameterName = "@shop_id", Value = shop_id, }); paramLst.Add(new MySqlParameter() { DbType = DbType.String, ParameterName = "@remark", Value = remark, }); paramLst.Add(new MySqlParameter() { DbType = DbType.String, ParameterName = "@order_id", Value = order_id, }); var rows = mySql.ExecuteAffectedRows(sql, paramLst.ToArray()); mySql.Close(); if (!mySql.Message.IsNullOrEmpty()) return "{\"code\":501,\"msg\":\"" + mySql.Message + "\"}"; else return "{\"code\":200,\"msg\":\"success\",\"affected_rows\":" + rows + "}"; } return "{\"code\":19999,\"msg\":\"输入为空\"}"; } public string GetExpressOptimizeRemark(string inputData, bool isNoUserName = false) { if (!string.IsNullOrEmpty(inputData)) { var timeCalc = DateTime.Now; if (!WXUserService.GetSign(inputData)) return "{\"code\":999,\"msg\":\"校验失败\"}"; var order_ids = HtmlUtils.UrlDecodeUtf8(RegexUtils.GetStringQuery(ref inputData, "order_ids"))?.Replace("'", "\'"); if (isNoUserName && order_ids.IsNullOrEmpty()) { return "{\"code\":500,\"msg\":\"订单号不能为空\"}"; } int page = RegexUtils.GetStringQuery(ref inputData, "page").ParseToInt(); int page_size = RegexUtils.GetStringQuery(ref inputData, "page_size").ParseToInt(200); string conn = "ConnKJD"; MysqlUtils mySql = new MysqlUtils(conn); string sql = ""; sql = "select count(*) from wxxd.express_optimize_remark where 1=1"; string where = ""; if (order_ids != null) where += " AND order_id in ('" + order_ids.Replace(",", "','") + "')"; sql += where; var count = 0; count = mySql.ExecuteRowCount(sql); DataTable dt; if (count == 0) { dt = new DataTable(); } else { sql = "select * from wxxd.express_optimize_remark where 1=1"; sql += where; sql += " order by id desc limit " + Math.Max(0, page - 1) * page_size + "," + page_size + ";"; dt = mySql.ExecuteDataTable(sql); } mySql.Close(); if (!string.IsNullOrEmpty(mySql.Message)) return "{\"code\":501,\"msg\":\"" + mySql.Message + "\"}"; if (dt != null) { try { List WxOptimizeRemarkInfoLst = new List(); foreach (DataRow row in dt.Rows) { WxOptimizeRemarkInfoLst.Add(new WxOptimizeRemarkInfo() { id = row["id"].ParseToInt(), order_id = row["order_id"].ParseToString(), remark = row["remark"].ParseToString(), shop_id = row["shop_id"].ParseToString(), add_time = Convert.ToDateTime(row["add_time"]), mdy_time = Convert.ToDateTime(row["mdy_time"]), }); } JsonSerializerSettings jsonSetting = new JsonSerializerSettings { NullValueHandling = NullValueHandling.Ignore }; var data = JsonUtils.SerializeObjectToString(WxOptimizeRemarkInfoLst, 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\":\"输入为空\"}"; } } }