ソースを参照

Merge branch 'master' into kevin

maa3606 2 年 前
コミット
825df3e3d7

+ 10 - 3
app/Http/Controllers/API/UserController.php

@@ -6,6 +6,7 @@ use App\Http\Controllers\Controller;
 use Illuminate\Http\Request;
 use Illuminate\Support\Facades\DB;
 use App\Models\User;
+use App\Models\Department;
 
 class UserController extends Controller
 {
@@ -48,10 +49,16 @@ class UserController extends Controller
      * @param  int  $id
      * @return \Illuminate\Http\Response
      */
-    public function show($id)
+    public function show(Request $request,User $user)
     {
-        $results = DB::select('SELECT * FROM [permissions].[dbo].[User] WHERE [UserID] = ?', array($id));
-        return json_encode($results, JSON_UNESCAPED_UNICODE);
+        $user = User::where('user_id', '=', $request->id)->get()[0];
+        $department = Department::where('department_id','=',$user->department_id)->get()[0];
+        $use->department = $department;
+        $response = [
+            'user' => $user,
+        ];
+
+        return response($response, 201);
     }
 
     /**

+ 3 - 3
app/Models/Department.php

@@ -10,8 +10,8 @@ class Department extends Model
     use HasFactory;
 
     protected $fillable = [
-        'DepartmentID',
-        'DepartmentName',
-        'Manager',
+        'department_id',
+        'department_name',
+        'manager',
     ];
 }

+ 108 - 108
database/MAA_department.json

@@ -1,182 +1,182 @@
 [
   {
-    "DepartmentID": "a00",
-    "DepartmentName": "行政管理部",
-    "Manager": "a00"
+    "department_id": "a00",
+    "departmen_name": "行政管理部",
+    "manager": "a00"
   },
   {
-    "DepartmentID": "a21",
-    "DepartmentName": "行政管理部庶務科",
-    "Manager": "a21"
+    "department_id": "a21",
+    "departmen_name": "行政管理部庶務科",
+    "manager": "a21"
   },
   {
-    "DepartmentID": "a22",
-    "DepartmentName": "人力資源科",
-    "Manager": "a22"
+    "department_id": "a22",
+    "departmen_name": "人力資源科",
+    "manager": "a22"
   },
   {
-    "DepartmentID": "a24",
-    "DepartmentName": "行政管理部文書科",
-    "Manager": "a24"
+    "department_id": "a24",
+    "departmen_name": "行政管理部文書科",
+    "manager": "a24"
   },
   {
-    "DepartmentID": "b00",
-    "DepartmentName": "南區辦事處",
-    "Manager": "b00"
+    "department_id": "b00",
+    "departmen_name": "南區辦事處",
+    "manager": "b00"
   },
   {
-    "DepartmentID": "b10",
-    "DepartmentName": "中區辦事處",
-    "Manager": "b10"
+    "department_id": "b10",
+    "departmen_name": "中區辦事處",
+    "manager": "b10"
   },
   {
-    "DepartmentID": "c00",
-    "DepartmentName": "工程管理一部",
-    "Manager": "c00"
+    "department_id": "c00",
+    "departmen_name": "工程管理一部",
+    "manager": "c00"
   },
   {
-    "DepartmentID": "c10",
-    "DepartmentName": "工程管理二部",
-    "Manager": "c10"
+    "department_id": "c10",
+    "departmen_name": "工程管理二部",
+    "manager": "c10"
   },
   {
-    "DepartmentID": "d00",
-    "DepartmentName": "發展與企畫部",
-    "Manager": "d00"
+    "department_id": "d00",
+    "departmen_name": "發展與企畫部",
+    "manager": "d00"
   },
   {
-    "DepartmentID": "e10",
-    "DepartmentName": "工程製圖科",
-    "Manager": "e10"
+    "department_id": "e10",
+    "departmen_name": "工程製圖科",
+    "manager": "e10"
   },
   {
-    "DepartmentID": "f10",
-    "DepartmentName": "工務部",
-    "Manager": "f10"
+    "department_id": "f10",
+    "departmen_name": "工務部",
+    "manager": "f10"
   },
   {
-    "DepartmentID": "g00",
-    "DepartmentName": "大地工程部",
-    "Manager": "g00"
+    "department_id": "g00",
+    "departmen_name": "大地工程部",
+    "manager": "g00"
   },
   {
-    "DepartmentID": "i00",
-    "DepartmentName": "財務部",
-    "Manager": "i00"
+    "department_id": "i00",
+    "departmen_name": "財務部",
+    "manager": "i00"
   },
   {
-    "DepartmentID": "j00",
-    "DepartmentName": "運輸及土木工程部",
-    "Manager": "j00"
+    "department_id": "j00",
+    "departmen_name": "運輸及土木工程部",
+    "manager": "j00"
   },
   {
-    "DepartmentID": "j10",
-    "DepartmentName": "城鄉發展部",
-    "Manager": "j10"
+    "department_id": "j10",
+    "departmen_name": "城鄉發展部",
+    "manager": "j10"
   },
   {
-    "DepartmentID": "j20",
-    "DepartmentName": "軌道工程部",
-    "Manager": "j20"
+    "department_id": "j20",
+    "departmen_name": "軌道工程部",
+    "manager": "j20"
   },
   {
-    "DepartmentID": "l00",
-    "DepartmentName": "董事長室",
-    "Manager": "l00"
+    "department_id": "l00",
+    "departmen_name": "董事長室",
+    "manager": "l00"
   },
   {
-    "DepartmentID": "l10",
-    "DepartmentName": "總經理室",
-    "Manager": "l10"
+    "department_id": "l10",
+    "departmen_name": "總經理室",
+    "manager": "l10"
   },
   {
-    "DepartmentID": "l40",
-    "DepartmentName": "企業發展中心",
-    "Manager": "l40"
+    "department_id": "l40",
+    "departmen_name": "企業發展中心",
+    "manager": "l40"
   },
   {
-    "DepartmentID": "l60",
-    "DepartmentName": "成本中心",
-    "Manager": "l60"
+    "department_id": "l60",
+    "departmen_name": "成本中心",
+    "manager": "l60"
   },
   {
-    "DepartmentID": "m00",
-    "DepartmentName": "資訊中心",
-    "Manager": "m00"
+    "department_id": "m00",
+    "departmen_name": "資訊中心",
+    "manager": "m00"
   },
   {
-    "DepartmentID": "p00",
-    "DepartmentName": "環境及水資源工程部",
-    "Manager": "p00"
+    "department_id": "p00",
+    "departmen_name": "環境及水資源工程部",
+    "manager": "p00"
   },
   {
-    "DepartmentID": "p10",
-    "DepartmentName": "環境水務部",
-    "Manager": "p10"
+    "department_id": "p10",
+    "departmen_name": "環境水務部",
+    "manager": "p10"
   },
   {
-    "DepartmentID": "p20",
-    "DepartmentName": "環境永續部",
-    "Manager": "p20"
+    "department_id": "p20",
+    "departmen_name": "環境永續部",
+    "manager": "p20"
   },
   {
-    "DepartmentID": "r00",
-    "DepartmentName": "機電系統工程部",
-    "Manager": "r00"
+    "department_id": "r00",
+    "departmen_name": "機電系統工程部",
+    "manager": "r00"
   },
   {
-    "DepartmentID": "s00",
-    "DepartmentName": "結構工程部",
-    "Manager": "s00"
+    "department_id": "s00",
+    "departmen_name": "結構工程部",
+    "manager": "s00"
   },
   {
-    "DepartmentID": "u20",
-    "DepartmentName": "工程設計群",
-    "Manager": "u20"
+    "department_id": "u20",
+    "departmen_name": "工程設計群",
+    "manager": "u20"
   },
   {
-    "DepartmentID": "u30",
-    "DepartmentName": "工程監理群",
-    "Manager": "u30"
+    "department_id": "u30",
+    "departmen_name": "工程監理群",
+    "manager": "u30"
   },
   {
-    "DepartmentID": "u40",
-    "DepartmentName": "總管理處",
-    "Manager": "u40"
+    "department_id": "u40",
+    "departmen_name": "總管理處",
+    "manager": "u40"
   },
   {
-    "DepartmentID": "u50",
-    "DepartmentName": "建築及設施群",
-    "Manager": "u50"
+    "department_id": "u50",
+    "departmen_name": "建築及設施群",
+    "manager": "u50"
   },
   {
-    "DepartmentID": "x05",
-    "DepartmentName": "數位工程發展部",
-    "Manager": "x05"
+    "department_id": "x05",
+    "departmen_name": "數位工程發展部",
+    "manager": "x05"
   },
   {
-    "DepartmentID": "x06",
-    "DepartmentName": "淡海輕軌計畫監造專案",
-    "Manager": "x06"
+    "department_id": "x06",
+    "departmen_name": "淡海輕軌計畫監造專案",
+    "manager": "x06"
   },
   {
-    "DepartmentID": "x08",
-    "DepartmentName": "安坑輕軌計畫監造專案",
-    "Manager": "x08"
+    "department_id": "x08",
+    "departmen_name": "安坑輕軌計畫監造專案",
+    "manager": "x08"
   },
   {
-    "DepartmentID": "x09",
-    "DepartmentName": "先進技術中心",
-    "Manager": "x09"
+    "department_id": "x09",
+    "departmen_name": "先進技術中心",
+    "manager": "x09"
   },
   {
-    "DepartmentID": "x10",
-    "DepartmentName": "塭仔圳市地重劃公共工程專案管理與監造專案",
-    "Manager": "x10"
+    "department_id": "x10",
+    "departmen_name": "塭仔圳市地重劃公共工程專案管理與監造專案",
+    "manager": "x10"
   },
   {
-    "DepartmentID": "x12",
-    "DepartmentName": "萬大果菜市場專案",
-    "Manager": "x12"
+    "department_id": "x12",
+    "departmen_name": "萬大果菜市場專案",
+    "manager": "x12"
   }
 ]

+ 3 - 3
database/migrations/2023_02_09_055743_create_departments_table.php

@@ -15,9 +15,9 @@ return new class extends Migration
     {
         Schema::create('departments', function (Blueprint $table) {
             $table->id();
-            $table->string('DepartmentID');
-            $table->string('DepartmentName');
-            $table->string('Manager');
+            $table->string('department_id');
+            $table->string('department_name');
+            $table->string('manager');
         });
     }
 

+ 3 - 3
database/seeders/DepartmentSeeder.php

@@ -22,9 +22,9 @@ class DepartmentSeeder extends Seeder
 
         foreach ($countries as $key => $value) {
             Department::insert([
-                'DepartmentID' => $value->DepartmentID,
-                'DepartmentName' => $value->DepartmentName,
-                'Manager' => $value->Manager,
+                'department_id' => $value->department_id,
+                'department_name' => $value->department_name,
+                'manager' => $value->manager,
             ]);
         }
     }

+ 18 - 6
resources/js/src/navigation/vertical/index.js

@@ -7,12 +7,24 @@ export default [{
         icon: 'HomeIcon',
     },
     {
-        header: '抽獎系統',
-    },
-    {
-        title: '活動列表',
-        route: 'activityList',
-        icon: 'ActivityIcon',
+        title: '活動抽獎系統',
+        icon: 'AwardIcon',
+        children: [{
+                title: '報到系統',
+                route: 'checkin',
+                icon: 'CheckSquareIcon',
+            },
+            {
+                title: '抽獎',
+                route: 'draw',
+                icon: 'UploadIcon',
+            },
+            {
+                title: '活動列表',
+                route: 'activityList',
+                icon: 'ActivityIcon',
+            }
+        ]
     },
     {
         header: '管理功能',

+ 14 - 0
resources/js/src/router/config.js

@@ -145,6 +145,20 @@ export const settings = {
                 }, ],
             },
         },
+        {
+            path: '/checkin',
+            name: 'checkin',
+            component: () => import('@/views/lottery/CheckIn.vue'),
+            meta: {
+                pageTitle: '報到系統',
+                breadcrumb: [{
+                    text: '報到系統',
+                    active: true,
+                }, ],
+                requiresAuth: true,
+
+            },
+        },
     ],
 }
 export const _ = undefined

+ 124 - 0
resources/js/src/views/lottery/CheckIn.vue

@@ -0,0 +1,124 @@
+<template>
+  <div>
+    <b-card title="報到人員">
+      <b-media no-body>
+        <b-media-aside>
+          <b-img
+            :src="'/images/profile-picture/' + user.user_id + '.jpg'"
+            blank-color="#ccc"
+            fluid
+            alt="placeholder"
+            style="width:300px;"
+            onerror="this.src='/images/error.png'" />
+        </b-media-aside>
+
+        <b-media-body class="ml-1">
+          <h5 class="mt-0">
+            姓名
+          </h5>
+          <b-card-text>
+            {{ user.name }}
+          </b-card-text>
+          <h5 class="mt-0">
+            工號
+          </h5>
+          <b-card-text>
+            {{ user.user_id }}
+          </b-card-text>
+          <h5 class="mt-0">
+            部門
+          </h5>
+          <b-card-text>
+            {{ user.department_id }}
+          </b-card-text>
+
+        </b-media-body>
+      </b-media>
+
+    </b-card>
+    <b-card title="報到人員">
+      <b-form-input v-model="input" @keydown.native="test_keydown_handler"></b-form-input>
+    </b-card>
+
+  </div>
+</template>
+<script>
+import { BCard, BCardText, BButton, BMedia, BFormInput, BImg, BMediaAside, BMediaBody } from 'bootstrap-vue'
+import Pusher from 'pusher-js';
+import useJwt from '@/auth/jwt/useJwt'
+import { Html5QrcodeScanner } from "html5-qrcode"
+import { Html5Qrcode } from "html5-qrcode"
+
+export default {
+  name: "websocket",
+  components: {
+    BCard,
+    BCardText,
+    BButton,
+    BMedia,
+    BFormInput,
+    BImg,
+    BMediaAside,
+    BMediaBody,
+  },
+  data() {
+    return {
+      user: {},
+      scannerText: "",
+      input: "",
+    }
+  },
+  created() {
+
+
+    Pusher.logToConsole = true;
+
+    var pusher = new Pusher('9fb7f6f0141efc7e1293', {
+      cluster: 'ap3'
+    });
+
+    var channel = pusher.subscribe('my-channel');
+    channel.bind('my-event', data => {
+      useJwt.postData('/api/user/show', { 'id': data.message }).then(response => {
+        this.user = response.data.user;
+      }).catch(error => {
+        console.log(error)
+        this.user = {};
+      });
+    });
+
+
+  },
+  computed: {
+
+  },
+  methods: {
+    test_keydown_handler(event) {
+      if (event.which === 13) {
+        // The key pressed was the enter key
+
+        console.log(this.input)
+        
+        useJwt.postData('/api/user/show', { 'id': this.input }).then(response => {
+          this.user = response.data.user;
+          this.input = "";
+        }).catch(error => {
+          console.log(error)
+          this.user = {};
+        });
+      }
+    }
+  },
+  watch: {
+    
+  },
+  mounted() {
+
+  }
+}
+
+</script>
+
+<style>
+
+</style>

+ 2 - 0
routes/api.php

@@ -107,6 +107,8 @@ Route::middleware(['auth:sanctum', 'abilities:Admin'])->group(function () {
 
     // Recipients
     Route::post('/recipients/store', [RecipientsController::class, 'store']);
+
+    Route::post('/user/show', [UserController::class, 'show']);
 });
 Route::post('/user/index', [UserController::class, 'index']);
 Route::post('/prize/index', [PrizeController::class, 'index']);