123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239 |
- <?php
- namespace Api\Controller;
- use Common\Controller\ApiController;
- class NoticeController extends ApiController {
- public function __construct(){
- parent::__construct();
- }
- //系统消息
- public function index(){
- $lastId = I('last_id',0);
- $pageSize = I('page_size',15);
- $where='notice_type=0 and (ref_user_id='.$this->userId.' or (ref_user_id=0 and notice_title="系统消息"))';
- if ($lastId>0){
- $where='notice_id <'.$lastId.' and '.$where;
-
- }
- M('User')->where(array('user_id'=>$this->userId))->save(array('sys_notice'=>0));
- $res = M('Notice')->where($where)->order('notice_id desc')->field('extra,notice_id,record_id,notice_title,notice_status,notice_flag,notice_type,notice_content,operate_dt')->select();
- foreach ($res as $key=>$r){
- $res[$key]['extra']=json_decode($r['extra'],1);
- if(!$res[$key]['extra']){
- $res[$key]['extra']=null;
- }
- }
- $data = array('code'=>0,'msg'=>'','data'=>$res);
- $this->returnData($data);exit;
- }
- //评论消息
- public function reply(){
- $lastId = I('last_id',0);
- $pageSize = I('page_size',20);
- $condition = array('notice_type'=>3,'ref_user_id'=>array('like',array($this->userId,'0'),'OR'),);
- if ($lastId>0){
- $condition['notice_id'] = array('LT',$lastId);
- }
- M('User')->where(array('user_id'=>$this->userId))->save(array('reply_notice'=>0));
- $res = M('Notice')->where($condition)->order('notice_id desc')->field('extra,user_id,notice_id,record_id,notice_title,notice_status,notice_flag,notice_type,notice_content,operate_dt')->select();
- foreach ($res as $key=>$r){
- $res[$key]['extra']=json_decode($r['extra'],1);
- if(!$res[$key]['extra']){
- $res[$key]['extra']=null;
- }
- $choiceId=$res[$key]['extra']['choice_id'];
-
- $info = M('choice')->where(array('choice_id'=>$choiceId))->field('*')->find();
-
- $res[$key]['extra']['choice_content']=mb_substr(strip_tags(htmlspecialchars_decode($info['choice_content'])),0,200,'utf-8');
-
- $userList = array();
- $info = M('User')->join(' u LEFT JOIN t_user_level ul ON u.user_level=ul.level_id')->where(array('user_id'=>$r['user_id']))->field('user_id,user_phone,user_name,user_level,user_sex,user_icon,user_birthdate,user_score,user_city,user_province,"" as user_nickname,ul.level_name')->find();
- if ($info==NULL){
- continue;
- }else{
- $res[$key]['user_id']=$info['user_id'];
- $res[$key]['user_sex']=$info['user_sex'];
- $res[$key]['user_score'] = $info['user_score'];
- $res[$key]['user_icon']=$info['user_icon'];
- $res[$key]['user_city']=$info['user_city'];
- $res[$key]['level_name']=$info['level_name'];
- $res[$key]['user_province']=$info['user_province'];
- $res[$key]['user_birthdate']=$info['user_birthdate'];
- $res[$key]['user_name'] = $info['user_name'];
- $res[$key]['user_nickname'] = $info['user_nickname'];
- }
- }
- $data = array('code'=>0,'msg'=>'','data'=>$res);
-
- $this->returnData($data);exit;
- }
- //点赞消息
- public function praise(){
- $lastId = I('last_id',0);
- $pageSize = I('page_size',20);
- $condition = array('notice_type'=>4,'ref_user_id'=>array('like',array($this->userId,'0'),'OR'),);
- if ($lastId>0){
- $condition['notice_id'] = array('LT',$lastId);
- }
- M('User')->where(array('user_id'=>$this->userId))->save(array('praise_notice'=>0));
- $res = M('Notice')->where($condition)->order('notice_id desc')->field('extra,user_id,notice_id,record_id,notice_title,notice_status,notice_flag,notice_type,notice_content,operate_dt')->select();
- foreach ($res as $key=>$r){
- $res[$key]['extra']=json_decode($r['extra'],1);
- if(!$res[$key]['extra']){
- $res[$key]['extra']=null;
- }
- $choiceId=$res[$key]['extra']['choice_id'];
- $info = M('choice')->where(array('choice_id'=>$choiceId))->field('*')->find();
- //$res[$key]['extra']['choice_content']=mb_substr($info['choice_content'],0,200);
- $res[$key]['extra']['choice_content']=mb_substr(strip_tags(htmlspecialchars_decode($info['choice_content'])),0,200,'utf-8');
- $userList = array();
- $info = M('User')->join(' u LEFT JOIN t_user_level ul ON u.user_level=ul.level_id')->where(array('user_id'=>$r['user_id']))->field('user_id,user_phone,user_name,user_level,user_sex,user_icon,user_birthdate,user_score,user_city,user_province,"" as user_nickname,ul.level_name')->find();
- if ($info==NULL){
- continue;
- }else{
- $res[$key]['user_id']=$info['user_id'];
- $res[$key]['user_sex']=$info['user_sex'];
- $res[$key]['user_score'] = $info['user_score'];
- $res[$key]['user_icon']=$info['user_icon'];
- $res[$key]['user_city']=$info['user_city'];
- $res[$key]['level_name']=$info['level_name'];
- $res[$key]['user_province']=$info['user_province'];
- $res[$key]['user_birthdate']=$info['user_birthdate'];
- $res[$key]['user_name'] = $info['user_name'];
- $res[$key]['user_nickname'] = $info['user_nickname'];
- }
- }
- $data = array('code'=>0,'msg'=>'','data'=>$res);
- $this->returnData($data);exit;
- }
-
- //好友消息
- public function user(){
- $lastId = I('last_id',0);
- $pageSize = I('page_size',15);
- $condition = array('ref_user_id'=>$this->userId,'notice_type'=>array('IN',array(1,2)));
- if ($lastId>0){
- $condition['notice_id'] = array('LT',$lastId);
- }else{
- M('User')->where(array('user_id'=>$this->userId))->save(array('friend_notice'=>0));
- }
- $res = M('Notice')->where($condition)->order('notice_id desc')->field('notice_id,record_id,notice_title,notice_status,notice_flag,notice_type,notice_content,extra,user_id,ref_user_id,operate_dt')->select();
- foreach ($res as $k=>$r){
- if ($r['user_id']==0){
-
- }
- $fields = 'user_name,user_icon';
- $info = M('User')->where(array('user_id'=>$r['user_id']))->field($fields)->find();
- if ($info==NULL){
- $res[$k]['user_icon']='';
- $res[$k]['user_name'] = '';
- }else{
- $res[$k]['user_icon']=$info['user_icon'];
- $res[$k]['user_name'] = $info['user_name'];
- }
- $res[$k]['extra']=json_decode($res[$k]['extra'],1);
- if(!$res[$k]['extra']){
- $res[$k]['extra']=null;
- }
- }
- $data = array('code'=>0,'msg'=>'','data'=>$res);
- $this->returnData($data);exit;
- }
-
- //点赞消息列表
- public function share(){
- //$this->userId=1000001;
- $lastId = I('last_id',0);
- $pageSize = I('page_size',10);
- $condition = array('s.user_id'=>$this->userId,'share_status'=>1);
- if ($lastId>0){
- $condition['sw_id'] = array('LT',$lastId);
- }else{
- M('User')->where(array('user_id'=>$this->userId))->save(array('zan_notice'=>0));
- }
- $field = 'su.user_id,su.operate_dt,s.share_id,s.share_content,su.sw_id';
- $join = array(' su LEFT JOIN t_share s ON su.share_id = s.share_id');
- $res = M('ShareUser')->join($join)->where($condition)->order('sw_id desc')->limit($pageSize)->field($field)->select();
- $userNicknameArr = $this->getUserNickname();
- foreach ($res as $key=>$r){
- $userList = array();
- $info = M('User')->join(' u LEFT JOIN t_user_level ul ON u.user_level=ul.level_id')->where(array('user_id'=>$r['user_id']))->field('user_id,user_phone,user_name,user_level,user_sex,user_icon,user_birthdate,user_score,user_city,user_province,"" as user_nickname,ul.level_name')->find();
- if ($info==NULL){
- continue;
- }else{
- $res[$key]['user_id']=$info['user_id'];
- $res[$key]['user_sex']=$info['user_sex'];
- $res[$key]['user_score'] = $info['user_score'];
- $res[$key]['user_icon']=$info['user_icon'];
- $res[$key]['user_city']=$info['user_city'];
- $res[$key]['level_name']=$info['level_name'];
- $res[$key]['user_province']=$info['user_province'];
- $res[$key]['user_birthdate']=$info['user_birthdate'];
- $res[$key]['user_name'] = $info['user_name'];
- $res[$key]['user_nickname'] = $info['user_nickname'];
- }
- }
- $data = array('code'=>0,'msg'=>'','data'=>$res);
- $this->returnData($data);exit;
- }
-
- //获取单条消息,点赞列表
- public function info(){
- $shareId = I('share_id');
- $cons['s.share_id'] = $shareId;
- $res = M('Share')->join(' s LEFT JOIN t_user u ON s.user_id=u.user_id LEFT JOIN t_course c ON s.course_id=c.course_id')
- ->where($cons)->field('share_id,s.user_id,share_content,s.course_id,c.course_name,share_type as course_flag,s.operate_dt,u.user_name,u.user_icon')
- ->order('share_id desc')->select();
- if ($res == NULL){
- $data = array('code'=>0,'msg'=>'', 'data'=>'');
- $this->returnData($data);exit;
- }
- $userNicknameArr = $this->getUserNickname();
- foreach ($res as $k=>$r){
- //获取好友点赞
- $shareRes = M('ShareUser')->join('sw LEFT JOIN t_user u ON sw.user_id=u.user_id')
- ->where(array('share_id'=>$r['share_id']))
- ->field('sw.user_id,u.user_icon,u.user_name')->select();
- foreach ($shareRes as $key=>$item){
- if(isset($userNicknameArr[$item['user_id']])){
- $shareRes[$key]['user_nickname'] = $userNicknameArr[$item['user_id']];
- }else{
- $shareRes[$key]['user_nickname'] = '';
- }
- $shareRes[$key]['user_icon'] = empty($item['user_icon'])?'':$item['user_icon'];
- $shareRes[$key]['user_name'] = empty($item['user_name'])?'':$item['user_name'];
- }
- $res[$k]['user_list'] = $shareRes;
- }
- $data = array('code'=>0,'msg'=>'', 'data'=>$res);
- $this->returnData($data);exit;
- }
-
- //处理消息
- public function readNotice() {
- $noticeId = I('notice_id');
- $info = M('Notice')->where(array('notice_id'=>$noticeId))->field('notice_id')->find();
- if ($info==NULL){
- $data = array('code'=>1,'msg'=>'消息ID错误');
- $this->returnData($data);exit;
- }
- M('Notice')->where(array('notice_id'=>$noticeId))->save(array('notice_status'=>2));
- $data = array('code'=>0,'msg'=>'此消息已处理');
- $this->returnData($data);exit;
- }
-
- //删除消息
- public function del(){
- $noticeId = I('notice_id');
- $info = M('Notice')->where(array('notice_id'=>$noticeId))->field('notice_id')->find();
- if ($info==NULL){
- $data = array('code'=>0,'msg'=>'此消息已删除');
- $this->returnData($data);exit;
- }
- M('Notice')->where(array('notice_id'=>$noticeId))->delete();
- $data = array('code'=>0,'msg'=>'此消息已处理');
- $this->returnData($data);exit;
- }
- }
|