docs: Phase 3.1 MultiLangService 완료 문서 업데이트 및 코드 포맷 정리
- PRISMA_TO_RAW_QUERY_MIGRATION_PLAN.md 업데이트 - MultiLangService (25개) 완료 표시 - Phase 3 진행률 반영 - multilangService.ts 코드 포맷 정리 Phase 3 진행률: 25/162 (15.4%) 전체 진행률: 276/444 (62.2%)
This commit is contained in:
parent
284c67193d
commit
143f851190
|
|
@ -31,6 +31,7 @@ backend-node/src/services/
|
|||
├── dynamicFormService.ts # 동적 폼 (0개 호출) ✅ 전환 완료
|
||||
├── externalDbConnectionService.ts # 외부DB (0개 호출) ✅ 전환 완료
|
||||
├── dataflowControlService.ts # 제어관리 (0개 호출) ✅ 전환 완료
|
||||
├── multilangService.ts # 다국어 (0개 호출) ✅ 전환 완료
|
||||
├── ddlExecutionService.ts # DDL 실행 (6개 호출)
|
||||
├── authService.ts # 인증 (5개 호출)
|
||||
└── multiConnectionQueryService.ts # 다중 연결 (4개 호출)
|
||||
|
|
@ -121,7 +122,7 @@ backend-node/ (루트)
|
|||
|
||||
#### 🟠 **복잡 (Raw Query 혼재) - 2순위**
|
||||
|
||||
- `multilangService.ts` (25개) - 재귀 쿼리, 다국어 처리
|
||||
- `multilangService.ts` (0개) - ✅ **전환 완료** (Phase 3.1)
|
||||
- `batchService.ts` (16개) - 배치 작업 관리
|
||||
- `componentStandardService.ts` (16개) - 컴포넌트 표준 관리
|
||||
- `commonCodeService.ts` (15개) - 코드 관리, 계층 구조
|
||||
|
|
@ -1128,7 +1129,14 @@ describe("Performance Benchmarks", () => {
|
|||
|
||||
### **Phase 3: 관리 기능 (2.5주) - 162개 호출**
|
||||
|
||||
- [ ] MultiLangService 전환 (25개) - 재귀 쿼리
|
||||
- [x] **MultiLangService 전환 (25개)** ✅ **완료** (Phase 3.1)
|
||||
- [x] 25개 Prisma 호출 전환 완료 (다국어 관리 CRUD)
|
||||
- [x] 동적 WHERE 조건 및 동적 UPDATE 쿼리 구현
|
||||
- [x] 트랜잭션 처리 (삭제 + 삽입)
|
||||
- [x] JOIN 쿼리 (multi_lang_text + multi_lang_key_master)
|
||||
- [x] IN 절 동적 파라미터 바인딩
|
||||
- [x] TypeScript 컴파일 성공
|
||||
- [x] Prisma import 완전 제거
|
||||
- [ ] 배치 관련 서비스 전환 (40개) ⭐ 대규모 신규 발견
|
||||
- [ ] BatchService (16개), BatchExternalDbService (8개)
|
||||
- [ ] BatchExecutionLogService (7개), BatchManagementService (5개)
|
||||
|
|
|
|||
|
|
@ -288,9 +288,10 @@ export class MultiLangService {
|
|||
paramIndex++;
|
||||
}
|
||||
|
||||
const whereClause = whereConditions.length > 0
|
||||
? `WHERE ${whereConditions.join(" AND ")}`
|
||||
: "";
|
||||
const whereClause =
|
||||
whereConditions.length > 0
|
||||
? `WHERE ${whereConditions.join(" AND ")}`
|
||||
: "";
|
||||
|
||||
const langKeys = await query<{
|
||||
key_id: number;
|
||||
|
|
@ -532,10 +533,9 @@ export class MultiLangService {
|
|||
// 트랜잭션으로 키와 연관된 텍스트 모두 삭제
|
||||
await transaction(async (client) => {
|
||||
// 관련된 다국어 텍스트 삭제
|
||||
await client.query(
|
||||
`DELETE FROM multi_lang_text WHERE key_id = $1`,
|
||||
[keyId]
|
||||
);
|
||||
await client.query(`DELETE FROM multi_lang_text WHERE key_id = $1`, [
|
||||
keyId,
|
||||
]);
|
||||
|
||||
// 다국어 키 삭제
|
||||
await client.query(
|
||||
|
|
@ -618,10 +618,9 @@ export class MultiLangService {
|
|||
// 트랜잭션으로 기존 텍스트 삭제 후 새로 생성
|
||||
await transaction(async (client) => {
|
||||
// 기존 텍스트 삭제
|
||||
await client.query(
|
||||
`DELETE FROM multi_lang_text WHERE key_id = $1`,
|
||||
[keyId]
|
||||
);
|
||||
await client.query(`DELETE FROM multi_lang_text WHERE key_id = $1`, [
|
||||
keyId,
|
||||
]);
|
||||
|
||||
// 새로운 텍스트 삽입
|
||||
if (textData.texts.length > 0) {
|
||||
|
|
@ -672,7 +671,14 @@ export class MultiLangService {
|
|||
AND mlkm.menu_name = $4
|
||||
AND mlkm.lang_key = $5
|
||||
AND mlkm.is_active = $6`,
|
||||
[params.userLang, "Y", params.companyCode, params.menuCode, params.langKey, "Y"]
|
||||
[
|
||||
params.userLang,
|
||||
"Y",
|
||||
params.companyCode,
|
||||
params.menuCode,
|
||||
params.langKey,
|
||||
"Y",
|
||||
]
|
||||
);
|
||||
|
||||
if (!result) {
|
||||
|
|
@ -765,8 +771,10 @@ export class MultiLangService {
|
|||
}
|
||||
|
||||
// 모든 키에 대한 번역 조회
|
||||
const placeholders = params.langKeys.map((_, i) => `$${i + 4}`).join(", ");
|
||||
|
||||
const placeholders = params.langKeys
|
||||
.map((_, i) => `$${i + 4}`)
|
||||
.join(", ");
|
||||
|
||||
const translations = await query<{
|
||||
lang_text: string;
|
||||
lang_key: string;
|
||||
|
|
@ -844,10 +852,9 @@ export class MultiLangService {
|
|||
});
|
||||
|
||||
// 언어 마스터 삭제
|
||||
await client.query(
|
||||
`DELETE FROM language_master WHERE lang_code = $1`,
|
||||
[langCode]
|
||||
);
|
||||
await client.query(`DELETE FROM language_master WHERE lang_code = $1`, [
|
||||
langCode,
|
||||
]);
|
||||
});
|
||||
|
||||
logger.info("언어 삭제 완료", { langCode });
|
||||
|
|
|
|||
Loading…
Reference in New Issue