コード例 #1
0
 /**
  * Store a newly created resource in storage.
  *
  * @param  Request  $request
  * @return Response
  */
 public function answer(Request $request)
 {
     $validator = Validator::make($request->all(), ['question_id' => 'required|exists:competition_questions,id', 'group_user_id' => 'required|exists:competition_group_users,id', 'answer1' => 'unique:competition_group_answers,answer', 'answer_mm1' => 'unique:competition_group_answers,answer_mm', 'answer2' => 'unique:competition_group_answers,answer', 'answer_mm2' => 'unique:competition_group_answers,answer_mm', 'answer3' => 'unique:competition_group_answers,answer', 'answer_mm3' => 'unique:competition_group_answers,answer_mm']);
     if ($validator->fails()) {
         if ($validator->errors()->has('question_id')) {
             return response()->json($validator->errors()->first('question_id'), 400);
         }
         if ($validator->errors()->has('group_user_id')) {
             return response()->json($validator->errors()->first('group_user_id'), 400);
         }
     }
     if ($request->answer1 || $request->answer_mm1) {
         $checkExisted = CompetitionAnswer::where('id', $request->answer1_id)->first();
         if (!$checkExisted) {
             $competition_answer = new CompetitionAnswer();
             $competition_answer->question_id = $request->question_id;
             $competition_answer->competition_group_user_id = $request->group_user_id;
             $competition_answer->answer = $request->answer1;
             $competition_answer->answer_mm = $request->answer_mm1;
             $competition_answer->save();
         }
     }
     if ($request->answer2 || $request->answer_mm2) {
         $checkExisted = CompetitionAnswer::where('id', $request->answer2_id)->first();
         if (!$checkExisted) {
             $competition_answer = new CompetitionAnswer();
             $competition_answer->question_id = $request->question_id;
             $competition_answer->competition_group_user_id = $request->group_user_id;
             $competition_answer->answer = $request->answer2;
             $competition_answer->answer_mm = $request->answer_mm2;
             $competition_answer->save();
         }
     }
     if ($request->answer3 || $request->answer_mm3) {
         $checkExisted = CompetitionAnswer::where('id', $request->answer3_id)->first();
         if (!$checkExisted) {
             $competition_answer = new CompetitionAnswer();
             $competition_answer->question_id = $request->question_id;
             $competition_answer->competition_group_user_id = $request->group_user_id;
             $competition_answer->answer = $request->answer3;
             $competition_answer->answer_mm = $request->answer_mm3;
             $competition_answer->save();
         }
     }
     // Updating for Submit Anwser;
     $group_name = CompetitionGroupUser::where('id', $request->group_user_id)->pluck('group_name');
     $competition_groups = CompetitionGroupUser::where('group_name', $group_name)->where('competition_question_id', $request->question_id)->lists('id');
     if (count($competition_groups) > 0) {
         $competition_anwsers = CompetitionAnswer::where('question_id', $request->question_id)->wherein('competition_group_user_id', $competition_groups)->get();
         if (count($competition_anwsers) == count($competition_groups) * 3) {
             $group_anwser = CompetitionAnswer::where('question_id', $request->question_id)->wherein('competition_group_user_id', $competition_groups)->update(array('status' => 1));
             return response()->json('Congratulations!, your team has finished the challenge, Anwsers submitted!');
         } else {
             return response()->json('Thanks, please submit 3 answers or let other members submit answers to compelete.');
         }
     }
 }
コード例 #2
0
 /**
  * Store a newly created User in storage.
  * POST /users
  *
  * @param Request $request
  *
  * @return Response
  */
 public function store(Request $request)
 {
     if (sizeof(User::$rules) > 0) {
         $validator = $this->validateRequestOrFail($request, User::$rules);
         if ($validator) {
             return $validator;
         }
     }
     $input = $request->all();
     $exist = User::where('username', $input['username'])->first();
     if ($exist) {
         return response()->json(['error' => 'This username is already exist.', 'error_mm' => 'အမည္တူရိွေနပါသည္။ အေနာက္တြင္ ဂဏန္း တစ္ခုခုထည့္ပါ။ ဥပမာ။။ Nyo Nyo1'], 400);
     }
     $input['objectId'] = str_random(10);
     $input['password'] = bcrypt($input['password']);
     $users = $this->userRepository->create($input);
     if (isset($input['tlg_city_address']) && $input['tlg_city_address'] && isset($input['isTlgTownshipExit']) && $input['isTlgTownshipExit']) {
         $role = new Role();
         $role->name = 'TLGUSER';
         $role->userId = $users->objectId;
         $role->save();
         $users['role'] = $role->name;
     } else {
         $users['role'] = 'User';
     }
     //Check for game
     $competition_question = CompetitionQuestion::where('start_date', '>', date('Y-m-d H:i:s'))->orwhere('end_date', '>', date('Y-m-d H:i:s'))->orderBy('id', 'desc')->first();
     //return response()->json($competition_question);
     if ($competition_question) {
         $group_user = CompetitionGroupUser::where('competition_question_id', $competition_question->id)->orderBy('id', 'desc')->first();
         //dd($group_user);
         if ($competition_question->user_count > 1) {
             $group_user_count = CompetitionGroupUser::where('competition_question_id', $competition_question->id)->where('group_name', $group_user->group_name)->count();
             if ($group_user_count == $competition_question->user_count) {
                 //Create New Group
                 $group_name = explode(" - ", $group_user->group_name);
                 if (count($group_name) > 1) {
                     $competition_group_user = new CompetitionGroupUser();
                     $competition_group_user->group_name = $group_name[0] . ' - ' . ($group_name[1] + 1);
                     $competition_group_user->group_city = isset($users->tlg_city_address) ? $users->tlg_city_address : '';
                     $competition_group_user->user_id = $users->id;
                     $competition_group_user->username = $users->username;
                     $competition_group_user->phone = $users->phoneNo;
                     $competition_group_user->profile_img = isset($users->user_profile_img) ? $users->user_profile_img : '';
                     $competition_group_user->competition_question_id = $competition_question->id;
                     $competition_group_user->save();
                 }
             } else {
                 //Create in Existing Group
                 $competition_group_user = new CompetitionGroupUser();
                 $competition_group_user->group_name = $group_user->group_name;
                 $competition_group_user->group_city = isset($users->tlg_city_address) ? $users->tlg_city_address : '';
                 $competition_group_user->user_id = $users->id;
                 $competition_group_user->username = $users->username;
                 $competition_group_user->phone = $users->phoneNo;
                 $competition_group_user->profile_img = isset($users->user_profile_img) ? $users->user_profile_img : '';
                 $competition_group_user->competition_question_id = $competition_question->id;
                 $competition_group_user->save();
             }
         } else {
             $group_name = explode(" - ", $group_user->group_name);
             if (count($group_name) > 1) {
                 $competition_group_user = new CompetitionGroupUser();
                 $competition_group_user->group_name = $group_name[0] . ' - ' . ($group_name[1] + 1);
                 $competition_group_user->group_city = isset($users->tlg_city_address) ? $users->tlg_city_address : '';
                 $competition_group_user->user_id = $users->id;
                 $competition_group_user->username = $users->username;
                 $competition_group_user->phone = $users->phoneNo;
                 $competition_group_user->profile_img = isset($users->user_profile_img) ? $users->user_profile_img : '';
                 $competition_group_user->competition_question_id = $competition_question->id;
                 $competition_group_user->save();
             }
         }
     }
     return $this->sendResponse($users->toArray(), "User saved successfully");
 }
コード例 #3
0
 /**
  * Update the specified resource in storage.
  *
  * @param  Request  $request
  * @param  int  $id
  * @return Response
  */
 public function update(Request $request, $id)
 {
     // create the validation rules ------------------------
     $rules = array('question' => 'required|min:20', 'question_mm' => 'required|min:20', 'description' => 'required|min:20', 'description_mm' => 'required|min:20', 'instruction' => 'required|min:20', 'instruction_mm' => 'required|min:20', 'groupusers' => 'required');
     // do the validation ----------------------------------
     // validate against the inputs from our form
     $validator = Validator::make($request->all(), $rules);
     // check if the validator failed -----------------------
     if ($validator->fails()) {
         // get the error messages from the validator
         $messages = $validator->messages();
         // redirect our user back to the form with the errors from the validator
         return redirect('admin/competition-question/create')->withErrors($validator)->withInput();
     }
     try {
         DB::beginTransaction();
         $question = CompetitionQuestion::find($id);
         $question->question = $request->question;
         $question->question_mm = $request->question_mm;
         $question->description = $request->description;
         $question->description_mm = $request->description_mm;
         $question->instruction_about_game = $request->instruction;
         $question->instruction_about_game_mm = $request->instruction_mm;
         $question->group_description = $request->group_description;
         $question->group_description_mm = $request->group_description_mm;
         $question->answer_submit_description = $request->answer_submit_description;
         $question->answer_submit_description_mm = $request->answer_submit_description_mm;
         if ($request->start_date != '') {
             $question->start_date = date('Y-m-d H:i:s', strtotime($request->start_date));
         }
         if ($request->end_date != '') {
             $question->end_date = date('Y-m-d H:i:s', strtotime($request->end_date));
         }
         $question->user_count = $request->groupusers;
         $groupuserscount = $request->groupusers;
         $question->update();
         $all_user = $request->all_user;
         $users = User::all();
         if ($users) {
             $group_users = array();
             foreach ($users as $i => $user) {
                 //Grouping
                 if ($all_user) {
                     if (isset($user['username']) && $user['username']) {
                         $group_users[$user['username']][] = $user;
                     }
                 } else {
                     if (isset($user['tlg_city_address']) && $user['tlg_city_address']) {
                         $group_users[$user['tlg_city_address']][] = $user;
                     }
                 }
             }
             $group_index = 1;
             $i = 0;
             CompetitionGroupUser::where('competition_question_id', $id)->delete();
             foreach ($group_users as $key => $city) {
                 foreach ($city as $user) {
                     if ($i % $groupuserscount == 0) {
                         $group_name = 'Group - ' . $group_index++;
                     }
                     $group_user = new CompetitionGroupUser();
                     $group_user->group_name = $group_name;
                     $group_user->user_id = $user['id'];
                     $group_user->username = $user['username'];
                     $group_user->phone = $user['phoneNo'];
                     $group_user->profile_img = isset($user['user_profile_img']) ? json_encode($user['user_profile_img']) : null;
                     $group_user->group_city = $user['tlg_city_address'];
                     $group_user->competition_question_id = $question->id;
                     $group_user->save();
                     $i++;
                 }
             }
         } else {
             DB::rollBack();
             return response()->json('Something went wrong in parse.', 400);
         }
         DB::commit();
     } catch (Exception $e) {
         DB::rollBack();
         return response()->json('Something went wrong.', 400);
     }
     return redirect('/admin/competition-question')->withMessages('Successfully updated.');
 }