InstallController.class.php 2.48 KB
<?php
/**
 * 应用安装时的消息回调
 * User: zhuxun37
 * Date: 16/8/11
 * Time: 下午3:44
 */

namespace Frontend\Controller\Callback;

use Common\Common\Cache;
use Common\Model\SettingModel;
use Common\Service\AttrService;
use Common\Service\InviteSettingService;
use Common\Service\JobService;
use Common\Service\SettingService;
use VcySDK\Job;
use VcySDK\Role;
use VcySDK\Service;

class InstallController extends AbstractController
{
    /**
     * 应用状态,可用
     */
    const PLUGIN_STATE_AVAILABLE = 1;

    /**
     * 应用状态,不可用
     */
    const PLUGIN_STATE_UNAVAILABLE = 2;

    /**
     * 安装消息回调
     * @return bool
     */
    public function Index()
    {
        $this->Install();
        exit('SUCCESS');
    }

    /**
     * 安装应用
     * @author zhonglei
     */
    public function Install()
    {
        // 默认数据
        $defaultData = \Common\Sql\DefaultData::installData();

        // 微信端管理权限配置
        $settingService = new SettingService();
        if (!$settings = $settingService->get_by_conds(array())) {
            foreach ($defaultData['setting'] as $_set) {
                $settingService->insert($_set);
            }
        }

        // 邀请函设置写入默认数据
        $inviteSettingServ = new InviteSettingService();
        $inviteSetting = $inviteSettingServ->get_by_conds([]);
        if (!$inviteSetting) {
            $inviteSettingServ->insert($defaultData['invite_setting']);
        }

        // 属性表写入默认数据
        $attrService = new AttrService();
        $attr = $attrService->get_by_conds([]);
        if (!$attr) {
            foreach ($defaultData['attr'] as $attr) {
                $attrService->insert($attr);
            }
        }

        // 角色、岗位 默认数据
        $jobSdk = new Job(Service::instance());
        foreach ($defaultData['default_job'] as $name) {
            try {
                $jobSdk->create(['jobName' => $name]);
            } catch (\Exception $e) {
                \Think\Log::record('初始化岗位出错:::' . var_export($e->getMessage()));
            }
        }
        $roleSdk = new Role(Service::instance());
        foreach ($defaultData['default_role'] as $name) {
            try {
                $roleSdk->create(['roleName' => $name]);
            } catch (\Exception $e) {
                \Think\Log::record('初始化角色出错:::' . var_export($e->getMessage()));
            }
        }

        return true;
    }
}