Browse Source

一个用户多个角色名称以字符串形式返回

master
Jinyuanyuan 3 months ago
parent
commit
c0cf7e1f3f
  1. 9
      easy-sys/src/main/java/com/easy/admin/auth/dao/mapping/SysUserMapper.xml
  2. 26
      easy-sys/src/main/java/com/easy/admin/auth/model/UserInfoResponseOV.java
  3. 3
      easy-sys/src/main/java/com/easy/admin/auth/service/SysUserService.java
  4. 35
      easy-sys/src/main/java/com/easy/admin/auth/service/impl/SysUserServiceImpl.java

9
easy-sys/src/main/java/com/easy/admin/auth/dao/mapping/SysUserMapper.xml

@ -143,7 +143,8 @@
and t.workplace like #{tempStr3}
</if>
<if test="request.role!=null and request.role!=''">
and id in (select ur.user_id from sys_user_role ur where ur.role_id=#{request.role})
<bind name="tempStr4" value="'%' + request.role + '%'" />
and t.id in (select ur.user_id from sys_user_role ur left join sys_role r on ur.role_id=r.id where r.name like #{tempStr4})
</if>
</where>
</select>
@ -170,7 +171,8 @@
and t.workplace like #{tempStr3}
</if>
<if test="request.role!=null and request.role!=''">
and t.id in (select ur.user_id from sys_user_role ur where ur.role_id=#{request.role})
<bind name="tempStr4" value="'%' + request.role + '%'" />
and t.id in (select ur.user_id from sys_user_role ur left join sys_role r on ur.role_id=r.id where r.name like #{tempStr4})
</if>
</where>
</select>
@ -201,7 +203,8 @@
and t.workplace like #{tempStr4}
</if>
<if test="request.role!=null and request.role!=''">
and t.id in (select ur.user_id from sys_user_role ur where ur.role_id=#{request.role})
<bind name="tempStr4" value="'%' + request.role + '%'" />
and t.id in (select ur.user_id from sys_user_role ur left join sys_role r on ur.role_id=r.id where r.name like #{tempStr4})
</if>
</where>
</select>

26
easy-sys/src/main/java/com/easy/admin/auth/model/UserInfoResponseOV.java

@ -0,0 +1,26 @@
package com.easy.admin.auth.model;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import lombok.Data;
import java.util.List;
@Data
@JsonIgnoreProperties(value = {"handler"})
public class UserInfoResponseOV {
private String id;
private String nickname;
private String sex;
private String phoneNumber;
private String workplace;
private List<RoleOV> role;
private String roleName;
}

3
easy-sys/src/main/java/com/easy/admin/auth/service/SysUserService.java

@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
import com.easy.admin.auth.model.UserInfoRequest;
import com.easy.admin.auth.model.UserInfoResponse;
import com.easy.admin.auth.model.UserInfoResponseOV;
import com.easy.admin.common.core.common.pagination.Page;
import com.easy.admin.auth.model.SysUser;
@ -187,6 +188,6 @@ public interface SysUserService extends IService<SysUser> {
List<HashMap<String,String>> getUserDictByRoles(String roles);
IPage<UserInfoResponse> getUsersByCondition(String condition, UserInfoRequest request, Integer pageNo, Integer pageSize);
IPage<UserInfoResponseOV> getUsersByCondition(String condition, UserInfoRequest request, Integer pageNo, Integer pageSize);
}

35
easy-sys/src/main/java/com/easy/admin/auth/service/impl/SysUserServiceImpl.java

@ -13,10 +13,7 @@ import com.easy.admin.auth.common.constant.SysRoleConst;
import com.easy.admin.auth.common.status.SysDeptStatus;
import com.easy.admin.auth.common.status.SysUserStatus;
import com.easy.admin.auth.dao.SysUserMapper;
import com.easy.admin.auth.model.SysUser;
import com.easy.admin.auth.model.SysUserRole;
import com.easy.admin.auth.model.UserInfoRequest;
import com.easy.admin.auth.model.UserInfoResponse;
import com.easy.admin.auth.model.*;
import com.easy.admin.auth.service.SysUserRoleService;
import com.easy.admin.auth.service.SysUserService;
import com.easy.admin.common.core.common.pagination.Page;
@ -32,11 +29,14 @@ import com.easy.admin.util.PasswordUtil;
import com.easy.admin.util.ShiroUtil;
import com.easy.admin.common.core.util.ToolUtil;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.*;
import java.util.stream.Collectors;
import java.util.stream.Stream;
/**
* 用户管理
@ -392,35 +392,46 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
}
@Override
public IPage<UserInfoResponse> getUsersByCondition(String condition, UserInfoRequest request, Integer pageNo, Integer pageSize) {
public IPage<UserInfoResponseOV> getUsersByCondition(String condition, UserInfoRequest request, Integer pageNo, Integer pageSize) {
Page page=new Page<>(pageNo,pageSize);
IPage<UserInfoResponse> result=new Page<>();
IPage<UserInfoResponse> UserInfoPage=new Page<>();
if(condition.equals("all")){
//信息化保障团队,显示所有人员信息
result=userMapper.getAllUserPage(page, request);
UserInfoPage=userMapper.getAllUserPage(page, request);
} else if (condition.equals("task")) {
//任务牵头处室人员信息
condition="任务牵头处室";
result = userMapper.getUserPageByCondition(page,request,condition);
UserInfoPage = userMapper.getUserPageByCondition(page,request,condition);
}else if (condition.equals("team")){
//信息化保障团队人员
condition="信息化保障团队";
String condition1="总咨询单位";
result=userMapper.getUserPageByConditions(page,request,condition,condition1);
UserInfoPage=userMapper.getUserPageByConditions(page,request,condition,condition1);
} else if (condition.equals("guazhi")) {
//挂职人员
condition="信息化保障团队";
result = userMapper.getUserPageByCondition(page,request,condition);
UserInfoPage = userMapper.getUserPageByCondition(page,request,condition);
}else if (condition.equals("consult")) {
//咨询人员
condition="总咨询单位";
result = userMapper.getUserPageByCondition(page,request,condition);
UserInfoPage = userMapper.getUserPageByCondition(page,request,condition);
}else if (condition.equals("contact")) {
//项目联系人
condition="项目联系人";
result = userMapper.getUserPageByCondition(page,request,condition);
UserInfoPage = userMapper.getUserPageByCondition(page,request,condition);
}
IPage<UserInfoResponseOV> result=new Page<>();
List<UserInfoResponse> collect = UserInfoPage.getRecords().stream().collect(Collectors.toList());
List<UserInfoResponseOV> newRecords=new ArrayList<>();
for(UserInfoResponse c:collect){
List<String> r = c.getRole().stream().map(x -> x.getRoleName()).collect(Collectors.toList());
UserInfoResponseOV res=new UserInfoResponseOV();
BeanUtils.copyProperties(c,res);
res.setRoleName(String.join(",",r));
newRecords.add(res);
}
result.setRecords(newRecords).setTotal(UserInfoPage.getTotal()).setCurrent(UserInfoPage.getCurrent()).setSize(UserInfoPage.getSize());
return result;
}

Loading…
Cancel
Save