feat: add designated shop detail and PII masking updates

Rebase current admin changes on top of origin/main and exclude local artifacts from tracking to reduce push payload.

Made-with: Cursor
This commit is contained in:
taekyoungc
2026-04-08 15:22:24 +09:00
parent de8f631ca8
commit 71edc1eb20
18 changed files with 934 additions and 360 deletions

View File

@@ -89,7 +89,7 @@ class DesignatedShop extends BaseController
public function export()
{
helper(['admin', 'export']);
helper(['admin', 'export', 'pii_mask']);
$lgIdx = admin_effective_lg_idx();
if (!$lgIdx) {
return redirect()->to(site_url('admin/designated-shops'))->with('error', '지자체를 선택해 주세요.');
@@ -104,7 +104,7 @@ class DesignatedShop extends BaseController
$row->ds_idx,
$row->ds_shop_no,
$row->ds_name,
$row->ds_rep_name,
mask_person_name($row->ds_rep_name ?? null),
$row->ds_biz_no,
$row->ds_va_number,
$row->ds_tel ?? '',
@@ -121,6 +121,41 @@ class DesignatedShop extends BaseController
);
}
/**
* 지정판매소 상세 (읽기 전용, 목록에서 연결)
*/
public function show(int $id)
{
helper('admin');
$lgIdx = admin_effective_lg_idx();
if ($lgIdx === null || $lgIdx <= 0) {
return redirect()->to(work_area_home_url())
->with('error', '작업할 지자체가 선택되지 않았습니다. 지자체를 선택해 주세요.');
}
$shop = $this->shopModel->find($id);
if ($shop === null || (int) $shop->ds_lg_idx !== $lgIdx) {
return redirect()->to(mgmt_url('designated-shops'))
->with('error', '해당 지정판매소를 찾을 수 없습니다.');
}
$currentLg = $this->lgModel->find($lgIdx);
$stateLabel = match ((int) $shop->ds_state) {
1 => '정상',
2 => '폐업',
3 => '직권해지',
default => (string) $shop->ds_state,
};
return $this->renderWorkPage('지정판매소 정보', 'admin/designated_shop/show', [
'shop' => $shop,
'currentLg' => $currentLg,
'stateLabel' => $stateLabel,
'can_edit' => $this->isSuperAdmin() || $this->isLocalAdmin(),
]);
}
/**
* 지정판매소 등록 폼 (효과 지자체 기준)
*/