首页查询优化

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