|
|
|
@ -13,15 +13,12 @@ import com.project.base.domain.result.Result; |
|
|
|
import com.project.base.domain.utils.PageConverter; |
|
|
|
import com.project.classicpaper.domain.entity.ClassicCategoryEntity; |
|
|
|
import com.project.classicpaper.domain.entity.ClassicPaperSetEntity; |
|
|
|
import com.project.classicpaper.domain.service.ClassicCategoryBaseService; |
|
|
|
import com.project.classicpaper.domain.service.ClassicPaperSetBaseService; |
|
|
|
import com.project.classicpaper.mapper.ClassicCategoryMapper; |
|
|
|
import com.project.classicpaper.mapper.ClassicPaperSetMapper; |
|
|
|
import com.project.ding.utils.SecurityUtils; |
|
|
|
import com.project.exam.domain.entity.ExamRecordEntity; |
|
|
|
import com.project.exam.mapper.ExamRecordMapper; |
|
|
|
import com.project.information.domain.entity.ProductLineEntity; |
|
|
|
import com.project.information.domain.service.ProductLineBaseService; |
|
|
|
import com.project.information.mapper.ProductLineMapper; |
|
|
|
import com.project.task.domain.dto.TaskDTO; |
|
|
|
import com.project.task.domain.entity.TaskEntity; |
|
|
|
@ -37,9 +34,6 @@ import com.project.task.mapper.TaskUserMapper; |
|
|
|
import io.vavr.control.Try; |
|
|
|
import org.springframework.beans.factory.annotation.Autowired; |
|
|
|
import org.springframework.stereotype.Service; |
|
|
|
|
|
|
|
import java.math.BigDecimal; |
|
|
|
import java.math.RoundingMode; |
|
|
|
import java.text.NumberFormat; |
|
|
|
import java.util.Date; |
|
|
|
import java.util.List; |
|
|
|
@ -128,24 +122,23 @@ public class CandidateSearchTaskDomainServiceImpl implements CandidateSearchTask |
|
|
|
// 排序
|
|
|
|
if (Objects.nonNull(param.getSortType())) { |
|
|
|
switch (param.getSortType()) { |
|
|
|
case 1: // 截止时间从近到远 (ASC)
|
|
|
|
case 1: // 截止时间从近到远
|
|
|
|
queryWrapper.orderByAsc(TaskEntity::getEndTime); |
|
|
|
break; |
|
|
|
case 2: // 截止时间从远到近 (DESC)
|
|
|
|
case 2: // 截止时间从远到近
|
|
|
|
queryWrapper.orderByDesc(TaskEntity::getEndTime); |
|
|
|
break; |
|
|
|
case 3: // 开考时间从近到远 (ASC)
|
|
|
|
case 3: // 开考时间从近到远
|
|
|
|
queryWrapper.orderByAsc(TaskEntity::getStartTime); |
|
|
|
break; |
|
|
|
case 4: // 开考时间从远到近 (DESC)
|
|
|
|
case 4: // 开考时间从远到近
|
|
|
|
queryWrapper.orderByDesc(TaskEntity::getStartTime); |
|
|
|
break; |
|
|
|
default: |
|
|
|
queryWrapper.orderByAsc(TaskEntity::getEndTime); // 默认排序
|
|
|
|
default: // 默认排序(兜底)
|
|
|
|
defaultSort(queryWrapper); |
|
|
|
} |
|
|
|
} else { |
|
|
|
// 默认按开始时间倒序
|
|
|
|
queryWrapper.orderByDesc(TaskEntity::getStartTime); |
|
|
|
defaultSort(queryWrapper); |
|
|
|
} |
|
|
|
|
|
|
|
IPage<TaskEntity> entityPage = taskMapper.selectPage(PageConverter.toMpPage(param), queryWrapper); |
|
|
|
@ -237,4 +230,17 @@ public class CandidateSearchTaskDomainServiceImpl implements CandidateSearchTask |
|
|
|
} |
|
|
|
return dto; |
|
|
|
} |
|
|
|
|
|
|
|
private void defaultSort(LambdaQueryWrapper<TaskEntity> queryWrapper) { |
|
|
|
String userId = SecurityUtils.getUserId(); |
|
|
|
String sortSql = "ORDER BY CASE " + |
|
|
|
"WHEN end_time < NOW() THEN 6 " + |
|
|
|
"WHEN start_time > NOW() THEN 4 " + |
|
|
|
"WHEN (SELECT status FROM evaluator_task_user WHERE task_id = evaluator_task.id AND user_id = '" + userId + "' AND deleted = 0) = 1 THEN 1 " + |
|
|
|
"WHEN (SELECT status FROM evaluator_task_user WHERE task_id = evaluator_task.id AND user_id = '" + userId + "' AND deleted = 0) = 0 THEN 2 " + |
|
|
|
"WHEN (SELECT status FROM evaluator_task_user WHERE task_id = evaluator_task.id AND user_id = '" + userId + "' AND deleted = 0) = 3 THEN 3 " + |
|
|
|
"WHEN (SELECT status FROM evaluator_task_user WHERE task_id = evaluator_task.id AND user_id = '" + userId + "' AND deleted = 0) = 2 THEN 5 " + |
|
|
|
"ELSE 99 END ASC, create_time DESC"; |
|
|
|
queryWrapper.last(sortSql); |
|
|
|
} |
|
|
|
} |
|
|
|
|