|
| 1 | +package com.vacomall.controller; |
| 2 | + |
| 3 | +import java.util.Arrays; |
| 4 | +import java.util.List; |
| 5 | +import java.util.Map; |
| 6 | + |
| 7 | +import org.apache.commons.lang.ArrayUtils; |
| 8 | +import org.apache.commons.lang.StringUtils; |
| 9 | +import org.apache.shiro.SecurityUtils; |
| 10 | +import org.apache.shiro.authz.annotation.RequiresPermissions; |
| 11 | +import org.apache.shiro.subject.Subject; |
| 12 | +import org.springframework.beans.factory.annotation.Autowired; |
| 13 | +import org.springframework.stereotype.Controller; |
| 14 | +import org.springframework.ui.Model; |
| 15 | +import org.springframework.web.bind.annotation.RequestMapping; |
| 16 | +import org.springframework.web.bind.annotation.RequestParam; |
| 17 | +import org.springframework.web.bind.annotation.ResponseBody; |
| 18 | + |
| 19 | +import com.baomidou.mybatisplus.mapper.EntityWrapper; |
| 20 | +import com.baomidou.mybatisplus.plugins.Page; |
| 21 | +import com.vacomall.bean.Rest; |
| 22 | +import com.vacomall.system.i.ISysMenuService; |
| 23 | +import com.vacomall.system.model.SysMenu; |
| 24 | +import com.vacomall.system.model.SysUser; |
| 25 | + |
| 26 | +/** |
| 27 | + * 用户控制器 |
| 28 | + * @author jameszhou |
| 29 | + * |
| 30 | + */ |
| 31 | +@Controller |
| 32 | +@RequestMapping("/menu") |
| 33 | +public class MenuController extends AdminController{ |
| 34 | + |
| 35 | + @Autowired private ISysMenuService sysMenuService; |
| 36 | + |
| 37 | + /** |
| 38 | + * 列表页视图 |
| 39 | + * @return |
| 40 | + */ |
| 41 | + @RequestMapping("/list") |
| 42 | + public String list(){ |
| 43 | + return "menu/menu-list"; |
| 44 | + } |
| 45 | + |
| 46 | + /** |
| 47 | + * 列表页数据 |
| 48 | + * @param page |
| 49 | + * @param size |
| 50 | + * @param search |
| 51 | + * @param model |
| 52 | + * @return |
| 53 | + */ |
| 54 | + @RequiresPermissions("menu:list") |
| 55 | + @ResponseBody |
| 56 | + @RequestMapping("/json") |
| 57 | + public Rest json ( |
| 58 | + @RequestParam(value="page",defaultValue="1") Integer page, |
| 59 | + @RequestParam(value="limit",defaultValue="10") Integer size, |
| 60 | + @RequestParam(value="key[search]",required=false) String search, |
| 61 | + Model model) { |
| 62 | + |
| 63 | + EntityWrapper<SysMenu> ew = new EntityWrapper<SysMenu>(); |
| 64 | + ew.orderBy("code"); |
| 65 | + if(StringUtils.isNotBlank(search)){ |
| 66 | + ew.like("text", search); |
| 67 | + } |
| 68 | + Page<SysMenu> pageData = sysMenuService.selectPage(new Page<SysMenu>(page, size),ew); |
| 69 | + for(SysMenu menu : pageData.getRecords()){ |
| 70 | + menu.setText(StringUtils.repeat(" ",menu.getCode().length()-2)+"┠"+menu.getText()); |
| 71 | + } |
| 72 | + return Rest.okCountData(pageData.getTotal(),pageData.getRecords()); |
| 73 | + } |
| 74 | + |
| 75 | + /** |
| 76 | + * 新增菜单视图 |
| 77 | + * @param sysMenu |
| 78 | + * @return |
| 79 | + */ |
| 80 | + @RequiresPermissions("menu:add") |
| 81 | + @RequestMapping("/add") |
| 82 | + public String add(Model model){ |
| 83 | + List<SysMenu> list = sysMenuService.selectList(new EntityWrapper<SysMenu>().le("deep",2).orderBy("code")); |
| 84 | + for(SysMenu menu : list){ |
| 85 | + menu.setText(StringUtils.repeat(" ",menu.getCode().length()-2)+"┠"+menu.getText()); |
| 86 | + } |
| 87 | + model.addAttribute("menuList",list); |
| 88 | + return "menu/menu-add"; |
| 89 | + } |
| 90 | + |
| 91 | + /** |
| 92 | + * 执行新增菜单 |
| 93 | + * @param sysMenu |
| 94 | + * @return |
| 95 | + */ |
| 96 | + @RequiresPermissions("menu:add") |
| 97 | + @ResponseBody |
| 98 | + @RequestMapping("/doAdd") |
| 99 | + public Rest doAdd(SysMenu sysMenu){ |
| 100 | + sysMenuService.insert(sysMenu); |
| 101 | + return Rest.ok(); |
| 102 | + } |
| 103 | + |
| 104 | + /** |
| 105 | + * 编辑菜单视图 |
| 106 | + * @param id |
| 107 | + * @param model |
| 108 | + * @return |
| 109 | + */ |
| 110 | + @RequiresPermissions("menu:edit") |
| 111 | + @RequestMapping("/edit") |
| 112 | + public String edit(String id,Model model){ |
| 113 | + model.addAttribute("sysMenu", sysMenuService.selectById(id)); |
| 114 | + return "menu/menu-edit"; |
| 115 | + } |
| 116 | + |
| 117 | + /** |
| 118 | + * 执行菜单编辑 |
| 119 | + * @param id |
| 120 | + * @param model |
| 121 | + * @return |
| 122 | + */ |
| 123 | + @ResponseBody |
| 124 | + @RequiresPermissions("menu:edit") |
| 125 | + @RequestMapping("/doEdit") |
| 126 | + public Rest doEdit(SysMenu sysMenu){ |
| 127 | + sysMenuService.updateById(sysMenu); |
| 128 | + return Rest.ok(); |
| 129 | + } |
| 130 | + |
| 131 | + /** |
| 132 | + * 删除 |
| 133 | + * @param id |
| 134 | + * @return |
| 135 | + */ |
| 136 | + @ResponseBody |
| 137 | + @RequiresPermissions("menu:delete") |
| 138 | + @RequestMapping("/delete") |
| 139 | + public Rest delete(@RequestParam("ids[]") String[] ids){ |
| 140 | + if(ArrayUtils.isEmpty(ids)){ |
| 141 | + return Rest.failure("客户端传入对象id为空"); |
| 142 | + } |
| 143 | + sysMenuService.deleteBatchIds(Arrays.asList(ids)); |
| 144 | + return Rest.ok(); |
| 145 | + } |
| 146 | + |
| 147 | + /** |
| 148 | + * 加载当前用户的菜单 |
| 149 | + * @return |
| 150 | + */ |
| 151 | + @RequestMapping("/leftmenus") |
| 152 | + public Rest leftmenus(){ |
| 153 | + Subject subject = SecurityUtils.getSubject(); |
| 154 | + if(subject != null){ |
| 155 | + SysUser sysUser = (SysUser) subject.getPrincipal(); |
| 156 | + List<Map<String, Object>> list = sysMenuService.selectMenuByUid(sysUser.getId(),"0"); |
| 157 | + return Rest.okCountData(list.size(), list); |
| 158 | + }else{ |
| 159 | + return Rest.failure("会话过期"); |
| 160 | + } |
| 161 | + } |
| 162 | + |
| 163 | + /** |
| 164 | + * 获取全部菜单数据 |
| 165 | + * @return |
| 166 | + */ |
| 167 | + @RequestMapping("/treelist") |
| 168 | + public List<Map<String, Object>> treelist(){ |
| 169 | + List<Map<String, Object>> list = sysMenuService.selectMenuByPid("0"); |
| 170 | + return list; |
| 171 | + } |
| 172 | +} |
0 commit comments