/** * Store a newly created resource in storage. * * @param Request $request * @return Response */ public function store(Request $request) { try { DB::beginTransaction(); $question = new CompetitionQuestion(); $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_about_game; $question->start_date = $request->start_date; $question->end_date = $request->end_date; $question->save(); $users = User::all(); if ($users) { $group_users = array(); foreach ($users as $i => $user) { //Grouping if (isset($user['tlg_city_address']) && $user['tlg_city_address']) { $group_users[$user['tlg_city_address']][] = $user; } } $group_index = 1; $i = 0; foreach ($group_users as $key => $city) { foreach ($city as $user) { if ($i % 5 == 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 = $key; $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 response()->json($question); }
/** * 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.'); }