UsersMenuController.java 8.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231
  1. package com.template.controller;
  2. import com.baomidou.mybatisplus.core.conditions.Wrapper;
  3. import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
  4. import com.baomidou.mybatisplus.core.metadata.IPage;
  5. import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
  6. import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
  7. import com.template.api.UsersMenuAPI;
  8. import com.template.model.dto.SaveParentDto;
  9. import com.template.model.dto.SaveParentUserDto;
  10. import com.template.model.dto.SaveSecondaryUserDto;
  11. import com.template.model.dto.UpdateMenuPermissionSettingDto;
  12. import com.template.model.pojo.AdminMenu;
  13. import com.template.model.pojo.PermissionSetting;
  14. import com.template.model.pojo.Users;
  15. import com.template.model.pojo.UsersMenu;
  16. import com.template.model.result.CommonResult;
  17. import com.template.model.vo.AdminMenuTreeVo;
  18. import com.template.services.PermissionSettingService;
  19. import com.template.services.UsersMenuService;
  20. import com.template.services.UsersService;
  21. import org.springframework.beans.factory.annotation.Autowired;
  22. import org.springframework.transaction.annotation.Transactional;
  23. import org.springframework.web.bind.annotation.RequestMapping;
  24. import org.springframework.web.bind.annotation.RestController;
  25. import java.util.ArrayList;
  26. import java.util.List;
  27. import java.util.stream.Collectors;
  28. /**
  29. * <p>
  30. * 前端控制器
  31. * </p>
  32. *
  33. * @author ceshi
  34. * @since 2023-12-13
  35. */
  36. @RestController
  37. public class UsersMenuController implements UsersMenuAPI {
  38. @Autowired
  39. UsersMenuService usersMenuService;
  40. @Autowired
  41. PermissionSettingService permissionSettingService;
  42. @Autowired
  43. UsersService usersService;
  44. public static void main(String[] args) {
  45. String s = "1,2";
  46. boolean contains = s.contains("3");
  47. System.out.println("contains = " + contains);
  48. }
  49. @Override
  50. public CommonResult saveUserParent(SaveParentUserDto saveParentUserDto) {
  51. if (ObjectUtils.isEmpty(saveParentUserDto)) {
  52. return CommonResult.fail();
  53. }
  54. int adminId = saveParentUserDto.getAdminMenuId();
  55. PermissionSetting permissionSetting = permissionSettingService.getById(adminId);
  56. if (ObjectUtils.isEmpty(permissionSetting)) {
  57. return CommonResult.fail("非法进入");
  58. }
  59. // 判断该用户是否拥有权限
  60. String roleManagement = permissionSetting.getRoleManagement();
  61. if (!"0".equals(roleManagement) && !roleManagement.contains("1")) {
  62. return CommonResult.fail("此账号暂无该权限");
  63. }
  64. String name = saveParentUserDto.getName();
  65. LambdaQueryWrapper<UsersMenu> wrapperUm = new LambdaQueryWrapper<>();
  66. wrapperUm.eq(UsersMenu::getName, name);
  67. UsersMenu one = usersMenuService.getOne(wrapperUm);
  68. if (ObjectUtils.isNotEmpty(one)) {
  69. return CommonResult.fail("已有该角色");
  70. }
  71. UsersMenu usersMenu = new UsersMenu();
  72. usersMenu.setParentId(0);
  73. usersMenu.setName(name);
  74. usersMenuService.save(usersMenu);
  75. return CommonResult.ok();
  76. }
  77. @Override
  78. public CommonResult saveUserSecondary(SaveSecondaryUserDto saveSecondaryUserDto) {
  79. if (ObjectUtils.isEmpty(saveSecondaryUserDto)) {
  80. return CommonResult.fail();
  81. }
  82. int adminId = saveSecondaryUserDto.getAdminMenuId();
  83. PermissionSetting permissionSetting = permissionSettingService.getById(adminId);
  84. if (ObjectUtils.isEmpty(permissionSetting)) {
  85. return CommonResult.fail("非法进入");
  86. }
  87. // 判断该用户是否拥有权限
  88. String roleManagement = permissionSetting.getRoleManagement();
  89. if (!"0".equals(roleManagement) && !roleManagement.contains("1")) {
  90. return CommonResult.fail("此账号暂无该权限");
  91. }
  92. String name = saveSecondaryUserDto.getName();
  93. LambdaQueryWrapper<UsersMenu> wrapperUm = new LambdaQueryWrapper<>();
  94. wrapperUm.eq(UsersMenu::getName, name);
  95. UsersMenu one = usersMenuService.getOne(wrapperUm);
  96. if (ObjectUtils.isNotEmpty(one)) {
  97. return CommonResult.fail("已有该角色");
  98. }
  99. UsersMenu usersMenu = new UsersMenu();
  100. usersMenu.setParentId(saveSecondaryUserDto.getParentId());
  101. usersMenu.setName(name);
  102. usersMenuService.save(usersMenu);
  103. return CommonResult.ok();
  104. }
  105. @Override
  106. public CommonResult getUserRole() {
  107. Wrapper<UsersMenu> wrapper = new LambdaQueryWrapper<>();
  108. List<UsersMenu> adminMenus = usersMenuService.list(wrapper);
  109. List<AdminMenuTreeVo> adminMenuTreeVos = QueryAreaTreeRecords(0, adminMenus);
  110. return CommonResult.ok(adminMenuTreeVos);
  111. }
  112. @Override
  113. public CommonResult userListPage(int adminMenuId,int page, int size, String keyWord, String startTime, String endTime) {
  114. PermissionSetting permissionSetting = permissionSettingService.getById(adminMenuId);
  115. if (ObjectUtils.isEmpty(permissionSetting)) {
  116. return CommonResult.fail("非法进入");
  117. }
  118. // 判断该用户是否拥有权限
  119. String roleManagement = permissionSetting.getRoleManagement();
  120. if (!"0".equals(roleManagement) && !roleManagement.contains("4")) {
  121. return CommonResult.fail("此账号暂无该权限");
  122. }
  123. if (ObjectUtils.isEmpty(page) && page <= 0) {
  124. page = 1;
  125. }
  126. if (ObjectUtils.isEmpty(size) && size <= 0) {
  127. size = 10;
  128. }
  129. LambdaQueryWrapper<UsersMenu> wrapperUM = new LambdaQueryWrapper<>();
  130. wrapperUM.like(ObjectUtils.isNotEmpty(keyWord), UsersMenu::getName, keyWord)
  131. .between(ObjectUtils.isNotEmpty(startTime) && ObjectUtils.isNotEmpty(endTime), UsersMenu::getCreateTime, startTime, endTime);
  132. IPage<UsersMenu> page1 = usersMenuService.page(new Page<>(page, size), wrapperUM);
  133. return CommonResult.ok(page1);
  134. }
  135. @Override
  136. public CommonResult deleteUsersMenu(int adminMenuId, int userMenuId) {
  137. PermissionSetting permissionSetting = permissionSettingService.getById(adminMenuId);
  138. if (ObjectUtils.isEmpty(permissionSetting)) {
  139. return CommonResult.fail("非法进入");
  140. }
  141. // 判断该用户是否拥有权限
  142. String roleManagement = permissionSetting.getRoleManagement();
  143. if (!"0".equals(roleManagement) && !roleManagement.contains("3")) {
  144. return CommonResult.fail("此账号暂无该权限");
  145. }
  146. // 判断是否有子用户角色
  147. List<UsersMenu> usersMenuList=usersMenuService.listUserMenuId(userMenuId);
  148. List<Users> users=usersService.listUserMenuId(userMenuId);
  149. if (users.size()>0) {
  150. return CommonResult.fail("该角色下还有用户");
  151. }
  152. if (ObjectUtils.isNotEmpty(usersMenuList)&&usersMenuList.size()>0) {
  153. return CommonResult.fail("该角色下还有其他角色未删除");
  154. }
  155. boolean b = usersMenuService.removeById(userMenuId);
  156. if (!b) {
  157. return CommonResult.fail("删除失败");
  158. }
  159. return CommonResult.ok();
  160. }
  161. /**
  162. * 根据父类ID获取树形菜单数据
  163. *
  164. * @param parentID 父级ID
  165. * @param lists 数据集合
  166. * @return
  167. */
  168. private List<AdminMenuTreeVo> QueryAreaTreeRecords(Integer parentID, List<UsersMenu> lists) {
  169. List<AdminMenuTreeVo> newTrees = new ArrayList<>();
  170. List<UsersMenu> datas = lists.stream().filter(e -> e.getParentId().equals(parentID)).collect(Collectors.toList());
  171. for (UsersMenu data : datas) {
  172. AdminMenuTreeVo item = AdminMenuTreeVo.builder()
  173. .id(data.getId())
  174. .parentId(data.getParentId())
  175. .name(data.getName())
  176. .build();
  177. List<AdminMenuTreeVo> news = QueryAreaTreeRecords(item.getId(), lists);
  178. if (news == null || news.size() == 0) {
  179. newTrees.add(item);
  180. continue;
  181. } else {
  182. item.setChildren(news);
  183. newTrees.add(item);
  184. }
  185. }
  186. return newTrees;
  187. }
  188. }