request->get(); $params['where'] = [['mall_id'=>$this->mall_id,'parent_id'=>empty($params['cate_id'])?0:$params['cate_id'],'is_show'=>1,'status'=>StatusEnum::ENABLED]]; $params['select'] = 'id,name,pic'; $params['order'] = 'sort asc'; $cate_list['list'] = PurchaseCate::lists($params); return $this->success('操作成功',$cate_list); } /** * 分类商品列表(选到哪个分类就获取哪个分类的商品,不包括子级分类) * @return mixed|void */ public function actionCateGoodsList() { $params = \Yii::$app->request->get(); $where[] = ['g.mall_id' => $this->mall_id, 'g.is_on_sale' => 1, 'status' => StatusEnum::ENABLED]; if (!empty($params['type']) && $params['type'] == 'all') { //查询三级的所有 $goods_cate_list = PurchaseCate::findAll(['parent_id' => $params['cate_id'], 'mall_id' => $this->mall_id, 'is_show' => 1]); $cate_id_arr = array_column($goods_cate_list, 'id'); $cate_id_arr[] = $params['cate_id']; } else { if (empty($params['cate_id'])) {//顶级 $goods_cate_list = PurchaseCate::findAll(['parent_id' => 0, 'mall_id' => $this->mall_id, 'is_show' => 1]); $cate_id_arr = array_column($goods_cate_list, 'id'); } else { $cate_id_arr = [$params['cate_id']]; } } $goods_cate_relate_list = PurchaseGoodsCateRelate::findAll(['cate_id' => $cate_id_arr]); $goods_id_arr = array_column($goods_cate_relate_list, 'goods_id'); $where[] = ['g.id' => $goods_id_arr]; $params['where'] = $where; $params['alias'] = 'g'; $params['select'] = 'g.id,g.goods_name,g.cover_pic,g.price,g.stock,g.attr_groups,g.attr_groups_format,g.is_attr,g.is_show_stock,g.unit,g.goods_source'; $params['order'] = 'sort asc'; $params['with'] = ['attr','extra']; $goods_list = Goods::listPage($params); $list = PurchaseCart::getCartList($this->user_id); $goods_num_arr = []; foreach ($list as $v) { $row = json_decode($v, true); if (isset($goods_num_arr[$row['goods_id']])) { $goods_num_arr[$row['goods_id']] += $row['num']; } else { $goods_num_arr[$row['goods_id']] = $row['num']; } } if (!empty($goods_list['list'])) { foreach ($goods_list['list'] as &$item) { $item['member_buy_limit_setting'] = empty($item['extra']['member_buy_limit_setting'])?'':json_decode($item['extra']['member_buy_limit_setting'],true); unset($item['extra']); $item['commission'] = 0;//最高可赚钱的佣金,预留字段 $item['num'] = !empty($goods_num_arr[$item['id']]) ? $goods_num_arr[$item['id']] : 0; $item['status'] = empty($item['stock']) ? 0 : 1; } } // 检查用户申请是否通过 $goods_list['qualification'] = PurchaseManager::check($this->user_id) == false ? 0 : 1;// 是否有资格购买商品 // 获取广告弹窗 $config = Yii::$app->services->setting->addons->get($this->mall_id, PurchaseEnum::ADDONS_NAME, 'basic'); $goods_list['picture'] = $config['picture'] ?? ''; return $this->success('操作成功', $goods_list); } }