ProfessionController.class.php 2.42 KB
<?php
/**
 * Created by PhpStorm.
 * User: liyifei2012it
 * Date: 17/8/15
 * Time: 16:48
 */
namespace Frontend\Controller\UpdateDB;

use Think\Db;

class ProfessionController extends AbstractController
{
    /**
     * 增加专业回答,数据库升级脚本
     * @author tangxingguo
     * @date 2017-9-26
     */
    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_answer_answer(回答表),增加customtask_id字段;
     *      2、将历史回答内分类负责人的回答改为专业回答状态;
     * @author liyifei
     * @return string
     */
    private function _updateSql()
    {
        // sql初始化
        $sql = '';
        $qy_domain = QY_DOMAIN;
        $DbServ = &Db::getInstance();

        // 1、修改oa_answer_answer(回答表),增加is_profession字段;
        $articleColumnList = $DbServ->query("show columns from `oa_answer_answer`");
        $articleColumns = array_column($articleColumnList, 'field');
        if (!in_array('is_profession', $articleColumns)) {
            $sql .= "ALTER TABLE `oa_answer_answer` ADD COLUMN `is_profession`  tinyint(1) NOT NULL DEFAULT 1 COMMENT '是否为分类负责人回答(1=否;2=是)' AFTER `is_best`;";
        }

        // 将历史回答内分类负责人的回答改为专业回答状态;
//        $classSql = "select * from `oa_answer_class` where `domain` = '{$qy_domain}' and `status` < 3";
//        $classList = $DbServ->query($classSql);
//        if (!empty($classList)) {
//            foreach ($classList as $class) {
//                // 分类审核人
//                $checkerUid = $class['manager_id'];
//                $class_id = $class['class_id'];
//                // 更新审核人回答is_profession字段值
//                $updated = MILLI_TIME;
//                $sql .= "UPDATE `oa_answer_answer` SET `is_profession` = 2, `updated` = {$updated} WHERE `domain` = '{$qy_domain}' and `uid` = '$checkerUid' and `class_id` = {$class_id} and `status` < 3;";
//            }
//        }

        return $sql;
    }
}