array('name' => '待处理') ); $user_ids = $usernames = array(); $sys_user_id = Yii::app()->params['kefu_user']; //系统客服账号 array_push($user_ids,new MongoId($sys_user_id)); $admin_info = $this->getAdminInfo(); //当前后台管理账号 if($admin_info){ foreach($admin_info['fake_users'] as $fake_user){ array_push($user_ids,$fake_user); } } if($user_ids){ $model = new ZUser(); $users = $model->getUserInfo($user_ids,array('id',"user_name")); if($users){ foreach($users as $user){ $usernames[(string)$user["_id"]] = array( 'name' => $user['user_name'] ); } } } $user_names = CommonFn::getComboboxData($usernames, 10, true,10); $status = CommonFn::getComboboxData($status, 10, true,10); $this->render('index', array( 'status' => $status, 'usernames' => $user_names )); } public function actionList(){ $params = CommonFn::getPageParams(); $page = Yii::app()->request->getParam('page',1); $search = Yii::app()->request->getParam('search',''); $filter_status = Yii::app()->request->getParam('filter_status',0); $filter_user = Yii::app()->request->getParam('filter_user','10'); // 选择全部的默认值 $from_user_ids = array(); $criteria = new EMongoCriteria($params); if ($search != ''){ if (CommonFn::isMongoId($search)){ $from_user_ids = array(new MongoId($search)); //当搜索项为MongoID时,重置user_ids } else { $user_regex = new MongoRegex('/'.$search.'/'); $user_criteria = new EMongoCriteria(); $user_criteria->user_name("==", $user_regex); $user = RUser::model()->findAll($user_criteria); foreach ($user as $key => $value) { array_push($from_user_ids, $value->_id); } } $criteria->from_user('in', $from_user_ids); } $to_user_ids = array(); if($filter_user != '10'){ array_push($to_user_ids,new MongoId($filter_user)); } //默认为系统客服账号以及当前账号的马甲号 if(empty($to_user_ids) && empty($from_user_ids)){ array_push($to_user_ids,new MongoId(Yii::app()->params['kefu_user'])); $admin_info = $this->getAdminInfo(); //当前后台管理账号 if($admin_info){ foreach($admin_info['fake_users'] as $fake_user){ array_push($to_user_ids,$fake_user); } } } if (!empty($to_user_ids)) { $criteria->user('in',$to_user_ids); } $criteria->type("==",'message'); if($filter_status == 1){ $criteria->no_read_count(">",0); } $cursor = ActionCat::model()->findAll($criteria); $total = $cursor->count(); $rows = CommonFn::getRowsFromCursor($cursor); $parsedRows = ActionCat::model()->parse($rows); echo CommonFn::composeDatagridData($parsedRows, $total); } public function actionGetUserMsgList(){ $from_user_id = Yii::app()->getRequest()->getParam("from_user_id",''); $to_user_id = Yii::app()->getRequest()->getParam("to_user_id",'');; $page = Yii::app()->request->getParam('page',1); if(!$from_user_id || !$to_user_id){ return CommonFn::returnInfo(false,CommonFn::getMessage('user','id_not_exist'),array(),201); } $criteria = new EMongoCriteria(); $criteria->from_user('in', array(new MongoId($to_user_id),new MongoId($from_user_id))); $criteria->to_user('in', array(new MongoId($to_user_id),new MongoId($from_user_id))); $criteria->status('==', 1); $cursor = Message::model()->findAll($criteria); $total = $cursor->count(); $model = new ZMessage(); $data['page'] = $page; $data['from_user'] = $to_user_id; $data['to_user'] = $from_user_id; $result = $model->readMessage($data); $sModel = new Message(); $msg_list = array(); foreach($result['data']['messages'] as $key => $row){ $row['html'] = $sModel->generateMsgHtml($row['type'],$row); $row['from_user']['avatar'] = CommonFn::getQiniuImage($row['from_user']['avatar'],50,50); $msg_list[] = $row; } $msg_list = array_reverse($msg_list); $data = array( 'msg_list' => $msg_list, 'total' => $total ); echo json_encode($data); Yii::app()->end(); } public function actionUnReadCount(){ $user_ids = array(); $admin_info = $this->getAdminInfo(); //当前后台管理账号 if($admin_info){ foreach($admin_info['fake_users'] as $fake_user){ array_push($user_ids,$fake_user); } } $list = new ARedisList('admin_no_read_reply_'.$admin_info['_id']); $post_unread_count = $list->getCount(); // $criteria = new EMongoCriteria(); // $criteria->type("==",'message'); // $criteria->no_read_count("!=",0); // $criteria->user('in',$user_ids); // $unread = ActionCat::model()->count($criteria); // echo CJSON::encode(array('count' => $unread,'post_unread_count'=>$post_unread_count)); echo CJSON::encode(array('count' => 0,'post_unread_count'=>$post_unread_count)); Yii::app()->end(); } public function actionPush(){ $title = Yii::app()->request->getParam('title', ''); $content = Yii::app()->request->getParam('content', ''); $url = Yii::app()->request->getParam('url', ''); $stamp = uniqid(); $gt_content = [ 'title' => $title, 'content' => $content, 'type' => 'custom_url', 'data' => [ "url"=>$url], 'stamp' => $stamp ]; $gt_content = json_encode($gt_content,JSON_UNESCAPED_SLASHES ); $pay_load = json_encode(['t'=>'custom_url',"url"=>$url,'stamp' => $stamp],JSON_UNESCAPED_SLASHES ); if($title && $url){ echo '消息内容:'.$gt_content.'
'; echo 'Message:'.$title.$content.'
'; echo 'pay_load:'.$pay_load.'
'; die(); } $this->renderPartial('pushparam',array()); } }