| | |
| | | @Data |
| | | @EqualsAndHashCode(callSuper = false) |
| | | @TableName("ums_menu") |
| | | @ApiModel(value="UmsMenu对象", description="后台菜单表") |
| | | @ApiModel(value = "UmsMenu对象", description = "后台菜单表") |
| | | public class UmsMenu implements Serializable { |
| | | |
| | | private static final long serialVersionUID=1L; |
| | | private static final long serialVersionUID = 1L; |
| | | |
| | | @TableId(value = "id", type = IdType.AUTO) |
| | | private Long id; |
| | |
| | | @ApiModelProperty(value = "菜单名称") |
| | | private String title; |
| | | |
| | | @ApiModelProperty(value = "url路由") |
| | | private String url; |
| | | |
| | | @ApiModelProperty(value = "菜单级数") |
| | | private Integer level; |
| | | |
| | |
| | | List<UmsMenuVo> ListTreeMyself(Long id); |
| | | |
| | | String getPermission(Long userId); |
| | | |
| | | UmsMenuNode covertMenuNode(UmsMenu menu, List<UmsMenu> menuList); |
| | | } |
| | |
| | | |
| | | import com.baomidou.mybatisplus.extension.plugins.pagination.Page; |
| | | import com.baomidou.mybatisplus.extension.service.IService; |
| | | import com.ycl.dto.UmsMenuNode; |
| | | import com.ycl.entity.user.UmsMenu; |
| | | import com.ycl.entity.user.UmsResource; |
| | | import com.ycl.entity.user.UmsRole; |
| | |
| | | /** |
| | | * 根据管理员ID获取对应菜单 |
| | | */ |
| | | List<UmsMenu> getMenuList(Long adminId); |
| | | List<UmsMenuNode> getMenuList(Long adminId); |
| | | |
| | | /** |
| | | * 获取角色相关菜单 |
| | |
| | | /** |
| | | * 将UmsMenu转化为UmsMenuNode并设置children属性 |
| | | */ |
| | | private UmsMenuNode covertMenuNode(UmsMenu menu, List<UmsMenu> menuList) { |
| | | @Override |
| | | public UmsMenuNode covertMenuNode(UmsMenu menu, List<UmsMenu> menuList) { |
| | | UmsMenuNode node = new UmsMenuNode(); |
| | | BeanUtils.copyProperties(menu, node); |
| | | List<UmsMenuNode> children = menuList.stream() |
| | |
| | | import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; |
| | | import com.baomidou.mybatisplus.extension.plugins.pagination.Page; |
| | | import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; |
| | | import com.ycl.dto.UmsMenuNode; |
| | | import com.ycl.entity.dict.DataDictionary; |
| | | import com.ycl.entity.user.*; |
| | | import com.ycl.mapper.dict.DataDictionaryMapper; |
| | | import com.ycl.mapper.user.UmsMenuMapper; |
| | | import com.ycl.mapper.user.UmsResourceMapper; |
| | | import com.ycl.mapper.user.UmsRoleMapper; |
| | | import com.ycl.service.user.UmsAdminCacheService; |
| | | import com.ycl.service.user.UmsRoleMenuRelationService; |
| | | import com.ycl.service.user.UmsRoleResourceRelationService; |
| | | import com.ycl.service.user.UmsRoleService; |
| | | import com.ycl.service.user.*; |
| | | import org.springframework.beans.BeanUtils; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.stereotype.Service; |
| | | |
| | |
| | | private UmsRoleMenuRelationService roleMenuRelationService; |
| | | @Autowired |
| | | private UmsRoleResourceRelationService roleResourceRelationService; |
| | | |
| | | private UmsMenuService umsMenuService; |
| | | @Autowired |
| | | public void setUmsMenuService(UmsMenuService umsMenuService) { |
| | | this.umsMenuService = umsMenuService; |
| | | } |
| | | |
| | | @Resource |
| | | private UmsMenuMapper umsMenuMapper; |
| | | @Resource |
| | |
| | | } |
| | | |
| | | @Override |
| | | public List<UmsMenu> getMenuList(Long adminId) { |
| | | return umsMenuMapper.getMenuList(adminId); |
| | | public List<UmsMenuNode> getMenuList(Long adminId) { |
| | | List<UmsMenu> menuList = umsMenuMapper.getMenuList(adminId); |
| | | List<UmsMenuNode> result = menuList.stream() |
| | | .filter(menu -> menu.getParentId().equals(0L)) |
| | | .map(menu -> umsMenuService.covertMenuNode(menu, menuList)).collect(Collectors.toList()); |
| | | return result; |
| | | } |
| | | |
| | | |
| | | @Override |
| | | public List<UmsMenu> listMenu(Long roleId) { |
| | | return umsMenuMapper.getMenuListByRoleId(roleId); |
| | |
| | | |
| | | <!-- 通用查询映射结果 --> |
| | | <resultMap id="BaseResultMap" type="com.ycl.entity.user.UmsMenu"> |
| | | <id column="id" property="id" /> |
| | | <result column="parent_id" property="parentId" /> |
| | | <result column="create_time" property="createTime" /> |
| | | <result column="title" property="title" /> |
| | | <result column="level" property="level" /> |
| | | <result column="sort" property="sort" /> |
| | | <result column="name" property="name" /> |
| | | <result column="icon" property="icon" /> |
| | | <result column="hidden" property="hidden" /> |
| | | <id column="id" property="id"/> |
| | | <result column="parent_id" property="parentId"/> |
| | | <result column="create_time" property="createTime"/> |
| | | <result column="title" property="title"/> |
| | | <result column="level" property="level"/> |
| | | <result column="sort" property="sort"/> |
| | | <result column="name" property="name"/> |
| | | <result column="icon" property="icon"/> |
| | | <result column="hidden" property="hidden"/> |
| | | </resultMap> |
| | | |
| | | <select id="getMenuList" resultType="com.ycl.entity.user.UmsMenu"> |
| | | SELECT |
| | | m.id id, |
| | | m.parent_id parentId, |
| | | m.create_time createTime, |
| | | m.title title, |
| | | m.level level, |
| | | m.sort sort, |
| | | m.name name, |
| | | m.icon icon, |
| | | m.hidden hidden |
| | | FROM |
| | | ums_admin_role_relation arr |
| | | LEFT JOIN ums_role r ON arr.role_id = r.id |
| | | LEFT JOIN ums_role_menu_relation rmr ON r.id = rmr.role_id |
| | | LEFT JOIN ums_menu m ON rmr.menu_id = m.id |
| | | WHERE |
| | | arr.admin_id = #{adminId} |
| | | SELECT distinct m.id, |
| | | m.parent_id parentId, |
| | | m.create_time createTime, |
| | | m.title, |
| | | m.url, |
| | | m.level, |
| | | m.sort, |
| | | m.name, |
| | | m.icon, |
| | | m.hidden |
| | | FROM ums_admin_role_relation arr |
| | | LEFT JOIN ums_role r ON arr.role_id = r.id |
| | | LEFT JOIN ums_role_menu_relation rmr ON r.id = rmr.role_id |
| | | LEFT JOIN ums_menu m ON rmr.menu_id = m.id |
| | | WHERE arr.admin_id = #{adminId} |
| | | AND m.id IS NOT NULL |
| | | GROUP BY |
| | | m.id |
| | | Order BY m.`level`, m.sort |
| | | </select> |
| | | <select id="getMenuListByRoleId" resultType="com.ycl.entity.user.UmsMenu"> |
| | | SELECT |
| | | m.id id, |
| | | m.parent_id parentId, |
| | | m.create_time createTime, |
| | | m.title title, |
| | | m.level level, |
| | | m.sort sort, |
| | | m.name name, |
| | | m.icon icon, |
| | | m.hidden hidden |
| | | FROM |
| | | ums_role_menu_relation rmr |
| | | LEFT JOIN ums_menu m ON rmr.menu_id = m.id |
| | | WHERE |
| | | rmr.role_id = #{roleId} |
| | | SELECT m.id id, |
| | | m.parent_id parentId, |
| | | m.create_time createTime, |
| | | m.title title, |
| | | m.level level, |
| | | m.sort sort, |
| | | m.name name, |
| | | m.icon icon, |
| | | m.hidden hidden |
| | | FROM ums_role_menu_relation rmr |
| | | LEFT JOIN ums_menu m ON rmr.menu_id = m.id and m.leaf = 1 |
| | | WHERE rmr.role_id = #{roleId} |
| | | AND m.id IS NOT NULL |
| | | GROUP BY |
| | | m.id |
| | | GROUP BY m.id |
| | | </select> |
| | | |
| | | <select id="adminMenuRelation" resultType="com.ycl.entity.user.vo.UmsMenuVo"> |
| | | SELECT |
| | | amr.id AS relationId, |
| | | amr.is_start AS isStart, |
| | | amr.sort, |
| | | m.id, |
| | | m.parent_id AS parentId, |
| | | m.title, |
| | | m.url, |
| | | m.`level`, |
| | | m.description, |
| | | m.create_time as createTime, |
| | | m.hidden, |
| | | m.icon |
| | | FROM |
| | | `ums_admin_menu_relation` AS amr |
| | | JOIN ums_menu AS m ON amr.menu_id = m.id |
| | | WHERE |
| | | amr.admin_id = #{id} |
| | | SELECT amr.id AS relationId, |
| | | amr.is_start AS isStart, |
| | | amr.sort, |
| | | m.id, |
| | | m.parent_id AS parentId, |
| | | m.title, |
| | | m.url, |
| | | m.`level`, |
| | | m.description, |
| | | m.create_time as createTime, |
| | | m.hidden, |
| | | m.icon |
| | | FROM `ums_admin_menu_relation` AS amr |
| | | JOIN ums_menu AS m ON amr.menu_id = m.id |
| | | WHERE amr.admin_id = #{id} |
| | | </select> |
| | | |
| | | </mapper> |