This commit is contained in:
151
app/Models/Home/HomeModel.php
Normal file
151
app/Models/Home/HomeModel.php
Normal file
@@ -0,0 +1,151 @@
|
||||
<?php
|
||||
|
||||
namespace App\Models\Home;
|
||||
|
||||
use App\Models\common\CodeModel;
|
||||
use CodeIgniter\Model;
|
||||
|
||||
class HomeModel extends Model
|
||||
{
|
||||
|
||||
public function getHomeStatistics($sdate, $edate)
|
||||
{
|
||||
$status = $status2 = $status3 = $reserve = $assign = $personal = [];
|
||||
$usr_sq = session('usr_sq');
|
||||
$usr_level = session('usr_level');
|
||||
|
||||
if (in_array($usr_level, ['1', '2', '3'], true)) {
|
||||
|
||||
$codeModel = new CodeModel();
|
||||
$codes = $codeModel->getCodeList('RECEIPT_STATUS1');
|
||||
helper('string');
|
||||
|
||||
$columns = '';
|
||||
foreach ($codes as $row) {
|
||||
$cd = sqlstr_quotes($row['cd']);
|
||||
$cdnm = sqlstr_quotes($row['cd_nm']);
|
||||
|
||||
$columns .= ", SUM(CASE WHEN SUBSTR(b.rcpt_stat, 1, 2) = '" . $cd . "' THEN 1 ELSE 0 END) \"" . $cdnm . "\"";
|
||||
}
|
||||
$columns = substr($columns, 1);
|
||||
|
||||
// 상태별 개수
|
||||
$sql = "SELECT " . $columns .
|
||||
" FROM receipt b" .
|
||||
" where b.rcpt_tm BETWEEN ? AND ? ";
|
||||
|
||||
$sdate .= ' 00:00:00';
|
||||
$edate .= ' 23:59:59';
|
||||
|
||||
$data = [$sdate, $edate];
|
||||
$query = $this->db->query($sql, $data);
|
||||
$status = $query->getResultArray();
|
||||
|
||||
// 녹취필요 5개
|
||||
$sql = "SELECT b.rcpt_key, b.rcpt_tm, a.photo_save_dt, IFNULL(DATEDIFF(NOW(), a.photo_save_dt),0) elapsed_dt" .
|
||||
" FROM result a" .
|
||||
" INNER JOIN receipt b ON b.rcpt_sq = a.rcpt_sq and b.rcpt_tm between ? and ?" .
|
||||
" WHERE a.req_rec_yn = 'Y'" .
|
||||
" AND a.rec_yn != 'Y'" .
|
||||
" AND a.result_cd1 != '90'" .
|
||||
" ORDER BY 3" .
|
||||
" LIMIT 5";
|
||||
$data = [$sdate, $edate];
|
||||
$query = $this->db->query($sql, $data);
|
||||
$status2 = $query->getResultArray();
|
||||
|
||||
// 동의서없음 5개
|
||||
$sql = "SELECT b.rcpt_key, b.rcpt_tm, a.photo_save_dt, IFNULL(DATEDIFF(NOW(), a.photo_save_dt),0) elapsed_dt" .
|
||||
" FROM result a" .
|
||||
" INNER JOIN receipt b ON b.rcpt_sq = a.rcpt_sq AND b.rcpt_stat = '701000' and b.rcpt_tm between ? and ?" .
|
||||
" AND a.result_cd1 != '90'" .
|
||||
" ORDER BY 3" .
|
||||
" LIMIT 5";
|
||||
$data = array($sdate, $edate);
|
||||
$query = $this->db->query($sql, $data);
|
||||
$status3 = $query->getResultArray();
|
||||
}
|
||||
|
||||
|
||||
if (in_array($usr_level, ['1', '2', '3'], true)) { // 시스템관리자, 관리자, 상담원
|
||||
$sql = "SELECT a.rcpt_key, a.rcpt_tm, IFNULL(b.rsrv_date, a.rsrv_date) rsrv_date, c.cd_nm rsrv_tm_ap" .
|
||||
" FROM receipt a" .
|
||||
" LEFT JOIN result b ON b.rcpt_sq = a.rcpt_sq AND b.use_yn = 'Y'" .
|
||||
" LEFT JOIN codes c ON c.category = 'RESERVED_APM' AND c.cd = IFNULL(b.rsrv_tm_ap, a.rsrv_tm_ap)" .
|
||||
" WHERE a.rcpt_stat <= '20'" .
|
||||
" and a.rcpt_tm between ? and ?" .
|
||||
" LIMIT 5";
|
||||
$data = array($sdate, $edate);
|
||||
$query = $this->db->query($sql, $data);
|
||||
$reserve = $query->getResultArray();
|
||||
|
||||
}
|
||||
|
||||
if (in_array($usr_level, ['4'], true)) { // 현장조사원
|
||||
$sql = "SELECT b.rcpt_key, b.rcpt_tm, IFNULL(a.rsrv_date, b.rsrv_date) rsrv_date, c.cd_nm rsrv_tm_ap" .
|
||||
" FROM result a" .
|
||||
" INNER JOIN receipt b ON b.rcpt_sq = a.rcpt_sq AND b.rcpt_stat = '30' AND b.rcpt_tm between ? and ?" .
|
||||
" INNER JOIN codes c ON c.category = 'RESERVED_APM' AND c.cd = IFNULL(a.rsrv_tm_ap, b.rsrv_tm_ap)" .
|
||||
" WHERE a.usr_sq = ?" .
|
||||
" AND a.use_yn = 'Y'" .
|
||||
" LIMIT 5";
|
||||
$data = array($sdate, $edate, $usr_sq);
|
||||
$query = $this->db->query($sql, $data);
|
||||
$assign = $query->getResultArray();
|
||||
|
||||
|
||||
|
||||
$sql = "SELECT COUNT(*) assign_count" .
|
||||
", IFNULL(SUM(CASE WHEN b.rcpt_stat IN ('39', '49') THEN 1 ELSE 0 END),0) cancel_count" .
|
||||
", IFNULL(SUM(CASE b.rcpt_stat WHEN '50' THEN 1 ELSE 0 END),0) complete_count" .
|
||||
" FROM result a" .
|
||||
" INNER JOIN receipt b ON b.rcpt_sq = a.rcpt_sq AND b.rcpt_tm between ? and ?" .
|
||||
" WHERE a.usr_sq = ?" .
|
||||
" AND a.assign_save_dt BETWEEN DATE_FORMAT(NOW(),'%Y-%m-01') AND DATE_FORMAT(NOW(),'%Y-%m-%d')" .
|
||||
" AND a.use_yn = 'Y'";
|
||||
|
||||
|
||||
$sql = "SELECT " .
|
||||
" SUM( case when a.result_cd2 = '2000' then 1 ELSE null END ) as assign_count" .
|
||||
", SUM( case when a.result_cd2 = '9030' then 1 ELSE null END ) as cancel_count" .
|
||||
", SUM( case when a.result_cd2 = '6000' then 1 ELSE null END ) as complete_count" .
|
||||
" FROM result a" .
|
||||
" INNER JOIN receipt b ON b.rcpt_sq = a.rcpt_sq AND b.rcpt_tm between ? and ?" .
|
||||
" WHERE a.usr_sq = ?" .
|
||||
" AND a.rsrv_date BETWEEN DATE_FORMAT(NOW(),'%Y-%m-01') AND DATE_FORMAT(NOW(),'%Y-%m-%d')" .
|
||||
" AND a.use_yn = 'Y'";
|
||||
$data = array($sdate, $edate, $usr_sq);
|
||||
$query = $this->db->query($sql, $data);
|
||||
$personal = $query->getRowArray();
|
||||
|
||||
}
|
||||
|
||||
return ['status' => $status, 'status2' => $status2, 'status3' => $status3, 'reserve' => $reserve, 'assign' => $assign, 'personal' => $personal];
|
||||
|
||||
}
|
||||
|
||||
// 메인 공지사항 조회
|
||||
public function getNoticeList()
|
||||
{
|
||||
$sql = "SELECT a.bbs_sq, a.subject, a.depth, a.hit, a.update_usr, a.update_nm, DATE_FORMAT(a.update_tm, '%Y-%m-%d') AS update_tm
|
||||
FROM bbs_main_notice AS a
|
||||
WHERE
|
||||
a.use_yn = 'Y'
|
||||
ORDER BY bbs_sq DESC
|
||||
LIMIT 5";
|
||||
|
||||
$query = $this->db->query($sql);
|
||||
$rows = $query->getResultArray();
|
||||
$total = $query->getNumRows();
|
||||
|
||||
/*
|
||||
$data = [
|
||||
'noticeList' => $rows,
|
||||
'total' => $total,
|
||||
];
|
||||
*/
|
||||
|
||||
return $rows;
|
||||
}
|
||||
|
||||
}
|
||||
276
app/Models/board/NoticeModel.php
Normal file
276
app/Models/board/NoticeModel.php
Normal file
@@ -0,0 +1,276 @@
|
||||
<?php
|
||||
namespace App\Models\board;
|
||||
|
||||
use CodeIgniter\Model;
|
||||
class NoticeModel extends Model
|
||||
{
|
||||
|
||||
public function getTotalCount($data)
|
||||
{
|
||||
$sql = "SELECT COUNT(*) AS cnt FROM bbs_main_notice WHERE use_yn = 'Y'";
|
||||
|
||||
$params = [];
|
||||
if (!empty($data['srchTxt'])) {
|
||||
|
||||
$keyword = '%' . $data['srchTxt'] . '%';
|
||||
|
||||
switch ($data['srchType']) {
|
||||
case '1': // 제목
|
||||
$sql .= " AND a.subject LIKE ? ";
|
||||
$params[] = $keyword;
|
||||
break;
|
||||
|
||||
case '2': // 작성자
|
||||
$sql .= " AND a.insert_nm LIKE ? ";
|
||||
$params[] = $keyword;
|
||||
break;
|
||||
|
||||
default: // 제목 + 작성자
|
||||
$sql .= " AND ( a.subject LIKE ? OR a.insert_nm LIKE ? ) ";
|
||||
$params[] = $keyword;
|
||||
$params[] = $keyword;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
$query = $this->db->query($sql, $params ?: []);
|
||||
|
||||
return $query->getRow()->cnt;
|
||||
}
|
||||
|
||||
public function getNoticeList($start, $end, $data)
|
||||
{
|
||||
|
||||
|
||||
$sql = "SELECT
|
||||
SQL_CALC_FOUND_ROWS
|
||||
a.bbs_sq, a.`subject`, a.depth, a.hit, a.update_usr, a.insert_nm, a.insert_tm, a.update_nm, a.update_tm
|
||||
FROM bbs_main_notice AS a
|
||||
WHERE
|
||||
a.use_yn = 'Y' ";
|
||||
|
||||
if (!empty($data['srchTxt'])) {
|
||||
|
||||
$keyword = '%' . $data['srchTxt'] . '%';
|
||||
|
||||
switch ($data['srchType']) {
|
||||
case '1': // 제목
|
||||
$sql .= " AND a.subject LIKE ? ";
|
||||
$params[] = $keyword;
|
||||
break;
|
||||
|
||||
case '2': // 작성자
|
||||
$sql .= " AND a.insert_nm LIKE ? ";
|
||||
$params[] = $keyword;
|
||||
break;
|
||||
|
||||
default: // 제목 + 작성자
|
||||
$sql .= " AND ( a.subject LIKE ? OR a.insert_nm LIKE ? ) ";
|
||||
$params[] = $keyword;
|
||||
$params[] = $keyword;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
$sql .= " ORDER BY a.rgt DESC
|
||||
LIMIT ?, ? ";
|
||||
|
||||
$params[] = (int) $start; // offset
|
||||
$params[] = (int) $end; // limit
|
||||
|
||||
$query = $this->db->query($sql, $params);
|
||||
|
||||
return $query->getResultArray();
|
||||
}
|
||||
|
||||
public function getNoticeData($id)
|
||||
{
|
||||
|
||||
$sql = "UPDATE bbs_main_notice SET hit = hit +1 WHERE bbs_sq = ? AND use_yn = 'Y'";
|
||||
$res = $this->db->query($sql, [$id]);
|
||||
|
||||
$sql = "SELECT
|
||||
SQL_CALC_FOUND_ROWS
|
||||
a.bbs_sq, a.`subject`, a.content, a.depth, a.hit, a.update_usr, a.insert_nm, a.insert_tm, a.update_nm, a.update_tm
|
||||
FROM bbs_main_notice AS a
|
||||
WHERE
|
||||
a.use_yn = 'Y'
|
||||
AND a.bbs_sq = ?
|
||||
";
|
||||
|
||||
$query = $this->db->query($sql, [$id]);
|
||||
$notice = $query->getRowArray();
|
||||
|
||||
$sql = "SELECT bbs_sq, file_sq, file_name, file_path, file_ext, file_size, img_yn, img_height, img_width, orig_name FROM bbs_file_notice WHERE bbs_sq = ?" .
|
||||
" and use_yn = 'Y'";
|
||||
$query = $this->db->query($sql, [$id]);
|
||||
$files = $query->getRowArray();
|
||||
|
||||
$sql = "SELECT reply_sq, lft, rgt, content, update_nm, update_tm FROM bbs_reply_notice WHERE bbs_sq = ?" .
|
||||
" AND use_yn = 'Y' ORDER BY rgt DESC";
|
||||
$query = $this->db->query($sql, [$id]);
|
||||
$replys = $query->getResultArray();
|
||||
|
||||
return [
|
||||
'notice' => $notice,
|
||||
'files' => $files,
|
||||
'reply' => $replys,
|
||||
];
|
||||
}
|
||||
|
||||
|
||||
public function getFile($fileSq)
|
||||
{
|
||||
$sql = "SELECT file_sq, bbs_sq, file_path, file_name, orig_name FROM bbs_file_notice WHERE file_sq = ?";
|
||||
|
||||
$query = $this->db->query($sql, [$fileSq]);
|
||||
|
||||
return $query->getRowArray();
|
||||
}
|
||||
|
||||
public function write($data)
|
||||
{
|
||||
$this->db->transStart();
|
||||
|
||||
$sql = "SELECT lft+1 num FROM bbs_main_notice ORDER BY bbs_sq DESC LIMIT 1";
|
||||
$query = $this->db->query($sql);
|
||||
$row = $query->getRowArray();
|
||||
$num = $row['num'];
|
||||
|
||||
$sql = "INSERT INTO bbs_main_notice"
|
||||
. "(bbs_psq, lft, rgt, use_yn, hit, subject, content, insert_usr, insert_nm, insert_tm, depth)"
|
||||
. "VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, NOW(), ?)";
|
||||
|
||||
$query = $this->db->query($sql, [0, $num, ($num + 1), 'Y', 0, $data['subject'], $data['content'], $data['insert_usr'], $data['insert_nm'], 0]);
|
||||
|
||||
// 방금 insert된 PK
|
||||
$bbs_sq = $this->db->insertID();
|
||||
|
||||
// 2) 첨부파일 정보가 있으면 파일 테이블 INSERT
|
||||
if (!empty($data['file'])) {
|
||||
|
||||
$f = $data['file'];
|
||||
|
||||
$sql = "INSERT INTO bbs_file_notice
|
||||
(bbs_sq, file_name, file_path, file_ext, file_size, img_yn, img_height, img_width, orig_name)
|
||||
VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)";
|
||||
|
||||
$this->db->query($sql, [
|
||||
$bbs_sq,
|
||||
$f['new_name'] ?? '',
|
||||
$f['file_path'] ?? '',
|
||||
$f['ext'] ?? '',
|
||||
$f['size'] ?? 0,
|
||||
$f['img_yn'] ?? 'N',
|
||||
$f['img_height'] ?? null,
|
||||
$f['img_width'] ?? null,
|
||||
$f['orig_name'] ?? '',
|
||||
]);
|
||||
}
|
||||
|
||||
// 트랜잭션 끝
|
||||
$this->db->transComplete();
|
||||
|
||||
if ($this->db->transStatus() === false) {
|
||||
return [
|
||||
'success' => false,
|
||||
'msg' => '저장실패',
|
||||
];
|
||||
}
|
||||
|
||||
// 성공
|
||||
return [
|
||||
'success' => true,
|
||||
'bbs_sq' => $bbs_sq,
|
||||
];
|
||||
}
|
||||
|
||||
|
||||
public function modify($data)
|
||||
{
|
||||
|
||||
$sql = "UPDATE bbs_main_notice SET
|
||||
`subject` = ?, content = ?, update_usr = ?, update_nm = ?, update_tm = NOW()
|
||||
WHERE bbs_sq = ?";
|
||||
|
||||
$this->db->query($sql, [$data['subject'], $data['content'], $data['update_usr'], $data['update_nm'], $data['bbs_sq']]);
|
||||
|
||||
if (!empty($data['file'])) {
|
||||
|
||||
$f = $data['file'];
|
||||
|
||||
if (empty($f['file_sq'])) {
|
||||
$sql = "INSERT INTO bbs_file_notice
|
||||
(bbs_sq, file_name, file_path, file_ext, file_size, img_yn, img_height, img_width, orig_name)
|
||||
VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)";
|
||||
|
||||
$this->db->query($sql, [
|
||||
$data['bbs_sq'],
|
||||
$f['new_name'] ?? '',
|
||||
$f['file_path'] ?? '',
|
||||
$f['ext'] ?? '',
|
||||
$f['size'] ?? 0,
|
||||
$f['img_yn'] ?? 'N',
|
||||
$f['img_height'] ?? null,
|
||||
$f['img_width'] ?? null,
|
||||
$f['orig_name'] ?? '',
|
||||
]);
|
||||
} else {
|
||||
$sql = "UPDATE bbs_file_notice SET
|
||||
file_name = ?, file_path = ?, file_ext = ?, file_size = ?, img_yn = ?, img_height = ?, img_width = ?, orig_name = ?
|
||||
WHERE file_sq = ?
|
||||
";
|
||||
|
||||
$this->db->query($sql, [
|
||||
$f['new_name'] ?? '',
|
||||
$f['file_path'] ?? '',
|
||||
$f['ext'] ?? '',
|
||||
$f['size'] ?? 0,
|
||||
$f['img_yn'] ?? 'N',
|
||||
$f['img_height'] ?? null,
|
||||
$f['img_width'] ?? null,
|
||||
$f['orig_name'] ?? '',
|
||||
$f['file_sq'],
|
||||
]);
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
if ($this->db->transStatus() === false) {
|
||||
return [
|
||||
'success' => false,
|
||||
'msg' => '저장실패',
|
||||
];
|
||||
}
|
||||
|
||||
// 성공
|
||||
return [
|
||||
'success' => true,
|
||||
];
|
||||
}
|
||||
|
||||
|
||||
public function remove($data)
|
||||
{
|
||||
$sql = "UPDATE bbs_main_notice SET
|
||||
use_yn = 'N', update_usr = ?, update_nm = ?, update_tm = NOW()
|
||||
WHERE bbs_sq = ?";
|
||||
|
||||
$this->db->query($sql, [$data['update_usr'], $data['update_nm'], $data['bbs_sq']]);
|
||||
|
||||
if ($this->db->transStatus() === false) {
|
||||
return [
|
||||
'success' => false,
|
||||
'msg' => '저장실패',
|
||||
];
|
||||
}
|
||||
|
||||
// 성공
|
||||
return [
|
||||
'success' => true,
|
||||
];
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
22
app/Models/common/CodeModel.php
Normal file
22
app/Models/common/CodeModel.php
Normal file
@@ -0,0 +1,22 @@
|
||||
<?php
|
||||
namespace App\Models\common;
|
||||
|
||||
use CodeIgniter\Model;
|
||||
|
||||
class CodeModel extends Model
|
||||
{
|
||||
/**
|
||||
* 코드목록 읽어오기(Y만)
|
||||
*/
|
||||
public function getCodeList($category)
|
||||
{
|
||||
$sql = "SELECT category, category_nm, cd, cd_nm FROM codes" .
|
||||
" WHERE category = ?" .
|
||||
" AND use_yn = 'Y'" .
|
||||
" ORDER BY view_odr";
|
||||
$data = array($category);
|
||||
$query = $this->db->query($sql, $data);
|
||||
|
||||
return $query->getResultArray();
|
||||
}
|
||||
}
|
||||
51
app/Models/common/LoginModel.php
Normal file
51
app/Models/common/LoginModel.php
Normal file
@@ -0,0 +1,51 @@
|
||||
<?php
|
||||
namespace App\Models\common;
|
||||
|
||||
use CodeIgniter\Model;
|
||||
|
||||
class LoginModel extends Model
|
||||
{
|
||||
|
||||
// 로그인 유저 체크
|
||||
public function getUserByIdPw($userId, $userPw)
|
||||
{
|
||||
$sql = "SELECT a.usr_sq, a.usr_id, a.usr_nm, a.usr_pw, b.dept_sq, b.dept_nm, SHA2(?,256) chk_pw, a.usr_level, b.depth, c.dept_sq bonbu_sq, c.dept_nm bonbu_nm, a.usr_tel1, a.usr_tel2" .
|
||||
" , CASE WHEN HOUR(TIMEDIFF(NOW(), a.last_login_tm)) < 4 THEN 'X' ELSE a.sms_auth_yn END sms_auth_yn" . //인증후 4시간 이내면 X
|
||||
" FROM users a" .
|
||||
" INNER JOIN departments b ON b.dept_sq = a.dept_sq AND b.use_yn = 'Y'" .
|
||||
" LEFT JOIN departments c ON c.lft <= b.lft AND c.rgt >= b.rgt AND c.depth = 1 AND c.use_yn = 'Y'" .
|
||||
" WHERE a.usr_id = ? ";
|
||||
|
||||
$data = array(
|
||||
$userPw,
|
||||
$userId
|
||||
);
|
||||
|
||||
$query = $this->db->query($sql, $data);
|
||||
$row = $query->getRowArray();
|
||||
|
||||
return $row;
|
||||
}
|
||||
|
||||
public function insertUserLog($data)
|
||||
{
|
||||
$sql = "INSERT INTO user_login_log
|
||||
( success , usr_sq , usr_id_in , ip , useragent, regdate, reason )
|
||||
VALUES
|
||||
(?, ?, ?, ?, ?, NOW(), ?)
|
||||
";
|
||||
|
||||
$params = [
|
||||
$data['results'],
|
||||
$data['usr_sq'],
|
||||
$data['usr_id'],
|
||||
$data['userIp'],
|
||||
$data['userAgent'],
|
||||
$data['reason'],
|
||||
];
|
||||
|
||||
$this->db->query($sql, $params);
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
40
app/Models/common/MenuModel.php
Normal file
40
app/Models/common/MenuModel.php
Normal file
@@ -0,0 +1,40 @@
|
||||
<?php
|
||||
namespace App\Models\common;
|
||||
|
||||
use CodeIgniter\Model;
|
||||
class MenuModel extends Model
|
||||
{
|
||||
// 메뉴목록조회
|
||||
public function getMenuList()
|
||||
{
|
||||
$sql = "SELECT a.mnu_id, a.mnu_pid, a.mnu_nm, a.mnu_url
|
||||
FROM menu AS a
|
||||
JOIN menu_perms AS b ON b.mnu_id = a.mnu_id
|
||||
WHERE a.use_yn = 'Y'
|
||||
AND b.mgrp_sq = ?
|
||||
AND a.mnu_pid = '0'
|
||||
ORDER BY a.view_odr ASC
|
||||
";
|
||||
|
||||
$query = $this->db->query($sql, binds: [1]);
|
||||
$mainMenuList = $query->getResultArray();
|
||||
|
||||
$sql = "SELECT a.mnu_id, a.mnu_pid, a.mnu_nm, a.mnu_url
|
||||
FROM menu AS a
|
||||
JOIN menu_perms AS b ON b.mnu_id = a.mnu_id
|
||||
WHERE a.use_yn = 'Y'
|
||||
AND b.mgrp_sq = ?
|
||||
ORDER BY a.view_odr ASC
|
||||
";
|
||||
|
||||
$query = $this->db->query($sql, [1]);
|
||||
$subMenuList = $query->getResultArray();
|
||||
|
||||
$data = [
|
||||
'mainMenu' => $mainMenuList,
|
||||
'subMenu' => $subMenuList,
|
||||
];
|
||||
|
||||
return $data;
|
||||
}
|
||||
}
|
||||
10
app/Models/listfax/ListFaxModel.php
Normal file
10
app/Models/listfax/ListFaxModel.php
Normal file
@@ -0,0 +1,10 @@
|
||||
<?php
|
||||
namespace App\Models\listfax;
|
||||
|
||||
use CodeIgniter\Model;
|
||||
|
||||
class ListFaxModel extends Model
|
||||
{
|
||||
|
||||
|
||||
}
|
||||
199
app/Models/manage/DeptModel.php
Normal file
199
app/Models/manage/DeptModel.php
Normal file
@@ -0,0 +1,199 @@
|
||||
<?php
|
||||
namespace App\Models\manage;
|
||||
|
||||
use CodeIgniter\Model;
|
||||
|
||||
class DeptModel extends Model
|
||||
{
|
||||
|
||||
public function getTotalCount($data)
|
||||
{
|
||||
$params = [];
|
||||
|
||||
$sql = "SELECT
|
||||
COUNT(*) AS cnt
|
||||
FROM
|
||||
departments AS a
|
||||
WHERE 1=1 ";
|
||||
|
||||
if (!empty($data["srchDepth"])) {
|
||||
$sql .= "AND a.depth = ?";
|
||||
array_push($params, $data["srchDepth"]);
|
||||
}
|
||||
|
||||
if (!empty($data["srcDeptNm"])) {
|
||||
$sql .= "AND a.dept_nm LIKE CONCAT('%', ?, '%')";
|
||||
array_push($params, $data["srcDeptNm"]);
|
||||
}
|
||||
|
||||
if (!empty($data["srcDeptHead"])) {
|
||||
$sql .= "AND a.dept_head IN (select usr_sq from users where usr_nm LIKE CONCAT('%', ?, '%'))";
|
||||
array_push($params, $data["srcDeptHead"]);
|
||||
}
|
||||
|
||||
if (!empty($data["useYn"])) {
|
||||
$sql .= "AND a.use_yn = ?";
|
||||
array_push($params, $data["useYn"]);
|
||||
}
|
||||
|
||||
$query = $this->db->query($sql, $params ?: []);
|
||||
|
||||
return $query->getRow()->cnt;
|
||||
}
|
||||
|
||||
public function getDeptList($start, $end, $data)
|
||||
{
|
||||
$params = [];
|
||||
|
||||
$sql = "SELECT
|
||||
dept_sq
|
||||
, (select dept_nm from departments where dept_sq = a.pdept_sq) as pdept_nm
|
||||
, pdept_sq
|
||||
, dept_nm
|
||||
, dept_desc
|
||||
, (select usr_nm from users where usr_sq = a.dept_head) as dept_head_nm
|
||||
, dept_head
|
||||
, case when a.use_yn = 'Y' then '예' when a.use_yn = 'N' then '아니요' end as use_yn_nm
|
||||
, use_yn
|
||||
, case when a.depth = 0 then '컨펌스' when a.depth = 1 then '본부' when a.depth = 2 then '팀' end as depth_nm
|
||||
, depth
|
||||
, insert_tm
|
||||
, (select usr_nm from users where usr_sq = a.insert_usr) insert_usr
|
||||
, update_tm
|
||||
, (select usr_nm from users where usr_sq = a.update_usr) update_usr
|
||||
, lft
|
||||
, rgt
|
||||
FROM
|
||||
departments AS a
|
||||
WHERE
|
||||
1=1 ";
|
||||
|
||||
if (!empty($data["srchDepth"])) {
|
||||
$sql .= "AND a.depth = ? ";
|
||||
array_push($params, $data["srchDepth"]);
|
||||
}
|
||||
|
||||
if (!empty($data["srcDeptNm"])) {
|
||||
$sql .= "AND a.dept_nm LIKE CONCAT('%', ?, '%') ";
|
||||
array_push($params, $data["srcDeptNm"]);
|
||||
}
|
||||
|
||||
if (!empty($data["srcDeptHead"])) {
|
||||
$sql .= "AND a.dept_head IN (select usr_sq from users where usr_nm LIKE CONCAT('%', ?, '%'))";
|
||||
array_push($params, $data["srcDeptHead"]);
|
||||
}
|
||||
|
||||
if (!empty($data["useYn"])) {
|
||||
$sql .= "AND a.use_yn = ? ";
|
||||
array_push($params, $data["useYn"]);
|
||||
}
|
||||
|
||||
$sql .= "ORDER BY a.insert_tm DESC
|
||||
LIMIT ?, ?
|
||||
";
|
||||
|
||||
|
||||
|
||||
$params[] = (int) $start;
|
||||
$params[] = (int) $end;
|
||||
|
||||
$query = $this->db->query($sql, $params);
|
||||
|
||||
return $query->getResultArray();
|
||||
|
||||
}
|
||||
|
||||
|
||||
public function getUserCount()
|
||||
{
|
||||
$sql = "SELECT COUNT(*) AS cnt FROM users WHERE use_yn = 'Y' ";
|
||||
|
||||
$query = $this->db->query($sql);
|
||||
|
||||
return $query->getRow()->cnt;
|
||||
}
|
||||
|
||||
public function getUserList($start, $end)
|
||||
{
|
||||
$sql = "SELECT usr_sq, usr_id, usr_nm FROM users WHERE use_yn = 'Y' ORDER BY usr_sq DESC LIMIT ?, ?";
|
||||
|
||||
|
||||
$params[] = (int) $start;
|
||||
$params[] = (int) $end;
|
||||
|
||||
$query = $this->db->query($sql, $params);
|
||||
|
||||
return $query->getResultArray();
|
||||
}
|
||||
|
||||
// 상위조직 조회
|
||||
public function getPdept()
|
||||
{
|
||||
$sql = "SELECT dept_sq, dept_nm FROM departments" .
|
||||
" WHERE depth = 1" .
|
||||
" AND use_yn = 'Y'";
|
||||
|
||||
$query = $this->db->query($sql);
|
||||
|
||||
return $query->getResultArray();
|
||||
}
|
||||
|
||||
// 조직관리 INSERT
|
||||
public function insertDept($data)
|
||||
{
|
||||
|
||||
$sql = "select ifnull(rgt,1) lft from departments where dept_sq = ?";
|
||||
$query = $this->db->query($sql, [$data[0]]);
|
||||
$lft = $query->getRowArray();
|
||||
|
||||
$data[] = $lft["lft"];
|
||||
$data[] = $lft["lft"];
|
||||
|
||||
$sql = "INSERT INTO departments
|
||||
(pdept_sq, dept_nm, dept_desc, dept_head ,use_yn, depth, insert_tm, insert_usr, update_tm, update_usr, lft, rgt)" .
|
||||
"VALUES (?, ?, ?, ?, ?, ?, now(), ?, now(), ?, ?, ?)";
|
||||
|
||||
$this->db->query($sql, $data);
|
||||
|
||||
if ($this->db->transStatus() === false) {
|
||||
return [
|
||||
'success' => false,
|
||||
'msg' => '저장실패',
|
||||
];
|
||||
}
|
||||
|
||||
// 성공
|
||||
return [
|
||||
'success' => true,
|
||||
];
|
||||
}
|
||||
|
||||
// 조직관리 UPDATE
|
||||
public function updateDept($data)
|
||||
{
|
||||
$sql = "UPDATE departments SET" .
|
||||
" pdept_sq = CASE depth WHEN '0' THEN pdept_sq ELSE ? END," .
|
||||
" dept_nm = ?," .
|
||||
" dept_desc = ?," .
|
||||
" dept_head = ?," .
|
||||
" use_yn = ?," .
|
||||
" depth = CASE depth WHEN '0' THEN depth ELSE ? END," .
|
||||
" update_tm = now()," .
|
||||
" update_usr = ?" .
|
||||
" WHERE dept_sq = ?";
|
||||
|
||||
$this->db->query($sql, $data);
|
||||
|
||||
if ($this->db->transStatus() === false) {
|
||||
return [
|
||||
'success' => false,
|
||||
'msg' => '저장실패',
|
||||
];
|
||||
}
|
||||
|
||||
// 성공
|
||||
return [
|
||||
'success' => true,
|
||||
];
|
||||
}
|
||||
}
|
||||
93
app/Models/manage/LoginLogModel.php
Normal file
93
app/Models/manage/LoginLogModel.php
Normal file
@@ -0,0 +1,93 @@
|
||||
<?php
|
||||
namespace App\Models\manage;
|
||||
|
||||
use CodeIgniter\Model;
|
||||
|
||||
class LoginLogModel extends Model
|
||||
{
|
||||
|
||||
public function getTotalCount($data)
|
||||
{
|
||||
$params = [];
|
||||
|
||||
$sql = "SELECT COUNT(*) AS cnt FROM user_login_log WHERE 1=1 ";
|
||||
if (!empty($data["srchTxt"])) {
|
||||
$sql .= "AND (
|
||||
usr_id_in LIKE CONCAT('%', ?, '%')
|
||||
OR usr_id_in IN (SELECT usr_id FROM users WHERE usr_nm LIKE CONCAT('%', ?, '%'))
|
||||
OR ip LIKE CONCAT('%', ?, '%')
|
||||
OR useragent LIKE CONCAT('%', ?, '%')
|
||||
) ";
|
||||
$params[] = $data["srchTxt"];
|
||||
$params[] = $data["srchTxt"];
|
||||
$params[] = $data["srchTxt"];
|
||||
$params[] = $data["srchTxt"];
|
||||
}
|
||||
|
||||
$query = $this->db->query($sql, $params ?: []);
|
||||
|
||||
return $query->getRow()->cnt;
|
||||
|
||||
}
|
||||
|
||||
public function getLoginLogList($start, $end, $data)
|
||||
{
|
||||
$sql = "SELECT id, success, usr_sq, usr_id_in, (SELECT usr_nm FROM users WHERE usr_id = usr_id_in) AS usr_nm, ip, useragent, reason, regdate FROM user_login_log ";
|
||||
$sql .= "WHERE 1=1 ";
|
||||
|
||||
if (!empty($data["srchTxt"])) {
|
||||
$sql .= "AND (
|
||||
usr_id_in LIKE CONCAT('%', ?, '%')
|
||||
OR usr_id_in IN (SELECT usr_id FROM users WHERE usr_nm LIKE CONCAT('%', ?, '%'))
|
||||
OR ip LIKE CONCAT('%', ?, '%')
|
||||
OR useragent LIKE CONCAT('%', ?, '%')
|
||||
) ";
|
||||
$params[] = $data["srchTxt"];
|
||||
$params[] = $data["srchTxt"];
|
||||
$params[] = $data["srchTxt"];
|
||||
$params[] = $data["srchTxt"];
|
||||
}
|
||||
|
||||
$sql .= "ORDER BY id DESC ";
|
||||
$sql .= "LIMIT ?, ?";
|
||||
|
||||
$params[] = (int) $start;
|
||||
$params[] = (int) $end;
|
||||
|
||||
$query = $this->db->query($sql, $params);
|
||||
|
||||
return $query->getResultArray();
|
||||
}
|
||||
|
||||
// 엑셀 다운로드 조회
|
||||
public function getExcelDownList($data)
|
||||
{
|
||||
$params = [];
|
||||
|
||||
$sql = "SELECT
|
||||
usr_id_in AS '입력아이디',
|
||||
(SELECT usr_nm FROM users WHERE usr_id = usr_id_in) AS '사용자명',
|
||||
ip AS '아이피', useragent AS '사용자 에이전트',
|
||||
reason AS '사유',
|
||||
regdate AS '접속일시'
|
||||
FROM user_login_log ";
|
||||
$sql .= "WHERE 1=1 ";
|
||||
|
||||
if (!empty($data["srchTxt"])) {
|
||||
$sql .= "AND (
|
||||
usr_id_in LIKE CONCAT('%', ?, '%')
|
||||
OR usr_id_in IN (SELECT usr_id FROM users WHERE usr_nm LIKE CONCAT('%', ?, '%'))
|
||||
OR ip LIKE CONCAT('%', ?, '%')
|
||||
OR useragent LIKE CONCAT('%', ?, '%')
|
||||
) ";
|
||||
$params[] = $data["srchTxt"];
|
||||
$params[] = $data["srchTxt"];
|
||||
$params[] = $data["srchTxt"];
|
||||
$params[] = $data["srchTxt"];
|
||||
}
|
||||
|
||||
$query = $this->db->query($sql, $params ?: []);
|
||||
|
||||
return $query->getResultArray();
|
||||
}
|
||||
}
|
||||
50
app/Models/manage/MenuModel.php
Normal file
50
app/Models/manage/MenuModel.php
Normal file
@@ -0,0 +1,50 @@
|
||||
<?php
|
||||
namespace App\Models\manage;
|
||||
|
||||
use CodeIgniter\Model;
|
||||
|
||||
class MenuModel extends Model
|
||||
{
|
||||
|
||||
public function getTotalCount()
|
||||
{
|
||||
$sql = "SELECT COUNT(*) AS cnt FROM menu WHERE 1=1 ";
|
||||
|
||||
$query = $this->db->query($sql);
|
||||
|
||||
return $query->getRow()->cnt;
|
||||
}
|
||||
|
||||
public function getMenuList($params)
|
||||
{
|
||||
|
||||
$sql = "SELECT mnu_id, " .
|
||||
" mnu_pid, " .
|
||||
" (SELECT mnu_nm FROM menu WHERE mnu_id = a.mnu_pid) mnu_pid_nm, " .
|
||||
" mnu_nm, " .
|
||||
" mnu_tp, " .
|
||||
" mnu_url, " .
|
||||
" use_yn, " .
|
||||
" insert_tm, " .
|
||||
" (select usr_nm from users where usr_sq = a.insert_usr) insert_usr, " .
|
||||
" (select usr_nm from users where usr_sq = a.update_usr) update_usr, " .
|
||||
" update_tm " .
|
||||
" FROM menu a ";
|
||||
|
||||
$sql .= "WHERE 1=1 ";
|
||||
|
||||
// if (!empty($params['pid'])) {
|
||||
// $sql .= " AND mnu_pid = {$params['pid']} ";
|
||||
// }
|
||||
|
||||
$sql .= " ORDER BY CASE WHEN mnu_pid = 'ROOT' THEN 0 ELSE 1 END, mnu_id";
|
||||
|
||||
|
||||
$query = $this->db->query($sql);
|
||||
|
||||
|
||||
return $query->getResultArray();
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
79
app/Models/manage/PhoneModel.php
Normal file
79
app/Models/manage/PhoneModel.php
Normal file
@@ -0,0 +1,79 @@
|
||||
<?php
|
||||
namespace App\Models\manage;
|
||||
|
||||
use CodeIgniter\Model;
|
||||
|
||||
class PhoneModel extends Model
|
||||
{
|
||||
|
||||
public function getCodes()
|
||||
{
|
||||
$sql = "SELECT category, cd, cd_nm, use_yn FROM codes WHERE category = 'CP_ID' AND use_yn = 'Y' ORDER BY view_odr ASC";
|
||||
|
||||
$query = $this->db->query($sql);
|
||||
|
||||
return $query->getResultArray();
|
||||
}
|
||||
|
||||
public function getTotalCount($data)
|
||||
{
|
||||
$sql = "SELECT
|
||||
COUNT(*) AS cnt
|
||||
FROM
|
||||
dupl_phone_list AS a
|
||||
LEFT JOIN codes AS b ON a.cpid = b.cd AND b.category = 'CP_ID' ";
|
||||
|
||||
$query = $this->db->query($sql);
|
||||
|
||||
return $query->getRow()->cnt;
|
||||
}
|
||||
|
||||
public function getDuplPhoneList($start, $end, $data)
|
||||
{
|
||||
$params = [];
|
||||
|
||||
$sql = "SELECT
|
||||
a.*
|
||||
, (CASE a.use_yn WHEN 'Y' THEN '사용' WHEN 'N' THEN '미사용' END) use_yn_nm
|
||||
, b.cd_nm as cpid_nm
|
||||
FROM
|
||||
dupl_phone_list AS a
|
||||
LEFT JOIN codes AS b ON a.cpid = b.cd AND b.category = 'CP_ID' ";
|
||||
|
||||
$sql .= "ORDER BY a.use_yn ASC, a.s_date DESC ";
|
||||
|
||||
$sql .= " LIMIT ?, ?";
|
||||
|
||||
$params[] = (int) $start;
|
||||
$params[] = (int) $end;
|
||||
|
||||
$query = $this->db->query($sql, $params);
|
||||
|
||||
return $query->getResultArray();
|
||||
}
|
||||
|
||||
public function insertDuplPhone($data)
|
||||
{
|
||||
$sql = "INSERT INTO dupl_phone_list " .
|
||||
" ( phone_number, use_yn, s_date, e_date, address" .
|
||||
" , owner, applicant, relation" .
|
||||
" , cpid, memo, insert_tm, insert_user_id)" .
|
||||
" VALUES ( ?, ?, ?, ?, ? " .
|
||||
" , ?, ?, ?" .
|
||||
" , ?, ?, SYSDATE(), ?)";
|
||||
|
||||
$this->db->query($sql, $data);
|
||||
|
||||
if ($this->db->transStatus() === false) {
|
||||
return [
|
||||
'success' => false,
|
||||
'msg' => '저장실패',
|
||||
];
|
||||
}
|
||||
|
||||
// 성공
|
||||
return [
|
||||
'success' => true,
|
||||
];
|
||||
}
|
||||
}
|
||||
443
app/Models/manage/UserModel.php
Normal file
443
app/Models/manage/UserModel.php
Normal file
@@ -0,0 +1,443 @@
|
||||
<?php
|
||||
namespace App\Models\manage;
|
||||
|
||||
use CodeIgniter\Model;
|
||||
|
||||
class UserModel extends Model
|
||||
{
|
||||
|
||||
// 유저레벨
|
||||
public function getUserLevel()
|
||||
{
|
||||
$sql = "SELECT cd, cd_nm" .
|
||||
" FROM codes" .
|
||||
" WHERE category = 'USER_LEVEL'" .
|
||||
" AND use_yn = 'Y'" .
|
||||
" ORDER BY view_odr asc";
|
||||
|
||||
$query = $this->db->query($sql);
|
||||
|
||||
return $query->getResultArray();
|
||||
}
|
||||
|
||||
// 본부리스트
|
||||
public function getBonbuList()
|
||||
{
|
||||
$sql = "SELECT dept_sq, pdept_sq, dept_nm, dept_desc, dept_head, use_yn, depth, insert_tm, insert_usr, update_tm, update_usr, lft, rgt" .
|
||||
" FROM departments" .
|
||||
" WHERE depth = 1" .
|
||||
" AND use_yn = 'Y'" .
|
||||
" ORDER BY lft";
|
||||
|
||||
$query = $this->db->query($sql);
|
||||
|
||||
return $query->getResultArray();
|
||||
}
|
||||
|
||||
// 팀리스트
|
||||
public function getTeamList()
|
||||
{
|
||||
$sql = "SELECT dept_sq, pdept_sq, dept_nm" .
|
||||
" FROM departments" .
|
||||
" WHERE depth = 2" .
|
||||
" AND use_yn = 'Y'" .
|
||||
" ORDER BY dept_nm";
|
||||
|
||||
$query = $this->db->query($sql);
|
||||
|
||||
return $query->getResultArray();
|
||||
}
|
||||
|
||||
// 조직리스트
|
||||
public function getDeptCode()
|
||||
{
|
||||
$sql = "SELECT dept_sq, pdept_sq, dept_nm, dept_desc, dept_head, use_yn, depth, insert_tm, insert_usr, update_tm, update_usr, lft, rgt" .
|
||||
" FROM departments" .
|
||||
" WHERE use_yn = 'Y' " .
|
||||
" ORDER BY lft";
|
||||
|
||||
$query = $this->db->query($sql);
|
||||
|
||||
return $query->getResultArray();
|
||||
}
|
||||
|
||||
public function getTotalCount($data)
|
||||
{
|
||||
$params = [];
|
||||
|
||||
$sql = "SELECT COUNT(*) AS cnt FROM users AS a WHERE 1=1 ";
|
||||
|
||||
if (!empty($data['srchLevel'])) {
|
||||
$sql .= " AND a.usr_level = ?";
|
||||
array_push($params, $data['srchLevel']);
|
||||
}
|
||||
|
||||
if (!empty($data['srchTeam'])) {
|
||||
$sql .= " AND a.dept_sq = ? ";
|
||||
array_push($params, $data['srchTeam']);
|
||||
}
|
||||
|
||||
if (!empty($data['useYn'])) {
|
||||
$sql .= " AND a.use_yn = ? ";
|
||||
array_push($params, $data['useYn']);
|
||||
}
|
||||
|
||||
if (!empty($data['srchTxt'])) {
|
||||
switch ($data['srchType']):
|
||||
case "1":
|
||||
$sql .= " AND a.usr_nm LIKE CONCAT('%', ?, '%') ";
|
||||
array_push($params, $data['srchTxt']);
|
||||
break;
|
||||
case "2":
|
||||
$sql .= " AND a.usr_id LIKE CONCAT('%', ?, '%') ";
|
||||
array_push($params, $data['srchTxt']);
|
||||
break;
|
||||
case "3":
|
||||
$sql .= " AND a.usr_position LIKE CONCAT('%', ?, '%') ";
|
||||
array_push($params, $data['srchTxt']);
|
||||
break;
|
||||
case "4":
|
||||
$sql .= " AND REPLACE(a.usr_tel1, '-', '') LIKE CONCAT('%', REPLACE(?, '-', ''), '%') ";
|
||||
array_push($params, $data['srchTxt']);
|
||||
break;
|
||||
case "5":
|
||||
$sql .= " AND CONCAT(a.usr_addr1, ' ', a.usr_addr2) LIKE CONCAT('%', ?, '%') ";
|
||||
array_push($params, $data['srchTxt']);
|
||||
break;
|
||||
default:
|
||||
$sql .= "
|
||||
AND (
|
||||
a.usr_nm LIKE CONCAT('%', ?, '%')
|
||||
OR a.usr_id LIKE CONCAT('%', ?, '%')
|
||||
OR a.usr_position LIKE CONCAT('%', ?, '%')
|
||||
OR REPLACE(a.usr_tel1, '-', '') LIKE CONCAT('%', REPLACE(?, '-', ''), '%')
|
||||
OR CONCAT(a.usr_addr1, ' ', a.usr_addr2) LIKE CONCAT('%', ?, '%')
|
||||
)
|
||||
";
|
||||
array_push($params, $data['srchTxt']);
|
||||
array_push($params, $data['srchTxt']);
|
||||
array_push($params, $data['srchTxt']);
|
||||
array_push($params, $data['srchTxt']);
|
||||
array_push($params, $data['srchTxt']);
|
||||
break;
|
||||
endswitch;
|
||||
|
||||
}
|
||||
|
||||
$query = $this->db->query($sql, $params ?: []);
|
||||
|
||||
return $query->getRow()->cnt;
|
||||
}
|
||||
|
||||
|
||||
public function getUserList($start, $end, $data)
|
||||
{
|
||||
$params = [];
|
||||
|
||||
$sql = "SELECT
|
||||
usr_sq
|
||||
, (select dept_sq from departments where dept_sq = (select pdept_sq from departments where a.dept_sq = dept_sq)) pdept_sq
|
||||
, (select dept_nm from departments where dept_sq = (select pdept_sq from departments where a.dept_sq = dept_sq)) pdept_nm
|
||||
, (select dept_nm from departments where a.dept_sq = dept_sq) as dept_nm
|
||||
, dept_sq
|
||||
, usr_id
|
||||
, usr_nm
|
||||
, (select cd_nm from codes where a.usr_level = cd and category = 'USER_LEVEL') level_nm
|
||||
, usr_level
|
||||
, usr_position
|
||||
, usr_tel1
|
||||
, usr_tel2
|
||||
, usr_addr1
|
||||
, usr_addr2
|
||||
, insert_tm
|
||||
, (select usr_nm from users where usr_sq = a.insert_usr) insert_usr
|
||||
, update_tm
|
||||
, (select usr_nm from users where usr_sq = a.update_usr) update_usr
|
||||
, use_yn
|
||||
, case when a.use_yn = 'Y' then '예' when a.use_yn = 'N' then '아니요' end as use_yn_nm
|
||||
, sms_auth_yn
|
||||
, case when a.sms_auth_yn = 'Y' then '예' when a.sms_auth_yn = 'N' then '아니요' end as sms_auth_yn_nm
|
||||
, last_usr_pw_tm
|
||||
FROM
|
||||
users AS a
|
||||
WHERE
|
||||
1=1 ";
|
||||
|
||||
if (!empty($data['srchLevel'])) {
|
||||
$sql .= " AND a.usr_level = ?";
|
||||
array_push($params, $data['srchLevel']);
|
||||
}
|
||||
|
||||
if (!empty($data['srchTeam'])) {
|
||||
$sql .= " AND a.dept_sq = ?";
|
||||
array_push($params, $data['srchTeam']);
|
||||
}
|
||||
|
||||
if (!empty($data['useYn'])) {
|
||||
$sql .= " AND a.use_yn = ?";
|
||||
array_push($params, $data['useYn']);
|
||||
}
|
||||
|
||||
if (!empty($data['srchTxt'])) {
|
||||
switch ($data['srchType']):
|
||||
case "1":
|
||||
$sql .= " AND a.usr_nm LIKE CONCAT('%', ?, '%') ";
|
||||
array_push($params, $data['srchTxt']);
|
||||
break;
|
||||
case "2":
|
||||
$sql .= " AND a.usr_id LIKE CONCAT('%', ?, '%') ";
|
||||
array_push($params, $data['srchTxt']);
|
||||
break;
|
||||
case "3":
|
||||
$sql .= " AND a.usr_position LIKE CONCAT('%', ?, '%') ";
|
||||
array_push($params, $data['srchTxt']);
|
||||
break;
|
||||
case "4":
|
||||
$sql .= " AND REPLACE(a.usr_tel1, '-', '') LIKE CONCAT('%', REPLACE(?, '-', ''), '%') ";
|
||||
array_push($params, $data['srchTxt']);
|
||||
break;
|
||||
case "5":
|
||||
$sql .= " AND CONCAT(a.usr_addr1, ' ', a.usr_addr2) LIKE CONCAT('%', ?, '%') ";
|
||||
array_push($params, $data['srchTxt']);
|
||||
break;
|
||||
default:
|
||||
$sql .= "
|
||||
AND (
|
||||
a.usr_nm LIKE CONCAT('%', ?, '%')
|
||||
OR a.usr_id LIKE CONCAT('%', ?, '%')
|
||||
OR a.usr_position LIKE CONCAT('%', ?, '%')
|
||||
OR REPLACE(a.usr_tel1, '-', '') LIKE CONCAT('%', REPLACE(?, '-', ''), '%')
|
||||
OR CONCAT(a.usr_addr1, ' ', a.usr_addr2) LIKE CONCAT('%', ?, '%')
|
||||
)
|
||||
";
|
||||
array_push($params, $data['srchTxt']);
|
||||
array_push($params, $data['srchTxt']);
|
||||
array_push($params, $data['srchTxt']);
|
||||
array_push($params, $data['srchTxt']);
|
||||
array_push($params, $data['srchTxt']);
|
||||
break;
|
||||
endswitch;
|
||||
|
||||
}
|
||||
|
||||
$sql .= "ORDER BY a.insert_tm DESC ";
|
||||
$sql .= "LIMIT ?, ?";
|
||||
|
||||
$params[] = (int) $start; // offset
|
||||
$params[] = (int) $end; // limit
|
||||
|
||||
|
||||
$query = $this->db->query($sql, $params);
|
||||
|
||||
return $query->getResultArray();
|
||||
}
|
||||
|
||||
|
||||
// 유저등록
|
||||
public function insertUser($data)
|
||||
{
|
||||
|
||||
|
||||
$sql = "INSERT INTO users
|
||||
(usr_id, usr_pw, dept_sq, usr_nm, usr_level, usr_position, usr_tel1, usr_tel2, usr_addr1, usr_addr2, insert_tm, insert_usr, use_yn, sms_auth_yn, last_usr_pw_tm)" .
|
||||
" VALUES (?, SHA2(?,256), ?, ?, ?, ?, ?, ?, ?, ?, now(), ?, ?, ?, now())";
|
||||
|
||||
|
||||
$this->db->query($sql, $data);
|
||||
|
||||
if ($this->db->transStatus() === false) {
|
||||
return [
|
||||
'success' => false,
|
||||
'msg' => '저장실패',
|
||||
];
|
||||
}
|
||||
|
||||
// 성공
|
||||
return [
|
||||
'success' => true,
|
||||
];
|
||||
}
|
||||
|
||||
|
||||
// 유저수정
|
||||
public function updateUser($data, $addUserPswd, $usrSq)
|
||||
{
|
||||
$sql = "UPDATE users SET
|
||||
usr_nm = ?,
|
||||
dept_sq = ?,
|
||||
usr_level = ?,
|
||||
usr_position = ?,
|
||||
usr_tel1 = ?,
|
||||
usr_tel2 = ?,
|
||||
usr_addr1 = ?,
|
||||
usr_addr2 = ?,
|
||||
update_tm = NOW(),
|
||||
update_usr = ?,
|
||||
use_yn = ?,
|
||||
sms_auth_yn = ?";
|
||||
|
||||
$params = [
|
||||
$data[0], // usr_nm
|
||||
$data[1], // dept_sq
|
||||
$data[2], // usr_level
|
||||
$data[3], // usr_position
|
||||
$data[4], // usr_tel1
|
||||
$data[5], // usr_tel2
|
||||
$data[6], // usr_addr1
|
||||
$data[7], // usr_addr2
|
||||
$data[8], // update_usr
|
||||
$data[9], // use_yn
|
||||
$data[10], // sms_auth_yn
|
||||
];
|
||||
|
||||
if (!empty($addUserPswd)) {
|
||||
$sql .= ", usr_pw = SHA2(?, 256),
|
||||
last_usr_pw_tm = NOW()";
|
||||
$params[] = $addUserPswd;
|
||||
}
|
||||
|
||||
$sql .= " WHERE usr_sq = ?";
|
||||
$params[] = $usrSq;
|
||||
|
||||
$this->db->query($sql, $params);
|
||||
|
||||
if ($this->db->transStatus() === false) {
|
||||
return [
|
||||
'success' => false,
|
||||
'msg' => '저장실패',
|
||||
];
|
||||
}
|
||||
|
||||
// 성공
|
||||
return [
|
||||
'success' => true,
|
||||
];
|
||||
}
|
||||
|
||||
public function removeUser($data)
|
||||
{
|
||||
|
||||
$sql = " UPDATE users " .
|
||||
" SET usr_nm = '***' " .
|
||||
" ,usr_pw = '1234' " .
|
||||
" ,usr_tel1 = '***' " .
|
||||
" ,usr_tel2 = '' " .
|
||||
" ,usr_addr1 = '' " .
|
||||
" ,usr_position = '' " .
|
||||
" ,dept_sq = '14' " . //소속조직 : 퇴사자 관리
|
||||
" ,sms_auth_yn = 'N' " .
|
||||
" ,use_yn = 'N' " .
|
||||
" ,usr_addr2 = '삭제' " .
|
||||
" ,update_tm = NOW() " .
|
||||
" ,update_usr = ? " .
|
||||
" WHERE usr_sq = ? ";
|
||||
|
||||
|
||||
$this->db->query($sql, $data);
|
||||
|
||||
|
||||
if ($this->db->transStatus() === false) {
|
||||
return [
|
||||
'success' => false,
|
||||
'msg' => '저장실패',
|
||||
];
|
||||
}
|
||||
|
||||
// 성공
|
||||
return [
|
||||
'success' => true,
|
||||
];
|
||||
}
|
||||
|
||||
// 엑셀 다운로드 조회
|
||||
public function getExcelUserList($data)
|
||||
{
|
||||
$params = [];
|
||||
|
||||
$sql = "SELECT
|
||||
(select dept_nm from departments where dept_sq = (select pdept_sq from departments where a.dept_sq = dept_sq)) AS '소속본부'
|
||||
, (select dept_nm from departments where a.dept_sq = dept_sq) AS '소속팀'
|
||||
, usr_id AS '사원번호'
|
||||
, usr_nm AS '사용자명'
|
||||
, (SELECT cd_nm FROM codes where a.usr_level = cd and category = 'USER_LEVEL') AS '등급'
|
||||
, usr_position AS '직급'
|
||||
, usr_tel1 AS '연락처'
|
||||
, CONCAT(usr_addr1, usr_addr2) AS '주소'
|
||||
, case when a.sms_auth_yn = 'Y' then '예' when a.sms_auth_yn = 'N' then '아니요' end AS 'SMS인증여부'
|
||||
, insert_tm AS '등록자'
|
||||
, (select usr_nm from users where usr_sq = a.insert_usr) AS '등록일시'
|
||||
, update_tm AS '수정자'
|
||||
, (select usr_nm from users where usr_sq = a.update_usr) AS '수정일시'
|
||||
, last_usr_pw_tm AS '비빌번호변경일시'
|
||||
FROM
|
||||
users AS a
|
||||
WHERE
|
||||
1=1 ";
|
||||
|
||||
if (!empty($data['srchLevel'])) {
|
||||
$sql .= " AND a.usr_level = ? ";
|
||||
array_push($params, $data['srchLevel']);
|
||||
}
|
||||
|
||||
if (!empty($data['srchTeam'])) {
|
||||
$sql .= " AND a.dept_sq = ? ";
|
||||
array_push($params, $data['srchTeam']);
|
||||
}
|
||||
|
||||
if (!empty($data['useYn'])) {
|
||||
$sql .= " AND a.use_yn = ? ";
|
||||
array_push($params, $data['useYn']);
|
||||
}
|
||||
|
||||
if (!empty($data['srchTxt'])) {
|
||||
switch ($data['srchType']):
|
||||
case "1":
|
||||
$sql .= " AND a.usr_nm LIKE CONCAT('%', ?, '%') ";
|
||||
array_push($params, $data['srchTxt']);
|
||||
break;
|
||||
case "2":
|
||||
$sql .= " AND a.usr_id LIKE CONCAT('%', ?, '%') ";
|
||||
array_push($params, $data['srchTxt']);
|
||||
break;
|
||||
case "3":
|
||||
$sql .= " AND a.usr_position LIKE CONCAT('%', ?, '%') ";
|
||||
array_push($params, $data['srchTxt']);
|
||||
break;
|
||||
case "4":
|
||||
$sql .= " AND REPLACE(a.usr_tel1, '-', '') LIKE CONCAT('%', REPLACE(?, '-', ''), '%') ";
|
||||
array_push($params, $data['srchTxt']);
|
||||
break;
|
||||
case "5":
|
||||
$sql .= " AND CONCAT(a.usr_addr1, ' ', a.usr_addr2) LIKE CONCAT('%', ?, '%') ";
|
||||
array_push($params, $data['srchTxt']);
|
||||
break;
|
||||
default:
|
||||
$sql .= "
|
||||
AND (
|
||||
a.usr_nm LIKE CONCAT('%', ?, '%')
|
||||
OR a.usr_id LIKE CONCAT('%', ?, '%')
|
||||
OR a.usr_position LIKE CONCAT('%', ?, '%')
|
||||
OR REPLACE(a.usr_tel1, '-', '') LIKE CONCAT('%', REPLACE(?, '-', ''), '%')
|
||||
OR CONCAT(a.usr_addr1, ' ', a.usr_addr2) LIKE CONCAT('%', ?, '%')
|
||||
)
|
||||
";
|
||||
array_push($params, $data['srchTxt']);
|
||||
array_push($params, $data['srchTxt']);
|
||||
array_push($params, $data['srchTxt']);
|
||||
array_push($params, $data['srchTxt']);
|
||||
array_push($params, $data['srchTxt']);
|
||||
break;
|
||||
endswitch;
|
||||
|
||||
}
|
||||
|
||||
$sql .= "ORDER BY a.insert_tm DESC ";
|
||||
|
||||
|
||||
$query = $this->db->query($sql, $params ?: []);
|
||||
|
||||
return $query->getResultArray();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user