메뉴 권한별 레디스저장, 조회 추가

This commit is contained in:
2025-12-19 15:28:52 +09:00
parent 428ea96d20
commit 9288273aeb
6 changed files with 107 additions and 64 deletions

View File

@@ -1,12 +1,9 @@
package com.kamco.cd.kamcoback.postgres.core;
import com.kamco.cd.kamcoback.menu.dto.MenuDto;
import com.kamco.cd.kamcoback.menu.dto.MenuDto.RoleBasic;
import com.kamco.cd.kamcoback.postgres.entity.MenuEntity;
import com.kamco.cd.kamcoback.postgres.repository.menu.MenuRepository;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;
@@ -26,11 +23,7 @@ public class MenuCoreService {
* @param role
* @return
*/
public List<MenuDto.RoleBasic> getFindByRole(String role) {
Map<String, RoleBasic> map = new LinkedHashMap<>();
List<MenuDto.RoleBasic> rows = menuRepository.getFindByRole(role);
return menuRepository.getFindByRole(role);
public List<MenuDto.Basic> getFindByRole(String role) {
return menuRepository.getFindByRole(role).stream().map(MenuEntity::toDto).toList();
}
}

View File

@@ -1,6 +1,5 @@
package com.kamco.cd.kamcoback.postgres.repository.menu;
import com.kamco.cd.kamcoback.menu.dto.MenuDto;
import com.kamco.cd.kamcoback.postgres.entity.MenuEntity;
import java.util.List;
@@ -14,5 +13,5 @@ public interface MenuRepositoryCustom {
* @param role
* @return
*/
List<MenuDto.RoleBasic> getFindByRole(String role);
List<MenuEntity> getFindByRole(String role);
}

View File

@@ -3,9 +3,8 @@ package com.kamco.cd.kamcoback.postgres.repository.menu;
import static com.kamco.cd.kamcoback.postgres.entity.QMenuEntity.menuEntity;
import static com.kamco.cd.kamcoback.postgres.entity.QMenuMappEntity.menuMappEntity;
import com.kamco.cd.kamcoback.menu.dto.MenuDto;
import com.kamco.cd.kamcoback.postgres.entity.MenuEntity;
import com.querydsl.core.types.Projections;
import com.kamco.cd.kamcoback.postgres.entity.QMenuEntity;
import com.querydsl.core.types.dsl.Expressions;
import com.querydsl.core.types.dsl.StringExpression;
import com.querydsl.jpa.impl.JPAQueryFactory;
@@ -31,33 +30,29 @@ public class MenuRepositoryImpl implements MenuRepositoryCustom {
* @return
*/
@Override
public List<MenuDto.RoleBasic> getFindByRole(String role) {
List<MenuDto.RoleBasic> content =
public List<MenuEntity> getFindByRole(String role) {
QMenuEntity child = new QMenuEntity("child");
List<MenuEntity> content =
queryFactory
.select(
Projections.constructor(
MenuDto.RoleBasic.class,
menuEntity.menuUid,
menuEntity.parent.menuUid,
menuEntity.menuNm,
menuEntity.menuUrl,
menuEntity.description,
menuEntity.menuOrder,
menuEntity.isUse,
menuEntity.deleted,
menuEntity.createdUid,
menuEntity.updatedUid,
menuEntity.createdDate,
menuEntity.modifiedDate,
menuEntity.menuApiUri))
.from(menuMappEntity)
.join(menuMappEntity.menuUid, menuEntity)
.selectDistinct(menuEntity)
.from(menuEntity)
.leftJoin(menuEntity.children, child)
.fetchJoin()
.leftJoin(menuMappEntity)
.on(
menuMappEntity
.roleCode
.eq(role)
.and(menuMappEntity.deleted.isFalse())
.and(
menuMappEntity.menuUid.eq(menuEntity).or(menuMappEntity.menuUid.eq(child))))
.where(
menuMappEntity.roleCode.eq(role),
menuMappEntity.deleted.isFalse(),
menuEntity.parent.isNull(),
menuEntity.deleted.isFalse(),
menuEntity.isUse.isTrue())
.orderBy(menuEntity.menuOrder.asc().nullsLast(), menuEntity.menuNm.asc())
menuEntity.isUse.isTrue(),
menuMappEntity.id.isNotNull())
.orderBy(menuEntity.menuOrder.asc().nullsLast(), child.menuOrder.asc().nullsLast())
.fetch();
return content;