ListController.class.php 2.29 KB
<?php
/**
 * 获活动列表
 * ListController.class.php
 * User: daijun
 * Date: 2017年09月05日
 */

namespace Rpc\Controller\TaskCenter;

use Common\Model\ActivityModel;
use Common\Service\ActivityService;

class ListController extends AbstractController
{

    public function Index()
    {
        // 获取参数
        $params = $this->_params;

        // 默认值
        $page = !empty($params['page']) ? intval($params['page']) : 1;
        $limit = !empty($params['limit']) ? intval($params['limit']) : 10;

        list($start, $limit) = page_limit($page, $limit);

        // 分页参数
        $page_option = array($start, $limit);

        // 排序参数
        $order_option = array('ac_id' => 'DESC');

        // 考试类型为任务类
        $conds['activity_type'] = ActivityService::TASK_TYPE;

        // 试卷状态为已发布
        $conds['activity_status'] = ActivityModel::ACTIVITY_PUBLISH;


        if (!empty($params['keyword'])) {
            // 如果试卷名称关键字不为空,则模糊查询试卷名称
            $conds['subject like ?'] = '%' . trim($params['keyword']) . '%';
        }

        // 实例化service
        $service = new ActivityService();

        $field = 'ac_id,subject';

        $list = [];
        // 获取总记录数
        $total = $service->count_by_conds($conds);

        if ($total > 0) {
            // 查询列表
            $list = $service->list_by_conds($conds, $page_option, $order_option, $field);
        }

        $result = [
            'page' => $page,
            'limit' => $limit,
            'total' => intval($total),
            'list' => $this->format_list($list)
        ];

        return $result;
    }


    /**
     * 格式化列表数据
     * @param array $list
     * @return array
     */
    private function format_list($list = [])
    {
        $res_list = [];

        if (empty($list)) {
            return $res_list;
        }

        // 循环格式化数据
        foreach ($list as $v) {

            $arr = array(
                'app_data_id' => intval($v['ac_id']),
                'title' => $v['subject'],
                'class_name' => '',
                'author' => '',
                'status' => '进行中'
            );

            $res_list[] = $arr;
        }

        return $res_list;
    }

}