新增分配角色给用户功能
This commit is contained in:
parent
6e00275874
commit
25b7865c12
|
@ -237,7 +237,7 @@ INSERT INTO sys_menu (id, pid, name, url, authority, type, open_style, icon, sor
|
|||
INSERT INTO sys_menu (id, pid, name, url, authority, type, open_style, icon, sort, version, deleted, creator, create_time, updater, update_time) VALUES (23, 12, '角色管理', 'sys/role/index', '', 0, 0, 'icon-team', 3, 0, 0, 10000, now(), 10000, now());
|
||||
INSERT INTO sys_menu (id, pid, name, url, authority, type, open_style, icon, sort, version, deleted, creator, create_time, updater, update_time) VALUES (24, 23, '查询', '', 'sys:role:page', 1, 0, '', 0, 0, 0, 10000, now(), 10000, now());
|
||||
INSERT INTO sys_menu (id, pid, name, url, authority, type, open_style, icon, sort, version, deleted, creator, create_time, updater, update_time) VALUES (25, 23, '新增', '', 'sys:role:save,sys:role:menu,sys:org:list', 1, 0, '', 1, 0, 0, 10000, now(), 10000, now());
|
||||
INSERT INTO sys_menu (id, pid, name, url, authority, type, open_style, icon, sort, version, deleted, creator, create_time, updater, update_time) VALUES (26, 23, '修改', '', 'sys:role:update,sys:role:info,sys:role:menu,sys:org:list', 1, 0, '', 2, 0, 0, 10000, now(), 10000, now());
|
||||
INSERT INTO sys_menu (id, pid, name, url, authority, type, open_style, icon, sort, version, deleted, creator, create_time, updater, update_time) VALUES (26, 23, '修改', '', 'sys:role:update,sys:role:info,sys:role:menu,sys:org:list,sys:user:page', 1, 0, '', 2, 0, 0, 10000, now(), 10000, now());
|
||||
INSERT INTO sys_menu (id, pid, name, url, authority, type, open_style, icon, sort, version, deleted, creator, create_time, updater, update_time) VALUES (27, 23, '删除', '', 'sys:role:delete', 1, 0, '', 3, 0, 0, 10000, now(), 10000, now());
|
||||
INSERT INTO sys_menu (id, pid, name, url, authority, type, open_style, icon, sort, version, deleted, creator, create_time, updater, update_time) VALUES (28, 12, '用户管理', 'sys/user/index', '', 0, 0, 'icon-user', 0, 0, 0, 10000, now(), 10000, now());
|
||||
INSERT INTO sys_menu (id, pid, name, url, authority, type, open_style, icon, sort, version, deleted, creator, create_time, updater, update_time) VALUES (29, 28, '查询', '', 'sys:user:page', 1, 0, '', 0, 0, 0, 10000, now(), 10000, now());
|
||||
|
|
|
@ -9,14 +9,13 @@ import net.maku.framework.security.user.SecurityUser;
|
|||
import net.maku.framework.security.user.UserDetail;
|
||||
import net.maku.system.convert.SysRoleConvert;
|
||||
import net.maku.system.entity.SysRoleEntity;
|
||||
import net.maku.system.service.SysMenuService;
|
||||
import net.maku.system.service.SysRoleDataScopeService;
|
||||
import net.maku.system.service.SysRoleMenuService;
|
||||
import net.maku.system.service.SysRoleService;
|
||||
import net.maku.system.query.SysRoleUserQuery;
|
||||
import net.maku.system.service.*;
|
||||
import net.maku.system.vo.SysMenuVO;
|
||||
import net.maku.system.query.SysRoleQuery;
|
||||
import net.maku.system.vo.SysRoleDataScopeVO;
|
||||
import net.maku.system.vo.SysRoleVO;
|
||||
import net.maku.system.vo.SysUserVO;
|
||||
import org.springframework.security.access.prepost.PreAuthorize;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
|
@ -34,9 +33,11 @@ import java.util.List;
|
|||
@AllArgsConstructor
|
||||
public class SysRoleController {
|
||||
private final SysRoleService sysRoleService;
|
||||
private final SysUserService sysUserService;
|
||||
private final SysRoleMenuService sysRoleMenuService;
|
||||
private final SysRoleDataScopeService sysRoleDataScopeService;
|
||||
private final SysMenuService sysMenuService;
|
||||
private final SysUserRoleService sysUserRoleService;
|
||||
|
||||
@GetMapping("page")
|
||||
@Operation(summary = "分页")
|
||||
|
@ -121,4 +122,31 @@ public class SysRoleController {
|
|||
|
||||
return Result.ok(list);
|
||||
}
|
||||
|
||||
@GetMapping("user/page")
|
||||
@Operation(summary = "角色用户-分页")
|
||||
@PreAuthorize("hasAuthority('sys:role:update')")
|
||||
public Result<PageResult<SysUserVO>> userPage(@Valid SysRoleUserQuery query){
|
||||
PageResult<SysUserVO> page = sysUserService.roleUserPage(query);
|
||||
|
||||
return Result.ok(page);
|
||||
}
|
||||
|
||||
@DeleteMapping("user/{roleId}")
|
||||
@Operation(summary = "删除角色用户")
|
||||
@PreAuthorize("hasAuthority('sys:role:update')")
|
||||
public Result<String> userDelete(@PathVariable("roleId") Long roleId, @RequestBody List<Long> userIdList){
|
||||
sysUserRoleService.deleteByUserIdList(roleId, userIdList);
|
||||
|
||||
return Result.ok();
|
||||
}
|
||||
|
||||
@PostMapping("user/{roleId}")
|
||||
@Operation(summary = "分配角色给用户列表")
|
||||
@PreAuthorize("hasAuthority('sys:role:update')")
|
||||
public Result<String> userSave(@PathVariable("roleId") Long roleId, @RequestBody List<Long> userIdList){
|
||||
sysUserRoleService.saveUserList(roleId, userIdList);
|
||||
|
||||
return Result.ok();
|
||||
}
|
||||
}
|
|
@ -21,6 +21,8 @@ public interface SysUserDao extends BaseDao<SysUserEntity> {
|
|||
|
||||
SysUserEntity getById(@Param("id") Long id);
|
||||
|
||||
List<SysUserEntity> getRoleUserList(Map<String, Object> params);
|
||||
|
||||
default SysUserEntity getByUsername(String username){
|
||||
return this.selectOne(new QueryWrapper<SysUserEntity>().eq("username", username));
|
||||
}
|
||||
|
|
|
@ -0,0 +1,19 @@
|
|||
package net.maku.system.query;
|
||||
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
|
||||
/**
|
||||
* 分配角色查询
|
||||
*
|
||||
* @author 阿沐 babamu@126.com
|
||||
*/
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = false)
|
||||
@Schema(description = "分配角色查询")
|
||||
public class SysRoleUserQuery extends SysUserQuery {
|
||||
@Schema(description = "角色ID")
|
||||
private Long roleId;
|
||||
|
||||
}
|
|
@ -20,6 +20,13 @@ public interface SysUserRoleService extends BaseService<SysUserRoleEntity> {
|
|||
void saveOrUpdate(Long userId, List<Long> roleIdList);
|
||||
|
||||
/**
|
||||
* 分配角色给用户列表
|
||||
* @param roleId 角色ID
|
||||
* @param userIdList 用户ID列表
|
||||
*/
|
||||
void saveUserList(Long roleId, List<Long> userIdList);
|
||||
|
||||
/**
|
||||
* 根据角色id列表,删除用户角色关系
|
||||
* @param roleIdList 角色id
|
||||
*/
|
||||
|
@ -32,6 +39,13 @@ public interface SysUserRoleService extends BaseService<SysUserRoleEntity> {
|
|||
void deleteByUserIdList(List<Long> userIdList);
|
||||
|
||||
/**
|
||||
* 根据角色id、用户id列表,删除用户角色关系
|
||||
* @param roleId 角色id
|
||||
* @param userIdList 用户id列表
|
||||
*/
|
||||
void deleteByUserIdList(Long roleId, List<Long> userIdList);
|
||||
|
||||
/**
|
||||
* 角色ID列表
|
||||
* @param userId 用户ID
|
||||
*/
|
||||
|
|
|
@ -3,6 +3,7 @@ package net.maku.system.service;
|
|||
import net.maku.framework.common.page.PageResult;
|
||||
import net.maku.framework.common.service.BaseService;
|
||||
import net.maku.system.entity.SysUserEntity;
|
||||
import net.maku.system.query.SysRoleUserQuery;
|
||||
import net.maku.system.query.SysUserQuery;
|
||||
import net.maku.system.vo.SysUserVO;
|
||||
|
||||
|
@ -30,4 +31,9 @@ public interface SysUserService extends BaseService<SysUserEntity> {
|
|||
*/
|
||||
void updatePassword(Long id, String newPassword);
|
||||
|
||||
/**
|
||||
* 分配角色,用户列表
|
||||
*/
|
||||
PageResult<SysUserVO> roleUserPage(SysRoleUserQuery query);
|
||||
|
||||
}
|
||||
|
|
|
@ -47,6 +47,19 @@ public class SysUserRoleServiceImpl extends BaseServiceImpl<SysUserRoleDao, SysU
|
|||
}
|
||||
|
||||
@Override
|
||||
public void saveUserList(Long roleId, List<Long> userIdList) {
|
||||
List<SysUserRoleEntity> list = userIdList.stream().map(userId -> {
|
||||
SysUserRoleEntity entity = new SysUserRoleEntity();
|
||||
entity.setUserId(userId);
|
||||
entity.setRoleId(roleId);
|
||||
return entity;
|
||||
}).collect(Collectors.toList());
|
||||
|
||||
// 批量新增
|
||||
saveBatch(list);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void deleteByRoleIdList(List<Long> roleIdList) {
|
||||
remove(new QueryWrapper<SysUserRoleEntity>().in("role_id", roleIdList));
|
||||
}
|
||||
|
@ -57,6 +70,11 @@ public class SysUserRoleServiceImpl extends BaseServiceImpl<SysUserRoleDao, SysU
|
|||
}
|
||||
|
||||
@Override
|
||||
public void deleteByUserIdList(Long roleId, List<Long> userIdList) {
|
||||
remove(new QueryWrapper<SysUserRoleEntity>().eq("role_id", roleId).in("user_id", userIdList));
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<Long> getRoleIdList(Long userId) {
|
||||
return baseMapper.getRoleIdList(userId);
|
||||
}
|
||||
|
|
|
@ -10,6 +10,7 @@ import net.maku.system.convert.SysUserConvert;
|
|||
import net.maku.system.dao.SysUserDao;
|
||||
import net.maku.system.entity.SysUserEntity;
|
||||
import net.maku.system.enums.SuperAdminEnum;
|
||||
import net.maku.system.query.SysRoleUserQuery;
|
||||
import net.maku.system.service.SysUserPostService;
|
||||
import net.maku.system.service.SysUserRoleService;
|
||||
import net.maku.system.service.SysUserService;
|
||||
|
@ -60,6 +61,8 @@ public class SysUserServiceImpl extends BaseServiceImpl<SysUserDao, SysUserEntit
|
|||
return params;
|
||||
}
|
||||
|
||||
|
||||
|
||||
@Override
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public void save(SysUserVO vo) {
|
||||
|
@ -135,4 +138,20 @@ public class SysUserServiceImpl extends BaseServiceImpl<SysUserDao, SysUserEntit
|
|||
updateById(user);
|
||||
}
|
||||
|
||||
@Override
|
||||
public PageResult<SysUserVO> roleUserPage(SysRoleUserQuery query) {
|
||||
// 查询参数
|
||||
Map<String, Object> params = getParams(query);
|
||||
params.put("roleId", query.getRoleId());
|
||||
|
||||
// 分页查询
|
||||
IPage<SysUserEntity> page = getPage(query);
|
||||
params.put(Constant.PAGE, page);
|
||||
|
||||
// 数据列表
|
||||
List<SysUserEntity> list = baseMapper.getRoleUserList(params);
|
||||
|
||||
return new PageResult<>(SysUserConvert.INSTANCE.convertList(list), page.getTotal());
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -22,4 +22,18 @@
|
|||
where t1.id = #{id} and t1.deleted = 0
|
||||
</select>
|
||||
|
||||
<select id="getRoleUserList" resultType="net.maku.system.entity.SysUserEntity">
|
||||
select t1.* from sys_user t1 left join sys_user_role t2 on t1.id = t2.user_id
|
||||
where t1.deleted = 0 and t2.deleted = 0 and t2.role_id = #{roleId}
|
||||
<if test="username != null and username.trim() != ''">
|
||||
and t1.username = #{username}
|
||||
</if>
|
||||
<if test="mobile != null and mobile.trim() != ''">
|
||||
and t1.mobile = #{mobile}
|
||||
</if>
|
||||
<if test="gender != null">
|
||||
and t1.gender = #{gender}
|
||||
</if>
|
||||
</select>
|
||||
|
||||
</mapper>
|
Loading…
Reference in New Issue
Block a user