SycnSpTradeService.cs 3.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using MySystem.SpModels;
  5. using Library;
  6. using LitJson;
  7. namespace MySystem
  8. {
  9. public class SycnSpTradeService
  10. {
  11. public readonly static SycnSpTradeService Instance = new SycnSpTradeService();
  12. private SycnSpTradeService()
  13. { }
  14. public void Start()
  15. {
  16. WebCMSEntities spdb = new WebCMSEntities();
  17. PxcModels.WebCMSEntities db = new PxcModels.WebCMSEntities();
  18. DateTime start = DateTime.Now.AddDays(-2);
  19. List<TradeRecord> trades = spdb.TradeRecord.Where(m => m.CreateDate >= start && m.Status == 1).OrderByDescending(m => m.Id).ToList();
  20. foreach (TradeRecord trade in trades)
  21. {
  22. PxcModels.MachineForSnNo posFor = db.MachineForSnNo.FirstOrDefault(m => m.SnNo == trade.TradeSnNo) ?? new PxcModels.MachineForSnNo();
  23. PxcModels.PosMachinesTwo pos = db.PosMachinesTwo.FirstOrDefault(m => m.Id == posFor.SnId) ?? new PxcModels.PosMachinesTwo();
  24. PxcModels.Users user = db.Users.FirstOrDefault(m => m.Id == pos.UserId) ?? new PxcModels.Users();
  25. int TopUserId = 0;
  26. if (!string.IsNullOrEmpty(user.ParentNav))
  27. {
  28. TopUserId = int.Parse(user.ParentNav.Trim(',').Replace(",,", ",").Split(',')[0]);
  29. }
  30. bool check = db.TradeRecord.Any(m => m.RecordNo == trade.TradeSerialNo);
  31. if (!check)
  32. {
  33. db.TradeRecord.Add(new PxcModels.TradeRecord()
  34. {
  35. CreateDate = trade.CreateDate,
  36. UpdateDate = trade.UpdateDate,
  37. RecordNo = trade.TradeSerialNo, //单号
  38. UserId = pos.UserId, //创客
  39. MerchantId = pos.BindMerchantId, //商户
  40. MerNo = trade.MerNo, //渠道商户编号
  41. MerHelpFlag = 0, //是否属于扶持周期内商户
  42. HelpMonthCount = 0, //扶持第几个月
  43. MerBuddyType = user.MerchantType, //商户创客类型
  44. SnNo = trade.TradeSnNo, //渠道SN号
  45. // TradeDate = DateTime.Parse(trade.TradeTime), //交易日期
  46. TradeSerialNo = trade.ChannelSerial, //交易流水号
  47. TradeAmount = trade.TradeAmount / 100, //交易金额
  48. BankCardType = int.Parse(trade.BankCardType), //银行卡类型
  49. QrPayFlag = trade.TradeType == "02" ? 1 : 0, //云闪付标识
  50. BrandId = int.Parse(trade.ProductType), //品牌
  51. Remark = trade.Remark, //备注
  52. TopUserId = TopUserId, //顶级创客
  53. MerUserId = pos.UserId, //商户直属创客
  54. });
  55. }
  56. TradeRecord edit = spdb.TradeRecord.FirstOrDefault(m => m.Id == trade.Id);
  57. if (edit != null)
  58. {
  59. edit.Status = 2;
  60. }
  61. }
  62. spdb.SaveChanges();
  63. spdb.Dispose();
  64. db.SaveChanges();
  65. db.Dispose();
  66. }
  67. }
  68. }