|
|
@@ -3,6 +3,7 @@ package org.dromara.main.service.impl;
|
|
|
import cn.hutool.core.bean.BeanUtil;
|
|
|
import cn.hutool.core.util.ObjectUtil;
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
|
|
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
|
|
import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
|
|
|
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
|
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
|
|
@@ -67,7 +68,7 @@ public class MainExamEvaluationServiceImpl implements IMainExamEvaluationService
|
|
|
|
|
|
@Override
|
|
|
public TableDataInfo<MainExamEvaluationVo> queryPageList(MainExamEvaluationBo bo, PageQuery pageQuery) {
|
|
|
- LambdaQueryWrapper<MainExamEvaluation> lqw = buildQueryWrapper(bo);
|
|
|
+ QueryWrapper<MainExamEvaluation> lqw = buildQueryWrapper(bo);
|
|
|
Page<MainExamEvaluationVo> result = baseMapper.selectVoPageWithImages(pageQuery.build(), lqw);
|
|
|
result.getRecords().forEach(this::encodeDetailFieldInVo);
|
|
|
return TableDataInfo.build(result);
|
|
|
@@ -75,58 +76,57 @@ public class MainExamEvaluationServiceImpl implements IMainExamEvaluationService
|
|
|
|
|
|
@Override
|
|
|
public List<MainExamEvaluationVo> queryList(MainExamEvaluationBo bo) {
|
|
|
- LambdaQueryWrapper<MainExamEvaluation> lqw = buildQueryWrapper(bo);
|
|
|
+ QueryWrapper<MainExamEvaluation> lqw = buildQueryWrapper(bo);
|
|
|
List<MainExamEvaluationVo> list = baseMapper.selectVoList(lqw);
|
|
|
list.forEach(this::encodeDetailFieldInVo);
|
|
|
return list;
|
|
|
}
|
|
|
|
|
|
- private LambdaQueryWrapper<MainExamEvaluation> buildQueryWrapper(MainExamEvaluationBo bo) {
|
|
|
- LambdaQueryWrapper<MainExamEvaluation> lqw = Wrappers.lambdaQuery();
|
|
|
+ private QueryWrapper<MainExamEvaluation> buildQueryWrapper(MainExamEvaluationBo bo) {
|
|
|
+ QueryWrapper<MainExamEvaluation> lqw = Wrappers.query();
|
|
|
|
|
|
- // 1. 测评名称搜索(移除 ID 匹配)
|
|
|
- lqw.like(StringUtils.isNotBlank(bo.getEvaluationName()),
|
|
|
- MainExamEvaluation::getEvaluationName, bo.getEvaluationName());
|
|
|
-
|
|
|
- lqw.eq(StringUtils.isNotBlank(bo.getGrade()), MainExamEvaluation::getGrade, bo.getGrade());
|
|
|
- lqw.eq(StringUtils.isNotBlank(bo.getPosition()), MainExamEvaluation::getPosition, bo.getPosition());
|
|
|
- lqw.eq(StringUtils.isNotBlank(bo.getPositionType()), MainExamEvaluation::getPositionType, bo.getPositionType());
|
|
|
+ // 1. 测评名称搜索
|
|
|
+ lqw.like(StringUtils.isNotBlank(bo.getEvaluationName()), "e.evaluation_name", bo.getEvaluationName());
|
|
|
+ lqw.eq(StringUtils.isNotBlank(bo.getGrade()), "e.grade", bo.getGrade());
|
|
|
+ lqw.eq(StringUtils.isNotBlank(bo.getPosition()), "e.position", bo.getPosition());
|
|
|
+ lqw.eq(StringUtils.isNotBlank(bo.getPositionType()), "e.position_type", bo.getPositionType());
|
|
|
|
|
|
// 2. 业务状态搜索逻辑
|
|
|
if (StringUtils.isNotBlank(bo.getStatus())) {
|
|
|
Date now = new Date();
|
|
|
switch (bo.getStatus()) {
|
|
|
case "0": // 草稿
|
|
|
- lqw.eq(MainExamEvaluation::getStatus, "0");
|
|
|
+ lqw.eq("e.status", "0");
|
|
|
break;
|
|
|
case "1": // 在售 (状态为发布 且 在上架时间内)
|
|
|
- lqw.eq(MainExamEvaluation::getStatus, "1")
|
|
|
- .and(w -> w.isNull(MainExamEvaluation::getOnTime).or().le(MainExamEvaluation::getOnTime, now))
|
|
|
- .and(w -> w.isNull(MainExamEvaluation::getDownTime).or().ge(MainExamEvaluation::getDownTime, now));
|
|
|
+ lqw.eq("e.status", "1")
|
|
|
+ .and(w -> w.isNull("e.on_time").or().le("e.on_time", now))
|
|
|
+ .and(w -> w.isNull("e.down_time").or().ge("e.down_time", now));
|
|
|
break;
|
|
|
case "2": // 已下架 (手动下架 或 已过下架时间)
|
|
|
- lqw.and(w -> w.eq(MainExamEvaluation::getStatus, "2")
|
|
|
- .or(w2 -> w2.eq(MainExamEvaluation::getStatus, "1")
|
|
|
- .isNotNull(MainExamEvaluation::getDownTime)
|
|
|
- .lt(MainExamEvaluation::getDownTime, now)));
|
|
|
+ lqw.and(w -> w.eq("e.status", "2")
|
|
|
+ .or(w2 -> w2.eq("e.status", "1")
|
|
|
+ .isNotNull("e.down_time")
|
|
|
+ .lt("e.down_time", now)));
|
|
|
break;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
// 3. 自定义价格区间搜索
|
|
|
- lqw.ge(bo.getMinPrice() != null, MainExamEvaluation::getPrice, bo.getMinPrice());
|
|
|
- lqw.le(bo.getMaxPrice() != null, MainExamEvaluation::getPrice, bo.getMaxPrice());
|
|
|
+ lqw.ge(bo.getMinPrice() != null, "e.price", bo.getMinPrice());
|
|
|
+ lqw.le(bo.getMaxPrice() != null, "e.price", bo.getMaxPrice());
|
|
|
|
|
|
- // 4. 创建时间范围搜索
|
|
|
+ // 4. 上架时间范围搜索 (前端日期选择器筛选的是上架时间 onTime)
|
|
|
Map<String, Object> params = bo.getParams();
|
|
|
if (params != null) {
|
|
|
Object beginTime = params.get("beginTime");
|
|
|
Object endTime = params.get("endTime");
|
|
|
- lqw.between(beginTime != null && endTime != null,
|
|
|
- MainExamEvaluation::getCreateTime, beginTime, endTime);
|
|
|
+ if (beginTime != null && endTime != null) {
|
|
|
+ lqw.isNotNull("e.on_time").ge("e.on_time", beginTime).le("e.on_time", endTime);
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
- lqw.orderByDesc(MainExamEvaluation::getCreateTime);
|
|
|
+ lqw.orderByDesc("e.create_time");
|
|
|
return lqw;
|
|
|
}
|
|
|
|