SendMessageOrderSendJob.php 2.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374
  1. <?php
  2. namespace Modules\Order\Jobs;
  3. use App\Events\SendMessageOrderSendEvent;
  4. use App\Models\Ordertest;
  5. use App\Models\User;
  6. use Illuminate\Bus\Queueable;
  7. use Illuminate\Queue\SerializesModels;
  8. use Illuminate\Queue\InteractsWithQueue;
  9. use Illuminate\Contracts\Queue\ShouldQueue;
  10. use Illuminate\Foundation\Bus\Dispatchable;
  11. use Illuminate\Support\Facades\Log;
  12. class SendMessageOrderSendJob implements ShouldQueue
  13. {
  14. use Dispatchable, InteractsWithQueue, Queueable, SerializesModels;
  15. /**
  16. * Create a new job instance.
  17. *
  18. * @return void
  19. */
  20. protected $data;
  21. public function __construct($data)
  22. {
  23. $this->data=$data;
  24. }
  25. /**
  26. * Execute the job.
  27. *
  28. * @return void
  29. */
  30. public function handle()
  31. {
  32. try {
  33. $data=$this->data;
  34. $arr=[];
  35. foreach ($data as $k=>$v){
  36. $order=Ordertest::where('order_num',$v['order_num'])->first();
  37. if (!isset($arr[$order->user_id])){
  38. $user=User::find($order->user_id);
  39. $arr[$order->user_id]['express_com']=$v['express_com'];
  40. $arr[$order->user_id]['express_code']=$v['express_code'];
  41. if ($user){
  42. $arr[$order->user_id]['openid']=$user->openid;
  43. }else{
  44. $arr[$order->user_id]['openid']=null;
  45. }
  46. }
  47. }
  48. foreach ($arr as $k=>$v){
  49. $a=[];
  50. if ($v['openid']){
  51. $a=$v;
  52. $a['data']=[
  53. 'first'=>'您有新的订单发货了,请及时登录系统查看,并注意查收。',
  54. 'delivername' => $v['express_com'],
  55. 'ordername' => $v['express_code'],
  56. 'remark' => '点击链接进入系统,查看详情',
  57. ];
  58. event(new SendMessageOrderSendEvent($a));
  59. }
  60. }
  61. }catch (\Exception $exception){
  62. }
  63. }
  64. }