SIMPosMerchantTradeService.cs 27 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504
  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. var tran = db.Database.BeginTransaction();
  119. try
  120. {
  121. int Size = 100;
  122. if (list.Rows.Count - DoCount < 100)
  123. {
  124. Size = list.Rows.Count - DoCount;
  125. }
  126. Dictionary<string, int> storeData = new Dictionary<string, int>();
  127. for (int i = DoCount; i < DoCount + Size; i++)
  128. {
  129. DataRow dr = list.Rows[i];
  130. SIMTradeInfo sIMTradeInfo = new SIMTradeInfo
  131. {
  132. Mobile = dr["用户手机号"].ToString(),
  133. SimNo = dr["SIM卡号"].ToString(),
  134. CreateMonth = dr["入网月份"].ToString(),
  135. SettleMonth = dr["结算月份"].ToString(),
  136. SettleTime = dr["结算账期"].ToString(),
  137. SettleSpace = dr["结算场景"].ToString(),
  138. BusinessType = dr["业务类型"].ToString(),
  139. Province = dr["用户省份"].ToString(),
  140. City = dr["用户地市"].ToString(),
  141. Team = dr["团队归属"].ToString(),
  142. WorkName = dr["行销宝姓名"].ToString(),
  143. WorkNo = dr["行销宝工号"].ToString(),
  144. ProductName = dr["商品名称"].ToString(),
  145. TotalAmount = dr["账单总金额"].ToString(),
  146. InAmount = dr["套内金额"].ToString(),
  147. OutAmount = dr["套外金额"].ToString(),
  148. UserStatus = dr["用户状态"].ToString(),
  149. ChannelCode = dr["渠道编码"].ToString(),
  150. ChannelName = dr["渠道名称"].ToString(),
  151. OrderCreateTime = dr["订单创建时间"].ToString(),
  152. OrderStatus = dr["订单状态"].ToString(),
  153. ActTime = dr["激活时间"].ToString(),
  154. SourceProductName = dr["原订单商品名称"].ToString(),
  155. ProductType = dr["商品类型名称"].ToString(),
  156. ActivityName = dr["促销活动名称"].ToString(),
  157. Percent = dr["分成比例"].ToString(),
  158. OrgDivi = dr["机构分成"].ToString()
  159. };
  160. AddSIMTradeInfo(sIMTradeInfo);
  161. SuccessCount += 1;
  162. }
  163. DoCount += Size;
  164. db.SaveChanges();
  165. tran.Commit();
  166. if (DoCount >= list.Rows.Count)
  167. {
  168. RedisDbconn.Instance.Set("SIMPosMerchantTradeCheckImport:" + checkKey, "success|" + SuccessCount);
  169. RedisDbconn.Instance.SetExpire("SIMPosMerchantTradeCheckImport:" + checkKey, 60000);
  170. }
  171. }
  172. catch (Exception ex)
  173. {
  174. DoCount = list.Rows.Count;
  175. function.WriteLog(ex.ToString(), "导入广电卡交易数据");
  176. tran.Rollback();
  177. ErrorMsg msg = new ErrorMsg()
  178. {
  179. Time = DateTime.Now,
  180. ErrorContent = ex.ToString(),
  181. };
  182. function.WriteLog(Newtonsoft.Json.JsonConvert.SerializeObject(msg), "导入广电卡交易数据Excel文件异常");
  183. }
  184. tran.Dispose();
  185. }
  186. }
  187. }
  188. else
  189. {
  190. Thread.Sleep(5000);
  191. }
  192. }
  193. catch (Exception ex)
  194. {
  195. function.WriteLog(DateTime.Now.ToString() + "\n" + ex.ToString(), "后台导入Excel文件队列异常");
  196. }
  197. }
  198. }
  199. /// <summary>
  200. /// 通过接口获取广电卡激活数据
  201. /// </summary>
  202. public void SIMActDo()
  203. {
  204. while (true)
  205. {
  206. string time = RedisDbconn.Instance.RPop<string>("SIMActInfo");
  207. if (!string.IsNullOrEmpty(time))
  208. {
  209. try
  210. {
  211. // string check = function.ReadInstance("/GetSIMActInfo/check" + time + ".txt");
  212. // if (string.IsNullOrEmpty(check))
  213. // {
  214. // function.WritePage("/GetSIMActInfo/", "check" + time + ".txt", DateTime.Now.ToString("HH:mm:ss"));
  215. var result = RadioCardHelper.Instance.QueryCardOrderInfo(time, time, "1", "99999");
  216. result = result.Replace("null", "\"\"");
  217. JsonData jsonObj = JsonMapper.ToObject(result);
  218. if (jsonObj["resultCode"].ToString() == "1")
  219. {
  220. SpModels.WebCMSEntities spdb = new SpModels.WebCMSEntities();
  221. var data = jsonObj["data"]["records"];
  222. for (int i = 0; i < data.Count; i++)
  223. {
  224. var iccId = data[i]["iccId"].ToString();
  225. // var bindRecord = spdb.BindRecord.FirstOrDefault(m => m.MerSnNo == iccId) ?? new SpModels.BindRecord();
  226. // var merchants = spdb.Merchants.FirstOrDefault(m => m.SnNo == iccId) ?? new SpModels.Merchants();
  227. // if (bindRecord.Id == 0 && merchants.Id == 0)
  228. // {
  229. // {"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"}
  230. SIMActInfo sIMActInfo = new SIMActInfo
  231. {
  232. OrderNo = data[i]["orderNo"].ToString(), //订单编码
  233. CreateDate = data[i]["orderCreateTime"].ToString(), //订单创建时间
  234. PhoneNumber = data[i]["phoneNo"].ToString(), //选择号码
  235. HasFirstCharge = data[i]["firstCharge"].ToString(), //是否有首充
  236. FirstChargeAmount = data[i]["initialChargeAmount"].ToString(), //首充金额(元)
  237. Province = data[i]["province"].ToString(), //号码归属省份
  238. City = data[i]["city"].ToString(), //号码归属地市
  239. ProductName = data[i]["productName"].ToString(), //商品名称
  240. ActiveName = data[i]["promotionName"].ToString(), //促销活动名称
  241. ProductType = data[i]["productTypeName"].ToString(), //商品类型名称
  242. ActualAmount = data[i]["paidInAmount"].ToString(), //实付金额(元)
  243. OrderStatus = data[i]["orderStatus"].ToString(), //订单状态
  244. ActStatus = data[i]["activationStatusName"].ToString(), //激活状态名称
  245. ActDate = data[i]["activationTime"].ToString(), //激活时间
  246. WorkNo = data[i]["jobId"].ToString(), //BOSS员工工号
  247. // sIMActInfo.AccountName = data[""].ToString(); //账号姓名
  248. AccountName = "", //账号姓名
  249. SimNo = iccId //SIM卡号
  250. };
  251. AddSIMActInfo(sIMActInfo);
  252. // }
  253. }
  254. }
  255. // }
  256. }
  257. catch (Exception ex)
  258. {
  259. function.WriteLog(DateTime.Now.ToString() + "\n" + ex.ToString(), "获取广电卡激活信息队列异常");
  260. }
  261. }
  262. Thread.Sleep(6000);
  263. }
  264. }
  265. /// <summary>
  266. /// 添加广电卡激活数据
  267. /// </summary>
  268. /// <param name="sIMActInfo"></param>
  269. public void AddSIMActInfo(SIMActInfo sIMActInfo)
  270. {
  271. SpModels.WebCMSEntities spdb = new SpModels.WebCMSEntities();
  272. string json = "{";
  273. json += "\"OrderNo\":\"" + sIMActInfo.OrderNo + "\",";
  274. json += "\"CreateDate\":\"" + sIMActInfo.CreateDate + "\",";
  275. json += "\"PhoneNumber\":\"" + sIMActInfo.PhoneNumber + "\",";
  276. json += "\"HasFirstCharge\":\"" + sIMActInfo.HasFirstCharge + "\",";
  277. json += "\"FirstChargeAmount\":\"" + sIMActInfo.FirstChargeAmount + "\",";
  278. json += "\"Province\":\"" + sIMActInfo.Province + "\",";
  279. json += "\"City\":\"" + sIMActInfo.City + "\",";
  280. json += "\"ProductName\":\"" + sIMActInfo.ProductName + "\",";
  281. json += "\"ActiveName\":\"" + sIMActInfo.ActiveName + "\",";
  282. json += "\"ProductType\":\"" + sIMActInfo.ProductType + "\",";
  283. json += "\"ActualAmount\":\"" + sIMActInfo.ActualAmount + "\",";
  284. json += "\"OrderStatus\":\"" + sIMActInfo.OrderStatus + "\",";
  285. json += "\"ActStatus\":\"" + sIMActInfo.ActStatus + "\",";
  286. json += "\"ActDate\":\"" + sIMActInfo.ActDate + "\",";
  287. json += "\"WorkNo\":\"" + sIMActInfo.WorkNo + "\",";
  288. json += "\"AccountName\":\"" + sIMActInfo.AccountName + "\",";
  289. json += "\"SimNo\":\"" + sIMActInfo.SimNo + "\"";
  290. json += "}";
  291. if(!spdb.BindRecord.Any(m => m.MerSnNo == sIMActInfo.SimNo && m.ChannelSerial == sIMActInfo.OrderNo && m.Field5 == sIMActInfo.ActStatus))
  292. {
  293. spdb.BindRecord.Add(new SpModels.BindRecord()
  294. {
  295. CreateDate = DateTime.Parse(sIMActInfo.CreateDate),
  296. UpdateTime = DateTime.Parse(sIMActInfo.CreateDate), //机具绑定、解绑时间
  297. CreateTime = DateTime.Parse(sIMActInfo.CreateDate), //商户操作时间
  298. MerNewSnNo = sIMActInfo.PhoneNumber, //商户手机号
  299. MerSnNo = sIMActInfo.SimNo, //序列号
  300. MerName = sIMActInfo.AccountName, //商户名称
  301. MerNo = sIMActInfo.PhoneNumber, //商户编号
  302. ChannelSerial = sIMActInfo.OrderNo,
  303. Remark = sIMActInfo.ProductType,
  304. Field1 = sIMActInfo.Province,
  305. Field2 = sIMActInfo.ActiveName,
  306. Field3 = sIMActInfo.ProductName,
  307. Field4 = sIMActInfo.WorkNo,
  308. Field5 = sIMActInfo.ActStatus,
  309. SeoTitle = sIMActInfo.ActualAmount,
  310. SeoKeyword = sIMActInfo.ActDate,
  311. SeoDescription = json,
  312. ProductType = "14",
  313. Status = 1,
  314. });
  315. spdb.Merchants.Add(new SpModels.Merchants()
  316. {
  317. SnNo = sIMActInfo.SimNo,
  318. CreateTime = DateTime.Parse(sIMActInfo.CreateDate),
  319. UpdateTime = DateTime.Parse(sIMActInfo.CreateDate),
  320. AgentName = sIMActInfo.AccountName,
  321. MerRealName = sIMActInfo.AccountName,
  322. MerMobile = sIMActInfo.PhoneNumber,
  323. MerNo = sIMActInfo.PhoneNumber,
  324. MerName = sIMActInfo.AccountName,
  325. ProductType = "14",
  326. Status = 1,
  327. });
  328. spdb.SaveChanges();
  329. }
  330. spdb.Dispose();
  331. }
  332. /// <summary>
  333. /// 添加广电卡激活数据
  334. /// </summary>
  335. /// <param name="sIMActInfo"></param>
  336. public void AddSIMTradeInfo(SIMTradeInfo sIMTradeInfo)
  337. {
  338. WebCMSEntities db = new WebCMSEntities();
  339. SpModels.WebCMSEntities spdb = new SpModels.WebCMSEntities();
  340. string json = "{";
  341. json += "\"Mobile\":\"" + sIMTradeInfo.Mobile + "\",";
  342. json += "\"SimNo\":\"" + sIMTradeInfo.SimNo + "\",";
  343. json += "\"CreateMonth\":\"" + sIMTradeInfo.CreateMonth + "\",";
  344. json += "\"SettleMonth\":\"" + sIMTradeInfo.SettleMonth + "\",";
  345. json += "\"SettleTime\":\"" + sIMTradeInfo.SettleTime + "\",";
  346. json += "\"SettleSpace\":\"" + sIMTradeInfo.SettleSpace + "\",";
  347. json += "\"BusinessType\":\"" + sIMTradeInfo.BusinessType + "\",";
  348. json += "\"Province\":\"" + sIMTradeInfo.Province + "\",";
  349. json += "\"City\":\"" + sIMTradeInfo.City + "\",";
  350. json += "\"Team\":\"" + sIMTradeInfo.Team + "\",";
  351. json += "\"WorkName\":\"" + sIMTradeInfo.WorkName + "\",";
  352. json += "\"WorkNo\":\"" + sIMTradeInfo.WorkNo + "\",";
  353. json += "\"ProductName\":\"" + sIMTradeInfo.ProductName + "\",";
  354. json += "\"TotalAmount\":\"" + sIMTradeInfo.TotalAmount + "\",";
  355. json += "\"InAmount\":\"" + sIMTradeInfo.InAmount + "\",";
  356. json += "\"OutAmount\":\"" + sIMTradeInfo.OutAmount + "\",";
  357. json += "\"UserStatus\":\"" + sIMTradeInfo.UserStatus + "\",";
  358. json += "\"ChannelCode\":\"" + sIMTradeInfo.ChannelCode + "\",";
  359. json += "\"ChannelName\":\"" + sIMTradeInfo.ChannelName + "\",";
  360. json += "\"OrderCreateTime\":\"" + sIMTradeInfo.OrderCreateTime + "\",";
  361. json += "\"OrderStatus\":\"" + sIMTradeInfo.OrderStatus + "\",";
  362. json += "\"ActTime\":\"" + sIMTradeInfo.ActTime + "\",";
  363. json += "\"SourceProductName\":\"" + sIMTradeInfo.SourceProductName + "\",";
  364. json += "\"ProductType\":\"" + sIMTradeInfo.ProductType + "\",";
  365. json += "\"ActivityName\":\"" + sIMTradeInfo.ActivityName + "\",";
  366. json += "\"Percent\":\"" + sIMTradeInfo.Percent + "\",";
  367. json += "\"OrgDivi\":\"" + sIMTradeInfo.OrgDivi + "\"";
  368. json += "}";
  369. bool op = true;
  370. string OrderNo = DateTime.Now.ToString("yyyyMMddHHmmssfff") + function.get_Random(8);
  371. decimal TotalAmountNum = decimal.Parse(function.CheckNum(numberString: sIMTradeInfo.TotalAmount));
  372. DateTime CreateDate = DateTime.Parse(sIMTradeInfo.OrderCreateTime);
  373. string CheckDate = DateTime.Now.AddMonths(-3).ToString("yyyyMM");
  374. if(!db.ActiveReward.Any(m => m.KqSnNo == sIMTradeInfo.SimNo))
  375. {
  376. CheckDate = DateTime.Now.AddMonths(-1).ToString("yyyyMM");
  377. }
  378. if (int.Parse(sIMTradeInfo.CreateMonth) >= int.Parse(CheckDate)) op = false;
  379. if (sIMTradeInfo.OrderStatus == "待激活") op = false;
  380. if (sIMTradeInfo.UserStatus.Contains("注销") || sIMTradeInfo.UserStatus.Contains("欠费"))
  381. {
  382. op = false;
  383. SimposMerchantInfo checkSimMer = db.SimposMerchantInfo.FirstOrDefault(m => m.KqMerNo == sIMTradeInfo.Mobile && m.KqSnNo == sIMTradeInfo.SimNo);
  384. if (checkSimMer != null)
  385. {
  386. if (sIMTradeInfo.UserStatus.Contains("欠费") && checkSimMer.Status != -1)
  387. {
  388. checkSimMer.Status = -2;
  389. }
  390. else
  391. {
  392. checkSimMer.Status = -1;
  393. }
  394. db.SaveChanges();
  395. }
  396. PosMerchantInfo checkMer = db.PosMerchantInfo.FirstOrDefault(m => m.KqMerNo == sIMTradeInfo.Mobile && m.KqSnNo == sIMTradeInfo.SimNo);
  397. if (checkMer != null)
  398. {
  399. if (sIMTradeInfo.UserStatus.Contains("欠费") && checkMer.Status != -1)
  400. {
  401. checkMer.Status = -2;
  402. }
  403. else
  404. {
  405. checkMer.Status = -1;
  406. }
  407. db.SaveChanges();
  408. }
  409. PosMachinesTwo pos = db.PosMachinesTwo.FirstOrDefault(m => m.PosSn == sIMTradeInfo.SimNo);
  410. if (pos != null)
  411. {
  412. if(pos.QueryCount == 1 && pos.Status == 0)
  413. {
  414. RedisDbconn.Instance.AddList("SIMActCountQueue", "{\"UserId\":\"" + pos.BuyUserId + "\",\"ActCount\":\"1\"}");
  415. }
  416. if (sIMTradeInfo.UserStatus.Contains("欠费") && pos.Status != -1)
  417. {
  418. pos.Status = -2;
  419. }
  420. else
  421. {
  422. pos.Status = -1;
  423. }
  424. db.SaveChanges();
  425. }
  426. }
  427. if (sIMTradeInfo.UserStatus.Contains("正常"))
  428. {
  429. SimposMerchantInfo checkSimMer = db.SimposMerchantInfo.FirstOrDefault(m => m.KqMerNo == sIMTradeInfo.Mobile && m.KqSnNo == sIMTradeInfo.SimNo);
  430. if (checkSimMer != null)
  431. {
  432. if (checkSimMer.Status == -2) checkSimMer.Status = 0;
  433. db.SaveChanges();
  434. }
  435. PosMerchantInfo checkMer = db.PosMerchantInfo.FirstOrDefault(m => m.KqMerNo == sIMTradeInfo.Mobile && m.KqSnNo == sIMTradeInfo.SimNo);
  436. if (checkMer != null)
  437. {
  438. if (checkMer.Status == -2) checkMer.Status = 1;
  439. db.SaveChanges();
  440. }
  441. PosMachinesTwo pos = db.PosMachinesTwo.FirstOrDefault(m => m.PosSn == sIMTradeInfo.SimNo);
  442. if (pos != null && pos.Status < 0)
  443. {
  444. if (pos.Status == -2)
  445. {
  446. pos.Status = 0;
  447. }
  448. db.SaveChanges();
  449. }
  450. }
  451. if (TotalAmountNum > 0 && op)
  452. {
  453. spdb.TradeRecord.Add(new SpModels.TradeRecord()
  454. {
  455. CreateDate = DateTime.Parse(DateTime.Now.AddMonths(-1).ToString("yyyy-MM-20 HH:mm:ss")), //创建时间
  456. TradeSerialNo = OrderNo, //订单编号
  457. AgentNo = sIMTradeInfo.WorkName + sIMTradeInfo.WorkNo, //一级服务商编号
  458. MerNo = sIMTradeInfo.Mobile, //商户编
  459. TradeSnNo = sIMTradeInfo.SimNo, //sim卡号
  460. ChannelSerial = OrderNo, //请求号
  461. TradeAmount = TotalAmountNum, //账单总金额
  462. TradeStatus = sIMTradeInfo.OrderStatus, //订单状态
  463. TradeDate = sIMTradeInfo.CreateMonth,
  464. TradeTime = CreateDate.ToString("yyyyMMdd"),
  465. BankCardType = "01",
  466. TradeType = "01",
  467. ProductType = "14",
  468. Status = 1,
  469. Field1 = sIMTradeInfo.ProductName,
  470. Field2 = sIMTradeInfo.SourceProductName,
  471. Field3 = sIMTradeInfo.ProductType,
  472. Field4 = sIMTradeInfo.BusinessType,
  473. SeoDescription = json,
  474. });
  475. spdb.SaveChanges();
  476. }
  477. }
  478. }
  479. }