ProcurementConfirmInform.php 3.1 KB

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