feat(oa): 关联用户信息并扩展问题VO实体
- 在 OaExpressQuestionServiceImpl 中根据 createBy 字段关联查询用户昵称 -为 OaExpressQuestionVo 添加 nickName 字段用于展示创建人昵称 - 修改 OaExpressQuestionVo 继承 BaseEntity 以支持基础字段 - 引入 ISysUserService 和 SysUser 实现用户信息查询逻辑 - 使用 Stream 对 createBy 去重后批量查询用户减少数据库访问次数
This commit is contained in:
@@ -6,6 +6,7 @@ import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
|
||||
import com.alibaba.excel.annotation.ExcelProperty;
|
||||
import com.ruoyi.common.annotation.ExcelDictFormat;
|
||||
import com.ruoyi.common.convert.ExcelDictConvert;
|
||||
import com.ruoyi.common.core.domain.BaseEntity;
|
||||
import lombok.Data;
|
||||
import java.util.Date;
|
||||
|
||||
@@ -19,7 +20,7 @@ import java.util.Date;
|
||||
*/
|
||||
@Data
|
||||
@ExcelIgnoreUnannotated
|
||||
public class OaExpressQuestionVo {
|
||||
public class OaExpressQuestionVo extends BaseEntity {
|
||||
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
@@ -70,5 +71,7 @@ public class OaExpressQuestionVo {
|
||||
*/
|
||||
private String expressCode;
|
||||
|
||||
private String nickName;
|
||||
|
||||
|
||||
}
|
||||
|
||||
@@ -2,6 +2,7 @@ package com.ruoyi.oa.service.impl;
|
||||
|
||||
import cn.hutool.core.bean.BeanUtil;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
import com.ruoyi.common.core.domain.entity.SysUser;
|
||||
import com.ruoyi.common.helper.LoginHelper;
|
||||
import com.ruoyi.common.utils.StringUtils;
|
||||
import com.ruoyi.common.core.page.TableDataInfo;
|
||||
@@ -9,6 +10,7 @@ import com.ruoyi.common.core.domain.PageQuery;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
||||
import com.ruoyi.system.service.ISysUserService;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.springframework.stereotype.Service;
|
||||
import com.ruoyi.oa.domain.bo.OaExpressQuestionBo;
|
||||
@@ -20,6 +22,7 @@ import com.ruoyi.oa.service.IOaExpressQuestionService;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Collection;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
/**
|
||||
* 快递问题Service业务层处理
|
||||
@@ -32,6 +35,7 @@ import java.util.Collection;
|
||||
public class OaExpressQuestionServiceImpl implements IOaExpressQuestionService {
|
||||
|
||||
private final OaExpressQuestionMapper baseMapper;
|
||||
private final ISysUserService userService;
|
||||
|
||||
/**
|
||||
* 查询快递问题
|
||||
@@ -48,6 +52,25 @@ public class OaExpressQuestionServiceImpl implements IOaExpressQuestionService {
|
||||
public TableDataInfo<OaExpressQuestionVo> queryPageList(OaExpressQuestionBo bo, PageQuery pageQuery) {
|
||||
QueryWrapper<OaExpressQuestion> lqw = buildQueryWrapperPlus(bo);
|
||||
Page<OaExpressQuestionVo> result = baseMapper.selectVoPagePlus(pageQuery.build(), lqw);
|
||||
//需要根据这个createBy字段去关联用户表获取用户名称,可以在这里处理,也可以在mapper.xml中处理
|
||||
List<String> createByList = result.getRecords().stream()
|
||||
.map(OaExpressQuestionVo::getCreateBy)
|
||||
.distinct() // 去重,减少查询次数
|
||||
.collect(Collectors.toList());
|
||||
if (!createByList.isEmpty()) {
|
||||
// 循环调用 selectUserByUserName 方法
|
||||
for (String userName : createByList) {
|
||||
SysUser user = userService.selectUserByUserName(userName);
|
||||
if (user != null) {
|
||||
// 为所有匹配的记录设置昵称
|
||||
for (OaExpressQuestionVo item : result.getRecords()) {
|
||||
if (userName.equals(item.getCreateBy())) {
|
||||
item.setNickName(user.getNickName());
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
return TableDataInfo.build(result);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user