Commit 93673907 authored by 赵啸非's avatar 赵啸非

更新用户列表查询携带角色

parent 79442259
......@@ -147,6 +147,38 @@ data|Object|数据对象|-
}
```
### 首页
**请求URL:** login/index
**请求方式:** POST
**内容类型:** application/json;charset=utf-8
**简要描述:** 用户首页
**请求参数:**
参数名称|类型|备注|必填|其它
---|---|---|---|---
**请求样例:**
```
```
**响应参数:**
参数名称 |参数类型|备注|其它
---|---|---|---
code|Integer|结果码(-1.失败,1.成功)|-
msg|String|消息|-
data|Object|数据对象|同登录返回数据一样,包含用户信息及菜单
**响应消息样例:**
```
```
### 登出
**请求URL:** login/logout
......@@ -177,17 +209,14 @@ msg|String|消息|-
**响应消息样例:**
```
```
### 上传附件
**请求URL:** file/commonupload
**请求方式:** POST
**内容类型:** multipart/form-data
**简要描述:** 用户上传附件
......@@ -210,8 +239,6 @@ Content-Type: multipart/form-data
```
**响应参数:**
**响应消息样例:**
```
......@@ -256,10 +283,8 @@ data|object|数据对象
 last_page|Integer|总页数
 current_page|Integer|当前页
 data|array|结果集列表|数组
  id|Long|用户ID,主键,自增长
  id|Long|用户ID
  loginName|String|登录名
  loginPwd|String|登录密码,使用md5双次加密
  loginLimitAddress|String|登录限制地址,多个IP地址用逗号分隔,可以使用IP段匹配,如:172.17.*非空:则只能该值内的IP可以登录
  realName|String|用户名
  mobile|String|用户手机号
  phone|String|用户联系电话
......
......@@ -7,6 +7,7 @@ import java.util.ArrayList;
import com.alibaba.fastjson.annotation.JSONField;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.mortals.framework.annotation.Excel;
import com.mortals.framework.ap.SysConstains;
import com.mortals.framework.model.BaseEntityLong;
import com.mortals.framework.service.IUser;
import com.mortals.xhx.module.user.model.vo.UserVo;
......@@ -143,12 +144,12 @@ public class UserEntity extends UserVo implements IUser {
@Override
public boolean isAdmin() {
return false;
return super.getId() == null ? false : super.getId().longValue() == SysConstains.ADMIN_ID;
}
@Override
public boolean isSystemUser() {
return false;
return userType != null && userType.intValue() == 0;
}
@Override
......
......@@ -31,6 +31,14 @@ public class UserVo extends BaseEntityLong {
* 过期时间
*/
private Long expireTime;
/**
* 角色id
*/
private String roleId;
/**
* 角色名称
*/
private String roleName;
/**
* 菜单列表
......
......@@ -49,36 +49,6 @@ public interface UserService extends ICRUDService<UserEntity,Long>{
*/
boolean existUser(String loginName, Long userId) throws AppException;
/**
* 通过登录用户获取菜单功能权限
*
* @param user
* @return
*/
List<MenuEntity> findOutlookBarList(IUser user);
/**
* 查询用户所有有权限的菜单ID
*
* @param userEntity
* @return
*/
Set<Long> findAllAuthIds(UserEntity userEntity) throws AppException;
/**
* 查询用户记录
*
* @param platformId
* @param params
* @param currPage
* @param prePageResult
* @return
* @throws AppException
*/
Result<UserEntity> find(Long platformId, UserEntity params, int currPage, int prePageResult) throws AppException;
/**
* 用户修改密码
*
......
package com.mortals.xhx.module.user.service.impl;
import com.mortals.framework.ap.SysConstains;
import com.mortals.framework.common.code.UserType;
import com.mortals.framework.exception.AppException;
import com.mortals.framework.model.Context;
import com.mortals.framework.model.PageInfo;
......@@ -11,14 +12,21 @@ import com.mortals.framework.util.SecurityUtil;
import com.mortals.framework.util.StringUtils;
import com.mortals.xhx.module.menu.model.MenuEntity;
import com.mortals.xhx.module.menu.service.MenuService;
import com.mortals.xhx.module.role.model.RoleQuery;
import com.mortals.xhx.module.role.model.RoleUserEntity;
import com.mortals.xhx.module.role.model.RoleUserQuery;
import com.mortals.xhx.module.role.service.RoleService;
import com.mortals.xhx.module.role.service.RoleUserService;
import com.mortals.xhx.module.user.dao.UserDao;
import com.mortals.xhx.module.user.model.UserEntity;
import com.mortals.xhx.module.user.model.UserQuery;
import com.mortals.xhx.module.user.service.UserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.util.ObjectUtils;
import java.util.*;
import java.util.stream.Collectors;
/**
* UserService
......@@ -31,6 +39,28 @@ import java.util.*;
public class UserServiceImpl extends AbstractCRUDServiceImpl<UserDao, UserEntity, Long> implements UserService {
@Autowired
private MenuService menuService;
@Autowired
private RoleUserService roleUserService;
@Autowired
private RoleService roleService;
@Override
protected void findAfter(UserEntity entity, PageInfo pageInfo, Context context, List<UserEntity> list) throws AppException {
Map<Long, String> roleMap = roleService.find(new RoleQuery()).stream().collect(Collectors.toMap(x -> x.getId(), y -> y.getName()));
List<Long> userIdList = list.stream().map(item -> item.getId()).collect(Collectors.toList());
RoleUserQuery roleUserQuery = new RoleUserQuery();
roleUserQuery.setUserIdList(userIdList);
Map<Long, List<RoleUserEntity>> collect = roleUserService.find(roleUserQuery).stream().collect(Collectors.groupingBy(item -> item.getUserId()));
list.stream().forEach(item->{
if(!ObjectUtils.isEmpty(collect.get(item.getId()))){
item.setRoleId(collect.get(item.getId()).stream().map(RoleUserEntity::getRoleId).map(String::valueOf).collect(Collectors.joining(",")));
item.setRoleName(collect.get(item.getId()).stream().map(m->roleMap.get(item.getId())).filter(f->f!=null).collect(Collectors.joining(",")));
}
});
super.findAfter(entity, pageInfo, context, list);
}
private void doHandlerUser(UserEntity entity) throws AppException {
if (StringUtils.isNotEmpty(entity.getLoginPwd())) {
......@@ -42,11 +72,11 @@ public class UserServiceImpl extends AbstractCRUDServiceImpl<UserDao, UserEntity
} else {
entity.setLoginPwd(null);
}
// if (entity.isSystemUser()) {
// entity.setUserType(UserType.SYSTEM.getValue());
// } else {
// entity.setUserType(UserType.CUSTOMER.getValue());
// }
if (entity.isSystemUser()) {
entity.setUserType(UserType.SYSTEM.getValue());
} else {
entity.setUserType(UserType.CUSTOMER.getValue());
}
}
@Override
......@@ -62,21 +92,6 @@ public class UserServiceImpl extends AbstractCRUDServiceImpl<UserDao, UserEntity
this.doHandlerUser(entity);
}
@Override
protected UserEntity findBefore(UserEntity params, Context context) throws AppException {
// if (StringUtils.isNotEmpty(params.getDeptIds())) {
// params.setDeptIds(StringUtils.fillWithMark(params.getDeptIds(), ","));
// }
return super.findBefore(params, context);
}
@Override
protected UserEntity findBefore(UserEntity params, PageInfo pageInfo, Context context) throws AppException {
// if (StringUtils.isNotEmpty(params.getDeptIds())) {
// params.setDeptIds(StringUtils.fillWithMark(params.getDeptIds(), ","));
// }
return super.findBefore(params, pageInfo, context);
}
public UserEntity findByLoginName(String loginName) {
UserQuery params = new UserQuery();
......@@ -117,78 +132,6 @@ public class UserServiceImpl extends AbstractCRUDServiceImpl<UserDao, UserEntity
return sysUser;
}
@Override
public Set<Long> findAllAuthIds(UserEntity userEntity) throws AppException {
Set<Long> authIds = new HashSet<Long>();
if (userEntity.isAdmin()) {
return authIds;
}
authIds.addAll(dao.getAuthListById(userEntity.getId()));
return authIds;
}
@Override
public List<MenuEntity> findOutlookBarList(IUser user) {
Set<String> urls = new HashSet<String>();
if (!user.isAdmin()) {
/* List<ResourceEntity> resList = resourceService.findListByUserId(user.getId());
for (ResourceEntity res : resList) {
String url = res.getUrl();
if (StringUtils.isEmpty(url)) {
continue;
}
url = url.replaceAll(",", ",");
urls.addAll(StringUtils.converStr2Set(url));
}*/
}
Set<Long> authIds = new HashSet<Long>();
Map<Long, MenuEntity> menuMap = new HashMap<Long, MenuEntity>();
List<MenuEntity> userModuleList = this.menuService.findAllEnable();
for (MenuEntity sysModule : userModuleList) {
if (sysModule == null) {
continue;
}
menuMap.put(sysModule.getId(), sysModule);
if (!user.isAdmin() && urls.contains(StringUtils.trim(sysModule.getUrl()))) {
authIds.add(sysModule.getId());
}
}
if (!user.isAdmin()) {
Long[] ids = authIds.toArray(new Long[authIds.size()]);
for (Long id : ids) {
MenuEntity menu = menuMap.get(id);
while (menu != null) {
authIds.add(menu.getId());
menu = menuMap.get(menu.getParentId());
}
}
}
List<MenuEntity> outlookBar = new ArrayList<MenuEntity>();
List<MenuEntity> norightList = new ArrayList<MenuEntity>();
for (MenuEntity sysModule : userModuleList) {
if (!user.isAdmin() && !authIds.contains(sysModule.getId())) {
norightList.add(sysModule);
continue;
}
if (sysModule.getParentId() == null || sysModule.getParentId().longValue() == 0) {
outlookBar.add(sysModule);
continue;
}
MenuEntity sysModuleParent = menuMap.get(sysModule.getParentId());
if (sysModuleParent != null) {
sysModuleParent.getChildList().add(sysModule);
}
}
return outlookBar;
}
@Override
public Result<UserEntity> find(Long platformId, UserEntity params, int currPage, int prePageResult) throws AppException {
PageInfo pageInfo = new PageInfo(prePageResult);
pageInfo.setCurrPage(currPage);
return super.find(params, pageInfo, null);
}
@Override
public boolean existUser(String loginName, Long userId) throws AppException {
UserEntity sysUser = this.findByLoginName(loginName);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment