lang_set = (new LangService())->getLang(); } public function index() { $project_id = request()->project_id; return view('Yunshop\ReserveSimple::admin.goods.extend-index',[ 'project_id'=>$project_id, 'lang_set' => $this->lang_set ]); } public function goodsList() { //增加商品属性搜索 $product_attr_list = [ 'is_new' => '新品', 'is_hot' => '热卖', 'is_recommand' => '推荐', 'is_discount' => '促销', ]; $brands = Brand::getBrands()->get()->toArray(); $service_id = request()->service_id; $catetory_menus = [ 'catlevel' => $this->shopset['cat_level'], 'ids' => Category::getAllCategoryGroupArray()//CategoryFactory::create('shop'),//isset($categorySearch) ? array_values($categorySearch) : [], ]; $query = Goods::Search('')->pluginId(); if($service_id){ $query->whereHas('hasManyReserveGoods', function ($query) use($service_id) { $query->where('service_id', $service_id); }); } $list = $query->orderBy('display_order', 'desc')->orderBy('yz_goods.id', 'desc')->paginate(20); foreach ($list as $key => $item){ $list[$key]['thumb'] = yz_tomedia($item->thumb); $list[$key]['link'] = yzAppFullUrl('goods/'.$item->id); } $delete_msg = '确认删除此商品?'; $data = [ 'list' => $list, //课程商品id 'courseGoods_ids' => [], 'brands' => $brands, 'var' => \YunShop::app()->get(), 'catetory_menus' => $catetory_menus, 'shopset' => $this->shopset, 'lang' => $this->lang, 'product_attr_list' => $product_attr_list, 'yz_url' => 'yzWebUrl', 'edit_url' => self::EDIT_URL, 'delete_url' => self::DELETE_URL, 'delete_msg' => $delete_msg, 'sort_url' => self::SORT_URL, 'copy_url' => 'plugin.reserve-simple.admin.goods.copy', 'add_url' => 'plugin.reserve-simple.admin.goods.create' ]; return $this->successJson('查询成功',$data); } public function goodsSearch() { $requestSearch = request()->search; $service_id = request()->service_id; if($service_id){ $requestSearch['service_id'] = $service_id; } if ($requestSearch) { $requestSearch = array_filter($requestSearch, function ($item) { return $item !== '';// && $item !== 0; }); $categorySearch = array_filter(request()->category, function ($item) { return !empty($item); }); if ($categorySearch) { $requestSearch['category'] = $categorySearch; } } $query = Goods::Search($requestSearch)->pluginId(); if($requestSearch['service_id']){ $query->whereHas('hasManyReserveGoods', function ($query) use($requestSearch) { $query->where('service_id', $requestSearch['service_id']); }); } $list = $query->orderBy('display_order', 'desc')->orderBy('yz_goods.id', 'desc')->paginate(20); foreach ($list as $key => $item){ $list[$key]['thumb'] = yz_tomedia($item->thumb); $list[$key]['link'] = yzAppFullUrl('goods/'.$item->id); } return $this->successJson('查询成功',$list); } public function copy() { $id = intval(\YunShop::request()->id); if (!$id) { $this->error('请传入正确参数.'); } $result = CopyGoodsService::copyGoods($id); if (!$result) { $this->error('商品不存在.'); } return $this->message('商品复制成功', Url::absoluteWeb(self::MESSAGEJUMP)); } //商品编辑挂件获取 public function widgetColumn() { $data = (new ReserveSimpleGoodsWidgetManager())->handle(); return $this->successJson('widgetColumn', $data); } public function create() { if (request()->ajax()) { $request = Request(); $goods_service = new CreateGoodsService($request); $result = $goods_service->create(); if ($result['status'] == 1) { return $this->successJson('商品创建成功'); } else { return $this->errorJson($result['msg']); } } return view('goods.vue-goods', [ 'store_url' => yzWebFullUrl(request()->input('route')), 'widget_url' => yzWebFullUrl('plugin.reserve-simple.admin.goods.widget-column'), 'success_url' => yzWebFullUrl($this->success_url), ])->render(); } public function displayorder() { $id = request()->id; $value = request()->value; if (empty($id)){ return $this->errorJson('排序失败,商品ID不能为空'); } $goods = \app\common\models\Goods::find($id); $goods->display_order = $value; if ($goods->save()){ return $this->successJson('排序成功'); }else{ return $this->errorJson('排序失败'); } } public function destroy() { $id = request()->id; $goods = Goods::destroy($id); return $this->message('商品删除成功', Url::absoluteWeb(self::MESSAGEJUMP)); } }