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<User> getUserWithNoRole() {
|
return mapper.getUserWithNoRole();
|
}
|
|
public List<UserRole> getUserWithRole() {
|
List<UserRole> userRoles = mapper.getUserWithRole();
|
return userRoles;
|
}
|
|
public Map<String,List<UserRole>> getUserWithRoleMap() {
|
HashMap<String, List<UserRole>> map = new HashMap<>();
|
List<UserRole> userRoleList = new LinkedList<>();
|
|
List<UserRole> 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<UserRole> userRoles) {
|
return mapper.insertBatchSomeColumn(userRoles)==userRoles.size();
|
}
|
|
//绑定用户
|
public Response getUsersByRoleId(int roleId){
|
QueryWrapper<User> userQueryWrapper = new QueryWrapper<>();
|
userQueryWrapper.ne("name","superuser");
|
List<User> userList = userMapper.selectList(userQueryWrapper);
|
QueryWrapper<UserRole> queryWrapper= new QueryWrapper();
|
queryWrapper.eq("role_id",roleId);
|
List<UserRole> 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<UserRole> queryWrapper = new QueryWrapper<UserRole>().eq("role_id",roleId);
|
mapper.delete(queryWrapper);
|
if (userIds.length==0){
|
return new Response().setMsg(1,"更新成功");
|
}
|
List<UserRole> 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<PageInfo<User>> getUserByRoleId(int pageNum, int pageSize, int roleId){
|
PageHelper.startPage(pageNum,pageSize);
|
QueryWrapper queryWrapper = new QueryWrapper();
|
queryWrapper.select("user_id").eq("role_id",roleId);
|
List<UserRole> userIds = mapper.selectList(queryWrapper);
|
List<User> userList = new ArrayList<>();
|
for (int i = 0; i < userIds.size(); i++) {
|
User user = userMapper.selectById(userIds.get(i).getUserId());
|
if ("superuser".equals(user.getName())){
|
continue;
|
}
|
userList.add(user);
|
}
|
PageInfo<User> pageInfo = new PageInfo<>(userList);
|
return new Response<PageInfo<User>>().set(1,pageInfo);
|
}
|
}
|