首页查询优化

This commit is contained in:
cjw 2024-07-31 16:28:55 +08:00
parent 88243286cb
commit ba8767b725
1 changed files with 14 additions and 18 deletions

View File

@ -6,6 +6,7 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import lombok.RequiredArgsConstructor;
import org.dromara.common.core.service.DictService;
import org.dromara.common.core.utils.MapstructUtils;
import org.dromara.common.core.utils.StringUtils;
import org.dromara.common.mybatis.core.page.PageQuery;
@ -18,14 +19,10 @@ import org.dromara.scale.domain.vo.SysScaleVo;
import org.dromara.scale.mapper.ScoreRecordMapper;
import org.dromara.scale.mapper.SysScaleMapper;
import org.dromara.scale.service.ISysScaleService;
import org.dromara.system.domain.vo.SysDictDataVo;
import org.dromara.system.mapper.SysDictDataMapper;
import org.dromara.system.mapper.SysOssMapper;
import org.springframework.stereotype.Service;
import java.math.BigDecimal;
import java.util.*;
import java.util.stream.Collectors;
/**
* 心理测评量Service业务层处理
@ -37,8 +34,7 @@ import java.util.stream.Collectors;
@Service
public class SysScaleServiceImpl implements ISysScaleService {
private final SysScaleMapper baseMapper;
private final SysDictDataMapper sysDictDataMapper;
private final SysOssMapper sysOssMapper;
private final DictService dictService;
private final ScoreRecordMapper scoreMapper;
/**
@ -48,11 +44,11 @@ public class SysScaleServiceImpl implements ISysScaleService {
public SysScaleVo queryById(Long scaleId) {
SysScaleVo sysScaleVo = baseMapper.selectVoById(scaleId);
List<SysDictDataVo> scaleTypeList = sysDictDataMapper.selectDictDataByTypeAndDictValue("scale_type", StrUtil.join(StrUtil.COMMA, sysScaleVo.getScaleType()));
sysScaleVo.setScaleTypeName(scaleTypeList.stream().map(SysDictDataVo::getDictLabel).collect(Collectors.toList()));
String scaleTypeName = dictService.getDictLabel("scale_type", StrUtil.join(StrUtil.COMMA, sysScaleVo.getScaleType()));
sysScaleVo.setScaleTypeName(StrUtil.split(scaleTypeName, StrUtil.COMMA));
List<SysDictDataVo> peopleTypeList = sysDictDataMapper.selectDictDataByTypeAndDictValue("people_type", StrUtil.join(StrUtil.COMMA, sysScaleVo.getPeopleType()));
sysScaleVo.setPeopleTypeName(peopleTypeList.stream().map(SysDictDataVo::getDictLabel).collect(Collectors.toList()));
String peopleTypeName = dictService.getDictLabel("people_type", StrUtil.join(StrUtil.COMMA, sysScaleVo.getPeopleType()));
sysScaleVo.setPeopleTypeName(StrUtil.split(peopleTypeName, StrUtil.COMMA));
//计算均分
List<ScoreRecord> scoreList = scoreMapper.selectList(new LambdaQueryWrapper<ScoreRecord>().select(ScoreRecord::getScore).eq(ScoreRecord::getBusinessId, scaleId).eq(ScoreRecord::getRecordStatus, 0));
OptionalDouble averageScore = scoreList.stream()
@ -79,11 +75,11 @@ public class SysScaleServiceImpl implements ISysScaleService {
}
Page<SysScaleVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw);
for (SysScaleVo record : result.getRecords()) {
List<SysDictDataVo> scaleTypeList = sysDictDataMapper.selectDictDataByTypeAndDictValue("scale_type", StrUtil.join(StrUtil.COMMA, record.getScaleType()));
record.setScaleTypeName(scaleTypeList.stream().map(SysDictDataVo::getDictLabel).collect(Collectors.toList()));
String scaleTypeName = dictService.getDictLabel("scale_type", StrUtil.join(StrUtil.COMMA, record.getScaleType()));
record.setScaleTypeName(StrUtil.split(scaleTypeName, StrUtil.COMMA));
List<SysDictDataVo> peopleTypeList = sysDictDataMapper.selectDictDataByTypeAndDictValue("people_type", StrUtil.join(StrUtil.COMMA, record.getPeopleType()));
record.setPeopleTypeName(peopleTypeList.stream().map(SysDictDataVo::getDictLabel).collect(Collectors.toList()));
String peopleTypeName = dictService.getDictLabel("people_type", StrUtil.join(StrUtil.COMMA, record.getPeopleType()));
record.setPeopleTypeName(StrUtil.split(peopleTypeName, StrUtil.COMMA));
}
return TableDataInfo.build(result);
}
@ -98,11 +94,11 @@ public class SysScaleServiceImpl implements ISysScaleService {
}
List<SysScaleVo> result = baseMapper.selectVoList(lqw);
for (SysScaleVo record : result) {
List<SysDictDataVo> scaleTypeList = sysDictDataMapper.selectDictDataByTypeAndDictValue("scale_type", StrUtil.join(StrUtil.COMMA, record.getScaleType()));
record.setScaleTypeName(scaleTypeList.stream().map(SysDictDataVo::getDictLabel).collect(Collectors.toList()));
String scaleTypeName = dictService.getDictLabel("scale_type", StrUtil.join(StrUtil.COMMA, record.getScaleType()));
record.setScaleTypeName(StrUtil.split(scaleTypeName, StrUtil.COMMA));
List<SysDictDataVo> peopleTypeList = sysDictDataMapper.selectDictDataByTypeAndDictValue("people_type", StrUtil.join(StrUtil.COMMA, record.getPeopleType()));
record.setPeopleTypeName(peopleTypeList.stream().map(SysDictDataVo::getDictLabel).collect(Collectors.toList()));
String peopleTypeName = dictService.getDictLabel("people_type", StrUtil.join(StrUtil.COMMA, record.getPeopleType()));
record.setPeopleTypeName(StrUtil.split(peopleTypeName, StrUtil.COMMA));
}
return result;
}