接着上次用户管理模块的分享,角色管理模块呢,他中间的内容其实和用户是一样的,但是有一点不同就是,要给用户分配角色呀,所以就是个问题了,接下来,,,,害,码不太清楚,就直接上主要的代码吧!!!!上分享:
1.在controller中,我们需要在定义一个形参“tag”,来判断我们查询的是已分配的用户还是未分配的用户:
@ResponseBody
@ApiOperation(value = "查询已经分配的用户",notes = "")
@RequestMapping(value = "/selectUserByRoleId")
public Result selectUserByRoleId(@RequestParam(required = false)String roleId,@RequestParam(required = false) String tag){
if (tag==null){
tag="1";
}
UserRoleEntity userRoleEntity = new UserRoleEntity();
userRoleEntity.setRoleId(roleId);
userRoleEntity.setTag(tag);
return roleService.selectUserByRoleId(userRoleEntity);
}
2.首先在实现接口类(RoleUserServiceimpl)中,就要开始判断:
@Override
public Result selectUserByRoleId(UserRoleEntity userRoleEntity) {
List<Object> result = null;
if (userRoleEntity.getTag().equals("0")) {
List<UserRoleEntity> userId = roleMapper.selectUserId(userRoleEntity);
String userId_1 = "";
for (UserRoleEntity i : userId) {
userId_1 += i.getUserId() + ',';
}
userRoleEntity.setUserId(userId_1);
result = roleMapper.selectNoUserIdByRoleId(userRoleEntity);
}else {
result=roleMapper.selectUserIdByRoleId(userRoleEntity);
}
return Result.success(result);
}
3.在xml文件中,就要写三条语句:
<!--查询角色已经分配的用户-->
<select id="selectUserIdByRoleId" parameterType="com.itheima.entity.UserRoleEntity" resultType="com.itheima.entity.UserEntity">
select
sys_user.id, sys_user.`name`, sys_user.depId, sys_user.account
from
sys_user
inner JOIN
user_role on sys_user.id = user_role.userId
where
sys_user.isDeleted = 0
and
user_role.roleId= #{roleId};
</select>
<!--查询角色未分配的用户-->
<select id="selectNoUserIdByRoleId" resultType="com.itheima.entity.UserEntity" parameterType="com.itheima.entity.UserRoleEntity">
select sys_user.id, sys_user.`name`, sys_user.depId, sys_user.account
from sys_user
where sys_user.isDeleted = 0 and !find_in_set(id,#{userId});
</select>
<!--查询角色的用户id-->
<select id="selectUserId" parameterType="com.itheima.entity.UserRoleEntity"
resultType="com.itheima.entity.UserRoleEntity">
select userId
from user_role
where roleId = #{roleId};
</select>