123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147 |
- <?php
- namespace sendmsg;
- class sendMemberMsg
- {
- private $code = '';
- private $member_id = 0;
- private $member_info = array();
- private $mobile = '';
- private $email = '';
- /**
- * 设置
- *
- * @param mixed $key
- * @param mixed $value
- */
- public function set($key, $value)
- {
- $this->$key = $value;
- }
- public function send($param = array(),$weixin_param = array(),$ali_param = array(),$ten_param = array())
- {
- $msg_tpl = rkcache('membermsgtpl', true);
- if (!isset($msg_tpl[$this->code]) || $this->member_id <= 0) {
- return false;
- }
- $tpl_info = $msg_tpl[$this->code];
- $setting_info = model('membermsgsetting')->getMembermsgsettingInfo(array('membermt_code' => $this->code,'member_id' => $this->member_id), 'membermt_isreceive');
- if (empty($setting_info) || $setting_info['membermt_isreceive']) {
- // 发送站内信
- if ($tpl_info['membermt_message_switch']) {
- $message = ds_replace_text($tpl_info['membermt_message_content'], $param);
- $this->sendMessage($message);
- }
- // 发送短消息
- if ($tpl_info['membermt_short_switch']) {
- $this->getMemberInfo();
- if (!empty($this->mobile))
- $this->member_info['member_mobile'] = $this->mobile;
- if ($this->member_info['member_mobilebind'] && !empty($this->member_info['member_mobile'])) {
- $message = ds_replace_text($tpl_info['membermt_short_content'], $param);
- if(session('member_msg_short')==md5($message.'@'.$this->code.'@'.$this->member_id)){//如果发送过相同的消息则停止再发送
- return false;
- }else{
- session('member_msg_short',md5($message.'@'.$this->code.'@'.$this->member_id));
- }
- $smslog_param=array(
- 'ali_template_code'=>$tpl_info['ali_template_code'],
- 'ali_template_param'=>$ali_param,
- 'ten_template_code'=>$tpl_info['ten_template_code'],
- 'ten_template_param'=>$ten_param,
- 'message'=>$message,
- );
- $this->sendShort($this->member_info['member_mobile'], $smslog_param);
- }
- }
- // 发送邮件
- if ($tpl_info['membermt_mail_switch']) {
- $this->getMemberInfo();
- if (!empty($this->email))
- $this->member_info['member_email'] = $this->email;
- if ($this->member_info['member_emailbind'] && !empty($this->member_info['member_email'])) {
- $param['site_name'] = config('ds_config.site_name');
- $param['mail_send_time'] = date('Y-m-d H:i:s');
- $subject = ds_replace_text($tpl_info['membermt_mail_subject'], $param);
- $message = htmlspecialchars_decode(ds_replace_text($tpl_info['membermt_mail_content'], $param));
- $this->sendMail($this->member_info['member_email'], $subject, $message);
- }
- }
- // 发送微信模板消息
- if(!empty($weixin_param) && $tpl_info['membermt_weixin_switch'] && $tpl_info['membermt_weixin_code']){
- $param['site_name'] = config('ds_config.site_name');
- $this->getMemberInfo();
- if($this->member_info['member_wxopenid']){
- $tm_data = array(
- "first" => array(
- "value" => $tpl_info['membermt_name'],
- "color" => "#ff7007"
- ),
- "remark" => array(
- "value" => ds_replace_text($tpl_info['membermt_short_content'],$param),
- "color" => "#333"
- )
- );
- $wechat_model=model('wechat');
- $wechat_model->getOneWxconfig();
- $wechat_model->sendMessageTemplate($this->member_info['member_wxopenid'], $tpl_info['membermt_weixin_code'], $weixin_param['url'], array_merge($tm_data,$weixin_param['data']));
- }
- }
- }
- }
- /**
- * 会员详细信息
- */
- private function getMemberInfo()
- {
- if (empty($this->member_info)) {
- $this->member_info = model('member')->getMemberInfoByID($this->member_id);
- }
- }
- /**
- * 发送站内信
- * @param unknown $message
- */
- private function sendMessage($message)
- {
- //添加短消息
- $message_model = model('message');
- $insert_arr = array();
- $insert_arr['from_member_id'] = 0;
- $insert_arr['member_id'] = $this->member_id;
- $insert_arr['msg_content'] = $message;
- $insert_arr['message_type'] = 1;
- $message_model->addMessage($insert_arr);
- }
- /**
- * 发送短消息
- * @param unknown $number
- * @param unknown $message
- */
- private function sendShort($number, $message)
- {
- model('smslog')->sendSms($number, $message,'','','0','',true);
- }
- /**
- * 发送邮件
- * @param unknown $number
- * @param unknown $subject
- * @param unknown $message
- */
- private function sendMail($number, $subject, $message)
- {
- // 计划任务代码
- $insert = array();
- $insert['mailcron_address'] = $number;
- $insert['mailcron_subject'] = $subject;
- $insert['mailcron_contnet'] = $message;
- model('mailcron')->addMailCron($insert);
- }
- }
|