SaveController.class.php 2.34 KB
<?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);
            }
        }
    }
}