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