884 lines
45 KiB
C#
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\":\"输入为空\"}";
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
|