get(); $data['goods'] = GoodInfo::orderby('id', 'asc')->get(); if($request->session()->has('user_id')) $data['user_id'] = $request->session()->get('user_id'); else $data['user_id'] = NULL; if($request->session()->has('is_admin')) $data['is_admin'] = $request->session()->get('is_admin'); else $data['is_admin'] = NULL; return view::make('good.goodList')->with($data); } public function check(Request $request) { $data = []; $user_id = $request->session()->get('user_id'); $data['goods'] = Transaction::where('seller_id',$user_id)->where('status',1)->get(); $data['sells'] = Transaction::where('seller_id',$user_id)->where('status',2)->get(); $data['mysells'] = Transaction::where('seller_id',$user_id)->where('status',4)->get(); $data['users'] = Transaction::where('buyer_id',$user_id)->where('status',3)->get(); $data['transactions'] = Transaction::where('buyer_id',$user_id)->where('status',2)->get(); return view::make('good.goodCheck')->with($data); } /** * @function GoodController@getInfo * @input Request $request, $good_id * @return View * @description Get the information of a specify goods. */ public function getInfo(Request $request, $good_id) { $data = []; $data['good'] = GoodInfo::where('id', $good_id)->first(); $data['user'] = UserInfo::where('id',$data['good']->user_id)->first(); $data['sell'] = Transaction::where('good_id',$good_id)->first(); if($request->session()->has('user_id')) $data['user_id'] = $request->session()->get('user_id'); else $data['user_id'] = NULL; if($request->session()->has('is_admin')) $data['is_admin'] = $request->session()->get('is_admin'); else $data['is_admin'] = NULL; $good = GoodInfo::where('id', $good_id)->first(); return view::make('good.goodInfo')->with($data); } public function allow(Request $request, $id) { $data = []; $user_id = $request->session()->get('user_id'); $data['buyers'] = Transaction::where('id',$id)->first(); $good = Transaction::find($id); if($good->status==1) $good->status = 2; else if($good->status==2&&$user_id==$good->seller_id) $good->status==3; else if($good->status==2&&user_id==$good->buyer_id) $good->status==4; else if($good->status==4||$good->status==3) $good->status=5; $good->save(); return Redirect::to('/good'); } public function getGood(Request $request, $good_id) { $data = GoodInfo::find($good_id); $buy = new Transaction; $buy->good_id = $good_id; $buy->buyer_id = $request->session()->get('user_id'); $buy->seller_id = $data->user_id; $buy->status = 1; $buy->save(); return Redirect::to('/good'); } public function myGood(Request $request) { $data = []; $user_id = $request->session()->get('user_id'); $data['goods'] = GoodInfo::where('user_id',$user_id)->get(); return view::make('good.myGood')->with($data); } /** * @function GoodController@addGood * @input Request $request * @return Redirect * @description Add a new good. */ public function addGood(Request $request) { if($request->method() == "GET"){ $data = []; if(!$request->session()->has('user_id')) return Redirect::back(); $data['cats'] = GoodCat::orderby('cat_name', 'asc')->get(); return view::make('good.addPage')->with($data); }else{ if(!$request->session()->has('user_id')) return Redirect::back(); $this->validate($request, [ 'good_name' => 'required', 'description' => 'required', 'pricemin' => 'required', 'pricemax' => 'required', 'counts' => 'required', ]); $input = $request->all(); $good = new GoodInfo; $good->good_name = $input['good_name']; $good->cat_id = $input['cat_id']; $good->description = $input['description']; $good->pricemin = $input['pricemin']; $good->pricemax = $input['pricemax']; $good->type = $input['type']; $good->counts = $input['counts']; $good->good_tag = $input['good_tag']; $good->user_id = $request->session()->get('user_id'); $good->save(); $new_good = GoodInfo::orderby('id', 'dsc')->first(); Storage::put( 'good/titlepic/'.$new_good->id, file_get_contents($request->file('goodTitlePic')->getRealPath()) ); return Redirect::to('/good/add'); } } /** * @function GoodController@editGood * @input Request $request, $good_id * @return Redirect * @description Edit a specify good. */ public function editGood(Request $request, $good_id) { if($request->method() == "GET"){ $data = []; $data['cats'] = GoodCat::orderby('cat_name', 'asc')->get(); $data['goods'] = GoodInfo::where('id', $good_id)->get(); return view::make('good.editPage')->with($data); }else{ if(!$request->session()->has('user_id')) return Redirect::back(); $this->validate($request, [ 'good_name' => 'required', 'cat_id' => 'required', 'description' => 'required', 'pricemin' => 'required', 'pricemax' => 'required', 'type' => 'required', 'counts' => 'required', ]); $input = $request->all(); $good = GoodInfo::find($good_id); if($request->session()->get('user_id')!=$good->user_id && !$request->session()->has('is_admin')) return Redirect::back(); $good->good_name=$input['good_name']; $good->cat_id=$input['cat_id']; $good->description=$input['description']; $good->pricemin=$input['pricemin']; $good->pricemax=$input['pricemax']; $good->type=$input['type']; $good->counts=$input['counts']; $good->good_tag=$input['good_tag']; $good->update(); return Redirect::to('/good/'.$good_id.'/edit'); } } /** * @function GoodController@deleteGood * @input Request $request, $good_id * @return Redirect * @description Delete a specify good. */ public function deleteGood(Request $request, $good_id) { if(!$request->session()->has('user_id')) return Redirect::back(); $good = GoodInfo::find($good_id); if($request->session()->get('user_id')!=$good->user_id) return Redirect::back(); $good->delete(); return Redirect::to('/good'); } /* * @function quickAccess * @input $request (use query) * * @return Redirect or View * @description Process the query and redirect to * certain good or list */ public function quickAccess(Request $request) { $data = []; $input = $request->all(); $query = $input['query']; $data['cats'] = GoodCat::orderby('cat_name', 'asc')->get(); $data['goods'] = GoodInfo::where('good_name', 'like', "%$query%")->get(); if($request->session()->has('user_id')) $data['user_id'] = $request->session()->get('user_id'); else $data['user_id'] = NULL; if($request->session()->has('is_admin')) $data['is_admin'] = $request->session()->get('is_admin'); else $data['is_admin'] = NULL; return view::make('good.goodList')->with($data); } /* * @funtion addFavlist * @input $request (use query) * * @return Redirect or View * @description Process the query and add to certain * user's favorite list */ public function addFavlist(Request $request, $good_id) { if(!$request->session()->has('user_id')) return Redirect::back(); $fav = new FavList; $fav->user_id = $request->session()->get('user_id'); $fav->good_id = $good_id; $fav->save(); return Redirect::to('/good'); } public function getTitlePic(Request $request, $good_id) { $image = Storage::get('good/titlepic/'.$good_id); $response = Response::make($image); return $response; } }