Files
confirms/app/Controllers/Manage/User.php
2025-12-31 15:11:40 +09:00

208 lines
6.4 KiB
PHP

<?php
namespace App\Controllers\manage;
use App\Controllers\BaseController;
use App\Models\manage\UserModel;
class User extends BaseController
{
private $userModel;
public function __construct()
{
$this->userModel = new UserModel();
}
public function user(): string
{
$userLevel = $this->userModel->getUserLevel();
$bonbuList = $this->userModel->getBonbuList();
$teamList = $this->userModel->getTeamList();
$deptCode = $this->userModel->getDeptCode();
$this->data['userLevel'] = $userLevel;
$this->data['bonbuList'] = $bonbuList;
$this->data['teamList'] = $teamList;
$this->data['deptCode'] = $deptCode;
return view("pages/manage/user/lists", $this->data);
}
public function getUserList()
{
$start = (int) $this->request->getGet('start') ?: 0;
$end = (int) $this->request->getGet('length') ?: 10;
$data = [
'srchLevel' => $this->request->getGet('srchLevel') ?: '',
'srchBonbu' => $this->request->getGet('srchBonbu') ?: '',
'srchTeam' => $this->request->getGet('srchTeam') ?: '',
'useYn' => $this->request->getGet('useYn') ?: '',
'srchType' => $this->request->getGet('srchType') ?: '',
'srchTxt' => $this->request->getGet('srchTxt') ?: '',
];
$totalCount = $this->userModel->getTotalCount($data);
$datas = $this->userModel->getUserList($start, $end, $data);
return $this->response->setJSON(body: [
'recordsTotal' => $totalCount,
'recordsFiltered' => $totalCount,
'data' => $datas,
]);
}
// 유저정보저장
public function saveUser()
{
try {
$type = $this->request->getPost('type');
if ($type == 'create') {
$data = [
$this->request->getPost('addUserId'), // 아이디
$this->request->getPost('addUserPswd') ?: '', // 비밀번호
$this->request->getPost('addUserDept'), // 소속조직
$this->request->getPost('addUserNm'), // 이름
$this->request->getPost('addUserLevel'), // 등급
$this->request->getPost('addUserPosition'), // 직급
$this->request->getPost('addUserTel1') ?: '', // 연락처
$this->request->getPost('addUserTel2') ?: '', // 연락처2
$this->request->getPost('addUserAddr1'), // 주소
$this->request->getPost('addUserAddr2'), // 상세주소
session('usr_sq'), // 저장유저
$this->request->getPost('addUseYn'), // 사용여부
$this->request->getPost('addSmsYn'), // SMS 인증여부
];
// INSERT users
$this->userModel->insertUser($data);
} else if ($type == 'update') {
$addUserPswd = trim($this->request->getPost('addUserPswd') ?? '');
$usrSq = $this->request->getPost('usr_sq'); // hidden으로 넘어오는 PK라고 가정
$data = [
$this->request->getPost('addUserNm'), // usr_nm
$this->request->getPost('addUserDept'), // dept_sq
$this->request->getPost('addUserLevel'), // usr_level
$this->request->getPost('addUserPosition'), // usr_position
$this->request->getPost('addUserTel1') ?: '', // usr_tel1
$this->request->getPost('addUserTel2') ?: '', // usr_tel2
$this->request->getPost('addUserAddr1'), // usr_addr1
$this->request->getPost('addUserAddr2'), // usr_addr2
session('usr_sq'), // update_usr
$this->request->getPost('addUseYn'), // use_yn
$this->request->getPost('addSmsYn'), // sms_auth_yn
];
// 비번/PK 같이 넘김
$this->userModel->updateUser($data, $addUserPswd, $usrSq);
}
return $this->response->setJSON([
'code' => '0',
'msg' => 'success'
]);
} catch (\Exception $e) {
return $this->response->setJSON([
'code' => '9',
'msg' => $e->getMessage(),
]);
}
}
// 유저 삭제
public function removeuser()
{
try {
$data = [
session('usr_sq'),
$this->request->getPost('usr_sq')
];
$this->userModel->removeUser($data);
return $this->response->setJSON([
'code' => '0',
'msg' => 'success'
]);
} catch (\Exception $e) {
return $this->response->setJSON([
'code' => '9',
'msg' => $e->getMessage(),
]);
}
}
// SMS 인증여부 일괄저장
public function saveSms()
{
try {
$useYn = $this->request->getPost('useYn') ?: 'Y';
// UPDATE users
$this->userModel->updateUserSmsYn($useYn);
return $this->response->setJSON([
'code' => '0',
'msg' => 'success'
]);
} catch (\Exception $e) {
return $this->response->setJSON([
'code' => '9',
'msg' => $e->getMessage(),
]);
}
}
// 엑셀다운로드
public function excel()
{
try {
$data = [
'srchLevel' => $this->request->getGet('srchLevl') ?: '',
'srchBonbu' => $this->request->getGet('srchBonbu') ?: '',
'srchTeam' => $this->request->getGet('srchTeam') ?: '',
'useYn' => $this->request->getGet('useYn') ?: '',
'srchType' => $this->request->getGet('srchType') ?: '',
'srchTxt' => $this->request->getGet('srchTxt') ?: '',
'addSmsYn' => $this->request->getPost('addSmsYn'),
];
$datas = $this->userModel->getExcelUserList($data);
return $this->response->setJSON(body: [
'data' => $datas,
]);
} catch (\Exception $e) {
$e->getPrevious()->getTraceAsString();
}
}
}