From f86690f8be70b712123d28231bf2b43ae172befb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EC=9C=A0=EB=AF=BC=ED=98=95?= Date: Wed, 28 Feb 2024 16:03:40 +0900 Subject: [PATCH] =?UTF-8?q?=EA=B4=80=EB=A0=A8=EC=82=AC=EC=9D=B4=ED=8A=B8?= =?UTF-8?q?=20=EB=93=B1=EB=A1=9D=EC=88=98=EC=A0=95=EC=82=AD=EC=A0=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../config/aboutSiteMgt/AboutSiteModal.jsx | 48 ++++++++------- .../admin/config/AdminConfigController.java | 60 +++++++++++++++++++ .../admin/config/entity/TnPartnerSite.java | 9 +-- .../config/service/AdminConfigService.java | 25 ++++++++ 4 files changed, 114 insertions(+), 28 deletions(-) diff --git a/egovframe-template-simple-react-contribution/src/pages/admin/config/aboutSiteMgt/AboutSiteModal.jsx b/egovframe-template-simple-react-contribution/src/pages/admin/config/aboutSiteMgt/AboutSiteModal.jsx index 0f9e22e..371d331 100644 --- a/egovframe-template-simple-react-contribution/src/pages/admin/config/aboutSiteMgt/AboutSiteModal.jsx +++ b/egovframe-template-simple-react-contribution/src/pages/admin/config/aboutSiteMgt/AboutSiteModal.jsx @@ -41,20 +41,22 @@ function AboutSiteModal({props, reloadFunction}) { } } - function editBoard(e) { + function editPartnerSite(e) { e.preventDefault(); e.stopPropagation(); const form = e.target; const info = { - bbsId: form.bbsId.value, - bbsTitle: form.bbsTitle.value, - bbsDesc: form.bbsDesc.value + siteTitle: form.siteTitle.value, + siteUrl: form.siteUrl.value, + fileGrpId: form.fileGrpId.value, + siteOrder: form.siteOrder.value, + useYn: form.useYn.value } if (modeInfo.mode === CODE.MODE_MODIFY) { - info.bbsSeq = props.bbsSeq; + info.siteSeq = props.siteSeq; } EgovNet.requestFetch( - '/admin/boards/board-mgt', + '/admin/config/partner-site-mgt', { method: "PUT", headers: { @@ -75,16 +77,16 @@ function AboutSiteModal({props, reloadFunction}) { ) } - function deleteBoard(bbs){ + function deletePartnerSite(partnerSite){ if(window.confirm("삭제하시겠습니까?")) { EgovNet.requestFetch( - '/admin/boards/board-mgt', + '/admin/config/partner-site-mgt', { method: "DELETE", headers: { 'Content-type': 'application/json' }, - body: JSON.stringify(bbs) + body: JSON.stringify(partnerSite) }, (resp) => { if (Number(resp.resultCode) === Number(CODE.RCV_SUCCESS)) { @@ -103,6 +105,8 @@ function AboutSiteModal({props, reloadFunction}) { console.log("------------------------------AboutSiteModal [End]"); console.groupEnd("AboutSiteModal"); + const defaultUseYn = props?.useYn ? props.useYn : "Y"; + return ( <> {/* */} @@ -115,40 +119,40 @@ function AboutSiteModal({props, reloadFunction}) {
-
{editBoard(e)}} noValidate> + {editPartnerSite(e)}} noValidate>
-
필수
+
필수
-
-
필수
+
필수
-
-
필수
+
필수
-
-
필수
+
필수
-
-
필수
+
필수
- + +
@@ -158,7 +162,7 @@ function AboutSiteModal({props, reloadFunction}) { {modeInfo.mode === CODE.MODE_MODIFY && - + }
diff --git a/kcsc-back-end/src/main/java/com/dbnt/kcscbackend/admin/config/AdminConfigController.java b/kcsc-back-end/src/main/java/com/dbnt/kcscbackend/admin/config/AdminConfigController.java index fad1f72..72e4ef2 100644 --- a/kcsc-back-end/src/main/java/com/dbnt/kcscbackend/admin/config/AdminConfigController.java +++ b/kcsc-back-end/src/main/java/com/dbnt/kcscbackend/admin/config/AdminConfigController.java @@ -1,6 +1,8 @@ package com.dbnt.kcscbackend.admin.config; +import com.dbnt.kcscbackend.admin.boards.entity.TnBbs; import com.dbnt.kcscbackend.admin.config.entity.TcMenu; +import com.dbnt.kcscbackend.admin.config.entity.TnPartnerSite; import com.dbnt.kcscbackend.admin.config.model.CreateCommitteeCodeManagementVO; import com.dbnt.kcscbackend.admin.config.service.AdminCommitteeCodeManagementService; import com.dbnt.kcscbackend.admin.standardResearch.service.AdminStandardResearchService; @@ -465,4 +467,62 @@ public class AdminConfigController extends BaseController { return resultVO; } + @Operation( + summary = "관련사이트 저장", + description = "관련사이트 저장", + tags = {"AdminConfigController"} + ) + @ApiResponses(value = { + @ApiResponse(responseCode = "200", description = "저장 성공"), + @ApiResponse(responseCode = "403", description = "인가된 사용자가 아님") + }) + @RequestMapping(method = RequestMethod.PUT, value = "/partner-site-mgt") + public ResultVO savePartnerSite(@RequestBody @Valid TnPartnerSite tnPartnerSite, Errors errors, @AuthenticationPrincipal LoginVO user) { + ResultVO resultVO = new ResultVO(); + if (user == null) { + resultVO.setResultCode(ResponseCode.TOKEN_EXPIRED.getCode()); + } else { + if (errors.hasErrors()) { + StringBuilder msg = new StringBuilder(); + for (FieldError error : errors.getFieldErrors()) { + msg.append(error.getDefaultMessage()); + msg.append("\n"); + } + resultVO.setResultCode(ResponseCode.INPUT_CHECK_ERROR.getCode()); + resultVO.setResultMessage(msg.toString()); + } else { + System.out.println("@@@ bbs.getBbsSeq() : " + tnPartnerSite.getSiteSeq()); + adminConfigService.savePartnerSite(tnPartnerSite, user.getId()); + resultVO.setResultCode(ResponseCode.SUCCESS.getCode()); + } + } + return resultVO; + } + + @Operation( + summary = "관련사이트 삭제", + description = "관련사이트 삭제", + tags = {"AdminConfigController"} + ) + @ApiResponses(value = { + @ApiResponse(responseCode = "200", description = "삭제 성공"), + @ApiResponse(responseCode = "403", description = "인가된 사용자가 아님") + }) + @RequestMapping(method = RequestMethod.DELETE, value = "/partner-site-mgt") + public ResultVO removePartnerSite(@RequestBody TnPartnerSite tnPartnerSite, @AuthenticationPrincipal LoginVO user) { + ResultVO resultVO = new ResultVO(); + if (user == null) { + resultVO.setResultCode(ResponseCode.TOKEN_EXPIRED.getCode()); + } else { + String result = adminConfigService.deletePartnerSite(tnPartnerSite, user.getId()); + if (result == null) { + resultVO.setResultCode(ResponseCode.SUCCESS.getCode()); + } else if (result.equals("notFind")) { + resultVO.setResultCode(ResponseCode.SAVE_ERROR.getCode()); + resultVO.setResultMessage("대상이 존재하지 않습니다."); + } + } + return resultVO; + } + } diff --git a/kcsc-back-end/src/main/java/com/dbnt/kcscbackend/admin/config/entity/TnPartnerSite.java b/kcsc-back-end/src/main/java/com/dbnt/kcscbackend/admin/config/entity/TnPartnerSite.java index 84e2347..3f5b1a8 100644 --- a/kcsc-back-end/src/main/java/com/dbnt/kcscbackend/admin/config/entity/TnPartnerSite.java +++ b/kcsc-back-end/src/main/java/com/dbnt/kcscbackend/admin/config/entity/TnPartnerSite.java @@ -5,11 +5,8 @@ import lombok.NoArgsConstructor; import lombok.Setter; import org.hibernate.annotations.DynamicInsert; import org.hibernate.annotations.DynamicUpdate; -import org.springframework.format.annotation.DateTimeFormat; import javax.persistence.*; -import javax.validation.constraints.NotBlank; -import java.time.LocalDateTime; @Getter @Setter @@ -22,7 +19,7 @@ public class TnPartnerSite { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) @Column(name = "site_seq") - private int siteSeq; + private Long siteSeq; @Column(name = "site_title", nullable = false, length = 500) private String siteTitle; @@ -34,8 +31,8 @@ public class TnPartnerSite { private String fileGrpId; @Column(name = "site_order", nullable = false) - private int siteOrder; + private Long siteOrder; @Column(name = "use_yn", nullable = false, length = 1) - private char useYn; + private String useYn; } diff --git a/kcsc-back-end/src/main/java/com/dbnt/kcscbackend/admin/config/service/AdminConfigService.java b/kcsc-back-end/src/main/java/com/dbnt/kcscbackend/admin/config/service/AdminConfigService.java index d48118c..ba9a1a8 100644 --- a/kcsc-back-end/src/main/java/com/dbnt/kcscbackend/admin/config/service/AdminConfigService.java +++ b/kcsc-back-end/src/main/java/com/dbnt/kcscbackend/admin/config/service/AdminConfigService.java @@ -20,6 +20,7 @@ import org.springframework.transaction.annotation.Transactional; import java.time.LocalDateTime; import java.util.ArrayList; import java.util.List; +import java.util.Optional; @Service @RequiredArgsConstructor @@ -174,4 +175,28 @@ public class AdminConfigService extends EgovAbstractServiceImpl { return tnPartnerSiteRepository.findAllByOrderBySiteOrder(); } + @Transactional + public void savePartnerSite(TnPartnerSite tnPartnerSite, String userId) { + if (tnPartnerSite.getSiteSeq() == null) { + tnPartnerSiteRepository.save(tnPartnerSite); + } else { + TnPartnerSite savedPartnerSite = tnPartnerSiteRepository.findById(tnPartnerSite.getSiteSeq()).orElse(null); + savedPartnerSite.setSiteTitle(tnPartnerSite.getSiteTitle()); + savedPartnerSite.setSiteUrl(tnPartnerSite.getSiteUrl()); + savedPartnerSite.setFileGrpId(tnPartnerSite.getFileGrpId()); + savedPartnerSite.setSiteOrder(tnPartnerSite.getSiteOrder()); + savedPartnerSite.setUseYn(tnPartnerSite.getUseYn()); + tnPartnerSiteRepository.save(savedPartnerSite); + } + } + + @Transactional + public String deletePartnerSite(TnPartnerSite tnPartnerSite, String userId) { + Optional optionalTnPartnerSite = tnPartnerSiteRepository.findById(tnPartnerSite.getSiteSeq()); + optionalTnPartnerSite.ifPresent(partnerSite -> { + tnPartnerSiteRepository.delete(partnerSite); + }); + return optionalTnPartnerSite.isPresent() ? null : "notFind"; + } + } \ No newline at end of file