From 3d916eda53dc02036e753e94becd2d80d02bf03d Mon Sep 17 00:00:00 2001 From: curry772 Date: Thu, 7 May 2026 15:35:46 +0900 Subject: [PATCH] =?UTF-8?q?feat:=20=EC=95=94=ED=98=B8=ED=99=94=20=EB=AA=A8?= =?UTF-8?q?=EB=93=88=20=EC=A0=80=EC=9E=A5/=EC=82=AD=EC=A0=9C=20=ED=9B=84?= =?UTF-8?q?=20online=20=EC=84=9C=EB=B2=84=20broadcast=20=EA=B2=B0=EA=B3=BC?= =?UTF-8?q?=20alert=20=EC=B6=9C=EB=A0=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - CryptoModuleConfigManController: INSERT/UPDATE/DELETE 모두 broadcast() 결과(CommandResult)를 broadcastResult 필드로 응답에 포함 - cryptoModuleManDetail.jsp: 저장/삭제 success 콜백에서 broadcastResult를 alert 메시지에 추가 출력 (서버명=결과 형태) Co-Authored-By: Claude Sonnet 4.6 --- .../admin/security/cryptoModuleManDetail.jsp | 18 ++++++++++++---- .../CryptoModuleConfigManController.java | 21 ++++++++++++------- 2 files changed, 28 insertions(+), 11 deletions(-) diff --git a/WebContent/jsp/onl/admin/security/cryptoModuleManDetail.jsp b/WebContent/jsp/onl/admin/security/cryptoModuleManDetail.jsp index 20a5285..dcb9e2e 100644 --- a/WebContent/jsp/onl/admin/security/cryptoModuleManDetail.jsp +++ b/WebContent/jsp/onl/admin/security/cryptoModuleManDetail.jsp @@ -166,9 +166,14 @@ $(document).ready(function() { $.ajax({ type: 'POST', url: url, + dataType: 'json', data: postData, - success: function() { - alert('<%= localeMessage.getString("common.saveMsg") %>'); + success: function(data) { + var msg = '<%= localeMessage.getString("common.saveMsg") %>'; + if (data && data.broadcastResult) { + msg += '\n\n[서버 반영 결과]\n' + data.broadcastResult; + } + alert(msg); goNav(returnUrl); }, error: function(e) { @@ -182,9 +187,14 @@ $(document).ready(function() { $.ajax({ type: 'POST', url: url, + dataType: 'json', data: { cmd: 'DELETE', cryptoId: $('input[name=cryptoId]').val() }, - success: function() { - alert('<%= localeMessage.getString("common.deleteMsg") %>'); + success: function(data) { + var msg = '<%= localeMessage.getString("common.deleteMsg") %>'; + if (data && data.broadcastResult) { + msg += '\n\n[서버 반영 결과]\n' + data.broadcastResult; + } + alert(msg); goNav(returnUrl); }, error: function(e) { diff --git a/src/main/java/com/eactive/eai/rms/onl/manage/crypto/CryptoModuleConfigManController.java b/src/main/java/com/eactive/eai/rms/onl/manage/crypto/CryptoModuleConfigManController.java index 9a8a1a0..f85925e 100644 --- a/src/main/java/com/eactive/eai/rms/onl/manage/crypto/CryptoModuleConfigManController.java +++ b/src/main/java/com/eactive/eai/rms/onl/manage/crypto/CryptoModuleConfigManController.java @@ -21,6 +21,7 @@ import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.InitBinder; import org.springframework.web.bind.annotation.PostMapping; +import com.eactive.eai.agent.command.CommandResult; import com.eactive.eai.agent.command.CommonCommand; import com.eactive.eai.rms.common.base.OnlBaseAnnotationController; import com.eactive.eai.rms.common.login.SessionManager; @@ -77,12 +78,14 @@ public class CryptoModuleConfigManController extends OnlBaseAnnotationController return ResponseEntity.status(HttpStatus.BAD_REQUEST).body(errors); } String cryptoId = service.insert(ui, SessionManager.getUserId(request)); - CommonCommand.builder() + CommandResult broadcastResult = CommonCommand.builder() .name(RELOAD_CRYPTO_MODULE_COMMAND) .args(cryptoId) .build() .broadcast(agentUtilService); - return ResponseEntity.ok().build(); + Map body = new HashMap<>(); + body.put("broadcastResult", broadcastResult.getMessage(true)); + return ResponseEntity.ok(body); } @PostMapping(value = "/onl/admin/security/cryptoModuleMan.json", params = "cmd=UPDATE") @@ -96,23 +99,27 @@ public class CryptoModuleConfigManController extends OnlBaseAnnotationController return ResponseEntity.status(HttpStatus.BAD_REQUEST).body(errors); } service.update(ui, SessionManager.getUserId(request)); - CommonCommand.builder() + CommandResult broadcastResult = CommonCommand.builder() .name(RELOAD_CRYPTO_MODULE_COMMAND) .args(ui.getCryptoId()) .build() .broadcast(agentUtilService); - return ResponseEntity.ok().build(); + Map body = new HashMap<>(); + body.put("broadcastResult", broadcastResult.getMessage(true)); + return ResponseEntity.ok(body); } @PostMapping(value = "/onl/admin/security/cryptoModuleMan.json", params = "cmd=DELETE") - public ResponseEntity delete(String cryptoId) { + public ResponseEntity> delete(String cryptoId) { service.delete(cryptoId); - CommonCommand.builder() + CommandResult broadcastResult = CommonCommand.builder() .name(RELOAD_CRYPTO_MODULE_COMMAND) .args(cryptoId) .build() .broadcast(agentUtilService); - return ResponseEntity.ok().build(); + Map body = new HashMap<>(); + body.put("broadcastResult", broadcastResult.getMessage(true)); + return ResponseEntity.ok(body); } }