diff --git a/src/main/java/com/dbnt/faisp/config/SecurityConfig.java b/src/main/java/com/dbnt/faisp/config/SecurityConfig.java index 7742d097..3bb7a87d 100644 --- a/src/main/java/com/dbnt/faisp/config/SecurityConfig.java +++ b/src/main/java/com/dbnt/faisp/config/SecurityConfig.java @@ -141,6 +141,7 @@ public class SecurityConfig{ "/counterIntelligence/**", "/monitoring/**", "/intelligenceNetwork/**", + "/deadline/**", "/resetSession" ).hasRole(Role.USER.name()) // USER 접근 허용 .antMatchers( diff --git a/src/main/java/com/dbnt/faisp/main/faStatistics/internationalCrimeArrest/InternationalCrimeArrestController.java b/src/main/java/com/dbnt/faisp/main/faStatistics/internationalCrimeArrest/InternationalCrimeArrestController.java index e641c293..fb5d70c1 100644 --- a/src/main/java/com/dbnt/faisp/main/faStatistics/internationalCrimeArrest/InternationalCrimeArrestController.java +++ b/src/main/java/com/dbnt/faisp/main/faStatistics/internationalCrimeArrest/InternationalCrimeArrestController.java @@ -6,6 +6,7 @@ import com.dbnt.faisp.main.codeMgt.service.CodeMgtService; import com.dbnt.faisp.main.faStatistics.internationalCrimeArrest.model.InternationalCrimeArrest; import com.dbnt.faisp.main.faStatistics.internationalCrimeArrest.repository.SuspectPersonInfoRepository; import com.dbnt.faisp.main.faStatistics.internationalCrimeArrest.service.InternationalCrimeArrestService; +import com.dbnt.faisp.main.menuMgt.service.MenuMgtService; import com.dbnt.faisp.main.organMgt.model.OrganConfig; import com.dbnt.faisp.main.organMgt.service.OrganConfigService; import com.dbnt.faisp.main.userInfo.model.UserInfo; @@ -29,9 +30,9 @@ public class InternationalCrimeArrestController { private final AuthMgtService authMgtService; private final InternationalCrimeArrestService internationalCrimeArrestService; - private final CodeMgtService codeMgtService; private final OrganConfigService organConfigService; private final SuspectPersonInfoRepository suspectPersonInfoRepository; + private final MenuMgtService menuMgtService; @GetMapping("/internationalCrimeArrest") public ModelAndView internationalCrimeArrest(@AuthenticationPrincipal UserInfo loginUser,InternationalCrimeArrest internationalCrimeArrest) { @@ -53,6 +54,7 @@ public class InternationalCrimeArrestController { mav.addObject("internationalCrimeArrestList", internationalCrimeArrestList); internationalCrimeArrest.setContentCnt(internationalCrimeArrestService.selectInternationalCrimeArrestListCnt(internationalCrimeArrest)); internationalCrimeArrest.setPaginationInfo(); + mav.addObject("deadlineState", menuMgtService.selectDeadlineChk("/faStatistics/internationalCrimeArrest")); mav.addObject("organConfigList", organConfigService.selectOrganList()); mav.addObject("searchParams", internationalCrimeArrest); return mav; diff --git a/src/main/java/com/dbnt/faisp/main/menuMgt/DeadlineController.java b/src/main/java/com/dbnt/faisp/main/menuMgt/DeadlineController.java new file mode 100644 index 00000000..870d94c3 --- /dev/null +++ b/src/main/java/com/dbnt/faisp/main/menuMgt/DeadlineController.java @@ -0,0 +1,21 @@ +package com.dbnt.faisp.main.menuMgt; + +import com.dbnt.faisp.main.menuMgt.model.MenuMgt; +import com.dbnt.faisp.main.menuMgt.service.MenuMgtService; +import lombok.RequiredArgsConstructor; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +@RestController +@RequiredArgsConstructor +@RequestMapping("/deadline") +public class DeadlineController { + + private final MenuMgtService menuMgtService; + + @PostMapping("/stateChange") + public void stateChange(MenuMgt menuMgt){ + menuMgtService.updateDeadlineState(menuMgt); + } +} diff --git a/src/main/java/com/dbnt/faisp/main/menuMgt/repository/MenuMgtRepository.java b/src/main/java/com/dbnt/faisp/main/menuMgt/repository/MenuMgtRepository.java index 80030056..0213ce5b 100644 --- a/src/main/java/com/dbnt/faisp/main/menuMgt/repository/MenuMgtRepository.java +++ b/src/main/java/com/dbnt/faisp/main/menuMgt/repository/MenuMgtRepository.java @@ -2,10 +2,17 @@ package com.dbnt.faisp.main.menuMgt.repository; import com.dbnt.faisp.main.menuMgt.model.MenuMgt; import org.springframework.data.jpa.repository.JpaRepository; +import org.springframework.data.jpa.repository.Modifying; +import org.springframework.data.jpa.repository.Query; import java.util.Optional; public interface MenuMgtRepository extends JpaRepository { Optional findTopByCat1CdAndCat2CdAndCat3Cd(String cat1Cd, String cat2Cd, String cat3Cd); + Optional findByMenuUrl(String menuUrl); + + @Modifying(clearAutomatically = true) + @Query("update MenuMgt set deadlineChk = :deadlineChk where menuKey = :menuKey") + void bulkModifyingByMenuKeyToDeadlineChk(Integer menuKey, String deadlineChk); } diff --git a/src/main/java/com/dbnt/faisp/main/menuMgt/service/MenuMgtService.java b/src/main/java/com/dbnt/faisp/main/menuMgt/service/MenuMgtService.java index 7acf197b..149a9b95 100644 --- a/src/main/java/com/dbnt/faisp/main/menuMgt/service/MenuMgtService.java +++ b/src/main/java/com/dbnt/faisp/main/menuMgt/service/MenuMgtService.java @@ -188,4 +188,12 @@ public class MenuMgtService { MenuMgt menuMgt = menuMgtRepository.findById(menuKey).orElse(new MenuMgt()); return menuMgt.getMenuUrl(); } + + public String selectDeadlineChk(String url){ + return menuMgtRepository.findByMenuUrl(url).orElse(new MenuMgt()).getDeadlineChk(); + } + @Transactional + public void updateDeadlineState(MenuMgt menuMgt) { + menuMgtRepository.bulkModifyingByMenuKeyToDeadlineChk(menuMgt.getMenuKey(), menuMgt.getDeadlineChk()); + } } diff --git a/src/main/resources/static/js/menuMgt/deadline.js b/src/main/resources/static/js/menuMgt/deadline.js new file mode 100644 index 00000000..1ff68a4b --- /dev/null +++ b/src/main/resources/static/js/menuMgt/deadline.js @@ -0,0 +1,26 @@ +$(document).on('click', '#deadlineBtn', function (){ + contentFade("in"); + const formData = new FormData(); + const deadlineChk = $(this).attr('data-deadlinechk')==="T"?"F":"T" + formData.append("menuKey", $(this).attr('data-menukey')); + formData.append("deadlineChk", deadlineChk); + $.ajax({ + type : 'POST', + data : formData, + url : "/deadline/stateChange", + processData: false, + contentType: false, + beforeSend: function (xhr){ + xhr.setRequestHeader($("[name='_csrf_header']").val(), $("[name='_csrf']").val()); + }, + success : function(result) { + alert((deadlineChk==="T"?"마감":"등록허용")+" 되었습니다."); + contentFade("out"); + location.reload(); + }, + error : function(xhr, status) { + alert("상태변경에 실패하였습니다.") + contentFade("out"); + } + }) +}) \ No newline at end of file diff --git a/src/main/resources/templates/faStatistics/internationalCrimeArrest/internationalCrimeArrest.html b/src/main/resources/templates/faStatistics/internationalCrimeArrest/internationalCrimeArrest.html index 9df4ebfe..45f65fd4 100644 --- a/src/main/resources/templates/faStatistics/internationalCrimeArrest/internationalCrimeArrest.html +++ b/src/main/resources/templates/faStatistics/internationalCrimeArrest/internationalCrimeArrest.html @@ -10,6 +10,7 @@ const organConfigList = [[${organConfigList}]]; +
@@ -230,7 +231,7 @@
- +
@@ -259,7 +260,7 @@
- +