TestController.php 6.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160
  1. <?php
  2. namespace App\Http\Controllers\Api\v1;
  3. use App\Http\Controllers\Api\webApp;
  4. use App\Services\RedisService;
  5. use Illuminate\Support\Facades\DB;
  6. use QL\QueryList;
  7. /**
  8. * 测试
  9. * Class TestController
  10. * @package App\Http\Controllers\Api
  11. */
  12. class TestController extends webApp
  13. {
  14. public function index()
  15. {
  16. $key = md5('clearTrade');
  17. return message(1002, true, $key);
  18. }
  19. public function betList()
  20. {
  21. /**
  22. *
  23. * 东郲
  24. * 213808.app
  25. * 661182FF
  26. * xxcc666
  27. * AAbb1122
  28. */
  29. set_time_limit(0);
  30. $account = request('account','');
  31. $cookie = 'ssid1=ac7aeb26742b7642d45a0605d4749266; random=549; token=f06742d5c5d6f66606d86bc28f279f12a3d831fa';
  32. $url = "https://86524391-jf.for9dong.com/agent/report/bets?username={$account}&lottery=PK10JSC&begin=2023-02-28&end=2023-02-28&settle=true";
  33. $header = ["Cookie: ssid1=a6d82ef49895683ce8789c1ef0141163; random=9338; token=e11c72348bc5f0b654957495154f6dbaff1307d7","User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36","Host: 86524391-jf.for9dong.com","Connection: keep-alive","Referer: https://86524391-jf.for9dong.com/agent/report/list?username=yyy1999&lottery=PK10JSC&detail=true&begin=2023-02-28&end=2023-02-28&settle=true"];
  34. $datas = [];
  35. $page = request('page');
  36. $endPage = request('endPage');
  37. for($i = $page; $i<=$endPage;){
  38. $html = grabRequest($url.'&page='.$i, $header, '', 'get', 'text', '',10);
  39. $queryList = QueryList::html($html)->rules([
  40. 'order_sn'=> ['td>a:eq(0)','text'],
  41. 'time'=> ['td:eq(1)','text'],
  42. 'gameName'=> ['td.period','html','-div'],
  43. 'period'=> ['td.period>div','text'],
  44. 'account'=> ['td:eq(3)','html','-div'],
  45. 'region'=> ['td:eq(3)>div','text'],
  46. 'code'=> ['td>span:eq(0)','text'],
  47. 'odds'=> ['.odds','text'],
  48. 'money'=> ['.money','text'],
  49. 'commission'=> ['.commission','text'],
  50. 'result'=> ['.dividend','text'],
  51. 'share'=> ['.share','text'],
  52. 'result1'=> ['td:eq(9)','text'],
  53. ])->range('tr')->query()->getData();
  54. $queryList = $queryList->all();
  55. if($queryList){
  56. foreach ($queryList as $item ){
  57. if($item['order_sn'] && !DB::table('test_logs')->where(['order_sn'=> $item['order_sn'],'page'=> $i])->value('id')){
  58. $item['page'] = $i;
  59. $item['money'] = floatval($item['money']);
  60. $item['code'] = str_replace(['『','』'],['[',']'], $item['code']);
  61. $datas[] = $item;
  62. //RedisService::set('order:'.$item['order_sn'], 11, 60000);
  63. }
  64. }
  65. }
  66. $i++;
  67. }
  68. DB::table('test_logs')->insert($datas);
  69. return message(1002, true, $datas);
  70. }
  71. public function betList1()
  72. {
  73. /**
  74. *
  75. * 东郲
  76. * 213808.app
  77. * 661182FF
  78. * xxcc666
  79. * AAbb1122
  80. */
  81. set_time_limit(0);
  82. $account = request('account','');
  83. $cookie = 'ssid1=ac7aeb26742b7642d45a0605d4749266; random=549; token=f06742d5c5d6f66606d86bc28f279f12a3d831fa';
  84. $url = "https://86524391-jf.for9dong.com/agent/report/bets?username={$account}&lottery=PK10JSC&begin=2023-02-28&end=2023-02-28&settle=true";
  85. $header = ["Cookie: ssid1=a6d82ef49895683ce8789c1ef0141163; random=9338; token=e11c72348bc5f0b654957495154f6dbaff1307d7","User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36","Host: 86524391-jf.for9dong.com","Connection: keep-alive","Referer: https://86524391-jf.for9dong.com/agent/report/list?username=yyy1999&lottery=PK10JSC&detail=true&begin=2023-02-28&end=2023-02-28&settle=true"];
  86. $page = request('page');
  87. // $html = grabRequest($url.'&page='.$page, $header, '', 'get', 'text', '',10);
  88. //var_dump($html);
  89. // return 0;
  90. $pageSize =50;
  91. $datas = [];
  92. $page = RedisService::get("log:page");
  93. $page = $page>0? $page : request('page');
  94. $maxPage = request('max', 2730);
  95. if($page >= $maxPage){
  96. $page = request('page');
  97. }
  98. for($i = $page; $i< $page+$pageSize;){
  99. $html = grabRequest($url.'&page='.$i, $header, '', 'get', 'text', '',10);
  100. $queryList = QueryList::html($html)->rules([
  101. 'order_sn'=> ['td>a:eq(0)','text'],
  102. 'time'=> ['td:eq(1)','text'],
  103. 'gameName'=> ['td.period','html','-div'],
  104. 'period'=> ['td.period>div','text'],
  105. 'account'=> ['td:eq(3)','html','-div'],
  106. 'region'=> ['td:eq(3)>div','text'],
  107. 'code'=> ['td>span:eq(0)','text'],
  108. 'odds'=> ['.odds','text'],
  109. 'money'=> ['.money','text'],
  110. 'commission'=> ['.commission','text'],
  111. 'result'=> ['.dividend','text'],
  112. 'share'=> ['.share','text'],
  113. 'result1'=> ['td:eq(9)','text'],
  114. ])->range('tr')->query()->getData();
  115. $queryList = $queryList->all();
  116. if($queryList){
  117. foreach ($queryList as $item ){
  118. if($item['order_sn'] && !DB::table('test_logs')->where(['order_sn'=> $item['order_sn'],'page'=> $i])->value('id')){
  119. $item['page'] = $i;
  120. $item['money'] = floatval($item['money']);
  121. $item['code'] = str_replace(['『','』'],['[',']'], $item['code']);
  122. $datas[] = $item;
  123. DB::table('test_logs')->insert($item);
  124. // RedisService::set('order:'.$i.':'.$item['order_sn'], 11, 30);
  125. }
  126. }
  127. }
  128. $i++;
  129. RedisService::set("log:page", $i, 600);
  130. }
  131. return message(1002, true, ['page'=> $page,'account'=> $account,'count'=> count($datas)]);
  132. }
  133. public function export()
  134. {
  135. $account = 'jkl338';
  136. $datas = DB::table('test_logs')->where(['account'=> $account])->get();
  137. return message(1002, true, $datas);
  138. }
  139. }