ActiveController.php 2.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980
  1. <?php
  2. namespace App\Http\Controllers\Home;
  3. use Auth;
  4. use App\Models\User;
  5. use App\Models\Active;
  6. use App\Models\ActivesUser;
  7. use App\Http\Controllers\Home\BaseController;
  8. class ActiveController extends BaseController
  9. {
  10. /* 视图文件相对路径 */
  11. protected $view = 'home.active';
  12. protected $view_det = 'home.active_detail';
  13. public function __construct(Active $active, ActivesUser $activesUser)
  14. {
  15. $this->active = $active;
  16. $this->activesUser = $activesUser;
  17. parent::__construct();
  18. }
  19. // 活动报名列表页面
  20. public function showActive()
  21. {
  22. return $this->showSecondMenuView('act', $this->view, $this->active, $this->activesUser);
  23. }
  24. public function showActiveThirdMenu($view, $href1, $href2, $id)
  25. {
  26. $active = Active::findOrFail($id);
  27. return $this->showThirdMenuView($view, $href1, $href2, $active, $this->activesUser);
  28. }
  29. // 活动详情页面
  30. public function showActiveDetail($href1, $href2, $id)
  31. {
  32. return $this->showActiveThirdMenu($this->view_det, $href1, $href2, $id);
  33. }
  34. // 活动报名页面
  35. public function activeRegister($id)
  36. {
  37. if ( !Auth::check() ) {
  38. return redirect()->route('login');
  39. }
  40. $uid = Auth::user()->id;
  41. $if_reg = ActivesUser::where('aid', $id)
  42. ->where('uid', $uid)
  43. ->count();
  44. if ($if_reg) {
  45. return redirect()->back()->with('error', '请勿重复报名!');
  46. }
  47. $active = Active::find($id);
  48. if (!$active) {
  49. return redirect()->back()->with('error', '找不到该活动');
  50. }
  51. $active_user_num = ActivesUser::where('aid', $id)
  52. ->count();
  53. if ( $active->user_num && ($active_user_num == $active->user_num) ) {
  54. return redirect()->back()->with('error', '非常抱歉!报名人数已满!');
  55. }
  56. ActivesUser::create([
  57. 'aid' => $id,
  58. 'uid' => $uid
  59. ]);
  60. return redirect()->back()->with('success', '恭喜您报名成功!');
  61. }
  62. }