RecipientsController.php 5.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178
  1. <?php
  2. namespace App\Http\Controllers;
  3. use App\Models\Recipients;
  4. use App\Models\Prize;
  5. use App\Models\CheckIn;
  6. use App\Models\User;
  7. use App\Models\Department;
  8. use App\Http\Requests\StoreRecipientsRequest;
  9. use App\Http\Requests\UpdateRecipientsRequest;
  10. use Illuminate\Http\Request;
  11. class RecipientsController extends Controller
  12. {
  13. /**
  14. * Display a listing of the resource.
  15. *
  16. * @return \Illuminate\Http\Response
  17. */
  18. public function index()
  19. {
  20. return Recipients::all();
  21. }
  22. public function index_by_activity(UpdateRecipientsRequest $request)
  23. {
  24. return Recipients::join('prizes', 'recipients.prize_id', '=', 'prizes.id')
  25. ->select('user_id', 'prizes.activity_id', 'prize_id', 'recipients.created_at')
  26. ->where('prizes.activity_id', $request->activityId)
  27. ->orderBy('recipients.created_at', 'DESC')
  28. ->get();
  29. }
  30. /**
  31. * Show the form for creating a new resource.
  32. *
  33. * @return \Illuminate\Http\Response
  34. */
  35. public function create()
  36. {
  37. //
  38. }
  39. /**
  40. * Store a newly created resource in storage.
  41. *
  42. * @param \App\Http\Requests\StoreRecipientsRequest $request
  43. * @return \Illuminate\Http\Response
  44. */
  45. public function store(StoreRecipientsRequest $request)
  46. {
  47. Recipients::insert([
  48. 'prize_id' => $request->prizeId,
  49. 'user_id' => $request->userId,
  50. 'is_claimed' => false,
  51. 'created_at' => now(),
  52. 'updated_at' => now(),
  53. ]);
  54. return 'success';
  55. }
  56. public function store_patch(StoreRecipientsRequest $request)
  57. {
  58. $data = [];
  59. foreach ($request->userIdList as $userId) {
  60. array_push($data, [
  61. 'prize_id' => $request->prizeId,
  62. 'user_id' => $userId,
  63. 'is_claimed' => false,
  64. 'created_at' => now(),
  65. 'updated_at' => now(),
  66. ]);
  67. }
  68. Recipients::insert($data);
  69. return 'success';
  70. }
  71. /**
  72. * Display the specified resource.
  73. *
  74. * @param \App\Models\Recipients $recipients
  75. * @return \Illuminate\Http\Response
  76. */
  77. public function show(Recipients $recipients)
  78. {
  79. //
  80. }
  81. /**
  82. * Show the form for editing the specified resource.
  83. *
  84. * @param \App\Models\Recipients $recipients
  85. * @return \Illuminate\Http\Response
  86. */
  87. public function edit(Recipients $recipients)
  88. {
  89. //
  90. }
  91. /**
  92. * Update the specified resource in storage.
  93. *
  94. * @param \App\Http\Requests\UpdateRecipientsRequest $request
  95. * @param \App\Models\Recipients $recipients
  96. * @return \Illuminate\Http\Response
  97. */
  98. public function update(UpdateRecipientsRequest $request, Recipients $recipients)
  99. {
  100. Recipients::where('user_id', $request->userId)->update(['prize_id' => $request->prizeId]);
  101. return 'success';
  102. }
  103. /**
  104. * Remove the specified resource from storage.
  105. *
  106. * @param \App\Models\Recipients $recipients
  107. * @return \Illuminate\Http\Response
  108. */
  109. public function destroy(Recipients $recipients)
  110. {
  111. //
  112. }
  113. public function claim(Request $request)
  114. {
  115. $prize = '';
  116. $prize_id = 0;
  117. $isClaimed = false;
  118. $user_id = $request->user_id;
  119. $activity_id = $request->activity_id;
  120. $user = CheckIn::where('activity_id', '=', $activity_id)
  121. ->where('user_id', '=', $user_id)->get()[0];
  122. $department_id = CheckIn::where('user_id', '=', $user_id)->get()[0]->department_id;
  123. if($department_id != '空'){
  124. $department_name = Department::where('department_id', '=', $department_id)->get()[0]->department_name;
  125. }else{
  126. $department_name = '空';
  127. }
  128. if (Recipients::where('user_id', '=', $user_id)->exists()) {
  129. $recipients = Recipients::where('user_id', '=', $user_id)->get()[0];
  130. $prize_id = $recipients->prize_id;
  131. //因為重新匯入後prize_id在prize下面有改動,但是在recipients下面沒有改動,因此會有問題產生
  132. //檢查prize_id是不是在activity_id底下
  133. $aid = Prize::where('id', '=', $prize_id)->get()[0]->activity_id;
  134. if ($aid == $activity_id) {
  135. $isRecipients = true;
  136. $isClaimed = $recipients->is_claimed;
  137. $prize = Prize::where('id', '=', $prize_id)->get()[0]->name;
  138. } else {
  139. $isRecipients = false;
  140. }
  141. } else {
  142. $isRecipients = false;
  143. }
  144. $response = [
  145. 'user' => $user,
  146. 'isRecipients' => $isRecipients,
  147. 'isClaimed' => $isClaimed,
  148. 'prize' => $prize,
  149. 'prize_id' => $prize_id,
  150. 'department_name' => $department_name,
  151. ];
  152. return response($response, 201);
  153. }
  154. public function isClaimed(UpdateRecipientsRequest $request)
  155. {
  156. $recipient = Recipients::where('prize_id', '=', $request->prize_id)
  157. ->where('user_id', '=', $request->user_id)->get()[0];
  158. $recipient->is_claimed = true;
  159. $recipient->save();
  160. return $recipient;
  161. }
  162. }