Skip to content

Commit

Permalink
v0.1.5 Enum으로 리팩토링 및 전면 수정
Browse files Browse the repository at this point in the history
v0.1.5 Enum으로 리팩토링 및 전면 수정
  • Loading branch information
sanbonai06 authored Aug 11, 2022
2 parents 9a4b350 + a151771 commit 6967cee
Show file tree
Hide file tree
Showing 12 changed files with 1,315 additions and 1,793 deletions.
29 changes: 29 additions & 0 deletions src/main/java/com/ceos/bankids/Enum/ChallengeStatus.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
package com.ceos.bankids.Enum;

import lombok.AllArgsConstructor;
import lombok.Getter;

@Getter
@AllArgsConstructor
public enum ChallengeStatus implements EnumMapperType {

REJECTED(1L, 0L, "부모가 거절한 상태"),
ACHIEVED(2L, 0L, "돈길을 완전히 완주한 상태"),
FAILED(0L, 0L, "이자율 위험도에 걸려서 실패한 상태"),
PENDING(1L, 1L, "부모한테 제안한 상태"),
WALKING(1L, 2L, "부모한테 수락 받아서 걷고있는 상태");

private final Long isAchieved;
private final Long status;
private final String description;

@Override
public String getCode() {
return name();
}

@Override
public Long getStatus() {
return status;
}
}
10 changes: 10 additions & 0 deletions src/main/java/com/ceos/bankids/Enum/EnumMapperType.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
package com.ceos.bankids.Enum;

public interface EnumMapperType {

String getCode();

Long getStatus();

Long getIsAchieved();
}
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,6 @@
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.security.core.annotation.AuthenticationPrincipal;
import org.springframework.validation.BindingResult;
import org.springframework.web.bind.annotation.DeleteMapping;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PatchMapping;
Expand All @@ -37,24 +36,13 @@ public class ChallengeController {
@ApiOperation(value = "돈길 생성")
@PostMapping(produces = "application/json; charset=utf-8")
public CommonResponse<ChallengeDTO> postChallenge(@AuthenticationPrincipal User authUser,
@Valid @RequestBody ChallengeRequest challengeRequest, BindingResult bindingResult) {
@Valid @RequestBody ChallengeRequest challengeRequest) {

log.info("api = 돈길 생성, req = {}", challengeRequest);
ChallengeDTO challengeDTO = challengeService.createChallenge(authUser, challengeRequest);
return CommonResponse.onSuccess(challengeDTO);
}

@ApiOperation(value = "돈길 정보 가져오기")
@GetMapping(value = "/{challengeId}", produces = "application/json; charset=utf-8")
public CommonResponse<ChallengeDTO> getChallenge(@AuthenticationPrincipal User authUser,
@PathVariable Long challengeId) {

log.info("api = 돈길 정보 가져오기, user = {}", authUser.getUsername());
ChallengeDTO challengeDTO = challengeService.detailChallenge(authUser, challengeId);

return CommonResponse.onSuccess(challengeDTO);
}

@ApiOperation(value = "돈길 포기하기")
@DeleteMapping(value = "/{challengeId}", produces = "application/json; charset=utf-8")
public CommonResponse<ChallengeDTO> deleteChallenge(
Expand Down
18 changes: 8 additions & 10 deletions src/main/java/com/ceos/bankids/domain/Challenge.java
Original file line number Diff line number Diff line change
@@ -1,10 +1,13 @@
package com.ceos.bankids.domain;

import com.ceos.bankids.Enum.ChallengeStatus;
import com.ceos.bankids.exception.BadRequestException;
import com.fasterxml.jackson.annotation.JsonIgnore;
import java.util.List;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.EnumType;
import javax.persistence.Enumerated;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
Expand Down Expand Up @@ -43,8 +46,9 @@ public class Challenge extends AbstractTimestamp {
private String title;

@Column(nullable = false)
@ColumnDefault("1")
private Long isAchieved;
@Enumerated(EnumType.STRING)
@ColumnDefault("PENDING")
private ChallengeStatus challengeStatus;

@Column(nullable = false)
private Long totalPrice;
Expand All @@ -55,10 +59,6 @@ public class Challenge extends AbstractTimestamp {
@Column(nullable = false)
private Long weeks;

@Column(nullable = false)
@ColumnDefault("1")
private Long status;

@Column(nullable = false)
private Long interestRate;

Expand Down Expand Up @@ -95,11 +95,10 @@ public class Challenge extends AbstractTimestamp {
public Challenge(
Long id,
String title,
Long isAchieved,
ChallengeStatus challengeStatus,
Long totalPrice,
Long weekPrice,
Long weeks,
Long status,
Long interestRate,
Long successWeeks,
String filename,
Expand Down Expand Up @@ -137,12 +136,11 @@ public Challenge(
}

this.id = id;
this.isAchieved = isAchieved;
this.challengeStatus = challengeStatus;
this.title = title;
this.totalPrice = totalPrice;
this.weekPrice = weekPrice;
this.weeks = weeks;
this.status = status;
this.interestRate = interestRate;
this.successWeeks = successWeeks;
this.fileName = filename;
Expand Down
2 changes: 2 additions & 0 deletions src/main/java/com/ceos/bankids/domain/Kid.java
Original file line number Diff line number Diff line change
Expand Up @@ -65,6 +65,7 @@ public Kid(
Long savings,
Long achievedChallenge,
Long totalChallenge,
Timestamp deleteChallenge,
Long level,
User user
) {
Expand All @@ -75,6 +76,7 @@ public Kid(
this.savings = savings;
this.achievedChallenge = achievedChallenge;
this.totalChallenge = totalChallenge;
this.deleteChallenge = deleteChallenge;
this.level = level;
this.user = user;
}
Expand Down
14 changes: 6 additions & 8 deletions src/main/java/com/ceos/bankids/dto/ChallengeDTO.java
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
package com.ceos.bankids.dto;

import com.ceos.bankids.Enum.ChallengeStatus;
import com.ceos.bankids.domain.Challenge;
import com.ceos.bankids.domain.Comment;
import com.fasterxml.jackson.annotation.JsonFormat;
Expand Down Expand Up @@ -29,12 +30,12 @@ public class ChallengeDTO {
@ApiModelProperty(example = "전자제품")
private String itemName;

@ApiModelProperty(example = "PENDING")
private ChallengeStatus challengeStatus;

@ApiModelProperty(example = "부모와 함께 하기")
private String challengeCategory;

@ApiModelProperty(example = "1")
private Long isAchieved;

@ApiModelProperty(example = "30")
private Long interestRate;

Expand All @@ -44,6 +45,7 @@ public class ChallengeDTO {
@ApiModelProperty(example = "10000")
private Long weekPrice;

//succeededWeeks
@ApiModelProperty(example = "0")
private Long successWeeks;

Expand All @@ -54,9 +56,6 @@ public class ChallengeDTO {
@JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy/MM/dd hh:mm:ss", timezone = "Asia/Seoul")
private Timestamp createdAt;

@ApiModelProperty(example = "1")
private Long status;

@ApiModelProperty(example = "true")
private List<ProgressDTO> progressList;

Expand All @@ -68,16 +67,15 @@ public ChallengeDTO(Challenge challenge, List<ProgressDTO> progressDTOList, Comm
this.id = challenge.getId();
this.isMom = challenge.getContractUser().getIsFemale();
this.title = challenge.getTitle();
this.challengeStatus = challenge.getChallengeStatus();
this.itemName = challenge.getTargetItem().getName();
this.challengeCategory = challenge.getChallengeCategory().getCategory();
this.isAchieved = challenge.getIsAchieved();
this.interestRate = challenge.getInterestRate();
this.totalPrice = challenge.getTotalPrice();
this.weekPrice = challenge.getWeekPrice();
this.successWeeks = challenge.getSuccessWeeks();
this.weeks = challenge.getWeeks();
this.createdAt = challenge.getCreatedAt();
this.status = challenge.getStatus();
this.progressList = progressDTOList;
this.comment = comment;
this.fileName = challenge.getFileName();
Expand Down
Original file line number Diff line number Diff line change
@@ -1,13 +1,10 @@
package com.ceos.bankids.repository;

import com.ceos.bankids.domain.Challenge;
import org.springframework.data.jpa.repository.JpaRepository;

import java.util.Optional;
import org.springframework.data.jpa.repository.JpaRepository;

public interface ChallengeRepository extends JpaRepository<Challenge, Long> {

public Optional<Challenge> findById(Long id);

public Optional<Challenge> findByStatus(Long status);
}
2 changes: 0 additions & 2 deletions src/main/java/com/ceos/bankids/service/ChallengeService.java
Original file line number Diff line number Diff line change
Expand Up @@ -15,8 +15,6 @@ public interface ChallengeService {

public ChallengeDTO createChallenge(User user, ChallengeRequest challengeRequest);

public ChallengeDTO detailChallenge(User user, Long challengeId);

public ChallengeDTO deleteChallenge(User user, Long challengeId);

public List<ChallengeDTO> readChallenge(User user, String status);
Expand Down
Loading

0 comments on commit 6967cee

Please sign in to comment.