TestPartModel.php 4.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148
  1. <?php
  2. /**
  3. * Created by PhpStorm.
  4. * User: stanley-king
  5. * Date: 2017/5/25
  6. * Time: 上午10:21
  7. */
  8. define('APP_ID', 'test');
  9. define('BASE_ROOT_PATH', str_replace('/test/refill', '', dirname(__FILE__)));
  10. require_once(BASE_ROOT_PATH . '/global.php');
  11. require_once(BASE_CORE_PATH . '/lrlz.php');
  12. require_once(BASE_ROOT_PATH . '/fooder.php');
  13. require_once(BASE_HELPER_PATH . '/refill/XYZRefillFactory.php');
  14. use PHPUnit\Framework\TestCase;
  15. class TestPartModel extends TestCase
  16. {
  17. public static function setUpBeforeClass() : void
  18. {
  19. Base::run_util();
  20. }
  21. public function testCalcPartition()
  22. {
  23. $this->assertEquals("foo", 123);
  24. $p1 = refill\util::part_query();
  25. $time = strtotime('2022-10-01');
  26. $p2 = refill\util::part_query($time);
  27. $time = strtotime('2022-10-18');
  28. $p3 = refill\util::part_query($time);
  29. $p1 = refill\util::part_notify();
  30. $time = strtotime('2022-10-01');
  31. $p2 = refill\util::part_refill($time);
  32. $time = strtotime('2022-10-18');
  33. $p3 = refill\util::part_refill($time);
  34. $p1 = refill\util::part_vr_create();
  35. }
  36. public function testAddTime()
  37. {
  38. $part_calcer = function ($add_time)
  39. {
  40. $namer = function ($time) {
  41. return 'p' . date('Ym', $time);
  42. };
  43. if (defined('DB_PARTIONED') && DB_PARTIONED)
  44. {
  45. if (is_string($add_time)) {
  46. $add_time = intval($add_time);
  47. }
  48. if ($add_time == 0) {
  49. return '';
  50. } else {
  51. return $namer($add_time);
  52. }
  53. }
  54. else {
  55. return '';
  56. }
  57. };
  58. $x = $part_calcer(strtotime('2022-10-01'));
  59. $x = $part_calcer(0);
  60. $y = 0;
  61. }
  62. public function testVrOrderTime()
  63. {
  64. $x = refill\util::part_vr_order_time(strtotime('2022-09-30'));
  65. $vr_order = Model('vr_order');
  66. $y = $vr_order->getOrderInfoForNotify(['order_sn' => '5993560715963417002151']);
  67. }
  68. //refill_detail
  69. public function testDetailExist()
  70. {
  71. $refill_order = Model('refill_order');
  72. $items = $refill_order->table('refill_detail')->field('detail_id')->where(['mchid' => 10202,'mch_order' => '67321661189767693386'])->select();
  73. }
  74. public function testDetailPartion()
  75. {
  76. $refill_order = Model('refill_order');
  77. $items = $refill_order->table('refill_detail')->field('detail_id')->partition('p202210')->where(['mchid' => 10202,'mch_order' => '67321661189767693386'])->select();
  78. }
  79. public function testDetailPartions()
  80. {
  81. $refill_order = Model('refill_order');
  82. $items = $refill_order->table('refill_detail')->field('detail_id')->partition(['p202209','p202210'])->where(['mchid' => 10202,'mch_order' => '67321661189767693386'])->select();
  83. }
  84. public function testDetailUpdate()
  85. {
  86. $refill_order = Model('refill_order');
  87. $items = $refill_order->table('refill_detail')->where(['mchid' => 10202,'mch_order' => '67321661189767693386'])->update(['order_state' => 50]);
  88. }
  89. public function testDetailPartsUpdate()
  90. {
  91. $refill_order = Model('refill_order');
  92. $items = $refill_order->table('refill_detail')->partition(['p202209','p202210'])->where(['mchid' => 10202,'mch_order' => '67321661189767693386'])->update(['order_state' => 50]);
  93. }
  94. //refill_order
  95. public function testRefillPartion()
  96. {
  97. $order_sn = '8905710715963417008880';
  98. $refill_order = Model('refill_order');
  99. $refill_info = $refill_order->getOrderInfo(['order_sn' => $order_sn]);
  100. if (!empty($refill_info)) {
  101. $order_time = $refill_info['order_time'];
  102. $part = refill\util::calc_part($order_time);
  103. $info = $refill_order->getOrderInfo(['order_sn' => $order_sn]);
  104. $info = $refill_order->partition($part)->getOrderInfo(['order_sn' => $order_sn]);
  105. $vr_order = Model('vr_order');
  106. $order_info = $vr_order->partition(refill\util::calc_part())->getOrderInfo(['order_sn' => $order_sn]);
  107. Log::record("info={$info}", Log::DEBUG);
  108. for ($i =0;$i<2000;$i++)
  109. {
  110. $refill_order->where(['order_id' => $refill_info['order_id']])->update(['commit_times' => ['exp', 'commit_times+1']]);
  111. $refill_order->partition($part);
  112. $refill_order->where(['order_id' => $refill_info['order_id']])->update(['commit_times' => ['exp', 'commit_times+1']]);
  113. }
  114. // $refill_order->partition($part);
  115. // $refill_order->where(['order_id' => $refill_info['order_id']])->delete();
  116. }
  117. }
  118. }