Jelajahi Sumber

新增活動、兌獎功能1.0完成

maa3444 2 tahun lalu
induk
melakukan
d959f16fff

+ 21 - 9
app/Http/Controllers/ActivityController.php

@@ -6,6 +6,7 @@ use App\Models\Activity;
 use App\Models\User;
 use App\Models\Recipients;
 use App\Models\Prize;
+use App\Models\CheckIn;
 use App\Http\Requests\StoreActivityRequest;
 use App\Http\Requests\UpdateActivityRequest;
 use App\Http\Controllers\Controller;
@@ -110,15 +111,24 @@ class ActivityController extends Controller
     public function claim(Request $request)
     {
         $prize = '';
+        $prize_id = 0;
         $isClaimed = false;
         $user_id = $request->user_id;
-        $user = User::where('user_id', '=', $user_id)->get()[0];
+        $activity_id = $request->activity_id;
+        $user = CheckIn::where('activity_id', '=', $activity_id)
+            ->where('user_id', '=', $user_id)->get()[0];
         if (Recipients::where('user_id', '=', $user_id)->exists()) {
-            $isRecipients = true;
             $recipients = Recipients::where('user_id', '=', $user_id)->get()[0];
             $prize_id = $recipients->prize_id;
-            $isClaimed = $recipients->is_claimed;
-            $prize = Prize::where('id', '=', $prize_id)->get()[0]->name;
+            //檢查prize_id是不是在activity_id底下
+            $aid = Prize::where('id', '=', $prize_id)->get()[0]->activity_id;
+            if($aid == $activity_id){
+                $isRecipients = true;
+                $isClaimed = $recipients->is_claimed;
+                $prize = Prize::where('id', '=', $prize_id)->get()[0]->name;
+            }else{
+                $isRecipients = false;
+            }
         } else {
             $isRecipients = false;
         }
@@ -128,6 +138,7 @@ class ActivityController extends Controller
             'isRecipients' => $isRecipients,
             'isClaimed' => $isClaimed,
             'prize' => $prize,
+            'prize_id' => $prize_id,
         ];
 
         return response($response, 201);
@@ -135,14 +146,15 @@ class ActivityController extends Controller
 
     public function isClaimed(UpdateActivityRequest $request)
     {
-        $recipient = Recipients::where('user_id', '=', $request->user_id)->get()[0];
+        //這邊要依照prize_id來判斷
+        $recipient = Recipients::where('prize_id', '=', $request->prize_id)
+        ->where('user_id', '=', $request->user_id)->get()[0];
         $recipient->is_claimed = true;
         $recipient->save();
         return $recipient;
     }
 
-    //TODO 目前只有匯入功能有加activity_id where
-
+    //TODO 這邊有兩種insert,要怎麼處理StoreRequest?
     public function uploadFile(Request $request)
     {
         $option = $request->option;
@@ -170,7 +182,7 @@ class ActivityController extends Controller
         $highestRow = $worksheet->getHighestDataRow();
         $activity_id = Activity::where('activity_name', '=', $request->activity_name)->first()->id;
 
-        if($option == 'prize'){
+        if ($option == 'prize') {
             DB::table('prizes')->where('activity_id', '=', $activity_id)->delete();
             date_default_timezone_set('Asia/Taipei');
             for ($row = 2; $row <= $highestRow; $row++) {
@@ -183,7 +195,7 @@ class ActivityController extends Controller
                     'updated_at' => date('Y-m-d H:i:s'),
                 ]);
             }
-        }else if($option == 'guest'){
+        } else if ($option == 'guest') {
             DB::table('check_ins')->where('region', '=', '來賓')->delete();
             date_default_timezone_set('Asia/Taipei');
             for ($row = 2; $row <= $highestRow; $row++) {

+ 5 - 1
app/Http/Requests/StorePrizeRequest.php

@@ -13,7 +13,7 @@ class StorePrizeRequest extends FormRequest
      */
     public function authorize()
     {
-        return false;
+        return true;
     }
 
     /**
@@ -25,6 +25,10 @@ class StorePrizeRequest extends FormRequest
     {
         return [
             //
+            'activity_id' => 'required',
+            'name' => 'required',
+            'provider' => 'required',
+            'count' => 'required',
         ];
     }
 }

+ 2 - 2
resources/js/src/views/Activities/ActivityPage.vue

@@ -4,10 +4,10 @@
             <b-button variant="success">報到</b-button>
         </div>
         <div class="col text-center mb-1">
-            <b-button variant="success" :to="{ name: 'draw', params: { 'activity': activity }  }">抽獎</b-button>
+            <b-button variant="success" :to="{ name: 'draw', params: { 'activity': activity } }">抽獎</b-button>
         </div>
         <div class="col text-center mb-1">
-            <b-button variant="success" :to="{ name: 'claim', params: { 'activity': activity }  }">兌獎</b-button>
+            <b-button variant="success" :to="{ name: 'claim', params: { 'activity': activity } }">兌獎</b-button>
         </div>
     </div>
 </template>

+ 3 - 1
resources/js/src/views/PrizeClaim.vue

@@ -75,6 +75,7 @@ export default {
             input: "",
             isRecipients: "",
             prize: "",
+            prize_id: "",
             isClaimed: false,
         }
     },
@@ -90,6 +91,7 @@ export default {
                     this.user = response.data.user;
                     this.isRecipients = response.data.isRecipients;
                     this.prize = response.data.prize;
+                    this.prize_id = response.data.prize_id;
                     this.isClaimed = response.data.isClaimed;
                     if (!this.isRecipients) {
                         this.$refs['false-modal'].toggle();
@@ -107,7 +109,7 @@ export default {
             }
         },
         handleOK() {
-            useJwt.postData('/api/activity/isClaimed', { 'user_id': this.user.user_id }).then(response => {
+            useJwt.postData('/api/activity/isClaimed', { 'user_id': this.user.user_id, 'prize_id': this.prize_id }).then(response => {
                 console.log(response.data);
                 this.$refs['confirm-modal'].toggle();
             }).catch(error => {