/** * 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.'); } } }
/** * 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"); }
/** * 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.'); }