PosPushDataHelper.cs 4.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091
  1. using System;
  2. using System.Collections.Generic;
  3. using Library;
  4. using MySystem.PxcModels;
  5. namespace MySystem
  6. {
  7. public class PosPushDataHelper
  8. {
  9. public readonly static PosPushDataHelper Instance = new PosPushDataHelper();
  10. private PosPushDataHelper()
  11. { }
  12. //绑定数据
  13. public static void Bind(PosMerchantInfo mer)
  14. {
  15. Dictionary<string, object> dataContent = new Dictionary<string, object>();
  16. dataContent.Add("pos_sn", mer.KqSnNo); //机具sn
  17. dataContent.Add("mer_no", mer.KqMerNo); //商户号
  18. dataContent.Add("id_card", mer.MerIdcardNo); //商户身份证
  19. dataContent.Add("mer_name", mer.MerchantName); //商户姓名
  20. dataContent.Add("mer_mobile", mer.MerchantMobile); //商户手机号
  21. dataContent.Add("request_id", mer.CreateDate.Value.ToString("yyyyMMddHHmmssfff") + function.get_Random(8)); //流水号
  22. dataContent.Add("bind_time", mer.CreateDate); //绑定时间
  23. dataContent.Add("brand", mer.BrandId); //品牌
  24. Push("bind", dataContent);
  25. }
  26. //解绑数据
  27. public static void UnBind(PosMerchantInfo mer)
  28. {
  29. Dictionary<string, object> dataContent = new Dictionary<string, object>();
  30. dataContent.Add("pos_sn", mer.KqSnNo); //机具sn
  31. dataContent.Add("mer_no", mer.KqMerNo); //商户号
  32. dataContent.Add("request_id", DateTime.Now.ToString("yyyyMMddHHmmssfff") + function.get_Random(8)); //流水号
  33. dataContent.Add("un_bind_time", DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")); //绑定时间
  34. dataContent.Add("brand", mer.BrandId); //品牌
  35. Push("un_bind", dataContent);
  36. }
  37. //换绑数据
  38. public static void ChangeBind(PosMerchantInfo mer, PosMachinesTwo source, PosMachinesTwo pos)
  39. {
  40. Dictionary<string, object> dataContent = new Dictionary<string, object>();
  41. dataContent.Add("request_id", DateTime.Now.ToString("yyyyMMddHHmmssfff") + function.get_Random(8)); //流水号
  42. dataContent.Add("mer_no", mer.KqMerNo); //商户号
  43. dataContent.Add("source_pos_sn", source.PosSn); //来源机具sn
  44. dataContent.Add("source_brand", source.BrandId); //来源品牌
  45. dataContent.Add("to_pos_sn", pos.PosSn); //兑换机具sn
  46. dataContent.Add("to_brand", pos.BrandId); //兑换品牌
  47. dataContent.Add("change_bind_time", DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")); //换绑时间
  48. Push("change_bind", dataContent);
  49. }
  50. //押金数据
  51. public static void Deposit(PosMerchantInfo mer, decimal amt)
  52. {
  53. Dictionary<string, object> dataContent = new Dictionary<string, object>();
  54. dataContent.Add("pos_sn", mer.KqSnNo); //机具sn
  55. dataContent.Add("mer_no", mer.KqMerNo); //商户号
  56. dataContent.Add("request_id", DateTime.Now.ToString("yyyyMMddHHmmssfff") + function.get_Random(8)); //流水号
  57. dataContent.Add("deposit_amount", amt); //押金金额
  58. dataContent.Add("trade_time", DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")); //交易时间
  59. dataContent.Add("brand", mer.BrandId); //品牌
  60. Push("deposit", dataContent);
  61. }
  62. //交易数据
  63. public static void Trade(TradeRecord trade)
  64. {
  65. Dictionary<string, object> dataContent = new Dictionary<string, object>();
  66. dataContent.Add("pos_sn", trade.SnNo); //机具sn
  67. dataContent.Add("mer_no", trade.MerNo); //商户号
  68. dataContent.Add("request_id", trade.TradeSerialNo); //流水号
  69. dataContent.Add("trade_amount", trade.TradeAmount); //交易金额
  70. dataContent.Add("trade_time", trade.CreateDate.Value.ToString("yyyy-MM-dd HH:mm:ss")); //交易时间
  71. dataContent.Add("brand", trade.BrandId); //品牌
  72. dataContent.Add("card_type", trade.BankCardType); //卡类型
  73. dataContent.Add("qr_pay_flag", trade.QrPayFlag); //云闪付标记
  74. Push("trade", dataContent);
  75. }
  76. public static void Push(string dataType, Dictionary<string, object> dataContent)
  77. {
  78. Dictionary<string, object> data = new Dictionary<string, object>();
  79. data.Add("data_type", dataType);
  80. data.Add("data_content", dataContent);
  81. RedisDbconn.Instance.AddList("KxsPosDataQueue", Newtonsoft.Json.JsonConvert.SerializeObject(data));
  82. }
  83. }
  84. }