You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

140 line
5.6KB

  1. using System;
  2. using System.Collections.Generic;
  3. using System.Text;
  4. using System.Data;
  5. using System.Linq;
  6. using MySql.Data.MySqlClient;
  7. namespace CSVDownloader.Store.CreditCSVData {
  8. class CreditCSVDataZeus : CreditCSVData {
  9. public DateTime use_datetime = DateTime.Now;
  10. public String ip = "";
  11. public String device_no = "";
  12. public String receipt_no = "";
  13. public String certificate_no = "";
  14. public String status = "";
  15. public String error_message = "";
  16. public int amount = 0;
  17. public String card_no = "";
  18. public String expiration_date = "";
  19. public String brand = "";
  20. public String payment_type = "";
  21. public String jis_info = "";
  22. public String test = "";
  23. public String order_no = "";
  24. public enum ColName {
  25. SpotID = 100,
  26. UseDatetime = 0,
  27. IP,
  28. DeviceNo,
  29. ReceiptNo,
  30. CertificateNo,
  31. Status,
  32. ErrorMessage,
  33. Amount,
  34. CardNo,
  35. ExpirationDate,
  36. Brand,
  37. PaymentType,
  38. JISInfo,
  39. Test,
  40. OrderNo,
  41. UpdDate,
  42. UpdStaff,
  43. RegDate,
  44. RegStaff
  45. };
  46. }
  47. class ZeusCreditDataStore : CreditCSVDataStore {
  48. private static readonly String table_name_ = "creditcard_download_data_zeus";
  49. private String delete_sql_ = $"delete from {table_name_} where " +
  50. $"{CreditCSVDataZeus.ColName.UseDatetime} between " +
  51. $"@From{CreditCSVDataZeus.ColName.UseDatetime} and " +
  52. $"@To{CreditCSVDataZeus.ColName.UseDatetime};";
  53. public ZeusCreditDataStore(MySqlConnection conn) : base(conn) {
  54. }
  55. public override void Save(List<CreditCSVData> list) {
  56. Code.ResultCode ret;
  57. var table = new DataTable();
  58. table.Columns.Add(CreditCSVDataZeus.ColName.SpotID.ToString());
  59. table.Columns.Add(CreditCSVDataZeus.ColName.UseDatetime.ToString());
  60. table.Columns.Add(CreditCSVDataZeus.ColName.IP.ToString());
  61. table.Columns.Add(CreditCSVDataZeus.ColName.DeviceNo.ToString());
  62. table.Columns.Add(CreditCSVDataZeus.ColName.ReceiptNo.ToString());
  63. table.Columns.Add(CreditCSVDataZeus.ColName.CertificateNo.ToString());
  64. table.Columns.Add(CreditCSVDataZeus.ColName.Status.ToString());
  65. table.Columns.Add(CreditCSVDataZeus.ColName.ErrorMessage.ToString());
  66. table.Columns.Add(CreditCSVDataZeus.ColName.Amount.ToString());
  67. table.Columns.Add(CreditCSVDataZeus.ColName.CardNo.ToString());
  68. table.Columns.Add(CreditCSVDataZeus.ColName.ExpirationDate.ToString());
  69. table.Columns.Add(CreditCSVDataZeus.ColName.Brand.ToString());
  70. table.Columns.Add(CreditCSVDataZeus.ColName.PaymentType.ToString());
  71. table.Columns.Add(CreditCSVDataZeus.ColName.JISInfo.ToString());
  72. table.Columns.Add(CreditCSVDataZeus.ColName.Test.ToString());
  73. table.Columns.Add(CreditCSVDataZeus.ColName.OrderNo.ToString());
  74. table.Columns.Add(CreditCSVDataZeus.ColName.UpdStaff.ToString());
  75. table.Columns.Add(CreditCSVDataZeus.ColName.RegStaff.ToString());
  76. foreach (CreditCSVDataZeus data in list) {
  77. var row = table.NewRow();
  78. row[CreditCSVDataZeus.ColName.SpotID.ToString()] = data.spot_id;
  79. row[CreditCSVDataZeus.ColName.UseDatetime.ToString()] = data.use_datetime;
  80. row[CreditCSVDataZeus.ColName.IP.ToString()] = data.ip;
  81. row[CreditCSVDataZeus.ColName.DeviceNo.ToString()] = data.device_no;
  82. row[CreditCSVDataZeus.ColName.ReceiptNo.ToString()] = data.receipt_no;
  83. row[CreditCSVDataZeus.ColName.CertificateNo.ToString()] = data.certificate_no;
  84. row[CreditCSVDataZeus.ColName.Status.ToString()] = data.status;
  85. row[CreditCSVDataZeus.ColName.ErrorMessage.ToString()] = data.error_message;
  86. row[CreditCSVDataZeus.ColName.Amount.ToString()] = data.amount;
  87. row[CreditCSVDataZeus.ColName.CardNo.ToString()] = data.card_no;
  88. row[CreditCSVDataZeus.ColName.ExpirationDate.ToString()] = data.expiration_date;
  89. row[CreditCSVDataZeus.ColName.Brand.ToString()] = data.brand;
  90. row[CreditCSVDataZeus.ColName.PaymentType.ToString()] = data.payment_type;
  91. row[CreditCSVDataZeus.ColName.JISInfo.ToString()] = data.jis_info;
  92. row[CreditCSVDataZeus.ColName.Test.ToString()] = data.test;
  93. row[CreditCSVDataZeus.ColName.OrderNo.ToString()] = data.order_no;
  94. row[CreditCSVDataZeus.ColName.UpdStaff.ToString()] = data.upd_staff;
  95. row[CreditCSVDataZeus.ColName.RegStaff.ToString()] = data.reg_staff;
  96. table.Rows.Add(row);
  97. }
  98. ret = BulkInsertData(table_name_, table);
  99. if (ret != Code.ResultCode.OK) {
  100. throw new Exception("登録失敗 Zeus");
  101. }
  102. }
  103. public override int Delete(DateTime from, DateTime to) {
  104. var bindlist = new List<(String, object)> {
  105. ("From"+CreditCSVDataZeus.ColName.UseDatetime.ToString(), from.ToString("yyyy-MM-dd")),
  106. ("To"+CreditCSVDataZeus.ColName.UseDatetime.ToString(), to.AddDays(1).ToString("yyyy-MM-dd"))
  107. };
  108. var delete_count = DeleteData(delete_sql_, bindlist);
  109. if (delete_count == -1) {
  110. throw new Exception("削除失敗 Zeus");
  111. }
  112. return delete_count;
  113. }
  114. }
  115. }