<?php /** * Created by PhpStorm. * User: liyifei2012it * Date: 17/7/26 * Time: 14:08 */ namespace Apicp\Controller\Customtask; use Com\PackageValidate; use Common\Common\Constant; use Common\Service\CustomtaskService; class ListController extends \Apicp\Controller\AbstractController { /** * List * @author liyifei * @desc 常规任务列表接口 * @param Int page:1 当前页 * @param Int limit:20 当前页条数 * @param String task_name 任务名称 * @param Int start_time 任务开始时间 * @param Int end_time 任务结束时间 * @param Int task_status 任务状态(1=草稿;2=未开始;3=进行中;4=已结束;5=已终止) * @param Int up_start_time 更新开始时间 * @param Int up_end_time 更新结束时间 * @return array array( 'page' => 1, // 当前页 'limit' => 20, // 当前页条数 'total' => 100, // 总条数 'list' => array( // 列表数据 array( 'customtask_id' => 1, // 任务ID 'task_name' => '电商冲击,实体店靠什么赢', // 任务标题 'start_time' => 1491897290000, // 任务开始时间 'end_time' => 1491897290001, // 任务结束时间 'complete_total' => 10, // 已完成任务总人数 'user_total' => 100, // 参与任务总人数 'task_status' => 1, // 任务状态 'update_time' => 1491897290002, // 最后更新时间 ), ), ) */ public function Index_post() { // 验证规则 $rules = [ 'page' => 'integer', 'limit' => 'integer', 'task_name' => 'max:64', 'start_time' => 'integer', 'end_time' => 'integer', 'task_status' => 'integer|in:1,2,3,4,5', 'up_start_time' => 'integer', 'up_end_time' => 'integer', ]; // 验证数据 $validate = new PackageValidate($rules, [], array_keys($rules)); $postData = $validate->postData; // 组合条件 $conds = []; if (isset($postData['task_name'])) { $conds['task_name like ?'] = "%{$postData['task_name']}%"; } if (isset($postData['start_time'])) { $conds['start_time >= ?'] = $postData['start_time']; } if (isset($postData['end_time'])) { $conds['end_time <= ?'] = $postData['end_time']; } if (isset($postData['task_status'])) { if (Constant::CUSTOMTASK_STATUS_END == $postData['task_status']) { $conds['task_status'] = [ Constant::CUSTOMTASK_STATUS_END, Constant::CUSTOMTASK_STATUS_STOP ]; } else { $conds['task_status'] = $postData['task_status']; } } if (isset($postData['up_start_time'])) { $conds['update_time >= ?'] = $postData['up_start_time']; } if (isset($postData['up_end_time'])) { $conds['update_time <= ?'] = $postData['up_end_time']; } // 分页 $postData['page'] = isset($postData['page']) ? $postData['page'] : Constant::PAGING_DEFAULT_PAGE; $postData['limit'] = isset($postData['limit']) ? $postData['limit'] : Constant::PAGING_DEFAULT_LIMIT; list($start, $perpage) = page_limit($postData['page'], $postData['limit']); // 排序 $order_option = ['update_time' => 'DESC']; // 列表 $taskServ = new CustomtaskService(); $list = $taskServ->list_by_conds($conds, [$start, $perpage], $order_option); // 数据总数 $total = $taskServ->count_by_conds($conds); $this->_result = [ 'page' => $postData['page'], 'limit' => $postData['limit'], 'total' => intval($total), 'list' => $list, ]; } }