Files
StoreWeb/StoreHub.KJDWebService/Services/WXExpressOptimizeService.cs
T
2026-08-21 16:46:36 +08:00

884 lines
45 KiB
C#

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<WxOptimizeExpressInfo> WxOptimizeExpressInfoLst = new List<WxOptimizeExpressInfo>();
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\":\"输入为空\"}";
}
/// <summary>
/// 添加运单
/// </summary>
/// <param name="inputData"></param>
/// <returns></returns>
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\":\"输入为空\"}";
}
/// <summary>
/// 选择并使用运单
/// </summary>
/// <param name="inputData"></param>
/// <returns></returns>
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<MySqlParameter> paramLst = new List<MySqlParameter>();
// 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<MySqlParameter> paramLst = new List<MySqlParameter>();
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<WxOptimizeRstInfo> WxOptimizeRstInfoLst = new List<WxOptimizeRstInfo>();
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<MySqlParameter> paramLst = new List<MySqlParameter>();
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<WxOptimizeRemarkInfo> WxOptimizeRemarkInfoLst = new List<WxOptimizeRemarkInfo>();
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\":\"输入为空\"}";
}
}
}