SzytDataService.cs 20 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Xml.Linq;
  5. using Gs.DataPush.WebApi.SzytDataInfrace;
  6. using Newtonsoft.Json;
  7. using SysBaseLibs;
  8. using SysDataLibs.TableClass;
  9. namespace Gs.DataPush.WebApi.ApiService
  10. {
  11. public class SzytDataService
  12. {
  13. public static SzytDataService Instance { get; }=new SzytDataService();
  14. private static string Token { get; set; } = "";
  15. private bool FisrtPush { get; set; } = true;
  16. public string GetToken()
  17. {
  18. string lcToken = "";
  19. sDataInfraceSoapClient loYtInterface = new sDataInfraceSoapClient();
  20. GetYtApiName(out string name,out string password);
  21. //string userInfo = SysDataLibs.AppEnv.SysSetObj.GetString("YTInterfaceLoginInfo");
  22. string userInfo = "<webService><request><name>" + name + "</name><password>" + password +
  23. "</password></request></webService>";
  24. this.LogInfo("【YT-GetToken-Start:" + userInfo);
  25. string lcTokenInfo = loYtInterface.checkIn(userInfo);
  26. this.LogInfo("YT-GetToken-END】:"+ lcTokenInfo);
  27. rsXmlNode loMainNode = rsXmlNode.ParseGenericXml(lcTokenInfo);
  28. rsXmlNode loResponseNode = loMainNode?.GetChildNode("response");
  29. if (loResponseNode != null)
  30. {
  31. lcToken = loResponseNode.GetChildValue("tokenNo");
  32. }
  33. return lcToken;
  34. }
  35. public string PushData(List<CheckData> poCheckDatas)
  36. {
  37. List<QuickCheckItemJC> loDataList = DataTrans(poCheckDatas);
  38. head loHead = GetHead(poCheckDatas.FirstOrDefault()?.MarketID);
  39. string lcRetval = PushData(new webService(){head = loHead,request = new request(){dataList = loDataList}});
  40. return lcRetval;
  41. }
  42. public string PushData(webService obj)
  43. {
  44. string xmlStr = SerializerHelper.SerializerToString(obj);
  45. string lcRetval = PushData(xmlStr);
  46. return lcRetval;
  47. }
  48. public string PushData(string xmlStr)
  49. {
  50. sDataInfraceSoapClient loYtInterface = new sDataInfraceSoapClient();
  51. this.LogInfo("【YT-QuickCheckItemInfo-Start:" + xmlStr);
  52. string lcRetval = loYtInterface.saveQuickCheckItemInfo(xmlStr);
  53. this.LogInfo("YT-QuickCheckItemInfo-END】:" + lcRetval);
  54. if (FisrtPush && lcRetval.Contains("令牌号已过期"))
  55. {
  56. FisrtPush = false;
  57. string lcToken = GetToken();
  58. xmlStr = xmlStr.Contains("<tokenNo />") ? xmlStr.Replace("<tokenNo />", "<tokenNo>" + lcToken + "</tokenNo>") : xmlStr.Replace("<tokenNo>" + Token + "</tokenNo>", "<tokenNo>" + lcToken + "</tokenNo>");
  59. Token = lcToken;
  60. lcRetval = PushData(xmlStr);
  61. }
  62. else
  63. {
  64. FisrtPush = true;
  65. }
  66. return lcRetval;
  67. }
  68. #region 拼接webService对象(私有方法)
  69. private head GetHead(string marketId)
  70. {
  71. if (string.IsNullOrEmpty(marketId))
  72. return new head();
  73. head loHead = new head()
  74. {
  75. CardIndex = GetMarketCardIndex(marketId),
  76. marketCode = GetMarketLicenseNo(marketId),
  77. marketName = GetMarketName(marketId),
  78. tokenNo = Token
  79. };
  80. return loHead;
  81. }
  82. private QuickCheckItemJC DataTrans(CheckData poCheckData)
  83. {
  84. QuickCheckItemJC loQuickCheckItemJc = new QuickCheckItemJC()
  85. {
  86. JCCode = Guid.NewGuid().ToString().Replace("-", ""),
  87. //scLicenseNo = GetMarketSellerLicenseNo(poCheckData.MarketID,poCheckData.CorpName),
  88. //scUnitName = GetMarketSellerName(poCheckData.MarketID, poCheckData.CorpName),
  89. //DABH = GetMarketSellerDabh(poCheckData.MarketID, poCheckData.CorpName),
  90. //PositionNo = poCheckData.CorpName,
  91. //MarketType = "2",
  92. scCardIndex=poCheckData.CardIndex,
  93. scLicenseNo = poCheckData.LicenseNo,
  94. scUnitName = poCheckData.UnitName,
  95. DABH = poCheckData.IdCode,
  96. PositionNo = poCheckData.PositionNo,
  97. Name = poCheckData.CorpNameName,
  98. //MarketType = poCheckData.CorpKind,
  99. MarketType = "2",
  100. SubItemCode = GetSubItemCode(poCheckData.SampleId),
  101. SubItemName = poCheckData.SampleName,
  102. QuickCheckDate = poCheckData.UploadTime,
  103. QuickCheckItemCode = GetCheckItemCode(poCheckData.CheckProjectTypeID),
  104. QuickCheckSubItemCode = GetCheckSubItemCode(poCheckData.CheckProjectTypeID),
  105. QuickCheckResult = poCheckData.CheckResult == "合格" ? "-" : "+",
  106. QuickCheckResultValue = poCheckData.CheckValue,
  107. //QuickCheckResultValueUnit = "",
  108. QuickCheckUnitId = GetMarketLicenseNo(poCheckData.MarketID),
  109. QuickCheckUnitName = GetMarketLicenseName(poCheckData.MarketID),
  110. QuickCheckResultValueUnit = poCheckData.CheckValue,
  111. QuickCheckResultValueCKarea = poCheckData.CheckLimit,
  112. QuickCheckResultDependOn = "",
  113. QuickCheckRemarks = "",
  114. QuickChecker = poCheckData.CheckUser,
  115. QuickReChecker = poCheckData.CheckUser,
  116. JCManufactor = poCheckData.MachineMaker,
  117. JCModel = poCheckData.MachineID,
  118. JCSN = "",
  119. ReviewIs = "0"
  120. };
  121. //loQuickCheckItemJc.JCCode = Guid.NewGuid().ToString().Replace("-", ""); //检测编号
  122. ////loQuickCheckItemJc.DABH = loStallInfo.IdCard;//"320502194701151534"; //经营户身份证号码
  123. //loQuickCheckItemJc.PositionNo = poCheckData.CorpName;// poCheckData.CorpName; //摊位编号
  124. ////loQuickCheckItemJc.Name = loStallInfo.MarketSellerName;//"韩国金"; //经营户姓名 Y
  125. //loQuickCheckItemJc.SubItemCode = poCheckData.SampleId; //抽检的品种编码 Y
  126. //loQuickCheckItemJc.SubItemName = poCheckData.SampleName; //抽检的品种名称 Y
  127. //loQuickCheckItemJc.QuickCheckDate = poCheckData.UploadTime; //检测时间 Y
  128. //loQuickCheckItemJc.QuickCheckItemCode = loCheckMapping.szCheckItemTypeGreatCode; //检测项目分类编号 Y
  129. //loQuickCheckItemJc.QuickCheckSubItemCode = loCheckMapping.szCheckItemTypeLittleCode; //检测项目小类编号 Y
  130. //loQuickCheckItemJc.QuickCheckResult = poCheckData.CheckResult == "合格" ? "-" : "+"; //检测项目结果(定性值) Y (+ / -)
  131. //loQuickCheckItemJc.QuickCheckResultValue = poCheckData.CheckValue; //检测项目结果值
  132. //loQuickCheckItemJc.QuickCheckResultValueUnit = ""; //实际值单位
  133. //loQuickCheckItemJc.QuickCheckResultValueCKarea = poCheckData.CheckLimit; //检测项目结果值参考范围
  134. //loQuickCheckItemJc.QuickCheckResultDependOn = ""; //检测依据
  135. //loQuickCheckItemJc.QuickCheckRemarks = ""; //检测备注
  136. //loQuickCheckItemJc.QuickChecker = poCheckData.CheckUser; //检测人姓名 Y
  137. //loQuickCheckItemJc.QuickReChecker = poCheckData.CheckUser; //复核人员姓名 Y
  138. //loQuickCheckItemJc.JCManufactor = poCheckData.MachineMaker; //检测设备厂家名
  139. //loQuickCheckItemJc.JCModel = poCheckData.MachineID; //检测设备型号
  140. //loQuickCheckItemJc.JCSN = "";
  141. return loQuickCheckItemJc;
  142. }
  143. private List<QuickCheckItemJC> DataTrans(List<CheckData> poCheckDatas)
  144. {
  145. List<QuickCheckItemJC> loRetval = new List<QuickCheckItemJC>();
  146. foreach (var d in poCheckDatas)
  147. {
  148. loRetval.Add(DataTrans(d));
  149. }
  150. Cache.Clear();
  151. return loRetval;
  152. }
  153. #region 获取信息
  154. private string GetMarketSellerLicenseNo(string pcMarketId,string pcStallName)
  155. {
  156. string key = ("MarketSellerInfo_" + pcMarketId).Trim();
  157. var loQuery = QueryMarketSellersInfo(pcMarketId, pcStallName, key);
  158. string lcRetval = loQuery?.LicenseNo ?? "";
  159. return lcRetval;
  160. }
  161. private string GetMarketSellerName(string pcMarketId, string pcStallName)
  162. {
  163. string key = ("MarketSellerInfo_" + pcMarketId).Trim();
  164. var loQuery = QueryMarketSellersInfo(pcMarketId, pcStallName, key);
  165. string lcRetval = loQuery?.Name ?? "";
  166. return lcRetval;
  167. }
  168. private string GetMarketSellerDabh(string pcMarketId, string pcStallName)
  169. {
  170. string key = ("MarketSellerInfo_" + pcMarketId).Trim();
  171. var loQuery = QueryMarketSellersInfo(pcMarketId, pcStallName, key);
  172. string lcRetval = loQuery?.IdCard ?? "";
  173. return lcRetval;
  174. }
  175. private string GetMarketLicenseNo(string pcMarketId)
  176. {
  177. string key = ("MarketInfo_" + pcMarketId).Trim();
  178. var loQuery = QueryMarketsInfo(pcMarketId, key);
  179. string lcRetval = loQuery?.LicenseNo ?? "";
  180. return lcRetval;
  181. }
  182. private string GetMarketLicenseName(string pcMarketId)
  183. {
  184. string key = ("MarketInfo_" + pcMarketId).Trim();
  185. var loQuery = QueryMarketsInfo(pcMarketId, key);
  186. string lcRetval = loQuery?.LicenseName ?? "";
  187. return lcRetval;
  188. }
  189. private string GetMarketCardIndex(string pcMarketId)
  190. {
  191. string key = ("MarketInfo_" + pcMarketId).Trim();
  192. var loQuery = QueryMarketsInfo(pcMarketId, key);
  193. string lcRetval = loQuery?.CardIndex ?? "";
  194. return lcRetval;
  195. }
  196. private string GetMarketName(string pcMarketId)
  197. {
  198. string key = ("MarketInfo_" + pcMarketId).Trim();
  199. var loQuery = QueryMarketsInfo(pcMarketId, key);
  200. string lcRetval = loQuery?.Names ?? "";
  201. return lcRetval;
  202. }
  203. private string GetSubItemCode(string pcSampleId)
  204. {
  205. string key = ("CategoryInfo_" + pcSampleId).Trim();
  206. var loQuery = QueryCategoryInfo(pcSampleId, key);
  207. string lcRetval = loQuery?.LocalNo ?? "";
  208. return lcRetval;
  209. }
  210. private string GetCheckItemCode(string pcCheckProjectTypeId)
  211. {
  212. string key = ("CheckItemMap_" + pcCheckProjectTypeId).Trim();
  213. var loQuery = QueryCheckCodeInfo(pcCheckProjectTypeId, key);
  214. string lcRetval = loQuery?.szCheckItemTypeGreatCode ?? "";
  215. return lcRetval;
  216. }
  217. private string GetCheckSubItemCode(string pcCheckProjectTypeId)
  218. {
  219. string key = ("CheckItemMap_" + pcCheckProjectTypeId).Trim();
  220. var loQuery = QueryCheckCodeInfo(pcCheckProjectTypeId, key);
  221. string lcRetval = loQuery?.szCheckItemTypeLittleCode ?? "";
  222. return lcRetval;
  223. }
  224. #endregion
  225. #region 查询数据库信息
  226. private MarketSellers_info QueryMarketSellersInfo(string pcMarketId,string pcStallName, string key)
  227. {
  228. MarketSellers_info loInfo = null;
  229. if (Cache.ContainsKey(key))
  230. {
  231. loInfo = (MarketSellers_info)Cache[key];
  232. }
  233. else
  234. {
  235. string lcSql = "SELECT m.SellerID, m.MarketID, m.Name, m.LicenseNo, m.LicenseName, m.CardIndex, st.IsLock FROM dbo.SellerHasStall AS sh LEFT OUTER JOIN dbo.MarketSellers AS m ON sh.SellerID = m.SellerID RIGHT OUTER JOIN dbo.Stalls AS st ON sh.StallID = st.StallID WHERE(m.IsLock = N'N') AND(st.IsLock = N'N') AND(st.MarketID ='" + pcMarketId + "') AND(st.StallNo='"+ pcStallName + "')";
  236. DBConnSql loDbConn = new DBConnSql();
  237. try
  238. {
  239. if (loDbConn.Open())
  240. {
  241. rsQuery loQuery = loDbConn.OpenQuery(lcSql);
  242. if (loQuery != null && loQuery.IsOpened && loQuery.RecCount == 1)
  243. {
  244. loInfo = new MarketSellers_info()
  245. {
  246. Name = loQuery.GetString("Name"),
  247. LicenseNo = loQuery.GetString("LicenseNo"),
  248. LicenseName = loQuery.GetString("LicenseName"),
  249. CardIndex = loQuery.GetString("CardIndex"),
  250. IdCard = loQuery.GetString("IdCard")
  251. };
  252. Cache.Add(key, loInfo);
  253. }
  254. }
  255. }
  256. catch (Exception err)
  257. {
  258. this.LogError(err);
  259. }
  260. finally
  261. {
  262. loDbConn.Close();
  263. }
  264. }
  265. return loInfo;
  266. }
  267. private Markets_info QueryMarketsInfo(string pcMarketId, string key)
  268. {
  269. Markets_info loInfo = null;
  270. if (Cache.ContainsKey(key))
  271. {
  272. loInfo = (Markets_info)Cache[key];
  273. }
  274. else
  275. {
  276. string lcSql = "SELECT [Names],[MarketTypeID],[LicenseNo],[LicenseName],[CardIndex] FROM " + Tn.Markets + " WHERE MarketID='" + pcMarketId + "'";
  277. DBConnSql loDbConn = new DBConnSql();
  278. try
  279. {
  280. if (loDbConn.Open())
  281. {
  282. rsQuery loQuery = loDbConn.OpenQuery(lcSql);
  283. if (loQuery != null && loQuery.IsOpened && loQuery.RecCount == 1)
  284. {
  285. loInfo = new Markets_info()
  286. {
  287. Names = loQuery.GetString("Names"),
  288. LicenseNo = loQuery.GetString("LicenseNo"),
  289. LicenseName = loQuery.GetString("LicenseName"),
  290. CardIndex = loQuery.GetString("CardIndex"),
  291. MarketTypeID = loQuery.GetString("MarketTypeID")
  292. };
  293. Cache.Add(key, loInfo);
  294. }
  295. }
  296. }
  297. catch (Exception err)
  298. {
  299. this.LogError(err);
  300. }
  301. finally
  302. {
  303. loDbConn.Close();
  304. }
  305. }
  306. return loInfo;
  307. }
  308. private VarietyCategory_info QueryCategoryInfo(string pcCategoryNo, string key)
  309. {
  310. VarietyCategory_info loInfo = null;
  311. if (Cache.ContainsKey(key))
  312. {
  313. loInfo = (VarietyCategory_info)Cache[key];
  314. }
  315. else
  316. {
  317. string lcSql = "SELECT [VarietyCategoryName],[LocalNo],[Path] FROM " + Tn.VarietyCategory + " WHERE [VarietyCategoryNo]='" + pcCategoryNo + "'";
  318. DBConnSql loDbConn = new DBConnSql();
  319. try
  320. {
  321. if (loDbConn.Open())
  322. {
  323. rsQuery loQuery = loDbConn.OpenQuery(lcSql);
  324. if (loQuery != null && loQuery.IsOpened && loQuery.RecCount == 1)
  325. {
  326. loInfo = new VarietyCategory_info()
  327. {
  328. VarietyCategoryNo = pcCategoryNo,
  329. VarietyCategoryName = loQuery.GetString("VarietyCategoryName"),
  330. LocalNo = loQuery.GetString("LocalNo"),
  331. //Path = loQuery.GetString("Path")
  332. };
  333. if (string.IsNullOrEmpty(loInfo.LocalNo))
  334. {
  335. loInfo.LocalNo = QueryCategoryLocalNo(loQuery.GetString("Path"));
  336. }
  337. Cache.Add(key, loInfo);
  338. }
  339. }
  340. }
  341. catch (Exception err)
  342. {
  343. this.LogError(err);
  344. }
  345. finally
  346. {
  347. loDbConn.Close();
  348. }
  349. }
  350. return loInfo;
  351. }
  352. /// <summary>
  353. /// 逐级获取父节点 LocalNo
  354. /// </summary>
  355. /// <param name="pcPath"></param>
  356. /// <returns></returns>
  357. private string QueryCategoryLocalNo(string pcPath)
  358. {
  359. string lcRetval = "";
  360. DBConnSql loDbConn = new DBConnSql();
  361. try
  362. {
  363. if (loDbConn.Open())
  364. return lcRetval;
  365. string[] laPaths = pcPath?.Split(new[] { ',' }, StringSplitOptions.RemoveEmptyEntries);
  366. if (laPaths == null || laPaths.Length <= 0)
  367. return lcRetval;
  368. for (int i = laPaths.Length - 2; i >= 0; i--)
  369. {
  370. string lcSql = "SELECT [LocalNo] FROM " + Tn.VarietyCategory + " WHERE [VarietyCategoryNo]='" + laPaths[i] + "'";
  371. rsQuery loQuery = loDbConn.OpenQuery(lcSql);
  372. if (loQuery != null && loQuery.IsOpened && loQuery.RecCount == 1)
  373. {
  374. lcRetval = loQuery.GetString("LocalNo");
  375. if (!string.IsNullOrEmpty(lcRetval))
  376. break;
  377. }
  378. }
  379. }
  380. catch (Exception err)
  381. {
  382. this.LogError(err);
  383. }
  384. finally
  385. {
  386. loDbConn.Close();
  387. }
  388. return lcRetval;
  389. }
  390. private CheckProjectTypeMapping_info QueryCheckCodeInfo(string pcCheckProjectId, string key)
  391. {
  392. CheckProjectTypeMapping_info loInfo = null;
  393. if (Cache.ContainsKey(key))
  394. {
  395. loInfo = (CheckProjectTypeMapping_info)Cache[key];
  396. }
  397. else
  398. {
  399. string lcSql = "SELECT m.CheckItemId , m.szCheckItemTypeLittleCode, m.szCheckItemTypeGreatCode FROM dbo.CheckProjectType AS p LEFT OUTER JOIN dbo.CheckProjectTypeMapping AS m ON p.CheckItemId = m.CheckItemId WHERE CheckProjectTypeID='" + pcCheckProjectId + "'";
  400. DBConnSql loDbConn = new DBConnSql();
  401. try
  402. {
  403. if (loDbConn.Open())
  404. {
  405. rsQuery loQuery = loDbConn.OpenQuery(lcSql);
  406. if (loQuery != null && loQuery.IsOpened && loQuery.RecCount == 1)
  407. {
  408. loInfo = new CheckProjectTypeMapping_info()
  409. {
  410. CheckItemId = loQuery.GetString("CheckItemId"),
  411. szCheckItemTypeLittleCode = loQuery.GetString("szCheckItemTypeLittleCode"),
  412. szCheckItemTypeGreatCode = loQuery.GetString("szCheckItemTypeGreatCode")
  413. };
  414. Cache.Add(key, loInfo);
  415. }
  416. }
  417. }
  418. catch (Exception err)
  419. {
  420. this.LogError(err);
  421. }
  422. finally
  423. {
  424. loDbConn.Close();
  425. }
  426. }
  427. return loInfo;
  428. }
  429. #endregion
  430. public static Dictionary<string, object> Cache = new Dictionary<string, object>();
  431. #endregion
  432. public string UpdateMarkets()
  433. {
  434. string lcSql = "";
  435. List<YtMarketInfo> markets = GetMarketInfos();
  436. foreach (var m in markets)
  437. {
  438. lcSql += "UPDATE [dbo].[Markets] SET [LicenseNo]='" + m.LicenseNo + "',[LicenseName]='" + m.MarketName +
  439. "',[CardIndex]='" + m.CardIndex + "' WHERE ([Names] LIKE '%" + m.MarketName +
  440. "%' OR [Names] LIKE '%" + m.Abbreviation +
  441. "%') AND ([LicenseNo] IS NULL OR [LicenseNo]='')\r\n";
  442. }
  443. ExcuteSqlTran(lcSql, out string msg);
  444. return msg;
  445. }
  446. public string UpdateMarketSellers()
  447. {
  448. string lcSql = "";
  449. List<YtMarketInfo> markets = GetMarketInfos();
  450. foreach (var m in markets)
  451. {
  452. lcSql += "UPDATE [dbo].[Markets] SET [LicenseNo]='" + m.LicenseNo + "',[LicenseName]='" + m.MarketName +
  453. "',[CardIndex]='" + m.CardIndex + "' WHERE ([Names] LIKE '%" + m.MarketName +
  454. "%' OR[Names] LIKE '%" + m.Abbreviation +
  455. "%') AND ([LicenseNo] IS NOT NULL OR [LicenseNo]!='')\r\n";
  456. }
  457. ExcuteSqlTran(lcSql, out string msg);
  458. return msg;
  459. }
  460. public List<YtMarketInfo> GetMarketInfos()
  461. {
  462. List<YtMarketInfo> markets = null;
  463. string lcRetval = GetAreaMarket();
  464. try
  465. {
  466. markets = JsonConvert.DeserializeObject<List<YtMarketInfo>>(lcRetval);
  467. }
  468. catch (Exception e)
  469. {
  470. this.LogError(e);
  471. }
  472. return markets;
  473. }
  474. public string GetAreaMarket()
  475. {
  476. GetYtApiName(out string name,out string password);
  477. string xmlStr = "<webService><request><name>" + name + "</name><password>" + password +
  478. "</password></request></webService>";
  479. sDataInfraceSoapClient loYtInterface = new sDataInfraceSoapClient();
  480. this.LogInfo("【YT-GetAreaMarket-Start:" + xmlStr);
  481. string lcRetval = loYtInterface.GetAreaMarket(xmlStr);
  482. this.LogInfo("YT-GetAreaMarket-END】:" + lcRetval);
  483. return lcRetval;
  484. }
  485. public List<YtMarketSellerInfo> GetMarketSellerInfos()
  486. {
  487. List<YtMarketSellerInfo> marketSellers = null;
  488. string lcRetval = GetAreaSignContact();
  489. try
  490. {
  491. marketSellers = JsonConvert.DeserializeObject<List<YtMarketSellerInfo>>(lcRetval);
  492. }
  493. catch (Exception e)
  494. {
  495. this.LogError(e);
  496. }
  497. return marketSellers;
  498. }
  499. public string GetAreaSignContact()
  500. {
  501. string licenseNo = GetYtApiName(out string name, out string password);
  502. string xmlStr = "<webService><head><name>" + name + "</name><password>" + password +
  503. "</password></head><request><LicenseNo>" + licenseNo +
  504. "</LicenseNo></request></webService>";
  505. sDataInfraceSoapClient loYtInterface = new sDataInfraceSoapClient();
  506. this.LogInfo("【YT-GetAreaSignContact-Start:" + xmlStr);
  507. string lcRetval = loYtInterface.GetAreaMarket(xmlStr);
  508. this.LogInfo("YT-GetAreaSignContact-END】:" + lcRetval);
  509. return lcRetval;
  510. }
  511. /// <summary>
  512. /// 执行Sql语句
  513. /// </summary>
  514. /// <param name="pcSql"></param>
  515. /// <param name="msg"></param>
  516. /// <returns></returns>
  517. public bool ExcuteSqlTran(string pcSql, out string msg)
  518. {
  519. msg = "System Error![ DB ]";//"Sql Excute Failed";
  520. bool lbRetval = false;
  521. //return false;
  522. if (string.IsNullOrEmpty(pcSql))
  523. {
  524. msg = "Sql is empty.";
  525. return false;
  526. }
  527. DBConnSql dbConn = new DBConnSql();
  528. try
  529. {
  530. dbConn.Open();
  531. if (dbConn.ExcuteSqlTran(pcSql))
  532. {
  533. msg = "";
  534. lbRetval = true;
  535. }
  536. }
  537. catch (Exception e)
  538. {
  539. msg = e.Message;
  540. this.LogError(e);
  541. }
  542. finally
  543. {
  544. dbConn.Close();
  545. }
  546. return lbRetval;
  547. }
  548. private string GetYtApiName(out string name ,out string password)
  549. {
  550. string licenseNo = "";
  551. name = "";
  552. password = "";
  553. try
  554. {
  555. var xDoc = XDocument.Load(AppDomain.CurrentDomain.BaseDirectory + "Resources/AppInfos.xml");
  556. var app = (from r in xDoc.Descendants("app")
  557. where r.Attribute("id")?.Value.ToLower() == "yt"
  558. select r).FirstOrDefault();
  559. if (app != null)
  560. {
  561. name = app.Attribute("user")?.Value;
  562. password = app.Attribute("secret")?.Value;
  563. licenseNo = app.Attribute("licenseNo")?.Value;
  564. }
  565. }
  566. catch (Exception e)
  567. {
  568. this.LogError(e);
  569. }
  570. return licenseNo;
  571. }
  572. }
  573. }