From 34ba764694a3b70a5921dbb2e259928ea47e4fe7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EA=B0=95=EC=84=9D=20=EC=B5=9C?= Date: Wed, 29 Mar 2023 12:18:24 +0900 Subject: [PATCH] =?UTF-8?q?=EC=88=98=EC=8B=A0=EC=95=8C=EB=9E=8C=EB=AA=A9?= =?UTF-8?q?=EB=A1=9D=20=EC=9D=BD=EC=9D=8C=EC=B2=98=EB=A6=AC=20=EA=B8=B0?= =?UTF-8?q?=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 --- .../faisp/main/userInfo/MyInfoController.java | 17 +++++- .../repository/UserAlarmRepository.java | 7 +++ .../userInfo/service/UserAlarmService.java | 10 ++++ src/main/resources/static/js/common.js | 11 ++-- src/main/resources/static/js/user/myAlarm.js | 58 +++++++++++++++++++ .../internationalCrimeArrestEditModal.html | 1 - .../resources/templates/user/myAlarm.html | 33 ++++++----- 7 files changed, 113 insertions(+), 24 deletions(-) create mode 100644 src/main/resources/static/js/user/myAlarm.js diff --git a/src/main/java/com/dbnt/faisp/main/userInfo/MyInfoController.java b/src/main/java/com/dbnt/faisp/main/userInfo/MyInfoController.java index c1b026da..3f8d7b31 100644 --- a/src/main/java/com/dbnt/faisp/main/userInfo/MyInfoController.java +++ b/src/main/java/com/dbnt/faisp/main/userInfo/MyInfoController.java @@ -85,13 +85,24 @@ public class MyInfoController { ModelAndView mav = new ModelAndView("user/myAlarm"); alarm.setQueryInfo(); alarm.setUserSeq(loginUser.getUserSeq()); - mav.addObject("cat1List", codeMgtService.selectCodeMgtList("CAT1")); - mav.addObject("cat2List", codeMgtService.selectCodeMgtList("CAT2")); - mav.addObject("cat3List", codeMgtService.selectCodeMgtList("CAT3")); + mav.addObject("userSeq", loginUser.getUserSeq()); mav.addObject("pageAlarmList", userAlarmService.selectAlarmList(alarm)); alarm.setContentCnt(userAlarmService.selectAlarmListCnt(alarm)); alarm.setPaginationInfo(); mav.addObject("searchParams", alarm); return mav; } + + @PostMapping("/alarmStateChange") + @ResponseBody + public void alarmStateChange(@RequestBody List alarmList){ + userAlarmService.alarmStateChange(alarmList); + } + + /*@PostMapping("/alarmStateChangeAll") + @ResponseBody + public void alarmStateChangeAll(@RequestBody Integer userSeq){ + + System.out.println(userSeq); + }*/ } diff --git a/src/main/java/com/dbnt/faisp/main/userInfo/repository/UserAlarmRepository.java b/src/main/java/com/dbnt/faisp/main/userInfo/repository/UserAlarmRepository.java index d576f58f..7f5e2138 100644 --- a/src/main/java/com/dbnt/faisp/main/userInfo/repository/UserAlarmRepository.java +++ b/src/main/java/com/dbnt/faisp/main/userInfo/repository/UserAlarmRepository.java @@ -2,7 +2,14 @@ package com.dbnt.faisp.main.userInfo.repository; import com.dbnt.faisp.main.userInfo.model.UserAlarm; import org.springframework.data.jpa.repository.JpaRepository; +import org.springframework.data.jpa.repository.Modifying; +import org.springframework.data.jpa.repository.Query; + +import java.util.List; public interface UserAlarmRepository extends JpaRepository { + @Modifying(clearAutomatically = true) + @Query("update UserAlarm set viewYn = 'Y' where userSeq = :userSeq and alarmKey in (:alarmKeyList)") + void bulkModifyingByUserAlarmToUserSeqAndAlarmKeyList(Integer userSeq, List alarmKeyList); } diff --git a/src/main/java/com/dbnt/faisp/main/userInfo/service/UserAlarmService.java b/src/main/java/com/dbnt/faisp/main/userInfo/service/UserAlarmService.java index 10cbd055..1c78d26b 100644 --- a/src/main/java/com/dbnt/faisp/main/userInfo/service/UserAlarmService.java +++ b/src/main/java/com/dbnt/faisp/main/userInfo/service/UserAlarmService.java @@ -75,4 +75,14 @@ public class UserAlarmService { public void updateAlarm(UserAlarm alarm) { userAlarmRepository.save(alarm); } + + @Transactional + public void alarmStateChange(List alarmList) { + Integer userSeq = alarmList.get(0).getUserSeq(); + List alarmKeyList = new ArrayList<>(); + for(UserAlarm alarm: alarmList){ + alarmKeyList.add(alarm.getAlarmKey()); + } + userAlarmRepository.bulkModifyingByUserAlarmToUserSeqAndAlarmKeyList(userSeq, alarmKeyList); + } } diff --git a/src/main/resources/static/js/common.js b/src/main/resources/static/js/common.js index ec90043f..759b677d 100644 --- a/src/main/resources/static/js/common.js +++ b/src/main/resources/static/js/common.js @@ -37,10 +37,13 @@ $(document).on('click', '#bellIcon', function (){ alarmListDiv.className = "position-absolute bg-white card d-none"; } }) -$(document).on('click', '.alarmTr', function (){ - location.href = "/myInfo/moveAlarmBoard?" + - "alarmKey="+$(this).find(".alarmKey").val()+ - "&userSeq="+$(this).find(".userSeq").val(); +$(document).on('click', '.alarmTr', function (event){ + const target = event.target; + if(!(target.className === "checkBoxTd" || target.parentElement.className === "checkBoxTd")){ + location.href = "/myInfo/moveAlarmBoard?" + + "alarmKey="+$(this).find(".alarmKey").val()+ + "&userSeq="+$(this).find(".userSeq").val(); + } }) $(document).on('change', '#ogCdSearch', function (){ const ofcCdSearch = $("#ofcCdSearch") diff --git a/src/main/resources/static/js/user/myAlarm.js b/src/main/resources/static/js/user/myAlarm.js new file mode 100644 index 00000000..ca7d2d4b --- /dev/null +++ b/src/main/resources/static/js/user/myAlarm.js @@ -0,0 +1,58 @@ +$(function (){ + $("#dateSelectorDiv").datepicker({ + format: "yyyy-mm-dd", + language: "ko", + autoclose: true + }); +}) + +$(document).on('click', '#stateChangeBtn', function (){ + const checkedAlarmList = $(".alarmCheckBox:checked"); + if(checkedAlarmList.length === 0) { + alert("대상을 선택해주세요.") + }else{ + if(confirm("선택 목록을 읽음처리 하시겠습니까?")){ + const userSeq = $(this).attr('data-userseq'); + const alarmList = []; + $.each(checkedAlarmList, function (idx, checkBox){ + alarmList.push({ + alarmKey: $(checkBox).parents('.alarmTr').find('.alarmKey').val(), + userSeq: userSeq + }) + }) + $.ajax({ + type : 'POST', + url : "/myInfo/alarmStateChange", + data : JSON.stringify(alarmList), + contentType: 'application/json', + beforeSend: function (xhr){ + xhr.setRequestHeader($("[name='_csrf_header']").val(), $("[name='_csrf']").val()); + }, + success : function(data) { + alert('변경되었습니다.') + location.reload(); + }, + error : function(xhr, status) { + alert("상태 변경에 실패하였습니다"); + } + }) + } + } +}) +/*$(document).on('click', '#stateChangeAllBtn', function (){ + $.ajax({ + type : 'POST', + url : "/myInfo/alarmStateChangeAll", + data : JSON.stringify({userSeq: Number($(this).attr('data-userseq'))}), + contentType: 'application/json', + beforeSend: function (xhr){ + xhr.setRequestHeader($("[name='_csrf_header']").val(), $("[name='_csrf']").val()); + }, + success : function(data) { + location.reload(); + }, + error : function(xhr, status) { + alert("상태 변경에 실패하였습니다"); + } + }) +})*/ diff --git a/src/main/resources/templates/faStatistics/internationalCrimeArrest/internationalCrimeArrestEditModal.html b/src/main/resources/templates/faStatistics/internationalCrimeArrest/internationalCrimeArrestEditModal.html index 32786db1..32b9e1b7 100644 --- a/src/main/resources/templates/faStatistics/internationalCrimeArrest/internationalCrimeArrestEditModal.html +++ b/src/main/resources/templates/faStatistics/internationalCrimeArrest/internationalCrimeArrestEditModal.html @@ -6,7 +6,6 @@