Initial commit
This commit is contained in:
@@ -0,0 +1,248 @@
|
||||
= 메뉴 관리
|
||||
|
||||
== 개요
|
||||
|
||||
메뉴와 하위 Page 및 API 목록을 관리하는 화면이다. +
|
||||
|
||||
NOTE: 신규 메뉴를 등록 하거나 메뉴정보를 수정 또는 삭제할 경우 콜백함수를 통해서 메뉴관련 된 모든 캐시가 초기화 된다.
|
||||
|
||||
== UI Design & Function
|
||||
|
||||
=== 메뉴 관리
|
||||
|
||||
메뉴를 등록, 수정 및 관리 할 수 있는 메뉴 트리를 제공한다.
|
||||
|
||||
image::menuManagement_01.png[]
|
||||
|
||||
* 기능 설명
|
||||
. 메뉴 트리 목록 조회
|
||||
. 메뉴 상세정보 조회 : 트리에서 메뉴 선택시 메뉴 상세정보를 조회 한다.
|
||||
. 메뉴 등록 : 현재 선택된 메뉴 하위에 새로운 메뉴를 추가 한다.
|
||||
. 메뉴 수정 / 삭제 : 현재 선택된 메뉴를 수정 또는 삭제 한다.
|
||||
. 메뉴 이동 : 트리에서 Drag&Drop 기능으로 선택한 메뉴를 이동할 수 있다.
|
||||
|
||||
=== 페이지 관리
|
||||
|
||||
image::menuManagement_02.png[]
|
||||
|
||||
* 기능 설명
|
||||
. Page 목록 조회 : 메뉴 트리에서 메뉴 선택 시 해당 메뉴에 맵핑되어 있는 페이지 목록 조회.
|
||||
. Page 등록, 수정, 삭제
|
||||
|
||||
NOTE: 권한 타입은 READ, UPDATE, EXECUTE, DOWNLOAD 로 구성되어 있으며 사용자가 가지고 있는 해당 메뉴에 대한 권한 종류로 UI의 권한 제어를 하고 있다. +
|
||||
자세한 내용은 <<_화면별_권한처리,화면별 권한처리>> 매뉴얼을 참고한다.
|
||||
|
||||
=== API 관리
|
||||
|
||||
image::menuManagement_03.png[]
|
||||
|
||||
* 기능 설명
|
||||
. API 목록 조회
|
||||
. API 등록
|
||||
. API 수정
|
||||
. API 삭제
|
||||
|
||||
=== SDL 게시판 Page, API 프리셋 추가
|
||||
|
||||
image::menuManagement_04.png[]
|
||||
|
||||
* 기능 설명
|
||||
. 게시판 선택 및 Page, API 자동 추가
|
||||
|
||||
== API & Service
|
||||
|
||||
=== API
|
||||
|
||||
MenuController.java +
|
||||
Menu와 해당 메뉴에 Mapping 되어 있는 Page, API의 등록, 수정, 삭제 및 조회하는 API를 포함하고 있다.
|
||||
|
||||
* 주요 기능 API 목록
|
||||
. 메뉴 트리 목록 조회 : GET /auth/menus/menu-mgmt/level
|
||||
. 메뉴 상세정보 조회 : GET /auth/menus/{menuId}
|
||||
. 메뉴 등록 : POST /auth/menus
|
||||
. 메뉴 수정 : PUT /auth/menus
|
||||
. 메뉴 삭제 : DELETE /auth/menus/{menuId}
|
||||
. 메뉴 이동 : PUT /auth/menus/move-menu
|
||||
. Page 목록 조회 : GET /auth/menus/{menuId}/pages
|
||||
. Page 등록 : POST /auth/menus/{menuId}/pages
|
||||
. Page 수정 : PUT /auth/menus/{menuId}/pages
|
||||
. Page 삭제 : DELETE /auth/menus/{menuId}/pages
|
||||
. API 목록 조회 : GET /auth/menus/{menuId}/apis
|
||||
. API 등록 : POST /auth/menus/{menuId}/apis
|
||||
. API 수정 : PUT /auth/menus/{menuId}/apis
|
||||
. API 삭제 : DELETE /auth/menus/{menuId}/apis
|
||||
|
||||
== Entity Table & SQL
|
||||
|
||||
=== Entity Table
|
||||
|
||||
* TN_CF_SYS_RESOURCE : 리소스
|
||||
* TN_CF_SYS_RESOURCE_MAPP : 리소스 맵핑
|
||||
* TN_CF_MENU : 메뉴
|
||||
* TN_CF_PAGE : Page
|
||||
* TN_CF_API : API
|
||||
|
||||
=== SQL
|
||||
|
||||
. 메뉴 트리 목록 조회
|
||||
|
||||
[source,xml]
|
||||
----
|
||||
<select id="selectMenuLevel" parameterType="java.util.HashMap" resultMap="menuTreeInfo">
|
||||
SELECT *
|
||||
FROM (
|
||||
<include refid="conditionMenuLevel"/>
|
||||
--생략--
|
||||
----
|
||||
|
||||
[start=2]
|
||||
. 메뉴 상세정보 조회
|
||||
|
||||
[source,xml]
|
||||
----
|
||||
<select id="selectMenu" parameterType="java.util.HashMap" resultMap="menuResult">
|
||||
SELECT M.MENU_ID, M.LABEL,
|
||||
M.MENU_LEVEL, M.MENU_SEQUENCE,
|
||||
--생략--
|
||||
----
|
||||
|
||||
[start=3]
|
||||
. 메뉴 등록
|
||||
|
||||
[source,xml]
|
||||
----
|
||||
<insert id="insertMenu" parameterType="menu">
|
||||
INSERT INTO <include refid="tableMenu" />
|
||||
(MENU_ID, LABEL,
|
||||
--생략--
|
||||
----
|
||||
|
||||
[start=4]
|
||||
. 메뉴 수정
|
||||
|
||||
[source,xml]
|
||||
----
|
||||
<update id="updateMenu" parameterType="menu">
|
||||
UPDATE <include refid="tableMenu" />
|
||||
SET LABEL = #{label},
|
||||
--생략--
|
||||
----
|
||||
|
||||
[start=5]
|
||||
. 메뉴 삭제
|
||||
|
||||
[source,xml]
|
||||
----
|
||||
<delete id="deleteMenu" parameterType="java.util.HashMap">
|
||||
UPDATE <include refid="tableMenu" />
|
||||
SET USE_YN = 0,
|
||||
DELETE_YN = 1
|
||||
--생략--
|
||||
----
|
||||
|
||||
[start=6]
|
||||
. 메뉴 이동
|
||||
|
||||
[source,xml]
|
||||
----
|
||||
<update id="updateParentMenuId" parameterType="java.util.HashMap">
|
||||
UPDATE <include refid="sysResource.tableSysResource" />
|
||||
SET UPPER_SYS_RESOURCE_ID = #{parentMenuId}
|
||||
--생략--
|
||||
----
|
||||
|
||||
[source,xml]
|
||||
----
|
||||
<update id="updateMenuSequence" parameterType="java.util.HashMap">
|
||||
UPDATE <include refid="tableMenu" />
|
||||
SET MENU_SEQUENCE = #{moveToMenuSequence}
|
||||
--생략--
|
||||
----
|
||||
|
||||
[start=7]
|
||||
. Page 목록 조회
|
||||
|
||||
[source,xml]
|
||||
----
|
||||
<select id="selectPageList" parameterType="java.util.HashMap" resultMap="pageResult">
|
||||
SELECT P.PAGE_ID, SA.AUTHORIZATION_ID, P.PAGE_NAME,
|
||||
P.PAGE_PATH, P.COMPONENT_NAME, P.DEFAULTED, P.USE_YN
|
||||
--생략--
|
||||
----
|
||||
|
||||
[start=8]
|
||||
. Page 등록
|
||||
|
||||
[source,xml]
|
||||
----
|
||||
<insert id="insertPage" parameterType="page">
|
||||
INSERT INTO <include refid="tablePage" />
|
||||
(PAGE_ID, PAGE_NAME, PAGE_PATH,
|
||||
--생략--
|
||||
----
|
||||
|
||||
[start=9]
|
||||
. Page 수정
|
||||
|
||||
[source,xml]
|
||||
----
|
||||
<update id="updatePage" parameterType="page">
|
||||
UPDATE <include refid="tablePage" />
|
||||
SET PAGE_NAME = #{pageName},
|
||||
--생략--
|
||||
----
|
||||
|
||||
[start=10]
|
||||
. Page 삭제
|
||||
|
||||
[source,xml]
|
||||
----
|
||||
<delete id="deletePage" parameterType="java.util.HashMap">
|
||||
UPDATE <include refid="tablePage" />
|
||||
SET USE_YN = 0,
|
||||
--생략--
|
||||
----
|
||||
|
||||
[start=11]
|
||||
. API 목록 조회
|
||||
|
||||
[source,xml]
|
||||
----
|
||||
<select id="selectApiList" parameterType="java.util.HashMap" resultMap="apiResult">
|
||||
SELECT A.API_ID, SA.AUTHORIZATION_ID, A.API_NAME,
|
||||
A.API_URL, A.HTTP_METHOD, A.SERVER_ID, A.USE_YN
|
||||
--생략--
|
||||
----
|
||||
|
||||
[start=12]
|
||||
. API 등록
|
||||
|
||||
[source,xml]
|
||||
----
|
||||
<insert id="insertApi" parameterType="api">
|
||||
INSERT INTO <include refid="tableApi" />
|
||||
(API_ID, API_NAME, API_URL, API_PATH, API_PARAMETERS, HTTP_METHOD, SERVER_ID, USE_YN, DELETE_YN)
|
||||
--생략--
|
||||
----
|
||||
|
||||
[start=13]
|
||||
. API 수정
|
||||
|
||||
[source,xml]
|
||||
----
|
||||
<update id="updateApi" parameterType="api">
|
||||
UPDATE <include refid="tableApi" />
|
||||
SET API_NAME = #{apiName},
|
||||
--생략--
|
||||
----
|
||||
|
||||
[start=14]
|
||||
. API 삭제
|
||||
|
||||
[source,xml]
|
||||
----
|
||||
<delete id="deleteApi" parameterType="java.util.HashMap">
|
||||
UPDATE <include refid="tableApi" />
|
||||
SET USE_YN = 0,
|
||||
--생략--
|
||||
----
|
||||
Reference in New Issue
Block a user