<?php /** * Created by PhpStorm. * User: liyifei2012it * Date: 17/7/26 * Time: 14:08 */ namespace Apicp\Controller\Customtask; use Common\Common\Constant; use Common\Common\Integral; use Common\Common\TaskHelper; use Common\Service\CustomtaskService; use Common\Service\CustomtaskRightService; use Common\Service\CustomtaskContentService; class InfoController extends \Apicp\Controller\AbstractController { /** * Info * @author liyifei * @desc 常规任务详情接口 * @param Int customtask_id:true 常规任务ID * @return array array( 'customtask_id' => 1, // 任务ID 'task_name' => '电商冲击,实体店靠什么赢', // 任务标题 'task_status' => 1, // 任务状态 'start_time' => 1491897290000, // 任务开始时间 'end_time' => 1491897290001, // 任务结束时间 'right' => array( // 新闻阅读权限 'is_all' => 1, // 是否全公司(1=否,2=是) 'tag_list' => array( // 标签 array( 'tag_id' => '3CDBB2867F0000012C7F8D28432943BB', // 标签ID 'tag_name' => 'liyifei001', // 标签名 ), ), 'dp_list' => array( // 部门 array( 'dp_id' => 'B65085507F0000017D3965FCB20CA747', // 部门ID 'dp_name' => '一飞冲天', // 部门名 ), ), 'user_list' => array( // 人员 array( 'uid' => 'B4B3BA5B7F00000173E870DA6ADFEA2A', // 人员UID 'username' => '缘来素雅', // 姓名 'face' => 'http://shp.qpic.cn/bizmp/gdZUibR6BHrmiar6pZ6pLfRyZSVaXJicn2CsvKRdI9gccXRfP2NrDvJ8A/', // 头像 ), ), 'job_list' => array( // 职位 array( 'job_id' => '62C316437F0000017AE8E6ACC7EFAC22', // 职位ID 'job_name' => '攻城狮', // 职位名称 ), ), 'role_list' => array( // 角色 array( 'role_id' => '62C354B97F0000017AE8E6AC4FD6F429', // 角色ID 'role_name' => '国家元首', // 角色名称 ), ), ), 'description' => '这是一个任务描述', // 任务描述 'content' => array( // 任务内容 array( 'customtask_content_id' => 1, // 任务内容ID 'title' => '公司日常', // 任务内容标题 'app' => 'course', // 所属应用 'content_status' => 1, // 内容状态(1=正常;2=已删除) 'order' => 1, // 排序号 'url' => 'http://dengta.vchangyi.com/123', // 内容详细地址 'exam_type' => 1, // 试卷类型(仅考试应用返回) 'paper_type' => 1, // 试卷使用类型(仅考试应用返回) ), ), 'is_reward' => 1, // 是否发放激励(1=不发放;2=发放) 'reward_setting' => array( // 激励设置(is_reward=1时,此参数值为空字符串) 'type' => 1, // 激励类型(1=勋章;2=积分) 'medal_id' => 'xxx', // 勋章ID 'medal_name' => '荣耀王者', // 勋章名 'integral' => 0, // 积分数 ), 'is_notice' => 1, // 运营设置(1=不提醒;2=提醒) 'complete_total' => 30, // 已完成总人数 'process_total' => 30, // 执行中总人数 'unstart_total' => 40, // 未参与总人数 'complete_rate' => 30, // 完成率 'stop_desc' => '我想终止就终止', // 终止原因 'stop_ea_name' => '大侠', // 终止人名称 'stop_mobile' => '15901819173', // 终止人手机号 ) */ public function Index_post() { $customtaskId = I('post.customtask_id', 0, 'intval'); if ($customtaskId == 0) { E('_ERR_CUSTOMTASK_ID_IS_EMPTY'); } $taskServ = new CustomtaskService(); $task = $taskServ->get($customtaskId); if (empty($task)) { E('_ERR_CUSTOMTASK_NOT_FOUND'); } // 任务内容 $contentServ = new CustomtaskContentService(); $task['content'] = $contentServ->getData($customtaskId); // 适用范围 $rightServ = new CustomtaskRightService(); $task['right'] = $rightServ->getData(['customtask_id' => $customtaskId]); // 激励设置 if ($task['is_reward'] == Constant::CUSTOMTASK_REWARD_OPEN && !empty($task['reward_setting'])) { $task['reward_setting'] = unserialize($task['reward_setting']); // 查询勋章名称 if ($task['reward_setting']['type'] == Constant::REWARD_TYPE_MEDAL && !empty($task['reward_setting']['medal_id'])) { $IntegralServ = &Integral::instance(); $medals = $IntegralServ->listMedal($task['reward_setting']['medal_id']); $task['reward_setting']['medal_name'] = isset($medals[0]['name']) ? $medals[0]['name'] : ''; } } // 任务完成情况 $taskHelper = &TaskHelper::instance(); list(, $uids_complete, $uids_process, $uids_unbegin) = $taskHelper->getCustomtaskUserData($customtaskId); // 已完成人员列表 $task['complete_total'] = count($uids_complete); // 执行中人员列表 $task['process_total'] = count($uids_process); // 未参与人员列表 $task['unstart_total'] = count($uids_unbegin); // 完成率 $task['complete_rate'] = round($task['complete_total'] / ($task['unstart_total'] + $task['process_total'] + $task['complete_total']) * 100, 2); $this->_result = $task; } }