TrainController.class.php 3.31 KB
<?php
/**
 * Created by PhpStorm.
 * User: liyifei2012it
 * Date: 17/9/12
 * Time: 18:25
 */
namespace Frontend\Controller\UpdateDB;

use Think\Db;

class TrainController extends AbstractController
{
    /**
     * 课程中心接入线下培训,数据库升级脚本
     * @author liyifei
     * @date 2017-09-12
     */
    public function Index()
    {
        $sql = $this->_updateSql();
        if (empty($sql)) {

            exit('没有可升级的sql');
        }

        $db = &Db::getInstance();
        try {

            $db->execute($sql);
        } catch (\Exception $e) {

            exit("数据库升级失败:" . $e->getMessage());
        }

        exit("数据库升级完成,执行sql如下:{$sql}");
    }

    /**
     * 待升级的sql
     *      1、升级oa_course_article(课程主表),修改course_type说明;
     *      2、升级oa_course_exam(课程测评结果记录表),增加plan_id、ed_id字段;
     *      3、升级oa_course_study_record(课程学习记录表),增加plan_id、ed_id字段;
     *      4、升级oa_course_study(课程已学人员表),增加plan_id、ed_id字段;
     * @author liyifei
     * @return string
     */
    private function _updateSql()
    {
        $sql = '';
        $DbServ = &Db::getInstance();

        // 1、升级oa_course_article(课程主表),修改course_type说明;
        $sql .= "ALTER TABLE `oa_course_article` 
                CHANGE COLUMN `course_type` `course_type` TINYINT(1) UNSIGNED NOT NULL DEFAULT '1' COMMENT '课程类别(1=常规课程;2=任务类课程;3=线下培训类课程)';";

        // 2、升级oa_course_exam(课程测评结果记录表),增加plan_id、ed_id字段;
        $rowExam = $DbServ->query("SELECT * FROM `oa_course_exam` LIMIT 1");
        if (!empty($rowExam) && !isset($rowExam['plan_id']) && !isset($rowExam['ed_id'])) {

            $sql .= "ALTER TABLE `oa_course_exam` 
                ADD COLUMN `plan_id` INT(10) UNSIGNED NOT NULL DEFAULT 0 COMMENT '培训计划ID' AFTER `customtask_id`, 
                ADD COLUMN `ed_id` INT(10) UNSIGNED NOT NULL DEFAULT 0 COMMENT '培训ID' AFTER `plan_id`;";
        }

        // 3、升级oa_course_study_record(课程学习记录表),增加plan_id、ed_id字段;
        $rowRecord = $DbServ->query("SELECT * FROM `oa_course_study_record` LIMIT 1");
        if (!empty($rowRecord) && !isset($rowRecord['plan_id']) && !isset($rowRecord['ed_id'])) {

            $sql .= "ALTER TABLE `oa_course_study_record` 
                ADD COLUMN `plan_id` INT(10) UNSIGNED NOT NULL DEFAULT 0 COMMENT '培训计划ID' AFTER `customtask_id`,
                ADD COLUMN `ed_id` INT(10) UNSIGNED NOT NULL DEFAULT 0 COMMENT '培训ID' AFTER `plan_id`;";
        }

        // 4、升级oa_course_study(课程已学人员表),增加plan_id、ed_id字段;
        $rowStudy = $DbServ->query("SELECT * FROM `oa_course_study` LIMIT 1");
        if (!empty($rowStudy) && !isset($rowStudy['plan_id']) && !isset($rowStudy['ed_id'])) {

            $sql .= "ALTER TABLE `oa_course_study` 
                ADD COLUMN `plan_id` INT(10) UNSIGNED NOT NULL DEFAULT 0 COMMENT '培训计划ID' AFTER `customtask_id`,
                ADD COLUMN `ed_id` INT(10) UNSIGNED NOT NULL DEFAULT 0 COMMENT '培训ID' AFTER `plan_id`;";
        }

        return $sql;
    }
}