Gqingci 15 giờ trước cách đây
mục cha
commit
032e3f904a

+ 25 - 25
ruoyi-modules/ruoyi-main/src/main/java/org/dromara/main/service/impl/MainExamEvaluationServiceImpl.java

@@ -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;
     }