CheckInController.php 3.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126
  1. <?php
  2. namespace App\Http\Controllers;
  3. use App\Models\CheckIn;
  4. use App\Models\User;
  5. use Illuminate\Http\Request;
  6. use App\Http\Requests\StoreCheckInRequest;
  7. use App\Http\Requests\UpdateCheckInRequest;
  8. use App\Models\Department;
  9. class CheckInController extends Controller
  10. {
  11. /**
  12. * Display a listing of the resource.
  13. *
  14. * @return \Illuminate\Http\Response
  15. */
  16. public function index()
  17. {
  18. //
  19. }
  20. public function index_by_activity(Request $request)
  21. {
  22. $user = CheckIn::where('activity_id', $request->activityId)->pluck('name', 'user_id');
  23. return $user;
  24. }
  25. public function draw_user_when_check_in(StoreCheckInRequest $request)
  26. {
  27. return CheckIn::where('is_checked_in', 'true')->get()->random($request->number);
  28. }
  29. public function draw_user_by_region(StoreCheckInRequest $request)
  30. {
  31. return CheckIn::where('is_checked_in', 'true')
  32. ->whereTime('check_ins.updated_at', '<=', $request->deadline)
  33. ->whereIn('region', $request->region)
  34. ->get()
  35. ->random($request->number);
  36. }
  37. /**
  38. * Show the form for creating a new resource.
  39. *
  40. * @return \Illuminate\Http\Response
  41. */
  42. public function create()
  43. {
  44. //
  45. }
  46. /**
  47. * Store a newly created resource in storage.
  48. *
  49. * @param \App\Http\Requests\StoreCheckInRequest $request
  50. * @return \Illuminate\Http\Response
  51. */
  52. public function store(StoreCheckInRequest $request)
  53. {
  54. //
  55. }
  56. /**
  57. * Display the specified resource.
  58. *
  59. * @param \App\Models\CheckIn $checkIn
  60. * @return \Illuminate\Http\Response
  61. */
  62. public function show(Request $request, CheckIn $checkIn)
  63. {
  64. //
  65. $checkIn = $request->activity_id ?
  66. CheckIn::where('user_id', '=', $request->user_id)->where('activity_id', '=', $request->activity_id)->first()
  67. : CheckIn::where('user_id', '=', $request->user_id)->first();
  68. $department = Department::where('department_id', '=', $checkIn->department_id)->first();
  69. $checkIn->department = $department->department_name ?? '暫無部門';
  70. $response = [
  71. 'user' => $checkIn,
  72. ];
  73. return response($response, 201);
  74. }
  75. /**
  76. * Show the form for editing the specified resource.
  77. *
  78. * @param \App\Models\CheckIn $checkIn
  79. * @return \Illuminate\Http\Response
  80. */
  81. public function edit(CheckIn $checkIn)
  82. {
  83. //
  84. }
  85. /**
  86. * Update the specified resource in storage.
  87. *
  88. * @param \App\Http\Requests\UpdateCheckInRequest $request
  89. * @param \App\Models\CheckIn $checkIn
  90. * @return \Illuminate\Http\Response
  91. */
  92. public function update(UpdateCheckInRequest $request, CheckIn $checkIn)
  93. {
  94. CheckIn::where('user_id', $request->user_id)->update(['is_checked_in' => true]);
  95. return 'success';
  96. }
  97. public function check_out(UpdateCheckInRequest $request, CheckIn $checkIn)
  98. {
  99. CheckIn::where('user_id', $request->user_id)->update(['is_checked_in' => false]);
  100. return 'success';
  101. }
  102. /**
  103. * Remove the specified resource from storage.
  104. *
  105. * @param \App\Models\CheckIn $checkIn
  106. * @return \Illuminate\Http\Response
  107. */
  108. public function destroy(CheckIn $checkIn)
  109. {
  110. //
  111. }
  112. }