SysMenuController.java 3.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100
  1. package easydo.technology.system.rest;
  2. import easydo.technology.components.JdbcClient;
  3. import easydo.technology.exception.BizException;
  4. import easydo.technology.system.model.SysMenu;
  5. import easydo.technology.system.model.SysRolesMenus;
  6. import easydo.technology.system.model.SysUsersRoles;
  7. import easydo.technology.utils.SecurityUtils;
  8. import org.springframework.http.HttpStatus;
  9. import org.springframework.http.ResponseEntity;
  10. import org.springframework.web.bind.annotation.RequestBody;
  11. import org.springframework.web.bind.annotation.RequestMapping;
  12. import org.springframework.web.bind.annotation.RestController;
  13. import javax.annotation.Resource;
  14. import javax.sql.DataSource;
  15. import java.sql.Connection;
  16. import java.util.ArrayList;
  17. import java.util.HashMap;
  18. import java.util.List;
  19. import java.util.Map;
  20. import java.util.stream.Collectors;
  21. @RestController
  22. @RequestMapping("/sysMenu")
  23. public class SysMenuController {
  24. @Resource
  25. JdbcClient jdbcClient;
  26. @Resource
  27. DataSource dataSource;
  28. @RequestMapping(value = "/getList")
  29. public Object getList(@RequestBody Map<String, Object> map) throws Exception {
  30. List<SysMenu> list = jdbcClient.getJdbcList(map, SysMenu.class);
  31. return new ResponseEntity<>(list, HttpStatus.OK);
  32. }
  33. @RequestMapping(value = "/build")
  34. public ResponseEntity<Object> buildMenus() throws Exception {
  35. Map<String, Object> paramMap = new HashMap<>();
  36. SysUsersRoles usersRoles = new SysUsersRoles();
  37. usersRoles.setUserId(SecurityUtils.getCurrentUserId());
  38. List<SysUsersRoles> rolesList = jdbcClient.getJdbcList(usersRoles);
  39. List<Long> roleIdList = rolesList.stream().map(SysUsersRoles::getRoleId).collect(Collectors.toList());
  40. paramMap.put("roleIdIn", roleIdList);
  41. List<SysRolesMenus> rolesMenusList = jdbcClient.getJdbcList(paramMap, SysRolesMenus.class);
  42. List<Long> menuIdList = rolesMenusList.stream().map(SysRolesMenus::getMenuId).distinct().collect(Collectors.toList());
  43. List<SysMenu> menuList = new ArrayList<>();
  44. if (!menuIdList.isEmpty()) {
  45. paramMap.clear();
  46. paramMap.put("idIn", menuIdList);
  47. menuList = jdbcClient.getJdbcList(paramMap, SysMenu.class);
  48. }
  49. return new ResponseEntity<>(menuList, HttpStatus.OK);
  50. }
  51. @RequestMapping(value = "/save")
  52. public Object add(@RequestBody SysMenu menu) throws Exception {
  53. jdbcClient.jdbcInsert(menu);
  54. return new ResponseEntity<>(menu, HttpStatus.OK);
  55. }
  56. @RequestMapping(value = "/update")
  57. public Object update(@RequestBody SysMenu menu) throws Exception {
  58. jdbcClient.jdbcUpdateById(menu);
  59. return new ResponseEntity<>(HttpStatus.OK);
  60. }
  61. @RequestMapping(value = "/remove")
  62. public Object deleteProgram(@RequestBody SysMenu menu) throws Exception {
  63. Connection connection = dataSource.getConnection();
  64. try {
  65. connection.setAutoCommit(false);
  66. SysMenu childrenMenu = new SysMenu();
  67. childrenMenu.setPid(menu.getId());
  68. int count = jdbcClient.getJdbcCount(childrenMenu, connection);
  69. if (count > 0) {
  70. throw new BizException("存在下级子菜单,无法删除");
  71. }
  72. SysRolesMenus rolesMenus = new SysRolesMenus();
  73. rolesMenus.setMenuId(menu.getId());
  74. jdbcClient.jdbcRemove(rolesMenus, connection);
  75. jdbcClient.jdbcRemoveById(menu, connection);
  76. connection.commit();
  77. return new ResponseEntity<>(HttpStatus.OK);
  78. } catch (Exception e) {
  79. connection.rollback();
  80. throw new BizException(e.getMessage());
  81. } finally {
  82. connection.close();
  83. }
  84. }
  85. }