diff --git a/build.gradle b/build.gradle index 61e71c8..2eb2884 100644 --- a/build.gradle +++ b/build.gradle @@ -27,8 +27,6 @@ dependencies { implementation 'org.mybatis.spring.boot:mybatis-spring-boot-starter:2.1.4' implementation 'org.springframework.boot:spring-boot-starter-thymeleaf' implementation group: 'nz.net.ultraq.thymeleaf', name: 'thymeleaf-layout-dialect', version: '2.5.3' - implementation group: 'com.googlecode.json-simple', name: 'json-simple', version: '1.1.1' - implementation 'org.springframework.boot:spring-boot-starter-security' implementation 'org.thymeleaf.extras:thymeleaf-extras-springsecurity5' diff --git a/src/main/java/com/dbnt/kcgfilemanager/BaseController.java b/src/main/java/com/dbnt/kcgfilemanager/BaseController.java index 9e238d9..2c77996 100644 --- a/src/main/java/com/dbnt/kcgfilemanager/BaseController.java +++ b/src/main/java/com/dbnt/kcgfilemanager/BaseController.java @@ -4,27 +4,32 @@ import com.dbnt.kcgfilemanager.model.UserInfo; import org.springframework.security.authentication.UsernamePasswordAuthenticationToken; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RestController; +import org.springframework.web.servlet.ModelAndView; import java.security.Principal; -@Controller +@RestController public class BaseController { @GetMapping("/") - public String loginCheck(Principal principal) { + public ModelAndView loginCheck(Principal principal) { + ModelAndView mav = null; if(principal == null){ - return "redirect:/user/login"; + mav = new ModelAndView("redirect:/user/login"); }else{ if(((UserInfo)((UsernamePasswordAuthenticationToken) principal).getPrincipal()).getUserRole().indexOf("ADMIN")>0){ - return "redirect:/admin/main"; + mav = new ModelAndView("redirect:/admin/main"); }else{ - return "redirect:/user/main"; + mav = new ModelAndView("redirect:/user/main"); } } + return mav; } @GetMapping("/user/main") - public String main() { - return "main"; + public ModelAndView main() { + ModelAndView mav = new ModelAndView("main"); + return mav; } } diff --git a/src/main/java/com/dbnt/kcgfilemanager/controller/UserInfoController.java b/src/main/java/com/dbnt/kcgfilemanager/controller/UserInfoController.java index 61bfeea..5ba25fc 100644 --- a/src/main/java/com/dbnt/kcgfilemanager/controller/UserInfoController.java +++ b/src/main/java/com/dbnt/kcgfilemanager/controller/UserInfoController.java @@ -7,43 +7,50 @@ import org.springframework.stereotype.Controller; import org.springframework.ui.Model; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RestController; +import org.springframework.web.servlet.ModelAndView; -@Controller +@RestController @RequiredArgsConstructor public class UserInfoController { - private final UserInfoService userInfoService; + private final UserInfoService userInfoService; - /** * 로그인 페이지 이동 * @return */ - @GetMapping("/user/login") - public String goLogin() { - return "login"; - } + /** * 로그인 페이지 이동 * @return */ + @GetMapping("/user/login") + public ModelAndView goLogin() { + ModelAndView mav = new ModelAndView("login"); + return mav; + } - /** * 로그인 에러 * @param model * @return */ - @GetMapping("/login-error") - public String loginError(Model model) { - model.addAttribute("loginError", true); - return "/login"; - } + /** * 로그인 에러 * @param model * @return */ + @GetMapping("/login-error") + public ModelAndView loginError() { + ModelAndView mav = new ModelAndView("/login"); + mav.addObject("loginError", true); + return mav; + } - /** * 회원가입 처리 * @param memberDto * @return */ - @PostMapping("/signup") - public String signup(UserInfo userInfo) { - userInfoService.signup(userInfo); - return "redirect:/user/login"; - } + /** * 회원가입 처리 * @param memberDto * @return */ + @PostMapping("/signup") + public ModelAndView signup(UserInfo userInfo) { + ModelAndView mav = new ModelAndView("redirect:/user/login"); + userInfoService.signup(userInfo); + return mav; + } - /** * 접근 거부 페이지 이동 * @return */ - @GetMapping("/denied") - public String doDenied() { - return "login/denied"; - } + /** * 접근 거부 페이지 이동 * @return */ + @GetMapping("/denied") + public ModelAndView doDenied() { + ModelAndView mav = new ModelAndView("login/denied"); + return mav; + } - /** * 내 정보 페이지 이동 * @return */ - @GetMapping("/info") - public String goMyInfo() { - return "login/myinfo"; - } + /** * 내 정보 페이지 이동 * @return */ + @GetMapping("/info") + public ModelAndView goMyInfo() { + ModelAndView mav = new ModelAndView("login/myinfo"); + return mav; + } } diff --git a/src/main/java/com/dbnt/kcgfilemanager/controller/adminController.java b/src/main/java/com/dbnt/kcgfilemanager/controller/adminController.java index 0006aa1..89d354e 100644 --- a/src/main/java/com/dbnt/kcgfilemanager/controller/adminController.java +++ b/src/main/java/com/dbnt/kcgfilemanager/controller/adminController.java @@ -3,44 +3,40 @@ package com.dbnt.kcgfilemanager.controller; import com.dbnt.kcgfilemanager.model.CommonCode; import com.dbnt.kcgfilemanager.service.CommonCodeService; import lombok.RequiredArgsConstructor; -import org.json.simple.JSONObject; -import org.springframework.stereotype.Controller; +import org.springframework.http.MediaType; import org.springframework.web.bind.annotation.*; import org.springframework.web.servlet.ModelAndView; +import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; -import java.io.IOException; -import java.io.PrintWriter; -import java.net.http.HttpResponse; +import java.util.ArrayList; +import java.util.HashMap; import java.util.List; +import java.util.Map; -@Controller +@RestController @RequiredArgsConstructor @RequestMapping("/admin") public class adminController { private final CommonCodeService commonCodeService; - /** * 회원가입 페이지 이동 * @return */ - @GetMapping("/signup") - public String goSignup() { - return "login/signup"; - } - - /** * Admin 페이지 이동 * @return */ @GetMapping("/main") - public String goAdmin() { - return "admin/main"; + public ModelAndView goAdmin() { + ModelAndView mav = new ModelAndView("admin/main"); + return mav; } @GetMapping("/userMgt") - public String userMgt() { - return "admin/userMgt"; + public ModelAndView userMgt() { + ModelAndView mav = new ModelAndView("admin/userMgt"); + return mav; } @GetMapping("/modifyRequest") - public String modifyRequest() { - return "admin/modifyRequest"; + public ModelAndView modifyRequest() { + ModelAndView mav = new ModelAndView("admin/modifyRequest"); + return mav; } @GetMapping("/codeMgt") @@ -57,36 +53,23 @@ public class adminController { return mav; } - @PutMapping("/insertCommonCode") - public void insertCommonCode(HttpServletResponse res, CommonCode commonCode){ - res.setCharacterEncoding("UTF-8"); - res.setContentType("text/html; charset=UTF-8"); - PrintWriter writerJson = null; - JSONObject jsonObject = new JSONObject(); + @PutMapping("/insertCode") + public CommonCode insertCommonCode(CommonCode commonCode){ commonCodeService.insertCommonCode(commonCode); - jsonObject.put("codeSq", commonCode.getCodeSq()); - jsonObject.put("category", commonCode.getCategory()); - jsonObject.put("value", commonCode.getValue()); - try { - writerJson = res.getWriter(); - } catch (IOException e) { - e.printStackTrace(); - } - writerJson.print(jsonObject); + return commonCode; } - @PutMapping("/updateCommonCode") - public void updateCommonCode(HttpServletResponse res, List commonCodeList){ - res.setCharacterEncoding("UTF-8"); - res.setContentType("text/html; charset=UTF-8"); - PrintWriter writerJson = null; - JSONObject jsonObject = new JSONObject(); - System.out.println(commonCodeList.size()); - // jsonObject.put("codeSq", commonCode.getCodeSq()); - try { - writerJson = res.getWriter(); - } catch (IOException e) { - e.printStackTrace(); - } - writerJson.print(jsonObject); + + @PostMapping(value = "/deleteCode") + @ResponseBody + public int deleteCommonCode( +// @RequestBody HashMap map +// @RequestBody CommonCode code + @RequestBody List codeList + ) { +// return map.size(); +// return code.getCodeSq(); + commonCodeService.updateCommonCode(codeList); + return codeList.size(); } + } diff --git a/src/main/java/com/dbnt/kcgfilemanager/model/CommonCode.java b/src/main/java/com/dbnt/kcgfilemanager/model/CommonCode.java index bb1a5d4..fca8d98 100644 --- a/src/main/java/com/dbnt/kcgfilemanager/model/CommonCode.java +++ b/src/main/java/com/dbnt/kcgfilemanager/model/CommonCode.java @@ -1,8 +1,6 @@ package com.dbnt.kcgfilemanager.model; -import lombok.Getter; -import lombok.NoArgsConstructor; -import lombok.Setter; +import lombok.*; import org.hibernate.annotations.DynamicInsert; import org.hibernate.annotations.DynamicUpdate; @@ -10,19 +8,19 @@ import javax.persistence.*; @Getter @Setter +@Entity @NoArgsConstructor @DynamicInsert @DynamicUpdate -@Entity @Table(name = "COMMON_CODE") public class CommonCode { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) @Column(name = "CODE_SQ") private Integer codeSq; - @Column(name = "CATEGORY") + @Column(name = "CATEGORY", nullable = false) private String category; - @Column(name = "VALUE") + @Column(name = "VALUE", nullable = false) private String value; @Column(name = "DESCRIPTION") private String description; diff --git a/src/main/java/com/dbnt/kcgfilemanager/model/UserInfo.java b/src/main/java/com/dbnt/kcgfilemanager/model/UserInfo.java index 57891a5..191d8e5 100644 --- a/src/main/java/com/dbnt/kcgfilemanager/model/UserInfo.java +++ b/src/main/java/com/dbnt/kcgfilemanager/model/UserInfo.java @@ -15,10 +15,10 @@ import java.util.Set; @Getter @Setter +@Entity @NoArgsConstructor @DynamicInsert @DynamicUpdate -@Entity @Table(name = "USER_INFO") public class UserInfo implements UserDetails{ @Id diff --git a/src/main/java/com/dbnt/kcgfilemanager/repository/CommonCodeRepository.java b/src/main/java/com/dbnt/kcgfilemanager/repository/CommonCodeRepository.java index 971e04c..b2d0885 100644 --- a/src/main/java/com/dbnt/kcgfilemanager/repository/CommonCodeRepository.java +++ b/src/main/java/com/dbnt/kcgfilemanager/repository/CommonCodeRepository.java @@ -3,7 +3,10 @@ package com.dbnt.kcgfilemanager.repository; import com.dbnt.kcgfilemanager.model.CommonCode; import org.springframework.data.jpa.repository.JpaRepository; +import java.util.List; + public interface CommonCodeRepository extends JpaRepository { + List findByCategory(String category); } diff --git a/src/main/java/com/dbnt/kcgfilemanager/service/CommonCodeService.java b/src/main/java/com/dbnt/kcgfilemanager/service/CommonCodeService.java index 2d2b6f3..ce5cccb 100644 --- a/src/main/java/com/dbnt/kcgfilemanager/service/CommonCodeService.java +++ b/src/main/java/com/dbnt/kcgfilemanager/service/CommonCodeService.java @@ -26,9 +26,13 @@ public class CommonCodeService { return commonCodeMapper.selectCommonCodeCategory(commonCode); } public List selectCommonCodeValue(CommonCode commonCode) { - return commonCodeMapper.selectCommonCodeValue(commonCode); + return commonCodeRepository.findByCategory(commonCode.getCategory()); } public void insertCommonCode(CommonCode commonCode) { commonCodeRepository.save(commonCode); } + + public void updateCommonCode(List codeList) { + commonCodeRepository.saveAll(codeList); + } } diff --git a/src/main/resources/static/js/admin/codeMgt.js b/src/main/resources/static/js/admin/codeMgt.js index 3179824..5288131 100644 --- a/src/main/resources/static/js/admin/codeMgt.js +++ b/src/main/resources/static/js/admin/codeMgt.js @@ -46,12 +46,11 @@ $(document).on('click', '#saveBtn', function (){ if(confirm("저장하시겠습니까?")){ const formData = new FormData($("#commonCodeForm")[0]); $.ajax({ - processData: false, - contentType: false, - url : "/admin/insertCommonCode", type : 'PUT', data : formData, - dataType: 'json', + url : "/admin/insertCode", + processData: false, + contentType: false, success : function(data) { alert("저장되었습니다.") $("#closeModalBtn").click(); @@ -65,15 +64,21 @@ $(document).on('click', '#saveBtn', function (){ } }) $(document).on('click', '#deleteCommonCodeBtn', function (){ - let commonCodeList = []; + const codeList = []; $(".valueCheckBox:checked").each(function (idx, el){ - commonCodeList.push({codeSq: el.value, isDeleted:'Y'}); + codeList.push({}); + codeList[idx].codeSq = Number(el.value); + codeList[idx].isDeleted = 'Y'; }) + $.ajaxSettings.traditional = true; $.ajax({ - url : "/admin/updateCommonCode", - type : 'PUT', - data : commonCodeList, - dataType: 'json', + type : 'POST', + url : "/admin/deleteCode", + data : JSON.stringify(codeList), + contentType: 'application/json', + beforeSend: function (xhr){ + xhr.setRequestHeader($("[name='_csrf_header']").val(), $("[name='_csrf']").val()); + }, success : function(data) { debugger }, diff --git a/src/main/resources/templates/admin/codeMgt.html b/src/main/resources/templates/admin/codeMgt.html index fc6a8de..fd72d52 100644 --- a/src/main/resources/templates/admin/codeMgt.html +++ b/src/main/resources/templates/admin/codeMgt.html @@ -9,6 +9,8 @@
+ +

코드 관리

diff --git a/src/main/resources/templates/admin/codeValue.html b/src/main/resources/templates/admin/codeValue.html index a3c3271..e019adb 100644 --- a/src/main/resources/templates/admin/codeValue.html +++ b/src/main/resources/templates/admin/codeValue.html @@ -13,7 +13,11 @@ - + diff --git a/src/main/resources/templates/login.html b/src/main/resources/templates/login.html index babaa0d..17d8d87 100644 --- a/src/main/resources/templates/login.html +++ b/src/main/resources/templates/login.html @@ -9,6 +9,7 @@
+

Wrong user or password