heheng
3 天以前 826976ff37a83fc8fec64aeb19727d69afc6fcfa
修改人员角色绑定
已修改6个文件
116 ■■■■■ 文件已修改
multi-admin/src/main/java/com/gkhy/exam/admin/controller/system/SysMenuController.java 22 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
multi-admin/src/main/java/com/gkhy/exam/admin/controller/system/SysRoleController.java 34 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
multi-common/src/main/java/com/gkhy/exam/common/domain/entity/SysUser.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
multi-common/src/main/java/com/gkhy/exam/common/domain/model/LoginUserDetails.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
multi-system/src/main/java/com/gkhy/exam/system/service/impl/SysUserServiceImpl.java 40 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
multi-system/src/main/resources/mapper/system/SysUserMapper.xml 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
multi-admin/src/main/java/com/gkhy/exam/admin/controller/system/SysMenuController.java
@@ -7,6 +7,10 @@
import com.gkhy.exam.common.domain.entity.SysMenu;
import com.gkhy.exam.common.utils.StringUtils;
import com.gkhy.exam.system.service.ISysMenuService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.validation.annotation.Validated;
@@ -24,6 +28,7 @@
 * 
 * @author expert
 */
@Api(tags = "菜单信息")
@RestController
@RequestMapping("/system/menu")
public class SysMenuController
@@ -35,6 +40,7 @@
     * 获取菜单列表
     */
    //@PreAuthorize("hasAnyAuthority('system:menu:list')")
    @ApiOperation(value = "获取菜单列表")
    @GetMapping("/list")
    public CommonResult list(SysMenu menu)
    {
@@ -46,6 +52,10 @@
     * 根据菜单编号获取详细信息
     */
    //@PreAuthorize("hasAnyAuthority('system:menu:query')")
    @ApiOperation(value = "根据菜单编号获取详细信息")
    @ApiImplicitParams({
            @ApiImplicitParam(paramType = "query", name = "menuId", dataType = "int", required = true, value = "menuId"),
    })
    @GetMapping(value = "/{menuId}")
    public CommonResult getInfo(@PathVariable Long menuId)
    {
@@ -56,6 +66,7 @@
     * 获取菜单下拉树列表
     */
    @GetMapping("/treeselect")
    @ApiOperation(value = "获取菜单下拉树列表")
    public CommonResult treeselect(SysMenu menu)
    {
        List<SysMenu> menus = menuService.selectMenuList(menu, getUserId());
@@ -65,6 +76,10 @@
    /**
     * 加载对应角色菜单列表树
     */
    @ApiOperation(value = "加载对应角色菜单列表树")
    @ApiImplicitParams({
            @ApiImplicitParam(paramType = "query", name = "roleId", dataType = "int", required = true, value = "roleId"),
    })
    @GetMapping(value = "/roleMenuTreeselect/{roleId}")
    public CommonResult roleMenuTreeselect(@PathVariable("roleId") Long roleId)
    {
@@ -79,6 +94,7 @@
     * 新增菜单
     */
    //@PreAuthorize("hasAnyAuthority('system:menu:add')")
    @ApiOperation(value = "新增菜单")
    @PostMapping
    public CommonResult add(@Validated @RequestBody SysMenu menu)
    {
@@ -100,6 +116,7 @@
    //@PreAuthorize("hasAnyAuthority('system:menu:edit')")
    @PutMapping
    @ApiOperation(value = "修改菜单")
    public CommonResult edit(@Validated @RequestBody SysMenu menu)
    {
        if (!menuService.checkMenuNameUnique(menu))
@@ -122,7 +139,12 @@
     * 删除菜单
     */
    //@PreAuthorize("hasAnyAuthority('system:menu:remove')")
    @ApiOperation(value = "删除菜单")
    @ApiImplicitParams({
            @ApiImplicitParam(paramType = "query", name = "menuId", dataType = "int", required = true, value = "menuId"),
    })
    @DeleteMapping("/{menuId}")
    public CommonResult remove(@PathVariable("menuId") Long menuId)
    {
        if (menuService.hasChildByMenuId(menuId))
multi-admin/src/main/java/com/gkhy/exam/admin/controller/system/SysRoleController.java
@@ -16,6 +16,10 @@
import com.gkhy.exam.system.domain.SysUserRole;
import com.gkhy.exam.system.service.ISysRoleService;
import com.gkhy.exam.system.service.SysUserService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.validation.annotation.Validated;
@@ -35,6 +39,7 @@
 * 
 * @author expert
 */
@Api(tags = "角色信息")
@RestController
@RequestMapping("/system/role")
public class SysRoleController
@@ -56,6 +61,7 @@
    // @PreAuthorize("hasAnyAuthority('system:role:list')")
    @GetMapping("/list")
    @ApiOperation(value = "获取角色列表")
    public CommonResult list(SysRole role)
    {
@@ -76,7 +82,11 @@
     * 根据角色编号获取详细信息
     */
    //@PreAuthorize("hasAnyAuthority('system:role:query')")
    @ApiImplicitParams({
            @ApiImplicitParam(paramType = "query", name = "roleId", dataType = "int", required = true, value = "roleId"),
    })
    @GetMapping(value = "/{roleId}")
    @ApiOperation(value = "根据角色编号获取详细信息")
    public CommonResult getInfo(@PathVariable Long roleId)
    {
        roleService.checkRoleDataScope(roleId);
@@ -89,6 +99,7 @@
    //@PreAuthorize("hasAnyAuthority('system:role:add')")
    //@Log(title = "角色管理", businessType = BusinessType.INSERT)
    @PostMapping
    @ApiOperation(value = "新增角色")
    public CommonResult add(@Validated @RequestBody SysRole role)
    {
        if (!roleService.checkRoleNameUnique(role))
@@ -110,6 +121,7 @@
    //@PreAuthorize("hasAnyAuthority('system:role:edit')")
    //@Log(title = "角色管理", businessType = BusinessType.UPDATE)
    @PutMapping
    @ApiOperation(value = "修改保存角色")
    public CommonResult edit(@Validated @RequestBody SysRole role)
    {
        roleService.checkRoleAllowed(role);
@@ -146,6 +158,7 @@
    //@PreAuthorize("hasAnyAuthority('system:role:edit')")
    //@Log(title = "角色管理", businessType = BusinessType.UPDATE)
    @PutMapping("/dataScope")
    @ApiOperation(value = "修改保存数据权限")
    public CommonResult dataScope(@RequestBody SysRole role)
    {
        roleService.checkRoleAllowed(role);
@@ -159,6 +172,7 @@
    //@PreAuthorize("hasAnyAuthority('system:role:edit')")
    // @Log(title = "角色管理", businessType = BusinessType.UPDATE)
    @PutMapping("/changeStatus")
    @ApiOperation(value = "状态修改")
    public CommonResult changeStatus(@RequestBody SysRole role)
    {
        roleService.checkRoleAllowed(role);
@@ -172,6 +186,10 @@
     */
    //@PreAuthorize("hasAnyAuthority('system:role:remove')")
    @Log(title = "角色管理", businessType = BusinessType.DELETE)
    @ApiOperation(value = "删除角色")
    @ApiImplicitParams({
            @ApiImplicitParam(paramType = "query", name = "roleIds", dataType = "array", required = true, value = "roleIds"),
    })
    @DeleteMapping("/{roleIds}")
    public CommonResult remove(@PathVariable Long[] roleIds)
    {
@@ -182,6 +200,7 @@
     * 获取角色选择框列表
     */
    //@PreAuthorize("hasAnyAuthority('system:role:query')")
    @ApiOperation(value = "获取角色选择框列表")
    @GetMapping("/optionselect")
    public CommonResult optionselect()
    {
@@ -192,6 +211,7 @@
     * 查询已分配用户角色列表
     */
    //@PreAuthorize("hasAnyAuthority('system:role:list')")
    @ApiOperation(value = "查询已分配用户角色列表")
    @GetMapping("/authUser/allocatedList")
    public CommonResult allocatedList(SysUser user)
    {
@@ -205,6 +225,8 @@
     */
    //@PreAuthorize("hasAnyAuthority('system:role:list')")
    @GetMapping("/authUser/unallocatedList")
    @ApiOperation(value = "查询未分配用户角色列表")
    public CommonResult unallocatedList(SysUser user)
    {
        startPage();
@@ -218,6 +240,7 @@
    //@PreAuthorize("hasAnyAuthority('system:role:edit')")
    @Log(title = "角色管理", businessType = BusinessType.GRANT)
    @PutMapping("/authUser/cancel")
    @ApiOperation(value = "取消授权用户")
    public CommonResult cancelAuthUser(@RequestBody SysUserRole userRole)
    {
        return CommonResult.success(roleService.deleteAuthUser(userRole));
@@ -229,6 +252,11 @@
    //@PreAuthorize("hasAnyAuthority('system:role:edit')")
    @Log(title = "角色管理", businessType = BusinessType.GRANT)
    @PutMapping("/authUser/cancelAll")
    @ApiOperation(value = "批量取消授权用户")
    @ApiImplicitParams({
            @ApiImplicitParam(paramType = "query", name = "userIds", dataType = "array", required = true, value = "用户id数组"),
            @ApiImplicitParam(paramType = "query", name = "roleId", dataType = "int", required = true, value = "角色id"),
    })
    public CommonResult cancelAuthUserAll(Long roleId, Long[] userIds)
    {
        return CommonResult.success(roleService.deleteAuthUsers(roleId, userIds));
@@ -240,6 +268,11 @@
    //@PreAuthorize("hasAnyAuthority('system:role:edit')")
    @Log(title = "角色管理", businessType = BusinessType.GRANT)
    @PutMapping("/authUser/selectAll")
    @ApiOperation(value = "批量选择用户授权")
    @ApiImplicitParams({
            @ApiImplicitParam(paramType = "query", name = "userIds", dataType = "array", required = true, value = "用户id数组"),
            @ApiImplicitParam(paramType = "query", name = "roleId", dataType = "int", required = true, value = "角色id"),
    })
    public CommonResult selectAuthUserAll(Long roleId, Long[] userIds)
    {
        roleService.checkRoleDataScope(roleId);
@@ -251,6 +284,7 @@
     */
    //@PreAuthorize("hasAnyAuthority('system:role:query')")
    @GetMapping(value = "/deptTree/{roleId}")
    @ApiOperation(value = "获取对应角色部门树列表")
    public CommonResult deptTree(@PathVariable("roleId") Long roleId)
    {
        Map<String,Object> ajax = new HashMap<>();
multi-common/src/main/java/com/gkhy/exam/common/domain/entity/SysUser.java
@@ -16,6 +16,7 @@
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.util.List;
import java.util.Set;
import static com.fasterxml.jackson.annotation.JsonInclude.Include.NON_NULL;
@@ -164,4 +165,8 @@
    @TableField(exist = false)
    private List<SysRole> roles;
//    @TableField(exist = false)
//    @ApiModelProperty("角色ids")
//    private Set<Long> roleIds;
}
multi-common/src/main/java/com/gkhy/exam/common/domain/model/LoginUserDetails.java
@@ -24,6 +24,7 @@
    private List<GrantedAuthority> authorities;
    public LoginUserDetails(SysUser user,List<GrantedAuthority> authorities) {
        this.user = user;
        this.authorities=authorities;
multi-system/src/main/java/com/gkhy/exam/system/service/impl/SysUserServiceImpl.java
@@ -7,6 +7,7 @@
import com.gkhy.exam.common.api.CommonPage;
import com.gkhy.exam.common.constant.CacheConstant;
import com.gkhy.exam.common.constant.UserConstant;
import com.gkhy.exam.common.domain.entity.SysRole;
import com.gkhy.exam.common.domain.entity.SysUser;
import com.gkhy.exam.common.enums.UserTypeEnum;
import com.gkhy.exam.common.exception.ApiException;
@@ -26,10 +27,7 @@
import org.springframework.transaction.annotation.Transactional;
import javax.validation.Validator;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.*;
import java.util.concurrent.TimeUnit;
@@ -153,12 +151,8 @@
        user.setCreateBy(SecurityUtils.getUsername());
        user.setPassword(SecurityUtils.encryptPassword(Base64.decodeStr(user.getPassword())));
        int row=baseMapper.insert(user);
        List<SysUserRole> userRoleList = new ArrayList<>();
        SysUserRole sysUserRole = new SysUserRole();
        sysUserRole.setUserId(user.getId());
        sysUserRole.setRoleId(2L);
        userRoleList.add(sysUserRole);
        userRoleMapper.batchUserRole(userRoleList);
        batchSaveRole(user.getRoles(),user.getId(),false);
        exStudentService.insertStudent(exStudent);
@@ -168,6 +162,30 @@
        return row;
    }
    public void batchSaveRole(List<SysRole> roleIds, Long userId, boolean isUpdate){
        if (isUpdate){
            userRoleMapper.deleteUserRoleByUserId(userId);
        }
        List<SysUserRole> userRoleList = new ArrayList<>();
        if(roleIds != null && !roleIds.isEmpty()){
            for (SysRole roleId : roleIds) {
                SysUserRole sysUserRole = new SysUserRole();
                sysUserRole.setUserId(userId);
                sysUserRole.setRoleId(roleId.getRoleId());
                userRoleList.add(sysUserRole);
            }
        }else {
            SysUserRole sysUserRole = new SysUserRole();
            sysUserRole.setUserId(userId);
            sysUserRole.setRoleId(2L);
            userRoleList.add(sysUserRole);
        }
        userRoleMapper.batchUserRole(userRoleList);
    }
    @Override
    public int updateUser(SysUser user) {
        checkRequestData(user);
@@ -175,6 +193,8 @@
        user.setUpdateBy(SecurityUtils.getUsername());
        user.setPassword(null);
        int row=baseMapper.updateById(user);
        batchSaveRole(user.getRoles(),user.getId(),true);
        if(row<1){
            throw new ApiException("更新用户信息失败");
        }
multi-system/src/main/resources/mapper/system/SysUserMapper.xml
@@ -39,6 +39,12 @@
    </resultMap>
    <resultMap id="SysUserVoResult" type="com.gkhy.exam.common.domain.entity.SysUser" extends="SysUserResult">
        <collection property="roles" ofType="com.gkhy.exam.common.domain.entity.SysRole" column="userId = id" select="getReponseData">
            <result     property="roleId"     column="role_id"     />
            <result property="roleName"     column="role_name"     />
        </collection>
    </resultMap>
    <delete id="deleteUserById" parameterType="java.lang.Long">
@@ -51,7 +57,12 @@
        where username=#{username} and del_flag=0 limit 1
    </select>
    <select id="userList"  resultMap="SysUserResult">
    <select id="getReponseData" resultType="com.gkhy.exam.common.domain.entity.SysRole">
        select r.role_name,r.role_id from  sys_user_role ur
        left join sys_role r on r.role_id=ur.role_id
        where ur.user_id = #{userId}
    </select>
    <select id="userList"  resultMap="SysUserVoResult">
        select u.id,u.username,u.name,u.user_type,u.phone,u.parent_id,u.company_id,u.sex,u.status,u.del_flag,u.version,
               u.login_ip,u.login_date,u.create_by,u.create_time,u.remark,c.name as company_name,su.name as parent_name,
                u.dept_id,d.dept_name,u.duty,u.post,u.id_card,u.entry_time,u.resign_time,u.person_type,u.age,u.positional
@@ -59,6 +70,7 @@
        left join sys_company c on c.id=u.company_id
        left join sys_user su on su.id=u.parent_id and u.parent_id!=0
        left join sys_dept  d on d.dept_id=u.dept_id
        <where>
            and u.del_flag = 0
            <if test="username != null and username != ''">