php接口

入口

<?php

class Api_IphoneController extends actions_api {

    var $identity = null;

    function init() {
        parent::init();
        $this->setView('api');
    }

    function indexAction() {
        $json = $_REQUEST;
        //print_r(json_decode($json['json'],true));exit;
        if (array_key_exists('json', $json)) {
            $json_info = json_decode($json['json'], true);
            //$this->debuglog($json['json']); // debug
        } else {
            echo "无请求参数,请输入请求参数!";
            die();
        }
        //通过reqCode转入控制层
        switch ($json_info["reqCode"]) {
            case 'edu00001':
                // 获取新闻,分页获取
                // 请求{"reqCode":"edu00001","data":{"nowpage":"1","pageNum":"10","user_id":"10","bigclassid":"221"}}
                // 响应
                $json_info = json_decode($json['json'], true);
                $this->_forward('newslist', 'news', 'api', $json_info);
                break;

            case 'edu00002':
                // 获取所有老师
                // 请求{"reqCode":"edu00002"}
                // 响应
                $json_info = json_decode($json['json'], true);
                $this->_forward('allteacher', 'teacher', 'api', $json_info);
                break;

            case 'edu00003':
                // 新闻top5
                // 请求{"reqCode":"edu00003","data":{"user_id":"105"}}
                // 响应 
                $json_info = json_decode($json['json'], true);
                $this->_forward('newstop5', 'news', 'api', $json_info);
                break;


            case 'edu00004':
                // 获取收件箱消息,分页获取
                // 请求{"reqCode":"edu00004","data":{"user_id":"105","nowpage":"1","pageNum":"10"}}
                // 响应
                $json_info = json_decode($json['json'], true);
                $this->_forward('msginlist', 'message', 'api', $json_info);
                break;

            case 'edu00005':
                // 所有班级
                // 请求{"reqCode":"edu00005"}
                // 响应
                $json_info = json_decode($json['json'], true);
                $this->_forward('allclassinfo', 'student', 'api', $json_info);
                break;

            case 'edu00006':
                // 登录
                // 请求{"reqCode":"edu00006","data":{"username":"test3","password":"123456"}}
                // 响应
                $json_info = json_decode($json['json'], true);
                $this->_forward('login', 'auth', 'api', $json_info);
                break;

            case 'edu00007':
                // 班级信息
                // 请求{"reqCode":"edu00007","data":{"class_id":"19"}}
                // 响应
                $json_info = json_decode($json['json'], true);
                $this->_forward('classinfo', 'student', 'api', $json_info);
                break;

            case 'edu00008':
                // 新闻分类
                // 请求{"reqCode":"edu00008"}
                // 响应
                $json_info = json_decode($json['json'], true);

                $this->_forward('newstype', 'news', 'api', $json_info);
                break;

            case 'edu00009':
                // 学生信息
                // 请求{"reqCode":"edu00009","data":{"user_id":"166"}}
                // 响应
                $json_info = json_decode($json['json'], true);
                $this->_forward('studentinfo', 'student', 'api', $json_info);
                break;

            case 'edu00010':
                // 消息发送
                // 请求{"reqCode":"edu00010","data":{"from_id":"21","to_id":"105,22,23","topic":"消息主题","content":"消息内容"}}
                // 响应
                $json_info = json_decode($json['json'], true);
                $this->_forward('msgsend', 'message', 'api', $json_info);
                break;
            default:
                echo '请求代码错误!!';
        }
    }

}

处理

  1 <?php
  2 class Api_NewsController extends actions_api {
  3     public $doMain = 'http://testserver.njlrxx.com/';
  4 
  5 
  6     //接口中可以直接操作sql语句进行一些处理
  7     function init() {
  8         parent::init();
  9         $this->setView('api');
 10         $this->dao_newsrecord = new dao_newsrecord();
 11         $this->dao_module = new dao_module();
 12         $this->dao_message = new dao_message();
 13         $this->dao_user = new dao_user();
 14         $this->dao_news = new dao_news();
 15         $this->inData = $this->_getParam('data',false);//请求参数
 16         $this->reqCode = $this->_getParam('reqCode',false);
 17         $this->outData = array('status'=>0,'msg'=>'','data'=>array(),'reqCode'=>$this->reqCode);//输出参数
 18     }
 19     
 20 
 21     //新闻分类
 22     function newstypeAction()
 23     {
 24         $where['BigClass.typeid = ?'] = array("type"=>1,"val"=>60);
 25         $aBigClass = $this->dao_news->getBigClass($where, 'BigClassID ASC', 3);
 26         if(COUNT($aBigClass) == 0)
 27         {
 28             $this->outData['msg'] = '暂无数据';
 29             $this->printOut();
 30         }
 31         $this->outData['status'] = 1;
 32         $this->outData['msg'] = '获取成功';
 33         $this->outData['data'] = $aBigClass;
 34         $this->printOut();
 35     }
 36 
 37 
 38     //图片新闻前五条
 39     function newstop5Action(){
 40         $where['News.picnews = ?'] = array("type"=>1,"val"=>1);
 41         $aNewsData = $this->dao_news->getNews2($where, 'NewsID DESC', 5, FALSE , false, array('NewsID','picname','Title'));
 42         foreach($aNewsData as &$val)
 43         {
 44             $val['webview_url'] = $this->doMain.'api/news/newsview/NewsID/'.$val['NewsID'].'/user_id/'.$this->inData['user_id'];
 45         }
 46         if(COUNT($aNewsData) == 0)
 47         {
 48             $this->outData['msg'] = '暂无数据';
 49             $this->printOut();
 50         }
 51         $this->outData['status'] = 1;
 52         $this->outData['msg'] = '获取成功';
 53         $this->outData['data'] = $aNewsData;
 54         $this->printOut();
 55     }
 56 
 57     function newslistAction(){
 58         $nowPage = !empty($this->inData['nowpage'])?$this->inData['nowpage']:1;    //$this->_getParam('nowpage',1);
 59         $pageNum = !empty($this->inData['pageNum'])?$this->inData['pageNum']:10;    //$this->_getParam('pageNum',10);
 60         $bigclassid = !empty($this->inData['bigclassid'])?$this->inData['bigclassid']:false;    
 61          if(!$bigclassid)
 62         {
 63             $this->outData['msg'] = '缺少分类参数';
 64             $this->printOut();
 65         }
 66         $offset = ($nowPage - 1)*$pageNum;
 67         $where['News.bigclassid = ?'] = array("type"=>1,"val"=>$bigclassid);
 68         $total = $this->dao_news->getNews2($where, '', false, false , true);
 69         $aNewsData = $this->dao_news->getNews2($where, 'NewsID DESC', $pageNum, $offset , false, array('NewsID','Title','UpdateTime','convert(text,Content) as Content'));
 70 
 71         foreach($aNewsData as &$val)
 72         {
 73             $val['webview_url'] = $this->doMain.'api/news/newsview/NewsID/'.$val['NewsID'].'/user_id/'.$this->inData['user_id'];
 74             $val['Content'] = $this->substring($this->clearhtml($val["Content"]),16);
 75         }
 76         if($total == 0)
 77         {
 78             $this->outData['msg'] = '暂无数据';
 79             $this->printOut();
 80         }
 81         $this->outData['next'] = 0;
 82         if($total > ($nowPage * $pageNum))
 83         {
 84             $this->outData['next'] = 1;
 85         }
 86         $this->outData['status'] = 1;
 87         $this->outData['msg'] = '获取成功';
 88         $this->outData['data'] = $aNewsData;
 89 
 90         $this->printOut();
 91     }
 92 
 93     function newsviewAction(){
 94         $newsID = $this->_getParam("NewsID",0);//新闻id
 95         $userID = $this->_getParam("user_id");//uid
 96 
 97         //$whereUser['lx_user.id = ?'] = array("type"=>1,"val"=>$user_id);
 98         //$aUser = $this->dao_user->getUser($whereUser);
 99     
100         $whereNews['News.NewsID = ?'] = array("type"=>1,"val"=>$newsID);
101         $aNews = $this->dao_news->getNews($whereNews);
102 
103         $aNewsData = $aNews ? $aNews[0] : false;
104         if(!$aNewsData && $aNewsData['checkked'] == 1 && $userID)//是否审核
105         {
106             $this->dao_news->updateNews(array('click'=>'`click`+1','NewsID'=>$newsID));//更新新闻点击次数
107              //阅读人记录到数据库中
108             $aNewsrecord = array();
109             $aNewsrecord['news_id'] = $NewsID;
110             $aNewsrecord['user_id'] = $userID;
111             $aNewsrecord['user_name'] = !is_null($aUser[0]["name"]) ? $aUser[0]["name"] : $aUser[0]["surname"].$aUser[0]["givenname"];
112             $aNewsrecord['user_avatar'] = $aUser[0]["avatar"];
113             $aNewsrecord['time'] = time();
114             $whereNewsrecord = array();
115             $whereNewsrecord['lx_newsrecord.news_id = ?'] = array("type"=>1,"val"=>$NewsID);
116             $whereNewsrecord['lx_newsrecord.user_id = ?'] = array("type"=>1,"val"=>$userID);
117             $result = $this->dao_newsrecord->getNewsrecord($whereNewsrecord);
118             if($result){
119                 $aNewsrecord['id'] = $result[0]['id'];
120                 $this->dao_newsrecord->updateNewsrecord($aNewsrecord);
121             }else{
122                 $this->dao_newsrecord->addNewsrecord($aNewsrecord);
123             }
124         }
125         $aNewsData['Content'] =  str_replace('src="/webedit/uploadfile/','src="http://www.njlrxx.com/webedit/uploadfile/',$aNewsData['Content']);
126 
127         $this->view_->assign('aNewsData', $aNewsData);
128         $this->view_->assign('userID', $userID);
129         $this->view_->display('news_view_iphone.tpl');
130     }
131 }

 

posted @ 2016-11-09 14:00  会弹琴的Coder  阅读(211)  评论(0编辑  收藏  举报