sendMemberMsg.php 3.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120
  1. <?php
  2. namespace sendmsg;
  3. class sendMemberMsg
  4. {
  5. private $code = '';
  6. private $member_id = 0;
  7. private $member_info = array();
  8. private $mobile = '';
  9. private $email = '';
  10. /**
  11. * 设置
  12. *
  13. * @param mixed $key
  14. * @param mixed $value
  15. */
  16. public function set($key, $value)
  17. {
  18. $this->$key = $value;
  19. }
  20. public function send($param = array())
  21. {
  22. $msg_tpl = rkcache('membermsgtpl', true);
  23. if (!isset($msg_tpl[$this->code]) || $this->member_id <= 0) {
  24. return false;
  25. }
  26. $tpl_info = $msg_tpl[$this->code];
  27. $setting_info = model('membermsgsetting')->getMembermsgsettingInfo(array('membermt_code' => $this->code,'member_id' => $this->member_id), 'membermt_isreceive');
  28. if (empty($setting_info) || $setting_info['membermt_isreceive']) {
  29. // 发送站内信
  30. if ($tpl_info['membermt_message_switch']) {
  31. $message = ds_replace_text($tpl_info['membermt_message_content'], $param);
  32. $this->sendMessage($message);
  33. }
  34. // 发送短消息
  35. if ($tpl_info['membermt_short_switch']) {
  36. $this->getMemberInfo();
  37. if (!empty($this->mobile))
  38. $this->member_info['member_mobile'] = $this->mobile;
  39. if ($this->member_info['member_mobilebind'] && !empty($this->member_info['member_mobile'])) {
  40. $param['site_name'] = config('site_name');
  41. $message = ds_replace_text($tpl_info['membermt_short_content'], $param);
  42. $this->sendShort($this->member_info['member_mobile'], $message);
  43. }
  44. }
  45. // 发送邮件
  46. if ($tpl_info['membermt_mail_switch']) {
  47. $this->getMemberInfo();
  48. if (!empty($this->email))
  49. $this->member_info['member_email'] = $this->email;
  50. if ($this->member_info['member_emailbind'] && !empty($this->member_info['member_email'])) {
  51. $param['site_name'] = config('site_name');
  52. $param['mail_send_time'] = date('Y-m-d H:i:s');
  53. $subject = ds_replace_text($tpl_info['membermt_mail_subject'], $param);
  54. $message = ds_replace_text($tpl_info['membermt_mail_content'], $param);
  55. $this->sendMail($this->member_info['member_email'], $subject, $message);
  56. }
  57. }
  58. }
  59. }
  60. /**
  61. * 会员详细信息
  62. */
  63. private function getMemberInfo()
  64. {
  65. if (empty($this->member_info)) {
  66. $this->member_info = model('member')->getMemberInfoByID($this->member_id);
  67. }
  68. }
  69. /**
  70. * 发送站内信
  71. * @param unknown $message
  72. */
  73. private function sendMessage($message)
  74. {
  75. //添加短消息
  76. $message_model = model('message');
  77. $insert_arr = array();
  78. $insert_arr['from_member_id'] = 0;
  79. $insert_arr['member_id'] = $this->member_id;
  80. $insert_arr['msg_content'] = $message;
  81. $insert_arr['message_type'] = 1;
  82. $message_model->addMessage($insert_arr);
  83. }
  84. /**
  85. * 发送短消息
  86. * @param unknown $number
  87. * @param unknown $message
  88. */
  89. private function sendShort($number, $message)
  90. {
  91. $sms = new \sendmsg\Sms();
  92. $sms->send($number, $message);
  93. }
  94. /**
  95. * 发送邮件
  96. * @param unknown $number
  97. * @param unknown $subject
  98. * @param unknown $message
  99. */
  100. private function sendMail($number, $subject, $message)
  101. {
  102. //即时发送邮箱
  103. $email = new Email();
  104. $email->send_sys_email($number, $subject, $message);
  105. // 计划任务代码
  106. $insert = array();
  107. $insert['mailcron_address'] = $number;
  108. $insert['mailcron_subject'] = $subject;
  109. $insert['mailcron_contnet'] = $message;
  110. model('mailcron')->addMailCron($insert);
  111. }
  112. }