Commit e15d0ce2 authored by liming's avatar liming

调整骑行数据保存

parent 81c8faae
This diff is collapsed.
...@@ -111,6 +111,10 @@ public class SportUserTrainingLog implements Serializable { ...@@ -111,6 +111,10 @@ public class SportUserTrainingLog implements Serializable {
private Integer calorie; private Integer calorie;
private BigDecimal weight; private BigDecimal weight;
private Integer ftp;
private BigDecimal height;
private Integer heartRate;
private Integer avgHeartRate;
private BigDecimal oneMinutesFtp; private BigDecimal oneMinutesFtp;
private BigDecimal fiveMinutesFtp; private BigDecimal fiveMinutesFtp;
private BigDecimal twentyMinutesFtp; private BigDecimal twentyMinutesFtp;
......
...@@ -35,6 +35,14 @@ public class TrainingDetailRankVO { ...@@ -35,6 +35,14 @@ public class TrainingDetailRankVO {
@ApiModelProperty("体重") @ApiModelProperty("体重")
private BigDecimal weight; private BigDecimal weight;
@ApiModelProperty("玩家当时ftp")
private Integer ftp;
@ApiModelProperty("玩家当时身高")
private BigDecimal height;
@ApiModelProperty("玩家当时设置最大心率")
private Integer heartRate;
@ApiModelProperty("玩家平均心率")
private Integer avgHeartRate;
@ApiModelProperty("1分钟平均最佳FTP") @ApiModelProperty("1分钟平均最佳FTP")
private BigDecimal oneMinutesFtp; private BigDecimal oneMinutesFtp;
@ApiModelProperty("5分钟平均最佳FTP") @ApiModelProperty("5分钟平均最佳FTP")
......
...@@ -62,6 +62,14 @@ public class TrainingDetailVO { ...@@ -62,6 +62,14 @@ public class TrainingDetailVO {
@ApiModelProperty("体重") @ApiModelProperty("体重")
private BigDecimal weight; private BigDecimal weight;
@ApiModelProperty("玩家当时ftp")
private Integer ftp;
@ApiModelProperty("玩家当时身高")
private BigDecimal height;
@ApiModelProperty("玩家当时设置最大心率")
private Integer heartRate;
@ApiModelProperty("玩家平均心率")
private Integer avgHeartRate;
@ApiModelProperty("1分钟平均最佳FTP") @ApiModelProperty("1分钟平均最佳FTP")
private BigDecimal oneMinutesFtp; private BigDecimal oneMinutesFtp;
@ApiModelProperty("5分钟平均最佳FTP") @ApiModelProperty("5分钟平均最佳FTP")
......
...@@ -128,6 +128,10 @@ public class SportUserTrainingLogService { ...@@ -128,6 +128,10 @@ public class SportUserTrainingLogService {
if (clubMember != null) { if (clubMember != null) {
log.setClubId(clubMember.getClubId()); log.setClubId(clubMember.getClubId());
} }
SportUser sportUser = sportUserMapper.selectById(playerId);
log.setFtp(sportUser.getFtp());
log.setHeight(sportUser.getHeight());
log.setHeartRate(sportUser.getHeartRate());
sportUserTrainingLogMapper.insert(log); sportUserTrainingLogMapper.insert(log);
//处理玩家记录汇总 //处理玩家记录汇总
SportUserSummary summary = this.handleSportUserSummary(playerId, log, gameMode, sportData); SportUserSummary summary = this.handleSportUserSummary(playerId, log, gameMode, sportData);
...@@ -143,21 +147,21 @@ public class SportUserTrainingLogService { ...@@ -143,21 +147,21 @@ public class SportUserTrainingLogService {
//处理玩家成就 //处理玩家成就
achievementService.handleSportAchievement(gameMode, summary); achievementService.handleSportAchievement(gameMode, summary);
//处理ftp变化事件 //处理ftp变化事件
handleFtpChange(playerId,sportData.getTwentyMinutesFtp()); handleFtpChange(sportUser,sportData.getTwentyMinutesFtp());
} }
void handleFtpChange(Long sportUserId, BigDecimal twentyMinutesFtp) { void handleFtpChange(SportUser sportUser, BigDecimal twentyMinutesFtp) {
if (twentyMinutesFtp == null || twentyMinutesFtp.compareTo(BigDecimal.ZERO) <= 0) { if (twentyMinutesFtp == null || twentyMinutesFtp.compareTo(BigDecimal.ZERO) <= 0) {
return; return;
} }
SportUser sportUser = sportUserMapper.selectById(sportUserId);
BigDecimal oldFtp = sportUser.getFtp() == null ? BigDecimal.ZERO : BigDecimal.valueOf(sportUser.getFtp()); BigDecimal oldFtp = sportUser.getFtp() == null ? BigDecimal.ZERO : BigDecimal.valueOf(sportUser.getFtp());
BigDecimal newFtp = twentyMinutesFtp.multiply(BigDecimal.valueOf(0.93)).setScale(0, RoundingMode.HALF_UP); BigDecimal newFtp = twentyMinutesFtp.multiply(BigDecimal.valueOf(0.93)).setScale(0, RoundingMode.HALF_UP);
if(newFtp.compareTo(oldFtp) == 1) { if(newFtp.compareTo(oldFtp) == 1) {
sportUser.setFtp(newFtp.intValue()); sportUser.setFtp(newFtp.intValue());
sportUserMapper.updateById(sportUser); sportUserMapper.updateById(sportUser);
SportUserFtpChangeLog ftpChangeLog = new SportUserFtpChangeLog(); SportUserFtpChangeLog ftpChangeLog = new SportUserFtpChangeLog();
ftpChangeLog.setSportUserId(sportUserId); ftpChangeLog.setSportUserId(sportUser.getId());
ftpChangeLog.setOldFtp(oldFtp.intValue()); ftpChangeLog.setOldFtp(oldFtp.intValue());
ftpChangeLog.setNewFtp(newFtp.intValue()); ftpChangeLog.setNewFtp(newFtp.intValue());
ftpChangeLog.setCreateTime(LocalDateTime.now()); ftpChangeLog.setCreateTime(LocalDateTime.now());
......
...@@ -43,6 +43,8 @@ public class CyclingDataDTO { ...@@ -43,6 +43,8 @@ public class CyclingDataDTO {
@ApiModelProperty("完成时间 yyyy-MM-dd HH:mm:ss") @ApiModelProperty("完成时间 yyyy-MM-dd HH:mm:ss")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
public LocalDateTime finishTime; public LocalDateTime finishTime;
@ApiModelProperty("平均心率")
public Integer avgHeartRate;
@ApiModelProperty(hidden = true) @ApiModelProperty(hidden = true)
@JsonIgnore @JsonIgnore
......
...@@ -57,9 +57,14 @@ ...@@ -57,9 +57,14 @@
select t1.*, select t1.*,
t1.match_rank as game_rank, t1.match_rank as game_rank,
t2.avatar, t2.avatar,
t2.nickname t2.nickname,
t3.ftp,
t3.heart_rate,
t3.avg_heart_rate,
t3.height
from simple_match_player_record t1 from simple_match_player_record t1
left join sport_user t2 on t1.player_id = t2.id left join sport_user t2 on t1.player_id = t2.id
left join sport_user_training_log t3 on t3.game_mode = 20 and t1.id = t3.record_id
where t1.match_id = #{sourceId} where t1.match_id = #{sourceId}
order by match_rank asc order by match_rank asc
</if> </if>
...@@ -67,9 +72,14 @@ ...@@ -67,9 +72,14 @@
select t1.*, select t1.*,
t1.training_rank as game_rank, t1.training_rank as game_rank,
t2.avatar, t2.avatar,
t2.nickname t2.nickname,
t3.ftp,
t3.heart_rate,
t3.avg_heart_rate,
t3.height
from team_training_player_record t1 from team_training_player_record t1
left join sport_user t2 on t1.player_id = t2.id left join sport_user t2 on t1.player_id = t2.id
left join sport_user_training_log t3 on t3.game_mode = 50 and t1.id = t3.record_id
where t1.team_training_id = #{sourceId} where t1.team_training_id = #{sourceId}
order by training_rank asc order by training_rank asc
</if> </if>
...@@ -77,9 +87,14 @@ ...@@ -77,9 +87,14 @@
select t1.*, select t1.*,
t1.match_rank as game_rank, t1.match_rank as game_rank,
t2.avatar, t2.avatar,
t2.nickname t2.nickname,
t3.ftp,
t3.heart_rate,
t3.avg_heart_rate,
t3.height
from room_mode_player_record t1 from room_mode_player_record t1
left join sport_user t2 on t1.player_id = t2.id left join sport_user t2 on t1.player_id = t2.id
left join sport_user_training_log t3 on t3.game_mode = 60 and t1.id = t3.record_id
where t1.room_id = #{sourceId} where t1.room_id = #{sourceId}
order by match_rank asc order by match_rank asc
</if> </if>
......
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