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 '请求代码错误!!';
        }
    }

}
复制代码

处理

复制代码
<?php
class Api_NewsController extends actions_api {
    public $doMain = 'http://testserver.njlrxx.com/';


    //接口中可以直接操作sql语句进行一些处理
    function init() {
        parent::init();
        $this->setView('api');
        $this->dao_newsrecord = new dao_newsrecord();
        $this->dao_module = new dao_module();
        $this->dao_message = new dao_message();
        $this->dao_user = new dao_user();
        $this->dao_news = new dao_news();
        $this->inData = $this->_getParam('data',false);//请求参数
        $this->reqCode = $this->_getParam('reqCode',false);
        $this->outData = array('status'=>0,'msg'=>'','data'=>array(),'reqCode'=>$this->reqCode);//输出参数
    }
    

    //新闻分类
    function newstypeAction()
    {
        $where['BigClass.typeid = ?'] = array("type"=>1,"val"=>60);
        $aBigClass = $this->dao_news->getBigClass($where, 'BigClassID ASC', 3);
        if(COUNT($aBigClass) == 0)
        {
            $this->outData['msg'] = '暂无数据';
            $this->printOut();
        }
        $this->outData['status'] = 1;
        $this->outData['msg'] = '获取成功';
        $this->outData['data'] = $aBigClass;
        $this->printOut();
    }


    //图片新闻前五条
    function newstop5Action(){
        $where['News.picnews = ?'] = array("type"=>1,"val"=>1);
        $aNewsData = $this->dao_news->getNews2($where, 'NewsID DESC', 5, FALSE , false, array('NewsID','picname','Title'));
        foreach($aNewsData as &$val)
        {
            $val['webview_url'] = $this->doMain.'api/news/newsview/NewsID/'.$val['NewsID'].'/user_id/'.$this->inData['user_id'];
        }
        if(COUNT($aNewsData) == 0)
        {
            $this->outData['msg'] = '暂无数据';
            $this->printOut();
        }
        $this->outData['status'] = 1;
        $this->outData['msg'] = '获取成功';
        $this->outData['data'] = $aNewsData;
        $this->printOut();
    }

    function newslistAction(){
        $nowPage = !empty($this->inData['nowpage'])?$this->inData['nowpage']:1;    //$this->_getParam('nowpage',1);
        $pageNum = !empty($this->inData['pageNum'])?$this->inData['pageNum']:10;    //$this->_getParam('pageNum',10);
        $bigclassid = !empty($this->inData['bigclassid'])?$this->inData['bigclassid']:false;    
         if(!$bigclassid)
        {
            $this->outData['msg'] = '缺少分类参数';
            $this->printOut();
        }
        $offset = ($nowPage - 1)*$pageNum;
        $where['News.bigclassid = ?'] = array("type"=>1,"val"=>$bigclassid);
        $total = $this->dao_news->getNews2($where, '', false, false , true);
        $aNewsData = $this->dao_news->getNews2($where, 'NewsID DESC', $pageNum, $offset , false, array('NewsID','Title','UpdateTime','convert(text,Content) as Content'));

        foreach($aNewsData as &$val)
        {
            $val['webview_url'] = $this->doMain.'api/news/newsview/NewsID/'.$val['NewsID'].'/user_id/'.$this->inData['user_id'];
            $val['Content'] = $this->substring($this->clearhtml($val["Content"]),16);
        }
        if($total == 0)
        {
            $this->outData['msg'] = '暂无数据';
            $this->printOut();
        }
        $this->outData['next'] = 0;
        if($total > ($nowPage * $pageNum))
        {
            $this->outData['next'] = 1;
        }
        $this->outData['status'] = 1;
        $this->outData['msg'] = '获取成功';
        $this->outData['data'] = $aNewsData;

        $this->printOut();
    }

    function newsviewAction(){
        $newsID = $this->_getParam("NewsID",0);//新闻id
        $userID = $this->_getParam("user_id");//uid

        //$whereUser['lx_user.id = ?'] = array("type"=>1,"val"=>$user_id);
        //$aUser = $this->dao_user->getUser($whereUser);
    
        $whereNews['News.NewsID = ?'] = array("type"=>1,"val"=>$newsID);
        $aNews = $this->dao_news->getNews($whereNews);

        $aNewsData = $aNews ? $aNews[0] : false;
        if(!$aNewsData && $aNewsData['checkked'] == 1 && $userID)//是否审核
        {
            $this->dao_news->updateNews(array('click'=>'`click`+1','NewsID'=>$newsID));//更新新闻点击次数
             //阅读人记录到数据库中
            $aNewsrecord = array();
            $aNewsrecord['news_id'] = $NewsID;
            $aNewsrecord['user_id'] = $userID;
            $aNewsrecord['user_name'] = !is_null($aUser[0]["name"]) ? $aUser[0]["name"] : $aUser[0]["surname"].$aUser[0]["givenname"];
            $aNewsrecord['user_avatar'] = $aUser[0]["avatar"];
            $aNewsrecord['time'] = time();
            $whereNewsrecord = array();
            $whereNewsrecord['lx_newsrecord.news_id = ?'] = array("type"=>1,"val"=>$NewsID);
            $whereNewsrecord['lx_newsrecord.user_id = ?'] = array("type"=>1,"val"=>$userID);
            $result = $this->dao_newsrecord->getNewsrecord($whereNewsrecord);
            if($result){
                $aNewsrecord['id'] = $result[0]['id'];
                $this->dao_newsrecord->updateNewsrecord($aNewsrecord);
            }else{
                $this->dao_newsrecord->addNewsrecord($aNewsrecord);
            }
        }
        $aNewsData['Content'] =  str_replace('src="/webedit/uploadfile/','src="http://www.njlrxx.com/webedit/uploadfile/',$aNewsData['Content']);

        $this->view_->assign('aNewsData', $aNewsData);
        $this->view_->assign('userID', $userID);
        $this->view_->display('news_view_iphone.tpl');
    }
}



相关文章
原生php实现列表接口+分页接口+排序接口组合使用+包括测试数据(不加任何封装)
原生php实现列表接口+分页接口+排序接口组合使用+包括测试数据(不加任何封装)
原生php实现列表接口+分页接口+排序接口组合使用+包括测试数据(不加任何封装)
|
7天前
|
PHP
PHP面向对象编程精要:接口、抽象类和继承
PHP面向对象编程涉及接口、抽象类和继承。接口定义了类必须实现的方法,抽象类包含抽象方法,不可实例化,而继承允许子类扩展父类属性和行为。通过案例展示了如何使用interface、abstract和extends关键字。这些概念增强了代码的灵活性、可维护性和可扩展性。
12 1
|
8月前
|
PHP
php实现接口的封装
php实现接口的封装