dataHelper.cs 42 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135
  1. using BizCom;
  2. using Castle.ActiveRecord.Framework.Internal;
  3. using Newtonsoft.Json;
  4. using Newtonsoft.Json.Linq;
  5. using NHibernate.Mapping;
  6. using NPOI.POIFS.Properties;
  7. using NPOI.SS.Formula.Functions;
  8. using NPOI.SS.UserModel;
  9. using SiteCore.Handler;
  10. using SiteCore.Redis;
  11. using SiteCore.taobao;
  12. using SiteCore.taoObj;
  13. using SQLData;
  14. using System;
  15. using System.Collections;
  16. using System.Collections.Generic;
  17. using System.Collections.Specialized;
  18. using System.Data;
  19. using System.Diagnostics;
  20. using System.Linq;
  21. using System.Net;
  22. using System.Net.Http;
  23. using System.Net.Http.Headers;
  24. using System.Reflection;
  25. using System.Runtime.Remoting.Messaging;
  26. using System.Runtime.Remoting.Metadata.W3cXsd2001;
  27. using System.Security.Cryptography;
  28. using System.Security.Policy;
  29. using System.Security.Principal;
  30. using System.Text;
  31. using System.Threading.Tasks;
  32. using System.Web;
  33. using System.Web.Routing;
  34. using Utils.Serialization;
  35. using static SiteCore.taoObj.dataShopResponseVo;
  36. using static SiteCore.taoObj.dataSpuInfoResponseVo;
  37. using static SiteCore.taoObj.work_core_vo;
  38. namespace SiteCore.Handler
  39. {
  40. public class dataHelper : BaseHandler, IHttpHandler
  41. {
  42. public void ProcessRequest(HttpContext context)
  43. {
  44. if (UrlParmsCheck("t"))
  45. {
  46. String tname = GetString("t");
  47. MethodInfo method;
  48. Type type = this.GetType();
  49. method = type.GetMethod(tname);
  50. con = context;
  51. if (method == null)
  52. {
  53. conError("找不到对应方法,服务器返回错误");
  54. return;
  55. }
  56. successFlag = false;
  57. context.Response.ContentType = "application/json";
  58. context.Response.Headers.Set("Access-Control-Allow-Origin", "*");
  59. try
  60. {
  61. method.Invoke(this, null);
  62. }
  63. catch (Exception ex)
  64. {
  65. conError("处理接口错误,服务器返回错误");
  66. }
  67. finally
  68. {
  69. }
  70. }
  71. }
  72. public static string GetMD5Hash(string input)
  73. {
  74. // 创建一个MD5对象
  75. using (MD5 md5 = MD5.Create())
  76. {
  77. // 将输入字符串转换为字节数组
  78. byte[] inputBytes = Encoding.UTF8.GetBytes(input);
  79. // 计算输入字节数组的哈希值
  80. byte[] hashBytes = md5.ComputeHash(inputBytes);
  81. // 将字节数组转换为字符串
  82. StringBuilder hashString = new StringBuilder();
  83. foreach (byte b in hashBytes)
  84. {
  85. hashString.AppendFormat("{0:x2}", b);
  86. }
  87. return hashString.ToString();
  88. }
  89. }
  90. Dictionary<string, string> keysMap = new Dictionary<string, string>()
  91. {
  92. {"UzJwXAhiD9","GFyIeZLRIATXMJYnsc5nZPAwK9" },
  93. };
  94. public void productInfo()
  95. {
  96. bool result = checkParams();
  97. if (!result)
  98. {
  99. return;
  100. }
  101. string productName = GetPostString("productName");
  102. string id = GetPostString("id");
  103. if (string.IsNullOrEmpty(productName))
  104. {
  105. returnErrorMsg("参数没有产品名称");
  106. return;
  107. }
  108. if (string.IsNullOrEmpty(id))
  109. {
  110. returnErrorMsg("参数没有产品id");
  111. return;
  112. }
  113. CeErpProduct ceErpProduct = CeErpProduct.GetByName(id);
  114. bool isCreate = false;
  115. if (ceErpProduct == null)
  116. {
  117. ceErpProduct = new CeErpProduct();
  118. isCreate = true;
  119. }
  120. ceErpProduct.uuid = id;
  121. ceErpProduct.PType = productName;
  122. ceErpProduct.UpdateTime = DateTime.Now;
  123. ceErpProduct.UpdateUserName = "朱义义";
  124. if (!isCreate)
  125. {
  126. ceErpProduct.Update();
  127. }
  128. else
  129. {
  130. ceErpProduct.CreateTime = ceErpProduct.UpdateTime;
  131. ceErpProduct.CreateUserName = ceErpProduct.UpdateUserName;
  132. ceErpProduct.Create();
  133. }
  134. returnSuccessMsg("创建成功!");
  135. }
  136. public bool checkParams()
  137. {
  138. string appKey = GetPostString("appKey");
  139. string appSecret = "";
  140. if (!keysMap.ContainsKey(appKey))
  141. {
  142. returnErrorMsg("appKey不存在");
  143. return false;
  144. }
  145. keysMap.TryGetValue(appKey, out appSecret);
  146. if (appSecret == "")
  147. {
  148. returnErrorMsg("appSecret不存在");
  149. return false;
  150. }
  151. double timestamp = GetPostDouble("timestamp");//秒级时间戳
  152. if (timestamp == 0)
  153. {
  154. returnErrorMsg("时间戳不存在");
  155. return false;
  156. }
  157. DateTime dtDateTime = new DateTime(1970, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc);
  158. dtDateTime = dtDateTime.AddSeconds(timestamp).ToLocalTime();
  159. if (dtDateTime != null && dtDateTime.CompareTo(DateTime.Now.AddMinutes(-5)) < 0)
  160. {
  161. returnErrorMsg("请求失效");
  162. return false;
  163. }
  164. string sign = GetPostString("sign");
  165. if (string.IsNullOrEmpty(sign))
  166. {
  167. returnErrorMsg("签名不存在");
  168. return false;
  169. }
  170. string param = appKey + timestamp + appSecret;
  171. string localSign = GetMD5Hash(param);
  172. if (!localSign.Equals(sign))
  173. {
  174. returnErrorMsg("签名错误");
  175. return false;
  176. }
  177. return true;
  178. }
  179. //http://47.114.150.226:88/Handler/dataHelper.ashx?t=get_order_info post请求参数(参数放body中):string tid(淘宝订单号)
  180. public void get_order_info()
  181. {
  182. bool result = checkParams();
  183. if (!result)
  184. {
  185. return;
  186. }
  187. string code = GetPostString("code");
  188. if (string.IsNullOrEmpty(code))
  189. {
  190. returnErrorMsg("参数错误");
  191. return;
  192. }
  193. CeErpTradeCell ceErpTradeCell = CeErpTradeCell.GetByCode(code);
  194. if (ceErpTradeCell == null)
  195. {
  196. returnErrorMsg("查无订单");
  197. return;
  198. }
  199. CeErpTrade ceErpTrade = CeErpTrade.Get(ceErpTradeCell.tid);
  200. Dictionary<string, object> data = new Dictionary<string, object>();
  201. data.Add("ctid", ceErpTradeCell.ctid);
  202. data.Add("isSF", ceErpTradeCell.IsSF);
  203. if (ceErpTrade != null)
  204. {
  205. data.Add("province", ceErpTrade.receiver_state);
  206. }
  207. ReturnSuccess(JsonConvert.SerializeObject(data));
  208. return;
  209. }
  210. //http://47.114.150.226:88/Handler/dataHelper.ashx?t=get_cell_info post请求参数(参数放body中):string tid(淘宝订单号)
  211. public void get_shop_code()
  212. {
  213. bool result = checkParams();
  214. if (!result)
  215. {
  216. return;
  217. }
  218. string name = GetPostString("name");
  219. if (string.IsNullOrEmpty(name))
  220. {
  221. returnErrorMsg("参数错误");
  222. return;
  223. }
  224. string code = "";
  225. string key = "shopName_code_" + name;
  226. if (RedisHelper.HasKey(key))
  227. {
  228. code = RedisHelper.StringGet(key).ToString();
  229. }
  230. if (code == "")
  231. {
  232. CeErpShop shop = CeErpShop.GetShopIdByName(name);
  233. if (shop == null)
  234. {
  235. returnErrorMsg("无店铺");
  236. return;
  237. }
  238. code = shop.SName;
  239. RedisHelper.StringSet(key, code);
  240. }
  241. Dictionary<string, object> data = new Dictionary<string, object>();
  242. data.Add("code", code);
  243. ReturnSuccess(JsonConvert.SerializeObject(data));
  244. return;
  245. }
  246. public void getOrderInfo()
  247. {
  248. string ctid = GetPostString("ctid");
  249. if (string.IsNullOrEmpty(ctid))
  250. {
  251. returnErrorMsg("参数错误");
  252. return;
  253. }
  254. CeErpTradeCell ceErpTradeCell = CeErpTradeCell.GetByCtid(ctid);
  255. if (ceErpTradeCell == null)
  256. {
  257. returnErrorMsg("查无订单");
  258. return;
  259. }
  260. CeErpTrade ceErpTrade = CeErpTrade.Get(ceErpTradeCell.tid);
  261. CeErpProduct ceErpProduct = CeErpProduct.Get(ceErpTradeCell.ProductId);
  262. Dictionary<string, object> data = new Dictionary<string, object>();
  263. data.Add("orderNumber", ctid);
  264. data.Add("customerName", ceErpTrade.buyer_nick);
  265. DateTime dateTime = (DateTime)ceErpTradeCell.pay_time;
  266. data.Add("orderTime", dateTime.ToString("yyyy-MM-dd HH:mm:ss"));
  267. data.Add("commodityName", ceErpProduct.PType);
  268. data.Add("storeName", ceErpTrade.seller_nick);
  269. data.Add("orderRemark", ceErpTradeCell.seller_memo);
  270. string sql = string.Format("SELECT tid FROM [dbo].[view_ErpTradeCell] WITH(NOLOCK) WHERE (buyer_id = '{0}') and seller_nick = '{1}' and OrderState < 5 and IsSample = 0 ", ceErpTrade.buyer_id, ceErpTrade.seller_nick);
  271. DataTable dataTable = DbHelper.DbConn.ExecuteDataset(sql).Tables[0];
  272. int orderCount = 1;
  273. if (dataTable != null && dataTable.Rows != null && dataTable.Rows.Count > 0)
  274. {
  275. orderCount = dataTable.Rows.Count;
  276. }
  277. data.Add("orderCount", orderCount);
  278. ReturnSuccess(JsonConvert.SerializeObject(data));
  279. return;
  280. }
  281. //http://47.114.150.226:88/Handler/dataHelper.ashx?t=get_cell_info post请求参数(参数放body中):string tid(淘宝订单号)
  282. public void get_cell_info()
  283. {
  284. string tid = GetPostString("tid");
  285. string name = GetPostString("nickName");
  286. string where = "";
  287. List<string> rows = new List<string>();
  288. if (!string.IsNullOrEmpty(tid))
  289. {
  290. rows.Add(string.Format(" tid = '{0}' ", tid));
  291. }
  292. if (!string.IsNullOrEmpty(name))
  293. {
  294. rows.Add(string.Format(" buyer_nick = '{0}' ", name));
  295. }
  296. where = string.Join("and", rows);
  297. if (where == "")
  298. {
  299. returnErrorMsg("缺少必要参数");
  300. return;
  301. }
  302. string sql = string.Format("SELECT tid,ctid,payment,ProductName,OrderState,Material,Craft,ProductSize,ShopId,ProductCount,posCode,seller_nick,buyer_nick,buyer_id,FinishDesignTime FROM [dbo].[view_ErpTradeCell] WHERE {0}", where);
  303. DataTable dataTable = DbHelper.DbConn.ExecuteDataset(sql).Tables[0];
  304. List<Dictionary<string, object>> list = new List<Dictionary<string, object>>();
  305. if (dataTable != null && dataTable.Rows.Count > 0)
  306. {
  307. string shopCode = "";
  308. Dictionary<string, object> data = new Dictionary<string, object>();
  309. foreach (DataRow row in dataTable.Rows)
  310. {
  311. int OrderState = Convert.ToInt32(row["OrderState"]);
  312. string state = "";
  313. if (OrderState < 7)
  314. {
  315. state = "待发货";
  316. }
  317. else if (OrderState == 7)
  318. {
  319. state = "已发货";
  320. }
  321. else if (OrderState == 8)
  322. {
  323. state = "交易完成";
  324. }
  325. else if (OrderState == 9)
  326. {
  327. state = "交易关闭";
  328. }
  329. data = new Dictionary<string, object>();
  330. data.Add("tid", row["tid"]);
  331. data.Add("OrderState", state);
  332. data.Add("state", OrderState);
  333. data.Add("shopCode", row["posCode"]);
  334. data.Add("buyerNick", row["buyer_nick"]);
  335. data.Add("buyerId", row["buyer_id"]);
  336. data.Add("shopName", row["seller_nick"]);
  337. data.Add("ctid", row["ctid"]);
  338. data.Add("payment", row["payment"]);
  339. data.Add("Material", row["Material"]);
  340. data.Add("Craft", row["Craft"]);
  341. data.Add("ProductSize", row["ProductSize"]);
  342. data.Add("ProductCount", row["ProductCount"]);
  343. data.Add("ProductName", row["ProductName"]);
  344. data.Add("FinishDesignTime", row["FinishDesignTime"]);
  345. if (string.IsNullOrEmpty(row["posCode"].ToString()) && !string.IsNullOrEmpty(shopCode))
  346. {
  347. data["shopCode"] = shopCode;
  348. }
  349. if (!string.IsNullOrEmpty(row["ShopId"].ToString()) && string.IsNullOrEmpty(shopCode) && string.IsNullOrEmpty(row["posCode"].ToString()))
  350. {
  351. string shopsql = string.Format("SELECT top 1 tid FROM [dbo].[CE_ErpTradeCell] WHERE ShopId = {0} AND OrderState = 8 and IsOffLineOrder =0", row["ShopId"]);
  352. DataTable shopData = DbHelper.DbConn.ExecuteDataset(shopsql).Tables[0];
  353. if (shopData != null && shopData.Rows.Count > 0)
  354. {
  355. CeErpTrade ceErpTrade = CeErpTrade.Get(shopData.Rows[0]["tid"].ToString());
  356. if (ceErpTrade != null)
  357. {
  358. data["shopCode"] = ceErpTrade.posCode;
  359. }
  360. }
  361. }
  362. shopCode = data["shopCode"].ToString();
  363. list.Add(data);
  364. }
  365. }
  366. ReturnSuccess(JsonConvert.SerializeObject(list));
  367. return;
  368. }
  369. public void getOrderInvoiceInfo()
  370. {
  371. string tids = GetPostString("tids");
  372. List<string> list = tids.Split(',').ToList();
  373. return;
  374. }
  375. //http://47.114.150.226:88/Handler/dataHelper.ashx?t=update_spu_info post请求参数(参数放body中):string spuId(淘宝订单号)
  376. public void update_spu_info()
  377. {
  378. string spuId = GetPostString("spuId");
  379. string category = GetPostString("category");
  380. string serialNumber = GetPostString("serialNumber");
  381. string operate = GetPostString("operate");
  382. string designer = GetPostString("designer");
  383. string atta = GetPostString("atta");
  384. string upTime = GetPostString("upTime");
  385. int shopId = GetPostInt("shopId");
  386. if (!string.IsNullOrEmpty(spuId))
  387. {
  388. CeErpTradeSpu spu = CeErpTradeSpu.GetBySpuId(spuId);
  389. if (spu == null)
  390. {
  391. returnErrorMsg("找不到对应id");
  392. return;
  393. }
  394. spu.category = category;
  395. spu.serialNumber = serialNumber;
  396. spu.operate = operate;
  397. spu.designer = designer;
  398. spu.atta = atta;
  399. spu.shopId = shopId;
  400. spu.upTime = DateTime.Parse(upTime);
  401. spu.Update();
  402. returnSuccess("修改成功!");
  403. return;
  404. }
  405. returnErrorMsg("缺少必要参数");
  406. }
  407. static string pUrl = "http://36.140.138.139:688/api/";
  408. static string CLIENT_Id = "xclient";
  409. static string CLIENT_SECRET = "0a417ecce58c31b32364ce19ca8fcd15";
  410. static string USER_ID = "ca2d316357fa4e09b9c2aa9f7b2ca3d9";
  411. public static string getSaleOrderSn()
  412. {
  413. string orderSn = "";
  414. string post_url = "http://api.presales.lingtao8.com/open/order/generateSplitOrderUniqueNos/1";
  415. try
  416. {
  417. string remoteInfo = httpSaleContent(HttpMethod.Get, post_url, new Dictionary<string, string>());
  418. saleOrderResponse dataTokenBean = JsonConvert.DeserializeObject<saleOrderResponse>(remoteInfo);
  419. if ("200".Equals(dataTokenBean.code))
  420. {
  421. orderSn = dataTokenBean.data[0];
  422. }
  423. }
  424. catch (Exception ex)
  425. {
  426. XLog.SaveLog(0, "getSaleOrderSn:" + ex.Message);
  427. }
  428. return orderSn;
  429. }
  430. public static void api_orderBack(string orderNumber, string state, string content)
  431. {
  432. string post_url = "http://api.presales.lingtao8.com/open/order/orderProcessReturn";
  433. //string post_url = "http://admin.lingtao.zmht888.com/prod-api/open/order/orderProcessReturn";
  434. string remoteInfo = "";
  435. string param = JsonConvert.SerializeObject(new
  436. {
  437. orderSplitNo = orderNumber,
  438. errorStatus = state,
  439. reason = content
  440. });
  441. Dictionary<string, string> map = new Dictionary<string, string>();
  442. map.Add("orderSplitNo", orderNumber);
  443. map.Add("errorStatus", state);
  444. map.Add("reason", content);
  445. try
  446. {
  447. remoteInfo = httpSaleContent(HttpMethod.Post, post_url, map);
  448. }
  449. catch (Exception ex)
  450. {
  451. XLog.SaveLog(0, "api_orderBack:" + ex.Message);
  452. }
  453. }
  454. public static long GetTimeStamp()
  455. {
  456. return DateTimeOffset.Now.ToUnixTimeSeconds();
  457. }
  458. public static string getToken()
  459. {
  460. //return "eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJhdWQiOlsiYXBpIl0sInNjb3BlIjpbInJlYWQiLCJ3cml0ZSJdLCJleHAiOjE3MzU5NjU0ODAsImF1dGhvcml0aWVzIjpbIm9wZW5hcGkiXSwianRpIjoiYjY4NTRhZjctZjNmMy00OTU0LTk4ZmUtZDRlZTE4ZDllNzQyIiwiY2xpZW50X2lkIjoieGNsaWVudCJ9.E6U0NVMZPcUypl4P7L5718J1X8UxSJg9R7vZX_oMkuEJ-yelNXuYwu7-eAi1JTgIJ0GuuviQu-KEAH-W7sHb7t-JJJc-wLPMsLKmpwQDG2EpiRK5hW5ZmyUgL8rPuTUawKVP5k8SGrN60sVyXA2zKm4ztEQ39EGudXnam1Lld2w";
  461. string token = "";
  462. if (RedisHelper.HasKey("xclient_token"))
  463. {
  464. token = RedisHelper.StringGet("xclient_token").ToString();
  465. if (RedisHelper.HasKey("token_end"))
  466. {
  467. string token_end = RedisHelper.StringGet("token_end").ToString();
  468. long token_endtime = Convert.ToInt64(token_end);
  469. long currentTime = GetTimeStamp();
  470. if (currentTime <= token_endtime)
  471. {
  472. return token;
  473. }
  474. }
  475. }
  476. string post_url = pUrl + "oauth/token";
  477. WebClient wc = new WebClient();
  478. wc.Encoding = Encoding.GetEncoding("utf-8");
  479. List<string> headers = new List<string>();
  480. headers.Add("grant_type=client_credentials");
  481. headers.Add("client_id=" + CLIENT_Id);
  482. headers.Add("client_secret=" + CLIENT_SECRET);
  483. post_url += "?" + string.Join("&", headers);
  484. NameValueCollection PostVars = new NameValueCollection();
  485. string remoteInfo = "";
  486. try
  487. {
  488. byte[] ret = wc.UploadValues(post_url, "POST", PostVars);
  489. remoteInfo = Encoding.GetEncoding("utf-8").GetString(ret);
  490. //remoteInfo = "{\"access_token\":\"eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJhdWQiOlsiYXBpIl0sInNjb3BlIjpbInJlYWQiLCJ3cml0ZSJdLCJleHAiOjE3MjM3OTk0MTUsImF1dGhvcml0aWVzIjpbIm9wZW5hcGkiXSwianRpIjoiZjdhOGVjNmMtOWUyMS00MDZhLWEzNzktYjI0MTU3OTE0ODJmIiwiY2xpZW50X2lkIjoieGNsaWVudCJ9.EL-El6M9AVXvH_hp9E4wqM17sHwynyJBDcZJHYw4AYdJrYAWHEu78-Gn3Hj4FyfDaIkqNk641XSAfVpTiH_sFeTSl8-glSJEeD7OFKSkoJjrj0_Ft7kFZZs0XAhbgo4m5rI3Qbeq_87_0K5wKqRcygjUee82MFcIDueTcUg3p9c\",\"token_type\":\"bearer\",\"expires_in\":2052,\"scope\":\"read write\",\"jti\":\"f7a8ec6c-9e21-406a-a379-b2415791482f\",\"aud\":[\"api\"],\"exp\":1723799415,\"authorities\":[\"openapi\"],\"client_id\":\"xclient\"}";
  491. dataTokenBean dataTokenBean = JsonConvert.DeserializeObject<dataTokenBean>(remoteInfo);
  492. token = dataTokenBean.access_token;
  493. string timeEnd = dataTokenBean.exp;
  494. RedisHelper.StringSet("xclient_token", token);
  495. RedisHelper.StringSet("token_end", timeEnd);
  496. }
  497. catch (Exception ex)
  498. {
  499. }
  500. return token;
  501. }
  502. /// <summary>
  503. /// 获取店铺信息
  504. /// </summary>
  505. /// <param name="shopId"></param>
  506. /// <returns></returns>
  507. public static shopInfo getShopDataInfo(string shopId)
  508. {
  509. try
  510. {
  511. string post_url = pUrl + "openapi/v3/bo/list";
  512. string param = JsonConvert.SerializeObject(new
  513. {
  514. schemaCode = "Store_01",
  515. userId = USER_ID,
  516. queryCondition = new
  517. {
  518. operatorType = 1,
  519. propertyCode = "ErpshopId",
  520. propertyValue = shopId
  521. }
  522. });
  523. string data = httpContent(post_url, param);
  524. dataShopResponseVo dataResponseVos = JsonConvert.DeserializeObject<dataShopResponseVo>(data);
  525. if (dataResponseVos != null && "0".Equals(dataResponseVos.errcode))
  526. {
  527. if (dataResponseVos.data.bizObjectPage.content.Count > 0)
  528. {
  529. return dataResponseVos.data.bizObjectPage.content[0].data;
  530. }
  531. }
  532. }
  533. catch (Exception ex)
  534. {
  535. }
  536. return null;
  537. }
  538. /// <summary>
  539. /// 获取spu信息
  540. /// </summary>
  541. /// <param name="spuId"></param>
  542. /// <returns></returns>
  543. public static spuInfo getSpuInfo(string spuId)
  544. {
  545. try
  546. {
  547. string post_url = pUrl + "openapi/v3/bo/list";
  548. string param = JsonConvert.SerializeObject(new
  549. {
  550. schemaCode = "lianjieku_01_01",
  551. userId = USER_ID,
  552. queryCondition = new
  553. {
  554. operatorType = 1,
  555. propertyCode = "ShortText1728890649488",
  556. propertyValue = spuId
  557. }
  558. });
  559. string data = httpContent(post_url, param);
  560. dataSpuInfoResponseVo dataResponseVos = JsonConvert.DeserializeObject<dataSpuInfoResponseVo>(data);
  561. if (dataResponseVos != null && "0".Equals(dataResponseVos.errcode))
  562. {
  563. if (dataResponseVos.data.bizObjectPage.content.Count > 0)
  564. {
  565. return dataResponseVos.data.bizObjectPage.content[0].data;
  566. }
  567. }
  568. }
  569. catch (Exception ex)
  570. {
  571. }
  572. return null;
  573. }
  574. /// <summary>
  575. /// 订单发货是否存在
  576. /// </summary>
  577. /// <param name="dataSendOrderBean"></param>
  578. /// <returns></returns>
  579. public static string checkOrderAlready(dataSendOrderBean dataSendOrderBean)
  580. {
  581. try
  582. {
  583. string post_url = pUrl + "openapi/v3/bo/list";
  584. string param = JsonConvert.SerializeObject(new
  585. {
  586. schemaCode = "dingdanfahuo_01",
  587. userId = USER_ID,
  588. queryCondition = new
  589. {
  590. operatorType = 1,
  591. propertyCode = "ShortText1723707899761",
  592. propertyValue = dataSendOrderBean.ShortText1723707899761
  593. }
  594. });
  595. string data = httpContent(post_url, param);
  596. dataShopResponseVo dataResponseVos = JsonConvert.DeserializeObject<dataShopResponseVo>(data);
  597. if (dataResponseVos != null && "0".Equals(dataResponseVos.errcode))
  598. {
  599. if (dataResponseVos.data.bizObjectPage.content.Count > 0)
  600. {
  601. return dataResponseVos.data.bizObjectPage.content[0].bizObjectId;
  602. }
  603. return "";
  604. }
  605. }
  606. catch (Exception ex)
  607. {
  608. }
  609. return "";
  610. }
  611. /// <summary>
  612. /// 车间id获取信息
  613. /// </summary>
  614. /// <param name="supplerId"></param>
  615. /// <returns></returns>
  616. public static string getSupplerDataInfo(string supplerId)
  617. {
  618. try
  619. {
  620. string post_url = pUrl + "openapi/v3/bo/list";
  621. string param = JsonConvert.SerializeObject(new
  622. {
  623. schemaCode = "gongyingshang_01",
  624. userId = USER_ID,
  625. queryCondition = new
  626. {
  627. operatorType = 1,
  628. propertyCode = "ErpSupplierId",
  629. propertyValue = supplerId
  630. }
  631. });
  632. string data = httpContent(post_url, param);
  633. dataShopResponseVo dataResponseVos = JsonConvert.DeserializeObject<dataShopResponseVo>(data);
  634. if (dataResponseVos != null && "0".Equals(dataResponseVos.errcode))
  635. {
  636. if (dataResponseVos.data.bizObjectPage.content.Count > 0)
  637. {
  638. return dataResponseVos.data.bizObjectPage.content[0].data.id;
  639. }
  640. }
  641. }
  642. catch (Exception ex)
  643. {
  644. }
  645. return "";
  646. }
  647. /// <summary>
  648. /// 推送发货信息
  649. /// </summary>
  650. /// <param name="dataSendOrderBean"></param>
  651. /// <returns></returns>
  652. public static dataResponseVo CreateBoFahuo(dataSendOrderBean dataSendOrderBean)
  653. {
  654. string post_url = pUrl + "openapi/v3/bo/create";
  655. shopInfo shop = getShopDataInfo(dataSendOrderBean.RelevanceForm1723191239149);
  656. if (shop != null)
  657. {
  658. dataSendOrderBean.RelevanceForm1723191239149 = shop.id;
  659. }
  660. dataSendOrderBean.RelevanceForm1723191634028 = getSupplerDataInfo(dataSendOrderBean.RelevanceForm1723191634028);
  661. string bizObjectId = checkOrderAlready(dataSendOrderBean);
  662. if (!string.IsNullOrEmpty(bizObjectId))
  663. {
  664. post_url = pUrl + "openapi/v3/bo/update";
  665. dataSendOrderBean.id = bizObjectId;
  666. }
  667. string param = JsonConvert.SerializeObject(new
  668. {
  669. schemaCode = "dingdanfahuo_01",
  670. userId = USER_ID,
  671. data = dataSendOrderBean
  672. });
  673. dataResponseVo dataResponseVos = null;
  674. try
  675. {
  676. string data = httpContent(post_url, param);
  677. dataResponseVos = JsonConvert.DeserializeObject<dataResponseVo>(data);
  678. return dataResponseVos;
  679. }
  680. catch (Exception ex)
  681. {
  682. dataResponseVos = new dataResponseVo();
  683. dataResponseVos.errcode = "1";
  684. dataResponseVos.errmsg = ex.Message;
  685. }
  686. return dataResponseVos;
  687. }
  688. /// <summary>
  689. /// 推送spu信息
  690. /// </summary>
  691. /// <param name="bean"></param>
  692. /// <returns></returns>
  693. public static dataResponseVo sendSpuInfo(dataSendSpuBean bean)
  694. {
  695. string post_url = pUrl + "openapi/v3/bo/create";
  696. shopInfo shop = getShopDataInfo(bean.shopId);
  697. if (shop != null)
  698. {
  699. bean.RelevanceForm1728891053364 = shop.id;
  700. bean.operation = shop.operation;
  701. }
  702. spuInfo info = getSpuInfo(bean.ShortText1728890649488);
  703. if (info != null)
  704. {
  705. return null;
  706. bean.StaffSingle1728891078584 = info.StaffSingle1728891078584;
  707. bean.Date1728891021647 = info.Date1728891021647;
  708. bean.ShortText1729677042659 = info.ShortText1729677067460;
  709. bean.ShortText1728891031267 = info.ShortText1728891031267;
  710. }
  711. string param = JsonConvert.SerializeObject(new
  712. {
  713. schemaCode = "lianjieku_01",
  714. userId = USER_ID,
  715. data = bean
  716. });
  717. dataResponseVo dataResponseVos = null;
  718. try
  719. {
  720. string data = httpContent(post_url, param);
  721. dataResponseVos = JsonConvert.DeserializeObject<dataResponseVo>(data);
  722. return dataResponseVos;
  723. }
  724. catch (Exception ex)
  725. {
  726. dataResponseVos = new dataResponseVo();
  727. dataResponseVos.errcode = "1";
  728. dataResponseVos.errmsg = ex.Message;
  729. }
  730. return dataResponseVos;
  731. }
  732. /// <summary>
  733. /// 主订单数据
  734. /// </summary>
  735. /// <param name="bean"></param>
  736. /// <returns></returns>
  737. public static dataResponseVo sendErpTradeInfo(dataSendTradeBean bean)
  738. {
  739. string post_url = pUrl + "openapi/v3/bo/create";
  740. string bizObjectId = checkErpTradeAlready(bean);
  741. if (!string.IsNullOrEmpty(bizObjectId))
  742. {
  743. post_url = pUrl + "openapi/v3/bo/update";
  744. bean.id = bizObjectId;
  745. }
  746. string param = JsonConvert.SerializeObject(new
  747. {
  748. schemaCode = "zhudingdan_01",
  749. userId = USER_ID,
  750. data = bean
  751. });
  752. dataResponseVo dataResponseVos = null;
  753. try
  754. {
  755. string data = httpContent(post_url, param);
  756. dataResponseVos = JsonConvert.DeserializeObject<dataResponseVo>(data);
  757. return dataResponseVos;
  758. }
  759. catch (Exception ex)
  760. {
  761. dataResponseVos = new dataResponseVo();
  762. dataResponseVos.errcode = "1";
  763. dataResponseVos.errmsg = ex.Message;
  764. }
  765. return dataResponseVos;
  766. }
  767. /// <summary>
  768. /// 校验主订单是否存在
  769. /// </summary>
  770. /// <param name="dataSendOrderBean"></param>
  771. /// <returns></returns>
  772. public static string checkErpTradeAlready(dataSendTradeBean dataSendOrderBean)
  773. {
  774. try
  775. {
  776. string post_url = pUrl + "openapi/v3/bo/list";
  777. string param = JsonConvert.SerializeObject(new
  778. {
  779. schemaCode = "zhudingdan_01",
  780. userId = USER_ID,
  781. queryCondition = new
  782. {
  783. operatorType = 1,
  784. propertyCode = "ShortText1724739958776",
  785. propertyValue = dataSendOrderBean.ShortText1724739958776
  786. }
  787. });
  788. string data = httpContent(post_url, param);
  789. dataShopResponseVo dataResponseVos = JsonConvert.DeserializeObject<dataShopResponseVo>(data);
  790. if (dataResponseVos != null && "0".Equals(dataResponseVos.errcode))
  791. {
  792. if (dataResponseVos.data.bizObjectPage.content.Count > 0)
  793. {
  794. return dataResponseVos.data.bizObjectPage.content[0].bizObjectId;
  795. }
  796. return "";
  797. }
  798. }
  799. catch (Exception ex)
  800. {
  801. }
  802. return "";
  803. }
  804. /// <summary>
  805. /// 拆订单数据
  806. /// </summary>
  807. /// <param name="bean"></param>
  808. /// <returns></returns>
  809. public static dataResponseVo sendErpTradeCellInfo(dataSendTradeCellBean bean)
  810. {
  811. string post_url = pUrl + "openapi/v3/bo/create";
  812. string bizObjectId = checkErpTradeCellAlready(bean);
  813. if (!string.IsNullOrEmpty(bizObjectId))
  814. {
  815. post_url = pUrl + "openapi/v3/bo/update";
  816. bean.id = bizObjectId;
  817. }
  818. string tid_id = checkErpTradeAlready(new dataSendTradeBean(bean.tid));
  819. if (!string.IsNullOrEmpty(tid_id))
  820. {
  821. bean.RelevanceForm1724834153527 = tid_id;
  822. }
  823. shopInfo shop = getShopDataInfo(bean.shopId);
  824. if (shop != null)
  825. {
  826. bean.RelevanceForm1717742363336 = shop.id;
  827. }
  828. string param = JsonConvert.SerializeObject(new
  829. {
  830. schemaCode = "orders_01",
  831. userId = USER_ID,
  832. data = bean
  833. });
  834. dataResponseVo dataResponseVos = null;
  835. try
  836. {
  837. string data = httpContent(post_url, param);
  838. dataResponseVos = JsonConvert.DeserializeObject<dataResponseVo>(data);
  839. return dataResponseVos;
  840. }
  841. catch (Exception ex)
  842. {
  843. dataResponseVos = new dataResponseVo();
  844. dataResponseVos.errcode = "1";
  845. dataResponseVos.errmsg = ex.Message;
  846. }
  847. return dataResponseVos;
  848. }
  849. /// <summary>
  850. /// 校验拆订单是否存在
  851. /// </summary>
  852. /// <param name="dataSendOrderBean"></param>
  853. /// <returns></returns>
  854. public static string checkErpTradeCellAlready(dataSendTradeCellBean dataSendOrderBean)
  855. {
  856. try
  857. {
  858. string post_url = pUrl + "openapi/v3/bo/list";
  859. string param = JsonConvert.SerializeObject(new
  860. {
  861. schemaCode = "orders_01",
  862. userId = USER_ID,
  863. queryCondition = new
  864. {
  865. operatorType = 1,
  866. propertyCode = "ShortText1717720509648",
  867. propertyValue = dataSendOrderBean.ShortText1717720509648
  868. }
  869. });
  870. string data = httpContent(post_url, param);
  871. dataShopResponseVo dataResponseVos = JsonConvert.DeserializeObject<dataShopResponseVo>(data);
  872. if (dataResponseVos != null && "0".Equals(dataResponseVos.errcode))
  873. {
  874. if (dataResponseVos.data.bizObjectPage.content.Count > 0)
  875. {
  876. return dataResponseVos.data.bizObjectPage.content[0].bizObjectId;
  877. }
  878. return "";
  879. }
  880. }
  881. catch (Exception ex)
  882. {
  883. }
  884. return "";
  885. }
  886. /// <summary>
  887. /// 更新数据
  888. /// </summary>
  889. /// <param name="map"></param>
  890. /// <param name="ctid"></param>
  891. /// <returns></returns>
  892. public static dataResponseVo updateErpTradeCell(Dictionary<string, string> map, string ctid)
  893. {
  894. return null;
  895. string post_url = pUrl + "openapi/v3/bo/update";
  896. dataResponseVo dataResponseVos = null;
  897. dataSendTradeCellBean bean = new dataSendTradeCellBean();
  898. if (string.IsNullOrEmpty(ctid))
  899. {
  900. dataResponseVos = new dataResponseVo();
  901. dataResponseVos.errcode = "1";
  902. dataResponseVos.errmsg = "未找到订单";
  903. return dataResponseVos;
  904. }
  905. bean.ShortText1717720509648 = ctid;
  906. string bizObjectId = checkErpTradeCellAlready(bean);
  907. if (string.IsNullOrEmpty(bizObjectId))
  908. {
  909. dataResponseVos = new dataResponseVo();
  910. dataResponseVos.errcode = "1";
  911. dataResponseVos.errmsg = "未找到订单";
  912. return dataResponseVos;
  913. }
  914. map.Add("id", bizObjectId);
  915. string param = JsonConvert.SerializeObject(new
  916. {
  917. schemaCode = "orders_01",
  918. userId = USER_ID,
  919. data = map
  920. });
  921. try
  922. {
  923. string data = httpContent(post_url, param);
  924. dataResponseVos = JsonConvert.DeserializeObject<dataResponseVo>(data);
  925. return dataResponseVos;
  926. }
  927. catch (Exception ex)
  928. {
  929. dataResponseVos = new dataResponseVo();
  930. dataResponseVos.errcode = "1";
  931. dataResponseVos.errmsg = ex.Message;
  932. }
  933. return dataResponseVos;
  934. }
  935. /// <summary>
  936. /// 子订单数据
  937. /// </summary>
  938. /// <param name="bean"></param>
  939. /// <returns></returns>
  940. public static dataResponseVo sendErpTradeOrderInfo(dataSendTradeOrderBean bean)
  941. {
  942. string post_url = pUrl + "openapi/v3/bo/create";
  943. string bizObjectId = checkErpTradeOrderAlready(bean);
  944. if (!string.IsNullOrEmpty(bizObjectId))
  945. {
  946. post_url = pUrl + "openapi/v3/bo/update";
  947. bean.id = bizObjectId;
  948. }
  949. string tid_id = checkErpTradeAlready(new dataSendTradeBean(bean.ShortText1724898549414));
  950. if (!string.IsNullOrEmpty(tid_id))
  951. {
  952. bean.RelevanceForm1724898561483 = tid_id;
  953. }
  954. string param = JsonConvert.SerializeObject(new
  955. {
  956. schemaCode = "zidingdan_01",
  957. userId = USER_ID,
  958. data = bean
  959. });
  960. dataResponseVo dataResponseVos = null;
  961. try
  962. {
  963. string data = httpContent(post_url, param);
  964. dataResponseVos = JsonConvert.DeserializeObject<dataResponseVo>(data);
  965. return dataResponseVos;
  966. }
  967. catch (Exception ex)
  968. {
  969. dataResponseVos = new dataResponseVo();
  970. dataResponseVos.errcode = "1";
  971. dataResponseVos.errmsg = ex.Message;
  972. }
  973. return dataResponseVos;
  974. }
  975. /// <summary>
  976. /// 校验子订单是否存在
  977. /// </summary>
  978. /// <param name="dataSendOrderBean"></param>
  979. /// <returns></returns>
  980. public static string checkErpTradeOrderAlready(dataSendTradeOrderBean dataSendOrderBean)
  981. {
  982. try
  983. {
  984. string post_url = pUrl + "openapi/v3/bo/list";
  985. string param = JsonConvert.SerializeObject(new
  986. {
  987. schemaCode = "zidingdan_01",
  988. userId = USER_ID,
  989. queryCondition = new
  990. {
  991. operatorType = 1,
  992. propertyCode = "ShortText1724898595268",
  993. propertyValue = dataSendOrderBean.ShortText1724898595268
  994. }
  995. });
  996. string data = httpContent(post_url, param);
  997. dataShopResponseVo dataResponseVos = JsonConvert.DeserializeObject<dataShopResponseVo>(data);
  998. if (dataResponseVos != null && "0".Equals(dataResponseVos.errcode))
  999. {
  1000. if (dataResponseVos.data.bizObjectPage.content.Count > 0)
  1001. {
  1002. return dataResponseVos.data.bizObjectPage.content[0].bizObjectId;
  1003. }
  1004. return "";
  1005. }
  1006. }
  1007. catch (Exception ex)
  1008. {
  1009. }
  1010. return "";
  1011. }
  1012. static HttpClient client = new HttpClient();
  1013. private static string httpSaleContent(HttpMethod httpMethod, string post_url, Dictionary<string, string> map)
  1014. {
  1015. var request = new HttpRequestMessage
  1016. {
  1017. Method = httpMethod,
  1018. RequestUri = new Uri(post_url),
  1019. Headers =
  1020. {
  1021. { "token", "Zk2ncXqH8hFyA6Rj"},
  1022. }
  1023. };
  1024. if (map.Keys.Count > 0)
  1025. {
  1026. request.Content = new FormUrlEncodedContent(map);
  1027. }
  1028. var task = Task.Run(() =>
  1029. {
  1030. try
  1031. {
  1032. var response = client.SendAsync(request).Result;
  1033. response.EnsureSuccessStatusCode();
  1034. return response.Content.ReadAsStringAsync().Result;
  1035. }
  1036. catch (Exception ex)
  1037. {
  1038. return "";
  1039. }
  1040. });
  1041. return task.Result;
  1042. }
  1043. private static string httpContent(string post_url, string content)
  1044. {
  1045. string token = getToken();
  1046. var request = new HttpRequestMessage
  1047. {
  1048. Method = HttpMethod.Post,
  1049. RequestUri = new Uri(post_url),
  1050. Headers =
  1051. {
  1052. { "Authorization", "Bearer " + token },
  1053. },
  1054. Content = new StringContent(content)
  1055. {
  1056. Headers =
  1057. {
  1058. ContentType = new MediaTypeHeaderValue("application/json")
  1059. }
  1060. }
  1061. };
  1062. var task = Task.Run(() =>
  1063. {
  1064. try
  1065. {
  1066. var response = client.SendAsync(request).Result;
  1067. response.EnsureSuccessStatusCode();
  1068. return response.Content.ReadAsStringAsync().Result;
  1069. }
  1070. catch (Exception e)
  1071. {
  1072. return "";
  1073. }
  1074. });
  1075. return task.Result;
  1076. }
  1077. }
  1078. }