package com.gkhy.labRiskManage.domain.sysAdmin.repository.jpa; import com.gkhy.labRiskManage.domain.sysAdmin.entity.MenuItem; import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.data.jpa.repository.Modifying; import org.springframework.data.jpa.repository.Query; import java.util.List; public interface MenuItemRepository extends JpaRepository { @Query(value = "select m from MenuItem m where m.id = :menuItemId and m.visiable = true and m.del = 0") MenuItem findVisiableById(Long menuItemId); @Query(value = "select m from MenuItem m where m.id = :menuId and m.visiable = false and m.del = 0") MenuItem findDisVisiableById(Long menuId); @Modifying @Query(value = "update MenuItem m set m.del = 1 where m.id = :menuItemId") Integer logicDeleteMenuItem(Long menuItemId); @Modifying @Query(value = "delete from MenuItem m where m.id = :menuItemId") Integer deleteByMenuItemId(Long menuItemId); @Modifying @Query(value = "update MenuItem m set m.visiable = true where m.id = :menuItemId and m.visiable = false and m.del = 0") Integer setMenuItemVisiabel(Long menuItemId); @Modifying @Query(value = "update MenuItem m set m.visiable = false where m.id = :menuItemId and m.visiable = true and m.del = 0") Integer setMenuItemDisVisiabel(Long menuItemId); @Query(value = "select m from MenuItem m where m.del = 0 order by m.priority asc ") List findAllActive(); @Query(value = "select m from MenuItem m where m.del = 0 and m.visiable = true order by m.priority asc ") List findAllVisiable(); @Query(value = "select m from MenuItem m where m.id in :idList and m.del = 0 order by m.priority asc ") List findAllActiveByIdIn(List idList); @Query(value = "select m from MenuItem m where m.id in :idList and m.del = 0 and m.visiable = :visiable order by m.priority asc ") List findAllByIdInAndVisiable(List idList,Boolean visiable); @Query(value = "select m from MenuItem m where m.type = 1 and m.del = 0 order by m.priority asc") List findAllActivePublicMenuItems(); @Query("select count(m) from MenuItem m where m.parentId = :parentId") Integer countSubMenuItems(Long parentId); }