ReportChargeTest.php 4.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119
  1. <?php
  2. namespace Tests\Jobs\Callback;
  3. use App\Jobs\Callback\ReportCharge;
  4. use App\Service\Util\Support\Trace\TraceContext;
  5. use Illuminate\Support\Facades\DB;
  6. use PHPUnit\Framework\TestCase;
  7. class ReportChargeTest extends \Tests\TestCase
  8. {
  9. public function testHandle()
  10. {
  11. $this->prepareData();
  12. foreach (range(1, 150) as $i) {
  13. $traceContext = new TraceContext();
  14. $reportCharge = new ReportCharge(['uid' => 1000 + $i, 'orderId' => 10000 + $i,
  15. 'traceInfo' => $traceContext->getTraceInfo()]);
  16. $reportCharge->handle();
  17. }
  18. foreach (range(151, 163) as $i) {
  19. $traceContext = new TraceContext();
  20. $reportCharge = new ReportCharge(['uid' => 1000 + $i -150, 'orderId' => 10000 + $i,
  21. 'traceInfo' => $traceContext->getTraceInfo()]);
  22. $reportCharge->handle();
  23. }
  24. foreach (range(164, 180) as $i) {
  25. $traceContext = new TraceContext();
  26. $reportCharge = new ReportCharge(['uid' => 1000 + $i, 'orderId' => 10000 + $i,
  27. 'traceInfo' => $traceContext->getTraceInfo()]);
  28. $reportCharge->handle();
  29. }
  30. }
  31. private function prepareData() {
  32. $promotionId = 100;
  33. $optimizerId = 5;
  34. foreach(range(1, 150) as $i) {
  35. $orders[] = [
  36. 'id' => 10000 + $i,
  37. 'uid' => 1000 + $i,
  38. 'promotion_id' => $promotionId,
  39. 'user_id' => $optimizerId,
  40. 'price' => rand(10, 60),
  41. 'pay_product_id' => 1,
  42. 'status' => 'PAID',
  43. 'trade_no' => uniqid(),
  44. 'created_at' => '2023-05-19 14:44:01',
  45. 'updated_at' => date('Y-m-d H:i:s'),
  46. ];
  47. $ranses[] = [
  48. 'uid' => 1000 + $i,
  49. 'ranse_id' => 100,
  50. 'callback' => uniqid(),
  51. 'ranse_start_at' => '2023-05-19 14:44:01',
  52. 'ranse_end_at' => '2023-05-19 15:44:01',
  53. 'advertiser_id' => '1234568',
  54. 'adv_promotion_id' => '234',
  55. 'report_result' => '[]',
  56. 'created_at' => date('Y-m-d H:i:s'),
  57. 'updated_at' => date('Y-m-d H:i:s'),
  58. 'ranse_ip' =>'192.168.1.123',
  59. 'optimizer_uid' => 5
  60. ];
  61. }
  62. foreach (range(151, 163) as $i) {
  63. $orders[] = [
  64. 'id' => 10000 + $i,
  65. 'uid' => 1000 + $i - 150,
  66. 'promotion_id' => $promotionId,
  67. 'user_id' => $optimizerId,
  68. 'price' => rand(40, 70),
  69. 'pay_product_id' => 1,
  70. 'status' => 'PAID',
  71. 'trade_no' => uniqid(),
  72. 'created_at' => '2023-05-19 14:'.(44 + rand(5, 10)),
  73. 'updated_at' => date('Y-m-d H:i:s'),
  74. ];
  75. }
  76. foreach(range(164, 180) as $i) {
  77. $orders[] = [
  78. 'id' => 10000 + $i,
  79. 'uid' => 1000 + $i,
  80. 'promotion_id' => $promotionId,
  81. 'user_id' => $optimizerId,
  82. 'price' => rand(40, 70),
  83. 'pay_product_id' => 1,
  84. 'status' => 'PAID',
  85. 'trade_no' => uniqid(),
  86. 'created_at' => '2023-05-19 14:44:01',
  87. 'updated_at' => date('Y-m-d H:i:s'),
  88. ];
  89. $ranses[] = [
  90. 'uid' => 1000 + $i,
  91. 'ranse_id' => 100,
  92. 'callback' => uniqid(),
  93. 'ranse_start_at' => '2023-05-19 14:44:01',
  94. 'ranse_end_at' => '2023-05-19 15:44:01',
  95. 'advertiser_id' => '1234568',
  96. 'adv_promotion_id' => '234',
  97. 'report_result' => '[]',
  98. 'created_at' => date('Y-m-d H:i:s'),
  99. 'updated_at' => date('Y-m-d H:i:s'),
  100. 'ranse_ip' =>'192.168.1.123',
  101. 'optimizer_uid' => 5
  102. ];
  103. }
  104. DB::table('orders')->where('id', '>=', 10001)->delete();
  105. DB::table('orders')->insert($orders);
  106. DB::table('callback_report_ranse_record')->delete();
  107. DB::table('callback_report_charge_record')->delete();
  108. DB::table('callback_report_ranse_record')->insert($ranses);
  109. }
  110. }