CrossTrace.php 3.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586
  1. <?php
  2. namespace App\Jobs;
  3. use Ramsey\Uuid\Uuid;
  4. use App\Models\Trace;
  5. use Illuminate\Bus\Queueable;
  6. use Illuminate\Queue\SerializesModels;
  7. use Illuminate\Queue\InteractsWithQueue;
  8. use Illuminate\Contracts\Queue\ShouldQueue;
  9. use Illuminate\Foundation\Bus\Dispatchable;
  10. use Illuminate\Support\Facades\Log;
  11. class CrossTrace implements ShouldQueue
  12. {
  13. use Dispatchable, InteractsWithQueue, Queueable, SerializesModels;
  14. /**
  15. * Create a new job instance.
  16. *
  17. * @return void
  18. */
  19. protected $message;
  20. public function __construct($message)
  21. {
  22. $this->message=$message;
  23. }
  24. /**
  25. * Execute the job.
  26. *
  27. * @return void
  28. */
  29. public function handle()
  30. {
  31. $message=$this->message;
  32. $grade=$message['grade'];
  33. $num=$message['num'];
  34. $total=$message['total'];
  35. $model=$message['model'];
  36. $serial=$message['serial'];
  37. $data=[];
  38. for($i=1;$i<=$total;$i++){
  39. $code=Trace::code();
  40. $uuid = Uuid::uuid1()->getHex();
  41. $data[]=['level'=>1, 'pid'=>0,'sort'=>$uuid.'0000','model'=>$model,'serial'=>$serial,
  42. 'user_id'=>null,'security_code'=>$code['sec_code'],'code'=>$code['code'], 'child_num'=>$num['num2'],
  43. 'is_lowest'=>0,'is_full'=>0,'good_select_id'=>null,
  44. 'created_at'=>date("Y-m-d H:i:s"),'updated_at'=>date("Y-m-d H:i:s")
  45. ];
  46. if($grade>=2){
  47. for($j=1;$j<=$num['num2'];$j++){
  48. if($j<10){
  49. $j='0'.$j;
  50. }
  51. if($grade==2){
  52. $child_num=0;
  53. $is_lowest=1;
  54. }else{
  55. $is_lowest=0;
  56. $child_num=$num['num3'];
  57. }
  58. $data[]=['level'=>2, 'pid'=>$uuid.'0000','sort'=>$uuid.$j.'00','model'=>$model,'serial'=>$serial,
  59. 'user_id'=>null,'security_code'=>Trace::code()['sec_code'], 'code'=>Trace::code()['code'], 'child_num'=>$child_num,
  60. 'is_lowest'=>$is_lowest,'is_full'=>0,'good_select_id'=>null,
  61. 'created_at'=>date("Y-m-d H:i:s"),'updated_at'=>date("Y-m-d H:i:s")
  62. ];
  63. if($grade>=3){
  64. for($z=1;$z<=$num['num3'];$z++){
  65. if($z<10){
  66. $z='0'.$z;
  67. }
  68. $data[]=['level'=>3, 'pid'=>$uuid.$j.'00','sort'=>$uuid.$j.$z,'model'=>$model,'serial'=>$serial,
  69. 'user_id'=>null,'security_code'=>Trace::code()['sec_code'], 'code'=>Trace::code()['code'], 'child_num'=>0,
  70. 'is_lowest'=>1,'is_full'=>0,'good_select_id'=>null,
  71. 'created_at'=>date("Y-m-d H:i:s"),'updated_at'=>date("Y-m-d H:i:s")
  72. ];
  73. }
  74. }
  75. }
  76. }
  77. }
  78. Trace::insert($data);
  79. }
  80. }