EditCategoryController.class.php 1.9 KB
<?php
/**
 * 【调研中心-后台】11_修改调研所属分类
 * EditCategoryController.class.php
 * CreateBy:dj
 * Date:2017-03-07
 */

namespace Apicp\Controller\Questionnaire;

use Common\Service\BaseinfoService;

class EditCategoryController extends \Apicp\Controller\AbstractController
{

    public function Index_post()
    {

        // 获取调研id集合
        $list = I('post.list');
        if (empty($list)) {

            E('_EMPTY_BASEINFO_ID');
        }

        // 获取调研分类id
        $qc_id = I('post.qc_id');
        if (empty($qc_id)) {

            E('_EMPTY_CATEGORY_ID');
        }

        // 实例化问卷基本信息Service
        $base_info_s = new BaseinfoService();

        // 调研分类列表
        $class_list = $base_info_s->get_classify_list();
        $class_list = array_combine_by_key($class_list, 'qc_id');

        // 调研分类信息
        $classify = $class_list[$qc_id];
        // 调研分类不存在
        if (empty($classify)) {

            E('_ERR_CLASSIFY_NOT_FOUND');
        }

        // 调研id集合
        $qu_ids = array_column($list, 'qu_id');

        try {
            // 开始事务
            $base_info_s->start_trans();

            // 修改问卷基本信息表
            $base_info_s->update_by_conds(['qu_id in (?)' => $qu_ids], ['qc_id' => $qc_id]);

            // 提交事务
            $base_info_s->commit();
        } catch (\Think\Exception $e) {

            \Think\Log::record($e);
            // 事务回滚
            $this->_set_error($e->getMessage(), $e->getCode());
            $base_info_s->rollback();
        } catch (\Exception $e) {

            \Think\Log::record($e);
            $this->_set_error($e->getMessage(), $e->getCode());
            // 事务回滚
            $base_info_s->rollback();
        }

        return true;
    }
}