Skip to content

Commit

Permalink
refactor : rename evaluationItem
Browse files Browse the repository at this point in the history
  • Loading branch information
ecsimsw committed Aug 12, 2023
1 parent 4882cc4 commit 85ac7f1
Show file tree
Hide file tree
Showing 8 changed files with 89 additions and 24 deletions.
21 changes: 21 additions & 0 deletions src/main/java/se/ton/t210/configuration/WebCorsConfig.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
package se.ton.t210.configuration;

import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.CorsRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;

@Configuration
public class WebCorsConfig implements WebMvcConfigurer {

@Value("${mymarket.web.cors.allow.origins:http://localhost:8080}")
private String[] allowOrigins;

@Override
public void addCorsMappings(CorsRegistry registry) {
registry.addMapping("/**")
.allowedOrigins(allowOrigins)
.allowedMethods("*")
.allowCredentials(true);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -7,26 +7,26 @@
import se.ton.t210.domain.type.ApplicationType;
import se.ton.t210.dto.EvaluationItemNamesResponse;
import se.ton.t210.dto.TakenScoreResponse;
import se.ton.t210.service.EvaluationService;
import se.ton.t210.service.EvaluationItemService;

@RestController
public class EvaluationController {
public class EvaluationItemController {

private final EvaluationService evaluationService;
private final EvaluationItemService evaluationItemService;

public EvaluationController(EvaluationService evaluationService) {
this.evaluationService = evaluationService;
public EvaluationItemController(EvaluationItemService evaluationItemService) {
this.evaluationItemService = evaluationItemService;
}

@GetMapping("/api/judge/score")
@GetMapping("/api/evaluation/score")
public ResponseEntity<TakenScoreResponse> takenScore(Long evaluationItemId, int score) {
final int takenScore = evaluationService.calculateTakenScore(evaluationItemId, score);
final int takenScore = evaluationItemService.calculateTakenScore(evaluationItemId, score);
return ResponseEntity.ok(TakenScoreResponse.of(takenScore));
}

@GetMapping("/api/judge/names")
@GetMapping("/api/evaluation/names")
public ResponseEntity<List<EvaluationItemNamesResponse>> itemNames(ApplicationType applicationType) {
final List<EvaluationItemNamesResponse> names = evaluationService.itemNames(applicationType);
final List<EvaluationItemNamesResponse> names = evaluationItemService.itemNames(applicationType);
return ResponseEntity.ok(names);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,11 @@
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
import se.ton.t210.domain.Member;
import se.ton.t210.domain.type.ApplicationType;
import se.ton.t210.domain.type.Gender;
import se.ton.t210.dto.MonthlyScoresResponse;
import se.ton.t210.dto.RecordCountResponse;
import se.ton.t210.dto.TopMonthlyScoresResponse;
import se.ton.t210.service.EvaluationScoreRecordService;

Expand All @@ -19,11 +22,6 @@ public EvaluationScoreRecordController(EvaluationScoreRecordService evaluationSc
this.evaluationScoreRecordService = evaluationScoreRecordService;
}

@GetMapping("/api/up")
public String up() {
return "299";
}

@GetMapping("/api/me/avgScores")
public ResponseEntity<MonthlyScoresResponse> myScoreRecordResponse(String yearDate) {
Long memberId = 1L;
Expand All @@ -36,4 +34,11 @@ public ResponseEntity<TopMonthlyScoresResponse> topScoresRecordResponse(Applicat
final TopMonthlyScoresResponse topMonthlyScoresResponse = evaluationScoreRecordService.averageAllScoresByJudgingItem(applicationType, LocalDate.parse(yearDate));
return ResponseEntity.ok(topMonthlyScoresResponse);
}

@GetMapping("/api/records/count")
public ResponseEntity<RecordCountResponse> recordCount() {
final Member member = new Member(1l, "name", "email", "password", Gender.MALE, ApplicationType.FireOfficerFemale);
final RecordCountResponse countResponse = evaluationScoreRecordService.count(member.getApplicationType());
return ResponseEntity.ok(countResponse);
}
}
Original file line number Diff line number Diff line change
@@ -1,13 +1,19 @@
package se.ton.t210.domain;

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

import java.time.LocalDate;
import java.util.List;
import java.util.Set;

public interface EvaluationItemScoreRecordRepository extends JpaRepository<EvaluationItemScoreRecord, Long> {

List<EvaluationItemScoreRecord> findAllByMemberIdAndCreatedAt(Long memberId, LocalDate date);

List<EvaluationItemScoreRecord> findAllByEvaluationItemIdAndCreatedAt(Long evaluationItemId, LocalDate date);

int findAllByEvaluationItemIdIn(Set<Long> evaluationSet);

int countByEvaluationItemIdIn(Set<Long> evaluationIds);
}
4 changes: 4 additions & 0 deletions src/main/java/se/ton/t210/domain/Member.java
Original file line number Diff line number Diff line change
Expand Up @@ -61,6 +61,10 @@ public Member(String name, String email, String password, Gender gender,
this(null, name, email, password, gender, applicationType, createdAt, updatedAt);
}

public Member(Long id, String name, String email, String password, Gender gender, ApplicationType applicationType) {
this(id, name, email, password, gender, applicationType, LocalDate.now(), LocalDate.now());
}

public void reissuePwd(String newPwd) {
this.password = newPwd;
}
Expand Down
16 changes: 16 additions & 0 deletions src/main/java/se/ton/t210/dto/RecordCountResponse.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
package se.ton.t210.dto;

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

@Getter
public class RecordCountResponse {

private final ApplicationType applicationType;
private final int count;

public RecordCountResponse(ApplicationType applicationType, int count) {
this.applicationType = applicationType;
this.count = count;
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -12,12 +12,12 @@
import java.util.List;

@Service
public class EvaluationService {
public class EvaluationItemService {

private final EvaluationScoreSectionRepository evaluationScoreSectionRepository;
private final EvaluationItemRepository evaluationItemRepository;

public EvaluationService(EvaluationScoreSectionRepository evaluationScoreSectionRepository, EvaluationItemRepository evaluationItemRepository) {
public EvaluationItemService(EvaluationScoreSectionRepository evaluationScoreSectionRepository, EvaluationItemRepository evaluationItemRepository) {
this.evaluationScoreSectionRepository = evaluationScoreSectionRepository;
this.evaluationItemRepository = evaluationItemRepository;
}
Expand Down
Original file line number Diff line number Diff line change
@@ -1,16 +1,21 @@
package se.ton.t210.service;

import java.util.stream.Collectors;
import org.springframework.stereotype.Service;
import se.ton.t210.domain.*;
import se.ton.t210.domain.EvaluationItem;
import se.ton.t210.domain.EvaluationItemRepository;
import se.ton.t210.domain.EvaluationItemScoreRecord;
import se.ton.t210.domain.EvaluationItemScoreRecordRepository;
import se.ton.t210.domain.type.ApplicationType;
import se.ton.t210.dto.MonthlyScoresResponse;
import se.ton.t210.dto.RecordCountResponse;
import se.ton.t210.dto.TopMonthlyScoresResponse;

import java.time.LocalDate;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Set;
import java.util.stream.Collectors;

import static java.util.stream.Collectors.averagingInt;
import static java.util.stream.Collectors.groupingBy;
Expand All @@ -37,16 +42,24 @@ public TopMonthlyScoresResponse averageAllScoresByJudgingItem(ApplicationType ap
final Map<Long, Double> top50PScores = new HashMap<>();
final Map<Long, Double> top30PScores = new HashMap<>();
final List<Long> judgingItemIds = evaluationItemRepository.findAllByApplicationType(applicationType)
.stream()
.map(EvaluationItem::getId)
.collect(Collectors.toList());
for(Long judgingItemId : judgingItemIds) {
.stream()
.map(EvaluationItem::getId)
.collect(Collectors.toList());
for (Long judgingItemId : judgingItemIds) {
final List<EvaluationItemScoreRecord> scores = evaluationItemScoreRecordRepository.findAllByEvaluationItemIdAndCreatedAt(judgingItemId, date);
final int top50PScore = scores.get((scores.size()/2)+1).getScore();
final int top30PScore = scores.get((scores.size()/3 * 2)+1).getScore();
final int top50PScore = scores.get((scores.size() / 2) + 1).getScore();
final int top30PScore = scores.get((scores.size() / 3 * 2) + 1).getScore();
top50PScores.put(judgingItemId, (double) top50PScore);
top30PScores.put(judgingItemId, (double) top30PScore);
}
return TopMonthlyScoresResponse.listOf(top50PScores, top30PScores);
}

public RecordCountResponse count(ApplicationType applicationType) {
final Set<Long> evaluationIds = evaluationItemRepository.findAllByApplicationType(applicationType).stream()
.map(it -> it.getId())
.collect(Collectors.toSet());
final int count = evaluationItemScoreRecordRepository.countByEvaluationItemIdIn(evaluationIds);
return new RecordCountResponse(applicationType, count);
}
}

0 comments on commit 85ac7f1

Please sign in to comment.