From dc31792dc1b8ad1658e49ba8fce9a1be924e6fbb Mon Sep 17 00:00:00 2001 From: wu <731351411@qq.com> Date: 星期四, 30 十一月 2023 08:44:04 +0800 Subject: [PATCH] 理片笼测试修改 --- springboot-vue3/src/main/java/com/example/springboot/controller/RolePermissionController.java | 168 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 168 insertions(+), 0 deletions(-) diff --git a/springboot-vue3/src/main/java/com/example/springboot/controller/RolePermissionController.java b/springboot-vue3/src/main/java/com/example/springboot/controller/RolePermissionController.java new file mode 100644 index 0000000..32044f9 --- /dev/null +++ b/springboot-vue3/src/main/java/com/example/springboot/controller/RolePermissionController.java @@ -0,0 +1,168 @@ +package com.example.springboot.controller; + +import com.example.springboot.entity.*; +import com.example.springboot.entity.vo.Result; +import com.example.springboot.entity.vo.RolePermissionVo; +import com.example.springboot.mapper.RolePermissionMapper; +import com.example.springboot.service.PermissionService; +import com.example.springboot.service.RolePermissionService; +import com.example.springboot.service.RoleService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import lombok.extern.slf4j.Slf4j; +import org.apache.shiro.authz.annotation.RequiresPermissions; +import org.apache.shiro.authz.annotation.RequiresRoles; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.jdbc.core.JdbcTemplate; +import org.springframework.web.bind.annotation.*; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +@RestController +@Slf4j +@Api(tags = "瑙掕壊鍜屾潈闄愬叧绯�") +@RequestMapping("/api/rolePermission") +public class RolePermissionController { + @Autowired + private RolePermissionService rolePermissionService; + @Autowired + private RoleService roleService; + @Autowired + private PermissionService permissionService; + + + + @ApiOperation(value = "娣诲姞鎴栬�呮洿鏂拌鑹插拰鏉冮檺鍏崇郴") + @PostMapping("/saveOrUpdate") + @RequiresPermissions({"rolePermission:add"}) + @RequiresRoles({"admin"}) + public Result saveOrUpdate(@RequestBody RolePermission rolePermission) { + Integer count = rolePermissionService.lambdaQuery() + .eq(RolePermission::getRoleId, rolePermission.getRoleId()) + .eq(RolePermission::getPermissionId, rolePermission.getPermissionId()) + .ne(rolePermission.getId() != null, RolePermission::getId, rolePermission.getId()) + .count(); + if (count > 0) return Result.fail("鎺堟潈宸插瓨鍦�"); + rolePermissionService.saveOrUpdate(rolePermission); + return Result.success(); + } + + @ApiOperation(value = "鏍规嵁id鍒犻櫎瑙掕壊鍜屾潈闄愬叧绯�") + @PostMapping("/removeById") + @RequiresPermissions({"rolePermission:delete"}) + @RequiresRoles({"admin"}) + public Result removeById(@RequestBody RolePermissionVo rolePermissionVO) { + rolePermissionService.removeById(rolePermissionVO.getId()); + return Result.success(); + } + + @ApiOperation(value = "鍒嗛〉鏌ヨ瑙掕壊鍜屾潈闄愬叧绯�") + @GetMapping("/selectPage") + @RequiresRoles({"admin"}) + @RequiresPermissions({"rolePermission:select"}) + public Result selectPage(RolePermissionVo rolePermissionVO) { + return Result.success(rolePermissionService.selectPage(rolePermissionVO)); + } + + @ApiOperation(value = "鏍规嵁id鏌ヨ瑙掕壊鍜屾潈闄愬叧绯�") + @GetMapping("/getById") + @RequiresRoles({"admin"}) + @RequiresPermissions({"rolePermission:select"}) + public Result getById(RolePermissionVo rolePermissionVO) { + RolePermission rolePermission = rolePermissionService.getById(rolePermissionVO.getId()); + if (rolePermission != null) { + Role role = roleService.getById(rolePermission.getRoleId()); + Permission permission = permissionService.getById(rolePermission.getPermissionId()); + rolePermission.setRole(role); + rolePermission.setPermission(permission); + } + return Result.success(rolePermission); + + + + + + } + @Autowired + private JdbcTemplate jdbcTemplate; + + @Autowired RolePermissionMapper RolePermissionMapper; + ; + + + @GetMapping("/getByRoleId") + public com.example.springboot.common.Result selectquanxian(@RequestParam("roleId") int roleId) { + List<Map<String, Object>> resultSet = RolePermissionMapper.selectquanxian(roleId); + + List<Map<String, Object>> permissions = new ArrayList<>(); + for (Map<String, Object> result : resultSet) { + + Long role_id2 = (Long) result.get("role_id"); + int state = (int) result.get("state"); + Long permission_id = (Long) result.get("permission_id"); // 娉ㄦ剰杩欓噷鐨勭被鍨嬫槸Long + String permissionName = (String) result.get("name"); + + Map<String, Object> permission = new HashMap<>(); + permission.put("roleId", role_id2.intValue()); + permission.put("name", permissionName); + permission.put("permission_id", permission_id.intValue()); // 灏哃ong绫诲瀷杞崲涓篿nt绫诲瀷 + permission.put("state", state); + permissions.add(permission); + } + + Map<String, Object> map = new HashMap<>(); + map.put("permissionList", permissions); + return com.example.springboot.common.Result.success(map); + } + + + @PostMapping("/savePermissions") + public Result savePermissions(@RequestBody Map<String, Object> requestBody) { + try { + // 鑾峰彇鏉冮檺鏁版嵁鍒楄〃 + List<Map<String, Object>> permissions = (List<Map<String, Object>>) requestBody.get("permissions"); + // 閬嶅巻鎺ユ敹鍒扮殑鏉冮檺鏁版嵁 + for (Map<String, Object> permission : permissions) { + // 鑾峰彇鏉冮檺椤圭殑roleId銆乶ame銆乻tate鍜宲ermission_id + int roleId = (int) permission.get("roleId"); + String name = (String) permission.get("name"); + int state = (int) permission.get("state"); + int permissionId = (int) permission.get("permission_id"); + + // 鏍规嵁roleId鍜宲ermissionId鏌ヨ鏄惁宸插瓨鍦ㄨ鏉冮檺璁板綍 + boolean exists = RolePermissionMapper.checkExists(roleId, permissionId); + + if (exists) { + // 濡傛灉宸插瓨鍦ㄨ鏉冮檺璁板綍锛屽垯鏇存柊鐘舵�� + RolePermissionMapper.updateState(roleId, permissionId, state); + } else { + // 濡傛灉涓嶅瓨鍦ㄨ鏉冮檺璁板綍锛屽垯鏂板涓�鏉℃潈闄愯褰� + RolePermissionMapper.insert(roleId, permissionId, state); + } + } + + return Result.success(); // 鎴愬姛淇濆瓨鏉冮檺鍚庤繑鍥炵粨鏋� + } catch (Exception e) { + e.printStackTrace(); + return Result.fail("淇濆瓨鏉冮檺澶辫触"); // 淇濆瓨鏉冮檺澶辫触鏃惰繑鍥為敊璇俊鎭� + } + } + + + + + + + +} + + + + + + + + -- Gitblit v1.8.0