userModel = $user; $this->userDormantModel = $userDormant; $this->userDormantNotifyModel = $userDormantNotify; $this->emailLib = $emailLib; } /** * 휴면계정 관리 * @method GET|POST * @see /admin/user/dormant/list */ public function index(Request $request) { $params = SearchData::fromRequest($request); $params->activated = $request->get('activated'); $params->userGroupID = $request->get('user_group_id', []); $params->userGradeID = $request->get('user_grade_id', []); $params->isDormancy = $request->get('is_dormant', 0); if (!$params->isDormancy) { // 회원 $sModel = $this->userModel; $userDormantData = $sModel->dormantUsers($params); }else{ // 휴면회원 $sModel = $this->userDormantModel; $userDormantData = $sModel->data($params); } $sTable = $sModel->getTable(); if ($userDormantData->total > 0) { $num = listNum($userDormantData->total, $params->page, $params->perPage); foreach ($userDormantData->list as $i => $row) { $row->num = $num--; $row->point = number_format($row->point); $row->lastLoginAt = dateBr($row->last_login_at, '-'); $row->createdAt = dateBr($row->created_at, '-'); $row->dormantAt = dateBr($row->dormant_at, '-'); $userDormantData->list[$i] = $row; } } return view('admin.user.dormant.index', [ 'sTable' => $sTable, 'userDormantData' => $userDormantData, 'params' => $params ]); } /** * 휴면예정 알림 발송 * @method POST * @see /admin/user/dormant/list/notify */ public function notify(Request $request) { $chk = $request->post('chk'); if ($chk) { foreach ($chk as $userID) { // 휴면예정 알림 발송 if(!$this->userDormantNotifyModel->register( $this->userModel->find($userID) )) { return back()->withErrors([ 'message' => sprintf('%d번 회원은 알림 발송이 거부되었습니다.', $userID) ])->withInput(); } } } $message = '선택한 회원에게 알림이 발송되었습니다.'; return redirect()->route('admin.user.dormant.list.index')->with('message', $message); } /** * 휴면 처리 * @method POST * @see /admin/user/dormant/list/dormancy */ public function dormancy(Request $request) { $chk = $request->post('chk'); if ($chk) { foreach ($chk as $userID) { // 휴면 처리 if($this->userDormantModel->dormancy($userID)) { // 휴면 알림 메일 발송 $this->emailLib->send( SEND_MAIL_FORM_TYPE_12, $this->userDormantModel->find($userID) ); }else{ return back()->withErrors([ 'message' => sprintf('%d번 회원 휴면 처리가 거부되었습니다.', $userID) ])->withInput(); } } } $message = '선택한 회원이 휴면 처리되었습니다.'; return redirect()->route('admin.user.dormant.list.index')->with('message', $message); } /** * 휴면 해제 * @method POST * @see /admin/user/dormant/list/recover */ public function recover(Request $request) { $chk = $request->post('chk'); if ($chk) { foreach ($chk as $userID) { if($this->userDormantModel->recover($userID)) { // 휴면 해제 메일 발송 $this->emailLib->send( SEND_MAIL_FORM_TYPE_13, $this->userModel->find($userID) ); }else{ return back()->withErrors([ 'message' => sprintf('%d번 회원 휴면 해제가 거부되었습니다.', $userID) ])->withInput(); } } } $message = '선택한 회원이 휴면 해제되었습니다.'; return redirect()->route('admin.user.dormant.list.index')->with('message', $message); } }