dev-v2 #3
|
@ -0,0 +1,31 @@
|
|||
package com.atguigu.spzx.manger.controller;
|
||||
|
||||
import com.atguigu.spzx.manger.service.SysRoleMenuService;
|
||||
import com.atguigu.spzx.model.dto.system.AssginMenuDto;
|
||||
import com.atguigu.spzx.model.vo.result.Result;
|
||||
import com.atguigu.spzx.model.vo.result.ResultCodeEnum;
|
||||
import io.swagger.v3.oas.annotations.tags.Tag;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
import java.util.Map;
|
||||
|
||||
@Tag(name = "分配菜单")
|
||||
@RestController
|
||||
@RequestMapping(value = "/admin/system/sysRoleMenu")
|
||||
public class SysRoleMenuController {
|
||||
@Autowired
|
||||
private SysRoleMenuService sysRoleMenuService;
|
||||
|
||||
@GetMapping(value = "/findSysRoleMenuByRoleId/{roleId}")
|
||||
public Result<Map<String, Object>> findSysRoleMenuByRoleId(@PathVariable(value = "roleId") Long roleId) {
|
||||
Map<String, Object> sysRoleMenuList = sysRoleMenuService.findSysRoleMenuByRoleId(roleId);
|
||||
return Result.build(sysRoleMenuList, ResultCodeEnum.SUCCESS);
|
||||
}
|
||||
|
||||
@PostMapping("/doAssign")
|
||||
public Result doAssign(@RequestBody AssginMenuDto assginMenuDto) {
|
||||
sysRoleMenuService.doAssign(assginMenuDto);
|
||||
return Result.build(null, ResultCodeEnum.SUCCESS);
|
||||
}
|
||||
}
|
|
@ -0,0 +1,15 @@
|
|||
package com.atguigu.spzx.manger.mapper;
|
||||
|
||||
import com.atguigu.spzx.model.dto.system.AssginMenuDto;
|
||||
import org.apache.ibatis.annotations.Mapper;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
@Mapper
|
||||
public interface SysRoleMenuMapper {
|
||||
List<Long> findSysRoleMenuByRoleId(Long roleId);
|
||||
|
||||
void doAssign(AssginMenuDto assginMenuDto);
|
||||
|
||||
void deleteByRoleId(Long roleId);
|
||||
}
|
|
@ -0,0 +1,11 @@
|
|||
package com.atguigu.spzx.manger.service;
|
||||
|
||||
import com.atguigu.spzx.model.dto.system.AssginMenuDto;
|
||||
|
||||
import java.util.Map;
|
||||
|
||||
public interface SysRoleMenuService {
|
||||
Map<String, Object> findSysRoleMenuByRoleId(Long roleId);
|
||||
|
||||
void doAssign(AssginMenuDto assginMenuDto);
|
||||
}
|
|
@ -0,0 +1,55 @@
|
|||
package com.atguigu.spzx.manger.service.impl;
|
||||
|
||||
import com.atguigu.spzx.manger.mapper.SysRoleMenuMapper;
|
||||
import com.atguigu.spzx.manger.service.SysMenuService;
|
||||
import com.atguigu.spzx.manger.service.SysRoleMenuService;
|
||||
import com.atguigu.spzx.model.dto.system.AssginMenuDto;
|
||||
import com.atguigu.spzx.model.entity.system.SysMenu;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
@Service
|
||||
public class SysRoleMenuServiceImpl implements SysRoleMenuService {
|
||||
@Autowired
|
||||
private SysMenuService sysMenuService;
|
||||
|
||||
@Autowired
|
||||
private SysRoleMenuMapper sysRoleMenuMapper;
|
||||
|
||||
@Override
|
||||
public Map<String, Object> findSysRoleMenuByRoleId(Long roleId) {
|
||||
|
||||
// 查询所有的菜单数据
|
||||
List<SysMenu> sysMenuList = sysMenuService.findNodes();
|
||||
|
||||
// 查询当前角色的菜单数据
|
||||
List<Long> roleMenuIds = sysRoleMenuMapper.findSysRoleMenuByRoleId(roleId);
|
||||
|
||||
// 将数据存储到Map中进行返回
|
||||
Map<String, Object> result = new HashMap<>();
|
||||
result.put("sysMenuList", sysMenuList);
|
||||
result.put("roleMenuIds", roleMenuIds);
|
||||
|
||||
// 返回
|
||||
return result;
|
||||
}
|
||||
|
||||
@Transactional
|
||||
@Override
|
||||
public void doAssign(AssginMenuDto assginMenuDto) {
|
||||
|
||||
// 根据角色的id删除其所对应的菜单数据
|
||||
sysRoleMenuMapper.deleteByRoleId(assginMenuDto.getRoleId());
|
||||
|
||||
// 获取菜单的id
|
||||
List<Map<String, Number>> menuInfo = assginMenuDto.getMenuIdList();
|
||||
if (menuInfo != null && !menuInfo.isEmpty()) {
|
||||
sysRoleMenuMapper.doAssign(assginMenuDto);
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,29 @@
|
|||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
|
||||
<mapper namespace="com.atguigu.spzx.manger.mapper.SysRoleMenuMapper">
|
||||
|
||||
<delete id="deleteByRoleId">
|
||||
delete
|
||||
from sys_role_menu
|
||||
where role_id = #{roleId}
|
||||
</delete>
|
||||
|
||||
<select id="findSysRoleMenuByRoleId" resultType="long">
|
||||
select menu_id
|
||||
from sys_role_menu
|
||||
where role_id = #{roleId}
|
||||
and is_deleted = 0
|
||||
and is_half = 0
|
||||
</select>
|
||||
|
||||
<insert id="doAssign">
|
||||
insert into sys_role_menu (
|
||||
role_id,
|
||||
menu_id,
|
||||
create_time , update_time , is_deleted , is_half
|
||||
) values
|
||||
<foreach collection="menuIdList" item="menuInfo" separator=",">
|
||||
(#{roleId} , #{menuInfo.id} , now() , now() , 0 , #{menuInfo.isHalf})
|
||||
</foreach>
|
||||
</insert>
|
||||
</mapper>
|
Loading…
Reference in New Issue