InstallController.class.php 2.59 KB
<?php
/**
 * 套件应用安装初始化数据
 * 通讯录相关
 * @author zhoutao
 * @date 2017-09-27 10:05:30
 */

namespace Rpc\Controller\Common;

use Common\Service\AttrService;
use Common\Service\InviteSettingService;
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;

    public function index()
    {
        // 默认数据
        $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());
        $jobList = $jobSdk->listAll([], 1, 5000);
        $jobNameList = array_column($jobList['list'], 'jobName');
        foreach ($defaultData['default_job'] as $name) {
            if (in_array($name, $jobNameList)) {
                continue;
            }
            try {
                $jobSdk->create(['jobName' => $name]);
            } catch (\Exception $e) {
                \Think\Log::record('初始化岗位出错:::' . var_export($e->getMessage()));
            }
        }
        $roleSdk = new Role(Service::instance());
        $roleList = $roleSdk->listAll([], 1, 5000);
        $roleNameList = array_column($roleList['list'], 'roleName');
        foreach ($defaultData['default_role'] as $name) {
            if (in_array($name, $roleNameList)) {
                continue;
            }
            try {
                $roleSdk->create(['roleName' => $name]);
            } catch (\Exception $e) {
                \Think\Log::record('初始化角色出错:::' . var_export($e->getMessage()));
            }
        }

        return true;
    }
}