From 9cc7e87a8498d8b51aac3b9f450b0b1760ce61de Mon Sep 17 00:00:00 2001 From: David <davidkwan95@gmail.com> Date: Tue, 17 May 2016 00:44:44 +0700 Subject: [PATCH] Add recommended feature --- .../Http/Controllers/VendorUserController.php | 21 +++++++++++- IES-Bandung/app/Http/routes.php | 1 + IES-Bandung/app/Model/Recommendation.php | 30 +++++++++++++++++ .../2016_05_16_164123_recommendation.php | 32 +++++++++++++++++++ .../resources/views/vendorUser.blade.php | 6 +++- 5 files changed, 88 insertions(+), 2 deletions(-) create mode 100644 IES-Bandung/app/Model/Recommendation.php create mode 100644 IES-Bandung/database/migrations/2016_05_16_164123_recommendation.php diff --git a/IES-Bandung/app/Http/Controllers/VendorUserController.php b/IES-Bandung/app/Http/Controllers/VendorUserController.php index 5303236..32a7800 100644 --- a/IES-Bandung/app/Http/Controllers/VendorUserController.php +++ b/IES-Bandung/app/Http/Controllers/VendorUserController.php @@ -9,6 +9,7 @@ use App\User; use App\Model\VendorUser; use App\Model\VendorRateAndReview; use App\Model\ObjectSell; +use App\Model\Recommendation; use Auth; class VendorUserController extends Controller @@ -27,12 +28,30 @@ class VendorUserController extends Controller if(is_null($rating)) $rating = -1; + $loggedInUserId = Auth::user()['id']; + $recommended = count(Recommendation::getRecommendation($loggedInUserId, $vendorId))>0; + return view('vendorUser', [ 'editable' => $editable, 'user' => $user, 'rating' => $rating, 'objects' => $objects, - 'updatedObjects' => $updatedObjects]); + 'updatedObjects' => $updatedObjects, + 'userId' => $loggedInUserId, + 'vendorId' => $vendorId, + 'recommended' => $recommended]); + } + + public function recommend(Request $request){ + $userId = Auth::user()["id"]; + $vendorId = $request["vendorId"]; + Recommendation::addRecommendation($userId, $vendorId); + $vendorUsername = VendorUser:: + join('users', 'users.id', '=', 'vendor_users.user_id')-> + where('vendor_users.id', '=', $vendorId) + ->select('users.username') + ->first()["username"]; + return redirect('/profile/'.$vendorUsername); } public function showProfile($username){ diff --git a/IES-Bandung/app/Http/routes.php b/IES-Bandung/app/Http/routes.php index c8dcc48..7173042 100755 --- a/IES-Bandung/app/Http/routes.php +++ b/IES-Bandung/app/Http/routes.php @@ -24,6 +24,7 @@ Route::get('/home', 'HomeController@index'); Route::get('/profile', 'ProfileController@index'); Route::get('/profile/{username}', ['uses' => 'ProfileController@showProfile']); Route::post('/profile/edit', ['uses' => 'ProfileController@editProfile']); +Route::post('/profile/recommend', ['uses' => 'VendorUserController@recommend']); // Vendor's object sell Route::post('/item/add', 'ObjectSellController@createObjectSell'); diff --git a/IES-Bandung/app/Model/Recommendation.php b/IES-Bandung/app/Model/Recommendation.php new file mode 100644 index 0000000..3c28208 --- /dev/null +++ b/IES-Bandung/app/Model/Recommendation.php @@ -0,0 +1,30 @@ +<?php + +namespace App\Model; + +use Illuminate\Database\Eloquent\Model; +use App\User; + +class Recommendation extends Model +{ + protected $table = 'recommendation'; + + public static function getRecommendation($userId, $vendorId) { + return Recommendation:: + where('user_id', '=', $userId) + ->where('vendor_id', '=', $vendorId) + ->first(); + } + + public static function addRecommendation($userId, $vendorId) { + if(count(Recommendation::getRecommendation($userId, $vendorId)) > 0) + return; + + $model = new Recommendation; + $model->user_id = $userId; + $model->vendor_id = $vendorId; + $model->save(); + return $model; + } + +} diff --git a/IES-Bandung/database/migrations/2016_05_16_164123_recommendation.php b/IES-Bandung/database/migrations/2016_05_16_164123_recommendation.php new file mode 100644 index 0000000..47525a8 --- /dev/null +++ b/IES-Bandung/database/migrations/2016_05_16_164123_recommendation.php @@ -0,0 +1,32 @@ +<?php + +use Illuminate\Database\Schema\Blueprint; +use Illuminate\Database\Migrations\Migration; + +class Recommendation extends Migration +{ + /** + * Run the migrations. + * + * @return void + */ + public function up() + { + Schema::create('recommendation', function (Blueprint $table) { + $table->increments('id'); + $table->integer('user_id'); + $table->integer('vendor_id'); + $table->timestamps(); + }); + } + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + // + } +} diff --git a/IES-Bandung/resources/views/vendorUser.blade.php b/IES-Bandung/resources/views/vendorUser.blade.php index 85d3887..1a0e2e1 100755 --- a/IES-Bandung/resources/views/vendorUser.blade.php +++ b/IES-Bandung/resources/views/vendorUser.blade.php @@ -67,7 +67,11 @@ <div class="pull-right text-right"> <button class="btn btn-sm inline m-t-lg m-r-sm btn-default"><i class="m-r-xs fa fa-envelope"></i>Message</button> - <button class="btn btn-sm inline m-t-lg btn-warning "><i class="m-r-xs fa fa-star"></i>Rekomendasikan</button> + <form style="margin:0; padding:0; display:inline" action="recommend" method="post"> + {{ csrf_field() }} + <input type="hidden" name="vendorId" value="{{$vendorId}}"> + <button class="btn btn-sm inline m-t-lg {{ $recommended?"btn-warning":"btn-default" }}"><i class="m-r-xs fa fa-star"></i>Rekomendasikan</button> + </form> </div> </div> </div> -- GitLab