InfoController.class.php 1.76 KB
<?php
/**
 * Created by PhpStorm.
 * User: pw
 * Date: 18/5/29
 * Time: 15:18
 */
namespace Rpc\Controller\OtherClass;

use Com\PackageValidate;
use Common\Common\Constant;
use Common\Service\PaperService;
use Think\Log;

class InfoController extends AbstractController
{
    /**
     * Info
     * @author pw
     * @desc 考试详情接口
     * @param Array app_data_ids:true 考试ID
     * @return array
                 array(
                    array(
                        'app_data_id' => 8, // 考试ID
                        'title' => '高数模拟考试' // 考试标题
                    )
                )
     */
    public function Index()
    {
        Log::record('TaskCenter Info params: ' . var_export($this->_params, true), Log::INFO);
        $postData = $this->_params;

        // 验证规则
        $rules = [
            'app_data_ids' => 'require|array',
        ];

        // 验证请求数据
        $validate = new PackageValidate();
        $validate->postData = $postData;
        $validate->validateParams($rules);

        // 检查考试是否被删除
        $paperServ = new PaperService();
        $paperList = $paperServ->list_by_conds([
            'ep_id' => $postData['app_data_ids'],
            'exam_type' => Constant::EXAM_TYPE_OTHER,
        ]);

        if (empty($paperList)) {
            return [];
        }
        // 没有被删除的考试
        $paperIds = array_column($paperList, 'ep_id');

        // 组合数据
        $list = [];
        $paperList = array_combine_by_key($paperList, 'ep_id');
        foreach ($paperIds as $v) {
            $res = [
                'app_data_id' => $v,
                'title' => $paperList[$v]['ep_name']
            ];
            $list[] = $res;
        }

        return $list;
    }
}