123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162 |
- <?php
- namespace 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;
- }
- }
|