From 7854e71f82c69e17b31244166530f722275a07da Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EA=B0=95=EC=84=9D=20=EC=B5=9C?= Date: Tue, 23 Aug 2022 18:08:49 +0900 Subject: [PATCH] =?UTF-8?q?=EB=A9=94=EB=89=B4=EA=B4=80=EB=A6=AC=20?= =?UTF-8?q?=EC=9E=91=EC=97=85=EC=A4=91.=20=EB=93=B1=EB=A1=9D,=20=EC=A1=B0?= =?UTF-8?q?=ED=9A=8C=20=EA=B8=B0=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 --- .../dbnt/faisp/{ => config}/BaseModel.java | 2 +- .../{ => controller}/BaseController.java | 2 +- .../faisp/controller/MenuMgtController.java | 14 +- .../dbnt/faisp/menuMgt/MenuMgtService.java | 21 ++ .../faisp/menuMgt/mapper/MenuMgtMapper.java | 6 + .../com/dbnt/faisp/menuMgt/model/MenuMgt.java | 16 +- .../menuMgt/repository/MenuMgtRepository.java | 2 +- .../dbnt/faisp/userInfo/model/UserInfo.java | 2 +- src/main/resources/application-dev.properties | 14 +- .../resources/mybatisMapper/menuMgtMapper.xml | 48 ++++ .../resources/static/js/menuMgt/menuMgt.js | 44 ++++ .../templates/adminPage/codeMgt/codeMgt.html | 2 +- .../templates/adminPage/menuMgt/menuMgt.html | 207 ++++++++++++++---- .../resources/templates/fragments/header.html | 2 +- .../resources/templates/layout/layout.html | 7 + 15 files changed, 318 insertions(+), 71 deletions(-) rename src/main/java/com/dbnt/faisp/{ => config}/BaseModel.java (97%) rename src/main/java/com/dbnt/faisp/{ => controller}/BaseController.java (98%) create mode 100644 src/main/resources/mybatisMapper/menuMgtMapper.xml create mode 100644 src/main/resources/static/js/menuMgt/menuMgt.js diff --git a/src/main/java/com/dbnt/faisp/BaseModel.java b/src/main/java/com/dbnt/faisp/config/BaseModel.java similarity index 97% rename from src/main/java/com/dbnt/faisp/BaseModel.java rename to src/main/java/com/dbnt/faisp/config/BaseModel.java index 52d26944..20306974 100644 --- a/src/main/java/com/dbnt/faisp/BaseModel.java +++ b/src/main/java/com/dbnt/faisp/config/BaseModel.java @@ -1,4 +1,4 @@ -package com.dbnt.faisp; +package com.dbnt.faisp.config; import lombok.Getter; import lombok.NoArgsConstructor; diff --git a/src/main/java/com/dbnt/faisp/BaseController.java b/src/main/java/com/dbnt/faisp/controller/BaseController.java similarity index 98% rename from src/main/java/com/dbnt/faisp/BaseController.java rename to src/main/java/com/dbnt/faisp/controller/BaseController.java index 2875ace3..3abd6e3e 100644 --- a/src/main/java/com/dbnt/faisp/BaseController.java +++ b/src/main/java/com/dbnt/faisp/controller/BaseController.java @@ -1,4 +1,4 @@ -package com.dbnt.faisp; +package com.dbnt.faisp.controller; import com.dbnt.faisp.userInfo.model.UserInfo; import com.dbnt.faisp.codeMgt.CodeMgtService; diff --git a/src/main/java/com/dbnt/faisp/controller/MenuMgtController.java b/src/main/java/com/dbnt/faisp/controller/MenuMgtController.java index 3880a672..4ea4cb15 100644 --- a/src/main/java/com/dbnt/faisp/controller/MenuMgtController.java +++ b/src/main/java/com/dbnt/faisp/controller/MenuMgtController.java @@ -1,6 +1,7 @@ package com.dbnt.faisp.controller; import com.dbnt.faisp.menuMgt.MenuMgtService; +import com.dbnt.faisp.menuMgt.model.MenuMgt; import lombok.RequiredArgsConstructor; import org.springframework.web.bind.annotation.*; import org.springframework.web.servlet.ModelAndView; @@ -14,10 +15,19 @@ public class MenuMgtController { private final MenuMgtService menuMgtService; @GetMapping("/menuMgtPage") - public ModelAndView menuMgtPage() { + public ModelAndView menuMgtPage(MenuMgt menuMgt) { ModelAndView mav = new ModelAndView("/adminPage/menuMgt/menuMgt"); - + menuMgt.setQueryInfo(); + mav.addObject("menuMgtList", menuMgtService.selectMenuMgtList(menuMgt)); + menuMgt.setContentCnt(menuMgtService.selectMenuMgtListCnt(menuMgt)); + menuMgt.setPaginationInfo(); + mav.addObject("searchParams", menuMgt); return mav; } + @PostMapping("/saveMenuMgt") + public String saveMenuMgt(MenuMgt menuMgt){ + return menuMgtService.saveMenuMgt(menuMgt); + } + } diff --git a/src/main/java/com/dbnt/faisp/menuMgt/MenuMgtService.java b/src/main/java/com/dbnt/faisp/menuMgt/MenuMgtService.java index 8725f65c..b1d15f4f 100644 --- a/src/main/java/com/dbnt/faisp/menuMgt/MenuMgtService.java +++ b/src/main/java/com/dbnt/faisp/menuMgt/MenuMgtService.java @@ -1,10 +1,14 @@ package com.dbnt.faisp.menuMgt; import com.dbnt.faisp.menuMgt.mapper.MenuMgtMapper; +import com.dbnt.faisp.menuMgt.model.MenuMgt; import com.dbnt.faisp.menuMgt.repository.MenuMgtRepository; import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Service; +import javax.persistence.Transient; +import java.util.List; + @Service @RequiredArgsConstructor public class MenuMgtService { @@ -12,5 +16,22 @@ public class MenuMgtService { private final MenuMgtRepository menuMgtRepository; private final MenuMgtMapper menuMgtMapper; + public List selectMenuMgtList(MenuMgt menuMgt){ + return menuMgtMapper.selectMenuMgtList(menuMgt); + } + public Integer selectMenuMgtListCnt(MenuMgt menuMgt){ + return menuMgtMapper.selectMenuMgtListCnt(menuMgt); + } + + @Transient + public String saveMenuMgt(MenuMgt menuMgt) { + MenuMgt duplMenu = menuMgtRepository.findTopByCat1CdAndCat2CdAndCat3Cd(menuMgt.getCat1Cd(), menuMgt.getCat2Cd(), menuMgt.getCat3Cd()); + if(duplMenu!=null){ + return duplMenu.getMenuUrl(); + }else{ + menuMgtRepository.save(menuMgt); + return ""; + } + } } diff --git a/src/main/java/com/dbnt/faisp/menuMgt/mapper/MenuMgtMapper.java b/src/main/java/com/dbnt/faisp/menuMgt/mapper/MenuMgtMapper.java index d07bb22d..2d6bc372 100644 --- a/src/main/java/com/dbnt/faisp/menuMgt/mapper/MenuMgtMapper.java +++ b/src/main/java/com/dbnt/faisp/menuMgt/mapper/MenuMgtMapper.java @@ -1,8 +1,14 @@ package com.dbnt.faisp.menuMgt.mapper; +import com.dbnt.faisp.menuMgt.model.MenuMgt; import org.apache.ibatis.annotations.Mapper; +import java.util.List; + @Mapper public interface MenuMgtMapper { + List selectMenuMgtList(MenuMgt menuMgt); + + Integer selectMenuMgtListCnt(MenuMgt menuMgt); } diff --git a/src/main/java/com/dbnt/faisp/menuMgt/model/MenuMgt.java b/src/main/java/com/dbnt/faisp/menuMgt/model/MenuMgt.java index 4d2de64c..51487c42 100644 --- a/src/main/java/com/dbnt/faisp/menuMgt/model/MenuMgt.java +++ b/src/main/java/com/dbnt/faisp/menuMgt/model/MenuMgt.java @@ -1,5 +1,6 @@ package com.dbnt.faisp.menuMgt.model; +import com.dbnt.faisp.config.BaseModel; import lombok.Getter; import lombok.NoArgsConstructor; import lombok.Setter; @@ -15,16 +16,17 @@ import javax.persistence.*; @DynamicInsert @DynamicUpdate @Table(name = "menu_mgt") -public class MenuMgt { +public class MenuMgt extends BaseModel { @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) @Column(name = "menu_key") private String menuKey; - @Column(name = "cat1_nm", nullable = false) - private String cat1Nm; - @Column(name = "cat2_nm", nullable = false) - private String cat2Nm; - @Column(name = "cat3_nm", nullable = false) - private String cat3Nm; + @Column(name = "cat1_cd", nullable = false) + private String cat1Cd; + @Column(name = "cat2_cd", nullable = false) + private String cat2Cd; + @Column(name = "cat3_cd") + private String cat3Cd; @Column(name = "menu_url", nullable = false) private String menuUrl; diff --git a/src/main/java/com/dbnt/faisp/menuMgt/repository/MenuMgtRepository.java b/src/main/java/com/dbnt/faisp/menuMgt/repository/MenuMgtRepository.java index e5ec789b..e167349e 100644 --- a/src/main/java/com/dbnt/faisp/menuMgt/repository/MenuMgtRepository.java +++ b/src/main/java/com/dbnt/faisp/menuMgt/repository/MenuMgtRepository.java @@ -5,5 +5,5 @@ import org.springframework.data.jpa.repository.JpaRepository; public interface MenuMgtRepository extends JpaRepository { - + MenuMgt findTopByCat1CdAndCat2CdAndCat3Cd(String cat1Cd, String cat2Cd, String cat3Cd); } diff --git a/src/main/java/com/dbnt/faisp/userInfo/model/UserInfo.java b/src/main/java/com/dbnt/faisp/userInfo/model/UserInfo.java index d9f35aa6..ceaf2d98 100644 --- a/src/main/java/com/dbnt/faisp/userInfo/model/UserInfo.java +++ b/src/main/java/com/dbnt/faisp/userInfo/model/UserInfo.java @@ -1,6 +1,6 @@ package com.dbnt.faisp.userInfo.model; -import com.dbnt.faisp.BaseModel; +import com.dbnt.faisp.config.BaseModel; import lombok.Getter; import lombok.NoArgsConstructor; import lombok.Setter; diff --git a/src/main/resources/application-dev.properties b/src/main/resources/application-dev.properties index aee88a48..8b853c96 100644 --- a/src/main/resources/application-dev.properties +++ b/src/main/resources/application-dev.properties @@ -22,23 +22,13 @@ spring.datasource.url=jdbc:log4jdbc:postgresql://106.247.244.146:50503/faisp spring.datasource.username=dbnt0031 spring.datasource.password=dbnt0928! - -#mariaDB & log4jdbc -#spring.datasource.driverClassName=net.sf.log4jdbc.sql.jdbcapi.DriverSpy -#spring.datasource.url=ENC(dyWhZaWHoSfJZtAIG3H42B36VasUlkpnnXQ7K1DFIoY+BxgbHAwf9mFSfxoZfn4zU+6uc2n4hK05vDAG2u/oARiQfDZU/y3ATZ8KldP14suXeRHFfnryNGPzEdPzd9Pjd3/HvYOplF+5+B2yUVGawg==) -#spring.datasource.username=ENC(+BM/jvdOdi0MtWj44u1nxA==) -#spring.datasource.password=ENC(njSsOMalmaUC2YKT4jm2GyYSNXc0hZs4) -#spring.datasource.url=jdbc:log4jdbc:mariadb://localhost:3306/kcgFileManager?characterEncoding=UTF-8&serverTimezone=UTC -#spring.datasource.username=root -#spring.datasource.password=kcg211228 - #jpa spring.jpa.show-sql=true spring.jpa.generate-ddl=false spring.jpa.hibernate.naming.physical-strategy = org.hibernate.boot.model.naming.PhysicalNamingStrategyStandardImpl # MyBatis -mybatis.mapper-locations: mybatisMapper/**/*.xml +mybatis.mapper-locations: mybatisMapper/*.xml mybatis.configuration.map-underscore-to-camel-case=true -mybatis.type-aliases-package=com.dbnt.faisp.model +mybatis.type-aliases-package=com.dbnt.faisp.**.model logging.level.com.atoz_develop.mybatissample.repository=TRACE \ No newline at end of file diff --git a/src/main/resources/mybatisMapper/menuMgtMapper.xml b/src/main/resources/mybatisMapper/menuMgtMapper.xml new file mode 100644 index 00000000..475ff072 --- /dev/null +++ b/src/main/resources/mybatisMapper/menuMgtMapper.xml @@ -0,0 +1,48 @@ + + + + + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/menuMgt/menuMgt.js b/src/main/resources/static/js/menuMgt/menuMgt.js new file mode 100644 index 00000000..ee0c5cee --- /dev/null +++ b/src/main/resources/static/js/menuMgt/menuMgt.js @@ -0,0 +1,44 @@ + + +$(document).on('click', '#saveMenuBtn', function (){ + let valueChk = true; + if(!$("#cat1Cd").val()){ + alert("대분류를 선택해주세요.") + valueChk = false; + } + if(!$("#cat2Cd").val()){ + alert("중분류를 선택해주세요.") + valueChk = false; + } + if(!$("#menuUrl").val()){ + alert("URL을 입력해주세요.") + valueChk = false; + } + if(valueChk && confirm("저장하시겠습니까?")){ + contentFade("in"); + const formData = new FormData($("#menuEditForm")[0]); + $.ajax({ + type : 'POST', + data : formData, + url : "/menuMgt/saveMenuMgt", + processData: false, + contentType: false, + beforeSend: function (xhr){ + xhr.setRequestHeader($("[name='_csrf_header']").val(), $("[name='_csrf']").val()); + }, + success : function(result) { + if(result!==""){ + alert("url: "+result+"로 저장되어있습니다.") + }else{ + location.reload(); + alert("저장되었습니다.") + } + contentFade("out"); + }, + error : function(xhr, status) { + alert("저장에 실패하였습니다.") + contentFade("out"); + } + }) + } +}) \ No newline at end of file diff --git a/src/main/resources/templates/adminPage/codeMgt/codeMgt.html b/src/main/resources/templates/adminPage/codeMgt/codeMgt.html index 3fba41a6..86abfe2b 100644 --- a/src/main/resources/templates/adminPage/codeMgt/codeMgt.html +++ b/src/main/resources/templates/adminPage/codeMgt/codeMgt.html @@ -3,7 +3,7 @@ xmlns:layout="http://www.ultraq.net.nz/thymeleaf/layout" layout:decorate="~{layout/layout}"> - +
diff --git a/src/main/resources/templates/adminPage/menuMgt/menuMgt.html b/src/main/resources/templates/adminPage/menuMgt/menuMgt.html index dd1f7b40..895ddfbc 100644 --- a/src/main/resources/templates/adminPage/menuMgt/menuMgt.html +++ b/src/main/resources/templates/adminPage/menuMgt/menuMgt.html @@ -3,71 +3,124 @@ xmlns:layout="http://www.ultraq.net.nz/thymeleaf/layout" layout:decorate="~{layout/layout}"> - +

메뉴 관리

- -
-
-
-
- -
+
+
+
+
+ +
+
+ +
+
+ +
+
-
+
- +
- - - + + + + - - + + + + + + + + + + + + + + + + + + + + + + +
분류코드분류명설명대분류중분류소분류url
+ +
-
- -
-
-
-
-
-
-
-
- - - - - - - - - - - - - - - -
하위코드사용
분류를 선택해주세요.
-
-
@@ -77,5 +130,71 @@
+ +
\ No newline at end of file diff --git a/src/main/resources/templates/fragments/header.html b/src/main/resources/templates/fragments/header.html index 8200d85c..297f19e4 100644 --- a/src/main/resources/templates/fragments/header.html +++ b/src/main/resources/templates/fragments/header.html @@ -12,7 +12,7 @@