Skip to content

Commit

Permalink
feat : Rank
Browse files Browse the repository at this point in the history
  • Loading branch information
ecsimsw committed Aug 13, 2023
1 parent 909b889 commit 85f00b2
Show file tree
Hide file tree
Showing 17 changed files with 287 additions and 206 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;

@WebFilter(urlPatterns = {"*"})
@WebFilter(urlPatterns = {"/api/*"})
public class AccessLogFilter implements Filter {

private static final Logger LOGGER = LoggerFactory.getLogger(AccessLogFilter.class);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,8 +17,6 @@

public class TokenFilter extends OncePerRequestFilter {

private static final Logger LOGGER = LoggerFactory.getLogger(TokenFilter.class);

private final String tokenCookieKey;
private final TokenSecret secret;

Expand All @@ -29,7 +27,6 @@ public TokenFilter(TokenSecret secret, String tokenCookieKey) {

@Override
protected void doFilterInternal(HttpServletRequest request, HttpServletResponse response, FilterChain filterChain) throws ServletException, IOException {
LOGGER.info("RefreshTokenValidationFilter");
try {
final String refreshToken = getTokenFromCookies(tokenCookieKey, request.getCookies());
secret.validateToken(refreshToken);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,6 @@ public class XssReplacingFilter implements Filter {

@Override
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
LOGGER.info("PageScriptReplacingFilter");
chain.doFilter(new XssCleanHttpRequestWrapper((HttpServletRequest) request), response);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -20,9 +20,9 @@ public EvaluationItemController(EvaluationItemService evaluationItemService) {
}

@GetMapping("/api/evaluation/score")
public ResponseEntity<TakenScoreResponse> evaluationScore(Long evaluationItemId, int score) {
final int evaluationScore = evaluationItemService.calculateEvaluationScore(evaluationItemId, score);
return ResponseEntity.ok(TakenScoreResponse.of(evaluationScore));
public ResponseEntity<ScoreResponse> evaluationScore(Long evaluationItemId, int memberInputScore) {
final int evaluationScore = evaluationItemService.calculateEvaluationScore(evaluationItemId, memberInputScore);
return ResponseEntity.ok(new ScoreResponse(evaluationScore));
}

@GetMapping("/api/evaluation/items")
Expand Down
33 changes: 20 additions & 13 deletions src/main/java/se/ton/t210/controller/ScoreController.java
Original file line number Diff line number Diff line change
Expand Up @@ -20,17 +20,24 @@ public ScoreController(ScoreService scoreService) {
this.scoreService = scoreService;
}

// @GetMapping("/api/application/rank")
// public ResponseEntity<List<RankResponse>> rank() {
// final Member member = new Member(1l, "name", "email", "password", Gender.MALE, ApplicationType.FireOfficerFemale);
// final List<RankResponse> rankResponses = scoreService.rank(member.getApplicationType(), 5);
// return ResponseEntity.ok(rankResponses);
// }
//
// @GetMapping("/api/records/count")
// public ResponseEntity<RecordCountResponse> recordCount() {
// final Member member = new Member(1l, "name", "email", "password", Gender.MALE, ApplicationType.FireOfficerFemale);
// final RecordCountResponse countResponse = scoreService.count(member.getApplicationType());
// return ResponseEntity.ok(countResponse);
// }
@GetMapping("/api/score/count")
public ResponseEntity<RecordCountResponse> recordCount() {
final Member member = new Member(1l, "name", "email", "password", Gender.MALE, ApplicationType.FireOfficerFemale);
final RecordCountResponse countResponse = scoreService.count(member.getApplicationType());
return ResponseEntity.ok(countResponse);
}

@GetMapping("/api/score/me")
public ResponseEntity<ScoreResponse> myScore() {
final Member member = new Member(1l, "name", "email", "password", Gender.MALE, ApplicationType.FireOfficerFemale);
final ScoreResponse scoreResponse = scoreService.score(member.getId(), LocalDate.now());
return ResponseEntity.ok(scoreResponse);
}

@GetMapping("/api/score/rank")
public ResponseEntity<List<RankResponse>> rank(int rankCnt) {
final Member member = new Member(1l, "name", "email", "password", Gender.MALE, ApplicationType.FireOfficerFemale);
final List<RankResponse> rankResponses = scoreService.rank(member.getApplicationType(), rankCnt, LocalDate.now());
return ResponseEntity.ok(rankResponses);
}
}
44 changes: 44 additions & 0 deletions src/main/java/se/ton/t210/domain/MonthlyEvaluationItemScore.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
package se.ton.t210.domain;

import lombok.Getter;

import javax.persistence.*;
import java.time.LocalDate;
import se.ton.t210.domain.converter.ScoreRecordYearAndMonthConverter;

@Getter
@Entity
public class MonthlyEvaluationItemScore {

@GeneratedValue(strategy = GenerationType.IDENTITY)
@Id
private Long id;
private Long memberId;
private Long evaluationItemId;
private int score;

@Convert(converter = ScoreRecordYearAndMonthConverter.class)
private final LocalDate yearMonth = LocalDate.now();

public MonthlyEvaluationItemScore() {
}

public MonthlyEvaluationItemScore(Long id, Long memberId, Long evaluationItemId, int score) {
this.id = id;
this.memberId = memberId;
this.evaluationItemId = evaluationItemId;
this.score = score;
}

public MonthlyEvaluationItemScore(Long memberId, Long evaluationItemId, int score) {
this(null, memberId, evaluationItemId, score);
}

public static MonthlyEvaluationItemScore of(Member member, EvaluationItem evaluationItem, int score) {
return new MonthlyEvaluationItemScore(
member.getId(),
evaluationItem.getId(),
score
);
}
}
23 changes: 16 additions & 7 deletions src/main/java/se/ton/t210/domain/MonthlyScore.java
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
package se.ton.t210.domain;

import lombok.Getter;
import se.ton.t210.domain.converter.ScoreRecordYearAndMonthConverter;
import se.ton.t210.domain.type.ApplicationType;

import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.*;
import java.time.LocalDate;

@Getter
@Entity
Expand All @@ -14,19 +14,28 @@ public class MonthlyScore {
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Id
private Long id;
private ApplicationType applicationType;
private Long memberId;
private int score;

@Convert(converter = ScoreRecordYearAndMonthConverter.class)
private final LocalDate yearMonth = LocalDate.now();

public MonthlyScore() {
}

public MonthlyScore(Long id, Long memberId, int score) {
public MonthlyScore(Long id, ApplicationType applicationType, Long memberId, int score) {
this.id = id;
this.applicationType = applicationType;
this.memberId = memberId;
this.score = score;
}

public MonthlyScore(Long memberId, int score) {
this(null, memberId, score);
public MonthlyScore(ApplicationType applicationType, Long memberId, int score) {
this(null, applicationType, memberId, score);
}

public static MonthlyScore of(Member member, int score) {
return new MonthlyScore(member.getApplicationType(), member.getId(), score);
}
}
36 changes: 0 additions & 36 deletions src/main/java/se/ton/t210/domain/MonthlyScoreItem.java

This file was deleted.

Original file line number Diff line number Diff line change
Expand Up @@ -6,11 +6,11 @@
import java.util.List;
import java.util.Set;

public interface MonthlyScoreItemRepository extends JpaRepository<MonthlyScoreItem, Long> {
public interface MonthlyScoreItemRepository extends JpaRepository<MonthlyEvaluationItemScore, Long> {

List<MonthlyScoreItem> findAllByMemberIdAndYearMonth(Long memberId, LocalDate yearMonth);
List<MonthlyEvaluationItemScore> findAllByMemberIdAndYearMonth(Long memberId, LocalDate yearMonth);

List<MonthlyScoreItem> findAllByEvaluationItemIdAndYearMonth(Long evaluationItemId, LocalDate yearMonth);
List<MonthlyEvaluationItemScore> findAllByEvaluationItemIdAndYearMonth(Long evaluationItemId, LocalDate yearMonth);

int countByEvaluationItemIdIn(Set<Long> evaluationIds);
}
11 changes: 11 additions & 0 deletions src/main/java/se/ton/t210/domain/MonthlyScoreRepository.java
Original file line number Diff line number Diff line change
@@ -1,9 +1,20 @@
package se.ton.t210.domain;

import org.springframework.data.domain.PageRequest;
import org.springframework.data.jpa.repository.JpaRepository;
import se.ton.t210.domain.type.ApplicationType;

import javax.persistence.Entity;
import java.time.LocalDate;
import java.util.List;
import java.util.Optional;
import java.util.Set;

public interface MonthlyScoreRepository extends JpaRepository<MonthlyScore, Long> {

int countByApplicationType(ApplicationType applicationType);

Optional<MonthlyScore> findByMemberIdAndYearMonth(Long memberId, LocalDate yearMonth);

List<MonthlyScore> findAllByApplicationTypeAndYearMonth(ApplicationType applicationType, LocalDate yearMonth, PageRequest page);
}
28 changes: 28 additions & 0 deletions src/main/java/se/ton/t210/dto/RankResponse.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
package se.ton.t210.dto;

import lombok.Getter;
import se.ton.t210.domain.Member;
import se.ton.t210.domain.MonthlyScore;
import se.ton.t210.domain.type.ApplicationType;

@Getter
public class RankResponse {

private final int rank;
private final Long memberId;
private final String memberName;
private final ApplicationType applicationType;
private final int score;

public RankResponse(int rank, Long memberId, String memberName, ApplicationType applicationType, int score) {
this.rank = rank;
this.memberId = memberId;
this.memberName = memberName;
this.applicationType = applicationType;
this.score = score;
}

public static RankResponse of(int rank, Member member, MonthlyScore score) {
return new RankResponse(rank, member.getId(), member.getName(), member.getApplicationType(), score.getScore());
}
}
4 changes: 1 addition & 3 deletions src/main/java/se/ton/t210/dto/RecordCountResponse.java
Original file line number Diff line number Diff line change
Expand Up @@ -6,11 +6,9 @@
@Getter
public class RecordCountResponse {

private final ApplicationType applicationType;
private final int count;

public RecordCountResponse(ApplicationType applicationType, int count) {
this.applicationType = applicationType;
public RecordCountResponse(int count) {
this.count = count;
}
}
13 changes: 13 additions & 0 deletions src/main/java/se/ton/t210/dto/ScoreResponse.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
package se.ton.t210.dto;

import lombok.Getter;

@Getter
public class ScoreResponse {

private final int score;

public ScoreResponse(int score) {
this.score = score;
}
}
17 changes: 0 additions & 17 deletions src/main/java/se/ton/t210/dto/TakenScoreResponse.java

This file was deleted.

13 changes: 0 additions & 13 deletions src/main/java/se/ton/t210/dto/UploadScoreRequest.java
Original file line number Diff line number Diff line change
@@ -1,9 +1,6 @@
package se.ton.t210.dto;

import lombok.Getter;
import se.ton.t210.domain.MonthlyScoreItem;

import java.util.List;

@Getter
public class UploadScoreRequest {
Expand Down Expand Up @@ -36,16 +33,6 @@ public UploadScoreRequest(Long evaluationItemId1, Long score1, Long evaluationIt
this.score5 = score5;
}

public List<MonthlyScoreItem> records(Long memberId) {
return List.of(
new MonthlyScoreItem(memberId, evaluationItemId1, score1),
new MonthlyScoreItem(memberId, evaluationItemId2, score2),
new MonthlyScoreItem(memberId, evaluationItemId3, score3),
new MonthlyScoreItem(memberId, evaluationItemId4, score4),
new MonthlyScoreItem(memberId, evaluationItemId5, score5)
);
}

public Long scoreSum() {
return score1 + score2 + score3 + score4 + score5;
}
Expand Down
Loading

0 comments on commit 85f00b2

Please sign in to comment.