Files
KJD_WebService/KJD_WebService/BLL/WXXD/WXOrderManage.cs
T
2026-11-04 17:17:45 +08:00

3686 lines
168 KiB
C#
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
using KJD_Web.Model;
using KJD_Web.Model.WxModel;
using KJD_Web.Utils;
using MySql.Data.MySqlClient;
using MySqlX.XDevAPI;
using NaiBa.Util.Extension;
using Newtonsoft.Json;
using Newtonsoft.Json.Serialization;
using System;
using System.Collections.Generic;
using System.Data;
using System.Data.SqlClient;
using System.Drawing.Printing;
using System.Linq;
using System.Net.NetworkInformation;
using System.Text;
using System.Text.RegularExpressions;
using System.Web;
using System.Web.UI.WebControls;
namespace KJD_Web.BLL.WXXD
{
public class WXOrderManage
{
public string WXGetErpOrderList(string inputData, bool isDetail = false)
{
if (!string.IsNullOrEmpty(inputData))
{
if (!WXUserManage.GetSign(inputData))
return "{\"code\":999,\"msg\":\"校验失败\"}";
var timeCalc = DateTime.Now;
var erp_shop_id_in = RegexUtils.GetStringQuery(ref inputData, "erp_shop_id_in")?.Replace("'", "\\'");
var erp_order_id_in = RegexUtils.GetStringQuery(ref inputData, "erp_order_id_in")?.Replace("'", "\\'");
if (erp_shop_id_in.IsNullOrEmpty() && erp_order_id_in.IsNullOrEmpty())
{
return "{\"code\":500,\"msg\":\"未指定店铺和订单\"}";
}
var query_status = RegexUtils.GetStringQuery(ref inputData, "query_status")?.Replace("'", "\\'");
var purchase_status = RegexUtils.GetStringQuery(ref inputData, "purchase_status")?.Replace("'", "\\'");
var sort_type = RegexUtils.GetStringQuery(ref inputData, "sort_type")?.Replace("'", "\\'");
var start_time = RegexUtils.GetStringQuery(ref inputData, "start_time").ParseToInt();
var end_time = RegexUtils.GetStringQuery(ref inputData, "end_time").ParseToInt();
var is_not_count = RegexUtils.GetStringQuery(ref inputData, "is_not_count") == "true";
int page = RegexUtils.GetStringQuery(ref inputData, "page").ParseToInt();
int page_size = RegexUtils.GetStringQuery(ref inputData, "page_size").ParseToInt(50);
string conn = System.Configuration.ConfigurationManager.ConnectionStrings["ConnKJD"].ConnectionString;
MysqlUtils mySql = new MysqlUtils(conn);
string sql = "SELECT COUNT(*) FROM erp.oms_wei_order o WHERE 1=1 ";
string where = "";
if (!string.IsNullOrWhiteSpace(erp_shop_id_in))
where += " and o.shop_id in (" + erp_shop_id_in + ")";
if (!string.IsNullOrWhiteSpace(erp_order_id_in))
where += " and o.order_id in ('" + erp_order_id_in.Replace(",", "','") + "')";
if (!string.IsNullOrWhiteSpace(query_status))
where += " and o.status = " + query_status;
if (!string.IsNullOrWhiteSpace(purchase_status))
where += " and o.purchase_status = " + purchase_status;
if (start_time > 0)
where += " and o.update_time >= " + start_time;
if (end_time > 0)
where += " and o.update_time <= " + end_time;
sql += where;
var count = 0;
if (!is_not_count)
count = mySql.ExecuteRowCount(sql);
DataTable dt;
if (count == 0 && !is_not_count)
{
dt = new DataTable();
}
else
{
//tinyint(1)中存超过两个值,只返回true或false,无法直接取值解决办法
//解决方法:
//1.强制修改mapResult中的映射,将po属性的类型由Boolean改为Byte
//2.查询 tinyint(1) 的sql 字段时,转为(status + 0) as status
//3.避免使用 tinyint(1) 作为字段的数据类型
sql = "SELECT o.*,(out_shipped+0) as out_shipped_int FROM erp.oms_wei_order o WHERE 1=1";
//where子句
sql += where;
if (sort_type == "asc")
//sql += " ORDER BY o.create_time ASC, o.id desc";
sql += " ORDER BY o.create_time ASC, o.id ASC";
else
sql += " ORDER BY o.create_time DESC, o.id DESC";
sql += " LIMIT " + Math.Max(page - 1, 0) * page_size + "," + page_size;
dt = mySql.ExecuteDataTable(sql);
}
mySql.Close();
if (dt != null)
{
try
{
List<oms_wei_order> orderList = new List<oms_wei_order>();
foreach (DataRow row in dt.Rows)
{
oms_wei_order order = new oms_wei_order
{
id = row["id"].ParseToLong(),
aftersale_detail = row["aftersale_detail"].ParseToNullableString(),
audit_status = row["audit_status"].ParseToNullableInt(),
//audit_time = row["audit_time"].ParseToNullableString().ParseToDateTime(),
city_name = row["city_name"].ParseToNullableString(),
colour_flag = row["colour_flag"].ParseToNullableInt(),
colour_flag_update_time = row["colour_flag_update_time"].ParseToNullableString().ParseToDateTime(),
commission_amount = row["commission_amount"].ParseToNullableInt(),
county_name = row["county_name"].ParseToNullableString(),
create_time = row["create_time"].ParseToInt(),
delivery_deadline = row["delivery_deadline"].ParseToNullableInt(),
//delivery_product_info = row["delivery_product_info"].ParseToNullableString(),
delivery_time = row["delivery_time"].ParseToNullableInt(),
detail_info = row["detail_info"].ParseToNullableString(),
discounted_price = row["discounted_price"].ParseToNullableInt(),
erp_send_code = row["erp_send_code"].ParseToNullableString(),
erp_send_company = row["erp_send_company"].ParseToNullableString(),
erp_send_status = row["erp_send_status"].ParseToNullableInt(),
erp_send_time = row["erp_send_time"].ParseToNullableString().ParseToDateTime(),
//ewaybill_order_code = row["ewaybill_order_code"].ParseToNullableString(),
external_gift = row["external_gift"].ParseToNullableInt(),
//ext_info = row["ext_info"].ParseToNullableString(),
freight = row["freight"].ParseToNullableInt(),
freight_insurance_amount = row["freight_insurance_amount"].ParseToNullableInt(),
gift_order_status = row["gift_order_status"].ParseToNullableInt(),
hash_code = row["hash_code"].ParseToNullableString(),
has_freight_insurance = row["has_freight_insurance"].ParseToNullableInt(),
house_number = row["house_number"].ParseToNullableString(),
is_express_no_used = row["is_express_no_used"].ParseToNullableInt(),
is_shipment_optimized = row["is_shipment_optimized"].ParseToNullableInt(),
merchant_id = row["merchant_id"].ParseToLong(),
openid = row["openid"].ParseToNullableString(),
order_id = row["order_id"].ParseToNullableString(),
order_price = row["order_price"].ParseToNullableInt(),
out_account = row["out_account"].ParseToNullableString(),
out_after_sale_status = row["out_after_sale_status"].ParseToNullableString(),
out_amount = row["out_amount"].ParseToNullableInt(),
out_express_company = row["out_express_company"].ParseToNullableString(),
out_express_no = row["out_express_no"].ParseToNullableString(),
out_order_no = row["out_order_no"].ParseToNullableString(),
out_shipped = row["out_shipped_int"].ParseToNullableInt(),
//pay_info = row["pay_info"].ParseToNullableString(),
postal_code = row["postal_code"].ParseToNullableString(),
predict_commission_fee = row["predict_commission_fee"].ParseToNullableInt(),
product_price = row["product_price"].ParseToNullableInt(),
profit = row["profit"].ParseToNullableInt(),
province_name = row["province_name"].ParseToNullableString(),
purchase_price = row["purchase_price"].ParseToNullableInt(),
purchase_status = row["purchase_status"].ParseToNullableInt(),
purchase_time = row["purchase_time"].ParseToNullableInt(),
settle_info = row["settle_info"].ParseToNullableString(),
ship_done_time = row["ship_done_time"].ParseToNullableInt(),
shop_id = row["shop_id"].ParseToLong(),
shop_name = row["shop_name"].ParseToNullableString(),
shop_remark = row["shop_remark"].ParseToNullableString(),
soft_remark = row["soft_remark"].ParseToNullableString(),
status = row["status"].ParseToNullableInt(),
supplier_remark_exception = row["supplier_remark_exception"].ParseToNullableString(),
tel_number = row["tel_number"].ParseToNullableString(),
tel_number_ext_info = row["tel_number_ext_info"].ParseToNullableString(),
transfer_warehouse_status = row["transfer_warehouse_status"].ParseToNullableInt(),
postage_price = row["postage_price"].ParseToNullableInt(),
unionid = row["unionid"].ParseToNullableString(),
update_time = row["update_time"].ParseToInt(),
user_name = row["user_name"].ParseToNullableString(),
use_tel_number = row["use_tel_number"].ParseToNullableInt(),
virtual_order_tel_number = row["virtual_order_tel_number"].ParseToNullableString(),
};
if (order.order_id == "3737914129536416512")
{
}
orderList.Add(order);
}
JsonSerializerSettings jsonSetting = new JsonSerializerSettings { NullValueHandling = NullValueHandling.Ignore };
var data = JsonUtils.SerializeObjectToString(orderList, 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 WXGetErpOrderItemList(string inputData, bool isDetail = false)
{
if (!string.IsNullOrEmpty(inputData))
{
var timeCalc = DateTime.Now;
var time = RegexUtils.GetStringQuery(ref inputData, "time").ParseToInt();
string time1 = RegexUtils.GetStringQuery(ref inputData, "code");
if (time1 != EncrypUtil.Encryption(time))
return "{\"code\":50000,\"msg\":\"校验失败\"}";
var erp_order_id_in = RegexUtils.GetStringQuery(ref inputData, "erp_order_id_in")?.Replace("'", "\\'");
if (erp_order_id_in.IsNullOrEmpty())
{
return "{\"code\":500,\"msg\":\"未指定订单\"}";
}
var sort_type = RegexUtils.GetStringQuery(ref inputData, "sort_type")?.Replace("'", "\\'");
var is_not_count = RegexUtils.GetStringQuery(ref inputData, "is_not_count") != "false";
int page = RegexUtils.GetStringQuery(ref inputData, "page").ParseToInt();
int page_size = RegexUtils.GetStringQuery(ref inputData, "page_size").ParseToInt(500);
string conn = System.Configuration.ConfigurationManager.ConnectionStrings["ConnKJD"].ConnectionString;
MysqlUtils mySql = new MysqlUtils(conn);
string sql = "SELECT COUNT(id) FROM erp.oms_wei_order_item o WHERE 1=1 ";
string where = "";
if (!string.IsNullOrWhiteSpace(erp_order_id_in))
where += " and o.order_id in ('" + erp_order_id_in.Replace(",", "','") + "')";
sql += where;
var count = 0;
if (!is_not_count)
count = mySql.ExecuteRowCount(sql);
DataTable dt;
if (count == 0 && !is_not_count)
{
dt = new DataTable();
}
else
{
sql = "SELECT o.* FROM erp.oms_wei_order_item o WHERE 1=1";
//where子句
sql += where;
if (sort_type == "asc")
sql += " ORDER BY o.id ASC";
else
sql += " ORDER BY o.id DESC";
sql += " LIMIT " + Math.Max(page - 1, 0) * page_size + "," + page_size;
dt = mySql.ExecuteDataTable(sql);
}
mySql.Close();
if (dt != null)
{
try
{
List<oms_wei_order_item> orderItemList = new List<oms_wei_order_item>();
foreach (DataRow row in dt.Rows)
{
oms_wei_order_item order = new oms_wei_order_item
{
id = row["id"].ParseToLong(),
commission_amount = row["commission_amount"].ParseToNullableInt(),
freight = row["freight"].ParseToNullableInt(),
merchant_id = row["merchant_id"].ParseToLong(),
order_id = row["order_id"].ParseToNullableString(),
predict_commission_fee = row["predict_commission_fee"].ParseToNullableInt(),
purchase_price = row["purchase_price"].ParseToNullableInt(),
shop_id = row["shop_id"].ParseToLong(),
cash_coupon_discounted_price = row["cash_coupon_discounted_price"].ParseToNullableInt(),
change_price = row["change_price"].ParseToNullableInt(),
deduction_price = row["deduction_price"].ParseToNullableInt(),
erp_goods_id = row["erp_goods_id"].ParseToNullableLong(),
erp_goods_sku_id = row["erp_goods_sku_id"].ParseToNullableLong(),
estimate_price = row["estimate_price"].ParseToNullableInt(),
extra_service = row["extra_service"].ParseToNullableString(),
finish_aftersale_sku_cnt = row["finish_aftersale_sku_cnt"].ParseToNullableInt(),
is_change_price = row["is_change_price"].ParseToNullableString(),
is_discounted = row["is_discounted"].ParseToNullableString(),
market_price = row["market_price"].ParseToNullableInt(),
on_aftersale_sku_cnt = row["on_aftersale_sku_cnt"].ParseToNullableInt(),
order_product_coupon_info_list = row["order_product_coupon_info_list"].ParseToNullableString(),
out_product_id = row["out_product_id"].ParseToNullableString(),
out_sku_id = row["out_sku_id"].ParseToNullableString(),
out_warehouse_id = row["out_warehouse_id"].ParseToNullableString(),
product_id = row["product_id"].ParseToNullableString(),
real_price = row["real_price"].ParseToNullableInt(),
refund_status = row["refund_status"].ParseToNullableInt(),
return_address = row["return_address"].ParseToNullableString(),
sale_price = row["sale_price"].ParseToNullableInt(),
sku_attrs = row["sku_attrs"].ParseToNullableString(),
sku_cnt = row["sku_cnt"].ParseToNullableInt(),
sku_code = row["sku_code"].ParseToNullableString(),
sku_deliver_info = row["sku_deliver_info"].ParseToNullableString(),
sku_id = row["sku_id"].ParseToNullableString(),
thumb_img = row["thumb_img"].ParseToNullableString(),
title = row["title"].ParseToNullableString(),
use_deduction = row["use_deduction"].ParseToNullableString(),
};
orderItemList.Add(order);
}
JsonSerializerSettings jsonSetting = new JsonSerializerSettings { NullValueHandling = NullValueHandling.Ignore };
var data = JsonUtils.SerializeObjectToString(orderItemList, 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 WXGetErpRefundList(string inputData, bool isDetail = false)
{
if (!string.IsNullOrEmpty(inputData))
{
var timeCalc = DateTime.Now;
var time = RegexUtils.GetStringQuery(ref inputData, "time").ParseToInt();
string time1 = RegexUtils.GetStringQuery(ref inputData, "code");
if (time1 != EncrypUtil.Encryption(time))
return "{\"code\":50000,\"msg\":\"校验失败\"}";
var erp_order_id_in = RegexUtils.GetStringQuery(ref inputData, "erp_order_id_in")?.Replace("'", "\\'");
if (erp_order_id_in.IsNullOrEmpty())
{
return "{\"code\":500,\"msg\":\"未指定订单\"}";
}
var sort_type = RegexUtils.GetStringQuery(ref inputData, "sort_type")?.Replace("'", "\\'");
var is_not_count = RegexUtils.GetStringQuery(ref inputData, "is_not_count") != "false";
int page = RegexUtils.GetStringQuery(ref inputData, "page").ParseToInt();
int page_size = RegexUtils.GetStringQuery(ref inputData, "page_size").ParseToInt(500);
string conn = System.Configuration.ConfigurationManager.ConnectionStrings["ConnKJD"].ConnectionString;
MysqlUtils mySql = new MysqlUtils(conn);
string sql = "SELECT COUNT(id) FROM erp.oms_wei_refund o WHERE 1=1 ";
string where = "";
if (!string.IsNullOrWhiteSpace(erp_order_id_in))
where += " and o.order_id in ('" + erp_order_id_in.Replace(",", "','") + "')";
sql += where;
var count = 0;
if (!is_not_count)
count = mySql.ExecuteRowCount(sql);
DataTable dt;
if (count == 0 && !is_not_count)
{
dt = new DataTable();
}
else
{
sql = "SELECT o.* FROM" +
" erp.oms_wei_refund o " +
" WHERE 1=1";
//where子句
sql += where;
if (sort_type == "asc")
sql += " ORDER BY o.id ASC";
else
sql += " ORDER BY o.id DESC";
sql += " LIMIT " + Math.Max(page - 1, 0) * page_size + "," + page_size;
dt = mySql.ExecuteDataTable(sql);
}
mySql.Close();
if (dt != null)
{
try
{
List<oms_wei_refund> refundItemList = new List<oms_wei_refund>();
foreach (DataRow row in dt.Rows)
{
oms_wei_refund order = new oms_wei_refund
{
id = row["id"].ParseToLong(),
merchant_id = row["merchant_id"].ParseToLong(),
order_id = row["order_id"].ParseToNullableString(),
shop_id = row["shop_id"].ParseToLong(),
erp_goods_id = row["erp_goods_id"].ParseToNullableLong(),
erp_goods_sku_id = row["erp_goods_sku_id"].ParseToNullableLong(),
product_id = row["product_id"].ParseToNullableString(),
sku_id = row["sku_id"].ParseToNullableString(),
after_sale_order_id = row["after_sale_order_id"].ParseToNullableString(),
complaint_id = row["complaint_id"].ParseToNullableString(),
count = row["count"].ParseToNullableInt(),
create_time = row["create_time"].ParseToNullableInt(),
details = row["details"].ParseToNullableString(),
fast_refund = row["fast_refund"].ParseToNullableString(),
merchant_upload_info = row["merchant_upload_info"].ParseToNullableString(),
openid = row["openid"].ParseToNullableString(),
pull_status = row["pull_status"].ParseToNullableInt(),
pull_time = row["pull_time"].ParseToNullableString().ParseToDateTime(),
reason = row["reason"].ParseToNullableString(),
reason_text = row["reason_text"].ParseToNullableString(),
refund_amount = row["refund_amount"].ParseToNullableInt(),
refund_reason = row["refund_reason"].ParseToNullableInt(),
refund_resp = row["refund_resp"].ParseToNullableString(),
return_delivery_id = row["return_delivery_id"].ParseToNullableString(),
return_delivery_name = row["return_delivery_name"].ParseToNullableString(),
return_waybill_id = row["return_waybill_id"].ParseToNullableString(),
status = row["status"].ParseToNullableString(),
type = row["type"].ParseToNullableString(),
unionid = row["unionid"].ParseToNullableString(),
update_time = row["update_time"].ParseToNullableInt(),
warehouse_status = row["warehouse_status"].ParseToNullableInt(),
return_city = row["return_city"].ParseToNullableString(),
return_county = row["return_county"].ParseToNullableString(),
return_detail = row["return_detail"].ParseToNullableString(),
return_province = row["return_province"].ParseToNullableString(),
return_tel = row["return_tel"].ParseToNullableString(),
return_user_name = row["return_user_name"].ParseToNullableString(),
};
refundItemList.Add(order);
}
JsonSerializerSettings jsonSetting = new JsonSerializerSettings { NullValueHandling = NullValueHandling.Ignore };
var data = JsonUtils.SerializeObjectToString(refundItemList, 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 WXAddMdyBuyProdMapSkus(string inputData)
{
if (!string.IsNullOrEmpty(inputData))
{
if (!WXUserManage.GetSign(inputData))
return "{\"code\":999,\"msg\":\"校验失败\"}";
// 软件用户名
string spu_code = HtmlUtils.UrlDecodeUtf8(RegexUtils.GetStringQuery(ref inputData, "spu_code"))?.Replace("'", "\\'");
string user_name = HtmlUtils.UrlDecodeUtf8(RegexUtils.GetStringQuery(ref inputData, "main_user_name"))?.Replace("'", "\\'");
string map_url = HtmlUtils.UrlDecodeUtf8(RegexUtils.GetStringQuery(ref inputData, "map_url"))?.Replace("'", "\\'");
string map_goods_name = HtmlUtils.UrlDecodeUtf8(RegexUtils.GetStringQuery(ref inputData, "map_goods_name"))?.Replace("'", "\\'");
string map_goods_id = RegexUtils.GetStringQuery(ref inputData, "map_goods_id")?.Replace("'", "\\'");
string map_skus = HtmlUtils.UrlDecodeUtf8(RegexUtils.GetStringQuery(ref inputData, "map_skus"))?.Replace("'", "\\'");
string map_send_address = RegexUtils.GetStringQuery(ref inputData, "map_send_address")?.Replace("'", "\\'");
string transit_warehouse_id = RegexUtils.GetStringQuery(ref inputData, "transit_warehouse_id")?.Replace("'", "\\'");
string platform = RegexUtils.GetStringQuery(ref inputData, "platform")?.Replace("'", "\\'");
if (platform != "tb")
platform = "pdd";
if (string.IsNullOrEmpty(spu_code))
return "{\"code\":500,\"msg\":\"缺少系统商品编号\"}";
if (string.IsNullOrEmpty(user_name))
return "{\"code\":500,\"msg\":\"缺少用户名\"}";
if (string.IsNullOrEmpty(map_url) && string.IsNullOrEmpty(map_goods_id))
return "{\"code\":500,\"msg\":\"缺少采购商品信息\"}";
string conn = System.Configuration.ConfigurationManager.ConnectionStrings["ConnKJD"].ConnectionString;
MysqlUtils mySql = new MysqlUtils(conn);
string sql = "SELECT 1 FROM `bxx`.`product_buy_map_skus` where user_name='" + user_name + "' AND spu_code='" + spu_code + "' AND map_goods_id='" +
map_goods_id + "' AND platform='" + platform + "'";
string where = "";
sql += where;
var exist = mySql.ExecuteFirstInt(sql);
if (!mySql.Message.IsNullOrEmpty())
{
mySql.Close();
return "{\"code\":501,\"msg\":\"" + mySql.Message + "\"}";
}
if (exist == 0)
{
sql = " INSERT INTO `bxx`.`product_buy_map_skus` (user_name,spu_code,map_url,map_goods_name,map_goods_id,map_skus,map_send_address,transit_warehouse_id,platform)" +
" VALUES (@user_name,@spu_code,@map_url,@map_goods_name,@map_goods_id,@map_skus,@map_send_address,@transit_warehouse_id,@platform);";
}
else
{
sql = "UPDATE `bxx`.`product_buy_map_skus` SET ";
if (map_url != null)
sql += " map_url=@map_url,";
if (map_goods_name != null)
sql += " map_goods_name=@map_goods_name,";
if (map_skus != null)
sql += " map_skus=@map_skus,";
if (map_send_address != null)
sql += " map_send_address=@map_send_address,";
if (transit_warehouse_id != null)
sql += " transit_warehouse_id=@transit_warehouse_id,";
sql = sql.TrimEnd(',');
sql += " WHERE user_name=@user_name and spu_code=@spu_code and map_goods_id=@map_goods_id and platform=@platform;";
}
List<MySqlParameter> paramLst = new List<MySqlParameter>();
paramLst.Add(new MySqlParameter() { DbType = DbType.String, ParameterName = "user_name", Value = user_name, });
paramLst.Add(new MySqlParameter() { DbType = DbType.String, ParameterName = "spu_code", Value = spu_code, });
paramLst.Add(new MySqlParameter() { DbType = DbType.String, ParameterName = "map_url", Value = map_url, });
paramLst.Add(new MySqlParameter() { DbType = DbType.String, ParameterName = "map_goods_name", Value = map_goods_name, });
paramLst.Add(new MySqlParameter() { DbType = DbType.String, ParameterName = "map_goods_id", Value = map_goods_id, });
paramLst.Add(new MySqlParameter() { DbType = DbType.String, ParameterName = "map_skus", Value = map_skus, });
paramLst.Add(new MySqlParameter() { DbType = DbType.String, ParameterName = "map_send_address", Value = map_send_address, });
paramLst.Add(new MySqlParameter() { DbType = DbType.String, ParameterName = "transit_warehouse_id", Value = transit_warehouse_id, });
paramLst.Add(new MySqlParameter() { DbType = DbType.String, ParameterName = "platform", Value = platform, });
var rows = mySql.ExecuteAffectedRows(sql, paramLst.ToArray());
mySql.Close();
if (string.IsNullOrEmpty(mySql.Message))
{
if (rows > 0)
return "{\"code\":200,\"msg\":\"success\"}";
else
return "{\"code\":200,\"msg\":\"数据操作失败,请重试\"}";
}
else
{
return "{\"code\":50003,\"msg\":\"" + mySql.Message + "\"}";
}
}
return "{\"code\":19999,\"msg\":\"输入为空\"}";
}
/// <summary>
/// 微信获取采购映射商品
/// </summary>
/// <param name="inputData"></param>
/// <returns></returns>
public string WXGetBuyPordMapSkus(string inputData)
{
if (!string.IsNullOrEmpty(inputData))
{
if (!WXUserManage.GetSign(inputData))
return "{\"code\":999,\"msg\":\"校验失败\"}";
var timeCalc = DateTime.Now;
int page = RegexUtils.GetStringQuery(ref inputData, "page").ParseToInt();
int page_size = RegexUtils.GetStringQuery(ref inputData, "page_size").ParseToInt(200);
string spu_codes = HtmlUtils.UrlDecodeUtf8(RegexUtils.GetStringQuery(ref inputData, "spu_codes"))?.Replace("'", "\\'");
string user_name = RegexUtils.GetStringQuery(ref inputData, "main_user_name")?.Replace("'", "\\'");
string not_count = RegexUtils.GetStringQuery(ref inputData, "not_count")?.Replace("'", "\\'");
if (string.IsNullOrEmpty(spu_codes))
return "{\"code\":500,\"msg\":\"商品编码不能为空\"}";
if (string.IsNullOrEmpty(user_name))
return "{\"code\":500,\"msg\":\"用户名不能为空\"}";
string conn = System.Configuration.ConfigurationManager.ConnectionStrings["ConnKJD"].ConnectionString;
MysqlUtils mySql = new MysqlUtils(conn);
string sql = "";
var count = -1;
sql = "SELECT COUNT(*) FROM `bxx`.`product_buy_map_skus` WHERE 1=1";
string where = "";
if (spu_codes != null)
where += " and spu_code IN ('" + spu_codes.Replace(",", "','") + "')";
if (user_name != null)
where += " and user_name='" + user_name + "'";
sql += where;
sql += ";";
if (not_count == "false")
count = mySql.ExecuteRowCount(sql);
DataTable dt;
if (count == 0)
{
dt = new DataTable();
}
else
{
//sql = "SELECT * FROM `bxx`.`product_buy_map_skus` WHERE 1=1";
//sql += where;
//sql += " order by id desc limit " + Math.Max(0, page - 1) * page_size + "," + page_size + ";";
//dt = mySql.ExecuteDataTable(sql);
sql = @"
SELECT *
FROM(
SELECT t.*,ROW_NUMBER() OVER (PARTITION BY spu_code ORDER BY mdy_time DESC) AS rn
FROM `bxx`.`product_buy_map_skus` t
) AS ranked
WHERE rn <= 3" + where;
sql = @"
SELECT t.* FROM `bxx`.`product_buy_map_skus` t
WHERE 1=1 " + where;
sql += " ORDER BY mdy_time DESC";
dt = mySql.ExecuteDataTable(sql);
}
mySql.Close();
if (dt != null)
{
try
{
List<WXBuyMapSkusInfo> WXBuyMapInfoLst = new List<WXBuyMapSkusInfo>();
foreach (DataRow row in dt.Rows)
{
if (WXBuyMapInfoLst.Where(b => b.spu_code == row["spu_code"].ParseToNullableString()).ToList().Count < 5)
WXBuyMapInfoLst.Add(new WXBuyMapSkusInfo()
{
id = row["id"].ParseToInt(),
user_name = row["user_name"].ParseToNullableString(),
spu_code = row["spu_code"].ParseToNullableString(),
map_url = row["map_url"].ParseToNullableString(),
map_goods_name = row["map_goods_name"].ParseToNullableString(),
map_goods_id = row["map_goods_id"].ParseToNullableString(),
map_skus = row["map_skus"].ParseToNullableString(),
map_send_address = row["map_send_address"].ParseToNullableString(),
transit_warehouse_id = row["transit_warehouse_id"].ParseToNullableString(),
add_time = Convert.ToDateTime(row["add_time"]),
mdy_time = Convert.ToDateTime(row["mdy_time"]),
platform = row["platform"].ParseToNullableString(),
});
}
JsonSerializerSettings jsonSetting = new JsonSerializerSettings { NullValueHandling = NullValueHandling.Ignore };
var data = JsonUtils.SerializeObjectToString(WXBuyMapInfoLst, 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>
/// 微信添加修改采购映射商品(含sku映射和)
/// </summary>
/// <param name="inputData"></param>
/// <returns></returns>
public string WXAddMdyBuyProdMap(string inputData)
{
if (!string.IsNullOrEmpty(inputData))
{
if (!WXUserManage.GetSign(inputData))
return "{\"code\":999,\"msg\":\"校验失败\"}";
// 软件用户名
string spu_code = HtmlUtils.UrlDecodeUtf8(RegexUtils.GetStringQuery(ref inputData, "spu_code"))?.Replace("'", "\\'");
string sku_code = HtmlUtils.UrlDecodeUtf8(RegexUtils.GetStringQuery(ref inputData, "sku_code"))?.Replace("'", "\\'");
string user_name = HtmlUtils.UrlDecodeUtf8(RegexUtils.GetStringQuery(ref inputData, "main_user_name"))?.Replace("'", "\\'");
string map_url = HtmlUtils.UrlDecodeUtf8(RegexUtils.GetStringQuery(ref inputData, "map_url"))?.Replace("'", "\\'");
string map_goods_name = HtmlUtils.UrlDecodeUtf8(RegexUtils.GetStringQuery(ref inputData, "map_goods_name"))?.Replace("'", "\\'");
string map_spec_name = HtmlUtils.UrlDecodeUtf8(RegexUtils.GetStringQuery(ref inputData, "map_spec_name"))?.Replace("'", "\\'");
string map_goods_id = RegexUtils.GetStringQuery(ref inputData, "map_goods_id")?.Replace("'", "\\'");
string map_sku_id = RegexUtils.GetStringQuery(ref inputData, "map_sku_id")?.Replace("'", "\\'");
string map_send_address = RegexUtils.GetStringQuery(ref inputData, "map_send_address")?.Replace("'", "\\'");
string transit_warehouse_id = RegexUtils.GetStringQuery(ref inputData, "transit_warehouse_id")?.Replace("'", "\\'");
string platform = RegexUtils.GetStringQuery(ref inputData, "platform")?.Replace("'", "\\'");
if (platform != "tb")
platform = "pdd";
if (string.IsNullOrEmpty(spu_code) || string.IsNullOrEmpty(sku_code))
return "{\"code\":500,\"msg\":\"缺少系统商品或SKU编号\"}";
if (string.IsNullOrEmpty(user_name))
return "{\"code\":500,\"msg\":\"缺少用户名\"}";
if (string.IsNullOrEmpty(map_url) && (string.IsNullOrEmpty(map_goods_id) || string.IsNullOrEmpty(map_sku_id)))
return "{\"code\":500,\"msg\":\"缺少采购商品信息\"}";
if (string.IsNullOrEmpty(transit_warehouse_id))
return "{\"code\":500,\"msg\":\"缺少中转仓信息\"}";
string conn = System.Configuration.ConfigurationManager.ConnectionStrings["ConnKJD"].ConnectionString;
MysqlUtils mySql = new MysqlUtils(conn);
string sql = "SELECT 1 FROM `bxx`.`product_buy_map` where user_name='" + user_name + "' AND spu_code='" + spu_code + "' AND sku_code='" +
sku_code + "' AND platform='" + platform + "'";
string where = "";
sql += where;
var exist = mySql.ExecuteFirstInt(sql);
if (!mySql.Message.IsNullOrEmpty())
{
mySql.Close();
return "{\"code\":501,\"msg\":\"" + mySql.Message + "\"}";
}
if (exist == 0)
{
sql = " INSERT INTO `bxx`.`product_buy_map` (user_name,spu_code,sku_code,map_url,map_goods_name,map_spec_name,map_goods_id,map_sku_id,map_send_address,transit_warehouse_id,platform)" +
" VALUES (@user_name,@spu_code,@sku_code,@map_url,@map_goods_name,@map_spec_name,@map_goods_id,@map_sku_id,@map_send_address,@transit_warehouse_id,@platform);";
}
else
{
sql = "UPDATE `bxx`.`product_buy_map` SET ";
if (map_url != null)
sql += " map_url=@map_url,";
if (map_goods_name != null)
sql += " map_goods_name=@map_goods_name,";
if (map_spec_name != null)
sql += " map_spec_name=@map_spec_name,";
if (map_goods_id != null)
sql += " map_goods_id=@map_goods_id,";
if (map_sku_id != null)
sql += " map_sku_id=@map_sku_id,";
if (map_send_address != null)
sql += " map_send_address=@map_send_address,";
if (transit_warehouse_id != null)
sql += " transit_warehouse_id=@transit_warehouse_id,";
if (platform != null)
sql += " platform=@platform,";
sql = sql.TrimEnd(',');
sql += " WHERE user_name=@user_name and spu_code=@spu_code and sku_code=@sku_code and platform=@platform;";
}
List<MySqlParameter> paramLst = new List<MySqlParameter>();
paramLst.Add(new MySqlParameter() { DbType = DbType.String, ParameterName = "user_name", Value = user_name, });
paramLst.Add(new MySqlParameter() { DbType = DbType.String, ParameterName = "spu_code", Value = spu_code, });
paramLst.Add(new MySqlParameter() { DbType = DbType.String, ParameterName = "sku_code", Value = sku_code, });
paramLst.Add(new MySqlParameter() { DbType = DbType.String, ParameterName = "map_url", Value = map_url, });
paramLst.Add(new MySqlParameter() { DbType = DbType.String, ParameterName = "map_goods_name", Value = map_goods_name, });
paramLst.Add(new MySqlParameter() { DbType = DbType.String, ParameterName = "map_spec_name", Value = map_spec_name, });
paramLst.Add(new MySqlParameter() { DbType = DbType.String, ParameterName = "map_goods_id", Value = map_goods_id, });
paramLst.Add(new MySqlParameter() { DbType = DbType.String, ParameterName = "map_sku_id", Value = map_sku_id, });
paramLst.Add(new MySqlParameter() { DbType = DbType.String, ParameterName = "map_send_address", Value = map_send_address, });
paramLst.Add(new MySqlParameter() { DbType = DbType.String, ParameterName = "transit_warehouse_id", Value = transit_warehouse_id, });
paramLst.Add(new MySqlParameter() { DbType = DbType.String, ParameterName = "platform", Value = platform, });
mySql.ExecuteNonQuery(sql, paramLst.ToArray());
mySql.Close();
if (string.IsNullOrEmpty(mySql.Message))
{
return "{\"code\":200,\"msg\":\"success\",\"data\":\"\"}";
}
else
{
return "{\"code\":50003,\"msg\":\"" + mySql.Message + "\",\"data\":\"\"}";
}
}
return "{\"code\":19999,\"msg\":\"输入为空\"}";
}
/// <summary>
/// 微信获取采购映射商品
/// </summary>
/// <param name="inputData"></param>
/// <returns></returns>
public string WXGetBuyPordMap(string inputData)
{
if (!string.IsNullOrEmpty(inputData))
{
if (!WXUserManage.GetSign(inputData))
return "{\"code\":999,\"msg\":\"校验失败\"}";
var timeCalc = DateTime.Now;
int page = RegexUtils.GetStringQuery(ref inputData, "page").ParseToInt();
int page_size = RegexUtils.GetStringQuery(ref inputData, "page_size").ParseToInt(200);
string spu_codes = HtmlUtils.UrlDecodeUtf8(RegexUtils.GetStringQuery(ref inputData, "spu_codes"))?.Replace("'", "\\'");
string sku_codes = HtmlUtils.UrlDecodeUtf8(RegexUtils.GetStringQuery(ref inputData, "sku_codes"))?.Replace("'", "\\'");
string user_name = RegexUtils.GetStringQuery(ref inputData, "main_user_name")?.Replace("'", "\\'");
string not_count = RegexUtils.GetStringQuery(ref inputData, "not_count")?.Replace("'", "\\'");
if (string.IsNullOrEmpty(spu_codes))
return "{\"code\":500,\"msg\":\"商品编码不能为空\"}";
if (string.IsNullOrEmpty(user_name))
return "{\"code\":500,\"msg\":\"用户名不能为空\"}";
string conn = System.Configuration.ConfigurationManager.ConnectionStrings["ConnKJD"].ConnectionString;
MysqlUtils mySql = new MysqlUtils(conn);
string sql = "";
var count = -1;
sql = "SELECT COUNT(*) FROM `bxx`.`product_buy_map` WHERE 1=1";
string where = "";
if (spu_codes != null)
where += " and spu_code IN ('" + spu_codes.Replace(",", "','") + "')";
if (sku_codes != null)
where += " and sku_code IN ('" + sku_codes.Replace(",", "','") + "')";
if (user_name != null)
where += " and user_name='" + user_name + "'";
sql += where;
sql += ";";
if (not_count == "false")
count = mySql.ExecuteRowCount(sql);
DataTable dt;
if (count == 0)
{
dt = new DataTable();
}
else
{
sql = "SELECT * FROM `bxx`.`product_buy_map` 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 (dt != null)
{
try
{
List<WXBuyMapInfo> WXBuyMapInfoLst = new List<WXBuyMapInfo>();
foreach (DataRow row in dt.Rows)
{
WXBuyMapInfoLst.Add(new WXBuyMapInfo()
{
id = row["id"].ParseToInt(),
user_name = row["user_name"].ParseToNullableString(),
spu_code = row["spu_code"].ParseToNullableString(),
sku_code = row["sku_code"].ParseToNullableString(),
map_url = row["map_url"].ParseToNullableString(),
map_goods_name = row["map_goods_name"].ParseToNullableString(),
map_spec_name = row["map_spec_name"].ParseToNullableString(),
map_goods_id = row["map_goods_id"].ParseToNullableString(),
map_sku_id = row["map_sku_id"].ParseToNullableString(),
map_send_address = row["map_send_address"].ParseToNullableString(),
transit_warehouse_id = row["transit_warehouse_id"].ParseToNullableString(),
add_time = Convert.ToDateTime(row["add_time"]),
mdy_time = Convert.ToDateTime(row["mdy_time"]),
platform = row["platform"].ParseToNullableString(),
});
}
JsonSerializerSettings jsonSetting = new JsonSerializerSettings { NullValueHandling = NullValueHandling.Ignore };
var data = JsonUtils.SerializeObjectToString(WXBuyMapInfoLst, 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 WXGetTransitOrder(string inputData)
{
if (!string.IsNullOrEmpty(inputData))
{
if (!WXUserManage.GetSign(inputData))
return "{\"code\":999,\"msg\":\"校验失败\"}";
var timeCalc = DateTime.Now;
var count = -1;
int page = RegexUtils.GetStringQuery(ref inputData, "page").ParseToInt();
int page_size = RegexUtils.GetStringQuery(ref inputData, "page_size").ParseToInt(200);
string order_no = HtmlUtils.UrlDecodeUtf8(RegexUtils.GetStringQuery(ref inputData, "order_no"))?.Replace("'", "\\'");
string order_sku_id = HtmlUtils.UrlDecodeUtf8(RegexUtils.GetStringQuery(ref inputData, "order_sku_id"))?.Replace("'", "\\'");
string out_order_no = HtmlUtils.UrlDecodeUtf8(RegexUtils.GetStringQuery(ref inputData, "out_order_no"))?.Replace("'", "\\'");
string pre_allocated_order_no = HtmlUtils.UrlDecodeUtf8(RegexUtils.GetStringQuery(ref inputData, "pre_allocated_order_no"))?.Replace("'", "\\'");
string transfer_warehouse_status = HtmlUtils.UrlDecodeUtf8(RegexUtils.GetStringQuery(ref inputData, "transfer_warehouse_status"))?.Replace("'", "\\'");
string not_count = RegexUtils.GetStringQuery(ref inputData, "not_count")?.Replace("'", "\\'");
string is_admin = RegexUtils.GetStringQuery(ref inputData, "is_admin")?.Replace("'", "\\'");
if (string.IsNullOrEmpty(order_no) && string.IsNullOrEmpty(out_order_no) && string.IsNullOrEmpty(order_sku_id) && is_admin != "true")
return "{\"code\":500,\"msg\":\"中转订单查询信息不能为空\"}";
try
{
var oms_wei_external_procurement_log_list = GetTransitOrderTable(page, page_size, order_no, order_sku_id, out_order_no, pre_allocated_order_no, transfer_warehouse_status, not_count, out count);
if (oms_wei_external_procurement_log_list != null)
{
JsonSerializerSettings jsonSetting = new JsonSerializerSettings { NullValueHandling = NullValueHandling.Ignore };
var data = JsonUtils.SerializeObjectToString(oms_wei_external_procurement_log_list, 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 + "}";
}
}
return "{\"code\":19999,\"msg\":\"输入为空\"}";
}
/// <summary>
/// 查询中转仓订单
/// </summary>
public List<oms_wei_external_procurement_log> GetTransitOrderTable(
int page,
int pageSize,
string orderNo,
string orderSkuId,
string outOrderNo,
string preAllocatedOrderNo,
string transferWarehouseStatus,
string not_count, out int count)
{
var timeCalc = DateTime.Now;
string conn = System.Configuration.ConfigurationManager.ConnectionStrings["ConnKJD"].ConnectionString;
MysqlUtils mySql = new MysqlUtils(conn);
string sql = "";
count = -1;
sql = "SELECT COUNT(*) FROM `erp`.`oms_wei_external_procurement_log` WHERE 1=1";
string where = "";
if (!string.IsNullOrEmpty(orderNo))
where += $" and order_no IN ('{orderNo.Replace(",", "','")}')";
if (!string.IsNullOrEmpty(orderSkuId))
where += $" and order_sku_id IN ('{orderSkuId.Replace(",", "','")}')";
if (!string.IsNullOrEmpty(outOrderNo))
where += $" and out_order_no IN ('{outOrderNo.Replace(",", "','")}')";
if (!string.IsNullOrEmpty(preAllocatedOrderNo))
where += $" and pre_allocated_order_no IN ({preAllocatedOrderNo})";
if (!string.IsNullOrEmpty(transferWarehouseStatus))
where += $" and transfer_warehouse_status IN ({transferWarehouseStatus})";
sql += where;
sql += ";";
if (not_count == "false")
count = mySql.ExecuteRowCount(sql);
DataTable dt;
if (count == 0)
{
dt = new DataTable();
}
else
{
sql = "SELECT * FROM `erp`.`oms_wei_external_procurement_log` WHERE 1=1";
sql += where;
sql += " order by id desc limit " + Math.Max(0, page - 1) * pageSize + "," + pageSize + ";";
dt = mySql.ExecuteDataTable(sql);
}
mySql.Close();
if (dt != null)
{
List<oms_wei_external_procurement_log> oms_wei_external_procurement_log_list = new List<oms_wei_external_procurement_log>();
foreach (DataRow row in dt.Rows)
{
oms_wei_external_procurement_log_list.Add(new oms_wei_external_procurement_log()
{
id = row["id"].ParseToInt(),
buyer_account = row["buyer_account"].ParseToNullableString(),
order_no = row["order_no"].ParseToNullableString(),
order_sku_id = row["order_sku_id"].ParseToNullableString(),
out_amount = row["out_amount"].ParseToNullableInt(),
out_order_no = row["out_order_no"].ParseToNullableString(),
purchaser_note = row["purchaser_note"].ParseToNullableString(),
created_time = row["created_time"].ParseToNullableString().ParseToDateTime(),
express_1_company = row["express_1_company"].ParseToNullableString(),
express_1_waybill = row["express_1_waybill"].ParseToNullableString(),
express_2_company = row["express_2_company"].ParseToNullableString(),
express_2_waybill = row["express_2_waybill"].ParseToNullableString(),
order_code = row["order_code"].ParseToNullableString(),
order_platform_code = row["order_platform_code"].ParseToNullableString(),
pickup_time = row["pickup_time"].ParseToNullableString().ParseToDateTime(),
platform = row["platform"].ParseToNullableString(),
pre_allocated_order_no = row["pre_allocated_order_no"].ParseToNullableInt(),
raw_message = row["raw_message"].ParseToNullableString(),
refund_status = row["refund_status"].ParseToNullableString(),
transfer_warehouse_status = row["transfer_warehouse_status"].ParseToNullableInt(),
updated_time = row["updated_time"].ParseToNullableString().ParseToDateTime(),
is_transfer_ship = row["is_transfer_ship"].ParseToNullableInt(),
random_code = row["random_code"].ParseToNullableString(),
transfer_refund_status = row["transfer_refund_status"].ParseToNullableInt(),
order_void_status = row["order_void_status"].ParseToNullableInt(),
warehouse_status = row["warehouse_status"].ParseToNullableInt(),
inbound_time = row["inbound_time"].ParseToNullableString().ParseToDateTimeNullable(),
outbound_time = row["outbound_time"].ParseToNullableString().ParseToDateTimeNullable(),
has_reject = row["has_reject"].ParseToInt(),
blocked_arrival_time = row["blocked_arrival_time"].ParseToNullableString().ParseToDateTimeNullable(),
rejected_time = row["rejected_time"].ParseToNullableString().ParseToDateTimeNullable(),
intercept_return_info = row["intercept_return_info"].ParseToNullableString(),
intercept_return_status = row["intercept_return_status"].ParseToNullableInt(),
intercept_return_time = row["intercept_return_status"].ParseToNullableString().ParseToDateTimeNullable(),
is_manual_shipment = row["is_manual_shipment"].ParseToInt(),
manual_shipment_status = row["manual_shipment_status"].ParseToNullableInt(),
location_code = row["location_code"].ParseToNullableString(),
location_write_time = row["location_write_time"].ParseToNullableString().ParseToDateTimeNullable(),
virtual_express_company = row["virtual_express_company"].ParseToNullableString(),
virtual_waybill_no = row["virtual_waybill_no"].ParseToNullableString(),
});
}
return oms_wei_external_procurement_log_list;
}
else
{
throw new Exception(mySql.Message);
}
return null;
}
/// <summary>
/// 查询中转仓订单
/// </summary>
public List<oms_wei_transfer_extra_package> GetTransitExtraPackageTable(
int page,
int pageSize,
string batchId,
string order_no,
string order_code,
string not_count, out int count)
{
var timeCalc = DateTime.Now;
string conn = System.Configuration.ConfigurationManager.ConnectionStrings["ConnKJD"].ConnectionString;
MysqlUtils mySql = new MysqlUtils(conn);
string sql = "";
count = -1;
sql = "SELECT COUNT(*) FROM `erp`.`oms_wei_transfer_extra_package` WHERE 1=1";
string where = "";
if (!string.IsNullOrEmpty(batchId))
where += $" and batchId IN ('{batchId.Replace(",", "','")}')";
if (!string.IsNullOrEmpty(order_no))
where += $" and order_no IN ('{order_no.Replace(",", "','")}')";
if (!string.IsNullOrEmpty(order_code))
where += $" and order_code IN ('{order_code.Replace(",", "','")}')";
sql += where;
sql += ";";
if (not_count == "false")
count = mySql.ExecuteRowCount(sql);
DataTable dt;
if (count == 0)
{
dt = new DataTable();
}
else
{
sql = "SELECT * FROM `erp`.`oms_wei_transfer_extra_package` WHERE 1=1";
sql += where;
sql += " order by id desc limit " + Math.Max(0, page - 1) * pageSize + "," + pageSize + ";";
dt = mySql.ExecuteDataTable(sql);
}
mySql.Close();
if (dt != null)
{
List<oms_wei_transfer_extra_package> oms_wei_transfer_extra_package_list = new List<oms_wei_transfer_extra_package>();
foreach (DataRow row in dt.Rows)
{
oms_wei_transfer_extra_package_list.Add(new oms_wei_transfer_extra_package()
{
id = row["id"].ParseToInt(),
buyer_account = row["buyer_account"].ParseToNullableString(),
order_no = row["order_no"].ParseToNullableString(),
out_amount = row["out_amount"].ParseToNullableInt(),
purchaser_note = row["purchaser_note"].ParseToNullableString(),
created_time = row["created_time"].ParseToNullableString().ParseToDateTime(),
order_code = row["order_code"].ParseToNullableString(),
order_platform_code = row["order_platform_code"].ParseToNullableString(),
pickup_time = row["pickup_time"].ParseToNullableString().ParseToDateTime(),
platform = row["platform"].ParseToNullableString(),
raw_message = row["raw_message"].ParseToNullableString(),
refund_status = row["refund_status"].ParseToNullableString(),
transfer_warehouse_status = row["transfer_warehouse_status"].ParseToNullableInt(),
updated_time = row["updated_time"].ParseToNullableString().ParseToDateTime(),
random_code = row["random_code"].ParseToNullableString(),
order_void_status = row["order_void_status"].ParseToNullableInt(),
warehouse_status = row["warehouse_status"].ParseToNullableInt(),
inbound_time = row["inbound_time"].ParseToNullableString().ParseToDateTimeNullable(),
outbound_time = row["outbound_time"].ParseToNullableString().ParseToDateTimeNullable(),
has_reject = row["has_reject"].ParseToNullableInt(),
blocked_arrival_time = row["blocked_arrival_time"].ParseToNullableString().ParseToDateTimeNullable(),
rejected_time = row["rejected_time"].ParseToNullableString().ParseToDateTimeNullable(),
batchId = row["batchId"].ParseToString(),
logistics_code = row["logistics_code"].ParseToString(),
logistics_express_code = row["logistics_express_code"].ParseToString(),
over_weight_fee = row["over_weight_fee"].ParseToNullableInt(),
pack_type = row["pack_type"].ParseToString(),
postage = row["postage"].ParseToNullableInt(),
real_logistics_code = row["real_logistics_code"].ParseToNullableString(),
real_logistics_express_code = row["real_logistics_express_code"].ParseToNullableString(),
retry_acquire_success = row["retry_acquire_success"].ParseToNullableInt(),
location_code = row["location_code"].ParseToNullableString(),
location_write_time = row["location_write_time"].ParseToNullableString().ParseToDateTimeNullable(),
has_return = row["has_return"].ParseToNullableInt(),
intercept_address_info = row["intercept_address_info"].ParseToNullableString(),
intercept_address_status = row["intercept_address_status"].ParseToNullableInt(),
intercept_address_time = row["intercept_address_time"].ParseToNullableString().ParseToDateTimeNullable(),
intercept_return_info = row["intercept_return_info"].ParseToNullableString(),
intercept_return_status = row["intercept_return_status"].ParseToNullableInt(),
intercept_return_time = row["intercept_address_time"].ParseToNullableString().ParseToDateTimeNullable(),
out_order_no = row["out_order_no"].ParseToNullableString(),
out_sku_id = row["out_sku_id"].ParseToNullableString(),
});
}
return oms_wei_transfer_extra_package_list;
}
else
{
throw new Exception(mySql.Message);
}
return null;
}
/// <summary>
/// 修改中转仓订单信息(真实物流),临时补救
/// </summary>
/// <param name="inputData"></param>
/// <returns></returns>
public string WXUpdateErpOrderExpress(string inputData)
{
if (!string.IsNullOrEmpty(inputData))
{
if (!WXUserManage.GetSign(inputData))
return "{\"code\":999,\"msg\":\"校验失败\"}";
var timeCalc = DateTime.Now;
int page = RegexUtils.GetStringQuery(ref inputData, "page").ParseToInt();
int page_size = RegexUtils.GetStringQuery(ref inputData, "page_size").ParseToInt(200);
string out_order_no = HtmlUtils.UrlDecodeUtf8(RegexUtils.GetStringQuery(ref inputData, "out_order_no"))?.Replace("'", "\\'");
string express_1_company = HtmlUtils.UrlDecodeUtf8(RegexUtils.GetStringQuery(ref inputData, "express_1_company"))?.Replace("'", "\\'");
string express_1_waybill = HtmlUtils.UrlDecodeUtf8(RegexUtils.GetStringQuery(ref inputData, "express_1_waybil"))?.Replace("'", "\\'");
string refund_status = HtmlUtils.UrlDecodeUtf8(RegexUtils.GetStringQuery(ref inputData, "refund_status"))?.Replace("'", "\\'");
if (string.IsNullOrEmpty(out_order_no))
return "{\"code\":500,\"msg\":\"订单外部ID信息不能为空\"}";
//if (string.IsNullOrEmpty(express_1_company))
// return "{\"code\":500,\"msg\":\"物流公司不能为空\"}";
//if (string.IsNullOrEmpty(express_1_waybill))
// return "{\"code\":500,\"msg\":\"物流单号不能为空\"}";
if (string.IsNullOrEmpty(express_1_company) && string.IsNullOrEmpty(express_1_waybill) && string.IsNullOrEmpty(refund_status))
return "{\"code\":500,\"msg\":\"修改信息不能为空\"}";
string conn = System.Configuration.ConfigurationManager.ConnectionStrings["ConnKJD"].ConnectionString;
MysqlUtils mySql = new MysqlUtils(conn);
string sql = "";
var count = -1;
sql = " update `erp`.`oms_wei_external_procurement_log` set ";
if (!string.IsNullOrEmpty(express_1_company))
sql += " express_1_company='" + express_1_company + "',";
if (!string.IsNullOrEmpty(express_1_waybill))
sql += " express_1_waybill='" + express_1_waybill + "',";
if (!string.IsNullOrEmpty(refund_status))
sql += " refund_status='" + refund_status + "',";
sql = sql.TrimEnd(',');
sql += " where out_order_no = '" + out_order_no + "';";
count = mySql.ExecuteAffectedRows(sql);
mySql.Close();
if (!string.IsNullOrEmpty(mySql.Message))
{
return "{\"code\":500,\"msg\":\"" + mySql.Message + "\",\"affected_rows\":" + count + "}";
}
return "{\"code\":200,\"msg\":\"success\",\"affected_rows\":" + count + "}";
}
return "{\"code\":19999,\"msg\":\"输入为空\"}";
}
/// <summary>
/// 修改中转仓订单信息(取号状态),临时补救
/// </summary>
/// <param name="inputData"></param>
/// <returns></returns>
public string WXUpdateErpAllocatedOrderNo(string inputData)
{
if (!string.IsNullOrEmpty(inputData))
{
if (!WXUserManage.GetSign(inputData))
return "{\"code\":999,\"msg\":\"校验失败\"}";
var timeCalc = DateTime.Now;
int page = RegexUtils.GetStringQuery(ref inputData, "page").ParseToInt();
int page_size = RegexUtils.GetStringQuery(ref inputData, "page_size").ParseToInt(200);
string out_order_no = HtmlUtils.UrlDecodeUtf8(RegexUtils.GetStringQuery(ref inputData, "out_order_no"))?.Replace("'", "\\'");
string pre_allocated_order_no = HtmlUtils.UrlDecodeUtf8(RegexUtils.GetStringQuery(ref inputData, "pre_allocated_order_no"))?.Replace("'", "\\'");
if (string.IsNullOrEmpty(out_order_no))
return "{\"code\":500,\"msg\":\"订单外部ID信息不能为空\"}";
string conn = System.Configuration.ConfigurationManager.ConnectionStrings["ConnKJD"].ConnectionString;
MysqlUtils mySql = new MysqlUtils(conn);
string sql = "";
var count = -1;
sql = " update `erp`.`oms_wei_external_procurement_log` set ";
if (!string.IsNullOrEmpty(pre_allocated_order_no))
sql += " pre_allocated_order_no=" + pre_allocated_order_no + ",";
sql = sql.TrimEnd(',');
sql += " where out_order_no = '" + out_order_no + "';";
count = mySql.ExecuteAffectedRows(sql);
mySql.Close();
if (!string.IsNullOrEmpty(mySql.Message))
{
return "{\"code\":500,\"msg\":\"" + mySql.Message + "\",\"affected_rows\":" + count + "}";
}
return "{\"code\":200,\"msg\":\"success\",\"affected_rows\":" + count + "}";
}
return "{\"code\":19999,\"msg\":\"输入为空\"}";
}
/// <summary>
/// 删除中转仓订单 临时补救,慎用
/// </summary>
/// <param name="inputData"></param>
/// <returns></returns>
public string WXDelErpTransitWarehouseOrder(string inputData)
{
if (!string.IsNullOrEmpty(inputData))
{
if (!WXUserManage.GetSign(inputData))
return "{\"code\":999,\"msg\":\"校验失败\"}";
var timeCalc = DateTime.Now;
string out_order_no = HtmlUtils.UrlDecodeUtf8(RegexUtils.GetStringQuery(ref inputData, "out_order_no"))?.Replace("'", "\\'");
if (string.IsNullOrEmpty(out_order_no))
return "{\"code\":500,\"msg\":\"订单外部ID信息不能为空\"}";
string conn = System.Configuration.ConfigurationManager.ConnectionStrings["ConnKJD"].ConnectionString;
MysqlUtils mySql = new MysqlUtils(conn);
string sql = "";
var count = -1;
sql = " DELETE FROM `erp`.`oms_wei_external_procurement_log` WHERE out_order_no in ('" + out_order_no.Replace(",", "','") + "')";
count = mySql.ExecuteAffectedRows(sql);
mySql.Close();
if (!string.IsNullOrEmpty(mySql.Message))
{
return "{\"code\":500,\"msg\":\"" + mySql.Message + "\",\"affected_rows\":" + count + "}";
}
if (count == 0)
{
return "{\"code\":500,\"msg\":\"删除失败,订单不存在\",\"affected_rows\":" + count + "}";
}
return "{\"code\":200,\"msg\":\"success\",\"affected_rows\":" + count + "}";
}
return "{\"code\":19999,\"msg\":\"输入为空\"}";
}
/// <summary>
/// 中转仓额外快递包裹
/// </summary>
/// <param name="inputData"></param>
/// <returns></returns>
public string WXGetTransferExtraPackage(string inputData)
{
if (!string.IsNullOrEmpty(inputData))
{
if (!WXUserManage.GetSign(inputData))
return "{\"code\":999,\"msg\":\"校验失败\"}";
var timeCalc = DateTime.Now;
var count = -1;
int page = RegexUtils.GetStringQuery(ref inputData, "page").ParseToInt();
int page_size = RegexUtils.GetStringQuery(ref inputData, "page_size").ParseToInt(200);
string batchId = HtmlUtils.UrlDecodeUtf8(RegexUtils.GetStringQuery(ref inputData, "batchId"))?.Replace("'", "\\'");
string order_no = HtmlUtils.UrlDecodeUtf8(RegexUtils.GetStringQuery(ref inputData, "order_no"))?.Replace("'", "\\'");
string order_code = HtmlUtils.UrlDecodeUtf8(RegexUtils.GetStringQuery(ref inputData, "order_code"))?.Replace("'", "\\'");
string not_count = RegexUtils.GetStringQuery(ref inputData, "not_count")?.Replace("'", "\\'");
if (string.IsNullOrEmpty(order_no) && string.IsNullOrEmpty(order_code))
return "{\"code\":500,\"msg\":\"中转额外包裹查询信息不能为空\"}";
try
{
var oms_wei_transfer_extra_package = GetTransitExtraPackageTable(page, page_size, batchId, order_no, order_code, not_count, out count);
if (oms_wei_transfer_extra_package != null)
{
JsonSerializerSettings jsonSetting = new JsonSerializerSettings { NullValueHandling = NullValueHandling.Ignore };
var data = JsonUtils.SerializeObjectToString(oms_wei_transfer_extra_package, 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 + "}";
}
}
return "{\"code\":19999,\"msg\":\"输入为空\"}";
}
/// <summary>
/// 同步单
/// </summary>
/// <param name="inputData"></param>
/// <returns></returns>
public string WXGetSyncWaybill(string inputData)
{
if (!string.IsNullOrEmpty(inputData))
{
var timeCalc = DateTime.Now;
var time = RegexUtils.GetStringQuery(ref inputData, "time").ParseToInt();
string time1 = RegexUtils.GetStringQuery(ref inputData, "code");
if (time1 != EncrypUtil.Encryption(time))
return "{\"code\":50000,\"msg\":\"校验失败\"}";
// 买手订单号
var order_id = RegexUtils.GetStringQuery(ref inputData, "order_id")?.Replace("'", "\\'");
if (order_id.IsNullOrEmpty())
{
return "{\"code\":500,\"msg\":\"未指定订单\"}";
}
var not_upload_pickup_status = RegexUtils.GetStringQuery(ref inputData, "not_upload_pickup_status")?.Replace("'", "\\'");
var sort_type = RegexUtils.GetStringQuery(ref inputData, "sort_type")?.Replace("'", "\\'");
var is_not_count = RegexUtils.GetStringQuery(ref inputData, "is_not_count") != "false";
int page = RegexUtils.GetStringQuery(ref inputData, "page").ParseToInt();
int page_size = RegexUtils.GetStringQuery(ref inputData, "page_size").ParseToInt(500);
string conn = System.Configuration.ConfigurationManager.ConnectionStrings["ConnKJD"].ConnectionString;
MysqlUtils mySql = new MysqlUtils(conn);
string sql = "SELECT COUNT(id) FROM wxxd.yh_sync_logistics o WHERE 1=1 ";
string where = "";
if (!string.IsNullOrWhiteSpace(order_id))
where += " and o.order_id in ('" + order_id.Replace(",", "','") + "')";
if (!string.IsNullOrWhiteSpace(not_upload_pickup_status))
where += " and (o.upload_pickup_status IS null or o.upload_pickup_status!=" + not_upload_pickup_status + ")";
sql += where;
var count = 0;
if (!is_not_count)
count = mySql.ExecuteRowCount(sql);
DataTable dt;
if (count == 0 && !is_not_count)
{
dt = new DataTable();
}
else
{
sql = "SELECT o.* FROM" +
" wxxd.yh_sync_logistics o " +
" WHERE 1=1";
//where子句
sql += where;
if (sort_type == "asc")
sql += " ORDER BY o.id ASC";
else
sql += " ORDER BY o.id DESC";
sql += " LIMIT " + Math.Max(page - 1, 0) * page_size + "," + page_size;
dt = mySql.ExecuteDataTable(sql);
}
mySql.Close();
if (dt != null)
{
try
{
List<yh_sync_logistics> yhSyncLogisticsList = new List<yh_sync_logistics>();
foreach (DataRow row in dt.Rows)
{
yh_sync_logistics order = new yh_sync_logistics
{
id = row["id"].ParseToLong(),
order_id = row["order_id"].ParseToNullableString(),
create_time = row["create_time"].ParseToNullableString().ParseToDateTimeNullable(),
pickup_code = row["pickup_code"].ParseToNullableString(),
remark = row["remark"].ParseToNullableString(),
source_tracking_number = row["source_tracking_number"].ParseToNullableString(),
tracking_number = row["tracking_number"].ParseToNullableString(),
upload_pickup_status = row["upload_pickup_status"].ParseToNullableInt(),
upload_pickup_Time = row["upload_pickup_Time"].ParseToNullableString().ParseToDateTimeNullable(),
};
yhSyncLogisticsList.Add(order);
}
JsonSerializerSettings jsonSetting = new JsonSerializerSettings { NullValueHandling = NullValueHandling.Ignore };
var data = JsonUtils.SerializeObjectToString(yhSyncLogisticsList, 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 WXUpdateErpSoftRemark(string inputData)
{
if (!string.IsNullOrEmpty(inputData))
{
if (!WXUserManage.GetSign(inputData))
return "{\"code\":999,\"msg\":\"校验失败\"}";
var timeCalc = DateTime.Now;
string order_id = HtmlUtils.UrlDecodeUtf8(RegexUtils.GetStringQuery(ref inputData, "order_id"))?.Replace("'", "\\'");
string soft_remark = HtmlUtils.UrlDecodeUtf8(RegexUtils.GetStringQuery(ref inputData, "soft_remark"))?.Replace("'", "\\'");
if (string.IsNullOrEmpty(order_id))
return "{\"code\":500,\"msg\":\"订单ID不能为空\"}";
string conn = System.Configuration.ConfigurationManager.ConnectionStrings["ConnKJD"].ConnectionString;
MysqlUtils mySql = new MysqlUtils(conn);
string sql = "";
var count = -1;
sql = " update erp.oms_wei_order set ";
if (soft_remark != null)
sql += " soft_remark='" + soft_remark + "',";
sql = sql.TrimEnd(',');
sql += " where order_id = '" + order_id + "';";
count = mySql.ExecuteAffectedRows(sql);
mySql.Close();
if (!string.IsNullOrEmpty(mySql.Message))
{
return "{\"code\":500,\"msg\":\"" + mySql.Message + "\",\"affected_rows\":" + count + "}";
}
return "{\"code\":200,\"msg\":\"success\",\"affected_rows\":" + count + "}";
}
return "{\"code\":19999,\"msg\":\"输入为空\"}";
}
public string WXUpdateErpColorFlag(string inputData)
{
if (!string.IsNullOrEmpty(inputData))
{
if (!WXUserManage.GetSign(inputData))
return "{\"code\":999,\"msg\":\"校验失败\"}";
var timeCalc = DateTime.Now;
string order_id = HtmlUtils.UrlDecodeUtf8(RegexUtils.GetStringQuery(ref inputData, "order_id"))?.Replace("'", "\\'");
string colour_flag = HtmlUtils.UrlDecodeUtf8(RegexUtils.GetStringQuery(ref inputData, "colour_flag"))?.Replace("'", "\\'");
if (string.IsNullOrEmpty(order_id))
return "{\"code\":500,\"msg\":\"订单ID不能为空\"}";
string conn = System.Configuration.ConfigurationManager.ConnectionStrings["ConnKJD"].ConnectionString;
MysqlUtils mySql = new MysqlUtils(conn);
string sql = "";
var count = -1;
sql = " update erp.oms_wei_order set ";
if (colour_flag != null)
{
sql += " colour_flag=" + colour_flag + ",";
sql += " colour_flag_update_time='" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + "',";
}
sql = sql.TrimEnd(',');
sql += " where order_id = '" + order_id + "';";
count = mySql.ExecuteAffectedRows(sql);
mySql.Close();
if (!string.IsNullOrEmpty(mySql.Message))
{
return "{\"code\":500,\"msg\":\"" + mySql.Message + "\",\"affected_rows\":" + count + "}";
}
return "{\"code\":200,\"msg\":\"success\",\"affected_rows\":" + count + "}";
}
return "{\"code\":19999,\"msg\":\"输入为空\"}";
}
public string WXUpdateErpOutAfterSaleStatus(string inputData)
{
if (!string.IsNullOrEmpty(inputData))
{
if (!WXUserManage.GetSign(inputData))
return "{\"code\":999,\"msg\":\"校验失败\"}";
var timeCalc = DateTime.Now;
string order_id = HtmlUtils.UrlDecodeUtf8(RegexUtils.GetStringQuery(ref inputData, "order_id"))?.Replace("'", "\\'");
if (string.IsNullOrEmpty(order_id))
return "{\"code\":500,\"msg\":\"订单ID不能为空\"}";
string out_after_sale_status = HtmlUtils.UrlDecodeUtf8(RegexUtils.GetStringQuery(ref inputData, "out_after_sale_status"))?.Replace("'", "\\'");
if (out_after_sale_status == null)
return "{\"code\":500,\"msg\":\"售后状态不能为NULL\"}";
string conn = System.Configuration.ConfigurationManager.ConnectionStrings["ConnKJD"].ConnectionString;
MysqlUtils mySql = new MysqlUtils(conn);
string sql = "";
var count = -1;
sql = " update erp.oms_wei_order set ";
if (out_after_sale_status != null)
{
if (out_after_sale_status == "" || out_after_sale_status == "NULL")
sql += " out_after_sale_status=NULL,";
else
sql += " out_after_sale_status='" + out_after_sale_status + "',";
}
sql = sql.TrimEnd(',');
sql += " where order_id = '" + order_id + "';";
count = mySql.ExecuteAffectedRows(sql);
mySql.Close();
if (!string.IsNullOrEmpty(mySql.Message))
{
return "{\"code\":500,\"msg\":\"" + mySql.Message + "\",\"affected_rows\":" + count + "}";
}
return "{\"code\":200,\"msg\":\"success\",\"affected_rows\":" + count + "}";
}
return "{\"code\":19999,\"msg\":\"输入为空\"}";
}
public string WXUpdateErpOutWaybillStatus(string inputData)
{
if (!string.IsNullOrEmpty(inputData))
{
if (!WXUserManage.GetSign(inputData))
return "{\"code\":999,\"msg\":\"校验失败\"}";
var timeCalc = DateTime.Now;
string order_id = HtmlUtils.UrlDecodeUtf8(RegexUtils.GetStringQuery(ref inputData, "order_id"))?.Replace("'", "\\'");
if (string.IsNullOrEmpty(order_id))
return "{\"code\":500,\"msg\":\"订单ID不能为空\"}";
string out_express_company = HtmlUtils.UrlDecodeUtf8(RegexUtils.GetStringQuery(ref inputData, "out_express_company"))?.Replace("'", "\\'");
string out_express_no = HtmlUtils.UrlDecodeUtf8(RegexUtils.GetStringQuery(ref inputData, "out_express_no"))?.Replace("'", "\\'");
// 外采是否发货(0 未发货,1 已发货)
string out_shipped = HtmlUtils.UrlDecodeUtf8(RegexUtils.GetStringQuery(ref inputData, "out_shipped"))?.Replace("'", "\\'");
string conn = System.Configuration.ConfigurationManager.ConnectionStrings["ConnKJD"].ConnectionString;
MysqlUtils mySql = new MysqlUtils(conn);
string sql = "";
var count = -1;
sql = " update erp.oms_wei_order set ";
if (out_express_company != null)
{
sql += " out_express_company='" + out_express_company + "',";
}
if (out_express_no != null)
{
sql += " out_express_no='" + out_express_no + "',";
}
if (out_shipped != null)
{
sql += " out_shipped=" + out_shipped + ",";
}
sql = sql.TrimEnd(',');
sql += " where order_id='" + order_id + "';";
count = mySql.ExecuteAffectedRows(sql);
mySql.Close();
if (!string.IsNullOrEmpty(mySql.Message))
{
return "{\"code\":500,\"msg\":\"" + mySql.Message + "\",\"affected_rows\":" + count + "}";
}
return "{\"code\":200,\"msg\":\"success\",\"affected_rows\":" + count + "}";
}
return "{\"code\":19999,\"msg\":\"输入为空\"}";
}
public string WXAddMdyBuyerOrder(string inputData)
{
if (!string.IsNullOrEmpty(inputData))
{
if (!WXUserManage.GetSign(inputData))
return "{\"code\":999,\"msg\":\"校验失败\"}";
var timeCalc = DateTime.Now;
string wx_order_id = HtmlUtils.UrlDecodeUtf8(RegexUtils.GetStringQuery(ref inputData, "wx_order_id"))?.Replace("'", "\\'");
string wx_sku_id = HtmlUtils.UrlDecodeUtf8(RegexUtils.GetStringQuery(ref inputData, "wx_sku_id"))?.Replace("'", "\\'");
string wx_send_type = HtmlUtils.UrlDecodeUtf8(RegexUtils.GetStringQuery(ref inputData, "wx_send_type"))?.Replace("'", "\\'");
if (wx_send_type.IsNullOrEmpty())
wx_send_type = "0";
string TransitCreateTime = HtmlUtils.UrlDecodeUtf8(RegexUtils.GetStringQuery(ref inputData, "TransitCreateTime"))?.Replace("'", "\\'");
string pre_allocated_order_no = HtmlUtils.UrlDecodeUtf8(RegexUtils.GetStringQuery(ref inputData, "pre_allocated_order_no"))?.Replace("'", "\\'");
string buyerId = HtmlUtils.UrlDecodeUtf8(RegexUtils.GetStringQuery(ref inputData, "buyerId"))?.Replace("'", "\\'");
string buyerName = HtmlUtils.UrlDecodeUtf8(RegexUtils.GetStringQuery(ref inputData, "buyerName"))?.Replace("'", "\\'");
string pdd_order_sn = HtmlUtils.UrlDecodeUtf8(RegexUtils.GetStringQuery(ref inputData, "pdd_order_sn"))?.Replace("'", "\\'");
string order_amount = HtmlUtils.UrlDecodeUtf8(RegexUtils.GetStringQuery(ref inputData, "order_amount"))?.Replace("'", "\\'");
string order_time = HtmlUtils.UrlDecodeUtf8(RegexUtils.GetStringQuery(ref inputData, "order_time"))?.Replace("'", "\\'");
string outExpressCompanyCode = HtmlUtils.UrlDecodeUtf8(RegexUtils.GetStringQuery(ref inputData, "outExpressCompanyCode"))?.Replace("'", "\\'");
string tracking_number = HtmlUtils.UrlDecodeUtf8(RegexUtils.GetStringQuery(ref inputData, "tracking_number"))?.Replace("'", "\\'");
string order_status_prompt = HtmlUtils.UrlDecodeUtf8(RegexUtils.GetStringQuery(ref inputData, "order_status_prompt"))?.Replace("'", "\\'");
string after_sales_status = HtmlUtils.UrlDecodeUtf8(RegexUtils.GetStringQuery(ref inputData, "after_sales_status"))?.Replace("'", "\\'");
string order_detail = HtmlUtils.UrlDecodeUtf8(RegexUtils.GetStringQuery(ref inputData, "order_detail"))?.Replace("'", "\\'");
string sync_logistics_msg = HtmlUtils.UrlDecodeUtf8(RegexUtils.GetStringQuery(ref inputData, "sync_logistics_msg"))?.Replace("'", "\\'");
//string wx_order_send_type = HtmlUtils.UrlDecodeUtf8(RegexUtils.GetStringQuery(ref inputData, "wx_order_send_type"))?.Replace("'", "\\'");
//if (string.IsNullOrEmpty(wx_order_send_type))
// wx_order_send_type = "1";
if (string.IsNullOrEmpty(wx_order_id) || string.IsNullOrEmpty(pdd_order_sn))
return "{\"code\":500,\"msg\":\"订单ID不能为空\"}";
string conn = System.Configuration.ConfigurationManager.ConnectionStrings["ConnKJD"].ConnectionString;
MysqlUtils mySql = new MysqlUtils(conn);
string sql = "";
var count = -1;
sql = "select id from wxxd.order_pdd_buyer_order where order_sn='" + pdd_order_sn + "'";
var id = mySql.ExecuteFirstInt(sql);
if (!string.IsNullOrEmpty(mySql.Message))
{
mySql.Close();
return "{\"code\":500,\"msg\":\"" + mySql.Message + "\"}";
}
//sql = "INSERT INTO wxxd.order_pdd_buyer_order (wx_order_id,wx_sku_id,TransitCreateTime,pre_allocated_order_no,buyerId,buyerName,order_sn,order_amount,order_time," +
// "outExpressCompanyCode,tracking_number,order_status_prompt,after_sales_status,order_detail)";
//sql += "VALUES(@wx_order_id,@wx_sku_id,@TransitCreateTime,@pre_allocated_order_no,@buyerId,@buyerName,@pdd_order_sn,@order_amount,@order_time," +
// "@outExpressCompanyCode,@tracking_number,@order_status_prompt,@after_sales_status,@order_detail)";
//sql += " ON DUPLICATE KEY UPDATE wx_order_id=VALUES(@wx_order_id),wx_sku_id=VALUES(@wx_sku_id),TransitCreateTime=VALUES(@TransitCreateTime)," +
// "pre_allocated_order_no=VALUES(@pre_allocated_order_no),buyerId=VALUES(@buyerId),buyerName=VALUES(@buyerName),order_amount=VALUES(@order_amount)," +
// "order_time=VALUES(@order_time),outExpressCompanyCode=VALUES(@outExpressCompanyCode),tracking_number=VALUES(@tracking_number),order_status_prompt=VALUES(@order_status_prompt)," +
// "after_sales_status=VALUES(@after_sales_status),order_detail=VALUES(@order_detail)";
if (id == 0)
{
sql = "INSERT INTO wxxd.order_pdd_buyer_order (wx_order_id,wx_sku_id,wx_send_type,TransitCreateTime,pre_allocated_order_no,buyerId,buyerName,order_sn,order_amount,order_time," +
"outExpressCompanyCode,tracking_number,order_status_prompt,after_sales_status,order_detail,sync_logistics_msg)";
sql += "VALUES(@wx_order_id,@wx_sku_id,@wx_send_type,@TransitCreateTime,@pre_allocated_order_no,@buyerId,@buyerName,@pdd_order_sn,@order_amount,@order_time," +
"@outExpressCompanyCode,@tracking_number,@order_status_prompt,@after_sales_status,@order_detail,@sync_logistics_msg);";
}
else
{
sql = "UPDATE wxxd.order_pdd_buyer_order SET ";
if (!string.IsNullOrEmpty(wx_order_id))
sql += " wx_order_id=@wx_order_id,";
if (!string.IsNullOrEmpty(wx_sku_id))
sql += " wx_sku_id=@wx_sku_id,";
if (!string.IsNullOrEmpty(wx_send_type))
sql += " wx_send_type=@wx_send_type,";
if (!string.IsNullOrEmpty(TransitCreateTime))
sql += " TransitCreateTime=@TransitCreateTime,";
if (!string.IsNullOrEmpty(pre_allocated_order_no))
sql += " pre_allocated_order_no=@pre_allocated_order_no,";
if (!string.IsNullOrEmpty(buyerId))
sql += " buyerId=@buyerId,";
if (!string.IsNullOrEmpty(buyerName))
sql += " buyerName=@buyerName,";
if (!string.IsNullOrEmpty(order_amount))
sql += " order_amount=@order_amount,";
if (!string.IsNullOrEmpty(order_time))
sql += " order_time=@order_time,";
if (!string.IsNullOrEmpty(outExpressCompanyCode))
sql += " outExpressCompanyCode=@outExpressCompanyCode,";
if (!string.IsNullOrEmpty(tracking_number))
sql += " tracking_number=@tracking_number,";
if (!string.IsNullOrEmpty(order_status_prompt))
sql += " order_status_prompt=@order_status_prompt,";
if (!string.IsNullOrEmpty(after_sales_status))
sql += " after_sales_status=@after_sales_status,";
if (!string.IsNullOrEmpty(order_detail))
sql += " order_detail=@order_detail,";
if (!string.IsNullOrEmpty(sync_logistics_msg))
sql += " sync_logistics_msg=@sync_logistics_msg,";
sql = sql.TrimEnd(',');
sql += " where order_sn=@pdd_order_sn";
}
//260705-105706954352823
List<MySqlParameter> paramLst = new List<MySqlParameter>();
paramLst.Add(new MySqlParameter() { DbType = DbType.String, ParameterName = "wx_order_id", Value = wx_order_id, });
paramLst.Add(new MySqlParameter() { DbType = DbType.String, ParameterName = "wx_sku_id", Value = wx_sku_id, });
paramLst.Add(new MySqlParameter() { DbType = DbType.Int32, ParameterName = "wx_send_type", Value = wx_send_type.ParseToInt(), });
paramLst.Add(new MySqlParameter() { DbType = DbType.DateTime, ParameterName = "TransitCreateTime", Value = TransitCreateTime.ParseToDateTime(), });
paramLst.Add(new MySqlParameter() { DbType = DbType.Int32, ParameterName = "pre_allocated_order_no", Value = pre_allocated_order_no.ParseToInt(), });
paramLst.Add(new MySqlParameter() { DbType = DbType.String, ParameterName = "buyerId", Value = buyerId, });
paramLst.Add(new MySqlParameter() { DbType = DbType.String, ParameterName = "buyerName", Value = buyerName, });
paramLst.Add(new MySqlParameter() { DbType = DbType.String, ParameterName = "pdd_order_sn", Value = pdd_order_sn, });
paramLst.Add(new MySqlParameter() { DbType = DbType.Int32, ParameterName = "order_amount", Value = order_amount.ParseToNullableInt(), });
paramLst.Add(new MySqlParameter() { DbType = DbType.Int64, ParameterName = "order_time", Value = order_time.ParseToLong(), });
paramLst.Add(new MySqlParameter() { DbType = DbType.String, ParameterName = "outExpressCompanyCode", Value = outExpressCompanyCode, });
paramLst.Add(new MySqlParameter() { DbType = DbType.String, ParameterName = "tracking_number", Value = tracking_number, });
paramLst.Add(new MySqlParameter() { DbType = DbType.String, ParameterName = "order_status_prompt", Value = order_status_prompt, });
paramLst.Add(new MySqlParameter() { DbType = DbType.Int32, ParameterName = "after_sales_status", Value = after_sales_status.ParseToInt(), });
paramLst.Add(new MySqlParameter() { DbType = DbType.String, ParameterName = "order_detail", Value = order_detail, });
paramLst.Add(new MySqlParameter() { DbType = DbType.String, ParameterName = "sync_logistics_msg", Value = sync_logistics_msg, });
//sql = " update `wxxd`.`order_pdd_buyer_order` set ";
//if (!string.IsNullOrEmpty(soft_remark))
// sql += " soft_remark=" + soft_remark + ",";
//sql = sql.TrimEnd(',');
//sql += " where order_id = '" + wx_order_id + "';";
count = mySql.ExecuteAffectedRows(sql, paramLst.ToArray());
mySql.Close();
if (!string.IsNullOrEmpty(mySql.Message))
{
return "{\"code\":500,\"msg\":\"" + mySql.Message + "\",\"affected_rows\":" + count + "}";
}
return "{\"code\":200,\"msg\":\"success\",\"affected_rows\":" + count + "}";
}
return "{\"code\":19999,\"msg\":\"输入为空\"}";
}
public string WXGetBuyerOrderList(string inputData, bool isDetail = false)
{
if (!string.IsNullOrEmpty(inputData))
{
if (!WXUserManage.GetSign(inputData))
return "{\"code\":999,\"msg\":\"校验失败\"}";
var timeCalc = DateTime.Now;
var wx_order_id_in = RegexUtils.GetStringQuery(ref inputData, "wx_order_id_in")?.Replace("'", "\\'");
var buyer_order_sn_in = RegexUtils.GetStringQuery(ref inputData, "buyer_order_sn_in")?.Replace("'", "\\'");
if (wx_order_id_in.IsNullOrEmpty() && string.IsNullOrEmpty(buyer_order_sn_in))
{
return "{\"code\":500,\"msg\":\"未指定订单\"}";
}
var sort_type = RegexUtils.GetStringQuery(ref inputData, "sort_type")?.Replace("'", "\\'");
var is_not_count = RegexUtils.GetStringQuery(ref inputData, "is_not_count") != "false";
int page = RegexUtils.GetStringQuery(ref inputData, "page").ParseToInt();
int page_size = RegexUtils.GetStringQuery(ref inputData, "page_size").ParseToInt(500);
string conn = System.Configuration.ConfigurationManager.ConnectionStrings["ConnKJD"].ConnectionString;
MysqlUtils mySql = new MysqlUtils(conn);
string sql = "SELECT COUNT(id) FROM wxxd.order_pdd_buyer_order o WHERE 1=1 ";
string where = "";
if (!string.IsNullOrWhiteSpace(wx_order_id_in))
where += " and o.wx_order_id in ('" + wx_order_id_in.Replace(",", "','") + "')";
if (!string.IsNullOrWhiteSpace(buyer_order_sn_in))
where += " and o.order_sn in ('" + buyer_order_sn_in.Replace(",", "','") + "')";
sql += where;
var count = 0;
if (!is_not_count)
count = mySql.ExecuteRowCount(sql);
DataTable dt;
if (count == 0 && !is_not_count)
{
dt = new DataTable();
}
else
{
sql = "SELECT o.* FROM" +
" wxxd.order_pdd_buyer_order o " +
" WHERE 1=1";
//where子句
sql += where;
if (sort_type == "asc")
sql += " ORDER BY o.id ASC";
else
sql += " ORDER BY o.id DESC";
sql += " LIMIT " + Math.Max(page - 1, 0) * page_size + "," + page_size;
dt = mySql.ExecuteDataTable(sql);
}
mySql.Close();
if (dt != null)
{
try
{
List<order_pdd_buyer_order> buyerOrderList = new List<order_pdd_buyer_order>();
foreach (DataRow row in dt.Rows)
{
order_pdd_buyer_order order = new order_pdd_buyer_order
{
id = row["id"].ParseToLong(),
add_time = row["add_time"].ParseToString().ParseToDateTime(),
after_sales_status = row["after_sales_status"].ParseToNullableInt(),
buyerId = row["buyerId"].ParseToString(),
buyerName = row["buyerName"].ParseToString(),
mdy_time = row["mdy_time"].ParseToString().ParseToDateTime(),
order_amount = row["order_amount"].ParseToNullableInt(),
order_detail = row["order_detail"].ParseToString(),
order_sn = row["order_sn"].ParseToString(),
order_status_prompt = row["order_status_prompt"].ParseToString(),
order_time = row["order_time"].ParseToNullableLong(),
outExpressCompanyCode = row["outExpressCompanyCode"].ParseToString(),
pre_allocated_order_no = row["pre_allocated_order_no"].ParseToNullableInt(),
tracking_number = row["tracking_number"].ParseToString(),
TransitCreateTime = row["TransitCreateTime"].ParseToString().ParseToDateTime(),
wx_order_id = row["wx_order_id"].ParseToString(),
wx_sku_id = row["wx_sku_id"].ParseToString(),
wx_send_type = row["wx_send_type"].ParseToInt(),
sync_logistics_msg = row["sync_logistics_msg"].ParseToString(),
};
buyerOrderList.Add(order);
}
JsonSerializerSettings jsonSetting = new JsonSerializerSettings { NullValueHandling = NullValueHandling.Ignore };
var data = JsonUtils.SerializeObjectToString(buyerOrderList, jsonSetting);
var seconds = (DateTime.Now - timeCalc).TotalSeconds.ToString("0.000");
return "{\"code\":200,\"msg\":\"success\",\"data\":" + data + ",\"count\":" + count + ",\"seconds\":" + seconds + "}";
}
catch (Exception ex)
{
return "{\"code\":500,\"msg\":\"" + ex.Message + "\",\"data\":[],\"count\":" + 0 + "}";
}
}
else
{
return "{\"code\":500,\"msg\":\"" + mySql.Message + "\",\"data\":[],\"count\":" + 0 + "}";
}
}
return "{\"code\":19999,\"msg\":\"输入为空\"}";
}
public string WXAddMdyTbBuyerOrder(string inputData)
{
if (!string.IsNullOrEmpty(inputData))
{
if (!WXUserManage.GetSign(inputData))
return "{\"code\":999,\"msg\":\"校验失败\"}";
var timeCalc = DateTime.Now;
string wx_order_id = HtmlUtils.UrlDecodeUtf8(RegexUtils.GetStringQuery(ref inputData, "wx_order_id"))?.Replace("'", "\\'");
string wx_sku_id = HtmlUtils.UrlDecodeUtf8(RegexUtils.GetStringQuery(ref inputData, "wx_sku_id"))?.Replace("'", "\\'");
string wx_send_type = HtmlUtils.UrlDecodeUtf8(RegexUtils.GetStringQuery(ref inputData, "wx_send_type"))?.Replace("'", "\\'");
if (wx_send_type.IsNullOrEmpty())
wx_send_type = "0";
string TransitCreateTime = HtmlUtils.UrlDecodeUtf8(RegexUtils.GetStringQuery(ref inputData, "TransitCreateTime"))?.Replace("'", "\\'");
string pre_allocated_order_no = HtmlUtils.UrlDecodeUtf8(RegexUtils.GetStringQuery(ref inputData, "pre_allocated_order_no"))?.Replace("'", "\\'");
string buyerId = HtmlUtils.UrlDecodeUtf8(RegexUtils.GetStringQuery(ref inputData, "buyerId"))?.Replace("'", "\\'");
string buyerName = HtmlUtils.UrlDecodeUtf8(RegexUtils.GetStringQuery(ref inputData, "buyerName"))?.Replace("'", "\\'");
string pdd_order_sn = HtmlUtils.UrlDecodeUtf8(RegexUtils.GetStringQuery(ref inputData, "pdd_order_sn"))?.Replace("'", "\\'");
string order_amount = HtmlUtils.UrlDecodeUtf8(RegexUtils.GetStringQuery(ref inputData, "order_amount"))?.Replace("'", "\\'");
string order_time = HtmlUtils.UrlDecodeUtf8(RegexUtils.GetStringQuery(ref inputData, "order_time"))?.Replace("'", "\\'");
string outExpressCompanyCode = HtmlUtils.UrlDecodeUtf8(RegexUtils.GetStringQuery(ref inputData, "outExpressCompanyCode"))?.Replace("'", "\\'");
string tracking_number = HtmlUtils.UrlDecodeUtf8(RegexUtils.GetStringQuery(ref inputData, "tracking_number"))?.Replace("'", "\\'");
string order_status_prompt = HtmlUtils.UrlDecodeUtf8(RegexUtils.GetStringQuery(ref inputData, "order_status_prompt"))?.Replace("'", "\\'");
string after_sales_status = HtmlUtils.UrlDecodeUtf8(RegexUtils.GetStringQuery(ref inputData, "after_sales_status"))?.Replace("'", "\\'");
string order_detail = HtmlUtils.UrlDecodeUtf8(RegexUtils.GetStringQuery(ref inputData, "order_detail"))?.Replace("'", "\\'");
string sync_logistics_msg = HtmlUtils.UrlDecodeUtf8(RegexUtils.GetStringQuery(ref inputData, "sync_logistics_msg"))?.Replace("'", "\\'");
//string wx_order_send_type = HtmlUtils.UrlDecodeUtf8(RegexUtils.GetStringQuery(ref inputData, "wx_order_send_type"))?.Replace("'", "\\'");
//if (string.IsNullOrEmpty(wx_order_send_type))
// wx_order_send_type = "1";
if (string.IsNullOrEmpty(wx_order_id) || string.IsNullOrEmpty(pdd_order_sn))
return "{\"code\":500,\"msg\":\"订单ID不能为空\"}";
string conn = System.Configuration.ConfigurationManager.ConnectionStrings["ConnKJD"].ConnectionString;
MysqlUtils mySql = new MysqlUtils(conn);
string sql = "";
var count = -1;
sql = "select id from wxxd.order_tb_buyer_order where order_sn='" + pdd_order_sn + "'";
var id = mySql.ExecuteFirstInt(sql);
if (!string.IsNullOrEmpty(mySql.Message))
{
mySql.Close();
return "{\"code\":500,\"msg\":\"" + mySql.Message + "\"}";
}
//sql = "INSERT INTO wxxd.order_tb_buyer_order (wx_order_id,wx_sku_id,TransitCreateTime,pre_allocated_order_no,buyerId,buyerName,order_sn,order_amount,order_time," +
// "outExpressCompanyCode,tracking_number,order_status_prompt,after_sales_status,order_detail)";
//sql += "VALUES(@wx_order_id,@wx_sku_id,@TransitCreateTime,@pre_allocated_order_no,@buyerId,@buyerName,@pdd_order_sn,@order_amount,@order_time," +
// "@outExpressCompanyCode,@tracking_number,@order_status_prompt,@after_sales_status,@order_detail)";
//sql += " ON DUPLICATE KEY UPDATE wx_order_id=VALUES(@wx_order_id),wx_sku_id=VALUES(@wx_sku_id),TransitCreateTime=VALUES(@TransitCreateTime)," +
// "pre_allocated_order_no=VALUES(@pre_allocated_order_no),buyerId=VALUES(@buyerId),buyerName=VALUES(@buyerName),order_amount=VALUES(@order_amount)," +
// "order_time=VALUES(@order_time),outExpressCompanyCode=VALUES(@outExpressCompanyCode),tracking_number=VALUES(@tracking_number),order_status_prompt=VALUES(@order_status_prompt)," +
// "after_sales_status=VALUES(@after_sales_status),order_detail=VALUES(@order_detail)";
if (id == 0)
{
sql = "INSERT INTO wxxd.order_tb_buyer_order (wx_order_id,wx_sku_id,wx_send_type,TransitCreateTime,pre_allocated_order_no,buyerId,buyerName,order_sn,order_amount,order_time," +
"outExpressCompanyCode,tracking_number,order_status_prompt,after_sales_status,order_detail,sync_logistics_msg)";
sql += "VALUES(@wx_order_id,@wx_sku_id,@wx_send_type,@TransitCreateTime,@pre_allocated_order_no,@buyerId,@buyerName,@pdd_order_sn,@order_amount,@order_time," +
"@outExpressCompanyCode,@tracking_number,@order_status_prompt,@after_sales_status,@order_detail,@sync_logistics_msg);";
}
else
{
sql = "UPDATE wxxd.order_tb_buyer_order SET ";
if (!string.IsNullOrEmpty(wx_order_id))
sql += " wx_order_id=@wx_order_id,";
if (!string.IsNullOrEmpty(wx_sku_id))
sql += " wx_sku_id=@wx_sku_id,";
if (!string.IsNullOrEmpty(wx_send_type))
sql += " wx_send_type=@wx_send_type,";
if (!string.IsNullOrEmpty(TransitCreateTime))
sql += " TransitCreateTime=@TransitCreateTime,";
if (!string.IsNullOrEmpty(pre_allocated_order_no))
sql += " pre_allocated_order_no=@pre_allocated_order_no,";
if (!string.IsNullOrEmpty(buyerId))
sql += " buyerId=@buyerId,";
if (!string.IsNullOrEmpty(buyerName))
sql += " buyerName=@buyerName,";
if (!string.IsNullOrEmpty(order_amount))
sql += " order_amount=@order_amount,";
if (!string.IsNullOrEmpty(order_time))
sql += " order_time=@order_time,";
if (!string.IsNullOrEmpty(outExpressCompanyCode))
sql += " outExpressCompanyCode=@outExpressCompanyCode,";
if (!string.IsNullOrEmpty(tracking_number))
sql += " tracking_number=@tracking_number,";
if (!string.IsNullOrEmpty(order_status_prompt))
sql += " order_status_prompt=@order_status_prompt,";
if (!string.IsNullOrEmpty(after_sales_status))
sql += " after_sales_status=@after_sales_status,";
if (!string.IsNullOrEmpty(order_detail))
sql += " order_detail=@order_detail,";
if (!string.IsNullOrEmpty(sync_logistics_msg))
sql += " sync_logistics_msg=@sync_logistics_msg,";
sql = sql.TrimEnd(',');
sql += " where order_sn=@pdd_order_sn";
}
//260705-105706954352823
List<MySqlParameter> paramLst = new List<MySqlParameter>();
paramLst.Add(new MySqlParameter() { DbType = DbType.String, ParameterName = "wx_order_id", Value = wx_order_id, });
paramLst.Add(new MySqlParameter() { DbType = DbType.String, ParameterName = "wx_sku_id", Value = wx_sku_id, });
paramLst.Add(new MySqlParameter() { DbType = DbType.Int32, ParameterName = "wx_send_type", Value = wx_send_type.ParseToInt(), });
paramLst.Add(new MySqlParameter() { DbType = DbType.DateTime, ParameterName = "TransitCreateTime", Value = TransitCreateTime.ParseToDateTime(), });
paramLst.Add(new MySqlParameter() { DbType = DbType.Int32, ParameterName = "pre_allocated_order_no", Value = pre_allocated_order_no.ParseToInt(), });
paramLst.Add(new MySqlParameter() { DbType = DbType.String, ParameterName = "buyerId", Value = buyerId, });
paramLst.Add(new MySqlParameter() { DbType = DbType.String, ParameterName = "buyerName", Value = buyerName, });
paramLst.Add(new MySqlParameter() { DbType = DbType.String, ParameterName = "pdd_order_sn", Value = pdd_order_sn, });
paramLst.Add(new MySqlParameter() { DbType = DbType.Int32, ParameterName = "order_amount", Value = order_amount.ParseToNullableInt(), });
paramLst.Add(new MySqlParameter() { DbType = DbType.Int64, ParameterName = "order_time", Value = order_time.ParseToLong(), });
paramLst.Add(new MySqlParameter() { DbType = DbType.String, ParameterName = "outExpressCompanyCode", Value = outExpressCompanyCode, });
paramLst.Add(new MySqlParameter() { DbType = DbType.String, ParameterName = "tracking_number", Value = tracking_number, });
paramLst.Add(new MySqlParameter() { DbType = DbType.String, ParameterName = "order_status_prompt", Value = order_status_prompt, });
paramLst.Add(new MySqlParameter() { DbType = DbType.Int32, ParameterName = "after_sales_status", Value = after_sales_status.ParseToInt(), });
paramLst.Add(new MySqlParameter() { DbType = DbType.String, ParameterName = "order_detail", Value = order_detail, });
paramLst.Add(new MySqlParameter() { DbType = DbType.String, ParameterName = "sync_logistics_msg", Value = sync_logistics_msg, });
//sql = " update `wxxd`.`order_tb_buyer_order` set ";
//if (!string.IsNullOrEmpty(soft_remark))
// sql += " soft_remark=" + soft_remark + ",";
//sql = sql.TrimEnd(',');
//sql += " where order_id = '" + wx_order_id + "';";
count = mySql.ExecuteAffectedRows(sql, paramLst.ToArray());
mySql.Close();
if (!string.IsNullOrEmpty(mySql.Message))
{
return "{\"code\":500,\"msg\":\"" + mySql.Message + "\",\"affected_rows\":" + count + "}";
}
return "{\"code\":200,\"msg\":\"success\",\"affected_rows\":" + count + "}";
}
return "{\"code\":19999,\"msg\":\"输入为空\"}";
}
public string WXGetTbBuyerOrderList(string inputData, bool isDetail = false)
{
if (!string.IsNullOrEmpty(inputData))
{
if (!WXUserManage.GetSign(inputData))
return "{\"code\":999,\"msg\":\"校验失败\"}";
var timeCalc = DateTime.Now;
var wx_order_id_in = RegexUtils.GetStringQuery(ref inputData, "wx_order_id_in")?.Replace("'", "\\'");
var buyer_order_sn_in = RegexUtils.GetStringQuery(ref inputData, "buyer_order_sn_in")?.Replace("'", "\\'");
if (wx_order_id_in.IsNullOrEmpty() && string.IsNullOrEmpty(buyer_order_sn_in))
{
return "{\"code\":500,\"msg\":\"未指定订单\"}";
}
var sort_type = RegexUtils.GetStringQuery(ref inputData, "sort_type")?.Replace("'", "\\'");
var is_not_count = RegexUtils.GetStringQuery(ref inputData, "is_not_count") != "false";
int page = RegexUtils.GetStringQuery(ref inputData, "page").ParseToInt();
int page_size = RegexUtils.GetStringQuery(ref inputData, "page_size").ParseToInt(500);
string conn = System.Configuration.ConfigurationManager.ConnectionStrings["ConnKJD"].ConnectionString;
MysqlUtils mySql = new MysqlUtils(conn);
string sql = "SELECT COUNT(id) FROM wxxd.order_tb_buyer_order o WHERE 1=1 ";
string where = "";
if (!string.IsNullOrWhiteSpace(wx_order_id_in))
where += " and o.wx_order_id in ('" + wx_order_id_in.Replace(",", "','") + "')";
if (!string.IsNullOrWhiteSpace(buyer_order_sn_in))
where += " and o.order_sn in ('" + buyer_order_sn_in.Replace(",", "','") + "')";
sql += where;
var count = 0;
if (!is_not_count)
count = mySql.ExecuteRowCount(sql);
DataTable dt;
if (count == 0 && !is_not_count)
{
dt = new DataTable();
}
else
{
sql = "SELECT o.* FROM" +
" wxxd.order_tb_buyer_order o " +
" WHERE 1=1";
//where子句
sql += where;
if (sort_type == "asc")
sql += " ORDER BY o.id ASC";
else
sql += " ORDER BY o.id DESC";
sql += " LIMIT " + Math.Max(page - 1, 0) * page_size + "," + page_size;
dt = mySql.ExecuteDataTable(sql);
}
mySql.Close();
if (dt != null)
{
try
{
List<order_tb_buyer_order> buyerOrderList = new List<order_tb_buyer_order>();
foreach (DataRow row in dt.Rows)
{
order_tb_buyer_order order = new order_tb_buyer_order
{
id = row["id"].ParseToLong(),
add_time = row["add_time"].ParseToString().ParseToDateTime(),
after_sales_status = row["after_sales_status"].ParseToNullableInt(),
buyerId = row["buyerId"].ParseToString(),
buyerName = row["buyerName"].ParseToString(),
mdy_time = row["mdy_time"].ParseToString().ParseToDateTime(),
order_amount = row["order_amount"].ParseToNullableInt(),
order_detail = row["order_detail"].ParseToString(),
order_sn = row["order_sn"].ParseToString(),
order_status_prompt = row["order_status_prompt"].ParseToString(),
order_time = row["order_time"].ParseToNullableLong(),
outExpressCompanyCode = row["outExpressCompanyCode"].ParseToString(),
pre_allocated_order_no = row["pre_allocated_order_no"].ParseToNullableInt(),
tracking_number = row["tracking_number"].ParseToString(),
TransitCreateTime = row["TransitCreateTime"].ParseToString().ParseToDateTime(),
wx_order_id = row["wx_order_id"].ParseToString(),
wx_sku_id = row["wx_sku_id"].ParseToString(),
wx_send_type = row["wx_send_type"].ParseToInt(),
sync_logistics_msg = row["sync_logistics_msg"].ParseToString(),
};
buyerOrderList.Add(order);
}
JsonSerializerSettings jsonSetting = new JsonSerializerSettings { NullValueHandling = NullValueHandling.Ignore };
var data = JsonUtils.SerializeObjectToString(buyerOrderList, jsonSetting);
var seconds = (DateTime.Now - timeCalc).TotalSeconds.ToString("0.000");
return "{\"code\":200,\"msg\":\"success\",\"data\":" + data + ",\"count\":" + count + ",\"seconds\":" + seconds + "}";
}
catch (Exception ex)
{
return "{\"code\":500,\"msg\":\"" + ex.Message + "\",\"data\":[],\"count\":" + 0 + "}";
}
}
else
{
return "{\"code\":500,\"msg\":\"" + mySql.Message + "\",\"data\":[],\"count\":" + 0 + "}";
}
}
return "{\"code\":19999,\"msg\":\"输入为空\"}";
}
public string WXAddMdyBuyerAfterSale(string inputData)
{
if (!string.IsNullOrEmpty(inputData))
{
if (!WXUserManage.GetSign(inputData))
return "{\"code\":999,\"msg\":\"校验失败\"}";
var timeCalc = DateTime.Now;
string wx_order_id = HtmlUtils.UrlDecodeUtf8(RegexUtils.GetStringQuery(ref inputData, "wx_order_id"))?.Replace("'", "\\'");
string wx_sku_id = HtmlUtils.UrlDecodeUtf8(RegexUtils.GetStringQuery(ref inputData, "wx_sku_id"))?.Replace("'", "\\'");
string wx_send_type = HtmlUtils.UrlDecodeUtf8(RegexUtils.GetStringQuery(ref inputData, "wx_send_type"))?.Replace("'", "\\'");
if (wx_send_type.IsNullOrEmpty())
wx_send_type = "0";
string TransitCreateTime = HtmlUtils.UrlDecodeUtf8(RegexUtils.GetStringQuery(ref inputData, "TransitCreateTime"))?.Replace("'", "\\'");
string pre_allocated_order_no = HtmlUtils.UrlDecodeUtf8(RegexUtils.GetStringQuery(ref inputData, "pre_allocated_order_no"))?.Replace("'", "\\'");
string buyerId = HtmlUtils.UrlDecodeUtf8(RegexUtils.GetStringQuery(ref inputData, "buyerId"))?.Replace("'", "\\'");
string buyerName = HtmlUtils.UrlDecodeUtf8(RegexUtils.GetStringQuery(ref inputData, "buyerName"))?.Replace("'", "\\'");
string orderSn = HtmlUtils.UrlDecodeUtf8(RegexUtils.GetStringQuery(ref inputData, "orderSn"))?.Replace("'", "\\'");
string afterSalesId = HtmlUtils.UrlDecodeUtf8(RegexUtils.GetStringQuery(ref inputData, "afterSalesId"))?.Replace("'", "\\'");
string orderAmount = HtmlUtils.UrlDecodeUtf8(RegexUtils.GetStringQuery(ref inputData, "orderAmount"))?.Replace("'", "\\'");
string orderDate = HtmlUtils.UrlDecodeUtf8(RegexUtils.GetStringQuery(ref inputData, "orderDate"))?.Replace("'", "\\'");
string order_detail = HtmlUtils.UrlDecodeUtf8(RegexUtils.GetStringQuery(ref inputData, "order_detail"))?.Replace("'", "\\'");
string refundAmount = HtmlUtils.UrlDecodeUtf8(RegexUtils.GetStringQuery(ref inputData, "refundAmount"))?.Replace("'", "\\'");
string statusText = HtmlUtils.UrlDecodeUtf8(RegexUtils.GetStringQuery(ref inputData, "statusText"))?.Replace("'", "\\'");
string afterSaleAddress = HtmlUtils.UrlDecodeUtf8(RegexUtils.GetStringQuery(ref inputData, "afterSaleAddress"))?.Replace("'", "\\'");
string is_mdy = HtmlUtils.UrlDecodeUtf8(RegexUtils.GetStringQuery(ref inputData, "is_mdy"))?.Replace("'", "\\'");
if (string.IsNullOrEmpty(wx_order_id) || string.IsNullOrEmpty(orderSn) || string.IsNullOrEmpty(afterSalesId))
return "{\"code\":500,\"msg\":\"订单ID不能为空\"}";
string conn = System.Configuration.ConfigurationManager.ConnectionStrings["ConnKJD"].ConnectionString;
MysqlUtils mySql = new MysqlUtils(conn);
string sql = "";
var count = -1;
sql = "select id from wxxd.order_pdd_buyer_after_sale where afterSalesId='" + afterSalesId + "'";
var id = mySql.ExecuteFirstInt(sql);
if (!string.IsNullOrEmpty(mySql.Message))
{
mySql.Close();
return "{\"code\":500,\"msg\":\"" + mySql.Message + "\"}";
}
if (id == 0 && is_mdy != "true")
{
sql = "INSERT INTO wxxd.order_pdd_buyer_after_sale (wx_order_id,wx_sku_id,wx_send_type,TransitCreateTime,pre_allocated_order_no,buyerId,buyerName,orderSn,afterSalesId,orderAmount,orderDate," +
"refundAmount,statusText,afterSaleAddress,order_detail)";
sql += "VALUES(@wx_order_id,@wx_sku_id,@wx_send_type,@TransitCreateTime,@pre_allocated_order_no,@buyerId,@buyerName,@orderSn,@afterSalesId,@orderAmount,@orderDate," +
"@refundAmount,@statusText,@afterSaleAddress,@order_detail);";
}
else
{
sql = "UPDATE wxxd.order_pdd_buyer_after_sale SET ";
if (!string.IsNullOrEmpty(wx_order_id))
sql += " wx_order_id=@wx_order_id,";
if (!string.IsNullOrEmpty(wx_sku_id))
sql += " wx_sku_id=@wx_sku_id,";
if (!string.IsNullOrEmpty(wx_send_type))
sql += " wx_send_type=@wx_send_type,";
if (!string.IsNullOrEmpty(TransitCreateTime))
sql += " TransitCreateTime=@TransitCreateTime,";
if (!string.IsNullOrEmpty(pre_allocated_order_no))
sql += " pre_allocated_order_no=@pre_allocated_order_no,";
if (!string.IsNullOrEmpty(buyerId))
sql += " buyerId=@buyerId,";
if (!string.IsNullOrEmpty(buyerName))
sql += " buyerName=@buyerName,";
if (!string.IsNullOrEmpty(orderSn))
sql += " orderSn=@orderSn,";
if (!string.IsNullOrEmpty(orderAmount))
sql += " orderAmount=@orderAmount,";
if (!string.IsNullOrEmpty(refundAmount))
sql += " refundAmount=@refundAmount,";
if (!string.IsNullOrEmpty(statusText))
sql += " statusText=@statusText,";
if (!string.IsNullOrEmpty(orderDate))
sql += " orderDate=@orderDate,";
if (!string.IsNullOrEmpty(afterSaleAddress))
sql += " afterSaleAddress=@afterSaleAddress,";
if (!string.IsNullOrEmpty(order_detail))
sql += " order_detail=@order_detail,";
sql = sql.TrimEnd(',');
sql += " where afterSalesId=@afterSalesId";
}
List<MySqlParameter> paramLst = new List<MySqlParameter>();
paramLst.Add(new MySqlParameter() { DbType = DbType.String, ParameterName = "wx_order_id", Value = wx_order_id, });
paramLst.Add(new MySqlParameter() { DbType = DbType.String, ParameterName = "wx_sku_id", Value = wx_sku_id, });
paramLst.Add(new MySqlParameter() { DbType = DbType.Int32, ParameterName = "wx_send_type", Value = wx_send_type.ParseToInt(), });
paramLst.Add(new MySqlParameter() { DbType = DbType.DateTime, ParameterName = "TransitCreateTime", Value = TransitCreateTime.ParseToDateTime(), });
paramLst.Add(new MySqlParameter() { DbType = DbType.Int32, ParameterName = "pre_allocated_order_no", Value = pre_allocated_order_no.ParseToInt(), });
paramLst.Add(new MySqlParameter() { DbType = DbType.String, ParameterName = "buyerId", Value = buyerId, });
paramLst.Add(new MySqlParameter() { DbType = DbType.String, ParameterName = "buyerName", Value = buyerName, });
paramLst.Add(new MySqlParameter() { DbType = DbType.String, ParameterName = "statusText", Value = statusText, });
paramLst.Add(new MySqlParameter() { DbType = DbType.String, ParameterName = "orderSn", Value = orderSn, });
paramLst.Add(new MySqlParameter() { DbType = DbType.String, ParameterName = "afterSalesId", Value = afterSalesId, });
paramLst.Add(new MySqlParameter() { DbType = DbType.Int32, ParameterName = "refundAmount", Value = refundAmount.ParseToNullableInt(), });
paramLst.Add(new MySqlParameter() { DbType = DbType.Int32, ParameterName = "orderAmount", Value = orderAmount.ParseToNullableInt(), });
paramLst.Add(new MySqlParameter() { DbType = DbType.Int64, ParameterName = "orderDate", Value = orderDate.ParseToLong(), });
paramLst.Add(new MySqlParameter() { DbType = DbType.String, ParameterName = "afterSaleAddress", Value = afterSaleAddress, });
paramLst.Add(new MySqlParameter() { DbType = DbType.String, ParameterName = "order_detail", Value = order_detail, });
count = mySql.ExecuteAffectedRows(sql, paramLst.ToArray());
mySql.Close();
if (!string.IsNullOrEmpty(mySql.Message))
{
return "{\"code\":500,\"msg\":\"" + mySql.Message + "\",\"affected_rows\":" + count + "}";
}
return "{\"code\":200,\"msg\":\"success\",\"affected_rows\":" + count + "}";
}
return "{\"code\":19999,\"msg\":\"输入为空\"}";
}
public string WXGetBuyerAfterSaleList(string inputData, bool isDetail = false)
{
if (!string.IsNullOrEmpty(inputData))
{
if (!WXUserManage.GetSign(inputData))
return "{\"code\":999,\"msg\":\"校验失败\"}";
var timeCalc = DateTime.Now;
var wx_order_id_in = RegexUtils.GetStringQuery(ref inputData, "wx_order_id_in")?.Replace("'", "\\'");
var buyer_order_sn_in = RegexUtils.GetStringQuery(ref inputData, "buyer_order_sn_in")?.Replace("'", "\\'");
if (wx_order_id_in.IsNullOrEmpty() && string.IsNullOrEmpty(buyer_order_sn_in))
{
return "{\"code\":500,\"msg\":\"未指定订单\"}";
}
var sort_type = RegexUtils.GetStringQuery(ref inputData, "sort_type")?.Replace("'", "\\'");
var is_not_count = RegexUtils.GetStringQuery(ref inputData, "is_not_count") != "false";
int page = RegexUtils.GetStringQuery(ref inputData, "page").ParseToInt();
int page_size = RegexUtils.GetStringQuery(ref inputData, "page_size").ParseToInt(500);
string conn = System.Configuration.ConfigurationManager.ConnectionStrings["ConnKJD"].ConnectionString;
MysqlUtils mySql = new MysqlUtils(conn);
string sql = "SELECT COUNT(id) FROM wxxd.order_pdd_buyer_after_sale o WHERE 1=1 ";
string where = "";
if (!string.IsNullOrWhiteSpace(wx_order_id_in))
where += " and o.wx_order_id in ('" + wx_order_id_in.Replace(",", "','") + "')";
if (!string.IsNullOrWhiteSpace(buyer_order_sn_in))
where += " and o.order_sn in ('" + buyer_order_sn_in.Replace(",", "','") + "')";
sql += where;
var count = 0;
if (!is_not_count)
count = mySql.ExecuteRowCount(sql);
DataTable dt;
if (count == 0 && !is_not_count)
{
dt = new DataTable();
}
else
{
sql = "SELECT o.* FROM" +
" wxxd.order_pdd_buyer_after_sale o " +
" WHERE 1=1";
//where子句
sql += where;
if (sort_type == "asc")
sql += " ORDER BY o.id ASC";
else
sql += " ORDER BY o.id DESC";
sql += " LIMIT " + Math.Max(page - 1, 0) * page_size + "," + page_size;
dt = mySql.ExecuteDataTable(sql);
}
mySql.Close();
if (dt != null)
{
try
{
List<order_pdd_buyer_after_sale> buyerAfterSaleLst = new List<order_pdd_buyer_after_sale>();
foreach (DataRow row in dt.Rows)
{
order_pdd_buyer_after_sale afterSale = new order_pdd_buyer_after_sale
{
id = row["id"].ParseToLong(),
add_time = row["add_time"].ParseToString().ParseToDateTime(),
afterSalesId = row["afterSalesId"].ParseToString(),
buyerId = row["buyerId"].ParseToString(),
buyerName = row["buyerName"].ParseToString(),
mdy_time = row["mdy_time"].ParseToString().ParseToDateTime(),
orderAmount = row["orderAmount"].ParseToNullableInt(),
order_detail = row["order_detail"].ParseToString(),
orderSn = row["orderSn"].ParseToString(),
orderDate = row["orderDate"].ParseToNullableInt(),
refundAmount = row["refundAmount"].ParseToNullableInt(),
statusText = row["statusText"].ParseToString(),
afterSaleAddress = row["afterSaleAddress"].ParseToString(),
pre_allocated_order_no = row["pre_allocated_order_no"].ParseToNullableInt(),
TransitCreateTime = row["TransitCreateTime"].ParseToString().ParseToDateTime(),
wx_order_id = row["wx_order_id"].ParseToString(),
wx_sku_id = row["wx_sku_id"].ParseToString(),
wx_send_type = row["wx_send_type"].ParseToInt(),
};
buyerAfterSaleLst.Add(afterSale);
}
JsonSerializerSettings jsonSetting = new JsonSerializerSettings { NullValueHandling = NullValueHandling.Ignore };
var data = JsonUtils.SerializeObjectToString(buyerAfterSaleLst, jsonSetting);
var seconds = (DateTime.Now - timeCalc).TotalSeconds.ToString("0.000");
return "{\"code\":200,\"msg\":\"success\",\"data\":" + data + ",\"count\":" + count + ",\"seconds\":" + seconds + "}";
}
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 WXAddMdyTbBuyerAfterSale(string inputData)
{
if (!string.IsNullOrEmpty(inputData))
{
if (!WXUserManage.GetSign(inputData))
return "{\"code\":999,\"msg\":\"校验失败\"}";
var timeCalc = DateTime.Now;
string wx_order_id = HtmlUtils.UrlDecodeUtf8(RegexUtils.GetStringQuery(ref inputData, "wx_order_id"))?.Replace("'", "\\'");
string wx_sku_id = HtmlUtils.UrlDecodeUtf8(RegexUtils.GetStringQuery(ref inputData, "wx_sku_id"))?.Replace("'", "\\'");
string wx_send_type = HtmlUtils.UrlDecodeUtf8(RegexUtils.GetStringQuery(ref inputData, "wx_send_type"))?.Replace("'", "\\'");
if (wx_send_type.IsNullOrEmpty())
wx_send_type = "0";
string TransitCreateTime = HtmlUtils.UrlDecodeUtf8(RegexUtils.GetStringQuery(ref inputData, "TransitCreateTime"))?.Replace("'", "\\'");
string pre_allocated_order_no = HtmlUtils.UrlDecodeUtf8(RegexUtils.GetStringQuery(ref inputData, "pre_allocated_order_no"))?.Replace("'", "\\'");
string buyerId = HtmlUtils.UrlDecodeUtf8(RegexUtils.GetStringQuery(ref inputData, "buyerId"))?.Replace("'", "\\'");
string buyerName = HtmlUtils.UrlDecodeUtf8(RegexUtils.GetStringQuery(ref inputData, "buyerName"))?.Replace("'", "\\'");
string orderSn = HtmlUtils.UrlDecodeUtf8(RegexUtils.GetStringQuery(ref inputData, "orderSn"))?.Replace("'", "\\'");
string afterSalesId = HtmlUtils.UrlDecodeUtf8(RegexUtils.GetStringQuery(ref inputData, "afterSalesId"))?.Replace("'", "\\'");
string orderAmount = HtmlUtils.UrlDecodeUtf8(RegexUtils.GetStringQuery(ref inputData, "orderAmount"))?.Replace("'", "\\'");
string orderDate = HtmlUtils.UrlDecodeUtf8(RegexUtils.GetStringQuery(ref inputData, "orderDate"))?.Replace("'", "\\'");
string order_detail = HtmlUtils.UrlDecodeUtf8(RegexUtils.GetStringQuery(ref inputData, "order_detail"))?.Replace("'", "\\'");
string refundAmount = HtmlUtils.UrlDecodeUtf8(RegexUtils.GetStringQuery(ref inputData, "refundAmount"))?.Replace("'", "\\'");
string statusText = HtmlUtils.UrlDecodeUtf8(RegexUtils.GetStringQuery(ref inputData, "statusText"))?.Replace("'", "\\'");
string afterSaleAddress = HtmlUtils.UrlDecodeUtf8(RegexUtils.GetStringQuery(ref inputData, "afterSaleAddress"))?.Replace("'", "\\'");
string is_mdy = HtmlUtils.UrlDecodeUtf8(RegexUtils.GetStringQuery(ref inputData, "is_mdy"))?.Replace("'", "\\'");
if (string.IsNullOrEmpty(wx_order_id) || string.IsNullOrEmpty(orderSn) || string.IsNullOrEmpty(afterSalesId))
return "{\"code\":500,\"msg\":\"订单ID不能为空\"}";
string conn = System.Configuration.ConfigurationManager.ConnectionStrings["ConnKJD"].ConnectionString;
MysqlUtils mySql = new MysqlUtils(conn);
string sql = "";
var count = -1;
sql = "select id from wxxd.order_tb_buyer_after_sale where afterSalesId='" + afterSalesId + "'";
var id = mySql.ExecuteFirstInt(sql);
if (!string.IsNullOrEmpty(mySql.Message))
{
mySql.Close();
return "{\"code\":500,\"msg\":\"" + mySql.Message + "\"}";
}
if (id == 0 && is_mdy != "true")
{
sql = "INSERT INTO wxxd.order_tb_buyer_after_sale (wx_order_id,wx_sku_id,wx_send_type,TransitCreateTime,pre_allocated_order_no,buyerId,buyerName,orderSn,afterSalesId,orderAmount,orderDate," +
"refundAmount,statusText,afterSaleAddress,order_detail)";
sql += "VALUES(@wx_order_id,@wx_sku_id,@wx_send_type,@TransitCreateTime,@pre_allocated_order_no,@buyerId,@buyerName,@orderSn,@afterSalesId,@orderAmount,@orderDate," +
"@refundAmount,@statusText,@afterSaleAddress,@order_detail);";
}
else
{
sql = "UPDATE wxxd.order_tb_buyer_after_sale SET ";
if (!string.IsNullOrEmpty(wx_order_id))
sql += " wx_order_id=@wx_order_id,";
if (!string.IsNullOrEmpty(wx_sku_id))
sql += " wx_sku_id=@wx_sku_id,";
if (!string.IsNullOrEmpty(wx_send_type))
sql += " wx_send_type=@wx_send_type,";
if (!string.IsNullOrEmpty(TransitCreateTime))
sql += " TransitCreateTime=@TransitCreateTime,";
if (!string.IsNullOrEmpty(pre_allocated_order_no))
sql += " pre_allocated_order_no=@pre_allocated_order_no,";
if (!string.IsNullOrEmpty(buyerId))
sql += " buyerId=@buyerId,";
if (!string.IsNullOrEmpty(buyerName))
sql += " buyerName=@buyerName,";
if (!string.IsNullOrEmpty(orderSn))
sql += " orderSn=@orderSn,";
if (!string.IsNullOrEmpty(orderAmount))
sql += " orderAmount=@orderAmount,";
if (!string.IsNullOrEmpty(refundAmount))
sql += " refundAmount=@refundAmount,";
if (!string.IsNullOrEmpty(statusText))
sql += " statusText=@statusText,";
if (!string.IsNullOrEmpty(orderDate))
sql += " orderDate=@orderDate,";
if (!string.IsNullOrEmpty(afterSaleAddress))
sql += " afterSaleAddress=@afterSaleAddress,";
if (!string.IsNullOrEmpty(order_detail))
sql += " order_detail=@order_detail,";
sql = sql.TrimEnd(',');
sql += " where afterSalesId=@afterSalesId";
}
List<MySqlParameter> paramLst = new List<MySqlParameter>();
paramLst.Add(new MySqlParameter() { DbType = DbType.String, ParameterName = "wx_order_id", Value = wx_order_id, });
paramLst.Add(new MySqlParameter() { DbType = DbType.String, ParameterName = "wx_sku_id", Value = wx_sku_id, });
paramLst.Add(new MySqlParameter() { DbType = DbType.Int32, ParameterName = "wx_send_type", Value = wx_send_type.ParseToInt(), });
paramLst.Add(new MySqlParameter() { DbType = DbType.DateTime, ParameterName = "TransitCreateTime", Value = TransitCreateTime.ParseToDateTime(), });
paramLst.Add(new MySqlParameter() { DbType = DbType.Int32, ParameterName = "pre_allocated_order_no", Value = pre_allocated_order_no.ParseToInt(), });
paramLst.Add(new MySqlParameter() { DbType = DbType.String, ParameterName = "buyerId", Value = buyerId, });
paramLst.Add(new MySqlParameter() { DbType = DbType.String, ParameterName = "buyerName", Value = buyerName, });
paramLst.Add(new MySqlParameter() { DbType = DbType.String, ParameterName = "statusText", Value = statusText, });
paramLst.Add(new MySqlParameter() { DbType = DbType.String, ParameterName = "orderSn", Value = orderSn, });
paramLst.Add(new MySqlParameter() { DbType = DbType.String, ParameterName = "afterSalesId", Value = afterSalesId, });
paramLst.Add(new MySqlParameter() { DbType = DbType.Int32, ParameterName = "refundAmount", Value = refundAmount.ParseToNullableInt(), });
paramLst.Add(new MySqlParameter() { DbType = DbType.Int32, ParameterName = "orderAmount", Value = orderAmount.ParseToNullableInt(), });
paramLst.Add(new MySqlParameter() { DbType = DbType.Int64, ParameterName = "orderDate", Value = orderDate.ParseToLong(), });
paramLst.Add(new MySqlParameter() { DbType = DbType.String, ParameterName = "afterSaleAddress", Value = afterSaleAddress, });
paramLst.Add(new MySqlParameter() { DbType = DbType.String, ParameterName = "order_detail", Value = order_detail, });
count = mySql.ExecuteAffectedRows(sql, paramLst.ToArray());
mySql.Close();
if (!string.IsNullOrEmpty(mySql.Message))
{
return "{\"code\":500,\"msg\":\"" + mySql.Message + "\",\"affected_rows\":" + count + "}";
}
return "{\"code\":200,\"msg\":\"success\",\"affected_rows\":" + count + "}";
}
return "{\"code\":19999,\"msg\":\"输入为空\"}";
}
public string WXGetTbBuyerAfterSaleList(string inputData, bool isDetail = false)
{
if (!string.IsNullOrEmpty(inputData))
{
if (!WXUserManage.GetSign(inputData))
return "{\"code\":999,\"msg\":\"校验失败\"}";
var timeCalc = DateTime.Now;
var wx_order_id_in = RegexUtils.GetStringQuery(ref inputData, "wx_order_id_in")?.Replace("'", "\\'");
var buyer_order_sn_in = RegexUtils.GetStringQuery(ref inputData, "buyer_order_sn_in")?.Replace("'", "\\'");
if (wx_order_id_in.IsNullOrEmpty() && string.IsNullOrEmpty(buyer_order_sn_in))
{
return "{\"code\":500,\"msg\":\"未指定订单\"}";
}
var sort_type = RegexUtils.GetStringQuery(ref inputData, "sort_type")?.Replace("'", "\\'");
var is_not_count = RegexUtils.GetStringQuery(ref inputData, "is_not_count") != "false";
int page = RegexUtils.GetStringQuery(ref inputData, "page").ParseToInt();
int page_size = RegexUtils.GetStringQuery(ref inputData, "page_size").ParseToInt(500);
string conn = System.Configuration.ConfigurationManager.ConnectionStrings["ConnKJD"].ConnectionString;
MysqlUtils mySql = new MysqlUtils(conn);
string sql = "SELECT COUNT(id) FROM wxxd.order_tb_buyer_after_sale o WHERE 1=1 ";
string where = "";
if (!string.IsNullOrWhiteSpace(wx_order_id_in))
where += " and o.wx_order_id in ('" + wx_order_id_in.Replace(",", "','") + "')";
if (!string.IsNullOrWhiteSpace(buyer_order_sn_in))
where += " and o.order_sn in ('" + buyer_order_sn_in.Replace(",", "','") + "')";
sql += where;
var count = 0;
if (!is_not_count)
count = mySql.ExecuteRowCount(sql);
DataTable dt;
if (count == 0 && !is_not_count)
{
dt = new DataTable();
}
else
{
sql = "SELECT o.* FROM" +
" wxxd.order_tb_buyer_after_sale o " +
" WHERE 1=1";
//where子句
sql += where;
if (sort_type == "asc")
sql += " ORDER BY o.id ASC";
else
sql += " ORDER BY o.id DESC";
sql += " LIMIT " + Math.Max(page - 1, 0) * page_size + "," + page_size;
dt = mySql.ExecuteDataTable(sql);
}
mySql.Close();
if (dt != null)
{
try
{
List<order_tb_buyer_after_sale> buyerAfterSaleLst = new List<order_tb_buyer_after_sale>();
foreach (DataRow row in dt.Rows)
{
order_tb_buyer_after_sale afterSale = new order_tb_buyer_after_sale
{
id = row["id"].ParseToLong(),
add_time = row["add_time"].ParseToString().ParseToDateTime(),
afterSalesId = row["afterSalesId"].ParseToString(),
buyerId = row["buyerId"].ParseToString(),
buyerName = row["buyerName"].ParseToString(),
mdy_time = row["mdy_time"].ParseToString().ParseToDateTime(),
orderAmount = row["orderAmount"].ParseToNullableInt(),
order_detail = row["order_detail"].ParseToString(),
orderSn = row["orderSn"].ParseToString(),
orderDate = row["orderDate"].ParseToNullableInt(),
refundAmount = row["refundAmount"].ParseToNullableInt(),
statusText = row["statusText"].ParseToString(),
afterSaleAddress = row["afterSaleAddress"].ParseToString(),
pre_allocated_order_no = row["pre_allocated_order_no"].ParseToNullableInt(),
TransitCreateTime = row["TransitCreateTime"].ParseToString().ParseToDateTime(),
wx_order_id = row["wx_order_id"].ParseToString(),
wx_sku_id = row["wx_sku_id"].ParseToString(),
wx_send_type = row["wx_send_type"].ParseToInt(),
};
buyerAfterSaleLst.Add(afterSale);
}
JsonSerializerSettings jsonSetting = new JsonSerializerSettings { NullValueHandling = NullValueHandling.Ignore };
var data = JsonUtils.SerializeObjectToString(buyerAfterSaleLst, jsonSetting);
var seconds = (DateTime.Now - timeCalc).TotalSeconds.ToString("0.000");
return "{\"code\":200,\"msg\":\"success\",\"data\":" + data + ",\"count\":" + count + ",\"seconds\":" + seconds + "}";
}
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 WXGetTransitWarehouseAfterSaleList(string inputData)
{
if (!string.IsNullOrEmpty(inputData))
{
if (!WXUserManage.GetSign(inputData))
return "{\"code\":999,\"msg\":\"校验失败\"}";
var timeCalc = DateTime.Now;
var wx_order_id_in = RegexUtils.GetStringQuery(ref inputData, "wx_order_id_in")?.Replace("'", "\\'");
var buyer_order_sn_in = RegexUtils.GetStringQuery(ref inputData, "buyer_order_sn_in")?.Replace("'", "\\'");
if (wx_order_id_in.IsNullOrEmpty() && string.IsNullOrEmpty(buyer_order_sn_in))
{
return "{\"code\":500,\"msg\":\"未指定订单\"}";
}
var sort_type = RegexUtils.GetStringQuery(ref inputData, "sort_type")?.Replace("'", "\\'");
var is_not_count = RegexUtils.GetStringQuery(ref inputData, "is_not_count") != "false";
int page = RegexUtils.GetStringQuery(ref inputData, "page").ParseToInt();
int page_size = RegexUtils.GetStringQuery(ref inputData, "page_size").ParseToInt(1000);
string conn = System.Configuration.ConfigurationManager.ConnectionStrings["ConnKJD"].ConnectionString;
MysqlUtils mySql = new MysqlUtils(conn);
string sql = "SELECT COUNT(id) FROM erp.oms_wei_external_procurement_after_sale o WHERE 1=1 ";
string where = "";
if (!string.IsNullOrWhiteSpace(wx_order_id_in))
where += " and o.order_no in ('" + wx_order_id_in.Replace(",", "','") + "')";
if (!string.IsNullOrWhiteSpace(buyer_order_sn_in))
where += " and o.order_code in ('" + buyer_order_sn_in.Replace(",", "','") + "')";
sql += where;
var count = 0;
if (!is_not_count)
count = mySql.ExecuteRowCount(sql);
DataTable dt;
if (count == 0 && !is_not_count)
{
dt = new DataTable();
}
else
{
sql = "SELECT o.* FROM" +
" erp.oms_wei_external_procurement_after_sale o " +
" WHERE 1=1";
//where子句
sql += where;
if (sort_type == "asc")
sql += " ORDER BY o.id ASC";
else
sql += " ORDER BY o.id DESC";
sql += " LIMIT " + Math.Max(page - 1, 0) * page_size + "," + page_size;
dt = mySql.ExecuteDataTable(sql);
}
mySql.Close();
if (dt != null)
{
try
{
List<oms_wei_external_procurement_after_sale_info> refundItemList = new List<oms_wei_external_procurement_after_sale_info>();
foreach (DataRow row in dt.Rows)
{
oms_wei_external_procurement_after_sale_info order = new oms_wei_external_procurement_after_sale_info
{
id = row["id"].ParseToLong(),
order_no = row["order_no"].ParseToString(),
order_code = row["order_code"].ParseToString(),
inbound_time = row["inbound_time"].ParseToNullableString().ParseToDateTimeNullable(),
outbound_time = row["outbound_time"].ParseToNullableString().ParseToDateTimeNullable(),
account_user = row["account_user"].ParseToString(),
after_sale_no = row["after_sale_no"].ParseToString(),
created_time = row["created_time"].ParseToNullableString().ParseToDateTimeNullable(),
create_user = row["create_user"].ParseToString(),
downstream_express_code = row["downstream_express_code"].ParseToString(),
downstream_waybill = row["downstream_waybill"].ParseToString(),
external_order_no = row["external_order_no"].ParseToString(),
raw_message = row["raw_message"].ParseToString(),
recipient_name = row["recipient_name"].ParseToString(),
recipient_phone = row["recipient_phone"].ParseToString(),
refund_city = row["refund_city"].ParseToString(),
refund_county = row["refund_county"].ParseToString(),
refund_detail_address = row["refund_detail_address"].ParseToString(),
refund_province = row["refund_province"].ParseToString(),
refund_waybill = row["refund_waybill"].ParseToString(),
return_express_company = row["return_express_company"].ParseToString(),
return_or_exchange = row["return_or_exchange"].ParseToNullableInt(),
status = row["status"].ParseToNullableInt(),
updated_time = row["updated_time"].ParseToNullableString().ParseToDateTimeNullable(),
update_user = row["update_user"].ParseToString(),
warehouse_status = row["warehouse_status"].ParseToNullableInt(),
postage = row["postage"].ParseToNullableInt(),
location_code = row["location_code"].ParseToNullableString(),
location_write_time = row["location_write_time"].ParseToNullableString().ParseToDateTimeNullable(),
pack_type = row["pack_type"].ParseToNullableInt(),
order_void_status = row["order_void_status"].ParseToNullableInt(),
};
if(order.order_no == "3739776364860294912")
{
}
refundItemList.Add(order);
}
JsonSerializerSettings jsonSetting = new JsonSerializerSettings { NullValueHandling = NullValueHandling.Ignore };
var data = JsonUtils.SerializeObjectToString(refundItemList, 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 WXUpdateAbnormalTransitOrder(string inputData)
{
if (!string.IsNullOrEmpty(inputData))
{
if (!WXUserManage.GetSign(inputData))
return "{\"code\":999,\"msg\":\"校验失败\"}";
var out_order_no = HtmlUtils.UrlDecodeUtf8(RegexUtils.GetStringQuery(ref inputData, "out_order_no"))?.Replace("'", "\\'");
var order_no = HtmlUtils.UrlDecodeUtf8(RegexUtils.GetStringQuery(ref inputData, "order_no"))?.Replace("'", "\\'");
var order_sku_id = HtmlUtils.UrlDecodeUtf8(RegexUtils.GetStringQuery(ref inputData, "order_sku_id"))?.Replace("'", "\\'");
var buyer_account = HtmlUtils.UrlDecodeUtf8(RegexUtils.GetStringQuery(ref inputData, "buyer_account"))?.Replace("'", "\\'");
var out_amount = HtmlUtils.UrlDecodeUtf8(RegexUtils.GetStringQuery(ref inputData, "out_amount"))?.Replace("'", "\\'");
var purchaser_note = HtmlUtils.UrlDecodeUtf8(RegexUtils.GetStringQuery(ref inputData, "purchaser_note"))?.Replace("'", "\\'");
var refund_status = HtmlUtils.UrlDecodeUtf8(RegexUtils.GetStringQuery(ref inputData, "refund_status"))?.Replace("'", "\\'");
var old_out_order_no = HtmlUtils.UrlDecodeUtf8(RegexUtils.GetStringQuery(ref inputData, "old_out_order_no"))?.Replace("'", "\\'");
var old_order_no = HtmlUtils.UrlDecodeUtf8(RegexUtils.GetStringQuery(ref inputData, "old_order_no"))?.Replace("'", "\\'");
var old_order_sku_id = HtmlUtils.UrlDecodeUtf8(RegexUtils.GetStringQuery(ref inputData, "old_order_sku_id"))?.Replace("'", "\\'");
var old_buyer_account = HtmlUtils.UrlDecodeUtf8(RegexUtils.GetStringQuery(ref inputData, "old_buyer_account"))?.Replace("'", "\\'");
var old_out_amount = HtmlUtils.UrlDecodeUtf8(RegexUtils.GetStringQuery(ref inputData, "old_out_amount"))?.Replace("'", "\\'");
var old_purchaser_note = HtmlUtils.UrlDecodeUtf8(RegexUtils.GetStringQuery(ref inputData, "old_purchaser_note"))?.Replace("'", "\\'");
var old_refund_status = HtmlUtils.UrlDecodeUtf8(RegexUtils.GetStringQuery(ref inputData, "old_refund_status"))?.Replace("'", "\\'");
var order_code = HtmlUtils.UrlDecodeUtf8(RegexUtils.GetStringQuery(ref inputData, "order_code"))?.Replace("'", "\\'");
if (order_code.IsNullOrEmpty() || old_purchaser_note.IsNullOrEmpty() || old_out_amount.ParseToInt().IsNullOrZero() || old_buyer_account.IsNullOrEmpty() || old_order_no.IsNullOrEmpty() || old_out_order_no.IsNullOrEmpty() ||
purchaser_note.IsNullOrEmpty() || out_amount.ParseToInt().IsNullOrZero() || buyer_account.IsNullOrEmpty() || order_no.IsNullOrEmpty() || out_order_no.IsNullOrEmpty())
{
return "{\"code\":500,\"msg\":\"异常单记录信息不完整\",\"affected_rows\":" + 0 + "}";
}
string conn = System.Configuration.ConfigurationManager.ConnectionStrings["ConnKJD"].ConnectionString;
MysqlUtils mySql = new MysqlUtils(conn, true);
string sql;
sql = "INSERT INTO wxxd.order_abnormal_transit_order_rebuy_record (out_order_no,order_no,order_sku_id,buyer_account,out_amount,purchaser_note,refund_status,order_code) ";
sql += " VALUES('" + old_out_order_no + "','" + old_order_no + "','" + old_order_sku_id + "','" + old_buyer_account + "'," + old_out_amount + ",'" +
old_purchaser_note + "','" + old_refund_status + "','" + order_code + "')";
var rows = mySql.ExecuteAffectedRows(sql);
if (!mySql.Message.IsNullOrEmpty())
{
mySql.RollBack();
mySql.Close();
return "{\"code\":500,\"msg\":\"" + mySql.Message + "\",\"affected_rows\":" + rows + "}";
}
if (rows == 0)
{
mySql.RollBack();
mySql.Close();
return "{\"code\":500,\"msg\":\"创建异常单重拍记录失败\",\"affected_rows\":" + rows + "}";
}
sql = "UPDATE erp.oms_wei_external_procurement_log SET ";
sql += " out_order_no='" + out_order_no + "',";
sql += " order_no='" + order_no + "',";
sql += " order_sku_id='" + order_sku_id + "',";
sql += " buyer_account='" + buyer_account + "',";
sql += " out_amount=" + out_amount + ",";
sql += " purchaser_note='" + purchaser_note + "',";
sql += " refund_status='" + refund_status + "',";
sql = sql.TrimEnd(',');
sql += " WHERE order_code='" + order_code + "' AND order_no='" + old_order_no + "';";
rows = mySql.ExecuteAffectedRows(sql);
if (!mySql.Message.IsNullOrEmpty())
{
mySql.RollBack();
mySql.Close();
return "{\"code\":500,\"msg\":\"" + mySql.Message + "\",\"affected_rows\":" + rows + "}";
}
if (rows == 0)
{
mySql.RollBack();
mySql.Close();
return "{\"code\":500,\"msg\":\"更新异常单拍单失败\",\"affected_rows\":" + rows + "}";
}
mySql.Commit();
mySql.Close();
return "{\"code\":200,\"msg\":\"success\",\"affected_rows\":" + rows + "}";
}
return "{\"code\":19999,\"msg\":\"输入为空\"}";
}
/// <summary>
/// 订单拒收状态维护
/// </summary>
/// <param name="inputData"></param>
/// <returns></returns>
public string WXUpdateTransitOrderRejectStatus(string inputData)
{
if (!string.IsNullOrEmpty(inputData))
{
if (!WXUserManage.GetSign(inputData))
return "{\"code\":999,\"msg\":\"校验失败\"}";
var order_no = HtmlUtils.UrlDecodeUtf8(RegexUtils.GetStringQuery(ref inputData, "order_no"))?.Replace("'", "\\'");
var order_sku_id = HtmlUtils.UrlDecodeUtf8(RegexUtils.GetStringQuery(ref inputData, "order_sku_id"))?.Replace("'", "\\'");
var order_code = HtmlUtils.UrlDecodeUtf8(RegexUtils.GetStringQuery(ref inputData, "order_code"))?.Replace("'", "\\'");
var has_reject = HtmlUtils.UrlDecodeUtf8(RegexUtils.GetStringQuery(ref inputData, "has_reject"))?.Replace("'", "\\'");
if (order_code.IsNullOrEmpty() && (order_no.IsNullOrEmpty() || order_sku_id.IsNullOrEmpty()))
{
return "{\"code\":500,\"msg\":\"拒收信息不完整\",\"affected_rows\":" + 0 + "}";
}
string conn = System.Configuration.ConfigurationManager.ConnectionStrings["ConnKJD"].ConnectionString;
MysqlUtils mySql = new MysqlUtils(conn, true);
string sql;
sql = "UPDATE erp.oms_wei_external_procurement_log SET ";
sql += " has_reject=" + has_reject + ",";
sql = sql.TrimEnd(',');
if (!order_code.IsNullOrEmpty())
sql += " WHERE order_code='" + order_code + "' AND order_no='" + order_code + "';";
else
sql += " WHERE order_no='" + order_no + "' AND order_sku_id='" + order_sku_id + "';";
var rows = mySql.ExecuteAffectedRows(sql);
if (!mySql.Message.IsNullOrEmpty())
{
mySql.RollBack();
mySql.Close();
return "{\"code\":500,\"msg\":\"" + mySql.Message + "\",\"affected_rows\":" + rows + "}";
}
if (rows == 0)
{
mySql.RollBack();
mySql.Close();
return "{\"code\":500,\"msg\":\"更新拒收状态失败,未找到记录\",\"affected_rows\":" + rows + "}";
}
mySql.Commit();
mySql.Close();
return "{\"code\":200,\"msg\":\"success\",\"affected_rows\":" + rows + "}";
}
return "{\"code\":19999,\"msg\":\"输入为空\"}";
}
public string WXAddOrderItemExtInfo(string inputData)
{
if (!string.IsNullOrEmpty(inputData))
{
if (!WXUserManage.GetSign(inputData))
return "{\"code\":999,\"msg\":\"校验失败\"}";
var timeCalc = DateTime.Now;
string order_id = HtmlUtils.UrlDecodeUtf8(RegexUtils.GetStringQuery(ref inputData, "wx_order_id"))?.Replace("'", "\\'");
string sku_id = HtmlUtils.UrlDecodeUtf8(RegexUtils.GetStringQuery(ref inputData, "wx_sku_id"))?.Replace("'", "\\'");
string out_order_id = HtmlUtils.UrlDecodeUtf8(RegexUtils.GetStringQuery(ref inputData, "out_order_id"))?.Replace("'", "\\'");
string shop_app_id = HtmlUtils.UrlDecodeUtf8(RegexUtils.GetStringQuery(ref inputData, "shop_app_id"))?.Replace("'", "\\'");
string shop_name = HtmlUtils.UrlDecodeUtf8(RegexUtils.GetStringQuery(ref inputData, "shop_name"))?.Replace("'", "\\'");
string buy_type = HtmlUtils.UrlDecodeUtf8(RegexUtils.GetStringQuery(ref inputData, "buy_type"))?.Replace("'", "\\'");
string abnormal_text = HtmlUtils.UrlDecodeUtf8(RegexUtils.GetStringQuery(ref inputData, "abnormal_text"))?.Replace("'", "\\'");
string flag = HtmlUtils.UrlDecodeUtf8(RegexUtils.GetStringQuery(ref inputData, "flag"))?.Replace("'", "\\'");
string label = HtmlUtils.UrlDecodeUtf8(RegexUtils.GetStringQuery(ref inputData, "label"))?.Replace("'", "\\'");
string remark = HtmlUtils.UrlDecodeUtf8(RegexUtils.GetStringQuery(ref inputData, "remark"))?.Replace("'", "\\'");
string after_sale_user_delivery_address = HtmlUtils.UrlDecodeUtf8(RegexUtils.GetStringQuery(ref inputData, "after_sale_user_delivery_address"))?.Replace("'", "\\'");
if (string.IsNullOrEmpty(order_id) || string.IsNullOrEmpty(sku_id))
return "{\"code\":500,\"msg\":\"订单ID不能为空\"}";
string conn = System.Configuration.ConfigurationManager.ConnectionStrings["ConnKJD"].ConnectionString;
MysqlUtils mySql = new MysqlUtils(conn);
string sql = "";
var count = -1;
sql = "select id from wxxd.order_item_ext where order_id='" + order_id + "' and sku_id='" + sku_id + "'";
var id = mySql.ExecuteFirstInt(sql);
if (!string.IsNullOrEmpty(mySql.Message))
{
mySql.Close();
return "{\"code\":500,\"msg\":\"" + mySql.Message + "\"}";
}
if (id > 0)
{
mySql.Close();
return "{\"code\":500,\"msg\":\"订单已存在\"}";
}
sql = "INSERT INTO wxxd.order_item_ext (order_id,sku_id,out_order_id,shop_app_id,shop_name,buy_type,abnormal_text,flag,label,remark,after_sale_user_delivery_address)";
sql += "VALUES(@order_id,@sku_id,@out_order_id,@shop_app_id,@shop_name,@buy_type,@abnormal_text,@flag,@label,@remark,@after_sale_user_delivery_address);";
List<MySqlParameter> paramLst = new List<MySqlParameter>();
paramLst.Add(new MySqlParameter() { DbType = DbType.String, ParameterName = "order_id", Value = order_id, });
paramLst.Add(new MySqlParameter() { DbType = DbType.String, ParameterName = "sku_id", Value = sku_id, });
paramLst.Add(new MySqlParameter() { DbType = DbType.String, ParameterName = "out_order_id", Value = out_order_id, });
paramLst.Add(new MySqlParameter() { DbType = DbType.String, ParameterName = "shop_app_id", Value = shop_app_id, });
paramLst.Add(new MySqlParameter() { DbType = DbType.String, ParameterName = "shop_name", Value = shop_name, });
paramLst.Add(new MySqlParameter() { DbType = DbType.String, ParameterName = "buy_type", Value = buy_type, });
paramLst.Add(new MySqlParameter() { DbType = DbType.String, ParameterName = "abnormal_text", Value = abnormal_text, });
paramLst.Add(new MySqlParameter() { DbType = DbType.Int32, ParameterName = "flag", Value = flag, });
paramLst.Add(new MySqlParameter() { DbType = DbType.String, ParameterName = "label", Value = label, });
paramLst.Add(new MySqlParameter() { DbType = DbType.String, ParameterName = "remark", Value = remark, });
paramLst.Add(new MySqlParameter() { DbType = DbType.String, ParameterName = "after_sale_user_delivery_address", Value = after_sale_user_delivery_address, });
count = mySql.ExecuteAffectedRows(sql, paramLst.ToArray());
mySql.Close();
if (!string.IsNullOrEmpty(mySql.Message))
{
return "{\"code\":500,\"msg\":\"" + mySql.Message + "\",\"affected_rows\":" + count + "}";
}
return "{\"code\":200,\"msg\":\"success\",\"affected_rows\":" + count + "}";
}
return "{\"code\":19999,\"msg\":\"输入为空\"}";
}
public string WXMdyOrderItemExtInfo(string inputData)
{
if (!string.IsNullOrEmpty(inputData))
{
if (!WXUserManage.GetSign(inputData))
return "{\"code\":999,\"msg\":\"校验失败\"}";
var timeCalc = DateTime.Now;
string order_id = HtmlUtils.UrlDecodeUtf8(RegexUtils.GetStringQuery(ref inputData, "wx_order_id"))?.Replace("'", "\\'");
string sku_id = HtmlUtils.UrlDecodeUtf8(RegexUtils.GetStringQuery(ref inputData, "wx_sku_id"))?.Replace("'", "\\'");
string out_order_id = HtmlUtils.UrlDecodeUtf8(RegexUtils.GetStringQuery(ref inputData, "out_order_id"))?.Replace("'", "\\'");
string shop_app_id = HtmlUtils.UrlDecodeUtf8(RegexUtils.GetStringQuery(ref inputData, "shop_app_id"))?.Replace("'", "\\'");
string shop_name = HtmlUtils.UrlDecodeUtf8(RegexUtils.GetStringQuery(ref inputData, "shop_name"))?.Replace("'", "\\'");
string buy_type = HtmlUtils.UrlDecodeUtf8(RegexUtils.GetStringQuery(ref inputData, "buy_type"))?.Replace("'", "\\'");
string abnormal_text = HtmlUtils.UrlDecodeUtf8(RegexUtils.GetStringQuery(ref inputData, "abnormal_text"))?.Replace("'", "\\'");
string flag = HtmlUtils.UrlDecodeUtf8(RegexUtils.GetStringQuery(ref inputData, "flag"))?.Replace("'", "\\'");
string label = HtmlUtils.UrlDecodeUtf8(RegexUtils.GetStringQuery(ref inputData, "label"))?.Replace("'", "\\'");
string remark = HtmlUtils.UrlDecodeUtf8(RegexUtils.GetStringQuery(ref inputData, "remark"))?.Replace("'", "\\'");
string after_sale_user_delivery_address = HtmlUtils.UrlDecodeUtf8(RegexUtils.GetStringQuery(ref inputData, "after_sale_user_delivery_address"))?.Replace("'", "\\'");
if (string.IsNullOrEmpty(order_id))
return "{\"code\":500,\"msg\":\"订单ID不能为空\"}";
string conn = System.Configuration.ConfigurationManager.ConnectionStrings["ConnKJD"].ConnectionString;
MysqlUtils mySql = new MysqlUtils(conn);
string sql = "UPDATE wxxd.order_item_ext SET ";
if (!string.IsNullOrEmpty(shop_app_id))
sql += " shop_app_id=@shop_app_id,";
if (!string.IsNullOrEmpty(out_order_id))
sql += " out_order_id=@out_order_id,";
if (!string.IsNullOrEmpty(shop_name))
sql += " shop_name=@shop_name,";
if (buy_type != null)
sql += " buy_type=@buy_type,";
if (abnormal_text != null)
sql += " abnormal_text=@abnormal_text,";
if (!string.IsNullOrEmpty(flag))
sql += " flag=@flag,";
if (label != null)
sql += " label=@label,";
if (remark != null)
sql += " remark=@remark,";
if (!string.IsNullOrEmpty(after_sale_user_delivery_address))
sql += " after_sale_user_delivery_address=@after_sale_user_delivery_address,";
sql = sql.TrimEnd(',');
sql += " where 1=1";
if (!string.IsNullOrEmpty(order_id))
sql += " and order_id=@order_id";
if (!string.IsNullOrEmpty(sku_id))
sql += " and sku_id=@sku_id";
List<MySqlParameter> paramLst = new List<MySqlParameter>();
paramLst.Add(new MySqlParameter() { DbType = DbType.String, ParameterName = "order_id", Value = order_id, });
paramLst.Add(new MySqlParameter() { DbType = DbType.String, ParameterName = "sku_id", Value = sku_id, });
paramLst.Add(new MySqlParameter() { DbType = DbType.String, ParameterName = "out_order_id", Value = out_order_id, });
paramLst.Add(new MySqlParameter() { DbType = DbType.String, ParameterName = "shop_app_id", Value = shop_app_id, });
paramLst.Add(new MySqlParameter() { DbType = DbType.String, ParameterName = "shop_name", Value = shop_name, });
paramLst.Add(new MySqlParameter() { DbType = DbType.String, ParameterName = "buy_type", Value = buy_type, });
paramLst.Add(new MySqlParameter() { DbType = DbType.String, ParameterName = "abnormal_text", Value = abnormal_text, });
paramLst.Add(new MySqlParameter() { DbType = DbType.Int32, ParameterName = "flag", Value = flag, });
paramLst.Add(new MySqlParameter() { DbType = DbType.String, ParameterName = "label", Value = label, });
paramLst.Add(new MySqlParameter() { DbType = DbType.String, ParameterName = "remark", Value = remark, });
paramLst.Add(new MySqlParameter() { DbType = DbType.String, ParameterName = "after_sale_user_delivery_address", Value = after_sale_user_delivery_address, });
var count = mySql.ExecuteAffectedRows(sql, paramLst.ToArray());
mySql.Close();
if (!string.IsNullOrEmpty(mySql.Message))
{
return "{\"code\":500,\"msg\":\"" + mySql.Message + "\",\"affected_rows\":" + count + "}";
}
return "{\"code\":200,\"msg\":\"success\",\"affected_rows\":" + count + "}";
}
return "{\"code\":19999,\"msg\":\"输入为空\"}";
}
public string WXGetOrderItemExtInfoList(string inputData, bool isDetail = false)
{
if (!string.IsNullOrEmpty(inputData))
{
if (!WXUserManage.GetSign(inputData))
return "{\"code\":999,\"msg\":\"校验失败\"}";
var timeCalc = DateTime.Now;
var wx_order_id_in = RegexUtils.GetStringQuery(ref inputData, "wx_order_id_in")?.Replace("'", "\\'");
var wx_sku_id = RegexUtils.GetStringQuery(ref inputData, "wx_sku_id_in")?.Replace("'", "\\'");
var out_order_id_in = RegexUtils.GetStringQuery(ref inputData, "out_order_id_in")?.Replace("'", "\\'");
if (wx_order_id_in.IsNullOrEmpty() && out_order_id_in.IsNullOrEmpty())
{
return "{\"code\":500,\"msg\":\"未指定订单\"}";
}
var sort_type = RegexUtils.GetStringQuery(ref inputData, "sort_type")?.Replace("'", "\\'");
var is_not_count = RegexUtils.GetStringQuery(ref inputData, "is_not_count") != "false";
int page = RegexUtils.GetStringQuery(ref inputData, "page").ParseToInt();
int page_size = RegexUtils.GetStringQuery(ref inputData, "page_size").ParseToInt(500);
string conn = System.Configuration.ConfigurationManager.ConnectionStrings["ConnKJD"].ConnectionString;
MysqlUtils mySql = new MysqlUtils(conn);
string sql = "SELECT COUNT(id) FROM wxxd.order_item_ext o WHERE 1=1 ";
string where = "";
if (!string.IsNullOrWhiteSpace(wx_order_id_in))
where += " and o.order_id in ('" + wx_order_id_in.Replace(",", "','") + "')";
if (!string.IsNullOrWhiteSpace(wx_sku_id))
where += " and o.sku_id in ('" + wx_sku_id.Replace(",", "','") + "')";
if (!string.IsNullOrWhiteSpace(out_order_id_in))
where += " and o.out_order_id in ('" + out_order_id_in.Replace(",", "','") + "')";
sql += where;
var count = 0;
if (!is_not_count)
count = mySql.ExecuteRowCount(sql);
DataTable dt;
if (count == 0 && !is_not_count)
{
dt = new DataTable();
}
else
{
sql = "SELECT o.* FROM" +
" wxxd.order_item_ext o " +
" WHERE 1=1";
//where子句
sql += where;
if (sort_type == "asc")
sql += " ORDER BY o.id ASC";
else
sql += " ORDER BY o.id DESC";
sql += " LIMIT " + Math.Max(page - 1, 0) * page_size + "," + page_size;
dt = mySql.ExecuteDataTable(sql);
}
mySql.Close();
if (dt != null)
{
try
{
List<order_item_ext> buyerOrderList = new List<order_item_ext>();
foreach (DataRow row in dt.Rows)
{
order_item_ext order = new order_item_ext
{
id = row["id"].ParseToLong(),
add_time = row["add_time"].ParseToString().ParseToDateTime(),
buy_type = row["buy_type"].ParseToString(),
abnormal_text = row["abnormal_text"].ParseToString(),
after_sale_user_delivery_address = row["after_sale_user_delivery_address"].ParseToString(),
flag = row["flag"].ParseToNullableInt(),
mdy_time = row["mdy_time"].ParseToString().ParseToDateTime(),
label = row["label"].ParseToString(),
order_id = row["order_id"].ParseToString(),
remark = row["remark"].ParseToString(),
shop_app_id = row["shop_app_id"].ParseToString(),
shop_name = row["shop_name"].ParseToString(),
sku_id = row["sku_id"].ParseToString(),
out_order_id = row["out_order_id"].ParseToString(),
};
buyerOrderList.Add(order);
}
JsonSerializerSettings jsonSetting = new JsonSerializerSettings { NullValueHandling = NullValueHandling.Ignore };
var data = JsonUtils.SerializeObjectToString(buyerOrderList, jsonSetting);
var seconds = (DateTime.Now - timeCalc).TotalSeconds.ToString("0.000");
return "{\"code\":200,\"msg\":\"success\",\"data\":" + data + ",\"count\":" + count + ",\"seconds\":" + seconds + "}";
}
catch (Exception ex)
{
return "{\"code\":500,\"msg\":\"" + ex.Message + "\",\"data\":[],\"count\":" + 0 + "}";
}
}
else
{
return "{\"code\":500,\"msg\":\"" + mySql.Message + "\",\"data\":[],\"count\":" + 0 + "}";
}
}
return "{\"code\":19999,\"msg\":\"输入为空\"}";
}
public string WXGetErpReturnOrderList(string inputData, bool isDetail = false)
{
if (!string.IsNullOrEmpty(inputData))
{
if (!WXUserManage.GetSign(inputData))
return "{\"code\":999,\"msg\":\"校验失败\"}";
var timeCalc = DateTime.Now;
var erp_order_id_in = RegexUtils.GetStringQuery(ref inputData, "erp_order_id_in")?.Replace("'", "\\'");
if (erp_order_id_in.IsNullOrEmpty())
{
return "{\"code\":500,\"msg\":\"未指定订单\"}";
}
var sort_type = RegexUtils.GetStringQuery(ref inputData, "sort_type")?.Replace("'", "\\'");
var is_not_count = RegexUtils.GetStringQuery(ref inputData, "is_not_count") == "true";
int page = RegexUtils.GetStringQuery(ref inputData, "page").ParseToInt();
int page_size = RegexUtils.GetStringQuery(ref inputData, "page_size").ParseToInt(500);
string conn = System.Configuration.ConfigurationManager.ConnectionStrings["ConnKJD"].ConnectionString;
MysqlUtils mySql = new MysqlUtils(conn);
string sql = "SELECT COUNT(id) FROM erp.distrib_return_order o WHERE 1=1 ";
string where = "";
if (!string.IsNullOrWhiteSpace(erp_order_id_in))
where += " and o.order_code_source in ('" + erp_order_id_in.Replace(",", "','") + "')";
sql += where;
var count = 0;
if (!is_not_count)
count = mySql.ExecuteRowCount(sql);
DataTable dt;
if (count == 0 && !is_not_count)
{
dt = new DataTable();
}
else
{
sql = "SELECT o.* FROM erp.distrib_return_order o WHERE 1=1";
//where子句
sql += where;
if (sort_type == "asc")
sql += " ORDER BY o.created_at ASC";
else
sql += " ORDER BY o.created_at DESC";
sql += " LIMIT " + Math.Max(page - 1, 0) * page_size + "," + page_size;
dt = mySql.ExecuteDataTable(sql);
}
mySql.Close();
if (dt != null)
{
try
{
List<distrib_return_order_info> orderList = new List<distrib_return_order_info>();
foreach (DataRow row in dt.Rows)
{
distrib_return_order_info order = new distrib_return_order_info
{
id = row["id"].ParseToLong(),
additional_weight_fee = row["additional_weight_fee"].ParseToNullableInt(),
after_sale_no = row["after_sale_no"].ParseToNullableString(),
created_at = row["created_at"].ParseToString().ParseToDateTime(),
ext_field1 = row["ext_field1"].ParseToNullableString(),
ext_field2 = row["ext_field2"].ParseToNullableString(),
first_weight_fee = row["first_weight_fee"].ParseToNullableInt(),
logistics_code = row["logistics_code"].ParseToNullableString(),
logistics_express_no = row["logistics_express_no"].ParseToNullableString(),
order_code = row["order_code"].ParseToNullableString(),
order_code_source = row["order_code_source"].ParseToNullableString(),
order_void_status = row["order_void_status"].ParseToNullableInt(),
platform = row["platform"].ParseToNullableString(),
platform_code = row["platform_code"].ParseToNullableString(),
platform_order_no = row["platform_order_no"].ParseToNullableString(),
postage = row["postage"].ParseToNullableInt(),
real_logistics_code = row["real_logistics_code"].ParseToNullableString(),
real_logistics_express_code = row["real_logistics_express_code"].ParseToNullableString(),
receiver_address = row["receiver_address"].ParseToNullableString(),
receiver_area = row["receiver_area"].ParseToNullableString(),
receiver_city = row["receiver_city"].ParseToNullableString(),
receiver_name = row["receiver_name"].ParseToNullableString(),
receiver_phone = row["receiver_phone"].ParseToNullableString(),
receiver_province = row["receiver_province"].ParseToNullableString(),
response_msg = row["response_msg"].ParseToNullableString(),
return_order_status = row["return_order_status"].ParseToNullableInt(),
sender_info = row["sender_info"].ParseToNullableString(),
sender_name = row["sender_name"].ParseToNullableString(),
sender_phone = row["sender_phone"].ParseToNullableString(),
shop_name = row["shop_name"].ParseToNullableString(),
updated_at = row["updated_at"].ParseToString().ParseToDateTime(),
warehouse_in_time = row["warehouse_in_time"].ParseToString().ParseToDateTime(),
warehouse_out_time = row["warehouse_out_time"].ParseToString().ParseToDateTime(),
warehouse_status = row["warehouse_status"].ParseToNullableInt(),
};
orderList.Add(order);
}
JsonSerializerSettings jsonSetting = new JsonSerializerSettings { NullValueHandling = NullValueHandling.Ignore };
var data = JsonUtils.SerializeObjectToString(orderList, 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>
/// 获取wx订单状态
/// <returns></returns>
public string GetWxTaskStatus(string inputData, bool isDetail = false)
{
// 暂时先拿掉
return "{\"code\":19999,\"msg\":\"参数为空\"}";
if (string.IsNullOrEmpty(inputData))
return "{\"code\":19999,\"msg\":\"参数为空\"}";
if (!WXUserManage.GetSign(inputData))
return "{\"code\":999,\"msg\":\"签名校验失败\"}";
var user_name = RegexUtils.GetStringQuery(ref inputData, "user_name");
string shop_ids = RegexUtils.GetStringQuery(ref inputData, "shop_ids")?.Replace("'", "");//所有店铺信息
if (string.IsNullOrEmpty(shop_ids))
throw new ArgumentException("请选择店铺");
List<string> shopIdLst = shop_ids.Split(',').ToList();
if (shopIdLst.Count > 0)
shop_ids = "'" + string.Join("','", shopIdLst) + "'";
string start_Time = RegexUtils.GetStringQuery(ref inputData, "start_time")?.Replace("'", "");
string end_Time = RegexUtils.GetStringQuery(ref inputData, "end_time")?.Replace("'", "");
DateTime startTime = DateTime.Now.AddDays(-7);
DateTime endTime = DateTime.Now;
if (!string.IsNullOrEmpty(start_Time))
startTime = TimeUtils.StampMillisecondsToDateTime(start_Time.ParseToLong());
if (!string.IsNullOrEmpty(end_Time))
endTime = TimeUtils.StampMillisecondsToDateTime(end_Time.ParseToLong());
if (endTime <= startTime)
throw new ArgumentException("结束时间必须大于开始时间");
if (endTime > startTime.AddDays(10))
throw new ArgumentException("时间范围不能超过10天");
int startTimestamp = TimeUtils.DateTimeToTimestampSeconds(startTime);
int endTimestamp = TimeUtils.DateTimeToTimestampSeconds(endTime);
var timeCalc = DateTime.Now;
string conn = System.Configuration.ConfigurationManager.ConnectionStrings["ConnKJD"].ConnectionString;
MysqlUtils mySql = new MysqlUtils(conn);
// ---------- 1. 查主任务 ----------
StringBuilder sbTask = new StringBuilder();
sbTask.Append("SELECT ");
sbTask.Append("A.id, ");
sbTask.Append("A.task_type, ");
sbTask.Append("A.task_describe, ");
sbTask.Append("A.shop_ids, ");
sbTask.Append("C.name AS shop_name, ");
sbTask.Append("A.object_ids, ");
sbTask.Append("A.sub_task_num, ");
sbTask.Append("A.success_task_num, ");
sbTask.Append("A.fail_task_num, ");
sbTask.Append("A.status, ");
sbTask.Append("A.create_by, ");
sbTask.Append("A.update_by, ");
sbTask.Append("A.remark, ");
sbTask.Append("A.task_fail_reason, ");
sbTask.Append("A.create_time, ");
sbTask.Append("A.update_time ");
sbTask.Append("FROM erp.o_user_operate_task AS A ");
sbTask.Append("INNER JOIN erp.o_shop AS C ON A.shop_ids = C.id ");
sbTask.Append("WHERE A.task_type IN (25, 31, 36) ");
// 时间条件
{
sbTask.Append("AND A.create_time BETWEEN '");
sbTask.Append(startTime);
sbTask.Append("' AND '");
sbTask.Append(endTime);
sbTask.Append("' ");
}
// 店铺条件
if (!string.IsNullOrEmpty(shop_ids))
{
sbTask.Append("AND A.shop_ids IN (");
sbTask.Append(shop_ids);
sbTask.Append(") ");
}
sbTask.Append("ORDER BY A.create_time DESC, A.id DESC;");
DataTable taskDt = null;
try
{
taskDt = mySql.ExecuteDataTable(sbTask.ToString());
}
catch (Exception ex)
{
return "{\"code\":500,\"msg\":\"" + ex.Message + "\",\"data\":[],\"count\":" + 0 + "}";
}
if (taskDt != null)
{
List<user_operate_task_info> orderList = new List<user_operate_task_info>();
foreach (DataRow row in taskDt.Rows)
{
var g = new user_operate_task_info
{
id = row["id"].ParseToLong(),
task_type = row["task_type"].ParseToNullableInt(),
task_describe = row["task_describe"].ParseToNullableString(),
shop_ids = row["shop_ids"].ParseToNullableString(),
shop_name = row["shop_name"].ParseToNullableString(),
object_ids = row["object_ids"].ParseToNullableString(),
sub_task_num = row["sub_task_num"].ParseToNullableInt(),
success_task_num = row["success_task_num"].ParseToNullableInt(),
fail_task_num = row["fail_task_num"].ParseToNullableInt(),
status = row["status"].ParseToInt(),
create_by = row["create_by"].ParseToNullableString(),
update_by = row["update_by"].ParseToNullableString(),
remark = row["remark"].ParseToNullableString(),
task_fail_reason = row["task_fail_reason"].ParseToNullableString(),
create_time = row["create_time"].ParseToString().ParseToDateTimeNullable(),
update_time = row["update_time"].ParseToString().ParseToDateTimeNullable(),
sub_tasks = new List<user_operate_sub_task_info>() // 初始化子任务列表
};
orderList.Add(g);
}
List<long> taskIdList = orderList.Select(x => x.id).ToList();
if (taskIdList.Count > 0)
{
StringBuilder sbSubTask = new StringBuilder();
sbSubTask.Append("SELECT ");
sbSubTask.Append("id, ");
sbSubTask.Append("task_id, ");
sbSubTask.Append("platform_code, ");
sbSubTask.Append("shop_id, ");
sbSubTask.Append("platform_object_id, ");
sbSubTask.Append("object_id, ");
sbSubTask.Append("platform_resp_code, ");
sbSubTask.Append("platform_resp_msg, ");
sbSubTask.Append("platform_resp_data, ");
sbSubTask.Append("sys_msg, ");
sbSubTask.Append("CAST(`status` AS SIGNED) AS `status`, ");
sbSubTask.Append("audit_result, ");
sbSubTask.Append("audit_reason, ");
sbSubTask.Append("create_time, ");
sbSubTask.Append("create_by, ");
sbSubTask.Append("update_time, ");
sbSubTask.Append("update_by ");
sbSubTask.Append("FROM erp.o_user_operate_sub_task ");
sbSubTask.Append("WHERE task_id IN (");
for (int i = 0; i < taskIdList.Count; i++)
{
if (i > 0)
{
sbSubTask.Append(", ");
}
sbSubTask.Append(taskIdList[i]);
}
sbSubTask.Append(") ");
sbSubTask.Append("ORDER BY task_id, create_time DESC;");
DataTable subTaskDt = null;
try
{
subTaskDt = mySql.ExecuteDataTable(sbSubTask.ToString());
}
catch (Exception ex)
{
return "{\"code\":500,\"msg\":\"" + ex.Message + "\",\"data\":[],\"count\":" + 0 + "}";
}
// 按task_id分组存储子任务
Dictionary<long, List<user_operate_sub_task_info>> subTaskDict = new Dictionary<long, List<user_operate_sub_task_info>>();
if (subTaskDt != null)
{
foreach (DataRow row in subTaskDt.Rows)
{
var subTask = new user_operate_sub_task_info
{
id = row["id"].ParseToLong(),
task_id = row["task_id"].ParseToLong(),
platform_code = row["platform_code"].ParseToNullableString(),
shop_id = row["shop_id"].ParseToLong(),
platform_object_id = row["platform_object_id"].ParseToNullableString(),
object_id = row["object_id"].ParseToNullableString(),
platform_resp_code = row["platform_resp_code"].ParseToNullableString(),
platform_resp_msg = row["platform_resp_msg"].ParseToNullableString(),
platform_resp_data = row["platform_resp_data"].ParseToNullableString(),
sys_msg = row["sys_msg"].ParseToNullableString(),
status = row["status"].ParseToInt(),
audit_result = row["audit_result"].ParseToNullableInt(),
audit_reason = row["audit_reason"].ParseToNullableString(),
create_time = row["create_time"].ParseToString().ParseToDateTimeNullable(),
create_by = row["create_by"].ParseToNullableString(),
update_time = row["update_time"].ParseToString().ParseToDateTimeNullable(),
update_by = row["update_by"].ParseToNullableString()
};
long taskId = subTask.task_id;
if (!subTaskDict.ContainsKey(taskId))
{
subTaskDict[taskId] = new List<user_operate_sub_task_info>();
}
subTaskDict[taskId].Add(subTask);
}
// 将子任务列表赋值给对应的主任务
foreach (var task in orderList)
{
if (subTaskDict.ContainsKey(task.id))
{
task.sub_tasks = subTaskDict[task.id];
}
}
}
// ---------- 3. 合并错误信息到主任务 ----------
foreach (var task in orderList)
{
List<string> errorList = new List<string>();
// 主任务错误
if (!string.IsNullOrEmpty(task.task_fail_reason))
{
errorList.Add(task.task_fail_reason);
}
// 获取该任务的子任务列表
if (subTaskDict.ContainsKey(task.id))
{
var subTasks = subTaskDict[task.id];
// 对于36类型,子任务可能有更详细的错误
if (task.task_type == 36)
{
foreach (var subTask in subTasks)
{
// 子任务失败的错误信息
if (subTask.status == 2 && !string.IsNullOrEmpty(subTask.sys_msg))
{
errorList.Add(subTask.sys_msg);
}
// 审核不通过的原因
if (subTask.audit_result == 2 && !string.IsNullOrEmpty(subTask.audit_reason))
{
errorList.Add("审核不通过:" + subTask.audit_reason);
}
}
}
else
{
// 25、31类型,如果主任务没有错误,但子任务有错误,也收集
foreach (var subTask in subTasks)
{
if (subTask.status == 2 && !string.IsNullOrEmpty(subTask.sys_msg))
{
errorList.Add(subTask.sys_msg);
}
}
}
}
// 合并错误信息(去重)
task.task_fail_reason = errorList
.Where(x => !string.IsNullOrEmpty(x))
.Distinct()
.ToList()
.Count > 0 ? string.Join("; ", errorList.Distinct()) : null;
}
}
JsonSerializerSettings jsonSetting = new JsonSerializerSettings
{
NullValueHandling = NullValueHandling.Ignore,
ContractResolver = new DefaultContractResolver
{
// 核心:设置命名策略为 SnakeCaseNamingStrategy
// 这样序列化时,ProjectId 会变成 "project_id";
// 反序列化时,"project_id" 也能正确映射回 ProjectId
NamingStrategy = new SnakeCaseNamingStrategy()
}
};
string jsonResult = JsonConvert.SerializeObject(new
{
code = 200,
msg = "success",
data = orderList,
count = orderList.Count
}, jsonSetting);
return jsonResult;
}
else
{
return "{\"code\":500,\"msg\":\"" + mySql.Message + "\",\"data\":[],\"count\":" + 0 + "}";
}
return "{\"code\":19999,\"msg\":\"输入为空\"}";
}
public string WXGetErpEWaybillPathList(string inputData, bool isDetail = false)
{
if (!string.IsNullOrEmpty(inputData))
{
var timeCalc = DateTime.Now;
if (!WXUserManage.GetSign(inputData))
return "{\"code\":999,\"msg\":\"签名校验失败\"}";
var erp_order_id_in = RegexUtils.GetStringQuery(ref inputData, "erp_order_id_in")?.Replace("'", "\\'");
var ewaybill_order_id_in = RegexUtils.GetStringQuery(ref inputData, "ewaybill_order_id_in")?.Replace("'", "\\'");
var waybill_id_in = RegexUtils.GetStringQuery(ref inputData, "waybill_id_in")?.Replace("'", "\\'");
if (erp_order_id_in.IsNullOrEmpty() && ewaybill_order_id_in.IsNullOrEmpty() && waybill_id_in.IsNullOrEmpty())
{
return "{\"code\":500,\"msg\":\"未指定要查询的物流轨迹\"}";
}
var sort_type = RegexUtils.GetStringQuery(ref inputData, "sort_type")?.Replace("'", "\\'");
var is_not_count = RegexUtils.GetStringQuery(ref inputData, "is_not_count") != "false";
int page = RegexUtils.GetStringQuery(ref inputData, "page").ParseToInt();
int page_size = RegexUtils.GetStringQuery(ref inputData, "page_size").ParseToInt(1000);
string conn = System.Configuration.ConfigurationManager.ConnectionStrings["ConnKJD"].ConnectionString;
MysqlUtils mySql = new MysqlUtils(conn);
string sql = "SELECT COUNT(id) FROM erp.oms_wei_ewaybill_path o WHERE 1=1 ";
string where = "";
if (!string.IsNullOrWhiteSpace(erp_order_id_in))
where += " and o.order_id in ('" + erp_order_id_in.Replace(",", "','") + "')";
if (!string.IsNullOrWhiteSpace(ewaybill_order_id_in))
where += " and o.ewaybill_order_id in ('" + ewaybill_order_id_in.Replace(",", "','") + "')";
if (!string.IsNullOrWhiteSpace(waybill_id_in))
where += " and o.waybill_id in ('" + waybill_id_in.Replace(",", "','") + "')";
sql += where;
var count = 0;
if (!is_not_count)
count = mySql.ExecuteRowCount(sql);
DataTable dt;
if (count == 0 && !is_not_count)
{
dt = new DataTable();
}
else
{
sql = "SELECT o.* FROM erp.oms_wei_ewaybill_path o WHERE 1=1";
//where子句
sql += where;
if (sort_type == "asc")
sql += " ORDER BY o.id ASC";
else
sql += " ORDER BY o.id DESC";
sql += " LIMIT " + Math.Max(page - 1, 0) * page_size + "," + page_size;
dt = mySql.ExecuteDataTable(sql);
}
mySql.Close();
if (dt != null)
{
try
{
List<oms_wei_ewaybill_path> orderItemList = new List<oms_wei_ewaybill_path>();
foreach (DataRow row in dt.Rows)
{
oms_wei_ewaybill_path order = new oms_wei_ewaybill_path
{
id = row["id"].ParseToLong(),
order_id = row["order_id"].ParseToNullableLong(),
create_time = row["create_time"].ParseToString().ParseToDateTime(),
ewaybill_order_id = row["ewaybill_order_id"].ParseToString(),
node_desc = row["node_desc"].ParseToString(),
shop_id = row["shop_id"].ParseToNullableLong(),
status = row["status"].ParseToInt(),
update_time = row["update_time"].ParseToLong(),
waybill_id = row["waybill_id"].ParseToString(),
};
orderItemList.Add(order);
}
JsonSerializerSettings jsonSetting = new JsonSerializerSettings { NullValueHandling = NullValueHandling.Ignore };
var data = JsonUtils.SerializeObjectToString(orderItemList, 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 WXGetErpEWaybillPathLatestList(string inputData)
{
if (!string.IsNullOrEmpty(inputData))
{
var timeCalc = DateTime.Now;
if (!WXUserManage.GetSign(inputData))
return "{\"code\":999,\"msg\":\"签名校验失败\"}";
var erp_order_id_in = RegexUtils.GetStringQuery(ref inputData, "erp_order_id_in")?.Replace("'", "\\'");
var ewaybill_order_id_in = RegexUtils.GetStringQuery(ref inputData, "ewaybill_order_id_in")?.Replace("'", "\\'");
var waybill_id_in = RegexUtils.GetStringQuery(ref inputData, "waybill_id_in")?.Replace("'", "\\'");
if (erp_order_id_in.IsNullOrEmpty() && ewaybill_order_id_in.IsNullOrEmpty() && waybill_id_in.IsNullOrEmpty())
{
return "{\"code\":500,\"msg\":\"未指定要查询的物流轨迹\"}";
}
//var sort_type = RegexUtils.GetStringQuery(ref inputData, "sort_type")?.Replace("'", "\\'");
int page = RegexUtils.GetStringQuery(ref inputData, "page").ParseToInt();
int page_size = RegexUtils.GetStringQuery(ref inputData, "page_size").ParseToInt(1000);
string conn = System.Configuration.ConfigurationManager.ConnectionStrings["ConnKJD"].ConnectionString;
MysqlUtils mySql = new MysqlUtils(conn);
string sql = "";
string where = "";
if (!string.IsNullOrWhiteSpace(erp_order_id_in))
where += " and w.order_id in ('" + erp_order_id_in.Replace(",", "','") + "')";
if (!string.IsNullOrWhiteSpace(ewaybill_order_id_in))
where += " and w.ewaybill_order_id in ('" + ewaybill_order_id_in.Replace(",", "','") + "')";
if (!string.IsNullOrWhiteSpace(waybill_id_in))
where += " and w.waybill_id in ('" + waybill_id_in.Replace(",", "','") + "')";
sql += where;
DataTable dt;
{
sql = @"
SELECT *
FROM (
SELECT *,ROW_NUMBER() OVER (PARTITION BY waybill_id ORDER BY update_time DESC) as rn
FROM `erp`.`oms_wei_ewaybill_path` w";
sql += " WHERE 1=1 ";
sql += where + @"
) wp
WHERE wp.rn = 1";
//where子句
//sql += where;
//if (sort_type == "asc")
// sql += " ORDER BY o.id ASC";
//else
// sql += " ORDER BY o.id DESC";
sql += " LIMIT " + Math.Max(page - 1, 0) * page_size + "," + page_size;
dt = mySql.ExecuteDataTable(sql);
}
mySql.Close();
if (dt != null)
{
try
{
List<oms_wei_ewaybill_path> orderItemList = new List<oms_wei_ewaybill_path>();
foreach (DataRow row in dt.Rows)
{
oms_wei_ewaybill_path order = new oms_wei_ewaybill_path
{
id = row["id"].ParseToLong(),
order_id = row["order_id"].ParseToNullableLong(),
create_time = row["create_time"].ParseToString().ParseToDateTime(),
ewaybill_order_id = row["ewaybill_order_id"].ParseToString(),
node_desc = row["node_desc"].ParseToString(),
shop_id = row["shop_id"].ParseToNullableLong(),
status = row["status"].ParseToInt(),
update_time = row["update_time"].ParseToLong(),
waybill_id = row["waybill_id"].ParseToString(),
};
orderItemList.Add(order);
}
JsonSerializerSettings jsonSetting = new JsonSerializerSettings { NullValueHandling = NullValueHandling.Ignore };
var data = JsonUtils.SerializeObjectToString(orderItemList, jsonSetting);
var seconds = (DateTime.Now - timeCalc).TotalSeconds.ToString("0.000");
return "{\"code\":200,\"msg\":\"success\",\"data\":" + data + ",\"count\":" + orderItemList.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\":\"输入为空\"}";
}
private JsonSerializerSettings JsonSerializer = new JsonSerializerSettings
{
ContractResolver = new CamelCasePropertyNamesContractResolver(),
NullValueHandling = NullValueHandling.Ignore
};
}
}