package com.moral.controller; import java.util.ArrayList; import java.util.LinkedHashMap; import java.util.List; import java.util.Map; import java.util.Objects; import javax.annotation.Resource; import org.springframework.web.bind.annotation.CrossOrigin; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import com.moral.common.bean.PageBean; import com.moral.common.bean.ResultBean; import com.moral.entity.Menu; import com.moral.mapper.MenuMapper; import com.moral.mapper.RoleMenuMapper; import com.moral.service.AccountService; import com.moral.service.ChannelService; import com.moral.service.MenuService; @RestController @RequestMapping("menu") @CrossOrigin(origins = "*", maxAge = 3600) public class MenuController { @Resource MenuService menuService; @Resource MenuMapper menuMapper; @Resource RoleMenuMapper roleMenuMapper; @Resource ChannelService channelService; @Resource AccountService accountService; @GetMapping("count-by-example") public ResultBean countByExample(PageBean pageBean) { return new ResultBean(menuService.countByExample(pageBean)); } @PostMapping("add-or-modify") public ResultBean saveOrUpdate(@RequestBody Menu menu) { menuService.addOrModify(menu); ResultBean resultBean = new ResultBean(ResultBean.SUCCESS); return resultBean; } @GetMapping("channel-list") public ResultBean getChannelList(String channelName) { ResultBean resultBean = new ResultBean(ResultBean.SUCCESS); resultBean.setData(channelService.getChannelList(channelName)); return resultBean; } @GetMapping("page-allList") public PageBean pageAllList(PageBean pageBean) { return menuService.queryByAllPageBean(pageBean); } @GetMapping("menu-list") public PageBean getMenuList(PageBean pageBean) { return menuService.getMenuList(pageBean); } @GetMapping("menuParent-list") public ResultBean getMenuParentList(String menuName) { ResultBean resultBean = new ResultBean(ResultBean.SUCCESS); resultBean.setData(menuService.getMenuParentList(menuName)); return resultBean; } @PostMapping("delete-by-ids") public ResultBean deleteByIds(@RequestBody Integer [] ids){ menuService.deleteByIds(ids); ResultBean resultBean = new ResultBean(ResultBean.SUCCESS); return resultBean; } @GetMapping("menu-by-account") public Map getMenuListsByAccountName(String accountName) { Map mapResult = accountService.getMenuListsByAccountName(accountName); return mapResult; } @GetMapping("getZNodes") public List> getZNodes(Integer roleId) { List> zNodes= new ArrayList<>(); List channelIds = menuMapper.getChannelId(); List channels= roleMenuMapper.getChannels(roleId); List menus=roleMenuMapper.getMenus(roleId); List menuList=menuService.getZNodes(); for(Integer channelId:channelIds){ Map channelNodeMap=new LinkedHashMap<>(); channelNodeMap.put("id",channelId); channelNodeMap.put("pId",0); if (Objects.equals(channelId, 1)) { channelNodeMap.put("name", "大屏"); } else if (Objects.equals(channelId, 2)) { channelNodeMap.put("name", "web管理"); }else if (Objects.equals(channelId, 3)) { channelNodeMap.put("name", "运维APP"); }else if(Objects.equals(channelId, 4)){ channelNodeMap.put("name", "企业客户端APP"); } channelNodeMap.put("open",true); for(Integer roleHasChannelId:channels){ if(roleHasChannelId.equals(channelId)){ channelNodeMap.put("checked",true); } } zNodes.add(channelNodeMap); } for(Menu menu:menuList){ Map childNodeMap=new LinkedHashMap<>(); childNodeMap.put("id",menu.getMenuOrder()); childNodeMap.put("pId",menu.getMenuParentId()); childNodeMap.put("name", menu.getMenuName()); if(menu.getMenuOrder().toString().length()==2){ childNodeMap.put("open",true); } for(Integer roleHasMenuId:menus){ if(roleHasMenuId.equals(menu.getId())){ childNodeMap.put("checked", true); } } zNodes.add(childNodeMap); } return zNodes; } @GetMapping("menuOrders") public List getMenuOrders(Integer roleId) { List menuOrders=menuService.getMenuOrders(roleId); return menuOrders; } }