BaseMessageNotice.php 2.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182
  1. <?php
  2. /**
  3. * Created by PhpStorm.
  4. * User: yunzhong
  5. * Date: 2020/5/29
  6. * Time: 15:39
  7. */
  8. namespace app\common\services\notice;
  9. use app\common\models\notice\MessageTemp;
  10. use app\Jobs\DispatchesJobs;
  11. use app\Jobs\MessageNoticeJob;
  12. use app\Jobs\MiniMessageNoticeJob;
  13. class BaseMessageNotice
  14. {
  15. protected $template_id=0; //模板ID
  16. protected $openid=0; //需要发送消息的会员openid
  17. protected $openids = [];//需要发送消息的会员openid数组
  18. protected $data = []; //消息数据
  19. protected $url=''; //跳转地址
  20. protected $options=[]; //小程序相关配置
  21. protected $uniacid=0;
  22. protected $type=1; //1-公众号 2-小程序
  23. public $back = []; //返回的信息 status (1-有效 0-无效) message:文字信息
  24. public function __construct($temp_id,$openid=0,$data,$openids=[],$type,$url="")
  25. {
  26. $this->template_id = $temp_id;
  27. $this->openid = $openid;
  28. $this->data = $data;
  29. $this->openids = $openids;
  30. $this->uniacid = \YunShop::app()->uniacid;
  31. $this->url = $url;
  32. $this->type = $type;
  33. if (app('plugins')->isEnabled('min-app')) {
  34. $res = \Setting::get('plugin.min_app');
  35. $this->options['app_id'] = empty($res['key']) ? '' : $res['key'];
  36. $this->options['secret'] = empty($res['secret']) ? '' : $res['secret'];
  37. }
  38. }
  39. protected function notice($openid)
  40. {
  41. if ($this->type == 1 && \Setting::get('shop.notice.toggle') == false) {
  42. $back['status'] = 0;
  43. $back['message'] = "后台消息通知未开启";
  44. return $back;
  45. }
  46. if ($this->type == 1) {
  47. \Log::debug("新版公众号消息-4",$this->template_id);
  48. \Log::debug("新版公众号消息-5",$openid);
  49. \Log::debug("新版公众号消息-6",$this->data);
  50. $job = new MessageNoticeJob($this->template_id, $this->data, $openid, $this->url);
  51. DispatchesJobs::dispatch($job,DispatchesJobs::LOW);
  52. }
  53. if ($this->type == 2) {
  54. \Log::debug("新版小程序消息-4",$this->template_id);
  55. \Log::debug("新版小程序消息-5",$openid);
  56. \Log::debug("新版小程序消息-6",$this->data);
  57. $job = new MiniMessageNoticeJob($this->options, $this->template_id, $this->data,$openid, $this->url);
  58. DispatchesJobs::dispatch($job,DispatchesJobs::LOW);
  59. }
  60. $back['status'] = 1;
  61. $back['message'] = "";
  62. return $back;
  63. }
  64. }