package com.management.gymnasium.controller;
import com.management.gymnasium.pojo.Menu;
import com.management.gymnasium.pojo.RoleMenu;
import com.management.gymnasium.pojo.User;
import com.management.gymnasium.repository.MenuRepository;
import com.management.gymnasium.repository.RoleMenuRepository;
import com.management.gymnasium.utils.LayuiResult;
import com.management.gymnasium.utils.Pager;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import javax.servlet.http.HttpServletRequest;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@RestController
@RequestMapping("/menu")
public class MenuController {
@Autowired
private RoleMenuRepository roleMenuRepository;
@Autowired
private MenuRepository menuRepository;
@RequestMapping("/getByRoleId")
public Object getByRole(HttpServletRequest request){
User user = (User) request.getSession().getAttribute("user");
user = new User();
user.setRoleId(1);
return LayuiResult.LayuiData(0,"success",getMenuByRole(user.getRoleId()));
}
@RequestMapping("/getByUserRoleMenu/{id}")
public Object getByUserRoleMenu(@PathVariable Integer id){
return LayuiResult.LayuiData(0,"success",getMenuByRole(id));
}
@RequestMapping("/get")
public Object get(){
List<Menu> menus = menuRepository.findAllByParentId(0);
List<Object> list = new ArrayList<>();
for (Menu menu : menus) {
Map<String,Object> map = new HashMap<>();
map.put("id",menu.getId());
map.put("menuName",menu.getMenuName());
map.put("menuUrl",menu.getMenuUrl());
List<Menu> menus1 = menuRepository.findAllByParentId(menu.getId());
map.put("child",menus1);
list.add(map);
}
return LayuiResult.LayuiData(0,"请求成功",list);
}
@RequestMapping("/get/list")
public Object getList(Integer page,Integer limit){
List<Menu> menus = menuRepository.findAll();
Pager<Menu> pager = new Pager<>();
pager.setCurentPageIndex(page);
pager.setCountPerpage(limit);
pager.setBigList(menus);
return LayuiResult.LayuiData(0,"请求成功",pager.getSmallList(),pager.getRecordCount());
}
@RequestMapping("/get/parent")
public Object getParentMenu(){
List<Menu> menuList = menuRepository.findAllByParentId(0);
return LayuiResult.LayuiData(0,"success",menuList);
}
@RequestMapping("/get/child/{id}")
public Object getChildMenuByParentId(@PathVariable Integer id){
List<Menu> menuList = menuRepository.findAllByParentId(id);
return LayuiResult.LayuiData(0,"success",menuList);
}
@RequestMapping("/update")
public Object update(@RequestBody Menu menu){
menuRepository.save(menu);
return LayuiResult.LayuiData(0,"菜单信息修改成功",null);
}
@RequestMapping("/delete/{id}")
public Object delete(@PathVariable Integer id){
menuRepository.deleteById(id);
return LayuiResult.LayuiData(0,"菜单信息已删除",null);
}
@RequestMapping("/add")
public Object add(@RequestBody Menu menu){
menuRepository.save(menu);
return LayuiResult.LayuiData(0,"新菜单添加成功",null);
}
/**
*
* @param id 角色id
* @return
*/
public Object getMenuByRole(Integer id){
List<RoleMenu> roleMenus1 = roleMenuRepository.findAllByRoleId(id);
List<Menu> menuParent = new ArrayList<>();
roleMenus1.forEach(roleMenu -> {
Menu menu = menuRepository.findById(roleMenu.getMenuId()).get();
if(menu.getParentId() == 0){
menuParent.add(menu);
}
});
List<Map<String, Object>> listResult = new ArrayList<>();
menuParent.forEach(menu -> {
Map<String,Object> map = new HashMap<>();
map.put("title",menu.getMenuName());
map.put("menuName",menu.getMenuName());
map.put("menuUrl",menu.getMenuUrl());
map.put("id",menu.getId());
List<Menu> menuChild = menuRepository.findAllByParentId(menu.getId());
List<Integer> list = new ArrayList<>();
menuChild.forEach(menuInt -> {
list.add(menuInt.getId());
});
List<RoleMenu> roleMenus = roleMenuRepository.findAllByRoleIdAndMenuIdIn(id,list);
List<Map<String,Object>> listChildMap = new ArrayList<>();
roleMenus.forEach(childRoleMenu -> {
Map<String,Object> childMap = new HashMap<>();
Menu menuChildObj = menuRepository.findById(childRoleMenu.getMenuId()).get();
childMap.put("title",menuChildObj.getMenuName());
childMap.put("menuName",menuChildObj.getMenuName());
childMap.put("menuUrl",menuChildObj.getMenuUrl());
childMap.put("id",menuChildObj.getId());
listChildMap.add(childMap);
});
map.put("children",listChildMap);
listResult.add(map);
});
return listResult;
}
}
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
此资源是体育场馆预约管理系统的设计与实现的源码,仅供参考,功能不算齐全,不过界面还好,这个系统设计用到了前端vue2,后端用到了springboot,因为初衷是为小镇那边体育馆设计一套系统,没有考虑高并发情况,数据库用到了mysql,此套源码仅供参考,不可直接拿去用,功能不完善,如果有帮助,还请给博主点个关注+收藏,谢谢啦!
资源推荐
资源详情
资源评论
收起资源包目录
学生体育馆预约系统vue2+springboot+mybatis+mysql (540个子文件)
MenuController.class 8KB
VenueReservationController.class 8KB
Reservation.class 7KB
EquipmentRent.class 7KB
GymEventController.class 7KB
EquipmentRentController.class 6KB
GymEvent.class 6KB
User.class 6KB
VenueController.class 6KB
NoticeController.class 5KB
UserController.class 5KB
RoleMenuController.class 5KB
Venue.class 5KB
Notice.class 4KB
GymEquipment.class 4KB
Pager.class 4KB
GymInfo.class 4KB
Menu.class 4KB
EquipmentController.class 4KB
RoleController.class 3KB
GymInfoController.class 3KB
GymType.class 3KB
Role.class 3KB
RoleMenu.class 3KB
CommonController.class 3KB
PageController.class 3KB
TokenUtils.class 3KB
JsonUtils.class 2KB
FilesUpload.class 2KB
WebConfig.class 2KB
PagerUtils.class 2KB
AdminInterceptor.class 1KB
TypeController.class 1KB
LayuiResult.class 1KB
RoleMenuRepository.class 1KB
GymReservationRepository.class 840B
GymnasiumApplication.class 764B
GymInfoRepository.class 738B
VenueRepository.class 735B
UserRepository.class 676B
EquipmentRentRepository.class 586B
GymEquipmentRepository.class 582B
GymEventRepository.class 566B
GymTypeRepository.class 562B
GymnasiumApplicationTests.class 562B
NoticeRepository.class 558B
MenuRepository.class 554B
RoleRepository.class 550B
mvnw.cmd 6KB
layui.css 82KB
layui.css 82KB
admin.css 27KB
admin.css 27KB
layim.css 17KB
layim.css 17KB
layer.css 15KB
layer.css 15KB
layui.mobile.css 11KB
layui.mobile.css 11KB
layim.css 10KB
layim.css 10KB
laydate.css 9KB
laydate.css 9KB
login.css 2KB
login.css 2KB
code.css 1KB
code.css 1KB
index.css 917B
index.css 917B
font.css 527B
font.css 527B
iconfont.eot 41KB
iconfont.eot 41KB
59.gif 10KB
59.gif 10KB
22.gif 10KB
22.gif 10KB
24.gif 8KB
24.gif 8KB
13.gif 7KB
13.gif 7KB
16.gif 7KB
16.gif 7KB
39.gif 6KB
39.gif 6KB
64.gif 6KB
64.gif 6KB
63.gif 6KB
63.gif 6KB
50.gif 6KB
50.gif 6KB
loading-0.gif 6KB
loading-0.gif 6KB
4.gif 6KB
4.gif 6KB
1.gif 5KB
1.gif 5KB
42.gif 5KB
42.gif 5KB
71.gif 5KB
共 540 条
- 1
- 2
- 3
- 4
- 5
- 6
资源评论
伽瓦初学者
- 粉丝: 1
- 资源: 1
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功