package com.thhy.usercore.modules.sys.sysmenu.controller; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.parser.JSONToken; import com.github.pagehelper.PageInfo; import com.thhy.general.utils.PagingUtils; import com.thhy.general.common.BasicResult; import com.thhy.general.config.GlobalConfig; import com.thhy.usercore.modules.sys.sysmenu.entity.*; import com.thhy.usercore.modules.sys.sysmenu.service.ISysMenusService; import com.thhy.usercore.modules.sys.sysmenubutton.entity.MenuButtonVo; import org.redisson.api.RBucket; import org.redisson.api.RedissonClient; 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.io.*; import java.util.HashMap; import java.util.List; import java.util.Map; /** *

* 前端控制器 *

* * @author zhang_xiao_bo * @since 2022-03-22 */ @RestController @RequestMapping("sysMenus") public class SysMenusController { @Autowired private ISysMenusService sysMenusService; @Autowired private RedissonClient redissonClient; @Autowired private GlobalConfig globalConfig; /** * 无用 * @param sysMenus * @param req * @return */ @RequestMapping("findList") public BasicResult findList(@RequestBody SysMenus sysMenus,HttpServletRequest req){ PagingUtils.setPageParam(req); List sysMenusList = sysMenusService.findList(sysMenus); PageInfo pageInfo = new PageInfo<>(sysMenusList); return BasicResult.success(pageInfo); } /** * 全部菜单 * @return */ @RequestMapping("findTreeList") public BasicResult findAll(){ RBucket rBucket = redissonClient.getBucket(globalConfig.getKeyPrefix()+":menuall"); List sysMenusList = rBucket.get(); if(sysMenusList==null||sysMenusList.size()<1){ sysMenusList = sysMenusService.findAllTree(new MenuDto("0")); redissonClient.getBucket(globalConfig.getKeyPrefix()+":menuall").trySet(JSONArray.toJSON(sysMenusList)); } return BasicResult.success(sysMenusList); } @RequestMapping("syncMenu") public BasicResult syncMenu(){ String value = ""; try { InputStream ins = new FileInputStream(new File("D:\\dd.txt")); byte[] bytes = new byte[ins.available()]; ins.read(bytes); value = new String(bytes,"UTF-8"); } catch (Exception e) { throw new RuntimeException(e); } List sysMenusList = JSONArray.parseArray(value,MenuTreeVo.class); sysMenusService.syncMenu(sysMenusList); return BasicResult.success(sysMenusList); } @RequestMapping("allRoleMenu") public BasicResult allRoleMenu(@RequestBody MenuDto menuDto){ menuDto.setParentId("0"); List sysMenusList = sysMenusService.allRoleMenu(menuDto); return BasicResult.success(sysMenusList); } /** * 添加菜单 * @param sysMenus * @return */ @RequestMapping("addMenu") public BasicResult addMenu(@RequestBody SysMenus sysMenus){ sysMenusService.addMenu(sysMenus); //菜单有变动 删除菜单 redissonClient.getBucket(globalConfig.getKeyPrefix()+":menuall").delete(); return BasicResult.success(); } /** * 为菜单配置按钮 * @param menuButtonDto * @return */ @RequestMapping("addMenuButton") public BasicResult addMenuButton(@RequestBody MenuButtonDto menuButtonDto){ sysMenusService.addMenuButton(menuButtonDto); return BasicResult.success(); } /** * 为菜单配置url **/ /*@RequestMapping("addMenuUrls") public BasicResult addMenuUrls(@RequestBody MenuUrlDto MenuUrlDto){ sysMenusService.addMenuUrls(MenuUrlDto); return BasicResult.success(); }*/ @RequestMapping("queryVersion/{id}") public BasicResult queryVersion(@PathVariable String id){ Integer version = sysMenusService.queryVersion(id); Map map = new HashMap<>(); map.put("version",version); return BasicResult.success(map); } @RequestMapping("menuEnableButtons") public BasicResult MenuEnableButtons(@RequestBody MenuButtonDto menuButtonDto){ List menuButtonVos = sysMenusService.MenuEnableButtons(menuButtonDto); return BasicResult.success(menuButtonVos); } /** * 删除 * @param menuId * @return */ @RequestMapping("delete") public BasicResult delete(@RequestBody Serializable menuId){ sysMenusService.deletelogic(menuId); //菜单有变动 删除菜单 redissonClient.getBucket(globalConfig.getKeyPrefix()+":menuall").delete(); return BasicResult.success(); } }