Commit d190732a authored by liming's avatar liming

表信息上传

parent fae17287
...@@ -4,7 +4,7 @@ public class GameMode { ...@@ -4,7 +4,7 @@ public class GameMode {
//漫游 //漫游
public final static Integer TOUR = 10; public final static Integer TOUR = 10;
//日常赛 //日常赛
public final static Integer NORMAL_MATCH = 20; public final static Integer SIMPLE_MATCH = 20;
//系列赛 //系列赛
public final static Integer SERIES_MATCH = 30; public final static Integer SERIES_MATCH = 30;
//训练模式 //训练模式
......
package com.antai.sport.http.server.constants;
public class SimpleMatchPlayerRecordStatus {
//未完赛
public final static Integer UNFINISHED = 10;
//完成比赛
public final static Integer FINISHED = 20;
}
...@@ -3,6 +3,7 @@ package com.antai.sport.http.server.server.api.business.simplematch.controller; ...@@ -3,6 +3,7 @@ package com.antai.sport.http.server.server.api.business.simplematch.controller;
import com.antai.sport.http.server.common.base.Result; import com.antai.sport.http.server.common.base.Result;
import com.antai.sport.http.server.server.api.business.simplematch.dto.*; import com.antai.sport.http.server.server.api.business.simplematch.dto.*;
import com.antai.sport.http.server.server.api.business.simplematch.service.SimpleMatchService; import com.antai.sport.http.server.server.api.business.simplematch.service.SimpleMatchService;
import com.antai.sport.http.server.server.api.common.dto.CyclingDataDTO;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
import org.springframework.http.ResponseEntity; import org.springframework.http.ResponseEntity;
...@@ -58,4 +59,18 @@ public class SimpleMatchController { ...@@ -58,4 +59,18 @@ public class SimpleMatchController {
public ResponseEntity<Result<RespSimpleMatchInfo>> matchInfo(@RequestBody ReqMatchInfo param) { public ResponseEntity<Result<RespSimpleMatchInfo>> matchInfo(@RequestBody ReqMatchInfo param) {
return success(simpleMatchService.matchInfo(param)); return success(simpleMatchService.matchInfo(param));
} }
@ApiOperation("加入赛事初始化")
@PostMapping("/record/init")
public ResponseEntity<Result<RespSimpleMatchRecordInit>> recordInit(@RequestBody ReqSimpleMatchRecordInit param) {
return success(simpleMatchService.recordInit(param));
}
@ApiOperation("比赛记录上传")
@PostMapping("/record/upload")
public ResponseEntity<Result> recordUpload(@RequestBody List<ReqSimpleMatchRecord> dataList) {
simpleMatchService.recordUpload(dataList);
return success();
}
} }
...@@ -2,10 +2,13 @@ package com.antai.sport.http.server.server.api.business.simplematch.converter; ...@@ -2,10 +2,13 @@ package com.antai.sport.http.server.server.api.business.simplematch.converter;
import com.antai.sport.http.server.repository.simplematch.entity.SimpleMatch; import com.antai.sport.http.server.repository.simplematch.entity.SimpleMatch;
import com.antai.sport.http.server.repository.simplematch.entity.SimpleMatchBanner; import com.antai.sport.http.server.repository.simplematch.entity.SimpleMatchBanner;
import com.antai.sport.http.server.repository.simplematch.entity.SimpleMatchPlayerRecord;
import com.antai.sport.http.server.server.api.business.simplematch.dto.ReqSimpleMatchInit; import com.antai.sport.http.server.server.api.business.simplematch.dto.ReqSimpleMatchInit;
import com.antai.sport.http.server.server.api.business.simplematch.dto.ReqSimpleMatchRecord;
import com.antai.sport.http.server.server.api.business.simplematch.dto.RespSimpleMatchBanner; import com.antai.sport.http.server.server.api.business.simplematch.dto.RespSimpleMatchBanner;
import com.antai.sport.http.server.server.api.business.simplematch.dto.RespSimpleMatchInfo; import com.antai.sport.http.server.server.api.business.simplematch.dto.RespSimpleMatchInfo;
import org.mapstruct.Mapper; import org.mapstruct.Mapper;
import org.mapstruct.Mapping;
import java.util.List; import java.util.List;
...@@ -16,4 +19,7 @@ public interface SimpleMatchConverter { ...@@ -16,4 +19,7 @@ public interface SimpleMatchConverter {
List<RespSimpleMatchBanner> toRespBannerList(List<SimpleMatchBanner> bannerList); List<RespSimpleMatchBanner> toRespBannerList(List<SimpleMatchBanner> bannerList);
RespSimpleMatchInfo toRespSimpleMatchInfo(SimpleMatch source); RespSimpleMatchInfo toRespSimpleMatchInfo(SimpleMatch source);
@Mapping(source = "data.recordId",target = "id")
SimpleMatchPlayerRecord toSimpleMatchPlayerRecord(ReqSimpleMatchRecord data);
} }
package com.antai.sport.http.server.server.api.business.simplematch.dto;
import com.antai.sport.http.server.server.api.common.dto.CyclingDataDTO;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.time.LocalDateTime;
@Data
@ApiModel("日常赛玩家记录上传")
public class ReqSimpleMatchRecord extends CyclingDataDTO {
@ApiModelProperty("状态 10:未完赛 20:已完赛")
public Integer status;
@ApiModelProperty("完成时间 yyyy-MM-dd HH:mm:ss")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
public LocalDateTime finishTime;
}
package com.antai.sport.http.server.server.api.business.simplematch.dto;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@Data
@ApiModel("加入赛事记录初始化请求参数")
public class ReqSimpleMatchRecordInit {
@ApiModelProperty("比赛id")
private Long matchId;
@ApiModelProperty("玩家id")
private Long playerId;
}
package com.antai.sport.http.server.server.api.business.simplematch.dto;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@ApiModel("加入赛事初始化响应对象")
@Data
public class RespSimpleMatchRecordInit {
@ApiModelProperty("记录id")
private Long recordId;
@ApiModelProperty("运动类型")
private Integer sportType;
@ApiModelProperty("游戏模式")
private Integer gameMode;
}
\ No newline at end of file
...@@ -2,12 +2,17 @@ package com.antai.sport.http.server.server.api.business.simplematch.service; ...@@ -2,12 +2,17 @@ package com.antai.sport.http.server.server.api.business.simplematch.service;
import com.antai.sport.http.server.common.exception.BusinessException; import com.antai.sport.http.server.common.exception.BusinessException;
import com.antai.sport.http.server.constants.DeleteStatus; import com.antai.sport.http.server.constants.DeleteStatus;
import com.antai.sport.http.server.constants.GameMode;
import com.antai.sport.http.server.constants.SportType;
import com.antai.sport.http.server.repository.simplematch.entity.SimpleMatch; import com.antai.sport.http.server.repository.simplematch.entity.SimpleMatch;
import com.antai.sport.http.server.repository.simplematch.entity.SimpleMatchBanner; import com.antai.sport.http.server.repository.simplematch.entity.SimpleMatchBanner;
import com.antai.sport.http.server.repository.simplematch.entity.SimpleMatchPlayerRecord;
import com.antai.sport.http.server.repository.simplematch.entity.SimpleMatchPlayerRegistLog; import com.antai.sport.http.server.repository.simplematch.entity.SimpleMatchPlayerRegistLog;
import com.antai.sport.http.server.repository.simplematch.mapper.SimpleMatchBannerMapper; import com.antai.sport.http.server.repository.simplematch.mapper.SimpleMatchBannerMapper;
import com.antai.sport.http.server.repository.simplematch.mapper.SimpleMatchMapper; import com.antai.sport.http.server.repository.simplematch.mapper.SimpleMatchMapper;
import com.antai.sport.http.server.repository.simplematch.mapper.SimpleMatchPlayerRecordMapper;
import com.antai.sport.http.server.repository.simplematch.mapper.SimpleMatchPlayerRegistLogMapper; import com.antai.sport.http.server.repository.simplematch.mapper.SimpleMatchPlayerRegistLogMapper;
import com.antai.sport.http.server.server.api.business.praise.service.PraiseService;
import com.antai.sport.http.server.server.api.business.simplematch.converter.SimpleMatchConverter; import com.antai.sport.http.server.server.api.business.simplematch.converter.SimpleMatchConverter;
import com.antai.sport.http.server.server.api.business.simplematch.dto.*; import com.antai.sport.http.server.server.api.business.simplematch.dto.*;
import com.antai.sport.http.server.server.api.business.simplematch.mapper.SimpleMatchBusinessMapper; import com.antai.sport.http.server.server.api.business.simplematch.mapper.SimpleMatchBusinessMapper;
...@@ -27,6 +32,8 @@ public class SimpleMatchService { ...@@ -27,6 +32,8 @@ public class SimpleMatchService {
private SimpleMatchBannerMapper simpleMatchBannerMapper; private SimpleMatchBannerMapper simpleMatchBannerMapper;
@Resource @Resource
private SimpleMatchPlayerRegistLogMapper simpleMatchPlayerRegistLogMapper; private SimpleMatchPlayerRegistLogMapper simpleMatchPlayerRegistLogMapper;
@Resource
private SimpleMatchPlayerRecordMapper simpleMatchPlayerRecordMapper;
@Resource @Resource
private SimpleMatchBusinessMapper simpleMatchBusinessMapper; private SimpleMatchBusinessMapper simpleMatchBusinessMapper;
...@@ -34,6 +41,9 @@ public class SimpleMatchService { ...@@ -34,6 +41,9 @@ public class SimpleMatchService {
@Resource @Resource
private SimpleMatchConverter simpleMatchConverter; private SimpleMatchConverter simpleMatchConverter;
@Resource
private PraiseService praiseService;
/** /**
* 创建比赛 * 创建比赛
* *
...@@ -132,4 +142,42 @@ public class SimpleMatchService { ...@@ -132,4 +142,42 @@ public class SimpleMatchService {
matchResp.setRegistered(registered); matchResp.setRegistered(registered);
return matchResp; return matchResp;
} }
/**
* 初始化玩家进入近路
*
* @param param
* @return
*/
public RespSimpleMatchRecordInit recordInit(ReqSimpleMatchRecordInit param) {
RespSimpleMatchRecordInit resp = new RespSimpleMatchRecordInit();
resp.setSportType(SportType.BICYCLE);
resp.setGameMode(GameMode.SIMPLE_MATCH);
QueryWrapper<SimpleMatchPlayerRecord> countQuery = new QueryWrapper<>();
countQuery.eq("match_id", param.getMatchId());
countQuery.eq("player_id", param.getPlayerId());
Boolean isRepeat = simpleMatchPlayerRecordMapper.selectCount(countQuery) > 0;
if (isRepeat) {
throw new BusinessException("您已进入不能重复进入");
}
SimpleMatchPlayerRecord record = new SimpleMatchPlayerRecord();
record.setMatchId(param.getMatchId());
record.setPlayerId(param.getPlayerId());
record.setEntryTime(LocalDateTime.now());
simpleMatchPlayerRecordMapper.insert(record);
resp.setRecordId(record.getId());
return resp;
}
/**
* 比赛记录上传
*/
public void recordUpload(List<ReqSimpleMatchRecord> dataList) {
dataList.forEach(item -> {
SimpleMatchPlayerRecord record = simpleMatchConverter.toSimpleMatchPlayerRecord(item);
record.setPraiseNum(praiseService.getPraiseByGameModeAndRecordId(GameMode.SIMPLE_MATCH, item.getRecordId()));
simpleMatchPlayerRecordMapper.updateById(record);
});
}
} }
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