From 2a6ab7bf0174560419abe07be6c6ff44ee76d70c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EC=B5=9C=EC=A4=80=ED=9D=A0?= Date: Fri, 11 Apr 2025 12:55:54 +0900 Subject: [PATCH] dbms_primeidc_init...1 --- .../DBMS/Client/PaymentController.php | 25 +----------- extdbms/lib/Services/OnetimeService.php | 2 + extdbms/lib/Services/ServiceService.php | 40 +++++++++++++++++++ 3 files changed, 44 insertions(+), 23 deletions(-) diff --git a/extdbms/lib/Controllers/DBMS/Client/PaymentController.php b/extdbms/lib/Controllers/DBMS/Client/PaymentController.php index 47042be..26d954f 100644 --- a/extdbms/lib/Controllers/DBMS/Client/PaymentController.php +++ b/extdbms/lib/Controllers/DBMS/Client/PaymentController.php @@ -2,8 +2,6 @@ namespace lib\Controllers\DBMS\Client; -use lib\Models\AddDbModel; -use lib\Models\ClientModel; use lib\Utils\Pagination; class PaymentController extends ClientController @@ -53,22 +51,18 @@ class PaymentController extends ClientController $mode = $params['mode'] ?? $this->request->get('mode') ?? 'all'; switch ($mode) { case 'today': - $this->getServiceService()->getModel()->where("service_payment_date = CURDATE()"); $this->message = "[{$today} 기준 당일 "; break; case '1day': $nonpaymentDay = 1; - $this->getServiceService()->getModel()->where("service_payment_date = Date_Add(CURDATE(),INTERVAL {$nonpaymentDay} DAY)"); $this->message = "[{$today}] 기준 {$nonpaymentDay}일전"; break; case '2day': $nonpaymentDay = 2; - $this->getServiceService()->getModel()->where("service_payment_date = Date_Add(CURDATE(),INTERVAL {$nonpaymentDay} DAY)"); $this->message = "[{$today}] 기준 {$nonpaymentDay}일전"; break; case '3day': $nonpaymentDay = 3; - $this->getServiceService()->getModel()->where("service_payment_date = Date_Add(CURDATE(),INTERVAL {$nonpaymentDay} DAY)"); $this->message = "[{$today}] 기준 {$nonpaymentDay}일전"; break; case 'all': @@ -76,25 +70,10 @@ class PaymentController extends ClientController $this->message = "[{$today}] 기준 전체"; break; } - $table = $this->getServiceService()->getModel()->getTable(); - $clientTable = ClientModel::TABLE; - $addDbTable = AddDbModel::TABLE; - $this->getServiceService()->getModel()->select("{$clientTable}.Client_Name,{$table}.service_code,service_line,server_code,service_ip,service_payment_date,service_amount,service_nonpayment,service_note,addDB_case,addDB_nonpayment,addDB_payment,addDB_accountStatus,addDB_ip,addDB_payment_date"); - $this->getServiceService()->getModel()->join($clientTable, "{$table}.client_code = {$clientTable}.Client_Code"); - $this->getServiceService()->getModel()->join($addDbTable, "{$table}.service_code = {$addDbTable}.service_code"); - $this->getServiceService()->getModel()->whereNotIn("{$addDbTable}.client_code", $exclude_clients); - $this->getServiceService()->getModel()->whereNotIn("{$addDbTable}.addDB_accountStatus", ["complete"]); - $this->getServiceService()->getModel()->orderBy("service_payment_date", "DESC"); - //Query문 Rest여부 -> 같은조건에 Count 받고, 결과값을 받고 싶을때는 continue() - $this->getServiceService()->getModel()->setContinue(true); - $this->total = $this->getServiceService()->getCount(); - //limit, offset 설정 + $this->mode = $mode; $this->curPage = intval($params['curPage'] ?? $this->request->get('curPage') ?? 1); $this->perPage = intval($params['perPage'] ?? $this->request->get('perPage') ?? VIEW_LIST_PERPAGE); - $this->getServiceService()->getModel()->limit($this->perPage); - $this->getServiceService()->getModel()->offset(($this->curPage - 1) * $this->perPage); - $this->entities = $this->getServiceService()->getEntities(); - $this->mode = $mode; + [$this->total, $this->entities] = $this->getServiceService()->getNonPaymentEntitiesByMode($this->curPage, $this->perPage, $mode, $exclude_clients); $this->pagination = new Pagination($this->total, (int)$this->curPage, (int)$this->perPage); return $this->render(path: __FUNCTION__); } diff --git a/extdbms/lib/Services/OnetimeService.php b/extdbms/lib/Services/OnetimeService.php index e47b192..650b1d7 100644 --- a/extdbms/lib/Services/OnetimeService.php +++ b/extdbms/lib/Services/OnetimeService.php @@ -6,6 +6,7 @@ use lib\Entities\ClientEntity; use lib\Entities\MemberEntity; use lib\Entities\OnetimeEntity as Entity; use lib\Entities\ServiceEntity; +use lib\Http\Request; use lib\Models\OnetimeModel as Model; class OnetimeService extends CommonService @@ -53,6 +54,7 @@ class OnetimeService extends CommonService //limit, offset 설정 $this->getModel()->limit($perPage); $this->getModel()->offset(($curPage - 1) * $perPage); + $entities = $this->getEntities(); return [$total, $this->getEntities()]; } diff --git a/extdbms/lib/Services/ServiceService.php b/extdbms/lib/Services/ServiceService.php index 5f031ba..622c36f 100644 --- a/extdbms/lib/Services/ServiceService.php +++ b/extdbms/lib/Services/ServiceService.php @@ -5,6 +5,8 @@ namespace lib\Services; use lib\Entities\ClientEntity; use lib\Entities\ServiceEntity as Entity; use lib\Entities\ServiceEntity; +use lib\Models\AddDbModel; +use lib\Models\ClientModel; use lib\Models\ServiceModel as Model; class ServiceService extends CommonService @@ -48,6 +50,44 @@ class ServiceService extends CommonService return [$total, $this->getEntities()]; } + //미지급금 리스트 + public function getNonPaymentEntitiesByMode(int $curPage, int $perPage, string $mode, array $exclude_clients): array + { + switch ($mode) { + case 'today': + $this->getModel()->where("service_payment_date = CURDATE()"); + break; + case '1day': + $nonpaymentDay = 1; + $this->getModel()->where("service_payment_date = Date_Add(CURDATE(),INTERVAL {$nonpaymentDay} DAY)"); + break; + case '2day': + $nonpaymentDay = 2; + $this->getModel()->where("service_payment_date = Date_Add(CURDATE(),INTERVAL {$nonpaymentDay} DAY)"); + break; + case '3day': + $nonpaymentDay = 3; + $this->getModel()->where("service_payment_date = Date_Add(CURDATE(),INTERVAL {$nonpaymentDay} DAY)"); + break; + } + $table = $this->getModel()->getTable(); + $clientTable = ClientModel::TABLE; + $addDbTable = AddDbModel::TABLE; + $this->getModel()->select("{$clientTable}.Client_Name,{$table}.service_code,service_line,server_code,service_ip,service_payment_date,service_amount,service_nonpayment,service_note,addDB_case,addDB_nonpayment,addDB_payment,addDB_accountStatus,addDB_ip,addDB_payment_date"); + $this->getModel()->join($clientTable, "{$table}.client_code = {$clientTable}.Client_Code"); + $this->getModel()->join($addDbTable, "{$table}.service_code = {$addDbTable}.service_code"); + $this->getModel()->whereNotIn("{$addDbTable}.client_code", $exclude_clients); + $this->getModel()->whereNotIn("{$addDbTable}.addDB_accountStatus", ["complete"]); + $this->getModel()->orderBy("service_payment_date", "DESC"); + //Query문 Rest여부 -> 같은조건에 Count 받고, 결과값을 받고 싶을때는 continue() + $this->getModel()->setContinue(true); + $total = $this->getCount(); + //limit, offset 설정 + $this->getModel()->limit($perPage); + $this->getModel()->offset(($curPage - 1) * $perPage); + return [$total, $this->getEntities()]; + } + //최근 $day일간 신규서비스 카운트 public function getLatestCount(int $day, array $excepts): int|string {