فهرست منبع

fix: selectMenuListByRoleId

jay 2 سال پیش
والد
کامیت
c188cceb6f

+ 6 - 8
iot-common/iot-common-dao/iot-data-serviceImpl-rdb/src/main/java/cc/iotkit/data/service/SysRoleDataImpl.java

@@ -66,22 +66,20 @@ public class SysRoleDataImpl implements ISysRoleData, IJPACommData<SysRole, Long
 
     @Override
     public List<Long> selectMenuListByRoleId(Long roleId, boolean menuCheckStrictly) {
-        List<Long> roleIds = jpaQueryFactory.select(tbSysMenu.id)
-                .from(tbSysMenu)
-                .innerJoin(tbSysRoleMenu).on(tbSysMenu.id.eq(tbSysRoleMenu.menuId))
-                .where(PredicateBuilder.instance()
-                        .and(tbSysRoleMenu.roleId.eq(roleId))
-                        .build())
-                .orderBy(tbSysMenu.parentId.asc(), tbSysMenu.orderNum.asc()).fetch();
+
 
         PredicateBuilder predicateBuilder = PredicateBuilder.instance()
                 .and(tbSysRoleMenu.roleId.eq(roleId));
 
         if (menuCheckStrictly) {
+            List<Long> roleIds = jpaQueryFactory.select(tbSysMenu.parentId)
+                    .from(tbSysMenu)
+                    .innerJoin(tbSysRoleMenu).on(tbSysMenu.id.eq(tbSysRoleMenu.menuId).and(tbSysRoleMenu.roleId.eq(roleId)))
+                    .fetch();
             predicateBuilder.and(tbSysMenu.id.notIn(roleIds));
         }
 
-        return jpaQueryFactory.select(Projections.bean(Long.class, tbSysMenu.id))
+        return jpaQueryFactory.select( tbSysMenu.id)
                 .from(tbSysMenu)
                 .leftJoin(tbSysRoleMenu).on(tbSysMenu.id.eq(tbSysRoleMenu.menuId))
                 .where(predicateBuilder.build())