request->isAjax) { if (Yii::$app->request->isGet) { $detail = Yii::$app->services->setting->mall->get($this->mall_id, 'bottom_nav'); $detail['navs'] = is_array($detail['navs']) ? $detail['navs'] : Json::decode($detail['navs']); // 获取装修首页内容,并强制初始化首页装修地址 DiyPage::getHomePage($this->mall_id, $detail['navs'][0]); foreach ($detail['navs'] as $key => &$item) { if(!isset($item['is_show'])){ $item['is_show'] = 1; } } $this->success('获取成功', compact('detail')); } else { $params = Yii::$app->request->post('form'); $res = Yii::$app->services->validate->validate($params, [ [['bottom_background_color', 'inactive_color', 'active_color'], 'required'], [['bottom_background_color'], 'string'], [['navs','recover_default'], 'safe'] ]); if ($res === false) return $this->error(Yii::$app->services->validate->getErrorMessage()); if (empty($params['navs'])) $params['navs'] = []; if (!empty($params['recover_default'])) {// 恢复默认 $params['navs'] = DiyEnum::DEFULT_BUTTOM_NAV; } unset($params['recover_default']); Yii::$app->services->setting->mall->set($this->mall_id, ['bottom_nav' => $params]); $this->success('保存成功'); } } return $this->render($this->action->id); } /** * 悬浮按钮 * @return string */ public function actionFloatButton() { if (Yii::$app->request->isAjax) { if (Yii::$app->request->isGet) { $detail = Yii::$app->services->setting->mall->get($this->mall_id, 'float_button'); if (empty($detail)) $this->success('暂未配置', []); $this->success('获取成功', $detail); } else { $params = Yii::$app->request->post('ruleForm'); $res = Yii::$app->services->validate->validate($params, [ [['is_quick_navigation', 'quick_navigation_style', 'is_customer_services', 'is_show_scroll_top', 'quick_navigation_opened_pic', 'quick_navigation_closed_pic', 'customer_services_pic'], 'required'], [['is_quick_navigation', 'quick_navigation_style', 'is_customer_services', 'is_show_scroll_top'], 'integer'], [['quick_navigation_opened_pic', 'quick_navigation_closed_pic', 'customer_services_pic'], 'string'], ]); if ($res === false) return $this->error(Yii::$app->services->validate->getErrorMessage()); Yii::$app->services->setting->mall->set($this->mall_id, ['float_button' => $params]); $this->success('保存成功'); } } return $this->render($this->action->id); } /** * 商品海报 * @return string */ public function actionPoster() { if (Yii::$app->request->isAjax) { if (Yii::$app->request->isGet) { $poster = Yii::$app->services->setting->mall->get($this->mall_id, 'poster'); // 无海报数据则获取默认参数 if (empty($poster)) { $poster = Poster::getDefaultPoster(); } else { foreach ($poster as &$item) { if (!is_array($item)) $item = Json::decode($item, true); } } $this->success('获取成功', $poster); } else { $params = Yii::$app->request->post('form'); $res = Yii::$app->services->validate->validate($params, [ [['share', 'goods', 'topic', 'footprint'], 'required'], ]); if ($res === false) return $this->error(Yii::$app->services->validate->getErrorMessage()); Yii::$app->services->setting->mall->set($this->mall_id, ['poster' => $params]); $this->success('保存成功'); } } return $this->render($this->action->id); } /** * 全局设置 * @return mixed|string|void */ public function actionSetting() { $request = Yii::$app->request; if ($request->isAjax) { if ($request->isGet) { $detail = Yii::$app->services->setting->mall->get($this->mall_id, 'decorate_setting'); if (empty($detail)) $this->success('暂未配置', []); $this->success('获取成功', $detail); } else { $params = Yii::$app->request->post('form'); $res = Yii::$app->services->validate->validate($params, [ [['global_text_color'], 'required'], [['global_text_color'], 'string'], [['global_goods_need'], 'required'], [['global_goods_need'], 'number'], ]); if ($res === false) return $this->error(Yii::$app->services->validate->getErrorMessage()); Yii::$app->services->setting->mall->set($this->mall_id, ['decorate_setting' => $params]); $this->success('保存成功'); } } return $this->render($this->action->id); } /** * 全局设置 * @return mixed|string|void */ public function actionUserCenter() { $request = Yii::$app->request; if ($request->isAjax) { if ($request->isGet) { $detail = Yii::$app->services->setting->mall->get($this->mall_id, 'decorate_user_center', true); if (empty($detail)) { $detail = self::getUserCenterDefault(); } else { foreach ($detail as &$item) { if (StringHelper::isJson($item)) $item = Json::decode($item); } } // 我的资产-自定义货币获取(货币模块功能需要优化所以此代码暂时未写) $this->success('获取成功', $detail); } else { $params = Yii::$app->request->post('form'); $res = Yii::$app->services->validate->validate($params, [ [['is_account_status', 'is_show_user_tool', 'user_tool_menu_title', 'user_tool_menu_style', 'is_menu_status', 'menu_title', 'is_order_bar_status', 'is_foot_bar_status', 'menu_style', 'top_style', 'account_show_type', 'top_pic_url', 'member_pic_url', 'member_bg_pic_url', 'style_bg_pic_url', 'is_assets_bar_status', 'account', 'order_bar', 'foot_bar', 'account_bar', 'assets_bar'], 'required'], [['is_account_status', 'is_show_user_tool', 'user_tool_menu_style', 'is_menu_status', 'is_order_bar_status', 'is_foot_bar_status', 'menu_style', 'top_style', 'account_show_type', 'is_assets_bar_status'], 'integer'], [['user_tool_menu_title', 'menu_title', 'top_pic_url', 'member_pic_url', 'member_bg_pic_url', 'style_bg_pic_url', 'account', 'order_bar', 'foot_bar', 'account_bar', 'assets_bar'], 'string'], [['menus','user_tool_menus'], 'safe'], ]); if ($res === false) return $this->error(Yii::$app->services->validate->getErrorMessage()); Yii::$app->services->setting->mall->set($this->mall_id, ['decorate_user_center' => $params]); $this->success('保存成功'); } } return $this->render($this->action->id); } /** * 用户中心恢复默认 */ public function actionUserCenterRestore() { $request = Yii::$app->request; if ($request->isAjax) { if ($request->isPost) { Yii::$app->services->setting->mall->set($this->mall_id, ['decorate_user_center' => self::getUserCenterDefault()]); $this->success('保存成功'); } } } /** * 用户中心默认值 * @return array */ public static function getUserCenterDefault() { $base_url = \Yii::$app->request->hostInfo . \Yii::$app->request->baseUrl; $iconUrlPrefix = $base_url . '/resources/img/mall/user-center/'; return [ 'is_account_status' => '1', 'is_show_user_tool' => '1', 'user_tool_menu_title' => '我的功能', 'user_tool_menu_style' => '1', 'is_menu_status' => '1', 'menu_title' => '营销功能', 'is_order_bar_status' => '1', 'is_foot_bar_status' => '1', 'menu_style' => '1', 'top_style' => '1', 'account_show_type' => '1', 'top_pic_url' => $iconUrlPrefix . 'img-user-bg.png', 'member_pic_url' => $base_url . '/resources/img/common/default_avatar_url.png', 'member_bg_pic_url' => $iconUrlPrefix . 'card-member-0.png', 'style_bg_pic_url' => $iconUrlPrefix . 'img-user-bg.png', 'is_assets_bar_status' => '1', 'account' => [ // TODO 好像是废弃不用了 [ 'icon_url' => $iconUrlPrefix . 'icon-wallet.png', 'name' => '我的钱包', ], [ 'icon_url' => $iconUrlPrefix . 'icon-integral.png', 'name' => '积分', ], [ 'icon_url' => $iconUrlPrefix . 'icon-balance.png', 'name' => '余额', ], ], 'menus' => [], 'user_tool_menus' => [], 'order_bar' => [ [ 'icon_url' => $iconUrlPrefix . 'icon-order-0.png', 'name' => '待付款', ], [ 'icon_url' => $iconUrlPrefix . 'icon-order-1.png', 'name' => '待发货', ], [ 'icon_url' => $iconUrlPrefix . 'icon-order-2.png', 'name' => '待收货', ], [ 'icon_url' => $iconUrlPrefix . 'icon-order-3.png', 'name' => '待评价', ], [ 'icon_url' => $iconUrlPrefix . 'icon-order-4.png', 'name' => '售后', ], ], 'foot_bar' => [ [ 'icon_url' => $iconUrlPrefix . 'favorite.png', 'name' => '我的收藏', ], [ 'icon_url' => $iconUrlPrefix . 'foot.png', 'name' => '我的足迹', ], ], 'account_bar' => [ 'status' => '1', 'integral' => [ 'status' => '1', 'text' => '积分', 'icon' => $iconUrlPrefix . 'icon-integral.png', ], 'balance' => [ 'status' => '1', 'text' => '余额', 'icon' => $iconUrlPrefix . 'icon-balance.png', ], 'coupon' => [ 'status' => '1', 'text' => '优惠券', 'icon' => $iconUrlPrefix . 'icon-coupon.png', ], 'card' => [ 'status' => '1', 'text' => '卡券', 'icon' => $iconUrlPrefix . 'icon-card.png', ], ], 'assets_bar' => [ [ 'icon_url' => $iconUrlPrefix . 'icon-balance.png', 'link_url' => '/pages/user/balance/details', 'name' => '余额', 'open_type' => 'navigate', 'status' => '1', 'sort' => '1', 'code' => 'balance' ], [ 'icon_url' => $iconUrlPrefix . 'icon-integral.png', 'link_url' => '/pages/user/score/details', 'name' => '积分', 'open_type' => 'navigate', 'status' => '1', 'sort' => '2', 'code' => 'score' ], [ 'icon_url' => $iconUrlPrefix . 'icon-card.png', 'link_url' => '/mch/e_coupon/list', 'name' => '电子券', 'open_type' => 'navigate', 'status' => '1', 'sort' => '3', 'code' => 'e_coupon' ], [ 'icon_url' => $iconUrlPrefix . 'icon-coupon.png', 'link_url' => '/pages/user/coupon/coupon', 'name' => '优惠券', 'open_type' => 'navigate', 'status' => '1', 'sort' => '4', 'code' => 'coupon' ], ], ]; } }