InfoController.class.php 1.78 KB
<?php
/**
 * Created by PhpStorm.
 * User: liyifei2012it
 * Date: 18/4/2
 * Time: 10:55
 */
namespace Api\Controller\Teacher;

use Com\PackageValidate;
use Common\Common\Teacher;
use Common\Service\ArticleService;

class InfoController extends \Api\Controller\AbstractController
{
    /**
     * Info
     * @author liyifei
     * @desc 讲师详情接口
     * @param Int teacher_id 讲师ID(讲师本人查看时可不传)
     * @return array
            array(
                'teacher_name' => '赵四', // 讲师姓名
                'face_url' => 'http://www.vchangyi.com/1.png', // 头像
                'title' => '金牌讲师', // 讲师头衔
                'class_hour' => 100, // 总课时
                'tag' => array('人资', '专家'), // 讲师标签
                'remark' => '介绍', // 介绍
            );
     */
    public function Index_post()
    {
        $rules = [
            'teacher_id' => 'integer|gt:0',
        ];

        // 验证请求数据
        $validate = new PackageValidate($rules, [], array_keys($rules));
        $postData = $validate->postData;

        // 本人为讲师时,无需teacher_id
        $uid = '';
        if (!isset($postData['teacher_id'])) {
            $postData['teacher_id'] = 0;
            $uid = $this->uid;
        }

        $teacherServ = &Teacher::instance();
        $teacher = $teacherServ->getTeacherInfo($postData['teacher_id'], $uid);

        // 计算总课时
        if (!empty($teacher)) {
            $articleServ = new ArticleService();
            $articleList = $articleServ->list_by_conds(['teacher_id' => $postData['teacher_id']]);
            foreach ($articleList as $article) {
                $teacher['class_hour'] += $article['class_hour'];
            }
        }

        $this->_result = $teacher;
    }
}