123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147 |
- <?php
- /**
- * Created by PhpStorm.
- * User: stanley-king
- * Date: 2018/9/7
- * Time: 上午10:06
- */
- namespace room;
- use Exception;
- use Log;
- use member_info;
- class pusher
- {
- private static $stInstance;
- private function __construct()
- {
- }
- public static function instance()
- {
- if(self::$stInstance == null) {
- self::$stInstance = new pusher();
- }
- return self::$stInstance;
- }
- public function new_friend($receiver,$user)
- {
- try
- {
- $minfo = new member_info($user);
- $from = ['nickname' => $minfo->nickname(),'avatar' => $minfo->avatar(),'userid' => intval($user)];
- $content = ['type' => 'new_friend','from' => $from];
- factory_client::instance()->notice_users([$receiver],proto_type::push_command,$content,'');
- }
- catch (Exception $ex) {
- Log::record($ex->getMessage(),Log::ERR);
- }
- }
- //state = pending,accept,refuse
- public function apply_friend($applicant,$friend,$note)
- {
- try
- {
- $minfo = new member_info($applicant);
- $from = ['nickname' => $minfo->nickname(),'avatar' => $minfo->avatar(),'userid' => intval($applicant)];
- $content = ['type' => 'apply_friend','from' => $from,'note' => $note,'state' => 'pending'];
- $msg = "{$minfo->nickname()} 请求加您为好友.";
- factory_client::instance()->notice_users([$friend],proto_type::push_apply,$content,$msg);
- }
- catch (Exception $ex) {
- Log::record($ex->getMessage(),Log::ERR);
- }
- }
- //state = pending,accept,refuse
- public function apply_room($applicant,$roomid,$note)
- {
- try
- {
- $minfo = new member_info($applicant);
- $from = ['nickname' => $minfo->nickname(),'avatar' => $minfo->avatar(),'userid' => intval($applicant)];
- $content = ['type' => 'apply_room','from' => $from,'note' => $note,'room_id' => $roomid,'state' => 'pending'];
- $room = $this->get_room($roomid);
- if($room == false) return;
- $msg = "{$minfo->nickname()} 申请加入 {$room->name()}";
- factory_client::instance()->notice_users([$room->creator()],proto_type::push_apply,$content,$msg);
- }
- catch (Exception $ex) {
- Log::record($ex->getMessage(),Log::ERR);
- }
- }
- /**
- * 群公告设置推送
- */
- public function send_room_notice($user,$roomid,$note){
- try
- {
- $minfo = new member_info($user);
- $from = ['nickname' => $minfo->nickname(),'avatar' => $minfo->avatar(),'userid' => intval($user)];
- $content = ['type' => 'notice_room','from' => $from,'note' => $note,'room_id' => $roomid];
- $room = $this->get_room($roomid);
- if($room == false) return;
- $msg = "群公告@all $note";
- factory_client::instance()->notice_room($roomid,proto_type::msg_type_text,$content,$msg);
- }
- catch (Exception $ex) {
- Log::record($ex->getMessage(),Log::ERR);
- }
- }
- /**
- * 群认证通过/拒绝推送
- * @param $roomid
- * @param $type
- */
- public function certification_notice($roomid,$type)
- {
- try
- {
- $room = $this->get_room($roomid);
- if($room == false) return;
- if($type){
- $msg = "群: {$room->name()} 申请的认证被通过";
- }else{
- $msg = "群: {$room->name()} 申请的认证被拒绝";
- }
- $room_owner = $room->owner();
- $minfo = new member_info($room_owner);
- $to = ['nickname' => $minfo->nickname(),'avatar' => $minfo->avatar(),'userid' => $room_owner];
- $content = ['type' => 'certification_notice','to' => $to,'note' => $msg,'room_id' => $roomid];
- factory_client::instance()->notice_users([$room->creator()],proto_type::msg_type_nofity,$content,$msg);
- }
- catch (Exception $ex) {
- Log::record($ex->getMessage(),Log::ERR);
- }
- }
- private function get_room($roomid)
- {
- $roomid = intval($roomid);
- if($roomid <= 0) return false;
- $mod_room = Model('room');
- $item = $mod_room->getRoom($roomid);
- if(empty($item)) return false;
- return new room_info($item);
- }
- }
|