名客技术网

简体
繁体
×警告!请输入搜索关键词(仅提示一次)
网站建设电话:15927179345(资深程序)

同事写个一个接口示例代码,记录一下

作者:网站小编时间:2019-05-27 09:05:53
<?php

namespace appindexcontroller;

use appcommonmodelAdvert as AdvertModel;
use appcommonmodelArctype as ArctypeModel;
use appcommonmodelArticle as ArticleModel;
use appcommonmodelExtend as ExtendModel;
use appcommonmodelLink as LinkModel;
use appcommonmodelModel as ModelModel;
use appcommonvalidateIDMustBePositiveInt;
use thinkDb;

class Requestinfo extends Frontend
{

    //请求数据
    public function index()
    {
        //允许跨域请求
        header("Access-Control-Allow-Origin: *");


        $parameter = input('get.');
        //dump($parameter);
        if ($this->check_str($parameter)) {
            $res = ['status' => 201, 'message' => '含有非法的参数'];
            return json_encode($res, JSON_UNESCAPED_UNICODE);
            exit;
        };

        //接受请求id
        $id = input('get.id');

        if ($id == '') {
            $res = ['status' => 202, 'message' => '缺少 id 参数'];
            return json_encode($res, JSON_UNESCAPED_UNICODE);
            exit;
        }

        if (!is_numeric($id)) {
            $res = ['status' => 203, 'message' => '非法的 id 参数'];
            return json_encode($res, JSON_UNESCAPED_UNICODE);
            exit;
        }

        $where['id'] = $id;

        /* $arctype = ArctypeModel::get($id);
         dump($arctype['model_id']);
         dump($arctype['model']['type']);
         exit;*/

        //获取id的model_id
        $res2 = ArctypeModel::where($where)->field('model_id')->find();

        if (!$res2) {
            $res = ['status' => 301, 'message' => '请求的 id 不存在'];
            return json_encode($res, JSON_UNESCAPED_UNICODE);
            exit;
        }

        $res3 = ModelModel::where(['id' => $res2['model_id']])->field('type,tablename')->find();


        if ($res3['type'] == 'page') {//单页模型

            //查询body内容
            $rsArr = Db::name($res3['tablename'])->where($where)->find();
            $data = $rsArr['body'];

            if ($data == '') {
                $res = ['status' => 401, 'message' => '未查询到id相关内容'];
                return json_encode($res, JSON_UNESCAPED_UNICODE);
                exit;
            }
        } else if ($res3['type'] == 'list') { //列表模型

            //!is_array($id) && $tid = explode(',', $id);
            $tid = ArctypeModel::getSonId([$id]);//获取下级栏目id

            $pagesize = $parameter['number'] ? $parameter['number'] : 10;//请求的一页新闻页数;

            $flag = $parameter['flag'] ? $parameter['flag'] : '';//新闻新闻内容属性
            $keyword = $parameter['word'] ? $parameter['word'] : '';//关键词搜索
            $order = $parameter['orderby'] ? $parameter['orderby'] : 'rank desc,id desc';//查询循序

            $where2['status'] = ['eq', 99];//发布状态
            $where2['site_id'] = ['eq', config('site.id')];//判断站点id
            $where2['type_id'] = ['in', $tid];
            $where2['pubdate'] = ['elt', time()];//发布时间不大于当前时间
            $flag && $where2[] = ['exp', "FIND_IN_SET('{$flag}', flag)"];
            $keyword && $where2['title|seo_title|seo_keyword'] = ['like', "%{$keyword}%"];

            $data = Db::name('article')->where($where2)->order($order)->limit($pagesize)->select();

            //dump($data);exit;
            if (empty($data)) {
                $res = ['status' => 401, 'message' => '未查询到id相关内容'];
                return json_encode($res, JSON_UNESCAPED_UNICODE);
                exit;
            }

            $defaultimg = config('baseDir') . config('default_img');
            foreach ($data as $k => &$po) {
                unset($po['delete_time'], $po['update_time'], $po['create_time'], $po['user_type'], $po['user_id'], $po['tag']);
                $po['img'] = $po['img'] ? parseFile($po['img']) : $defaultimg;
                $po['url'] = $po['url'] ? parseJumpUrl($po['url']) : pageUrl($po['id']);
            }

        } else {
            $res = ['status' => 302, 'message' => '其他model_id'];
            return json_encode($res, JSON_UNESCAPED_UNICODE);
            exit;
        }

        $res = ['status' => 200, 'message' => '请求成功', 'data' => $data];
        return json_encode($res, JSON_UNESCAPED_UNICODE);
        exit;
    }

    public function check_str($data)
    {
        $str=false;
        if (is_array($data)) {
            foreach ($data as $k => $v) {
                if ($v != strip_tags($v)) {
                    $str= true;
                }
            }
        } else {
            if ($data != strip_tags($data)) {
                $str= true;
            }
        }
        return $str;
    }

}

名客技术网如果无意之中侵犯了您的版权,请联系站长,本站将在3个工作日内删除 QQ:175352796
Copyright 2011-2020 Powered by 121ASK.COM, All Rights Reserved.
备案号:鄂ICP备11013833号-3