dataHelper.cs 36 KB

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