Commit b9566126 authored by liming's avatar liming

系列赛比赛结果上传

parent 94452eaf
package com.antai.sport.http.server.constants;
public class SeriesMatchType {
public static final Integer QUALIFYING = 10;
public static final Integer KNOCKOUT = 20;
}
......@@ -6,6 +6,7 @@ import com.antai.sport.http.server.server.api.business.series.dto.SeriesQualifyi
import com.antai.sport.http.server.server.api.business.series.dto.SeriesQualifyingMatchRecordInitDTO;
import com.antai.sport.http.server.server.api.business.series.service.SeriesService;
import com.antai.sport.http.server.server.api.business.series.vo.*;
import com.antai.sport.http.server.server.api.common.dto.CyclingDataDTO;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.http.ResponseEntity;
......@@ -68,5 +69,12 @@ public class SeriesController {
return success(seriesService.seriesQualifyingMatchRecordInit(dto));
}
@ApiOperation("20.系列赛比赛结果上传")
@PostMapping("/record/upload")
public ResponseEntity<Result> recordUpload(@RequestBody List<CyclingDataDTO> dataList) {
seriesService.recordUpload(dataList);
return success();
}
}
......@@ -2,19 +2,25 @@ package com.antai.sport.http.server.server.api.business.series.converter;
import com.antai.sport.http.server.repository.series.entity.Series;
import com.antai.sport.http.server.repository.series.entity.SeriesApply;
import com.antai.sport.http.server.repository.series.entity.SeriesMatchPlayerRecord;
import com.antai.sport.http.server.repository.sport.entity.SportUser;
import com.antai.sport.http.server.server.api.business.series.dto.SeriesApplyDTO;
import com.antai.sport.http.server.server.api.business.series.vo.SeriesApplyPreLoadVO;
import com.antai.sport.http.server.server.api.business.series.vo.SeriesDetailsVO;
import com.antai.sport.http.server.server.api.common.dto.CyclingDataDTO;
import org.mapstruct.Mapper;
import org.mapstruct.Mapping;
@Mapper(componentModel = "spring")
public interface SeriesConverter {
@Mapping(source = "status",target = "status")
SeriesDetailsVO toSeriesDetailVO(Series series,Integer status);
@Mapping(source = "status", target = "status")
SeriesDetailsVO toSeriesDetailVO(Series series, Integer status);
SeriesApplyPreLoadVO toSeriesApplyPreLoadVO(SportUser sportUser);
SeriesApply toSeriesApply(SeriesApplyDTO source);
@Mapping(source = "source.recordId", target = "id")
@Mapping(source = "finished", target = "finished")
SeriesMatchPlayerRecord toSeriesMatchPlayerRecord(CyclingDataDTO source, Boolean finished);
}
......@@ -3,23 +3,28 @@ package com.antai.sport.http.server.server.api.business.series.service;
import com.antai.sport.http.server.common.exception.BusinessException;
import com.antai.sport.http.server.constants.GameMode;
import com.antai.sport.http.server.constants.SeriesMatchPlayerRecordStatus;
import com.antai.sport.http.server.constants.SeriesMatchType;
import com.antai.sport.http.server.constants.SportType;
import com.antai.sport.http.server.repository.series.entity.*;
import com.antai.sport.http.server.repository.series.mapper.*;
import com.antai.sport.http.server.repository.sport.entity.SportUser;
import com.antai.sport.http.server.repository.sport.mapper.SportUserMapper;
import com.antai.sport.http.server.server.api.business.base.mapper.BaseBusinessMapper;
import com.antai.sport.http.server.server.api.business.praise.service.PraiseService;
import com.antai.sport.http.server.server.api.business.series.converter.SeriesConverter;
import com.antai.sport.http.server.server.api.business.series.dto.SeriesApplyDTO;
import com.antai.sport.http.server.server.api.business.series.dto.SeriesQualifyingMatchRankDTO;
import com.antai.sport.http.server.server.api.business.series.dto.SeriesQualifyingMatchRecordInitDTO;
import com.antai.sport.http.server.server.api.business.series.mapper.SeriesBusinessMapper;
import com.antai.sport.http.server.server.api.business.series.vo.*;
import com.antai.sport.http.server.server.api.business.traininglog.service.SportUserTrainingLogService;
import com.antai.sport.http.server.server.api.common.dto.CyclingDataDTO;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.metadata.OrderItem;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource;
import java.time.LocalDate;
......@@ -52,6 +57,11 @@ public class SeriesService {
@Resource
private BaseBusinessMapper baseBusinessMapper;
@Resource
private PraiseService praiseService;
@Resource
private SportUserTrainingLogService sportUserTrainingLogService;
public List<SeriesListVO> getSeriesList() {
return seriesBusinessMapper.getSeriesList();
}
......@@ -187,4 +197,32 @@ public class SeriesService {
return result;
}
/**
* 系列赛比赛结果数据上传
*/
@Transactional
public void recordUpload(List<CyclingDataDTO> dataList) {
dataList.forEach(item -> {
SeriesMatchPlayerRecord oldRecord = seriesMatchPlayerRecordMapper.selectById(item.getRecordId());
if (!oldRecord.getFinished()) {
SportUser user = sportUserMapper.selectById(oldRecord.getPlayerId());
item.setWeight(user.getWeight());
SeriesMatchPlayerRecord record = seriesConverter.toSeriesMatchPlayerRecord(item, true);
record.setPraiseNum(praiseService.getPraiseByGameModeAndRecordId(GameMode.SERIES_MATCH,
item.getRecordId()));
seriesMatchPlayerRecordMapper.updateById(record);
//生成骑行日志
SeriesMatch match = seriesMatchMapper.selectById(oldRecord.getMatchId());
Series series = seriesMapper.selectById(oldRecord.getSeriesId());
String sourceName =
series.getName() + "("
+ (match.getType().equals(SeriesMatchType.QUALIFYING) ? "预选赛" : "淘汰赛")
+ ":" + match.getName() + ")";
sportUserTrainingLogService.createBicycleTrainingLog(oldRecord.getPlayerId(), GameMode.SERIES_MATCH,
match.getId(), sourceName, match.getMap(), match.getPath(), record.getPraiseNum(), item);
}
});
}
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment