<?php
/**
 * @link      http://www.u-bo.com
 * @copyright 南京友博网络科技有限公司 
 * @license   http://www.u-bo.com/license/
 */

namespace qcbase\controllers;

use Yii;
use qcbase\models\Module;

/**
 * 模块管理
 * 
 * 主要管理扩展系统所用的模块
 * 模块程序包统一放置在程序目录中packages文件夹中
 * 
 * @author legendjw http://blog.u-bo.com
 * @since 0.1
 */
class ModuleController extends Controller
{
    public function actions()
    {
        return [];
    }

	/**
	 * 模块列表 
	 */
    public function actionIndex()
    {
        $modules = Module::getList();
        $installs = Module::find()->indexBy('module_id')->all();
        return $this->render('index', [
            'modules' => $modules,
            'installs' => $installs,
        ]);
    }

	/**
	 * 模块安装
	 */
	public function actionInstall()
	{
        $attach = new Attachment;
        $attach->addAttach();
        $attach->addAttach();
        $attach->addAttach();


        $id = Yii::$app->request->get('id');
		empty($id) && $this->flash('模块id不存在', 'error');
		if (Module::install($id)) {
			return $this->flash('安装成功', 'success');
		}
		else {
			return $this->flash('安装失败', 'error');
		}

	}

	/**
	 * 模块卸载
	 */
	public function actionUninstall()
	{
		$id = Yii::$app->request->get('id');
		empty($id) && $this->flash('模块id不存在', 'error');
		if (Module::uninstall($id)) {
			return $this->flash('卸载成功', 'success');
		}
		else {
			return $this->flash('卸载失败', 'error');
		}
	}
	
	/**
	 * 模块升级
	 */
	public function actionUpgrade()
	{
		$id = Yii::$app->request->get('id');
		empty($id) && $this->flash('模块id不存在', 'error');
		if (Module::uninstall($id) && Module::install($id)) {
			return $this->flash('升级成功', 'success');
		}
		else {
			return $this->flash('升级失败', 'error');
		}
	}

}
