dev-v2 #3

Merged
bunny merged 122 commits from dev-v2 into master-v2 2024-03-30 23:40:58 +08:00
5 changed files with 141 additions and 0 deletions
Showing only changes of commit 04559a57b2 - Show all commits

View File

@ -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);
}
}

View File

@ -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);
}

View File

@ -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);
}

View File

@ -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);
}
}
}

View File

@ -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>