get('goods.models.commodity_classification'); $goods_model = new $goods_model; $set = \Setting::get('plugin.video-share'); //如果安装了新装修插件并开启插件 if (app('plugins')->isEnabled('decorate') && \Setting::get('plugin.decorate.is_open') == "1") { $page = new \Yunshop\Decorate\frotend\IndexController(); $pageType = \Yunshop::request()->type; if ($pageType == '7') { $pageType = '3'; } if ($pageType == '8') { $pageType = '4'; } if ($pageType == '18') { $pageType = '5'; } if (\request()->cps_h5){ $pageType = '7'; } $page->page_type = $pageType; $page->page_scene = '2'; $page->page_sort = '1'; if ($pageType == '2') { $page->page_sort = "2"; //2为会员装修页面 } $decorate = $page->getPage(); if ($decorate) { $decorate['datas']=json_decode($decorate['datas'],true); $decorate['page_info']=json_decode($decorate['page_info'],true); $memberData = $this->getMemberData(); //收银台属于插件第二个按钮,特殊处理 $is_cashier = 0; $has_cashier = 1; if ($memberData['merchants_arr']['cashier']) { $is_cashier = 1; } $is_love_open = app('plugins')->isEnabled('love'); foreach ($decorate['datas'] as $key => $value) { //实用工具 if ($value['component_key'] == 'U_membertop') { $name = ''; if ($value['remote_data']['grade_type'] == 2) { if (app('plugins')->isEnabled('team-dividend')) { $name = $this->getLevelName(2); } else { $decorate['datas'][$key]['remote_data']['grade_type'] = 1; } } if ($value['remote_data']['grade_type'] == 3) { if (app('plugins')->isEnabled('commission')) { $name = $this->getLevelName(3); } else { $decorate['datas'][$key]['remote_data']['grade_type'] = 1; } } if (!$value['remote_data']['grade_type']) { $decorate['datas'][$key]['remote_data']['grade_type'] = 1; } if (MemberModel::isAgent()) { $decorate['datas'][$key]['remote_data']['isagent'] = true; } else { $decorate['datas'][$key]['remote_data']['isagent'] = false; } $decorate['datas'][$key]['remote_data']['levelname'] = $name; } //实用工具 if ($value['component_key'] == 'U_membertool') { foreach ($value['remote_data']['show_list'] as $pkey => $par) { if (!in_array($par['name'], $memberData['tools']) || $par['is_open'] == false) { unset($decorate['datas'][$key]['remote_data']['show_list'][$pkey]); } } $decorate['datas'][$key]['remote_data']['show_list'] = array_values($decorate['datas'][$key]['remote_data']['show_list']); } // 商家管理 if ($value['component_key'] == 'U_membermerchant') { foreach ($value['remote_data']['show_list'] as $pkey => $par) { if (in_array($par['name'], ['store-cashier', 'hotel', 'supplier', 'micro','package_deliver','ad-serving'])) { $decorate['datas'][$key]['remote_data']['show_list'][$pkey]['title'] = $memberData['merchants_arr'][$par['name']]['title']; $decorate['datas'][$key]['remote_data']['show_list'][$pkey]['url'] = $memberData['merchants_arr'][$par['name']]['url']; $decorate['datas'][$key]['remote_data']['show_list'][$pkey]['mini_url'] = $memberData['merchants_arr'][$par['name']]['mini_url']; } if ($par['name'] == 'cashier') { $has_cashier = 0; } if ($par['name'] == 'store-cashier') { $storeCashier = true; } if ($par['name'] == 'StoreVerification' && app('plugins')->isEnabled('store-project')) { $langService = new \Yunshop\StoreProjects\common\services\LangService; if ($langService->getLangSetting()['project'] !== '') { $decorate['datas'][$key]['remote_data']['show_list'][$pkey]['title'] = '我的' . $langService->getLangSetting()['project']; } } if (!in_array($par['name'], $memberData['merchants']) || $par['is_open'] == false) { unset($decorate['datas'][$key]['remote_data']['show_list'][$pkey]); } } if ($is_cashier == 1 && $has_cashier == 1 && $storeCashier === true) { $memberData['merchants_arr']['cashier']['image'] = $this->handlePluginImage($memberData['merchants_arr']['cashier']['image']); // $decorate['datas'][$key]['remote_data']['show_list'][] = $memberData['merchants_arr']['cashier']; } $decorate['datas'][$key]['remote_data']['show_list'] = array_values($decorate['datas'][$key]['remote_data']['show_list']); } //营销互动 if ($value['component_key'] == 'U_membermarket') { foreach ($value['remote_data']['show_list'] as $pkey => $par) { if(app('plugins')->isEnabled('video-share') && $par['name'] == 'video-share' && $set['list_style'] == 2) { //视频分享url单独处理 $decorate['datas'][$key]['remote_data']['show_list'][$pkey]['url'] = 'VideoDetail'; $decorate['datas'][$key]['remote_data']['show_list'][$pkey]['mini_url'] = '/packageC/video_goods/VideoDetail/VideoDetail'; }elseif(app('plugins')->isEnabled('video-share') && $par['name'] == 'video-share'){ $decorate['datas'][$key]['remote_data']['show_list'][$pkey]['url'] = 'VideoList'; $decorate['datas'][$key]['remote_data']['show_list'][$pkey]['mini_url'] = '/packageC/video_goods/VideoList/VideoList'; } //如果是客户 && 安装了客户中心插件 && 开启客户中心 if($par['name'] == 'm-guanxi' && app('plugins')->isEnabled('customer-center') && \Setting::get("plugin.customer-center.is_open")){ $decorate['datas'][$key]['remote_data']['show_list'][$pkey]['url'] = 'customerCenterIndex'; $decorate['datas'][$key]['remote_data']['show_list'][$pkey]['mini_url'] = '/packageF/others/customerCenter/customerCenterIndex/customerCenterIndex'; } if(app('plugins')->isEnabled('customer-development') && $par['name'] == 'customer-development') { $decorate['datas'][$key]['remote_data']['show_list'][$pkey]['mini_url'] = '/packageH/toker/memberTokerCard/memberTokerCard'; } if (!in_array($par['name'], $memberData['markets']) || $par['is_open'] == false) { unset($decorate['datas'][$key]['remote_data']['show_list'][$pkey]); }else{ $decorate['datas'][$key]['remote_data']['show_list'][$pkey]['title'] = empty($memberData['market_arr'][$par['name']]['title'])?$decorate['datas'][$key]['remote_data']['show_list'][$pkey]['title']:$memberData['market_arr'][$par['name']]['title']; $decorate['datas'][$key]['remote_data']['show_list'][$pkey]['mini_url'] = empty($memberData['market_arr'][$par['name']]['mini_url'])?$decorate['datas'][$key]['remote_data']['show_list'][$pkey]['mini_url']:$memberData['market_arr'][$par['name']]['mini_url']; $decorate['datas'][$key]['remote_data']['show_list'][$pkey]['url'] = empty($memberData['market_arr'][$par['name']]['url'])?$decorate['datas'][$key]['remote_data']['show_list'][$pkey]['url']:$memberData['market_arr'][$par['name']]['url']; $decorate['datas'][$key]['remote_data']['show_list'][$pkey]['total'] = isset($memberData['market_arr'][$par['name']]['total'])?$memberData['market_arr'][$par['name']]['total']:$decorate['datas'][$key]['remote_data']['show_list'][$pkey]['total']; } } $decorate['datas'][$key]['remote_data']['show_list'] = array_values($decorate['datas'][$key]['remote_data']['show_list']); } //资产权益 if ($value['component_key'] == 'U_memberrights') { foreach ($value['remote_data']['show_list'] as $pkey => $par) { if (!in_array($par['name'], $memberData['assets']) || $par['is_open'] == false) { unset($decorate['datas'][$key]['remote_data']['show_list'][$pkey]); }else{ $decorate['datas'][$key]['remote_data']['show_list'][$pkey]['title'] = $memberData['assets_arr'][$par['name']]['title']; } } $decorate['datas'][$key]['remote_data']['show_list'] = array_values($decorate['datas'][$key]['remote_data']['show_list']); } } $memberController = new MemberController; $advertisement = $memberController->getFirstLogin('member'); $decorate['pageinfo']['params']['advertisement'] = $advertisement; //给前端判断是否新装修页面 $decorate['page_plugins']='decorate'; $res['data'] = $decorate; $res['status'] = true; } } if (is_null($integrated)) { return $this->successJson('成功', $res); } else { return show_json(1, $res); } } /** * 获取可用模板 */ private function getDesigner() { if (\Yunshop::request()->ingress == 'weChatApplet') { $pageType = 9; } else { $pageType = \Yunshop::request()->type; } $designer = MemberDesigner::uniacid() ->whereRaw('FIND_IN_SET(?,page_type)', [$pageType]) ->where(['shop_page_type' => MemberDesigner::PAGE_MEMBER_CENTER, 'is_default' => 1]) ->first(); return $designer; } /** * @return array * 获取可用插件按钮 */ private function getMemberData() { $memberId = \YunShop::app()->getMemberId(); $arr = (new \app\common\services\member\MemberCenterService())->getMemberData($memberId); $tools = ['m-collection', 'm-footprint', 'm-address', 'm-info']; $merchants = []; //控制二维码显示,由member-data方法搬来 $member_info = MemberModel::getUserInfos_v2(\YunShop::app()->getMemberId())->first(); if (empty($member_info)) { $mid = Member::getMid(); $this->jump = true; return $this->jumpUrl(\YunShop::request()->type, $mid); } $member_info = $member_info->toArray(); $is_agent = $member_info['yz_member']['is_agent'] == 1 && $member_info['yz_member']['status'] == 2 ? true : false; if ($is_agent) { $markets = ['m-erweima']; } else { $markets = []; } $markets = array_merge($markets, ['m-pinglun', 'm-guanxi', 'm-coupon']); $assets = []; $merchants_arr = []; foreach ($arr['tool'] as $v) { $tools[] = $v['name']; } foreach ($arr['merchant'] as $v) { $merchants[] = $v['name']; $merchants_arr[$v['name']] = $v; } foreach ($arr['market'] as $v) { $markets[] = $v['name']; $market_arr[$v['name']] = $v; } foreach ($arr['asset_equity'] as $v) { $assets[] = $v['name']; $assets_arr[$v['name']] = $v; } return [ 'tools' => $tools, 'merchants' => $merchants, 'markets' => $markets, 'assets' => $assets, 'merchants_arr' => $merchants_arr, 'assets_arr' => $assets_arr, 'market_arr' => $market_arr ]; } private function getLevelName($type) { $name = ''; if ($type == 2) { $agency_model = TeamDividendAgencyModel::getAgencyInfoByUid(\YunShop::app()->getMemberId()); $name = $agency_model->hasOneLevel->level_name ?: ''; } if ($type == 3) { $request = Agents::getLevelByMemberId() ->where('member_id', \YunShop::app()->getMemberId()) ->first(); if (!$request) { return ''; } $request = $request->toArray(); if ($request['agent_level']) { $name = $request['agent_level']['name']; } else { $name = AgentLevel::getDefaultLevelName(); } } return $name; } private function handlePluginImage($image) { if (config('app.framework') == 'platform') { $dir = '/'; } else { $dir = '/addons/yun_shop/'; } return $dir.'static/yunshop/designer/images/'.$image; } }