Skip to content

Commit

Permalink
refactor: timeList data structure
Browse files Browse the repository at this point in the history
  • Loading branch information
kastnerorz committed Nov 20, 2019
1 parent eda8b0e commit 077377b
Show file tree
Hide file tree
Showing 4 changed files with 12 additions and 8 deletions.
2 changes: 1 addition & 1 deletion src/main/java/cn/kastner/oj/domain/TimeCost.java
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ public class TimeCost {
@Column(length = 40)
private String id = UUID.randomUUID().toString();

@ManyToOne(fetch = FetchType.LAZY)
@ManyToOne(fetch = FetchType.EAGER)
@NotFound(action = NotFoundAction.IGNORE)
private ContestProblem contestProblem;

Expand Down
4 changes: 2 additions & 2 deletions src/main/java/cn/kastner/oj/dto/RankingUserDTO.java
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

import lombok.Data;

import java.util.List;
import java.util.Map;

@Data
public class RankingUserDTO {
Expand All @@ -25,7 +25,7 @@ public class RankingUserDTO {

private Double score;

private List<TimeCostDTO> timeList;
private Map<String, TimeCostDTO> timeList;

private Boolean ranked;

Expand Down
2 changes: 1 addition & 1 deletion src/main/java/cn/kastner/oj/task/RankingComputingTask.java
Original file line number Diff line number Diff line change
Expand Up @@ -54,7 +54,7 @@ public void computeRank() {
for (int i = 0; i < rankingUserList.size(); i++) {
RankingUser rankingUser = rankingUserList.get(i);
List<TimeCost> timeCostList = timeCostRepository.findByRankingUser(rankingUser);
redisTemplate.opsForValue().set("timeCostList:" + rankingUser.getId(), mapper.toTimeCostDTOs(timeCostList));
redisTemplate.opsForValue().set("timeCostList:" + rankingUser.getId(), mapper.toLabelTimeCostDTOs(timeCostList));
rankingUser.setRankingNumber(i);
if (!rankingUser.getRanked()) {
i--;
Expand Down
12 changes: 8 additions & 4 deletions src/main/java/cn/kastner/oj/util/DTOMapper.java
Original file line number Diff line number Diff line change
Expand Up @@ -8,9 +8,7 @@
import org.mapstruct.Mapper;
import org.mapstruct.Mapping;

import java.util.Collection;
import java.util.List;
import java.util.Set;
import java.util.*;

@Mapper(componentModel = "spring")
public interface DTOMapper {
Expand Down Expand Up @@ -130,7 +128,13 @@ public interface DTOMapper {

TimeCostDTO entityToDTO(TimeCost timeCost);

List<TimeCostDTO> toTimeCostDTOs(List<TimeCost> timeCostList);
default Map<String, TimeCostDTO> toLabelTimeCostDTOs(List<TimeCost> timeCostList) {
Map<String, TimeCostDTO> labelTimeCostDTO = new HashMap<>();
for (TimeCost timeCost : timeCostList) {
labelTimeCostDTO.put(timeCost.getContestProblem().getLabel(), entityToDTO(timeCost));
}
return labelTimeCostDTO;
}

@Mapping(target = "authorName", source = "author.username")
@Mapping(target = "contestId", source = "contest.id")
Expand Down

0 comments on commit 077377b

Please sign in to comment.