하석형 하석형 05-16
250516 하석형 부서권한목록 조회 추가, 메뉴 추가/수정 시 상위메뉴의 타입 ""처리, 팝업 표시 순서 정렬
@44c13742d0d54aec9c343e97ac40b3c7d919514b
src/main/java/com/takensoft/cms/author/service/Impl/AuthorServiceImpl.java
--- src/main/java/com/takensoft/cms/author/service/Impl/AuthorServiceImpl.java
+++ src/main/java/com/takensoft/cms/author/service/Impl/AuthorServiceImpl.java
@@ -3,6 +3,8 @@
 import com.takensoft.cms.author.dao.AuthorDAO;
 import com.takensoft.cms.author.service.AuthorService;
 import com.takensoft.cms.author.vo.AuthorVO;
+import com.takensoft.cms.dept.service.Impl.DeptServiceImpl;
+import com.takensoft.cms.dept.vo.DeptAuthrtVO;
 import com.takensoft.cms.menu.service.MenuAuthorService;
 import com.takensoft.common.Pagination;
 import com.takensoft.common.exception.*;
@@ -35,6 +37,7 @@
     private final AuthorDAO authorDAO;
     private final MenuAuthorService menuAuthorService;
     private final JWTUtil jwtUtil;
+    private final DeptServiceImpl deptService;
 
     /**
      * @param authorVO - 권한 정보
src/main/java/com/takensoft/cms/dept/dao/DeptDAO.java
--- src/main/java/com/takensoft/cms/dept/dao/DeptDAO.java
+++ src/main/java/com/takensoft/cms/dept/dao/DeptDAO.java
@@ -17,6 +17,7 @@
  *  2024.04.24  |  takensoft   | 최초 등록
  *  2024.05.10  |    박정하     | deptUpdateByHierachy 추가
  *  2025.03.13  |    방선주     | 코드 리펙토링
+ *  2025.05.16  |    방선주     | findDeptAuthrtByAuthrtCd 추가
  *
  * 부서 정보 관련 DAO
  */
@@ -159,4 +160,12 @@
      * 부서 정보 수정 (hierachyVO 사용)
      */
     int deptUpdateByHierachy(DeptVO deptVO);
+
+    /**
+     * @param authrtCd - 권한 코드
+     * @return List<DeptAuthrtVO> - 부서 권한 정보 목록
+     *
+     * 부서 권한 목록 조회 (권한 코드로 조회)
+     */
+    List<DeptAuthrtVO> findDeptAuthrtByAuthrtCd(String authrtCd);
 }
(파일 끝에 줄바꿈 문자 없음)
src/main/java/com/takensoft/cms/dept/service/DeptService.java
--- src/main/java/com/takensoft/cms/dept/service/DeptService.java
+++ src/main/java/com/takensoft/cms/dept/service/DeptService.java
@@ -1,5 +1,6 @@
 package com.takensoft.cms.dept.service;
 
+import com.takensoft.cms.dept.vo.DeptAuthrtVO;
 import com.takensoft.cms.dept.vo.DeptMbrVO;
 import com.takensoft.cms.dept.vo.DeptVO;
 import com.takensoft.common.HierachyVO;
@@ -112,4 +113,12 @@
      * 하위 부서 수정
      */
     int updateChildNode(List<HierachyVO> childList, DeptVO upDeptVO);
+
+    /**
+     * @param authrtCd - 권한 코드
+     * @return List<DeptAuthrtVO> - 부서 권한 정보 목록
+     *
+     * 부서 권한 목록 조회 (권한 코드로 조회)
+     */
+    List<DeptAuthrtVO> findDeptAuthrtByAuthrtCd(String authrtCd);
 }
(파일 끝에 줄바꿈 문자 없음)
src/main/java/com/takensoft/cms/dept/service/Impl/DeptServiceImpl.java
--- src/main/java/com/takensoft/cms/dept/service/Impl/DeptServiceImpl.java
+++ src/main/java/com/takensoft/cms/dept/service/Impl/DeptServiceImpl.java
@@ -510,4 +510,25 @@
             throw e;
         }
     }
+
+    /**
+     * @param authrtCd - 권한 코드
+     * @return List<DeptAuthrtVO> - 부서 권한 정보 목록
+     * @throws DataAccessException - 데이터베이스 접근 예외 발생 시
+     * @throws Exception - 그 외 예외 발생 시
+     *
+     * 부서 권한 목록 조회 (권한 코드로 조회)
+     */
+    @Override
+    public List<DeptAuthrtVO> findDeptAuthrtByAuthrtCd(String authrtCd) {
+        try {
+            List<DeptAuthrtVO> deptAuthrtList = deptDAO.findDeptAuthrtByAuthrtCd(authrtCd); // 부서 권한 정보 목록 조회
+            boolean isAuthrt = deptAuthrtList.size() > 0;
+            return deptAuthrtList;
+        } catch(DataAccessException dae) {
+            throw dae;
+        } catch (Exception e) {
+            throw e;
+        }
+    }
 }
(파일 끝에 줄바꿈 문자 없음)
src/main/java/com/takensoft/cms/dept/web/DeptController.java
--- src/main/java/com/takensoft/cms/dept/web/DeptController.java
+++ src/main/java/com/takensoft/cms/dept/web/DeptController.java
@@ -3,6 +3,7 @@
 import com.takensoft.cms.author.service.AuthorService;
 import com.takensoft.cms.author.vo.AuthorVO;
 import com.takensoft.cms.dept.service.DeptService;
+import com.takensoft.cms.dept.vo.DeptAuthrtVO;
 import com.takensoft.cms.dept.vo.DeptMbrVO;
 import com.takensoft.cms.dept.vo.DeptVO;
 import com.takensoft.common.HierachyVO;
@@ -177,6 +178,20 @@
         int result = deptService.updateList(deptList);
         // 응답 처리
         return resUtil.successRes(result, MessageCode.COMMON_SUCCESS);
+    }
 
+    /**
+     * @param deptAuthrtVO - 부서 권한 정보
+     * @return ResponseEntity - 부서 목록 조회 결과
+     *
+     * 부서 권한 목록 조회 (권한 코드로 조회)
+     */
+    @PostMapping(value = "/findDeptAuthrtByAuthrtCd.json")
+    public ResponseEntity<?> findDeptAuthrtByAuthrtCd(@RequestBody DeptAuthrtVO deptAuthrtVO) {
+        // 권한 목록 조회
+        List<DeptAuthrtVO> deptAuthrtList = deptService.findDeptAuthrtByAuthrtCd(deptAuthrtVO.getAuthrtCd());
+
+        // 응답 처리
+        return resUtil.successRes(deptAuthrtList, MessageCode.COMMON_SUCCESS);
     }
 }
src/main/java/com/takensoft/cms/menu/service/Impl/MenuServiceImpl.java
--- src/main/java/com/takensoft/cms/menu/service/Impl/MenuServiceImpl.java
+++ src/main/java/com/takensoft/cms/menu/service/Impl/MenuServiceImpl.java
@@ -85,6 +85,7 @@
                 String menuType = upMenuVO.getMenuType();
                 if(menuType != null && !menuType.isEmpty()) {
                     upMenuVO.setMenuType("");
+                    upMenuVO.setMenuTypeCtgry("");
                     menuDAO.update(upMenuVO);
                 }
 
@@ -445,6 +446,11 @@
                     vo.setMenuGrd(0);
                     vo.setMenuSn(sn);
                     vo.setMdfr(writer);
+                    if (hierachyVO.getChildList() != null && hierachyVO.getChildList().size() > 0) {
+                        // 하위 메뉴가 존재하는 경우 메뉴타입 ""로 변경
+                        vo.setMenuType("");
+                        vo.setMenuTypeCtgry("");
+                    }
                     // 최상이 노드 수정 결과
                     int highUpdateResult = menuDAO.menuUpdateByHierachy(vo);
                     if(highUpdateResult == 0) {
@@ -497,6 +503,11 @@
                 vo.setMenuGrd(grd);
                 vo.setMenuSn(sn);
                 vo.setMdfr(mdfr);
+                if (hierachyVO.getChildList() != null && hierachyVO.getChildList().size() > 0) {
+                    // 하위 메뉴가 존재하는 경우 메뉴타입 ""로 변경
+                    vo.setMenuType("");
+                    vo.setMenuTypeCtgry("");
+                }
 
                 result =  menuDAO.menuUpdateByHierachy(vo);
                 if(result == 0) {
src/main/resources/mybatis/mapper/dept/dept-SQL.xml
--- src/main/resources/mybatis/mapper/dept/dept-SQL.xml
+++ src/main/resources/mybatis/mapper/dept/dept-SQL.xml
@@ -362,4 +362,18 @@
           , mdfcn_dt = NOW()
         WHERE dept_id = #{deptId}
     </update>
+
+    <!--
+        작성자 : 하석형
+        작성일 : 2025.05.16
+        내 용 : 부서 권한 목록 조회 (권한 코드로 조회)
+    -->
+    <select id="findDeptAuthrtByAuthrtCd" parameterType="String" resultType="DeptAuthrtVO">
+        SELECT dai.authrt_cd
+             , dai.dept_id
+             , dai.rgtr
+             , TO_CHAR(dai.reg_dt, 'YYYY-MM-DD HH24:MI') AS reg_dt
+        FROM dept_authrt_info dai
+        WHERE dai.authrt_cd = #{authrtCd}
+    </select>
 </mapper>
(파일 끝에 줄바꿈 문자 없음)
src/main/resources/mybatis/mapper/menu/menu-SQL.xml
--- src/main/resources/mybatis/mapper/menu/menu-SQL.xml
+++ src/main/resources/mybatis/mapper/menu/menu-SQL.xml
@@ -162,6 +162,7 @@
     <select id="findChildMenus" parameterType="String" resultType="MenuVO">
         <include refid="selectMenu" />
          WHERE up_menu_id = #{menuId}
+           AND use_yn = 'Y'
       ORDER BY menu_sn
     </select>
 
@@ -427,6 +428,10 @@
         SET up_menu_id = #{upMenuId}
           , menu_grd = #{menuGrd}
           , menu_sn = #{menuSn}
+            <if test="menuType != null">
+              , menu_type = #{menuType}
+              , menu_type_ctgry = #{menuTypeCtgry}
+            </if>
           , mdfr = #{mdfr}
           , mdfcn_dt = NOW()
         WHERE menu_id = #{menuId}
src/main/resources/mybatis/mapper/popup/popup-SQL.xml
--- src/main/resources/mybatis/mapper/popup/popup-SQL.xml
+++ src/main/resources/mybatis/mapper/popup/popup-SQL.xml
@@ -196,7 +196,7 @@
         AND pm.page_type = #{pageType}
         AND now() >= pm.bgng_dt::timestamp
         AND pm.end_dt::timestamp >= now()
-        ORDER BY reg_dt DESC
+        ORDER BY sn DESC, reg_dt DESC
     </select>
 
     <!--
Add a comment
List