Browse Source

bug修复

master
luogw 2 months ago
parent
commit
fd93c05b44
  1. 21
      src/main/java/com/project/task/domain/service/impl/CandidateSearchTaskDomainServiceImpl.java

21
src/main/java/com/project/task/domain/service/impl/CandidateSearchTaskDomainServiceImpl.java

@ -233,14 +233,19 @@ public class CandidateSearchTaskDomainServiceImpl implements CandidateSearchTask
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";
// 单次子查询,内部组合状态+时间判断,避免重复扫描
String sortSql = "ORDER BY (" +
"SELECT CASE " +
"WHEN tu.status = 1 THEN 1 " + // 已考未通过
"WHEN tu.status = 0 AND evaluator_task.start_time <= NOW() AND evaluator_task.end_time >= NOW() THEN 2 " + // 未考
"WHEN tu.status = 3 THEN 3 " + // 评分中
"WHEN tu.status = 0 AND evaluator_task.start_time > NOW() THEN 4 " + // 未开考
"WHEN tu.status = 2 THEN 5 " + // 已考已过
"WHEN evaluator_task.end_time < NOW() THEN 6 " + // 已截止
"ELSE 99 END " +
"FROM evaluator_task_user tu " +
"WHERE tu.task_id = evaluator_task.id AND tu.user_id = '" + userId + "' AND tu.deleted = 0" +
") ASC, create_time DESC";
queryWrapper.last(sortSql);
}
}

Loading…
Cancel
Save