| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162 | <?phpnamespace addon\mall;use addon\mall\app\dict\init\InitDataDict;use addon\mall\app\model\goods\Label;use addon\mall\app\model\goods\Service;use addon\mall\app\model\web\Floor;use addon\mall\app\service\core\delivery\CoreCompanyService;use app\dict\init\WebInitDataDict;use app\model\shop\ShopSiteGroup;use app\model\site\Site;use app\service\admin\diy\AdvService;use app\service\admin\diy\DiyService;use app\service\admin\web\NavService;use app\service\core\diy\CoreDiyService;use app\service\core\poster\CorePosterService;use app\service\core\site\CoreSiteService;use app\service\core\web\CoreWebConfigService;/** * 插件安装之后单独的插件方法 */class Addon{    /**     * 插件安装执行     */    public function install()    {        $site_id = request()->defaultSiteId();        // 更新站点和套餐内包含的应用        $site_model = new Site();        $site_list = $site_model->where([['site_id', '>', 0]])->select()->toArray();        if (!empty($site_list)) {            foreach ($site_list as $k => $v) {                $site_app = $v[ 'app' ] ?? [];                if (!in_array('mall', $site_app)) {                    $site_app[] = 'mall';                    $site_model->where([['site_id', '=', $v[ 'site_id' ]]])->update(['app' => $site_app]);                }            }        }        $site_group_model = new ShopSiteGroup();        $site_group_list = $site_group_model->where([['group_id', '>', 0]])->select()->toArray();        if (!empty($site_group_list)) {            foreach ($site_group_list as $k => $v) {                $site_group_app = $v[ 'app' ] ?? [];                if (!in_array('mall', $site_group_app)) {                    $site_group_app[] = 'mall';                    $site_group_model->where([['group_id', '=', $v['group_id' ]]])->update(['app' => $site_group_app]);                }            }        }        // 创建默认商品海报        $poster = new CorePosterService();        $template = $poster->getTemplateList('mall', 'shop_goods')[ 0 ];        $poster->add($site_id, 'mall', [            'name' => $template[ 'name' ],            'type' => $template[ 'type' ],            'value' => $template[ 'data' ],            'status' => 1,            'is_default' => 1        ]);        // 创建 商城首页 微页面        $index_flag = 'DIY_INDEX';        $diy_service = new DiyService();        $index_template = $diy_service->getFirstPageData($index_flag, 'mall');        $index_page_id = $diy_service->add([            'page_title' => $index_template[ 'title' ],            "title" => $index_template[ 'title' ],            "name" => $index_flag,            "type" => $index_flag,            "template" => $index_template[ 'template' ],            "mode" => $index_template[ 'mode' ],            "value" => json_encode($index_template[ 'data' ]),            "is_default" => 1,            "is_change" => 0        ]);        $diy_service->setUse($index_page_id);        // 创建 个人中心 微页面        $member_flag = 'DIY_MEMBER_INDEX';        $member_template = $diy_service->getFirstPageData($member_flag,'mall');        $member_page_id = $diy_service->add([            'page_title' => $member_template[ 'title' ],            "title" => $member_template[ 'title' ],            "name" => $member_flag,            "type" => $member_flag,            "template" => $member_template[ 'template' ],            "mode" => $member_template[ 'mode' ],            "value" => json_encode($member_template[ 'data' ]),            "is_default" => 1,            "is_change" => 0        ]);        $diy_service->setUse($member_page_id);        $init_data = WebInitDataDict::getInitData();        $mall_data = InitDataDict::getInitData(['site_id' => $site_id]);        //初始化首页导航        $navService = new NavService();        foreach ($init_data['nav'] as $v) {            $navService->add($v);        }        //初始化首页轮播        $advService = new AdvService();        foreach ($init_data['adv'] as $v) {            $advService->add($v);        }        //初始化站点配置        (new CoreSiteService())->editBasicInfo($site_id, $init_data['site']);        // 创建物流公司        $company_service = new CoreCompanyService();        foreach ($mall_data['company_list'] as $k => $v) {            $company_info = $company_service->getInfo([['company_name', '=', $v['company_name']]], 'company_id');            if (!empty($company_info)) unset($mall_data['company_list'][$k]);        }        $mall_data['company_list'] = array_values($mall_data['company_list']);        $company_service->addAll($mall_data['company_list']);        // 添加商品标签        $label_model = new Label();        $label_model->insertAll($mall_data['label_list']);        // 添加商品服务        $service_model = new Service();        $service_model->insertAll($mall_data['service_list']);        //初始化首页楼层        $floor_model = new Floor();        $floor_model->insertAll($mall_data['floor_list']);        // 创建默认主题风格颜色        ( new CoreDiyService() )->initDefaultDiyTheme();        return true;    }    /**     * 插件卸载执行     */    public function uninstall()    {        return true;    }    /**     * 插件升级执行     */    public function upgrade()    {        return true;    }}
 |