ProcurementConfirmInform.php 2.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081
  1. <?php
  2. namespace App\Jobs;
  3. use App\Procurement;
  4. use App\Services\ProcurementWeiXinSendMessageService;
  5. use Illuminate\Bus\Queueable;
  6. use Illuminate\Contracts\Queue\ShouldQueue;
  7. use Illuminate\Foundation\Bus\Dispatchable;
  8. use Illuminate\Queue\InteractsWithQueue;
  9. use Illuminate\Queue\SerializesModels;
  10. class ProcurementConfirmInform implements ShouldQueue
  11. {
  12. use Dispatchable, InteractsWithQueue, Queueable, SerializesModels;
  13. protected $procurement;
  14. /**
  15. * Create a new job instance.
  16. *
  17. * @param Procurement $procurement
  18. */
  19. public function __construct(Procurement $procurement)
  20. {
  21. $this->procurement=$procurement;
  22. }
  23. /**
  24. * Execute the job.
  25. *
  26. * @return void
  27. */
  28. public function handle()
  29. {
  30. $pro=$this->procurement->loadMissing(['ownerMaterial.material.supplier.user.userDetail','ownerMaterial.owner.customer']);
  31. $suppliers=$pro->ownerMaterial->material->supplier ?? false;
  32. if(!$suppliers) return ;
  33. $open_ids=[];
  34. foreach ($suppliers as $supplier) {
  35. foreach ($supplier->user as $user){
  36. $open_id = $user->userDetail->procurement_wechat_open_id ?? false;
  37. if($open_id)$open_ids[]=$open_id;
  38. }
  39. }
  40. $open_ids=array_unique($open_ids);
  41. foreach ($open_ids as $open_id){
  42. $param['touser'] =$open_id;
  43. $param['mp_template_msg'] =[
  44. "appid"=>config('weiXin.fuWuHao.appId'),
  45. "template_id"=>config('weiXin.fuWuHaoTemplate.order_confirm_inform'),
  46. "url"=>"http://weixin.qq.com/download",
  47. "miniprogram"=>[
  48. "appid"=>config('weiXin.appId.appId'),
  49. "pagepath"=>"pages/login/login"
  50. ],
  51. 'data'=>[
  52. 'first' => [
  53. "value"=>"尊敬的供应商,你好!",
  54. ],
  55. 'keyword1' => [
  56. "value"=>$pro->code ?? '',
  57. "color"=>"#173177"
  58. ],
  59. 'keyword2' => [
  60. "value"=>$pro->ownerMaterial->owner->customer->company_name ?? '',
  61. "color"=>"#173177"
  62. ],
  63. 'remark' => [
  64. "value"=>'请及时确认,谢谢。',
  65. ],
  66. ]
  67. ];
  68. app(ProcurementWeiXinSendMessageService::class)->sendWenChantTemplate($param);
  69. }
  70. }
  71. }