From 04af23b814881870704a00805dadd31d6e74295c Mon Sep 17 00:00:00 2001 From: "gayoun.park" Date: Mon, 11 May 2026 15:58:03 +0900 Subject: [PATCH] =?UTF-8?q?=EC=98=81=EB=AC=B8=20Enum=20=ED=95=AD=EB=AA=A9?= =?UTF-8?q?=EA=B0=92=20=EB=82=B4=EB=A6=B4=20=EC=88=98=20=EC=9E=88=EB=8F=84?= =?UTF-8?q?=EB=A1=9D=20=EC=88=98=EC=A0=95=20Accept-Language:=20en=20?= =?UTF-8?q?=EC=9C=BC=EB=A1=9C=20=EC=B6=94=EA=B0=80=ED=95=98=EC=97=AC=20?= =?UTF-8?q?=ED=98=B8=EC=B6=9C=ED=95=B4=EC=95=BC=20=ED=95=A8.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../dto/ChangeDetectionDto.java | 10 ++++ .../code/CommonCodeApiController.java | 17 ------- .../cd/kamcoback/code/dto/CommonCodeDto.java | 5 +- .../common/enums/CommonUseStatus.java | 5 ++ .../cd/kamcoback/common/enums/CrsType.java | 14 +++-- .../common/enums/FileUploadStatus.java | 16 ++++-- .../common/enums/ImageryFitStatus.java | 5 ++ .../cd/kamcoback/common/enums/LayerType.java | 18 ++++--- .../cd/kamcoback/common/enums/RoleType.java | 5 ++ .../cd/kamcoback/common/enums/StatusType.java | 5 ++ .../common/enums/SyncCheckStateType.java | 5 ++ .../kamcoback/common/enums/SyncStateType.java | 5 ++ .../common/utils/enums/EnumType.java | 2 + .../kamcoback/common/utils/enums/Enums.java | 5 +- .../kamcoback/config/api/ApiResponseDto.java | 5 ++ .../cd/kamcoback/gukyuin/dto/GukYuinDto.java | 5 ++ .../kamcoback/gukyuin/dto/GukYuinStatus.java | 5 ++ .../inference/dto/InferenceResultDto.java | 20 ++++++++ .../kamcoback/label/dto/LabelAllocateDto.java | 15 ++++++ .../cd/kamcoback/log/dto/ErrorLogDto.java | 5 ++ .../cd/kamcoback/log/dto/EventStatus.java | 5 ++ .../kamco/cd/kamcoback/log/dto/EventType.java | 5 ++ .../mapsheet/dto/MapSheetMngDto.java | 9 ++++ .../cd/kamcoback/members/dto/MembersDto.java | 9 +++- .../cd/kamcoback/model/dto/ModelMngDto.java | 5 ++ .../log/AuditLogRepositoryImpl.java | 51 ++++++++++++------- 26 files changed, 203 insertions(+), 53 deletions(-) diff --git a/src/main/java/com/kamco/cd/kamcoback/changedetection/dto/ChangeDetectionDto.java b/src/main/java/com/kamco/cd/kamcoback/changedetection/dto/ChangeDetectionDto.java index 4d9681b1..8cf65f1a 100644 --- a/src/main/java/com/kamco/cd/kamcoback/changedetection/dto/ChangeDetectionDto.java +++ b/src/main/java/com/kamco/cd/kamcoback/changedetection/dto/ChangeDetectionDto.java @@ -35,6 +35,11 @@ public class ChangeDetectionDto { public String getText() { return desc; } + + @Override + public String getTextEn() { + return name(); + } } @CodeExpose @@ -55,6 +60,11 @@ public class ChangeDetectionDto { public String getText() { return desc; } + + @Override + public String getTextEn() { + return desc; + } } @Schema(name = "TestDto", description = "테스트용") diff --git a/src/main/java/com/kamco/cd/kamcoback/code/CommonCodeApiController.java b/src/main/java/com/kamco/cd/kamcoback/code/CommonCodeApiController.java index 10b83106..30cb8540 100644 --- a/src/main/java/com/kamco/cd/kamcoback/code/CommonCodeApiController.java +++ b/src/main/java/com/kamco/cd/kamcoback/code/CommonCodeApiController.java @@ -324,21 +324,4 @@ public class CommonCodeApiController { public ApiResponseDto> getTypeCode(@PathVariable String type) { return ApiResponseDto.ok(commonCodeService.getTypeCode(type)); } - - @Operation(summary = "코드 단건 조회", description = "코드 조회") - @ApiResponses( - value = { - @ApiResponse( - responseCode = "200", - description = "코드 조회 성공", - content = - @Content( - mediaType = "application/json", - schema = @Schema(implementation = CodeDto.class))), - @ApiResponse(responseCode = "500", description = "서버 오류", content = @Content) - }) - @GetMapping("/type/copy/{type}") - public ApiResponseDto> getTypeCodeCopy(@PathVariable String type) { - return ApiResponseDto.ok(commonCodeService.getTypeCode(type)); - } } diff --git a/src/main/java/com/kamco/cd/kamcoback/code/dto/CommonCodeDto.java b/src/main/java/com/kamco/cd/kamcoback/code/dto/CommonCodeDto.java index baa9fdc5..cfde2bc4 100644 --- a/src/main/java/com/kamco/cd/kamcoback/code/dto/CommonCodeDto.java +++ b/src/main/java/com/kamco/cd/kamcoback/code/dto/CommonCodeDto.java @@ -14,6 +14,7 @@ import lombok.AllArgsConstructor; import lombok.Getter; import lombok.NoArgsConstructor; import lombok.Setter; +import org.springframework.context.i18n.LocaleContextHolder; import org.springframework.data.domain.PageRequest; import org.springframework.data.domain.Pageable; import org.springframework.data.domain.Sort; @@ -119,10 +120,12 @@ public class CommonCodeDto { String props2, String props3, ZonedDateTime deletedDttm) { + String lang = LocaleContextHolder.getLocale().getLanguage(); + boolean english = "en".equalsIgnoreCase(lang); this.id = id; this.code = code; this.description = description; - this.name = name; + this.name = english ? code : name; this.order = order; this.used = used; this.deleted = deleted; diff --git a/src/main/java/com/kamco/cd/kamcoback/common/enums/CommonUseStatus.java b/src/main/java/com/kamco/cd/kamcoback/common/enums/CommonUseStatus.java index 66f9260b..0c98181f 100644 --- a/src/main/java/com/kamco/cd/kamcoback/common/enums/CommonUseStatus.java +++ b/src/main/java/com/kamco/cd/kamcoback/common/enums/CommonUseStatus.java @@ -45,4 +45,9 @@ public enum CommonUseStatus implements EnumType { public EnumDto getEnumDto() { return new EnumDto<>(this, this.id, this.text); } + + @Override + public String getTextEn() { + return id; + } } diff --git a/src/main/java/com/kamco/cd/kamcoback/common/enums/CrsType.java b/src/main/java/com/kamco/cd/kamcoback/common/enums/CrsType.java index 85ef27d8..9d69937e 100644 --- a/src/main/java/com/kamco/cd/kamcoback/common/enums/CrsType.java +++ b/src/main/java/com/kamco/cd/kamcoback/common/enums/CrsType.java @@ -9,12 +9,13 @@ import lombok.Getter; @Getter @AllArgsConstructor public enum CrsType implements EnumType { - EPSG_3857("Web Mercator, 웹지도 미터(EPSG:900913 동일)"), - EPSG_4326("WGS84 위경도, GeoJSON/OSM 기본"), - EPSG_5186("5186::Korea 2000 중부 TM, 한국 SHP"), - EPSG_5179("5179::Korea 2000 중부 TM, 한국 SHP"); + EPSG_3857("Web Mercator, 웹지도 미터(EPSG:900913 동일)", "Web Mercator"), + EPSG_4326("WGS84 위경도, GeoJSON/OSM 기본", "GeoJSON/OSM"), + EPSG_5186("5186::Korea 2000 중부 TM, 한국 SHP", "5186::Korea 2000"), + EPSG_5179("5179::Korea 2000 중부 TM, 한국 SHP", "5179::Korea 2000"); private final String desc; + private final String descEn; @Override public String getId() { @@ -25,4 +26,9 @@ public enum CrsType implements EnumType { public String getText() { return desc; } + + @Override + public String getTextEn() { + return descEn; + } } diff --git a/src/main/java/com/kamco/cd/kamcoback/common/enums/FileUploadStatus.java b/src/main/java/com/kamco/cd/kamcoback/common/enums/FileUploadStatus.java index d81ab6eb..01e14b97 100644 --- a/src/main/java/com/kamco/cd/kamcoback/common/enums/FileUploadStatus.java +++ b/src/main/java/com/kamco/cd/kamcoback/common/enums/FileUploadStatus.java @@ -9,13 +9,14 @@ import lombok.Getter; @Getter @AllArgsConstructor public enum FileUploadStatus implements EnumType { - INIT("초기화"), - UPLOADING("업로드중"), - DONE("업로드완료"), - MERGED("병합완료"), - MERGE_FAIL("병합 실패"); + INIT("초기화", "Init"), + UPLOADING("업로드중", "Uploading"), + DONE("업로드완료", "Upload Done"), + MERGED("병합완료", "Merged Done"), + MERGE_FAIL("병합 실패", "Merge Failed"); private final String desc; + private final String descEn; @Override public String getId() { @@ -26,4 +27,9 @@ public enum FileUploadStatus implements EnumType { public String getText() { return desc; } + + @Override + public String getTextEn() { + return descEn; + } } diff --git a/src/main/java/com/kamco/cd/kamcoback/common/enums/ImageryFitStatus.java b/src/main/java/com/kamco/cd/kamcoback/common/enums/ImageryFitStatus.java index ad7df5a3..c811da85 100644 --- a/src/main/java/com/kamco/cd/kamcoback/common/enums/ImageryFitStatus.java +++ b/src/main/java/com/kamco/cd/kamcoback/common/enums/ImageryFitStatus.java @@ -25,6 +25,11 @@ public enum ImageryFitStatus implements EnumType { return desc; } + @Override + public String getTextEn() { + return name(); + } + public static ImageryFitStatus fromCode(String code) { if (code == null) { return null; diff --git a/src/main/java/com/kamco/cd/kamcoback/common/enums/LayerType.java b/src/main/java/com/kamco/cd/kamcoback/common/enums/LayerType.java index 4cff54f7..2a02a058 100644 --- a/src/main/java/com/kamco/cd/kamcoback/common/enums/LayerType.java +++ b/src/main/java/com/kamco/cd/kamcoback/common/enums/LayerType.java @@ -10,14 +10,15 @@ import lombok.Getter; @Getter @AllArgsConstructor public enum LayerType implements EnumType { - TILE("배경지도"), - GEOJSON("객체데이터"), - WMTS("타일레이어"), - WMS("지적도"), - KAMCO_WMS("국유인WMS"), - KAMCO_WMTS("국유인WMTS"); + TILE("배경지도", "Tile"), + GEOJSON("객체데이터", "GeoJSON"), + WMTS("타일레이어", "WMTS"), + WMS("지적도", "WMS"), + KAMCO_WMS("국유인WMS", "KAMCO_WMS"), + KAMCO_WMTS("국유인WMTS", "KAMCO_WMTS"); private final String desc; + private final String descEn; @Override public String getId() { @@ -29,6 +30,11 @@ public enum LayerType implements EnumType { return desc; } + @Override + public String getTextEn() { + return descEn; + } + public static Optional from(String type) { try { return Optional.of(LayerType.valueOf(type)); diff --git a/src/main/java/com/kamco/cd/kamcoback/common/enums/RoleType.java b/src/main/java/com/kamco/cd/kamcoback/common/enums/RoleType.java index 3321e905..350b99d4 100644 --- a/src/main/java/com/kamco/cd/kamcoback/common/enums/RoleType.java +++ b/src/main/java/com/kamco/cd/kamcoback/common/enums/RoleType.java @@ -24,4 +24,9 @@ public enum RoleType implements EnumType { public String getText() { return desc; } + + @Override + public String getTextEn() { + return name(); + } } diff --git a/src/main/java/com/kamco/cd/kamcoback/common/enums/StatusType.java b/src/main/java/com/kamco/cd/kamcoback/common/enums/StatusType.java index 85599687..c8568171 100644 --- a/src/main/java/com/kamco/cd/kamcoback/common/enums/StatusType.java +++ b/src/main/java/com/kamco/cd/kamcoback/common/enums/StatusType.java @@ -24,4 +24,9 @@ public enum StatusType implements EnumType { public String getText() { return desc; } + + @Override + public String getTextEn() { + return name(); + } } diff --git a/src/main/java/com/kamco/cd/kamcoback/common/enums/SyncCheckStateType.java b/src/main/java/com/kamco/cd/kamcoback/common/enums/SyncCheckStateType.java index 2b4f1e81..ec5db376 100644 --- a/src/main/java/com/kamco/cd/kamcoback/common/enums/SyncCheckStateType.java +++ b/src/main/java/com/kamco/cd/kamcoback/common/enums/SyncCheckStateType.java @@ -23,4 +23,9 @@ public enum SyncCheckStateType implements EnumType { public String getText() { return desc; } + + @Override + public String getTextEn() { + return name(); + } } diff --git a/src/main/java/com/kamco/cd/kamcoback/common/enums/SyncStateType.java b/src/main/java/com/kamco/cd/kamcoback/common/enums/SyncStateType.java index f5c9d08f..1bfa25df 100644 --- a/src/main/java/com/kamco/cd/kamcoback/common/enums/SyncStateType.java +++ b/src/main/java/com/kamco/cd/kamcoback/common/enums/SyncStateType.java @@ -30,4 +30,9 @@ public enum SyncStateType implements EnumType { public String getText() { return desc; } + + @Override + public String getTextEn() { + return name(); + } } diff --git a/src/main/java/com/kamco/cd/kamcoback/common/utils/enums/EnumType.java b/src/main/java/com/kamco/cd/kamcoback/common/utils/enums/EnumType.java index 22761bb2..2774e77c 100644 --- a/src/main/java/com/kamco/cd/kamcoback/common/utils/enums/EnumType.java +++ b/src/main/java/com/kamco/cd/kamcoback/common/utils/enums/EnumType.java @@ -5,4 +5,6 @@ public interface EnumType { String getId(); String getText(); + + String getTextEn(); } diff --git a/src/main/java/com/kamco/cd/kamcoback/common/utils/enums/Enums.java b/src/main/java/com/kamco/cd/kamcoback/common/utils/enums/Enums.java index 97f2b3f3..b81a7931 100644 --- a/src/main/java/com/kamco/cd/kamcoback/common/utils/enums/Enums.java +++ b/src/main/java/com/kamco/cd/kamcoback/common/utils/enums/Enums.java @@ -7,6 +7,7 @@ import java.util.List; import java.util.Map; import java.util.Set; import org.reflections.Reflections; +import org.springframework.context.i18n.LocaleContextHolder; public class Enums { @@ -32,11 +33,13 @@ public class Enums { // enum -> CodeDto list public static List toList(Class> enumClass) { Object[] enums = enumClass.getEnumConstants(); + String lang = LocaleContextHolder.getLocale().getLanguage(); + boolean english = "en".equalsIgnoreCase(lang); return Arrays.stream(enums) .map(e -> (EnumType) e) .filter(e -> !isHidden(enumClass, (Enum) e)) - .map(e -> new CodeDto(e.getId(), e.getText())) + .map(e -> new CodeDto(e.getId(), english ? e.getTextEn() : e.getText())) .toList(); } diff --git a/src/main/java/com/kamco/cd/kamcoback/config/api/ApiResponseDto.java b/src/main/java/com/kamco/cd/kamcoback/config/api/ApiResponseDto.java index 8eb9e9ae..154ad34c 100644 --- a/src/main/java/com/kamco/cd/kamcoback/config/api/ApiResponseDto.java +++ b/src/main/java/com/kamco/cd/kamcoback/config/api/ApiResponseDto.java @@ -192,6 +192,11 @@ public class ApiResponseDto { return message; } + @Override + public String getTextEn() { + return message; + } + public static ApiResponseCode getCode(String name) { return ApiResponseCode.valueOf(name.toUpperCase()); } diff --git a/src/main/java/com/kamco/cd/kamcoback/gukyuin/dto/GukYuinDto.java b/src/main/java/com/kamco/cd/kamcoback/gukyuin/dto/GukYuinDto.java index 27ff23ea..82e6edce 100644 --- a/src/main/java/com/kamco/cd/kamcoback/gukyuin/dto/GukYuinDto.java +++ b/src/main/java/com/kamco/cd/kamcoback/gukyuin/dto/GukYuinDto.java @@ -29,6 +29,11 @@ public class GukYuinDto { public String getText() { return desc; } + + @Override + public String getTextEn() { + return desc; + } } @Getter diff --git a/src/main/java/com/kamco/cd/kamcoback/gukyuin/dto/GukYuinStatus.java b/src/main/java/com/kamco/cd/kamcoback/gukyuin/dto/GukYuinStatus.java index 16b22e4d..671c2c44 100644 --- a/src/main/java/com/kamco/cd/kamcoback/gukyuin/dto/GukYuinStatus.java +++ b/src/main/java/com/kamco/cd/kamcoback/gukyuin/dto/GukYuinStatus.java @@ -26,4 +26,9 @@ public enum GukYuinStatus implements EnumType { public String getText() { return desc; } + + @Override + public String getTextEn() { + return desc; + } } diff --git a/src/main/java/com/kamco/cd/kamcoback/inference/dto/InferenceResultDto.java b/src/main/java/com/kamco/cd/kamcoback/inference/dto/InferenceResultDto.java index d6f3ec1e..4223f458 100644 --- a/src/main/java/com/kamco/cd/kamcoback/inference/dto/InferenceResultDto.java +++ b/src/main/java/com/kamco/cd/kamcoback/inference/dto/InferenceResultDto.java @@ -51,6 +51,11 @@ public class InferenceResultDto { public String getText() { return desc; } + + @Override + public String getTextEn() { + return desc; + } } /** 탐지 데이터 옵션 dto */ @@ -79,6 +84,11 @@ public class InferenceResultDto { public String getText() { return desc; } + + @Override + public String getTextEn() { + return desc; + } } @Getter @@ -108,6 +118,11 @@ public class InferenceResultDto { public String getText() { return desc; } + + @Override + public String getTextEn() { + return desc; + } } @Getter @@ -129,6 +144,11 @@ public class InferenceResultDto { public String getText() { return desc; } + + @Override + public String getTextEn() { + return desc; + } } /** 목록조회 dto */ diff --git a/src/main/java/com/kamco/cd/kamcoback/label/dto/LabelAllocateDto.java b/src/main/java/com/kamco/cd/kamcoback/label/dto/LabelAllocateDto.java index 7bda7d92..f462d88b 100644 --- a/src/main/java/com/kamco/cd/kamcoback/label/dto/LabelAllocateDto.java +++ b/src/main/java/com/kamco/cd/kamcoback/label/dto/LabelAllocateDto.java @@ -37,6 +37,11 @@ public class LabelAllocateDto { public String getText() { return desc; } + + @Override + public String getTextEn() { + return name(); + } } @CodeExpose @@ -59,6 +64,11 @@ public class LabelAllocateDto { public String getText() { return desc; } + + @Override + public String getTextEn() { + return name(); + } } @CodeExpose @@ -80,6 +90,11 @@ public class LabelAllocateDto { public String getText() { return desc; } + + @Override + public String getTextEn() { + return name(); + } } @Getter diff --git a/src/main/java/com/kamco/cd/kamcoback/log/dto/ErrorLogDto.java b/src/main/java/com/kamco/cd/kamcoback/log/dto/ErrorLogDto.java index 36d7fc4d..1589c313 100644 --- a/src/main/java/com/kamco/cd/kamcoback/log/dto/ErrorLogDto.java +++ b/src/main/java/com/kamco/cd/kamcoback/log/dto/ErrorLogDto.java @@ -36,6 +36,11 @@ public class ErrorLogDto { public String getText() { return desc; } + + @Override + public String getTextEn() { + return desc; + } } @Schema(name = "ErrorLogBasic", description = "에러로그 기본 정보") diff --git a/src/main/java/com/kamco/cd/kamcoback/log/dto/EventStatus.java b/src/main/java/com/kamco/cd/kamcoback/log/dto/EventStatus.java index 1768945c..414570ca 100644 --- a/src/main/java/com/kamco/cd/kamcoback/log/dto/EventStatus.java +++ b/src/main/java/com/kamco/cd/kamcoback/log/dto/EventStatus.java @@ -21,4 +21,9 @@ public enum EventStatus implements EnumType { public String getText() { return desc; } + + @Override + public String getTextEn() { + return desc; + } } diff --git a/src/main/java/com/kamco/cd/kamcoback/log/dto/EventType.java b/src/main/java/com/kamco/cd/kamcoback/log/dto/EventType.java index 891429f9..5df5c76b 100644 --- a/src/main/java/com/kamco/cd/kamcoback/log/dto/EventType.java +++ b/src/main/java/com/kamco/cd/kamcoback/log/dto/EventType.java @@ -39,4 +39,9 @@ public enum EventType implements EnumType { public String getText() { return desc; } + + @Override + public String getTextEn() { + return name(); + } } diff --git a/src/main/java/com/kamco/cd/kamcoback/mapsheet/dto/MapSheetMngDto.java b/src/main/java/com/kamco/cd/kamcoback/mapsheet/dto/MapSheetMngDto.java index c6f6f374..96106a59 100644 --- a/src/main/java/com/kamco/cd/kamcoback/mapsheet/dto/MapSheetMngDto.java +++ b/src/main/java/com/kamco/cd/kamcoback/mapsheet/dto/MapSheetMngDto.java @@ -42,6 +42,11 @@ public class MapSheetMngDto { public String getText() { return message; } + + @Override + public String getTextEn() { + return message; + } } @Schema(name = "MngSearchReq", description = "영상관리 검색 요청") @@ -346,6 +351,10 @@ public class MapSheetMngDto { } SyncStateType type = Enums.fromId(SyncStateType.class, enumId); + String lang = LocaleContextHolder.getLocale().getLanguage(); + if ("en".equalsIgnoreCase(lang)) { + return type.getTextEn(); + } return type.getText(); } } diff --git a/src/main/java/com/kamco/cd/kamcoback/members/dto/MembersDto.java b/src/main/java/com/kamco/cd/kamcoback/members/dto/MembersDto.java index 33fbbc35..f8094a6d 100644 --- a/src/main/java/com/kamco/cd/kamcoback/members/dto/MembersDto.java +++ b/src/main/java/com/kamco/cd/kamcoback/members/dto/MembersDto.java @@ -15,6 +15,7 @@ import lombok.AllArgsConstructor; import lombok.Getter; import lombok.NoArgsConstructor; import lombok.Setter; +import org.springframework.context.i18n.LocaleContextHolder; import org.springframework.data.domain.PageRequest; import org.springframework.data.domain.Pageable; @@ -65,16 +66,20 @@ public class MembersDto { private String getUserRoleName(String roleId) { RoleType type = Enums.fromId(RoleType.class, roleId); - return type.getText(); + String lang = LocaleContextHolder.getLocale().getLanguage(); + boolean english = "en".equalsIgnoreCase(lang); + return english ? type.getTextEn() : type.getText(); } private String getStatusName(String status, Boolean pwdResetYn) { StatusType type = Enums.fromId(StatusType.class, status); + String lang = LocaleContextHolder.getLocale().getLanguage(); + boolean english = "en".equalsIgnoreCase(lang); pwdResetYn = pwdResetYn != null && pwdResetYn; if (type.equals(StatusType.PENDING) && pwdResetYn) { type = StatusType.ACTIVE; } - return type.getText(); + return english ? type.getTextEn() : type.getText(); } } diff --git a/src/main/java/com/kamco/cd/kamcoback/model/dto/ModelMngDto.java b/src/main/java/com/kamco/cd/kamcoback/model/dto/ModelMngDto.java index 2d76fd1f..808a79c8 100644 --- a/src/main/java/com/kamco/cd/kamcoback/model/dto/ModelMngDto.java +++ b/src/main/java/com/kamco/cd/kamcoback/model/dto/ModelMngDto.java @@ -36,6 +36,11 @@ public class ModelMngDto { public String getText() { return desc; } + + @Override + public String getTextEn() { + return desc; + } } @Schema(name = "ModelMgmtDto Basic", description = "모델관리 엔티티 기본 정보") diff --git a/src/main/java/com/kamco/cd/kamcoback/postgres/repository/log/AuditLogRepositoryImpl.java b/src/main/java/com/kamco/cd/kamcoback/postgres/repository/log/AuditLogRepositoryImpl.java index dbcd99e0..e7ef12ea 100644 --- a/src/main/java/com/kamco/cd/kamcoback/postgres/repository/log/AuditLogRepositoryImpl.java +++ b/src/main/java/com/kamco/cd/kamcoback/postgres/repository/log/AuditLogRepositoryImpl.java @@ -13,6 +13,7 @@ import com.kamco.cd.kamcoback.log.dto.EventType; import com.kamco.cd.kamcoback.postgres.entity.AuditLogEntity; import com.kamco.cd.kamcoback.postgres.entity.QMenuEntity; import com.querydsl.core.BooleanBuilder; +import com.querydsl.core.types.Expression; import com.querydsl.core.types.Projections; import com.querydsl.core.types.dsl.BooleanExpression; import com.querydsl.core.types.dsl.CaseBuilder; @@ -26,6 +27,7 @@ import java.time.ZoneId; import java.time.ZonedDateTime; import java.util.List; import java.util.Objects; +import org.springframework.context.i18n.LocaleContextHolder; import org.springframework.data.domain.Page; import org.springframework.data.domain.PageImpl; import org.springframework.data.domain.Pageable; @@ -83,13 +85,18 @@ public class AuditLogRepositoryImpl extends QuerydslRepositorySupport public Page findLogByMenu( AuditLogDto.searchReq searchReq, String searchValue) { Pageable pageable = searchReq.toPageable(); + String lang = LocaleContextHolder.getLocale().getLanguage(); + + Expression menuNameExpr = + "en".equalsIgnoreCase(lang) ? menuEntity.menuNmEn.max() : menuEntity.menuNm.max(); + List foundContent = queryFactory .select( Projections.constructor( AuditLogDto.MenuAuditList.class, auditLogEntity.menuUid.as("menuId"), - menuEntity.menuNm.max().as("menuName"), + menuNameExpr, readCount().as("readCount"), cudCount().as("cudCount"), printCount().as("printCount"), @@ -217,21 +224,25 @@ public class AuditLogRepositoryImpl extends QuerydslRepositorySupport @Override public Page findLogByDailyResult( AuditLogDto.searchReq searchReq, LocalDate logDate) { + String lang = LocaleContextHolder.getLocale().getLanguage(); + boolean english = "en".equalsIgnoreCase(lang); Pageable pageable = searchReq.toPageable(); QMenuEntity parent = new QMenuEntity("parent"); // 1depth menu name StringExpression parentMenuName = new CaseBuilder() .when(parent.menuUid.isNull()) - .then(menuEntity.menuNm) - .otherwise(parent.menuNm); + .then(english ? menuEntity.menuNmEn : menuEntity.menuNm) + .otherwise(english ? parent.menuNmEn : parent.menuNm); // 2depth menu name StringExpression menuName = new CaseBuilder() .when(parent.menuUid.isNull()) .then(NULL_STRING) - .otherwise(menuEntity.menuNm); + .otherwise(english ? menuEntity.menuNmEn : menuEntity.menuNm); + + StringExpression menuNm = (english ? menuEntity.menuNmEn : menuEntity.menuNm); List foundContent = queryFactory @@ -241,20 +252,20 @@ public class AuditLogRepositoryImpl extends QuerydslRepositorySupport auditLogEntity.id.as("logId"), memberEntity.name.as("userName"), memberEntity.employeeNo.as("loginId"), - menuEntity.menuNm.as("menuName"), + menuNm.as("menuName"), auditLogEntity.eventType.as("eventType"), Expressions.stringTemplate( "to_char({0}, 'YYYY-MM-DD HH24:MI')", auditLogEntity.createdDate) .as("logDateTime"), Projections.constructor( AuditLogDto.LogDetail.class, - Expressions.constant("한국자산관리공사"), // serviceName + Expressions.constant(english ? "Kamco" : "한국자산관리공사"), // serviceName parentMenuName.as("parentMenuName"), menuName, menuEntity.menuUrl.as("menuUrl"), menuEntity.description.as("menuDescription"), menuEntity.menuOrder.as("sortOrder"), - menuEntity.isUse.as("used")))) // TODO + menuEntity.isUse.as("used")))) .from(auditLogEntity) .leftJoin(menuEntity) .on(auditLogEntity.menuUid.eq(menuEntity.menuUid)) @@ -285,21 +296,23 @@ public class AuditLogRepositoryImpl extends QuerydslRepositorySupport @Override public Page findLogByMenuResult( AuditLogDto.searchReq searchReq, String menuUid) { + String lang = LocaleContextHolder.getLocale().getLanguage(); + boolean english = "en".equalsIgnoreCase(lang); Pageable pageable = searchReq.toPageable(); QMenuEntity parent = new QMenuEntity("parent"); // 1depth menu name StringExpression parentMenuName = new CaseBuilder() .when(parent.menuUid.isNull()) - .then(menuEntity.menuNm) - .otherwise(parent.menuNm); + .then(english ? menuEntity.menuNmEn : menuEntity.menuNm) + .otherwise(english ? parent.menuNmEn : parent.menuNm); // 2depth menu name StringExpression menuName = new CaseBuilder() .when(parent.menuUid.isNull()) .then(NULL_STRING) - .otherwise(menuEntity.menuNm); + .otherwise(english ? menuEntity.menuNmEn : menuEntity.menuNm); List foundContent = queryFactory @@ -315,7 +328,7 @@ public class AuditLogRepositoryImpl extends QuerydslRepositorySupport auditLogEntity.eventType.as("eventType"), Projections.constructor( AuditLogDto.LogDetail.class, - Expressions.constant("한국자산관리공사"), // serviceName + Expressions.constant(english ? "Kamco" : "한국자산관리공사"), // serviceName parentMenuName.as("parentMenuName"), menuName, menuEntity.menuUrl.as("menuUrl"), @@ -352,21 +365,25 @@ public class AuditLogRepositoryImpl extends QuerydslRepositorySupport @Override public Page findLogByAccountResult( AuditLogDto.searchReq searchReq, Long userUid) { + String lang = LocaleContextHolder.getLocale().getLanguage(); + boolean english = "en".equalsIgnoreCase(lang); Pageable pageable = searchReq.toPageable(); QMenuEntity parent = new QMenuEntity("parent"); // 1depth menu name StringExpression parentMenuName = new CaseBuilder() .when(parent.menuUid.isNull()) - .then(menuEntity.menuNm) - .otherwise(parent.menuNm); + .then(english ? menuEntity.menuNmEn : menuEntity.menuNm) + .otherwise(english ? parent.menuNmEn : parent.menuNm); // 2depth menu name StringExpression menuName = new CaseBuilder() .when(parent.menuUid.isNull()) .then(NULL_STRING) - .otherwise(menuEntity.menuNm); + .otherwise(english ? menuEntity.menuNmEn : menuEntity.menuNm); + + StringExpression menuNm = (english ? menuEntity.menuNmEn : menuEntity.menuNm); List foundContent = queryFactory @@ -377,11 +394,11 @@ public class AuditLogRepositoryImpl extends QuerydslRepositorySupport Expressions.stringTemplate( "to_char({0}, 'YYYY-MM-DD HH24:MI')", auditLogEntity.createdDate) .as("logDateTime"), - menuEntity.menuNm.as("menuName"), + menuNm.as("menuName"), auditLogEntity.eventType.as("eventType"), Projections.constructor( AuditLogDto.LogDetail.class, - Expressions.constant("한국자산관리공사"), // serviceName + Expressions.constant(english ? "Kamco" : "한국자산관리공사"), // serviceName parentMenuName.as("parentMenuName"), menuName, menuEntity.menuUrl.as("menuUrl"), @@ -442,7 +459,7 @@ public class AuditLogRepositoryImpl extends QuerydslRepositorySupport if (StringUtils.isBlank(searchValue)) { return null; } - return menuEntity.menuNm.contains(searchValue); + return menuEntity.menuNm.contains(searchValue).or(menuEntity.menuNmEn.contains(searchValue)); } private BooleanExpression loginIdOrUsernameContains(String searchValue) {