tianyabing 2 anni fa
parent
commit
65db8ecf4a

+ 82 - 0
src/main/java/com/sky/ioc/controller/user/RoleController.java

@@ -0,0 +1,82 @@
+package com.sky.ioc.controller.user;
+
+import com.sky.ioc.entity.domain.system.Role;
+import com.sky.ioc.service.user.RoleService;
+import com.sky.ioc.service.user.UserService;
+import com.sky.ioc.tool.ReturnMsg;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+@Api(tags = "系统--角色管理")
+@Slf4j
+@RestController
+@RequestMapping("/role")
+public class RoleController {
+
+
+    @Autowired
+    private RoleService roleService;
+
+    @Autowired
+    private UserService userService;
+
+    @ApiOperation("获取角色列表")
+    @GetMapping("/role_list")
+    public ReturnMsg getRoleList(@RequestParam(required = false) String page, @RequestParam(required = false) String page_size) {
+        return roleService.getRoleList(page, page_size);
+    }
+
+    @ApiOperation("获取角色详情")
+    @GetMapping("/role")
+    public ReturnMsg getRole(@RequestParam("role_id") String role_id) {
+        return roleService.getRoleById(role_id);
+    }
+
+    @ApiOperation("添加角色")
+    @PostMapping("/role")
+    public ReturnMsg addRole(Role role) {
+        return roleService.addRole(role);
+    }
+
+    @ApiOperation("修改角色")
+    @PutMapping("/role")
+    public ReturnMsg updateRole(Role role) {
+        return roleService.updateRole(role);
+    }
+
+    @ApiOperation("删除角色")
+    @DeleteMapping("/role")
+    public ReturnMsg delRole(@RequestParam("role_id") String role_id) {
+        return roleService.deleteRole(role_id);
+    }
+
+    @ApiOperation("批量删除角色")
+    @DeleteMapping("/batch_delete_role")
+    public ReturnMsg batchDelRole(@RequestParam("role_ids") String role_ids) {
+        roleService.batchDelRole(role_ids);
+        return null;
+    }
+
+    @ApiOperation("获取角色成员")
+    @GetMapping("/member")
+    public ReturnMsg getMember(@RequestParam("role_id") String role_id,
+                               @RequestParam(required = false) String page, @RequestParam(required = false) String page_size) {
+        return userService.getUserListByRole(role_id, page, page_size);
+    }
+
+    @ApiOperation("移除角色成员")
+    @PutMapping("/member")
+    public ReturnMsg removeMember(@RequestParam("user_id") String user_id, @RequestParam("role_id") String role_id) {
+        return roleService.removeMember(user_id, role_id);
+    }
+
+    @ApiOperation("批量移除角色成员")
+    @DeleteMapping("/batch_delete_role_member")
+    public ReturnMsg batchRemoveMember(@RequestParam("users_id") String users_id, @RequestParam("role_id") String role_id) {
+        return roleService.batchRemoveMember(users_id, role_id);
+    }
+
+}

+ 18 - 0
src/main/java/com/sky/ioc/entity/domain/system/Role.java

@@ -0,0 +1,18 @@
+package com.sky.ioc.entity.domain.system;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import lombok.Data;
+
+@Data
+public class Role {
+
+    @TableId(type = IdType.AUTO)
+    private Integer id;
+
+    private String role_name;
+
+    private String role_describe;
+
+    private String role_permission;
+}

+ 9 - 0
src/main/java/com/sky/ioc/mapper/user/RoleMapper.java

@@ -0,0 +1,9 @@
+package com.sky.ioc.mapper.user;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.sky.ioc.entity.domain.system.Role;
+import org.apache.ibatis.annotations.Mapper;
+
+@Mapper
+public interface RoleMapper  extends BaseMapper<Role> {
+}

+ 22 - 0
src/main/java/com/sky/ioc/service/user/RoleService.java

@@ -0,0 +1,22 @@
+package com.sky.ioc.service.user;
+
+import com.sky.ioc.entity.domain.system.Role;
+import com.sky.ioc.tool.ReturnMsg;
+
+public interface RoleService {
+    ReturnMsg getRoleList(String page, String pageSize);
+
+    ReturnMsg getRoleById(String roleId);
+
+    ReturnMsg addRole(Role role);
+
+    ReturnMsg updateRole(Role role);
+
+    ReturnMsg deleteRole(String roleId);
+
+    ReturnMsg batchDelRole(String roleIds);
+
+    ReturnMsg removeMember(String userId, String roleId);
+
+    ReturnMsg batchRemoveMember(String usersId, String roleId);
+}

+ 2 - 0
src/main/java/com/sky/ioc/service/user/UserService.java

@@ -29,4 +29,6 @@ public interface UserService {
 
     void exportData(HttpServletResponse response);
 
+    ReturnMsg getUserListByRole(String roleId, String page, String pageSize);
+
 }

+ 103 - 0
src/main/java/com/sky/ioc/service/user/impl/RoleServiceImpl.java

@@ -0,0 +1,103 @@
+package com.sky.ioc.service.user.impl;
+
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.github.pagehelper.PageHelper;
+import com.github.pagehelper.PageInfo;
+import com.sky.ioc.entity.domain.system.Role;
+import com.sky.ioc.mapper.user.RoleMapper;
+import com.sky.ioc.mapper.user.UserMapper;
+import com.sky.ioc.service.user.RoleService;
+import com.sky.ioc.tool.ReturnMsg;
+import org.apache.commons.lang3.StringUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
+
+@Service
+public class RoleServiceImpl implements RoleService {
+
+    @Autowired
+    private RoleMapper roleMapper;
+
+    @Autowired
+    private UserMapper userMapper;
+
+    @Override
+    public ReturnMsg getRoleList(String page, String pageSize) {
+        long total = 0;
+        List<Role> roles = new ArrayList<>();
+        if (StringUtils.isNoneBlank(page, pageSize)) {
+            PageHelper.startPage(Integer.parseInt(page), Integer.parseInt(pageSize));
+            roles = roleMapper.selectList(new LambdaQueryWrapper<>());
+            total = PageInfo.of(roles).getTotal();
+        } else {
+            roles = roleMapper.selectList(new LambdaQueryWrapper<>());
+            total = roles.size();
+        }
+        ReturnMsg<List<Role>> ok = ReturnMsg.ok(roles);
+        ok.setTotal(total);
+        return ok;
+    }
+
+    @Override
+    public ReturnMsg getRoleById(String roleId) {
+        return ReturnMsg.ok(roleMapper.selectById(roleId));
+    }
+
+    @Override
+    public ReturnMsg addRole(Role role) {
+        LambdaQueryWrapper<Role> queryWrapper = new LambdaQueryWrapper<Role>().eq(Role::getRole_name, role.getRole_name());
+        Role role1 = roleMapper.selectOne(queryWrapper);
+        if (role1 != null) {
+            throw new RuntimeException("角色名已存在");
+        }
+        roleMapper.insert(role);
+        return ReturnMsg.ok();
+    }
+
+    @Override
+    public ReturnMsg updateRole(Role role) {
+        Role role1 = roleMapper.selectById(role.getId());
+        if (!role1.getRole_name().equals(role.getRole_name())) {
+            LambdaQueryWrapper<Role> queryWrapper = new LambdaQueryWrapper<Role>().eq(Role::getRole_name, role.getRole_name());
+            Role role2 = roleMapper.selectOne(queryWrapper);
+            if (role2 != null) {
+                throw new RuntimeException("角色名已存在");
+            }
+        }
+        roleMapper.updateById(role);
+        return ReturnMsg.ok();
+    }
+
+    @Override
+    public ReturnMsg deleteRole(String roleId) {
+        int num = roleMapper.deleteById(roleId);
+        if (num<1) {
+            return ReturnMsg.fail();
+        }
+        return ReturnMsg.ok();
+    }
+
+    @Override
+    public ReturnMsg batchDelRole(String roleIds) {
+        String[] roleIdArr = StringUtils.split(roleIds, ",");
+        roleMapper.deleteBatchIds(Arrays.asList(roleIdArr));
+        return ReturnMsg.ok();
+    }
+
+    @Override
+    public ReturnMsg removeMember(String userId, String roleId) {
+        int num = userMapper.batchModifyUserRole(new String[]{userId}, "");
+        return ReturnMsg.ok();
+    }
+
+    @Override
+    public ReturnMsg batchRemoveMember(String usersId, String roleId) {
+        String[] usersIdArr = StringUtils.split(usersId, ",");
+        int num = userMapper.batchModifyUserRole(usersIdArr, "");
+        return ReturnMsg.ok();
+    }
+}

+ 19 - 0
src/main/java/com/sky/ioc/service/user/impl/UserServiceImpl.java

@@ -166,4 +166,23 @@ public class UserServiceImpl implements UserService {
             throw new RuntimeException(e);
         }
     }
+
+    @Override
+    public ReturnMsg getUserListByRole(String roleId, String page, String pageSize) {
+        LambdaQueryWrapper<Users> queryWrapper = new LambdaQueryWrapper<>();
+        queryWrapper.eq(Users::getRole, roleId);
+        List<Users> usersList = new ArrayList<>();
+        long total = 0;
+        if (StringUtils.isNoneBlank(page, pageSize)) {
+            PageHelper.startPage(Integer.parseInt(page), Integer.parseInt(pageSize));
+            usersList = userMapper.selectList(queryWrapper);
+            total = PageInfo.of(usersList).getTotal();
+        } else {
+            usersList = userMapper.selectList(queryWrapper);
+            total = usersList.size();
+        }
+        ReturnMsg<List<Users>> ok = ReturnMsg.ok(usersList);
+        ok.setTotal(total);
+        return ok;
+    }
 }

+ 4 - 0
src/main/resources/mapper/RoleMapper.xml

@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
+<mapper namespace="com.sky.ioc.mapper.user.RoleMapper">
+</mapper>