瀏覽代碼

角色相关

marxjaw 3 月之前
父節點
當前提交
17cd7a133c

+ 32 - 0
yt-common/src/main/java/com/ytpm/middle/param/MiddleRoleParam.java

@@ -0,0 +1,32 @@
+package com.ytpm.middle.param;
+
+import com.ytpm.general.BaseParam;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.NoArgsConstructor;
+
+@EqualsAndHashCode(callSuper = true)
+@Data
+@NoArgsConstructor
+@AllArgsConstructor
+@ApiModel("角色表单")
+public class MiddleRoleParam extends BaseParam {
+    /** 角色ID */
+    @ApiModelProperty("角色ID")
+    private int roleId;
+    /** 角色名称 */
+    @ApiModelProperty("角色名称")
+    private String roleName;
+    /** 角色描述 */
+    @ApiModelProperty("角色描述")
+    private String roleDesc;
+    /** 排序 */
+    @ApiModelProperty("排序")
+    private int sort;
+    /** 权限范围 0-全部 1-部门及以下 2-仅部门 3-仅本人 */
+    @ApiModelProperty("权限范围 0-全部 1-部门及以下 2-仅部门 3-仅本人")
+    private int range;
+}

+ 59 - 0
yt-middle/middle-platform/src/main/java/com/ytpm/middle/controller/RoleController.java

@@ -0,0 +1,59 @@
+package com.ytpm.middle.controller;
+
+import com.ytpm.general.Result;
+import com.ytpm.general.ResultTable;
+import com.ytpm.middle.param.MiddleRoleParam;
+import com.ytpm.middle.service.RoleService;
+import com.ytpm.middle.view.MiddleRoleVO;
+import com.ytpm.middle.view.MiddleUserInfo;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.security.core.annotation.AuthenticationPrincipal;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.bind.annotation.RestController;
+import springfox.documentation.annotations.ApiIgnore;
+
+import javax.annotation.Resource;
+
+@RestController
+@RequestMapping("/role")
+public class RoleController {
+
+    @Resource
+    private RoleService roleService;
+
+    @ApiOperation("查询角色列表")
+    @PostMapping("/queryList")
+    public ResultTable<MiddleRoleVO> queryList(@RequestBody MiddleRoleParam param) {
+        return roleService.queryList(param);
+    }
+
+    @ApiOperation("新增角色")
+    @PostMapping("/addOne")
+    public Result<String> addOne(@RequestBody MiddleRoleParam param, @ApiIgnore @AuthenticationPrincipal MiddleUserInfo userInfo) {
+        param.setDefaultParam(userInfo.getUserId());
+        return roleService.addOne(param);
+    }
+
+    @ApiOperation("修改角色")
+    @PostMapping("/updateOne")
+    public Result<String> updateOne(@RequestBody MiddleRoleParam param, @ApiIgnore @AuthenticationPrincipal MiddleUserInfo userInfo) {
+        param.setUpdateParam(userInfo.getUserId());
+        return roleService.updateOne(param);
+    }
+
+    @ApiOperation("删除角色")
+    @GetMapping("/delOne")
+    public Result<String> delOne(@RequestParam(name = "roleId")Integer roleId, @ApiIgnore @AuthenticationPrincipal MiddleUserInfo userInfo) {
+        return roleService.delOne(roleId,userInfo.getUserId());
+    }
+
+    @ApiOperation("角色授权用户")
+    @GetMapping("/grantUserList")
+    public Result<String> grantUserList(@RequestParam(name = "userIds")String userIds,@RequestParam(name = "roleId")Integer roleId,@ApiIgnore @AuthenticationPrincipal MiddleUserInfo userInfo) {
+        return roleService.grantUsers(userIds,roleId,userInfo.getUserId());
+    }
+}

+ 47 - 0
yt-middle/middle-platform/src/main/java/com/ytpm/middle/dao/RoleMapper.java

@@ -0,0 +1,47 @@
+package com.ytpm.middle.dao;
+
+import com.ytpm.middle.model.YtMiddleRole;
+import com.ytpm.middle.param.MiddleRoleParam;
+import com.ytpm.middle.view.MiddleRoleVO;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+@Mapper
+public interface RoleMapper {
+    /**
+     * 查询角色列表
+     */
+    List<MiddleRoleVO> queryList(MiddleRoleParam param);
+
+    /**
+     * 根据名称查询角色
+     */
+    YtMiddleRole selectByName(@Param("roleName") String roleName);
+
+    /**
+     * 主键查询角色
+     */
+    YtMiddleRole selectPrimary(@Param("roleId") Integer roleId);
+
+    /**
+     * 新增角色信息
+     */
+    void insertOne(YtMiddleRole middleRole);
+
+    /**
+     * 修改角色信息
+     */
+    void updateById(YtMiddleRole middleRole);
+
+    /**
+     * 根据角色ID删除关联关系
+     */
+    void delUserRoleById(@Param("roleId") Integer roleId);
+
+    /**
+     * 授权用户角色
+     */
+    void grantRoleToUsers(@Param("roleId") Integer roleId,@Param("operatorId") String operatorId, @Param("userIds") String userIds);
+}

+ 35 - 0
yt-middle/middle-platform/src/main/java/com/ytpm/middle/service/RoleService.java

@@ -0,0 +1,35 @@
+package com.ytpm.middle.service;
+
+import com.ytpm.general.Result;
+import com.ytpm.general.ResultTable;
+import com.ytpm.middle.param.MiddleRoleParam;
+import com.ytpm.middle.view.MiddleRoleVO;
+
+import java.util.List;
+
+public interface RoleService {
+    /**
+     * 查询角色列表
+     */
+    ResultTable<MiddleRoleVO> queryList(MiddleRoleParam param);
+
+    /**
+     * 角色新增
+     */
+    Result<String> addOne(MiddleRoleParam param);
+
+    /**
+     * 角色修改
+     */
+    Result<String> updateOne(MiddleRoleParam param);
+
+    /**
+     * 删除角色
+     */
+    Result<String> delOne(Integer roleId, String userId);
+
+    /**
+     * 角色授权用户
+     */
+    Result<String> grantUsers(String userIds,Integer roleId, String operatorId);
+}

+ 99 - 0
yt-middle/middle-platform/src/main/java/com/ytpm/middle/service/impl/RoleServiceImpl.java

@@ -0,0 +1,99 @@
+package com.ytpm.middle.service.impl;
+
+import com.github.pagehelper.PageHelper;
+import com.github.pagehelper.PageInfo;
+import com.ytpm.general.RepMessage;
+import com.ytpm.general.Result;
+import com.ytpm.general.ResultTable;
+import com.ytpm.middle.dao.MiddleUserMapper;
+import com.ytpm.middle.dao.RoleMapper;
+import com.ytpm.middle.model.YtMiddleRole;
+import com.ytpm.middle.param.MiddleRoleParam;
+import com.ytpm.middle.service.RoleService;
+import com.ytpm.middle.view.MiddleRoleVO;
+import org.springframework.beans.BeanUtils;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+import javax.annotation.Resource;
+import java.util.Objects;
+
+@Service
+public class RoleServiceImpl implements RoleService {
+
+    @Resource
+    private RoleMapper roleMapper;
+    @Resource
+    private MiddleUserMapper middleUserMapper;
+
+    /**
+     * 查询角色列表
+     */
+    @Override
+    public ResultTable<MiddleRoleVO> queryList(MiddleRoleParam param) {
+        PageHelper.startPage(1, 10);
+        return ResultTable.resultTableOk(new PageInfo<MiddleRoleVO>(roleMapper.queryList(param)));
+    }
+
+    /**
+     * 新增角色
+     */
+    @Override
+    public Result<String> addOne(MiddleRoleParam param) {
+        YtMiddleRole old = roleMapper.selectByName(param.getRoleName());
+        if(Objects.nonNull(old)){
+            return Result.resultErr(RepMessage.OBJECT_ALREADY_EXIST);
+        }
+        YtMiddleRole middleRole = new YtMiddleRole();
+        BeanUtils.copyProperties(param, middleRole);
+        roleMapper.insertOne(middleRole);
+        return Result.resultOk(RepMessage.SAVE_SUCCESS);
+    }
+
+    /**
+     * 角色修改
+     */
+    @Override
+    public Result<String> updateOne(MiddleRoleParam param) {
+        YtMiddleRole old = roleMapper.selectPrimary(param.getRoleId());
+        if(Objects.isNull(old)){
+            return Result.resultErr(RepMessage.OBJECT_NOT_EXIST);
+        }
+        YtMiddleRole middleRole = new YtMiddleRole();
+        BeanUtils.copyProperties(param, middleRole);
+        roleMapper.updateById(middleRole);
+        return Result.resultOk(RepMessage.MODIFY_SUCCESS);
+    }
+
+    /**
+     * 删除角色ID
+     */
+    @Override
+    public Result<String> delOne(Integer roleId, String userId) {
+        YtMiddleRole old = roleMapper.selectPrimary(roleId);
+        if(Objects.isNull(old)){
+            return Result.resultOk(RepMessage.DELETE_SUCCESS);
+        }
+        YtMiddleRole middleRole = new YtMiddleRole();
+        middleRole.setRoleId(roleId);
+        middleRole.setAvailable(0);
+        middleRole.setUpdateParam(userId);
+        roleMapper.updateById(middleRole);
+        return Result.resultOk(RepMessage.DELETE_SUCCESS);
+    }
+
+    /**
+     * 角色授权用户
+     */
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public Result<String> grantUsers(String userIds,Integer roleId,String operatorId) {
+        YtMiddleRole old = roleMapper.selectPrimary(roleId);
+        if(Objects.isNull(old)){
+            return Result.resultOk(RepMessage.DELETE_SUCCESS);
+        }
+        roleMapper.delUserRoleById(roleId);
+        roleMapper.grantRoleToUsers(roleId,operatorId,userIds);
+        return Result.resultOk(RepMessage.GRANT_SUCCESS);
+    }
+}

+ 86 - 0
yt-middle/middle-platform/src/main/resources/mapper/RoleMapper.xml

@@ -0,0 +1,86 @@
+<?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.ytpm.middle.dao.RoleMapper">
+    <insert id="insertOne">
+        insert into yt_middle_role
+        (
+         role_name,
+         role_desc,
+         `range`,
+         sort,
+         create_time,
+         create_user_id,
+         available
+        )
+        values
+        (
+            #{roleName},
+            #{roleDesc},
+            #{range},
+            #{sort},
+            #{createTime},
+            #{createUserId},
+            #{available}
+        )
+    </insert>
+    <insert id="grantRoleToUsers">
+        insert into yt_middle_user_role (user_id, role_id, create_time, create_user_id)
+        values
+        <foreach collection="userIds.split(',')" separator="," item="item">
+            (#{item},#{roleId}, now(),#{operatorId})
+        </foreach>
+    </insert>
+    <update id="updateById">
+        update yt_middle_role
+        <set>
+            <if test="roleName != null">
+                role_name = #{roleName},
+            </if>
+            <if test="roleDesc != null">
+                role_desc = #{roleDesc},
+            </if>
+            <if test="range != null">
+                `range` = #{range},
+            </if>
+            <if test="sort != null">
+                sort = #{sort},
+            </if>
+            <if test="updateTime != null">
+                update_time = #{updateTime},
+            </if>
+            <if test="updateUserId != null">
+                update_user_id = #{updateUserId},
+            </if>
+            <if test="available != null">
+                available = #{available}
+            </if>
+        </set>
+        where role_id = #{roleId}
+    </update>
+    <delete id="delUserRoleById">
+        delete from yt_middle_user_role where role_id = #{roleId}
+    </delete>
+
+    <select id="queryList" resultType="com.ytpm.middle.view.MiddleRoleVO">
+        select
+            role_id, role_name, role_desc, `range`, sort, create_time, create_user_id, update_time, update_user_id, available
+        from yt_middle_role
+        <where>
+            <if test="roleName != null and roleName != ''">
+                and role_name like concat('%',#{roleName},'%')
+            </if>
+        </where>
+    </select>
+    <select id="selectByName" resultType="com.ytpm.middle.model.YtMiddleRole">
+        select
+            role_id, role_name, role_desc, `range`, sort, create_time, create_user_id, update_time, update_user_id, available
+        from yt_middle_role
+        where role_name = #{roleName}
+    </select>
+    <select id="selectPrimary" resultType="com.ytpm.middle.model.YtMiddleRole">
+        select
+            role_id, role_name, role_desc, `range`, sort, create_time, create_user_id, update_time, update_user_id, available
+        from yt_middle_role
+        where role_id = #{roleId}
+    </select>
+</mapper>