goodsinfo=new GoodsInfo; } public function getGoodsList(Request $request){ $input=$request->all(); $page_size=$input['page_size']; $page_index=$input['page_index']; $num = ($page_index - 1) * $page_size; $search_name=$input['search_name']; $where=[]; if($input['status']=='0' || $input['status']=='1'){ $where['status']=$input['status']; } $count=Goods::where('name', 'like', '%' . $search_name . '%') ->where($where) ->count(); if($count==0){ $this->error('400001','没有数据'); } $list = Goods::where('name', 'like', '%' . $search_name . '%') ->where($where) ->orderBy('id', 'desc') ->skip($num)->take($page_size) ->get(); if(empty($list)){ return $this->error('400002','没有获取到数据'); } return $this->success_list($list,'success',$count); } //获取商品详情 public function getGoodsDetails(Request $request){ $goodsId=$request->id; $goods = Goods::find($goodsId); /*获取商品规格组合*/ $goods['spec']=$this->goodsinfo->getGoodsSpec($goodsId); /*获取商品规格组合价格*/ $goods['sku']=$this->goodsinfo->getGoodsSkuPrice($goodsId); if($goods) { return $this->success($goods); } return $this->error(); } //上传图片 public function uploadGoodsImage(Request $request){ $path = $request->file('file')->store('/public/goods'); $url = Storage::url($path); if($url){ return $this->success($url); } return $this->error(); } //添加商品 public function uploadGoods(Request $request){ $input=$request->all(); $rules=[ 'name'=>'required|max:32','img_url'=>'required', 'banner_url'=>'required','content'=>'required', 'goodsSku'=>'required','tagList'=>'required' ]; $messages=[ 'name.required'=>'商品名称不能为空.','name.max'=>'商品名称长度应小于32个字符.', 'img_url.required'=>'请上传商品图片.','banner_url.required'=>'请上传轮播图片.', 'content.required'=>'商品详情不能为空.','goodsSku.required'=>'请添加商品规格.', 'tagList.required'=>'请设置商品规格.' ]; $validator = Validator::make($input, $rules, $messages); if($validator->fails()){ return $this->error('400013',$validator->errors()->first()); } DB::beginTransaction(); try{ $goodsId=$this->goodsinfo->createGoodsInfo($input); $this->goodsinfo->createGoodsSpecInfo($input['tagList'],$goodsId); $this->goodsinfo->createGoodsSkuInfo($input['goodsSku'],$goodsId); Log::info('管理员:'.Auth::user()->name.'(id='.Auth::user()->id.')添加商品'.$input['name'].'(id='.$goodsId.')成功'); DB::commit(); return $this->success([]); }catch(Exception $e) { DB::rollBack(); return $this->error(); } } //修改商品 public function updateGoods(Request $request){ $input=$request->all(); $goodsId=$input['id']; $rules=[ 'name'=>'required|max:32','img_url'=>'required', 'banner_url'=>'required','content'=>'required', 'goodsSku'=>'required','tagList'=>'required' ]; $messages=[ 'name.required'=>'商品名称不能为空.','name.max'=>'商品名称长度应小于32个字符.', 'img_url.required'=>'请上传商品图片.','banner_url.required'=>'请上传轮播图片.', 'content.required'=>'商品详情不能为空.','goodsSku.required'=>'请添加商品规格.', 'tagList.required'=>'请设置商品规格.' ]; $validator = Validator::make($input, $rules, $messages); if($validator->fails()){ return $this->error('400013',$validator->errors()->first()); } try{ DB::transaction(function () use ($input,$goodsId){ GoodsSpec::where('goods_id',$goodsId)->delete(); GoodsSku::where('goods_id',$goodsId)->delete(); GoodsSkuPrice::where('goods_id',$goodsId)->delete(); $this->goodsinfo->updateGoodsInfo($input); $this->goodsinfo->createGoodsSpecInfo($input['tagList'],$input['id']); $this->goodsinfo->createGoodsSkuInfo($input['goodsSku'],$input['id']); }, 5); Log::info('管理员:'.Auth::user()->name.'(id='.Auth::user()->id.')修改商品'.$input['name'].'(id='.$goodsId.')成功'); DB::commit(); return $this->success([]); }catch(Exception $e) { DB::rollBack(); return $this->error(); } } /* 商品上架/下架 */ public function shelvedGoods(Request $request){ $goods=Goods::find($request->post('id')); $goods->status=($goods->status==0)?'1':'0'; $row=$goods->save(); if($row){ Log::info('管理员:'.Auth::user()->name.'(id='.Auth::user()->id.')下架商品'.$goods->name.'(id='.$goods->id.')成功'); return $this->success([]); } return $this->error(); } //删除商品 public function destoryGoods(Request $request){ $goods=Goods::find($request->post('id')); $row=$goods->delete(); if($row){ Log::info('管理员:'.Auth::user()->name.'(id='.Auth::user()->id.')删除商品'.$goods->name.'(id='.$goods->id.')成功'); return $this->success([]); } return $this->error(); } /*商品信息(根据用户等级获取对应商品规格的价格)*/ public function getGoodsInfo(Request $request){ $input=$request->all(); $rules=[ 'mobile'=>[ 'required', 'regex:/^1[345789][0-9]{9}$/' ], ]; $uuu=new User(); $validator = $uuu->validator($input,$rules); if($validator->fails()){ return $this->error('400013',$validator->errors()->first()); } $user=User::where('mobile',$input['mobile'])->first(); if(empty($user)){ return $this->error('400135','代理信息不存在'); } $goods=Goods::with([ 'goodsskuprice:id,goods_id,sku_id,user_level,price', 'goodsskuprice' => function ($query) use ($user){ $query->where('user_level', '=', $user->level); }]) ->where('status',1) ->get()->toArray(); foreach($goods as $key=>$val){ foreach($val['goodsskuprice'] as $k=>$v){ $goods[$key]['goodsskuprice'][$k]['sku']=$this->goodsinfo->getGoodsSku($v['sku_id']); } } $data['goods']=$goods; $data['user']=$user->toArray(); return $this->success($data); } }