ContentListController.class.php 2.2 KB
<?php
/**
 * Created by PhpStorm.
 * User: zhonglei
 * Date: 17/7/25
 * Time: 11:57
 */
namespace Apicp\Controller\Customtask;

use Com\PackageValidate;
use Com\Rpc;
use Common\Common\Constant;
use Common\Service\CustomtaskContentService;

class ContentListController extends \Apicp\Controller\AbstractController
{
    /**
     * ContentList
     * @author zhonglei
     * @desc 获取任务内容列表接口
     * @param string app:true 应用(course=课程;exam=考试;activity=活动;questionnaire=调研)
     * @param Int class_id 分类ID
     * @param string keyword 搜索关键字
     * @param Int page:1 当前页
     * @param Int limit:20 每页数据总数
     * @return array
                array(
                    'page' => 1, // 当前页
                    'limit' => 20, // 每页数据总数
                    'total' => 100, // 数据总数
                    'list' => array( // 列表数据
                        'app_data_id' => 1, // 数据ID
                        'title' => '电商冲击,实体店靠什么赢', // 标题
                        'class_name' => '导购FM', // 分类名称
                        'author' => '张三', // 作者
                        'status' => '未开始', // 状态
                    ),
                ),
     */
    public function Index_post()
    {
        // 验证规则
        $rules = [
            'app' => 'require|in:course,exam,activity,questionnaire',
            'class_id' => 'integer',
            'keyword' => 'max:50',
            'page' => 'integer',
            'limit' => 'integer',
        ];

        // 验证数据
        $validate = new PackageValidate($rules, [], array_keys($rules));
        $post_data = $validate->postData;

        // 考试、调研需要获取已使用数据ID数组
        if (in_array($post_data['app'], [Constant::APP_EXAM, Constant::APP_QUESTIONNAIRE])) {
            $contentServ = new CustomtaskContentService();
            $post_data['app_data_ids'] = $contentServ->getAppDataIds($post_data['app']);
        }

        $app = ucfirst(strtolower($post_data['app']));
        $url = rpcUrl("/{$app}/Rpc/TaskCenter/List");
        $this->_result = Rpc::phprpc($url)->invoke('index', $post_data);
    }
}