<?php /** * Created by PhpStorm. * User: liyifei2012it * Date: 17/7/26 * Time: 14:08 */ namespace Api\Controller\Customtask; use Common\Common\Constant; use Common\Service\CustomtaskRightService; use Common\Service\CustomtaskService; use Common\Service\UserTaskService; class ProcessListController extends \Api\Controller\AbstractController { /** * ProcessList * @author tangxingguo * @desc 进行中常规任务列表接口 * @return array array( 'complete_task' => 100, // 已完成任务总数 'list' => array( 'customtask_id' => 1, // 任务ID 'task_name' => '艰难的任务', // 任务名称 'progress' => 80, // 任务完成百分比 'start_time' => 1501724335242, // 任务最后更新时间 ), ); */ public function Index_post() { $user = $this->_login->user; // 未完成的常规任务 $userTaskServ = new UserTaskService(); $myTasks = $userTaskServ->list_by_conds([ 'uid' => $this->uid, 'complete_status' => Constant::USER_TASK_COMPLETE_STATUS_PROCESS, 'task_status' => Constant::CUSTOMTASK_STATUS_PROCESS ]); $list = []; if (!empty($myTasks)) { // 取常规任务信息 $totalTaskId = array_column($myTasks, 'customtask_id'); // 过滤无权限的任务 $rightServ = new CustomtaskRightService(); $right = $rightServ->getUserRight($user); $taskIdArr = $rightServ->idByRight($right, $totalTaskId); $taskIds = array_column($taskIdArr, 'customtask_id'); // 根据id获取任务信息 $taskServ = new CustomtaskService(); $order_option = ['start_time' => 'DESC', 'send_time' => 'DESC']; $taskList = $taskServ->list_by_conds(['customtask_id' => $taskIds], null, $order_option); // 组合数据 $myTasks = array_combine_by_key($myTasks, 'customtask_id'); foreach ($taskList as $v) { $list[] = [ 'customtask_id' => $v['customtask_id'], 'task_name' => $v['task_name'], 'progress' => $myTasks[$v['customtask_id']]['progress'], 'complete_total' => $v['complete_total'], 'end_time' => $v['end_time'], ]; } } // 已完成常规任务总数 $totalComplete = $userTaskServ->count_by_conds([ 'uid' => $this->uid, 'complete_status' => Constant::USER_TASK_COMPLETE_STATUS_COMPLETE, ]); $this->_result = [ 'complete_task' => $totalComplete, 'list' => $list, ]; } }