From ca2da0d0ebb32cbab038d34e9b909d8db450d92d Mon Sep 17 00:00:00 2001 From: LI JIAHAO Date: Sun, 14 May 2017 19:39:13 +0800 Subject: [PATCH] fav_num and add, del fav test --- app/Http/Controllers/GoodController.php | 32 ++++++------------- app/Http/routes.php | 13 ++------ ...16_03_23_061239_create_good_info_table.php | 1 + resources/views/good/goodInfo.blade.php | 2 +- tests/GoodTest.php | 10 ++++++ 5 files changed, 24 insertions(+), 34 deletions(-) diff --git a/app/Http/Controllers/GoodController.php b/app/Http/Controllers/GoodController.php index fcfb870..337fd85 100644 --- a/app/Http/Controllers/GoodController.php +++ b/app/Http/Controllers/GoodController.php @@ -315,40 +315,26 @@ class GoodController extends Controller return view::make('good.goodList')->with($data); } - /* - * @funtion about Favlist - * @input $request (use query) $good_id -======= - * @funtion addFavlist - * @input $request (use query) ->>>>>>> Stashed changes - * - * @return Redirect or View - * @description Process the query and add good to certain user's - * favorite list or delete good from 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/'.$good_id); + $good = GoodInfo::find($good_id); + $good->fav_num++; + $good->save(); + return json_encode(['msg' => 'success']); } public function delFavlist(Request $request, $good_id) { - if(!$request->session()->has('user_id')) - return Redirect::back(); $user_id = $request->session()->get('user_id'); - $items = FavList::where('user_id', $user_id)->where('good_id', $good_id)->get(); - foreach($items as $item) $del_id = FavList::find($item->id); - $del_id->delete(); - return Redirect::to('/good/'.$good_id); + FavList::where('user_id', $user_id)->where('good_id', $good_id)->delete(); + $good = GoodInfo::find($good_id); + $good->fav_num--; + $good->save(); + return json_encode(['msg' => 'success']); } public function getSimpleTitlePic(Request $request, $good_id) diff --git a/app/Http/routes.php b/app/Http/routes.php index 2bdbde3..3a6948e 100644 --- a/app/Http/routes.php +++ b/app/Http/routes.php @@ -70,6 +70,9 @@ Route::group(['middleware' => ['web']],function () { Route::get('/good/{good_id}/titlepic', "GoodController@getSimpleTitlePic"); Route::get('/good/{good_id}/titlepic/{width}/{height}', "GoodController@getTitlePic"); + Route::post('/good/{good_id}/add_favlist', "GoodController@addFavlist")->middleware('auth'); + Route::delete('/good/{good_id}/del_favlist', "GoodController@delFavList")->middleware('auth'); + //------Above are tested function Route::get('/user/{user_id}/edit', [ @@ -130,16 +133,6 @@ Route::group(['middleware' => ['web']],function () { "middleware" => "auth" ]); - Route::get('/good/{good_id}/add_favlist', [ - "uses" => "GoodController@addFavlist", - "middleware" => "auth" - ]); - - Route::delete('/good/{good_id}/del_favlist', [ - "uses" => "GoodController@delFavList", - "middleware" => "auth" - ]); - Route::get('/good/{good_id}/check', [ "uses" => "AdminController@checkGood", "middleware" => "admin" diff --git a/database/migrations/2016_03_23_061239_create_good_info_table.php b/database/migrations/2016_03_23_061239_create_good_info_table.php index 3c14093..00e0aea 100644 --- a/database/migrations/2016_03_23_061239_create_good_info_table.php +++ b/database/migrations/2016_03_23_061239_create_good_info_table.php @@ -23,6 +23,7 @@ class CreateGoodInfoTable extends Migration $table->integer('count'); $table->boolean('baned'); $table->boolean('stared'); + $table->integer('fav_num')->default(0); $table->timestamps(); }); } diff --git a/resources/views/good/goodInfo.blade.php b/resources/views/good/goodInfo.blade.php index 58aa496..0ac3e6b 100644 --- a/resources/views/good/goodInfo.blade.php +++ b/resources/views/good/goodInfo.blade.php @@ -89,7 +89,7 @@ return ($(this).attr("name") + '=' + $(this).val()); }).get().join("&"); $.ajax({ - type: "GET", + type: "POST", url: "/good/{{ $good->id }}/add_favlist", data: str_data, success: function (msg) { diff --git a/tests/GoodTest.php b/tests/GoodTest.php index 5bad15f..1324a41 100644 --- a/tests/GoodTest.php +++ b/tests/GoodTest.php @@ -89,6 +89,15 @@ class GoodTest extends BrowserKitTestCase ->dontSee('修改'); } + public function testFavList() + { + $this->withSession(['user_id' => 1]) + ->post('/good/1/add_favlist') + ->see('success') + ->delete('/good/1/del_favlist') + ->see('success'); + } + public function testEditGood() { //test edit good @@ -170,4 +179,5 @@ class GoodTest extends BrowserKitTestCase ->visit('/good/1/edit') ->see('商品ID错误'); } + }