GlobalAward返回最大的参赛者编号

This commit is contained in:
litianxiang
2026-04-13 14:34:05 +08:00
parent 409bc7b1fd
commit 6b5bacc49b
3 changed files with 23 additions and 7 deletions

View File

@@ -4,6 +4,7 @@ import com.ai.da.common.response.Response;
import com.ai.da.model.dto.*;
import com.ai.da.model.dto.ContestantDTO;
import com.ai.da.model.vo.CheckOTPVO;
import com.ai.da.model.vo.ContestantCountVO;
import com.ai.da.service.GlobalAwardService;
import com.ai.da.service.upload.UploadService;
import com.ai.da.service.upload.UploadTask;
@@ -192,8 +193,8 @@ public class GlobalAwardController {
}
@GetMapping("/contestants/count")
@ApiOperation(value = "查询参赛者总数", notes = "查询数据库中参赛者的总数量")
public Response<Long> getContestantCount() {
@ApiOperation(value = "查询参赛者总数", notes = "查询数据库中参赛者的总数量和最大参赛者编号")
public Response<ContestantCountVO> getContestantCount() {
return Response.success(globalAwardService.getContestantCount());
}

View File

@@ -2,6 +2,7 @@ package com.ai.da.service;
import com.ai.da.model.dto.ContestantDTO;
import com.ai.da.model.vo.CheckOTPVO;
import com.ai.da.model.vo.ContestantCountVO;
import org.springframework.web.multipart.MultipartFile;
import java.util.Map;
@@ -41,10 +42,10 @@ public interface GlobalAwardService {
byte[] exportContestantFilesAsZip(Integer minContestantNumber, Integer maxContestantNumber) throws Exception;
/**
* 查询参赛者总数
* @return 参赛者数量
* 查询参赛者总数和最大参赛者编号
* @return 参赛者数量和最大参赛者编号
*/
long getContestantCount();
ContestantCountVO getContestantCount();
}

View File

@@ -12,6 +12,7 @@ import com.ai.da.mapper.primary.entity.Notification;
import com.ai.da.model.dto.ContestantDTO;
import com.ai.da.model.dto.PublishSysNotificationDTO;
import com.ai.da.model.vo.CheckOTPVO;
import com.ai.da.model.vo.ContestantCountVO;
import com.ai.da.service.GlobalAwardService;
import com.ai.da.service.MessageCenterService;
import com.alibaba.fastjson.JSON;
@@ -592,8 +593,21 @@ public class GlobalAwardServiceImpl implements GlobalAwardService {
}
@Override
public long getContestantCount() {
return contestantMapper.selectCount(null);
public ContestantCountVO getContestantCount() {
long count = contestantMapper.selectCount(null);
Integer maxContestantNumber = null;
QueryWrapper<Contestant> qMax = new QueryWrapper<>();
qMax.isNotNull("contestant_number");
qMax.orderByDesc("contestant_number");
qMax.last("LIMIT 1");
Contestant last = contestantMapper.selectOne(qMax);
if (last != null) {
maxContestantNumber = last.getContestantNumber();
}
return ContestantCountVO.builder()
.count(count)
.maxContestantNumber(maxContestantNumber)
.build();
}
private String nullSafe(String value) {