OfficialMessageNotice.php 2.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990
  1. <?php
  2. /**
  3. * Created by PhpStorm.
  4. * User: yunzhong
  5. * Date: 2020/6/1
  6. * Time: 17:56
  7. */
  8. namespace app\common\services\notice\official;
  9. use app\common\models\notice\MessageTemp;
  10. use app\common\services\notice\BaseMessageNotice;
  11. class OfficialMessageNotice extends BaseMessageNotice
  12. {
  13. public function __construct($temp_id, $openid = 0, $data, array $openids=[], $type,$url="")
  14. {
  15. parent::__construct($temp_id, $openid, $data, $openids, $type,$url);
  16. }
  17. public function replaceData()
  18. {
  19. if (empty($this->template_id) || count($this->data) <= 0) {
  20. $this->back['status'] = 0;
  21. $this->back['message'] = "模板ID为空或发送数据为空";
  22. return ;
  23. }
  24. $this->data = MessageTemp::getSendMsg($this->template_id, $this->data);
  25. $this->template_id = MessageTemp::$template_id;
  26. if (empty($this->data)) {
  27. $this->back['status'] = 0;
  28. $this->back['message'] = "替换后的数据为空";
  29. return;
  30. }
  31. if (empty($this->openid) && count($this->openids) <= 0) {
  32. $this->back['status'] = 0;
  33. $this->back['message'] = "会员ID为空";
  34. return ;
  35. }
  36. $this->back['status'] = 1;
  37. $this->back['message'] = '';
  38. return ;
  39. }
  40. public function sendMessage()
  41. {
  42. $this->replaceData();
  43. if ($this->back['status'] != 1) {
  44. return $this->back;
  45. }
  46. if (!empty($this->openid)) {
  47. $official = $this->notice($this->openid);
  48. if ($official['status'] != 1) {
  49. return $official;
  50. }
  51. }
  52. if (!empty($this->openids)) {
  53. $msg = [];
  54. foreach ($this->openids as $kk=>$vv) {
  55. $rein = $this->notice($vv);
  56. if ($rein['status'] != 1) {
  57. $msg[] = $rein['message'];
  58. }
  59. }
  60. if (count($msg)>0) {
  61. $this->back['status'] = 0;
  62. $this->back['message'] = implode(',',$msg);
  63. return $this->back;
  64. }
  65. }
  66. $this->back['status'] = 1;
  67. $this->back['message'] = "";
  68. return $this->back;
  69. }
  70. }