CompleteListController.class.php 3.15 KB
<?php
/**
 * Created by PhpStorm.
 * User: liyifei2012it
 * Date: 17/7/27
 * Time: 15:54
 */
namespace Apicp\Controller\Customtask;

use Com\PackageValidate;
use Common\Common\Constant;
use Common\Common\TaskHelper;
use Common\Service\CustomtaskService;

class CompleteListController extends \Apicp\Controller\AbstractController
{
    /**
     * CompleteList
     * @author liyifei
     * @desc 任务完成列表接口
     * @param Int customtask_id:true 常规任务ID
     * @param Int page:1 当前页
     * @param Int limit:20 当前页条数
     * @param String dp_ids 组织ID
     * @param String job_ids 岗位ID
     * @param String role_ids 角色ID
     * @param String username 姓名
     * @param Int status:true 完成情况(1=未参与;2=执行中;3=已完成)
     * @return array
                array(
                    'page' => 1, // 当前页
                    'limit' => 20, // 当前页条数
                    'total' => 100, // 总条数
                    'list' => array( // 列表数据
                        array(
                            'username' => '李四', // 姓名
                            'dp_names' => array('开发组', '测试组'), // 组织
                            'job' => '苹果系统工程师', // 岗位
                            'role' => 'leader', // 角色
                            'progress' => 80, // 任务进度
                            'task_status' => 1, // 任务状态(1=未参与;2=执行中;3=已完成;4=已终止)
                            'update_time' => 1491897290001, // 最后更新时间
                        ),
                    ),
                )
     */
    public function Index_post()
    {
        // 验证规则
        $rules = [
            'customtask_id' => 'require|integer|gt:0',
            'page' => 'integer',
            'limit' => 'integer',
            'dp_ids' => 'array',
            'job_ids' => 'array',
            'role_ids' => 'array',
            'username' => 'max:64',
            'status' => 'require|integer|in:1,2,3',
        ];

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

        $taskServ = new CustomtaskService();
        $customtask = $taskServ->get($postData['customtask_id']);
        if (empty($customtask)) {
            E('_ERR_CUSTOMTASK_NOT_FOUND');
        }

        // 分页
        $page = isset($postData['page']) ? $postData['page'] : Constant::PAGING_DEFAULT_PAGE;
        $limit = isset($postData['limit']) ? $postData['limit'] : Constant::PAGING_DEFAULT_LIMIT;

        // 数据搜索
        $taskHelper = &TaskHelper::instance();
        $data = $taskHelper->listCustomtaskUser($postData, $page, $limit);

        // 任务完成后,最后更新时间修改为complete_time(完成时间)
        if (!empty($data['list']) && $postData['status'] == Constant::USER_TASK_COMPLETE_STATUS_COMPLETE) {
            foreach ($data['list'] as $k => $v) {
                $data['list'][$k]['update_time'] = $v['complete_time'];
            }
        }

        $this->_result = $data;
    }
}