run_all_payBack_sql.php 3.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768
  1. <?php
  2. $host = '118.178.193.23';
  3. $db = 'huahuibao';
  4. $user = 'root';
  5. $pass = 'zhh20250805';
  6. $pdo = new PDO("mysql:host=$host;dbname=$db;charset=utf8mb4", $user, $pass, [
  7. PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
  8. ]);
  9. $results = [];
  10. function run(PDO $pdo, $sql, &$results, $label = '') {
  11. try {
  12. $pdo->exec($sql);
  13. $results[] = ['status' => 'ok', 'label' => $label, 'sql' => preg_replace('/\s+/', ' ', trim($sql))];
  14. } catch (Exception $e) {
  15. $results[] = ['status' => 'err', 'label' => $label, 'sql' => preg_replace('/\s+/', ' ', trim($sql)), 'msg' => $e->getMessage()];
  16. }
  17. }
  18. $cols = $pdo->query('DESCRIBE xhScanPay')->fetchAll(PDO::FETCH_COLUMN);
  19. if (!in_array('tkPrice', $cols, true)) {
  20. run($pdo, "ALTER TABLE xhScanPay ADD COLUMN tkPrice decimal(10,2) NOT NULL DEFAULT 0.00 COMMENT '累计退款金额' AFTER actPrice", $results, 'add tkPrice');
  21. } else {
  22. $results[] = ['status' => 'skip', 'label' => 'tkPrice exists'];
  23. }
  24. $cols = $pdo->query('DESCRIBE xhScanPay')->fetchAll(PDO::FETCH_COLUMN);
  25. if (!in_array('refundLog', $cols, true)) {
  26. run($pdo, "ALTER TABLE xhScanPay ADD COLUMN refundLog tinyint(1) NOT NULL DEFAULT 0 COMMENT '是否有退款记录' AFTER tkPrice", $results, 'add refundLog');
  27. } else {
  28. $results[] = ['status' => 'skip', 'label' => 'refundLog exists'];
  29. }
  30. run($pdo, "CREATE TABLE IF NOT EXISTS xhScanPayRefund (
  31. id int(11) NOT NULL AUTO_INCREMENT,
  32. orderSn varchar(32) NOT NULL COMMENT '退款单号 SR*',
  33. relateOrderSn varchar(32) NOT NULL COMMENT '原收款单号 SC*',
  34. scanPayId int(11) NOT NULL DEFAULT 0,
  35. mainId int(11) NOT NULL DEFAULT 0,
  36. shopId int(11) NOT NULL DEFAULT 0,
  37. hdId int(11) NOT NULL DEFAULT 0,
  38. customId int(11) NOT NULL DEFAULT 0,
  39. customName varchar(64) NOT NULL DEFAULT '',
  40. refundPrice decimal(10,2) NOT NULL DEFAULT 0.00,
  41. payWay tinyint(1) NOT NULL DEFAULT 0 COMMENT '0微信 1支付宝',
  42. status tinyint(1) NOT NULL DEFAULT 1 COMMENT '1已通过',
  43. thirdRefundNo varchar(64) NOT NULL DEFAULT '' COMMENT '拉卡拉退款流水号',
  44. shopAdminId int(11) NOT NULL DEFAULT 0,
  45. shopAdminName varchar(32) NOT NULL DEFAULT '',
  46. remark varchar(255) NOT NULL DEFAULT '',
  47. addTime datetime NOT NULL,
  48. PRIMARY KEY (id),
  49. KEY idx_relateOrderSn (relateOrderSn),
  50. KEY idx_mainId (mainId),
  51. KEY idx_scanPayId (scanPayId)
  52. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='收款码退款流水'", $results, 'create xhScanPayRefund');
  53. run($pdo, "CREATE TABLE IF NOT EXISTS xhScanPayRefundSn (
  54. id int(11) NOT NULL AUTO_INCREMENT,
  55. mainId int(11) NOT NULL DEFAULT 0,
  56. shopId int(11) NOT NULL DEFAULT 0,
  57. hdId int(11) NOT NULL DEFAULT 0,
  58. customId int(11) NOT NULL DEFAULT 0,
  59. addTime datetime NOT NULL DEFAULT CURRENT_TIMESTAMP,
  60. PRIMARY KEY (id)
  61. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4", $results, 'create xhScanPayRefundSn');
  62. run($pdo, "ALTER TABLE xhScanPayRefundSn MODIFY addTime datetime NOT NULL DEFAULT CURRENT_TIMESTAMP", $results, 'fix addTime default');
  63. echo json_encode($results, JSON_UNESCAPED_UNICODE | JSON_PRETTY_PRINT) . PHP_EOL;