From d8184c5fe2615c8f7151a23610c9907bea59a4d6 Mon Sep 17 00:00:00 2001 From: daekuk Date: Tue, 23 Dec 2025 16:35:03 +0900 Subject: [PATCH 01/11] =?UTF-8?q?=EC=8A=A4=EC=BD=94=ED=94=84=EC=97=90=20?= =?UTF-8?q?=EB=A7=A4=ED=95=91=EB=90=9C=20API=EA=B0=80=20eq=EA=B0=80=20?= =?UTF-8?q?=EC=95=84=EB=8B=8C=20like=20=EB=A1=9C=20=EA=B2=80=EC=83=89?= =?UTF-8?q?=ED=95=B4=20=EB=8B=A4=EB=A5=B8=20id=EC=9D=98=20=EC=A0=95?= =?UTF-8?q?=EB=B3=B4=EB=A5=BC=20=EA=B0=80=EC=A0=B8=EC=98=A4=EA=B3=A0=20?= =?UTF-8?q?=EC=9E=88=EC=96=B4=EC=84=9C=20=ED=8C=A8=EC=B9=98=ED=95=A8.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../eai/rms/data/entity/onl/eaimsg/EAIMessageService.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/com/eactive/eai/rms/data/entity/onl/eaimsg/EAIMessageService.java b/src/main/java/com/eactive/eai/rms/data/entity/onl/eaimsg/EAIMessageService.java index 4bf2428..0cdc9c3 100644 --- a/src/main/java/com/eactive/eai/rms/data/entity/onl/eaimsg/EAIMessageService.java +++ b/src/main/java/com/eactive/eai/rms/data/entity/onl/eaimsg/EAIMessageService.java @@ -320,7 +320,7 @@ public class EAIMessageService extends AbstractDataService Date: Wed, 24 Dec 2025 14:59:09 +0900 Subject: [PATCH 02/11] =?UTF-8?q?-=20EmptyJsonResponse=20=EA=B1=B0?= =?UTF-8?q?=EC=B3=90=20=EC=A0=95=EC=83=81=EC=B2=98=EB=A6=AC=20=EB=90=A0=20?= =?UTF-8?q?=EC=88=98=20=EC=9E=88=EB=8F=84=EB=A1=9D=20=EC=88=98=EC=A0=95.?= =?UTF-8?q?=20-=20=EB=B6=88=ED=95=84=EC=9A=94=ED=95=9C=20import=20?= =?UTF-8?q?=EC=A0=9C=EA=B1=B0.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../InflowGroupControlManController.java | 28 +++++++++---------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/src/main/java/com/eactive/eai/rms/onl/manage/inflow/group/InflowGroupControlManController.java b/src/main/java/com/eactive/eai/rms/onl/manage/inflow/group/InflowGroupControlManController.java index ab4fe96..c3e31bf 100644 --- a/src/main/java/com/eactive/eai/rms/onl/manage/inflow/group/InflowGroupControlManController.java +++ b/src/main/java/com/eactive/eai/rms/onl/manage/inflow/group/InflowGroupControlManController.java @@ -7,6 +7,14 @@ import java.util.Map; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; +import com.eactive.eai.agent.command.CommonCommand; +import com.eactive.eai.rms.common.base.OnlBaseAnnotationController; +import com.eactive.eai.rms.common.combo.ComboService; +import com.eactive.eai.rms.common.combo.ComboVo; +import com.eactive.eai.rms.common.vo.GridResponse; +import com.fasterxml.jackson.core.type.TypeReference; +import com.fasterxml.jackson.databind.ObjectMapper; + import org.springframework.beans.factory.annotation.Autowired; import org.springframework.data.domain.Page; import org.springframework.data.domain.Pageable; @@ -16,14 +24,6 @@ import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.servlet.ModelAndView; -import com.eactive.eai.agent.command.CommonCommand; -import com.eactive.eai.rms.common.base.OnlBaseAnnotationController; -import com.eactive.eai.rms.common.combo.ComboService; -import com.eactive.eai.rms.common.combo.ComboVo; -import com.eactive.eai.rms.common.vo.GridResponse; -import com.fasterxml.jackson.core.type.TypeReference; -import com.fasterxml.jackson.databind.ObjectMapper; - @Controller public class InflowGroupControlManController extends OnlBaseAnnotationController { @@ -78,7 +78,7 @@ public class InflowGroupControlManController extends OnlBaseAnnotationController * 그룹 저장 (INSERT) */ @RequestMapping(value = "/onl/admin/inflow/inflowGroupControlMan.json", params = "cmd=INSERT") - public String insert(HttpServletRequest request, HttpServletResponse response, InflowGroupControlManUI ui, + public ResponseEntity insert(HttpServletRequest request, HttpServletResponse response, InflowGroupControlManUI ui, @RequestParam(value = "interfaceListJson", required = false) String interfaceListJson) throws Exception { parseInterfaceList(ui, interfaceListJson); String modifiedBy = getSessionUserId(request); @@ -88,14 +88,14 @@ public class InflowGroupControlManController extends OnlBaseAnnotationController CommonCommand command = new CommonCommand("com.eactive.eai.agent.inflow.ReloadInflowGroupControlCommand", ui.getGroupId()); agentUtilService.broadcast(command); - return null; + return ResponseEntity.ok().build(); } /** * 그룹 저장 (UPDATE) */ @RequestMapping(value = "/onl/admin/inflow/inflowGroupControlMan.json", params = "cmd=UPDATE") - public String update(HttpServletRequest request, HttpServletResponse response, InflowGroupControlManUI ui, + public ResponseEntity update(HttpServletRequest request, HttpServletResponse response, InflowGroupControlManUI ui, @RequestParam(value = "interfaceListJson", required = false) String interfaceListJson) throws Exception { parseInterfaceList(ui, interfaceListJson); String modifiedBy = getSessionUserId(request); @@ -105,21 +105,21 @@ public class InflowGroupControlManController extends OnlBaseAnnotationController CommonCommand command = new CommonCommand("com.eactive.eai.agent.inflow.ReloadInflowGroupControlCommand", ui.getGroupId()); agentUtilService.broadcast(command); - return null; + return ResponseEntity.ok().build(); } /** * 그룹 삭제 */ @RequestMapping(value = "/onl/admin/inflow/inflowGroupControlMan.json", params = "cmd=DELETE") - public String delete(HttpServletRequest request, HttpServletResponse response, String groupId) throws Exception { + public ResponseEntity delete(HttpServletRequest request, HttpServletResponse response, String groupId) throws Exception { service.deleteGroup(groupId); // Agent Command 전송 CommonCommand command = new CommonCommand("com.eactive.eai.agent.inflow.RemoveInflowGroupControlCommand", groupId); agentUtilService.broadcast(command); - return null; + return ResponseEntity.ok().build(); } /** From 69c189cb53eee9bc391a3f0e1f8b83284e8a0216 Mon Sep 17 00:00:00 2001 From: daekuk Date: Wed, 24 Dec 2025 15:52:00 +0900 Subject: [PATCH 03/11] =?UTF-8?q?INSERT=EC=9D=BC=20=EB=95=8C=20scopeId=20?= =?UTF-8?q?=EC=97=85=EB=8D=B0=EC=9D=B4=ED=8A=B8=ED=95=B4=EC=84=9C=20API=20?= =?UTF-8?q?=EB=A7=A4=ED=95=91=EC=A0=95=EB=B3=B4=EB=8F=84=20=EB=93=A4?= =?UTF-8?q?=EC=96=B4=EA=B0=88=20=EC=88=98=20=EC=9E=88=EB=8F=84=EB=A1=9D=20?= =?UTF-8?q?=EA=B0=9C=EC=84=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- WebContent/jsp/onl/admin/authserver/scopeManDetail.jsp | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/WebContent/jsp/onl/admin/authserver/scopeManDetail.jsp b/WebContent/jsp/onl/admin/authserver/scopeManDetail.jsp index 8a78458..2e5f6be 100644 --- a/WebContent/jsp/onl/admin/authserver/scopeManDetail.jsp +++ b/WebContent/jsp/onl/admin/authserver/scopeManDetail.jsp @@ -187,7 +187,11 @@ $(document).ready(function() { success:function(args){ alert("SCOPE 정보가 저장 되었습니다. 이어서 API 리스트를 저장합니다."); + if(!isDetail) { // INSERT 일 경우 ScopeId를 업데이트 + key = $('input[name=scopeId]').val(); + } saveApiGridData(key, returnUrl); // API LIST 저장. + }, error:function(e){ From 65279fe7d413caed671fbd352874e77770d38205 Mon Sep 17 00:00:00 2001 From: daekuk Date: Fri, 26 Dec 2025 13:22:03 +0900 Subject: [PATCH 04/11] =?UTF-8?q?=EC=84=B8=EC=85=98=20=ED=83=80=EC=9E=84?= =?UTF-8?q?=EC=95=84=EC=9B=83=20=EC=8B=9C=20=EC=84=B8=EC=85=98=EC=A0=95?= =?UTF-8?q?=EB=B3=B4=20=EC=A0=9C=EA=B1=B0=ED=95=98=EB=8A=94=20=ED=81=B4?= =?UTF-8?q?=EB=9E=98=EC=8A=A4=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../login/SessionDestructionListener.java | 46 +++++++++++++++++++ 1 file changed, 46 insertions(+) create mode 100644 src/main/java/com/eactive/eai/rms/common/login/SessionDestructionListener.java diff --git a/src/main/java/com/eactive/eai/rms/common/login/SessionDestructionListener.java b/src/main/java/com/eactive/eai/rms/common/login/SessionDestructionListener.java new file mode 100644 index 0000000..1fb4d46 --- /dev/null +++ b/src/main/java/com/eactive/eai/rms/common/login/SessionDestructionListener.java @@ -0,0 +1,46 @@ +package com.eactive.eai.rms.common.login; + +import javax.servlet.annotation.WebListener; +import javax.servlet.http.HttpSession; +import javax.servlet.http.HttpSessionEvent; +import javax.servlet.http.HttpSessionListener; + +import org.apache.log4j.Logger; + +@WebListener +public class SessionDestructionListener implements HttpSessionListener { + + private static final Logger logger = Logger.getLogger(SessionDestructionListener.class); + + @Override + public void sessionCreated(HttpSessionEvent se) { + + } + + /** + * 세션 타임아웃 등으로 소멸 시 세션정보 삭제 + */ + @Override + public void sessionDestroyed(HttpSessionEvent se) { + + try { + HttpSession session = se.getSession(); + + String userId = (String) session.getAttribute("userId"); + + // 로그인 한 사용자의 세션정보 정리 + if (userId != null) { + if (logger.isDebugEnabled()) { + logger.debug("[SessionListener] 세션만료 감지. 사용자 제거: " + userId); + } + + SessionManager.removeUserSession(userId); + } + + } catch (Exception e) { + + + logger.error("[SessionListener] 세션 정리 중 오류 발생", e); + } + } +} From b0b9553e66c4a29ec92363c9d9206c47a584f8c7 Mon Sep 17 00:00:00 2001 From: daekuk Date: Fri, 26 Dec 2025 16:23:30 +0900 Subject: [PATCH 05/11] =?UTF-8?q?-=20API=20=EC=B6=94=EA=B0=80=20=ED=8C=9D?= =?UTF-8?q?=EC=97=85=EC=97=90=EC=84=9C=20path=20=EB=A1=9C=20=EA=B2=80?= =?UTF-8?q?=EC=83=89=20=ED=95=A0=20=EC=88=98=20=EC=9E=88=EB=8F=84=EB=A1=9D?= =?UTF-8?q?=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- WebContent/jsp/onl/apim/apigroup/apiGroupManPopup.jsp | 6 ++++++ .../eai/rms/onl/apim/apigroup/ui/ApiGroupUISearch.java | 1 + 2 files changed, 7 insertions(+) diff --git a/WebContent/jsp/onl/apim/apigroup/apiGroupManPopup.jsp b/WebContent/jsp/onl/apim/apigroup/apiGroupManPopup.jsp index 0654ec0..f5f6d14 100644 --- a/WebContent/jsp/onl/apim/apigroup/apiGroupManPopup.jsp +++ b/WebContent/jsp/onl/apim/apigroup/apiGroupManPopup.jsp @@ -236,10 +236,16 @@ + + API 명 + API FULL PATH + + + diff --git a/src/main/java/com/eactive/eai/rms/onl/apim/apigroup/ui/ApiGroupUISearch.java b/src/main/java/com/eactive/eai/rms/onl/apim/apigroup/ui/ApiGroupUISearch.java index c2c4716..47bf7e5 100644 --- a/src/main/java/com/eactive/eai/rms/onl/apim/apigroup/ui/ApiGroupUISearch.java +++ b/src/main/java/com/eactive/eai/rms/onl/apim/apigroup/ui/ApiGroupUISearch.java @@ -7,4 +7,5 @@ public class ApiGroupUISearch { private String searchGroupName; private String searchGroupDesc; private String searchDisplayYn; + private String searchApiFullPath; } From b08e722e6825dad0ca933d56dba1df789958b120 Mon Sep 17 00:00:00 2001 From: daekuk Date: Fri, 26 Dec 2025 16:25:23 +0900 Subject: [PATCH 06/11] =?UTF-8?q?-=20=EB=82=B4=EB=B6=80=ED=91=9C=EC=A4=80?= =?UTF-8?q?=20=EB=A9=94=EC=8B=9C=EC=A7=80=20N=EA=B1=B4=EB=A7=8C=20?= =?UTF-8?q?=EC=A1=B0=ED=9A=8C=EB=90=98=EB=8A=94=20=ED=98=84=EC=83=81=20?= =?UTF-8?q?=EC=88=98=EC=A0=95,=20page=20=EC=B2=98=EB=A6=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../stdmessage/StdMessageManController.java | 3 ++- .../serviceinfo/stdmessage/StdMessageManService.java | 12 ++++++------ 2 files changed, 8 insertions(+), 7 deletions(-) diff --git a/src/main/java/com/eactive/eai/rms/onl/manage/serviceinfo/stdmessage/StdMessageManController.java b/src/main/java/com/eactive/eai/rms/onl/manage/serviceinfo/stdmessage/StdMessageManController.java index ec5f5ce..6482828 100644 --- a/src/main/java/com/eactive/eai/rms/onl/manage/serviceinfo/stdmessage/StdMessageManController.java +++ b/src/main/java/com/eactive/eai/rms/onl/manage/serviceinfo/stdmessage/StdMessageManController.java @@ -9,6 +9,7 @@ import javax.servlet.http.HttpServletResponse; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Qualifier; +import org.springframework.data.domain.Page; import org.springframework.data.domain.Pageable; import org.springframework.http.ResponseEntity; import org.springframework.stereotype.Controller; @@ -52,7 +53,7 @@ public class StdMessageManController extends BaseController { @PostMapping(value = "/onl/admin/service/stdMessageMan.json", params = "cmd=LIST") public ResponseEntity> selectList(Pageable pageable, String searchBzwkSvcKeyName, String searchEaiSvcCode, String searchEaiSendRecv, String searchEaiDirection) { - List map = service + Page map = service .selectList(pageable, searchBzwkSvcKeyName, searchEaiSvcCode, searchEaiSendRecv, searchEaiDirection); return ResponseEntity.ok(new GridResponse<>(map)); diff --git a/src/main/java/com/eactive/eai/rms/onl/manage/serviceinfo/stdmessage/StdMessageManService.java b/src/main/java/com/eactive/eai/rms/onl/manage/serviceinfo/stdmessage/StdMessageManService.java index 15d84a6..6ecbf58 100644 --- a/src/main/java/com/eactive/eai/rms/onl/manage/serviceinfo/stdmessage/StdMessageManService.java +++ b/src/main/java/com/eactive/eai/rms/onl/manage/serviceinfo/stdmessage/StdMessageManService.java @@ -16,6 +16,7 @@ import org.apache.commons.lang3.StringUtils; import org.apache.log4j.Logger; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Qualifier; +import org.springframework.data.domain.Page; import org.springframework.data.domain.Pageable; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -59,14 +60,13 @@ public class StdMessageManService { @Autowired private ExtendedColumnDefinitionUIMapper extendedColumnDefinitionUIMapper; - public List selectList(Pageable pageable, String searchBzwkSvcKeyName, String searchEaiSvcCode, + public Page selectList(Pageable pageable, String searchBzwkSvcKeyName, String searchEaiSvcCode, String searchEaiSendRecv, String searchEaiDirection) { - return standardMessageInfoService - .findAll(pageable, searchBzwkSvcKeyName, searchEaiSvcCode, searchEaiSendRecv, searchEaiDirection) - .stream() - .map(stdMessageUIMapper::toVo) - .collect(Collectors.toList()); + Page pageResult = standardMessageInfoService + .findAll(pageable, searchBzwkSvcKeyName, searchEaiSvcCode, searchEaiSendRecv, searchEaiDirection); + + return pageResult.map(stdMessageUIMapper::toVo); } From 08f1f1bb92e27e8ae867074803a4f1757ab75034 Mon Sep 17 00:00:00 2001 From: daekuk Date: Fri, 26 Dec 2025 16:26:16 +0900 Subject: [PATCH 07/11] =?UTF-8?q?-=20=EB=A0=88=EC=9D=B4=EC=95=84=EC=9B=83?= =?UTF-8?q?=20=EB=B3=80=ED=99=98=EB=A7=A4=ED=95=91=EC=9D=98=20=EB=B3=80?= =?UTF-8?q?=ED=99=98=ED=95=A8=EC=88=98=20=ED=95=AD=EB=AA=A9=20setSearchabl?= =?UTF-8?q?e=20=EA=B8=B0=EB=8A=A5=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../jsp/onl/admin/rule/transform2/transform2ManDetail.jsp | 2 ++ 1 file changed, 2 insertions(+) diff --git a/WebContent/jsp/onl/admin/rule/transform2/transform2ManDetail.jsp b/WebContent/jsp/onl/admin/rule/transform2/transform2ManDetail.jsp index aa0d607..8ee79f9 100644 --- a/WebContent/jsp/onl/admin/rule/transform2/transform2ManDetail.jsp +++ b/WebContent/jsp/onl/admin/rule/transform2/transform2ManDetail.jsp @@ -717,6 +717,8 @@ reloadSourceTargetGrid('${param.cnvsnName}'); reloadCnvsnDesc(); + + setSearchable("functionCombo"); }, error:function(e){ alert(e.responseText); From de67e321abd4a03f1c1b66c9e40814dc9f5e983b Mon Sep 17 00:00:00 2001 From: daekuk Date: Mon, 29 Dec 2025 17:18:27 +0900 Subject: [PATCH 08/11] =?UTF-8?q?=ED=95=84=EC=9A=94=EC=97=86=EB=8A=94=20?= =?UTF-8?q?=EC=BD=94=EB=93=9C=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- WebContent/jsp/onl/transaction/apim/apiInterfaceManDetail.jsp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/WebContent/jsp/onl/transaction/apim/apiInterfaceManDetail.jsp b/WebContent/jsp/onl/transaction/apim/apiInterfaceManDetail.jsp index df04283..6b53621 100644 --- a/WebContent/jsp/onl/transaction/apim/apiInterfaceManDetail.jsp +++ b/WebContent/jsp/onl/transaction/apim/apiInterfaceManDetail.jsp @@ -2084,7 +2084,7 @@ -loneInterfaceButton">복제 + From f06adb5ff1fc659448cf9f6a1ce06c066a51b1f2 Mon Sep 17 00:00:00 2001 From: daekuk Date: Mon, 29 Dec 2025 17:20:31 +0900 Subject: [PATCH 09/11] =?UTF-8?q?=EB=B3=80=ED=99=98=EB=A7=A4=ED=95=91=20?= =?UTF-8?q?=ED=95=9C=EA=B8=80=EB=8C=80=EC=9D=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../rms/onl/manage/rule/transform2/Transform2Service.java | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/main/java/com/eactive/eai/rms/onl/manage/rule/transform2/Transform2Service.java b/src/main/java/com/eactive/eai/rms/onl/manage/rule/transform2/Transform2Service.java index a667814..badc081 100644 --- a/src/main/java/com/eactive/eai/rms/onl/manage/rule/transform2/Transform2Service.java +++ b/src/main/java/com/eactive/eai/rms/onl/manage/rule/transform2/Transform2Service.java @@ -171,7 +171,13 @@ public class Transform2Service extends BaseService { private String genConversionSourceItems(String srcLayoutName, String cnvsncmdname) { - Pattern pattern = Pattern.compile(srcLayoutName + "(\\w|\\[|\\]|\\*|\\.|-|:)*"); + // \w : 영문, 숫자, _ + // \. \- : 점, 하이픈 + // \[ \] \* : 대괄호, 별표 + // : : 콜론 + // \uAC00-\uD7A3 : 한글 전체 ('가' ~ '힣') + + Pattern pattern = Pattern.compile(srcLayoutName + "[\\w\\.\\[\\]\\*\\-:\\uAC00-\\uD7A3]*"); Matcher matcher = pattern.matcher(cnvsncmdname); StringBuilder result = new StringBuilder(); From 08c6bb44d56bf94f3c1a65197f037c226c883b42 Mon Sep 17 00:00:00 2001 From: daekuk Date: Tue, 30 Dec 2025 10:31:39 +0900 Subject: [PATCH 10/11] =?UTF-8?q?=EC=A3=BC=EC=84=9D=20=EC=A0=95=EB=A6=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../rms/onl/manage/rule/transform2/Transform2Service.java | 5 ----- 1 file changed, 5 deletions(-) diff --git a/src/main/java/com/eactive/eai/rms/onl/manage/rule/transform2/Transform2Service.java b/src/main/java/com/eactive/eai/rms/onl/manage/rule/transform2/Transform2Service.java index badc081..cc2e444 100644 --- a/src/main/java/com/eactive/eai/rms/onl/manage/rule/transform2/Transform2Service.java +++ b/src/main/java/com/eactive/eai/rms/onl/manage/rule/transform2/Transform2Service.java @@ -171,12 +171,7 @@ public class Transform2Service extends BaseService { private String genConversionSourceItems(String srcLayoutName, String cnvsncmdname) { - // \w : 영문, 숫자, _ - // \. \- : 점, 하이픈 - // \[ \] \* : 대괄호, 별표 - // : : 콜론 // \uAC00-\uD7A3 : 한글 전체 ('가' ~ '힣') - Pattern pattern = Pattern.compile(srcLayoutName + "[\\w\\.\\[\\]\\*\\-:\\uAC00-\\uD7A3]*"); Matcher matcher = pattern.matcher(cnvsncmdname); From ba6dff6f9ebc4ff45e07cd9db1a7541426457ca1 Mon Sep 17 00:00:00 2001 From: daekuk Date: Tue, 30 Dec 2025 10:36:27 +0900 Subject: [PATCH 11/11] =?UTF-8?q?-=20=EA=B0=99=EC=9D=80=20ID=20=EB=A1=9C?= =?UTF-8?q?=20DEL=20->=20INSERT=20=EC=8B=9C=20=EC=B6=A9=EB=8F=8C=EB=8C=80?= =?UTF-8?q?=EC=9D=91=20-=20API=2020=EA=B1=B4=20=EC=A1=B0=ED=9A=8C=20->=20?= =?UTF-8?q?=EC=A0=84=EC=B2=B4=EC=A1=B0=ED=9A=8C=20-=20API=20LIST=20?= =?UTF-8?q?=EC=A0=80=EC=9E=A5=EC=8B=9C=20=EC=9A=94=EC=B2=AD/=EC=99=84?= =?UTF-8?q?=EB=A3=8C=20=EC=95=8C=20=EC=88=98=20=EC=9E=88=EB=8F=84=EB=A1=9D?= =?UTF-8?q?=20=EB=B2=84=ED=8A=BC=20=EC=A0=9C=EC=96=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../jsp/onl/admin/authserver/scopeManDetail.jsp | 10 +++++++++- .../onl/authserver/ScopeEntityService.java | 16 +++++++++++++--- .../entity/onl/eaimsg/EAIMessageService.java | 2 -- 3 files changed, 22 insertions(+), 6 deletions(-) diff --git a/WebContent/jsp/onl/admin/authserver/scopeManDetail.jsp b/WebContent/jsp/onl/admin/authserver/scopeManDetail.jsp index 2e5f6be..505483e 100644 --- a/WebContent/jsp/onl/admin/authserver/scopeManDetail.jsp +++ b/WebContent/jsp/onl/admin/authserver/scopeManDetail.jsp @@ -151,6 +151,10 @@ function saveApiGridData(scopeId, returnUrl) { type : "POST", url:mapping_url, data: postData, + beforeSend: function() { + $("[id^='btn_']").prop("disabled", true); + $("#btn_modify").text("처리중 . . . . ."); + }, success:function(args){ alert("저장 되었습니다."); @@ -158,7 +162,11 @@ function saveApiGridData(scopeId, returnUrl) { }, error:function(e){ alert(e.responseText); - } + }, + complete: function() { + $("[id^='btn_']").prop("disabled", false); + $("#btn_modify").text("수정"); + } }); } diff --git a/src/main/java/com/eactive/eai/rms/data/entity/onl/authserver/ScopeEntityService.java b/src/main/java/com/eactive/eai/rms/data/entity/onl/authserver/ScopeEntityService.java index 2f42d64..89b2a1e 100644 --- a/src/main/java/com/eactive/eai/rms/data/entity/onl/authserver/ScopeEntityService.java +++ b/src/main/java/com/eactive/eai/rms/data/entity/onl/authserver/ScopeEntityService.java @@ -1,21 +1,31 @@ package com.eactive.eai.rms.data.entity.onl.authserver; -import org.springframework.stereotype.Service; -import org.springframework.transaction.annotation.Transactional; +import javax.persistence.EntityManager; +import javax.persistence.PersistenceContext; import com.eactive.eai.data.entity.onl.authserver.QScopeEntity; import com.eactive.eai.data.entity.onl.authserver.ScopeEntity; import com.eactive.eai.data.entity.onl.authserver.ScopeEntityId; import com.eactive.eai.data.jpa.AbstractDataService; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + @Service @Transactional public class ScopeEntityService extends AbstractDataService { - + + @PersistenceContext + private EntityManager entityManager; // AbstractDataService 의 entityManager가 private이라 접근 불가하여 별도 주입 + public void deleteByIdScopeId(String scopeId) { getJPAQueryFactory().delete(QScopeEntity.scopeEntity) .where(QScopeEntity.scopeEntity.id.scopeid.eq(scopeId)) .execute(); + + // 동일 트랜잭션 내에서 같은 ID로 재저장 시 충돌(EntityExistsException)을 방지 + entityManager.flush(); + entityManager.clear(); } } diff --git a/src/main/java/com/eactive/eai/rms/data/entity/onl/eaimsg/EAIMessageService.java b/src/main/java/com/eactive/eai/rms/data/entity/onl/eaimsg/EAIMessageService.java index 0cdc9c3..2aeb0e3 100644 --- a/src/main/java/com/eactive/eai/rms/data/entity/onl/eaimsg/EAIMessageService.java +++ b/src/main/java/com/eactive/eai/rms/data/entity/onl/eaimsg/EAIMessageService.java @@ -310,8 +310,6 @@ public class EAIMessageService extends AbstractDataService(result, pageable, result.size());