SIMPosMerchantTradeService.cs 29 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519
  1. using System;
  2. using System.Threading;
  3. using System.Linq;
  4. using System.Data;
  5. using Library;
  6. using MySystem.Models;
  7. using System.Collections.Generic;
  8. using LitJson;
  9. using Newtonsoft.Json;
  10. /// <summary>
  11. /// 广电卡交易数据导入
  12. /// </summary>
  13. namespace MySystem
  14. {
  15. public class SIMPosMerchantTradeService
  16. {
  17. public readonly static SIMPosMerchantTradeService Instance = new SIMPosMerchantTradeService();
  18. private SIMPosMerchantTradeService()
  19. {
  20. }
  21. public void Start()//启动
  22. {
  23. Thread thread = new Thread(ImportPostDo); // 广电卡导激活和交易
  24. thread.IsBackground = true;
  25. thread.Start();
  26. Thread thread1 = new Thread(SIMActDo); // 通过接口获取广电卡激活数据
  27. thread1.IsBackground = true;
  28. thread1.Start();
  29. }
  30. public void ImportPostDo()
  31. {
  32. while (true)
  33. {
  34. try
  35. {
  36. string data = RedisDbconn.Instance.RPop<string>("SIMPosMerchantTradeQueue");
  37. if (!string.IsNullOrEmpty(data))
  38. {
  39. string[] dataList = data.Split("#cut#");
  40. string _ExcelPath = dataList[0];
  41. string _Kind = dataList[1];
  42. string checkKey = dataList[2];
  43. string Operator = dataList[3]; // 操作人
  44. int SuccessCount = 0;
  45. int DoCount = 0;
  46. string FullExcelPath = function.getPath(_ExcelPath);
  47. FullExcelPath = FullExcelPath.Replace("//", "/");
  48. DataTable list = new PublicFunction().ExcelToDataTable(FullExcelPath);
  49. int TotalCount = list.Rows.Count;
  50. while (DoCount < list.Rows.Count)
  51. {
  52. WebCMSEntities db = new WebCMSEntities();
  53. SpModels.WebCMSEntities spdb = new SpModels.WebCMSEntities();
  54. //导激活
  55. if (_Kind == "1")
  56. {
  57. var tran = db.Database.BeginTransaction();
  58. try
  59. {
  60. int Size = 100;
  61. if (list.Rows.Count - DoCount < 100)
  62. {
  63. Size = list.Rows.Count - DoCount;
  64. }
  65. Dictionary<string, int> storeData = new Dictionary<string, int>();
  66. for (int i = DoCount; i < DoCount + Size; i++)
  67. {
  68. DataRow dr = list.Rows[i];
  69. SIMActInfo sIMActInfo = new SIMActInfo
  70. {
  71. OrderNo = dr["订单编码"].ToString(),
  72. CreateDate = dr["订单创建时间"].ToString(),
  73. PhoneNumber = dr["选择号码"].ToString(),
  74. HasFirstCharge = dr["是否有首充"].ToString(),
  75. FirstChargeAmount = dr["首充金额(元)"].ToString(),
  76. Province = dr["号码归属省份"].ToString(),
  77. City = dr["号码归属地市"].ToString(),
  78. ProductName = dr["商品名称"].ToString(),
  79. ActiveName = dr["促销活动名称"].ToString(),
  80. ProductType = dr["商品类型名称"].ToString(),
  81. ActualAmount = dr["实付金额(元)"].ToString(),
  82. OrderStatus = dr["订单状态"].ToString(),
  83. ActStatus = dr["激活状态名称"].ToString(),
  84. ActDate = dr["激活时间"].ToString(),
  85. WorkNo = dr["BOSS员工工号"].ToString(),
  86. AccountName = dr["账号姓名"].ToString(),
  87. SimNo = dr["SIM卡号"].ToString()
  88. };
  89. AddSIMActInfo(sIMActInfo);
  90. SuccessCount += 1;
  91. }
  92. DoCount += Size;
  93. spdb.SaveChanges();
  94. tran.Commit();
  95. if (DoCount >= list.Rows.Count)
  96. {
  97. RedisDbconn.Instance.Set("SIMPosMerchantTradeCheckImport:" + checkKey, "success|" + SuccessCount);
  98. RedisDbconn.Instance.SetExpire("SIMPosMerchantTradeCheckImport:" + checkKey, 60000);
  99. }
  100. }
  101. catch (Exception ex)
  102. {
  103. DoCount = list.Rows.Count;
  104. function.WriteLog(ex.ToString(), "导入广电卡激活数据");
  105. tran.Rollback();
  106. ErrorMsg msg = new ErrorMsg()
  107. {
  108. Time = DateTime.Now,
  109. ErrorContent = ex.ToString(),
  110. };
  111. function.WriteLog(Newtonsoft.Json.JsonConvert.SerializeObject(msg), "导入广电卡激活数据Excel文件异常");
  112. }
  113. tran.Dispose();
  114. }
  115. //导交易
  116. if (_Kind == "2")
  117. {
  118. function.WriteLog(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff"), "导交易打日志");
  119. function.WriteLog(list.Rows.Count.ToString(), "导交易打日志");
  120. var tran = db.Database.BeginTransaction();
  121. try
  122. {
  123. int Size = 100;
  124. if (list.Rows.Count - DoCount < 100)
  125. {
  126. Size = list.Rows.Count - DoCount;
  127. }
  128. Dictionary<string, int> storeData = new Dictionary<string, int>();
  129. for (int i = DoCount; i < DoCount + Size; i++)
  130. {
  131. DataRow dr = list.Rows[i];
  132. function.WriteLog(i + "--" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff") + "-" + dr["SIM卡号"].ToString(), "导交易打日志");
  133. SIMTradeInfo sIMTradeInfo = new SIMTradeInfo
  134. {
  135. Mobile = dr["用户手机号"].ToString(),
  136. SimNo = dr["SIM卡号"].ToString(),
  137. CreateMonth = dr["入网月份"].ToString(),
  138. SettleMonth = dr["结算月份"].ToString(),
  139. SettleTime = dr["结算账期"].ToString(),
  140. SettleSpace = dr["结算场景"].ToString(),
  141. BusinessType = dr["业务类型"].ToString(),
  142. Province = dr["用户省份"].ToString(),
  143. City = dr["用户地市"].ToString(),
  144. Team = dr["团队归属"].ToString(),
  145. WorkName = dr["行销宝姓名"].ToString(),
  146. WorkNo = dr["行销宝工号"].ToString(),
  147. ProductName = dr["商品名称"].ToString(),
  148. TotalAmount = dr["账单总金额"].ToString(),
  149. InAmount = dr["套内金额"].ToString(),
  150. OutAmount = dr["套外金额"].ToString(),
  151. UserStatus = dr["用户状态"].ToString(),
  152. ChannelCode = dr["渠道编码"].ToString(),
  153. ChannelName = dr["渠道名称"].ToString(),
  154. OrderCreateTime = dr["订单创建时间"].ToString(),
  155. OrderStatus = dr["订单状态"].ToString(),
  156. ActTime = dr["激活时间"].ToString(),
  157. SourceProductName = dr["原订单商品名称"].ToString(),
  158. ProductType = dr["商品类型名称"].ToString(),
  159. ActivityName = dr["促销活动名称"].ToString(),
  160. Percent = dr["分成比例"].ToString(),
  161. OrgDivi = dr["机构分成"].ToString()
  162. };
  163. AddSIMTradeInfo(sIMTradeInfo);
  164. function.WriteLog(i + "-end--" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff") + "-" + dr["SIM卡号"].ToString(), "导交易打日志");
  165. SuccessCount += 1;
  166. }
  167. DoCount += Size;
  168. db.SaveChanges();
  169. tran.Commit();
  170. if (DoCount >= list.Rows.Count)
  171. {
  172. RedisDbconn.Instance.Set("SIMPosMerchantTradeCheckImport:" + checkKey, "success|" + SuccessCount);
  173. RedisDbconn.Instance.SetExpire("SIMPosMerchantTradeCheckImport:" + checkKey, 60000);
  174. }
  175. }
  176. catch (Exception ex)
  177. {
  178. DoCount = list.Rows.Count;
  179. function.WriteLog(ex.ToString(), "导入广电卡交易数据");
  180. tran.Rollback();
  181. ErrorMsg msg = new ErrorMsg()
  182. {
  183. Time = DateTime.Now,
  184. ErrorContent = ex.ToString(),
  185. };
  186. function.WriteLog(Newtonsoft.Json.JsonConvert.SerializeObject(msg), "导入广电卡交易数据Excel文件异常");
  187. }
  188. tran.Dispose();
  189. function.WriteLog("end!!" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff"), "导交易打日志");
  190. }
  191. }
  192. }
  193. else
  194. {
  195. Thread.Sleep(5000);
  196. }
  197. }
  198. catch (Exception ex)
  199. {
  200. function.WriteLog(DateTime.Now.ToString() + "\n" + ex.ToString(), "后台导入Excel文件队列异常");
  201. }
  202. }
  203. }
  204. /// <summary>
  205. /// 通过接口获取广电卡激活数据
  206. /// </summary>
  207. public void SIMActDo()
  208. {
  209. while (true)
  210. {
  211. string time = RedisDbconn.Instance.RPop<string>("SIMActInfo");
  212. if (!string.IsNullOrEmpty(time))
  213. {
  214. try
  215. {
  216. // string check = function.ReadInstance("/GetSIMActInfo/check" + time + ".txt");
  217. // if (string.IsNullOrEmpty(check))
  218. // {
  219. // function.WritePage("/GetSIMActInfo/", "check" + time + ".txt", DateTime.Now.ToString("HH:mm:ss"));
  220. var result = RadioCardHelper.Instance.QueryCardOrderInfo(time, time, "1", "99999");
  221. result = result.Replace("null", "\"\"");
  222. JsonData jsonObj = JsonMapper.ToObject(result);
  223. if (jsonObj["resultCode"].ToString() == "1")
  224. {
  225. SpModels.WebCMSEntities spdb = new SpModels.WebCMSEntities();
  226. var data = jsonObj["data"]["records"];
  227. for (int i = 0; i < data.Count; i++)
  228. {
  229. var iccId = data[i]["iccId"].ToString();
  230. // var bindRecord = spdb.BindRecord.FirstOrDefault(m => m.MerSnNo == iccId) ?? new SpModels.BindRecord();
  231. // var merchants = spdb.Merchants.FirstOrDefault(m => m.SnNo == iccId) ?? new SpModels.Merchants();
  232. // if (bindRecord.Id == 0 && merchants.Id == 0)
  233. // {
  234. // {"orderNo":"B20240319215437195664","orderCreateTime":"03/19/2024 21:54:37","phoneNo":"19238664877","firstCharge":"否","initialChargeAmount":"0.00","province":"贵州省","city":"遵义市","productName":"双百套餐","promotionName":null,"productTypeName":"基础套餐","paidInAmount":"100.00","orderStatus":"已完成","activationStatusName":"已激活","activationTime":"03/19/2024 21:58:23","jobId":"VCH010131087","iccId":"89861500232320195477"}
  235. SIMActInfo sIMActInfo = new SIMActInfo
  236. {
  237. OrderNo = data[i]["orderNo"].ToString(), //订单编码
  238. CreateDate = data[i]["orderCreateTime"].ToString(), //订单创建时间
  239. PhoneNumber = data[i]["phoneNo"].ToString(), //选择号码
  240. HasFirstCharge = data[i]["firstCharge"].ToString(), //是否有首充
  241. FirstChargeAmount = data[i]["initialChargeAmount"].ToString(), //首充金额(元)
  242. Province = data[i]["province"].ToString(), //号码归属省份
  243. City = data[i]["city"].ToString(), //号码归属地市
  244. ProductName = data[i]["productName"].ToString(), //商品名称
  245. ActiveName = data[i]["promotionName"].ToString(), //促销活动名称
  246. ProductType = data[i]["productTypeName"].ToString(), //商品类型名称
  247. ActualAmount = data[i]["paidInAmount"].ToString(), //实付金额(元)
  248. OrderStatus = data[i]["orderStatus"].ToString(), //订单状态
  249. ActStatus = data[i]["activationStatusName"].ToString(), //激活状态名称
  250. ActDate = data[i]["activationTime"].ToString(), //激活时间
  251. WorkNo = data[i]["jobId"].ToString(), //BOSS员工工号
  252. // sIMActInfo.AccountName = data[""].ToString(); //账号姓名
  253. AccountName = "", //账号姓名
  254. SimNo = iccId //SIM卡号
  255. };
  256. AddSIMActInfo(sIMActInfo);
  257. // }
  258. }
  259. }
  260. // }
  261. }
  262. catch (Exception ex)
  263. {
  264. function.WriteLog(DateTime.Now.ToString() + "\n" + ex.ToString(), "获取广电卡激活信息队列异常");
  265. }
  266. }
  267. Thread.Sleep(6000);
  268. }
  269. }
  270. /// <summary>
  271. /// 添加广电卡激活数据
  272. /// </summary>
  273. /// <param name="sIMActInfo"></param>
  274. public void AddSIMActInfo(SIMActInfo sIMActInfo)
  275. {
  276. SpModels.WebCMSEntities spdb = new SpModels.WebCMSEntities();
  277. string json = "{";
  278. json += "\"OrderNo\":\"" + sIMActInfo.OrderNo + "\",";
  279. json += "\"CreateDate\":\"" + sIMActInfo.CreateDate + "\",";
  280. json += "\"PhoneNumber\":\"" + sIMActInfo.PhoneNumber + "\",";
  281. json += "\"HasFirstCharge\":\"" + sIMActInfo.HasFirstCharge + "\",";
  282. json += "\"FirstChargeAmount\":\"" + sIMActInfo.FirstChargeAmount + "\",";
  283. json += "\"Province\":\"" + sIMActInfo.Province + "\",";
  284. json += "\"City\":\"" + sIMActInfo.City + "\",";
  285. json += "\"ProductName\":\"" + sIMActInfo.ProductName + "\",";
  286. json += "\"ActiveName\":\"" + sIMActInfo.ActiveName + "\",";
  287. json += "\"ProductType\":\"" + sIMActInfo.ProductType + "\",";
  288. json += "\"ActualAmount\":\"" + sIMActInfo.ActualAmount + "\",";
  289. json += "\"OrderStatus\":\"" + sIMActInfo.OrderStatus + "\",";
  290. json += "\"ActStatus\":\"" + sIMActInfo.ActStatus + "\",";
  291. json += "\"ActDate\":\"" + sIMActInfo.ActDate + "\",";
  292. json += "\"WorkNo\":\"" + sIMActInfo.WorkNo + "\",";
  293. json += "\"AccountName\":\"" + sIMActInfo.AccountName + "\",";
  294. json += "\"SimNo\":\"" + sIMActInfo.SimNo + "\"";
  295. json += "}";
  296. if(!spdb.BindRecord.Any(m => m.MerSnNo == sIMActInfo.SimNo && m.ChannelSerial == sIMActInfo.OrderNo && m.Field5 == sIMActInfo.ActStatus))
  297. {
  298. spdb.BindRecord.Add(new SpModels.BindRecord()
  299. {
  300. CreateDate = DateTime.Parse(sIMActInfo.CreateDate),
  301. UpdateTime = DateTime.Parse(sIMActInfo.CreateDate), //机具绑定、解绑时间
  302. CreateTime = DateTime.Parse(sIMActInfo.CreateDate), //商户操作时间
  303. MerNewSnNo = sIMActInfo.PhoneNumber, //商户手机号
  304. MerSnNo = sIMActInfo.SimNo, //序列号
  305. MerName = sIMActInfo.AccountName, //商户名称
  306. MerNo = sIMActInfo.PhoneNumber, //商户编号
  307. ChannelSerial = sIMActInfo.OrderNo,
  308. Remark = sIMActInfo.ProductType,
  309. Field1 = sIMActInfo.Province,
  310. Field2 = sIMActInfo.ActiveName,
  311. Field3 = sIMActInfo.ProductName,
  312. Field4 = sIMActInfo.WorkNo,
  313. Field5 = sIMActInfo.ActStatus,
  314. SeoTitle = sIMActInfo.ActualAmount,
  315. SeoKeyword = sIMActInfo.ActDate,
  316. SeoDescription = json,
  317. ProductType = "14",
  318. Status = 1,
  319. });
  320. spdb.Merchants.Add(new SpModels.Merchants()
  321. {
  322. SnNo = sIMActInfo.SimNo,
  323. CreateTime = DateTime.Parse(sIMActInfo.CreateDate),
  324. UpdateTime = DateTime.Parse(sIMActInfo.CreateDate),
  325. AgentName = sIMActInfo.AccountName,
  326. MerRealName = sIMActInfo.AccountName,
  327. MerMobile = sIMActInfo.PhoneNumber,
  328. MerNo = sIMActInfo.PhoneNumber,
  329. MerName = sIMActInfo.AccountName,
  330. ProductType = "14",
  331. Status = 1,
  332. });
  333. spdb.SaveChanges();
  334. }
  335. spdb.Dispose();
  336. }
  337. /// <summary>
  338. /// 添加广电卡激活数据
  339. /// </summary>
  340. /// <param name="sIMActInfo"></param>
  341. public void AddSIMTradeInfo(SIMTradeInfo sIMTradeInfo)
  342. {
  343. WebCMSEntities db = new WebCMSEntities();
  344. SpModels.WebCMSEntities spdb = new SpModels.WebCMSEntities();
  345. string json = "{";
  346. json += "\"Mobile\":\"" + sIMTradeInfo.Mobile + "\",";
  347. json += "\"SimNo\":\"" + sIMTradeInfo.SimNo + "\",";
  348. json += "\"CreateMonth\":\"" + sIMTradeInfo.CreateMonth + "\",";
  349. json += "\"SettleMonth\":\"" + sIMTradeInfo.SettleMonth + "\",";
  350. json += "\"SettleTime\":\"" + sIMTradeInfo.SettleTime + "\",";
  351. json += "\"SettleSpace\":\"" + sIMTradeInfo.SettleSpace + "\",";
  352. json += "\"BusinessType\":\"" + sIMTradeInfo.BusinessType + "\",";
  353. json += "\"Province\":\"" + sIMTradeInfo.Province + "\",";
  354. json += "\"City\":\"" + sIMTradeInfo.City + "\",";
  355. json += "\"Team\":\"" + sIMTradeInfo.Team + "\",";
  356. json += "\"WorkName\":\"" + sIMTradeInfo.WorkName + "\",";
  357. json += "\"WorkNo\":\"" + sIMTradeInfo.WorkNo + "\",";
  358. json += "\"ProductName\":\"" + sIMTradeInfo.ProductName + "\",";
  359. json += "\"TotalAmount\":\"" + sIMTradeInfo.TotalAmount + "\",";
  360. json += "\"InAmount\":\"" + sIMTradeInfo.InAmount + "\",";
  361. json += "\"OutAmount\":\"" + sIMTradeInfo.OutAmount + "\",";
  362. json += "\"UserStatus\":\"" + sIMTradeInfo.UserStatus + "\",";
  363. json += "\"ChannelCode\":\"" + sIMTradeInfo.ChannelCode + "\",";
  364. json += "\"ChannelName\":\"" + sIMTradeInfo.ChannelName + "\",";
  365. json += "\"OrderCreateTime\":\"" + sIMTradeInfo.OrderCreateTime + "\",";
  366. json += "\"OrderStatus\":\"" + sIMTradeInfo.OrderStatus + "\",";
  367. json += "\"ActTime\":\"" + sIMTradeInfo.ActTime + "\",";
  368. json += "\"SourceProductName\":\"" + sIMTradeInfo.SourceProductName + "\",";
  369. json += "\"ProductType\":\"" + sIMTradeInfo.ProductType + "\",";
  370. json += "\"ActivityName\":\"" + sIMTradeInfo.ActivityName + "\",";
  371. json += "\"Percent\":\"" + sIMTradeInfo.Percent + "\",";
  372. json += "\"OrgDivi\":\"" + sIMTradeInfo.OrgDivi + "\"";
  373. json += "}";
  374. function.WriteLog("1-" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff"), "导交易打日志");
  375. bool op = true;
  376. string OrderNo = DateTime.Now.ToString("yyyyMMddHHmmssfff") + function.get_Random(8);
  377. decimal TotalAmountNum = decimal.Parse(function.CheckNum(numberString: sIMTradeInfo.TotalAmount));
  378. DateTime CreateDate = DateTime.Parse(sIMTradeInfo.OrderCreateTime);
  379. string CheckDate = DateTime.Now.AddMonths(-3).ToString("yyyyMM");
  380. if(!db.ActiveReward.Any(m => m.KqSnNo == sIMTradeInfo.SimNo || m.KqMerNo == sIMTradeInfo.Mobile))
  381. {
  382. CheckDate = DateTime.Now.AddMonths(-1).ToString("yyyyMM");
  383. }
  384. function.WriteLog("2-" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff"), "导交易打日志");
  385. if (int.Parse(sIMTradeInfo.CreateMonth) >= int.Parse(CheckDate)) op = false;
  386. if (sIMTradeInfo.OrderStatus == "待激活") op = false;
  387. if (sIMTradeInfo.UserStatus.Contains("注销") || sIMTradeInfo.UserStatus.Contains("欠费"))
  388. {
  389. op = false;
  390. SimposMerchantInfo checkSimMer = db.SimposMerchantInfo.FirstOrDefault(m => m.KqMerNo == sIMTradeInfo.Mobile && m.KqSnNo == sIMTradeInfo.SimNo);
  391. if (checkSimMer != null)
  392. {
  393. if (sIMTradeInfo.UserStatus.Contains("欠费") && checkSimMer.Status != -1)
  394. {
  395. checkSimMer.Status = -2;
  396. }
  397. else
  398. {
  399. checkSimMer.Status = -1;
  400. }
  401. db.SaveChanges();
  402. }
  403. function.WriteLog("3-" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff"), "导交易打日志");
  404. PosMerchantInfo checkMer = db.PosMerchantInfo.FirstOrDefault(m => m.KqMerNo == sIMTradeInfo.Mobile && m.KqSnNo == sIMTradeInfo.SimNo);
  405. if (checkMer != null)
  406. {
  407. if (sIMTradeInfo.UserStatus.Contains("欠费") && checkMer.Status != -1)
  408. {
  409. checkMer.Status = -2;
  410. }
  411. else
  412. {
  413. checkMer.Status = -1;
  414. }
  415. db.SaveChanges();
  416. }
  417. function.WriteLog("4-" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff"), "导交易打日志");
  418. PosMachinesTwo pos = db.PosMachinesTwo.FirstOrDefault(m => m.PosSn == sIMTradeInfo.SimNo);
  419. if (pos != null)
  420. {
  421. if(pos.QueryCount == 1 && pos.Status == 0)
  422. {
  423. RedisDbconn.Instance.AddList("SIMActCountQueue", "{\"UserId\":\"" + pos.BuyUserId + "\",\"ActCount\":\"1\"}");
  424. }
  425. if (sIMTradeInfo.UserStatus.Contains("欠费") && pos.Status != -1)
  426. {
  427. pos.Status = -2;
  428. }
  429. else
  430. {
  431. pos.Status = -1;
  432. }
  433. db.SaveChanges();
  434. }
  435. function.WriteLog("5-" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff"), "导交易打日志");
  436. }
  437. if (sIMTradeInfo.UserStatus.Contains("正常"))
  438. {
  439. SimposMerchantInfo checkSimMer = db.SimposMerchantInfo.FirstOrDefault(m => m.KqMerNo == sIMTradeInfo.Mobile && m.KqSnNo == sIMTradeInfo.SimNo);
  440. if (checkSimMer != null)
  441. {
  442. if (checkSimMer.Status == -2) checkSimMer.Status = 0;
  443. db.SaveChanges();
  444. }
  445. function.WriteLog("6-" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff"), "导交易打日志");
  446. PosMerchantInfo checkMer = db.PosMerchantInfo.FirstOrDefault(m => m.KqMerNo == sIMTradeInfo.Mobile && m.KqSnNo == sIMTradeInfo.SimNo);
  447. if (checkMer != null)
  448. {
  449. if (checkMer.Status == -2) checkMer.Status = 1;
  450. db.SaveChanges();
  451. }
  452. function.WriteLog("7-" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff"), "导交易打日志");
  453. PosMachinesTwo pos = db.PosMachinesTwo.FirstOrDefault(m => m.PosSn == sIMTradeInfo.SimNo);
  454. if (pos != null && pos.Status < 0)
  455. {
  456. if (pos.Status == -2)
  457. {
  458. pos.Status = 0;
  459. }
  460. db.SaveChanges();
  461. }
  462. function.WriteLog("8-" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff"), "导交易打日志");
  463. }
  464. if (TotalAmountNum > 0 && op)
  465. {
  466. spdb.TradeRecord.Add(new SpModels.TradeRecord()
  467. {
  468. CreateDate = DateTime.Parse(DateTime.Now.AddMonths(-1).ToString("yyyy-MM-20 HH:mm:ss")), //创建时间
  469. TradeSerialNo = OrderNo, //订单编号
  470. AgentNo = sIMTradeInfo.WorkName + sIMTradeInfo.WorkNo, //一级服务商编号
  471. MerNo = sIMTradeInfo.Mobile, //商户编
  472. TradeSnNo = sIMTradeInfo.SimNo, //sim卡号
  473. ChannelSerial = OrderNo, //请求号
  474. TradeAmount = TotalAmountNum, //账单总金额
  475. TradeStatus = sIMTradeInfo.OrderStatus, //订单状态
  476. TradeDate = sIMTradeInfo.CreateMonth,
  477. TradeTime = CreateDate.ToString("yyyyMMdd"),
  478. BankCardType = "01",
  479. TradeType = "01",
  480. ProductType = "14",
  481. Status = 1,
  482. Field1 = sIMTradeInfo.ProductName,
  483. Field2 = sIMTradeInfo.SourceProductName,
  484. Field3 = sIMTradeInfo.ProductType,
  485. Field4 = sIMTradeInfo.BusinessType,
  486. SeoDescription = json,
  487. });
  488. spdb.SaveChanges();
  489. function.WriteLog("9-" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff"), "导交易打日志");
  490. }
  491. }
  492. }
  493. }