package com.whyc.service; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.github.pagehelper.PageHelper; import com.github.pagehelper.PageInfo; import com.whyc.dto.Response; import com.whyc.mapper.UserMapper; import com.whyc.mapper.UserRoleMapper; import com.whyc.pojo.Role; import com.whyc.pojo.User; import com.whyc.pojo.UserRole; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import javax.annotation.Resource; import java.util.*; /** * 用户对应角色 */ @Service public class UserRoleService { @Resource private UserRoleMapper mapper; @Resource private UserMapper userMapper; public List getUserWithNoRole() { return mapper.getUserWithNoRole(); } public List getUserWithRole() { List userRoles = mapper.getUserWithRole(); return userRoles; } public Map> getUserWithRoleMap() { HashMap> map = new HashMap<>(); List userRoleList = new LinkedList<>(); List userRoles= mapper.getUserWithRoleMap(); for (UserRole temp:userRoles){ String[] userIds = temp.getUserIds().split(","); String[] userNames = temp.getUserNames().split(","); for (int i = 0; i < userIds.length; i++) { UserRole userRole = new UserRole(); userRole.setUser(new User(Integer.parseInt(userIds[i]),userNames[i])); userRole.setRoleId(temp.getRoleId()); userRole.setRoleName(temp.getRoleName()); userRoleList.add(userRole); } map.put(temp.getRoleName(),userRoleList); } return map; } public boolean bindingUserWithRole(int userId,int roleId) { return mapper.insert(new UserRole(userId,roleId))>0; } public boolean bindingUserWithRoleBatch(List userRoles) { return mapper.insertBatchSomeColumn(userRoles)==userRoles.size(); } //绑定用户 public Response getUsersByRoleId(int roleId){ List userList = userMapper.selectList(null); QueryWrapper queryWrapper= new QueryWrapper(); queryWrapper.eq("role_id",roleId); List userRoleList = mapper.selectList(queryWrapper); for (UserRole ur:userRoleList) { for (User u:userList) { if(ur.getUserId().equals(u.getId())){ u.setSelected(true); break; } } } return new Response().set(1,userList); } public Response updateRoleUser(int roleId,int[] userIds){ QueryWrapper queryWrapper = new QueryWrapper().eq("role_id",roleId); mapper.delete(queryWrapper); if (userIds.length==0){ return new Response().setMsg(1,"更新成功"); } List list = new ArrayList<>(); for (int userId:userIds) { UserRole userRole = new UserRole(); userRole.setUserId(userId); userRole.setRoleId(roleId); list.add(userRole); } if (mapper.insertBatchSomeColumn(list)==list.size()){ return new Response().setMsg(1,"更新成功"); }else { return new Response().setMsg(0,"更新失败"); } } public Response> getUserByRoleId(int pageNum, int pageSize, int roleId){ PageHelper.startPage(pageNum,pageSize); QueryWrapper queryWrapper = new QueryWrapper(); queryWrapper.select("user_id").eq("role_id",roleId); List userIds = mapper.selectList(queryWrapper); List userList = new ArrayList<>(); for (UserRole userRole:userIds) { User user = userMapper.selectById(userRole.getUserId()); userList.add(user); } PageInfo pageInfo = new PageInfo<>(userList); return new Response>().set(1,pageInfo); } }