request->isAjax) { if (Yii::$app->request->isPost) { // 获取所有分类 $cate = LinkCategory::getLinkCategory([], [], true, 'id,name,title,pid,is_list,remark'); $cate = array_column($cate, null, 'name'); // 暂时限定站点使用 $is_show_cate_checkbox = boolval(\Yii::$app->params['is_show_cate_checkbox'] ?? false); if($is_show_cate_checkbox == false){ if(isset($cate['multi_goods_cate'])){ unset($cate['multi_goods_cate']); } } // 获取所有链接 $link = Link::getLink([], [], true, 'id,name,title,cat_id,open_type,route,icon,remark'); // 组合链接 foreach ($link as $item) { $link_arr[$item['cat_id']][] = $item; } // 内嵌应用插件 $res = AddonsLink::makeupAddonsLink($this->mall_id, $cate, $link_arr); if ($res == false) unset($cate['addons']); // 对分类进行树形拼接 $menu = LinkCategory::getTreeMenu($cate); // print_r($menu);exit; foreach ($menu as $key => $value) { if ($value['name'] == 'score_game') { $is_installed_score_game = MallAddons::isInstall($this->mall_id, AddonsEnum::ADDONS_SCORE_GAME); if (!$is_installed_score_game) { unset($menu[$key]); } } } $menu = array_values($menu); $this->success('获取成功', compact('menu', 'link_arr')); } } } /** * 根据分类获取链接管理列表内容 * @Author: lun * @DateTime: 2021/10/13 0013 17:17 * @Copyright: copyright (c) 2021 广东七件事集团 * @return mixed|void */ public function actionGetPickList() { if (Yii::$app->request->isAjax) { if (Yii::$app->request->isGet) { $post = Yii::$app->request->get(); // 检查提交的参数 $res = Yii::$app->services->validate->validate($post,[ [['type'], 'required'], [['type'], 'string'], [['page','limit', 'level'], 'integer'], [['page','limit','keyword','parameter'], 'safe'], ]); if ($res === false) return $this->error(Yii::$app->services->validate->getErrorMessage()); // 查询参数配置 $where = []; $route = ''; $where[] = ['=', 'mall_id', $this->mall_id]; $where[] = ['=', 'status', StatusEnum::ENABLED]; $order = 'id desc'; $params = ['where' => $where, 'order' => $order, 'limit' => 10]; switch ($post['type']) { case 'diy': // 装修页面 $params['select'] = 'id,title,template,created_at'; // 查询字段 $params['order'] = 'is_home_page desc,type desc,created_at desc'; // 查询字段 isset($post['keyword']) && $params['where'][] = ['like', 'title', $post['keyword']]; $list = DiyPage::listPage($params, false, true); if ($list['list']) { foreach ($list['list'] as &$item) { $item['route'] = DiyEnum::templateRoute($item['template']); } } break; case 'smart_form': // 上架商品列表 $list = AddonsSmartFormTemplate::getDiyList($this->mall_id, $post); $route = DiyEnum::SMART_FORM_PAGE . '?template_id='; break; case 'alipay_mch_coupon': // 上架商品列表 $list = AddonsAlipayMchCouponActivityModel::getDiyList($this->mall_id, $post); $route = DiyEnum::ALIPAY_MCH_COUPON_PAGE . '?id='; break; case 'goods_online': // 上架商品列表 $params['select'] = 'id,goods_name as title,subtitle,cover_pic as img,price,original_price,(sales_num+virtual_sales) as sales_num,created_at,is_attr,goods_type'; // 查询字段 if (isset($post['keyword'])) { // 更新sql的拼接方式,变成SELECT * FROM goods WHERE (id = 'keyword' OR goods_name LIKE '%keyword%') AND is_on_sale = 'ENABLED'; $params['where'][] = ['or', ['=', 'id', $post['keyword']], ['like', 'goods_name', $post['keyword']] ]; } $params['where'][] = ['=', 'is_on_sale', StatusEnum::ENABLED]; $list = Goods::listPage($params, false, true); $list['list'] = DiyComponentsData::getMemberPrice($this->mall_id, $list['list'], 1); if(isset($post['parameter']['addonsFields'])) $list['list'] = Goods::getAddonsGoodsSetting($this->mall_id, $post['parameter']['addonsFields'], $list['list'], 'list'); $route = DiyEnum::GOODS_DETAIL_PATH . '?proId='; break; case 'goods_cate': // 商品分类列表 case 'multi_goods_cate': $params['select'] = 'id,name as title,created_at,level'; // 查询字段 if (!empty($post['level'])) $params['where'][] = ['level' => $post['level']]; isset($post['keyword']) && $params['where'][] = ['like', 'name', $post['keyword']]; // $params['where'][] = ['=','parent_id',StatusEnum::DISABLED]; if($post['type'] == 'multi_goods_cate') $params['where'][] = ['>','parent_id',StatusEnum::DISABLED]; $params['where'][] = ['=', 'mch_id', 0]; $params['where'][] = ['=', 'status', StatusEnum::ENABLED]; // $params['where'][] = ['=', 'parent_id', StatusEnum::DISABLED]; $list = GoodsCate::listPage($params, false, true); if (!empty($list['list'])) { foreach ($list['list'] as $key => &$value) { switch ($value['level']) { case 1: $value['level_name'] = '一级分类'; break; case 2: $value['level_name'] = '二级分类'; break; case 3: $value['level_name'] = '三级分类'; break; } } } $route = DiyEnum::GOODS_MENU_PATH . '?jump_type=diy&id='; break; case 'cate_goods': // 类目商品 $params['select'] = 'id,name as title,created_at'; // 查询字段 isset($post['keyword']) && $params['where'][] = ['like', 'name', $post['keyword']]; // $params['where'][] = ['=','parent_id',StatusEnum::DISABLED]; $params['where'][] = ['=', 'mch_id', 0]; $params['where'][] = ['=', 'status', StatusEnum::ENABLED]; $list = GoodsCate::listPage($params, false, true); $route = '/plugins4/Housekeeping/index?id='; break; case 'group_activity': // 拼团活动 $list = GroupBuyActive::getActiveListByDiy($this->mall_id, $post); $route = DiyEnum::GROUP_BUY_GOODS_INFO . '?active_id='; break; case 'group_activity_copy': // 拼团活动 $list = GroupBuyCopyActive::getActiveListByDiy($this->mall_id, $post); $route = DiyEnum::GROUP_BUY_COPY_GOODS_INFO . '?active_id='; break; case 'group_cate': // 拼团分类 $list = GroupBuyCate::getCateListByDiy($this->mall_id, $post); $route = DiyEnum::GROUP_BUY_GOODS_LIST . '?cate_id='; break; case 'group_cate_copy': // 拼团分类 $list = GroupBuyCopyCate::getCateListByDiy($this->mall_id, $post); $route = DiyEnum::GROUP_BUY_GOODS_COPY_LIST . '?cate_id='; break; case 'score_mall': // 积分商品 $list = ScoreMallGoods::getGoodsListByDiy($this->mall_id, $post); $route = DiyEnum::GOODS_DETAIL_PATH . "?marketing_type=" . AddonsEnum::ADDONS_NAME_SCORE_MALL . "&proId="; break; case 'digital_mall': // 数字币商品 $list = DigitalMallGoods::getGoodsListByDiy($this->mall_id, $post); $route = DiyEnum::GOODS_DETAIL_PATH . "?marketing_type=" . AddonsEnum::ADDONS_NAME_DIGITAL_MALL . "&proId="; break; case 'fun_mall': // 蜜豆商品 $list = FunMallGoods::getGoodsListByDiy($this->mall_id, $post); $route = DiyEnum::GOODS_DETAIL_PATH . "?marketing_type=" . AddonsEnum::ADDONS_NAME_FUN_MALL . "&proId="; break; case 'score_mall_cate': // 积分商品分类 $list = ScoreMallGoods::getCateListByDiy($this->mall_id, $post); $route = DiyEnum::SCORE_MALL_GOODS_LIST . '?cate_id='; break; case 'digital_mall_cate': // 数字币商品分类 $list = DigitalMallGoods::getCateListByDiy($this->mall_id, $post); $route = DiyEnum::SCORE_MALL_GOODS_LIST . '?cate_id='; break; case 'fun_mall_cate': // 积分商品分类 $list = FunMallGoods::getCateListByDiy($this->mall_id, $post); $route = DiyEnum::FUN_MALL_GOODS_LIST . '?cate_id='; break; case 'bargain_active': // 砍价活动 $list = BargainActive::getActiveListByDiy($this->mall_id, $post); $route = DiyEnum::BARGAIN_GOODS_DETAIL . '?active_id='; break; case 'bargain_cate': // 砍价分类 $list = BargainCate::getCateListByDiy($this->mall_id, $post); $route = DiyEnum::BARGAIN_GOODS_LIST . '?cate_id='; break; case 'operating_note': // 运营笔记 $params['select'] = 'title,cover_img,views_num,likes_num,created_at,content_href,note_type,id,virtual_likes_num,virtual_views_num'; // 查询字段 isset($post['keyword']) && $params['where'][] = ['like', 'title', $post['keyword']]; $params['where'][] = ['=', 'status', StatusEnum::ENABLED]; $list = AddonsOperatingNoteContent::listPage($params, false, true); $route = DiyEnum::OPERATING_NOTE_CONTENT_LIST . '?id='; break; case 'lucky_group_activity': // 幸运拼团活动 $list = LuckyGroupActivity::getActiveListByDiy($this->mall_id, $post); $route = DiyEnum::LUCKY_GROUP_GOODS_DETAIL . '?goods_id='; break; case 'lucky_group_cate': // 幸运拼团分类 $list = LuckyGroupCategory::getCateListByDiy($this->mall_id, $post); $route = DiyEnum::LUCKY_GROUP_GOODS_LIST . '?category_id='; break; case 'course_cate': // 课程 isset($post['keyword']) && $params['where'][] = ['like', 'name', $post['keyword']]; $params['select'] = 'id,mall_id,cat_id as cate_id,name as title,introduce,cat_id,sell_type,price,line_off_price,sales,logo,is_open_vm,vm_likes,vm_shares,vm_views,likes,shares,views,comments,status,created_at'; $list = AddonsCourse::listPage($params, false, true); $route = DiyEnum::COURSE_PATH . '?courseId='; break; case 'store': $list = Store::getStoreListInDiy($this->mall_id, $post); $route = DiyEnum::O2O_STORE_DETAIL . '?store_id='; break; case 'store_cate': $list = StoreCate::getCateListInDiy($this->mall_id, $post); $route = DiyEnum::O2O_STORE_CATE . '?cate_id='; break; case 'mch': $list = Mch::getMchListInDiy($this->mall_id, $post); $route = DiyEnum::O2O_MCH_DETAIL . '?mch_id='; break; case 'mch_cate': $list = MchCate::getCateListInDiy($this->mall_id, $post); $route = DiyEnum::O2O_MCH_CATE . '?cate_id='; break; case 'store_goods': case 'store_renov_goods': $list = StoreGoods::getGoodListInDiy($this->mall_id, $post); $route = DiyEnum::O2O_STORE_GOODS . '?goods_id='; break; case 'store_goods_cate': $params['select'] = 'id,name as title,created_at'; // 查询字段 isset($post['keyword']) && $params['where'][] = ['like', 'name', $post['keyword']]; $params['where'][] = ['=', 'status', StatusEnum::ENABLED]; $params['where'][] = ['=', 'parent_id', StatusEnum::DISABLED]; $params['where'][] = ['=', 'store_id', $this->store_id]; $list = StoreGoodsCate::listPage($params, false, true); $route = DiyEnum::GOODS_MENU_PATH . '?jump_type=diy&id='; break; case 'mch_goods': $list = Mch::getGoodListInDiy($this->mall_id, $post); $route = DiyEnum::O2O_MCH_GOODS . '?goods_id='; break; case 'presale_activity': // 预售活动 $list = DepositPresaleActive::getActiveListByDiy($this->mall_id, $post); $route = DiyEnum::DEPOSIT_PRESALE_GOODS_DETAIL . '?active_id='; break; case 'presale_cate': // 预售分类 $list = DepositPresaleCate::getCateListByDiy($this->mall_id, $post); $route = DiyEnum::DEPOSIT_PRESALE_CATEGORY_GOODS_LIST . '?stauts=0&presell_id=0&cate_id='; break; case 'subscribe_active': // 预约商品活动 $list = Subscribe::getActiveListByDiy($this->mall_id, $post); $route = '/plugins/Subscribe/activity?activity='; break; case 'subscribe_menu': // 预约商品菜单 $list = SubscribeCate::getCateListByDiy($this->mall_id, $post); $route = '/plugins/Subscribe/index?cate_id='; break; case 'blind_box_goods': // 商品列表 $list = BlindBoxGoods::getGoodsListByDiy($this->mall_id, $post); $route = '/plugins2/BlindBox/GoodsList'; break; case 'blind_box_cate': // 分类 $list = BlindBoxCate::getCateListByDiy($this->mall_id, $post); $route = '/plugins2/BlindBox/GoodsList?cate_id='; break; case 'blind_boxs_goods': // 商品列表 $list = BlindBoxsGoods::getGoodsListByDiy($this->mall_id, $post); $route = '/plugins2/BlindBoxs/GoodsList'; break; case 'blind_boxs_cate': // 分类 $list = BlindBoxsCate::getCateListByDiy($this->mall_id, $post); $route = '/plugins2/BlindBoxs/GoodsList?cate_id='; break; case 'best-sellers': $list = StoreGoods::getRecommendGoodListInDiy($this->mall_id, $post); $route = DiyEnum::O2O_STORE_GOODS . '?goods_id='; break; case 'store_cate_recommend': $list = StoreCate::getRecommendCateListInDiy($this->mall_id, $post); $route = DiyEnum::O2O_STORE_CATE . '?cate_id='; break; case 'store-commodity-cate': $list = StoreGoodsCate::getRecommendGoodCateListInDiy($this->mall_id, $post); $route = DiyEnum::O2O_STORE_CATE . '?cate_id='; break; case 'seckill': // 秒杀活动 $list = SeckillActivity::getActiveListByDiy($this->mall_id, $post); $route = DiyEnum::SECKILL_GOODS_INFO; break; case 'secondary_card': // 次卡 $list = []; $route = ''; if(MallAddons::isInstall($this->mall_id,'SecondaryCard')){ $list = \addons\SecondaryCard\common\service\SecondaryCardService::getSecondaryCardListByDiy($this->mall_id, $post); $route = DiyEnum::SECONDARY_CARD_LIST . '?secondary_card_id='; } break; case 'ProductGift': // 商品赠送 $list = []; $route = ''; if(MallAddons::isInstall($this->mall_id,'ProductGift')){ $list = (new \addons\ProductGift\common\services\MainGoodsService(['mall_id'=>$this->mall_id]))->getMainGoodsListByDiy($post); $route = DiyEnum::PRODUCT_GIFT_GOODS_DETAIL . '?proId='; } break; case 'store_coupons': //o2o优惠券 if(MallAddons::isInstall($this->mall_id,'Store')){ $list = StoreCoupon::getCouponListByDiy([ ['mall_id' => $this->mall_id], ['status' => StatusEnum::ENABLED], ['coupon_status' => CouponEnum::STATUS_RECEIVING] ]); $route = ''; } break; case 'shop_type': //积分增长赢-实体店分类 $route = DiyEnum::SCORE_GAME_SHOP_TYPE . '?tid='; $list = (new ShopService(['mall_id' => $this->mall_id]))->getTypeList($post, 1); break; case 'menber_type'://积分增长赢-理疗师分类 $route = DiyEnum::SCORE_GAME_MENBER_TYPE . '?tid='; $list = (new ShopService(['mall_id' => $this->mall_id]))->getTypeList($post, 2); break; case 'consumer_card'://积分增长赢-消费卡充值 $route = DiyEnum::SCORE_GAME_CONSUMER_CARD . '?type='; $setting = \Yii::$app->services->setting->addons->get($this->mall_id, ScoreGameEnum::ADDONS_NAME, 'basic'); $list[] = [ 'id' => 0, 'recharge_money' => '全部', 'reward_money' => '-', 'type' => '-', ]; if (!empty($setting['consumer_card_recharge_ladder'])) { $setting['consumer_card_recharge_ladder'] = json_decode($setting['consumer_card_recharge_ladder'], true); foreach ($setting['consumer_card_recharge_ladder'] as $key => $value) { $value['id'] = $value['recharge_money']; $value['title'] = $value['recharge_money']; $list[] = $value; } } break; case 'score_secondary_card'://积分增长赢-理疗师分类 $route = DiyEnum::SCORE_GAME_SECONDARY_CARD . '?secondary_card_id='; $list = (new SecondaryCardService(['mall_id' => $this->mall_id]))->getSecondaryCardListByDiy($post); break; case 'diy_template': //装修页面 $list = []; $route = ''; if(MallAddons::isInstall($this->mall_id, 'Store')){ $list = AddonsStoreDiyPage::getDiyTemplate($this->mall_id, $post); $route = '/plugins/pages/diy_page/detail?template=store_steward&id='; } break; case 'store_renov_goods': //门店商品 // $post['store_id'] = $this->store_id; $list = StoreGoods::getGoodListInDiy($this->mall_id, $post); $route = DiyEnum::O2O_STORE_GOODS . '?goods_id='; break; case 'luck_draw': // 商品列表 $list = LuckDraw::getListByDiy($this->mall_id, $post); $route = '/customAddons2/LuckDraw/luckDraw?draw_id='; break; } $this->success('操作成功', compact('list', 'route')); } } } }