Commit 988d6884 authored by liming's avatar liming

商城相关表结构初始化

parent 4bed68d4
...@@ -15,13 +15,15 @@ public interface SportUserTrainingLogConverter { ...@@ -15,13 +15,15 @@ public interface SportUserTrainingLogConverter {
@Mappings({ @Mappings({
@Mapping(source = "source.calorie", target = "totalCalorie"), @Mapping(source = "source.calorie", target = "totalCalorie"),
@Mapping(source = "source.createTime", target = "updateTime"),
@Mapping(source = "year", target = "year"), @Mapping(source = "year", target = "year"),
@Mapping(source = "month", target = "month") @Mapping(source = "month", target = "month")
}) })
SportUserMonthRank toSportUserMonthRank(SportUserTrainingLog source, Integer year, Integer month); SportUserMonthRank toSportUserMonthRank(SportUserTrainingLog source, Integer year, Integer month);
@Mappings({ @Mappings({
@Mapping(source = "source.calorie", target = "totalCalorie") @Mapping(source = "source.calorie", target = "totalCalorie"),
@Mapping(source = "source.createTime", target = "updateTime"),
}) })
SportUserRank toSportUserRank(SportUserTrainingLog source); SportUserRank toSportUserRank(SportUserTrainingLog source);
} }
...@@ -96,14 +96,29 @@ public class SportUserTrainingLogService { ...@@ -96,14 +96,29 @@ public class SportUserTrainingLogService {
log.setCreateDate(LocalDate.now()); log.setCreateDate(LocalDate.now());
//处理是否俱乐部日志 //处理是否俱乐部日志
QueryWrapper<ClubMember> clubMemberQuery = new QueryWrapper<>(); QueryWrapper<ClubMember> clubMemberQuery = new QueryWrapper<>();
clubMemberQuery.eq("sport_user_id", playerId); clubMemberQuery.lambda().eq(ClubMember::getSportUserId, playerId).eq(ClubMember::getDeleted, DeleteStatus.UNDELETED);
clubMemberQuery.eq("deleted", DeleteStatus.UNDELETED);
ClubMember clubMember = clubMemberMapper.selectOne(clubMemberQuery); ClubMember clubMember = clubMemberMapper.selectOne(clubMemberQuery);
if (clubMember != null) { if (clubMember != null) {
log.setClubId(clubMember.getClubId()); log.setClubId(clubMember.getClubId());
} }
sportUserTrainingLogMapper.insert(log); sportUserTrainingLogMapper.insert(log);
//处理玩家记录汇总 //处理玩家记录汇总
this.handleSportUserSummary(playerId, log);
//处理俱乐部数据汇总
this.handleClubSummary(clubMember, log);
//处理月度排行
this.modifyMonthRank(playerId, log);
//处理总排行
this.modifyTotalRank(playerId, log);
}
/**
* 处理玩家记录汇总
*
* @param playerId
* @param log
*/
private void handleSportUserSummary(Long playerId, SportUserTrainingLog log) {
QueryWrapper<SportUserSummary> summaryQuery = new QueryWrapper<>(); QueryWrapper<SportUserSummary> summaryQuery = new QueryWrapper<>();
summaryQuery.eq("deleted", DeleteStatus.UNDELETED); summaryQuery.eq("deleted", DeleteStatus.UNDELETED);
summaryQuery.eq("user_id", playerId); summaryQuery.eq("user_id", playerId);
...@@ -126,37 +141,14 @@ public class SportUserTrainingLogService { ...@@ -126,37 +141,14 @@ public class SportUserTrainingLogService {
} else { } else {
sportUserSummaryMapper.updateById(summary); sportUserSummaryMapper.updateById(summary);
} }
//处理俱乐部数据汇总
this.handleClubSummary(clubMember, log);
//处理月度排行
Integer year = LocalDate.now().getYear();
Integer month = LocalDate.now().getMonthValue();
QueryWrapper<SportUserMonthRank> monthRankQuery = new QueryWrapper<>();
monthRankQuery.eq("year", year);
monthRankQuery.eq("month", month);
monthRankQuery.eq("player_id", playerId);
SportUserMonthRank monthRank = sportUserMonthRankMapper.selectOne(monthRankQuery);
if (monthRank == null) {
monthRank = sportUserTrainingLogConverter.toSportUserMonthRank(log, year, month);
monthRank.setUpdateTime(monthRank.getCreateTime());
sportUserMonthRankMapper.insert(monthRank);
} else {
modifyRank(log, monthRank);
}
//处理总排行
QueryWrapper<SportUserRank> rankQuery = new QueryWrapper<>();
rankQuery.eq("player_id", playerId);
SportUserRank rank = sportUserRankMapper.selectOne(rankQuery);
if (rank == null) {
rank = sportUserTrainingLogConverter.toSportUserRank(log);
rank.setUpdateTime(monthRank.getCreateTime());
sportUserRankMapper.insert(rank);
} else {
modifyRank(log, rank);
}
} }
/**
* 处理俱乐部汇总数据
*
* @param clubMember
* @param log
*/
private void handleClubSummary(ClubMember clubMember, SportUserTrainingLog log) { private void handleClubSummary(ClubMember clubMember, SportUserTrainingLog log) {
if (clubMember == null) { if (clubMember == null) {
return; return;
...@@ -169,7 +161,25 @@ public class SportUserTrainingLogService { ...@@ -169,7 +161,25 @@ public class SportUserTrainingLogService {
clubMapper.updateById(club); clubMapper.updateById(club);
} }
private void modifyRank(SportUserTrainingLog log, SportUserMonthRank rank) { /**
* 用户月排行榜修改
*
* @param playerId
* @param log
*/
private void modifyMonthRank(Long playerId, SportUserTrainingLog log) {
Integer year = LocalDate.now().getYear();
Integer month = LocalDate.now().getMonthValue();
QueryWrapper<SportUserMonthRank> monthRankQuery = new QueryWrapper<>();
monthRankQuery.eq("year", year);
monthRankQuery.eq("month", month);
monthRankQuery.eq("player_id", playerId);
SportUserMonthRank rank = sportUserMonthRankMapper.selectOne(monthRankQuery);
if (rank == null) {
rank = sportUserTrainingLogConverter.toSportUserMonthRank(log, year, month);
sportUserMonthRankMapper.insert(rank);
return;
}
rank.setTotalCalorie(rank.getTotalCalorie() + log.getCalorie()); rank.setTotalCalorie(rank.getTotalCalorie() + log.getCalorie());
rank.setUpdateTime(LocalDateTime.now()); rank.setUpdateTime(LocalDateTime.now());
if (log.getOneMinutesFtp().compareTo(rank.getOneMinutesFtp()) == 1) { if (log.getOneMinutesFtp().compareTo(rank.getOneMinutesFtp()) == 1) {
...@@ -194,7 +204,21 @@ public class SportUserTrainingLogService { ...@@ -194,7 +204,21 @@ public class SportUserTrainingLogService {
sportUserMonthRankMapper.updateById(rank); sportUserMonthRankMapper.updateById(rank);
} }
private void modifyRank(SportUserTrainingLog log, SportUserRank rank) { /**
* 用户总排行榜修改
*
* @param log
* @param playerId
*/
private void modifyTotalRank(Long playerId, SportUserTrainingLog log) {
QueryWrapper<SportUserRank> rankQuery = new QueryWrapper<>();
rankQuery.eq("player_id", playerId);
SportUserRank rank = sportUserRankMapper.selectOne(rankQuery);
if (rank == null) {
rank = sportUserTrainingLogConverter.toSportUserRank(log);
sportUserRankMapper.insert(rank);
return;
}
rank.setTotalCalorie(rank.getTotalCalorie() + log.getCalorie()); rank.setTotalCalorie(rank.getTotalCalorie() + log.getCalorie());
rank.setUpdateTime(LocalDateTime.now()); rank.setUpdateTime(LocalDateTime.now());
if (log.getOneMinutesFtp().compareTo(rank.getOneMinutesFtp()) == 1) { if (log.getOneMinutesFtp().compareTo(rank.getOneMinutesFtp()) == 1) {
...@@ -410,8 +434,7 @@ public class SportUserTrainingLogService { ...@@ -410,8 +434,7 @@ public class SportUserTrainingLogService {
result.setEventsClimbDistance(roomMode.getClimbDistance()); result.setEventsClimbDistance(roomMode.getClimbDistance());
} }
} }
if (SportType.BICYCLE.equals(result.getSportType()) if (SportType.BICYCLE.equals(result.getSportType()) && (GameMode.SIMPLE_MATCH.equals(result.getGameMode()) || GameMode.GROUP_TRAINING.equals(result.getGameMode()) || GameMode.ROOM_MODE.equals(result.getGameMode()))) {
&& (GameMode.SIMPLE_MATCH.equals(result.getGameMode()) || GameMode.GROUP_TRAINING.equals(result.getGameMode()) || GameMode.ROOM_MODE.equals(result.getGameMode()))) {
result.setRankList(sportUserTrainingLogBusinessMapper.getRank(result.getGameMode(), result.getSourceId())); result.setRankList(sportUserTrainingLogBusinessMapper.getRank(result.getGameMode(), result.getSourceId()));
} }
return result; return result;
......
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