<?php /** * Created by PhpStorm. * User: liyifei2012it * Date: 18/3/27 * Time: 14:18 */ namespace Apicp\Controller\Task; use Com\PackageValidate; use Common\Common\Constant; use Common\Service\TaskService; use Common\Service\TeacherService; class SaveController extends \Apicp\Controller\AbstractController { /** * Save * @author liyifei * @desc 批量设置授课任务 * @param Array teacher_ids:true 讲师ID数组 * @param String task_name:true 任务名称 * @param Int task_type_id 任务类型ID * @param Int start_time:true 任务开始时间 * @param Int end_time:true 任务结束时间 * @param Float target:true 授课指标(课时) */ public function Index_post() { $rules = [ 'teacher_ids' => 'require|array', 'task_name' => 'require|max:64', 'task_type_id' => 'integer', 'start_time' => 'require|integer', 'end_time' => 'require|integer', 'target' => 'require|egt:1', ]; // 参数校验 $validate = new PackageValidate($rules, [], array_keys($rules)); $postData = $validate->postData; // 获取内部讲师UID,推送消息 $teacherServ = new TeacherService(); $conds = [ 'teacher_id' => $postData['teacher_ids'], 'teacher_type' => Constant::TEACHER_TYPE_INSIDE, ]; $teacherList = $teacherServ->list_by_conds($conds); if (!empty($teacherList)) { $teacherList = array_combine_by_key($teacherList, 'teacher_id'); } // 保存授课任务 $taskServ = new TaskService(); foreach ($postData['teacher_ids'] as $id) { $data = [ 'teacher_id' => $id, 'task_name' => $postData['task_name'], 'task_type_id' => isset($postData['task_type_id']) ? $postData['task_type_id'] : 0, 'start_time' => $postData['start_time'], 'end_time' => $postData['end_time'], 'target' => $postData['target'], ]; $data['task_id'] = $taskServ->insert($data); // 发送通知 $uid = !empty($teacherList) ? $teacherList[$id]['uid'] : ''; if (!empty($uid)) { $taskServ->sendTaskNotice($uid, $data); } } } }