package com.template.controller; import com.baomidou.mybatisplus.core.conditions.Wrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.toolkit.ObjectUtils; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.template.api.UsersMenuAPI; import com.template.model.dto.SaveParentDto; import com.template.model.dto.SaveParentUserDto; import com.template.model.dto.SaveSecondaryUserDto; import com.template.model.pojo.AdminMenu; import com.template.model.pojo.PermissionSetting; import com.template.model.pojo.UsersMenu; import com.template.model.result.CommonResult; import com.template.model.vo.AdminMenuTreeVo; import com.template.services.PermissionSettingService; import com.template.services.UsersMenuService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import java.util.ArrayList; import java.util.List; import java.util.stream.Collectors; /** *

* 前端控制器 *

* * @author ceshi * @since 2023-12-13 */ @RestController public class UsersMenuController implements UsersMenuAPI { @Autowired UsersMenuService usersMenuService; @Autowired PermissionSettingService permissionSettingService; public static void main(String[] args) { String s = "1,2"; boolean contains = s.contains("3"); System.out.println("contains = " + contains); } @Override public CommonResult saveUserParent(SaveParentUserDto saveParentUserDto) { if (ObjectUtils.isEmpty(saveParentUserDto)) { return CommonResult.fail(); } int adminId = saveParentUserDto.getAdminMenuId(); PermissionSetting permissionSetting = permissionSettingService.getById(adminId); if (ObjectUtils.isEmpty(permissionSetting)) { return CommonResult.fail("非法进入"); } // 判断该用户是否拥有权限 String roleManagement = permissionSetting.getRoleManagement(); if (!"0".equals(roleManagement) && !roleManagement.contains("1")) { return CommonResult.fail("此账号暂无该权限"); } String name = saveParentUserDto.getName(); LambdaQueryWrapper wrapperUm = new LambdaQueryWrapper<>(); wrapperUm.eq(UsersMenu::getName, name); UsersMenu one = usersMenuService.getOne(wrapperUm); if (ObjectUtils.isNotEmpty(one)) { return CommonResult.fail("已有该角色"); } UsersMenu usersMenu = new UsersMenu(); usersMenu.setParentId(0); usersMenu.setName(name); usersMenuService.save(usersMenu); return CommonResult.ok(); } @Override public CommonResult saveUserSecondary(SaveSecondaryUserDto saveSecondaryUserDto) { if (ObjectUtils.isEmpty(saveSecondaryUserDto)) { return CommonResult.fail(); } int adminId = saveSecondaryUserDto.getAdminMenuId(); PermissionSetting permissionSetting = permissionSettingService.getById(adminId); if (ObjectUtils.isEmpty(permissionSetting)) { return CommonResult.fail("非法进入"); } // 判断该用户是否拥有权限 String roleManagement = permissionSetting.getRoleManagement(); if (!"0".equals(roleManagement) && !roleManagement.contains("1")) { return CommonResult.fail("此账号暂无该权限"); } String name = saveSecondaryUserDto.getName(); LambdaQueryWrapper wrapperUm = new LambdaQueryWrapper<>(); wrapperUm.eq(UsersMenu::getName, name); UsersMenu one = usersMenuService.getOne(wrapperUm); if (ObjectUtils.isNotEmpty(one)) { return CommonResult.fail("已有该角色"); } UsersMenu usersMenu = new UsersMenu(); usersMenu.setParentId(saveSecondaryUserDto.getParentId()); usersMenu.setName(name); usersMenuService.save(usersMenu); return CommonResult.ok(); } @Override public CommonResult getUserRole() { Wrapper wrapper = new LambdaQueryWrapper<>(); List adminMenus = usersMenuService.list(wrapper); List adminMenuTreeVos = QueryAreaTreeRecords(0, adminMenus); return CommonResult.ok(adminMenuTreeVos); } @Override public CommonResult userListPage(int adminMenuId,int page, int size, String keyWord, String startTime, String endTime) { PermissionSetting permissionSetting = permissionSettingService.getById(adminMenuId); if (ObjectUtils.isEmpty(permissionSetting)) { return CommonResult.fail("非法进入"); } // 判断该用户是否拥有权限 String roleManagement = permissionSetting.getRoleManagement(); if (!"0".equals(roleManagement) && !roleManagement.contains("4")) { return CommonResult.fail("此账号暂无该权限"); } if (ObjectUtils.isEmpty(page) && page <= 0) { page = 1; } if (ObjectUtils.isEmpty(size) && size <= 0) { size = 10; } LambdaQueryWrapper wrapperUM = new LambdaQueryWrapper<>(); wrapperUM.like(ObjectUtils.isNotEmpty(keyWord), UsersMenu::getName, keyWord) .between(ObjectUtils.isNotEmpty(startTime) && ObjectUtils.isNotEmpty(endTime), UsersMenu::getCreateTime, startTime, endTime); IPage page1 = usersMenuService.page(new Page<>(page, size), wrapperUM); return CommonResult.ok(page1); } /** * 根据父类ID获取树形菜单数据 * * @param parentID 父级ID * @param lists 数据集合 * @return */ private List QueryAreaTreeRecords(Integer parentID, List lists) { List newTrees = new ArrayList<>(); List datas = lists.stream().filter(e -> e.getParentId().equals(parentID)).collect(Collectors.toList()); for (UsersMenu data : datas) { AdminMenuTreeVo item = AdminMenuTreeVo.builder() .id(data.getId()) .parentId(data.getParentId()) .name(data.getName()) .build(); List news = QueryAreaTreeRecords(item.getId(), lists); if (news == null || news.size() == 0) { newTrees.add(item); continue; } else { item.setChildren(news); newTrees.add(item); } } return newTrees; } }