diff --git a/roncoo-education-system/roncoo-education-system-service/src/main/java/com/roncoo/education/system/dao/SysRoleDao.java b/roncoo-education-system/roncoo-education-system-service/src/main/java/com/roncoo/education/system/dao/SysRoleDao.java index d6c47269e59a4ef0b11201031643f410938dac4c..b3350c4ddfefb29fce3b6a401e7126f2eb359dfb 100644 --- a/roncoo-education-system/roncoo-education-system-service/src/main/java/com/roncoo/education/system/dao/SysRoleDao.java +++ b/roncoo-education-system/roncoo-education-system-service/src/main/java/com/roncoo/education/system/dao/SysRoleDao.java @@ -4,6 +4,8 @@ import com.roncoo.education.common.core.base.Page; import com.roncoo.education.system.dao.impl.mapper.entity.SysRole; import com.roncoo.education.system.dao.impl.mapper.entity.SysRoleExample; +import java.util.List; + public interface SysRoleDao { int save(SysRole record); @@ -16,4 +18,6 @@ public interface SysRoleDao { SysRole getById(Long id); Page page(int pageCurrent, int pageSize, SysRoleExample example); + + List listByIds(List roleIdList); } diff --git a/roncoo-education-system/roncoo-education-system-service/src/main/java/com/roncoo/education/system/dao/SysRoleUserDao.java b/roncoo-education-system/roncoo-education-system-service/src/main/java/com/roncoo/education/system/dao/SysRoleUserDao.java index 908a2a1bee7c23b3c0ced03cf657f8ca125e96ff..0fa86fbbf6404deb1fbc8ee50a8ddad3acf19d1f 100644 --- a/roncoo-education-system/roncoo-education-system-service/src/main/java/com/roncoo/education/system/dao/SysRoleUserDao.java +++ b/roncoo-education-system/roncoo-education-system-service/src/main/java/com/roncoo/education/system/dao/SysRoleUserDao.java @@ -34,4 +34,6 @@ public interface SysRoleUserDao { * @return */ List listByUserId(Long userId); + + List listByUserIds(List userIdList); } diff --git a/roncoo-education-system/roncoo-education-system-service/src/main/java/com/roncoo/education/system/dao/impl/SysRoleDaoImpl.java b/roncoo-education-system/roncoo-education-system-service/src/main/java/com/roncoo/education/system/dao/impl/SysRoleDaoImpl.java index b64ef19fd4ae51c35ccfcff1e37557c055dd5cc8..1fea9f3a90bd57a8fd2964e7e9021f5051831a2b 100644 --- a/roncoo-education-system/roncoo-education-system-service/src/main/java/com/roncoo/education/system/dao/impl/SysRoleDaoImpl.java +++ b/roncoo-education-system/roncoo-education-system-service/src/main/java/com/roncoo/education/system/dao/impl/SysRoleDaoImpl.java @@ -10,6 +10,8 @@ import com.roncoo.education.system.dao.impl.mapper.entity.SysRoleExample; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Repository; +import java.util.List; + @Repository public class SysRoleDaoImpl implements SysRoleDao { @Autowired @@ -53,4 +55,12 @@ public class SysRoleDaoImpl implements SysRoleDao { example.setPageSize(pageSize); return new Page(count, totalPage, pageCurrent, pageSize, this.sysRoleMapper.selectByExample(example)); } + + @Override + public List listByIds(List roleIdList) { + SysRoleExample example = new SysRoleExample(); + example.createCriteria().andIdIn(roleIdList); + example.setOrderByClause("sort asc, id desc"); + return this.sysRoleMapper.selectByExample(example); + } } diff --git a/roncoo-education-system/roncoo-education-system-service/src/main/java/com/roncoo/education/system/dao/impl/SysRoleUserDaoImpl.java b/roncoo-education-system/roncoo-education-system-service/src/main/java/com/roncoo/education/system/dao/impl/SysRoleUserDaoImpl.java index cd368c142311c2308b387946c8354338300e8d56..2f2590613599beac13250d0e9bd97c1fa727d44e 100644 --- a/roncoo-education-system/roncoo-education-system-service/src/main/java/com/roncoo/education/system/dao/impl/SysRoleUserDaoImpl.java +++ b/roncoo-education-system/roncoo-education-system-service/src/main/java/com/roncoo/education/system/dao/impl/SysRoleUserDaoImpl.java @@ -69,4 +69,11 @@ public class SysRoleUserDaoImpl implements SysRoleUserDao { example.createCriteria().andUserIdEqualTo(userId); return this.sysRoleUserMapper.selectByExample(example); } + + @Override + public List listByUserIds(List userIdList) { + SysRoleUserExample example = new SysRoleUserExample(); + example.createCriteria().andUserIdIn(userIdList); + return this.sysRoleUserMapper.selectByExample(example); + } } diff --git a/roncoo-education-system/roncoo-education-system-service/src/main/java/com/roncoo/education/system/service/admin/biz/AdminSysUserBiz.java b/roncoo-education-system/roncoo-education-system-service/src/main/java/com/roncoo/education/system/service/admin/biz/AdminSysUserBiz.java index 6be51b50e5dea89c83acfff72077a55d90ffbf49..22eb32fa0933c1aa0b5bece7b1de01b0c38d36c3 100644 --- a/roncoo-education-system/roncoo-education-system-service/src/main/java/com/roncoo/education/system/service/admin/biz/AdminSysUserBiz.java +++ b/roncoo-education-system/roncoo-education-system-service/src/main/java/com/roncoo/education/system/service/admin/biz/AdminSysUserBiz.java @@ -1,5 +1,6 @@ package com.roncoo.education.system.service.admin.biz; +import cn.hutool.core.collection.CollUtil; import cn.hutool.core.util.IdUtil; import cn.hutool.core.util.ObjectUtil; import com.roncoo.education.common.core.base.Page; @@ -8,8 +9,11 @@ import com.roncoo.education.common.core.base.Result; import com.roncoo.education.common.core.enums.ResultEnum; import com.roncoo.education.common.core.tools.BeanUtil; import com.roncoo.education.common.core.tools.SHA1Util; +import com.roncoo.education.system.dao.SysRoleDao; import com.roncoo.education.system.dao.SysRoleUserDao; import com.roncoo.education.system.dao.SysUserDao; +import com.roncoo.education.system.dao.impl.mapper.entity.SysRole; +import com.roncoo.education.system.dao.impl.mapper.entity.SysRoleUser; import com.roncoo.education.system.dao.impl.mapper.entity.SysUser; import com.roncoo.education.system.dao.impl.mapper.entity.SysUserExample; import com.roncoo.education.system.dao.impl.mapper.entity.SysUserExample.Criteria; @@ -21,6 +25,11 @@ import org.springframework.stereotype.Component; import org.springframework.transaction.annotation.Transactional; import org.springframework.util.StringUtils; +import java.util.ArrayList; +import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; + /** * 后台用户信息 * @@ -29,10 +38,12 @@ import org.springframework.util.StringUtils; @Component public class AdminSysUserBiz { + @Autowired + private SysUserDao dao; @Autowired private SysRoleUserDao sysRoleUserDao; @Autowired - private SysUserDao dao; + private SysRoleDao sysRoleDao; public Result> listForPage(AdminSysUserPageReq req) { SysUserExample example = new SysUserExample(); @@ -42,7 +53,33 @@ public class AdminSysUserBiz { } example.setOrderByClause(" status_id desc, sort asc, id desc "); Page page = dao.page(req.getPageCurrent(), req.getPageSize(), example); - return Result.success(PageUtil.transform(page, AdminSysUserPageResp.class)); + Page respPage = PageUtil.transform(page, AdminSysUserPageResp.class); + if (CollUtil.isNotEmpty(respPage.getList())) { + List userIdList = respPage.getList().stream().map(AdminSysUserPageResp::getUserId).collect(Collectors.toList()); + List roleUserList = sysRoleUserDao.listByUserIds(userIdList); + if (CollUtil.isNotEmpty(roleUserList)) { + List roles = roleUserList.stream().map(SysRoleUser::getRoleId).collect(Collectors.toList()); + List roleList = sysRoleDao.listByIds(roles); + Map roleNameMap = null; + if (CollUtil.isNotEmpty(roleList)) { + roleNameMap = roleList.stream().collect(Collectors.toMap(SysRole::getId, SysRole::getRoleName)); + } + Map> map = roleUserList.stream().collect(Collectors.groupingBy(SysRoleUser::getUserId, Collectors.mapping(SysRoleUser::getRoleId, Collectors.toList()))); + for(AdminSysUserPageResp resp: respPage.getList()){ + List roleIdList = map.get(resp.getId()); + if(CollUtil.isNotEmpty(roleIdList)){ + List roleNameList = new ArrayList<>(); + for(Long roleId: roleIdList){ + if( null !=roleNameMap){ + roleNameList.add(roleNameMap.get(roleId)); + } + } + resp.setRoleNameList(roleNameList); + } + } + } + } + return Result.success(respPage); } public Result save(AdminSysUserSaveReq req) { diff --git a/roncoo-education-system/roncoo-education-system-service/src/main/java/com/roncoo/education/system/service/admin/resp/AdminSysUserPageResp.java b/roncoo-education-system/roncoo-education-system-service/src/main/java/com/roncoo/education/system/service/admin/resp/AdminSysUserPageResp.java index 247d0ac0d8aa5398b989c91e6fcdd0914528533c..4a06e388601ee88f04885cb73945f55ed40f7a60 100644 --- a/roncoo-education-system/roncoo-education-system-service/src/main/java/com/roncoo/education/system/service/admin/resp/AdminSysUserPageResp.java +++ b/roncoo-education-system/roncoo-education-system-service/src/main/java/com/roncoo/education/system/service/admin/resp/AdminSysUserPageResp.java @@ -1,5 +1,6 @@ package com.roncoo.education.system.service.admin.resp; +import com.fasterxml.jackson.annotation.JsonFormat; import com.fasterxml.jackson.databind.annotation.JsonSerialize; import com.fasterxml.jackson.databind.ser.std.ToStringSerializer; import io.swagger.annotations.ApiModelProperty; @@ -7,6 +8,8 @@ import lombok.Data; import lombok.experimental.Accessors; import java.io.Serializable; +import java.time.LocalDateTime; +import java.util.List; /** * 后台用户信息-分页 @@ -56,4 +59,15 @@ public class AdminSysUserPageResp implements Serializable { */ @ApiModelProperty(value = "备注") private String remark; + + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @ApiModelProperty(value = "创建时间") + private LocalDateTime gmtCreate; + + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @ApiModelProperty(value = "修改时间") + private LocalDateTime gmtModified; + + @ApiModelProperty(value = "角色名称集合") + private List roleNameList; }