更新框架,增加云库搜索模块
This commit is contained in:
1 parent
8526e5e0d2
commit
f2caec6083
192 files changed
+3626
-804
No files matched your search
@@ -0,0 +1,883 @@
|
||||
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\":\"输入为空\"}";
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
Reference in new issue
Block a user