Skip to content

Commit

Permalink
[Feat] 목표 체계 개편
Browse files Browse the repository at this point in the history
  • Loading branch information
funnysunny08 committed Jan 8, 2024
1 parent 1bd44b5 commit b114101
Show file tree
Hide file tree
Showing 12 changed files with 139 additions and 217 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -10,11 +10,14 @@
@NoArgsConstructor(access = AccessLevel.PRIVATE)
@AllArgsConstructor(access = AccessLevel.PRIVATE)
public class UserResponseDto {
private UserResponseUserDto userResponseUserDto;
private UserResponseGoalDto userResponseGoalDto;
private Long userId;
private String nickname;
private String userLevel;
private Boolean fcmIsAllowed;
private Long savedAmount;
private Long savedCount;

public static UserResponseDto of(UserResponseUserDto userResponseUserDto, UserResponseGoalDto userResponseGoalDto) {
return new UserResponseDto(userResponseUserDto, userResponseGoalDto);
public static UserResponseDto of(Long userId, String nickname, String userLevel, Boolean fcmIsAllowed, Long savedAmount, Long savedCount) {
return new UserResponseDto(userId, nickname, userLevel, fcmIsAllowed, savedAmount, savedCount);
}
}

This file was deleted.

This file was deleted.

22 changes: 15 additions & 7 deletions src/main/java/org/winey/server/domain/feed/Feed.java
Original file line number Diff line number Diff line change
@@ -1,27 +1,35 @@
package org.winey.server.domain.feed;

import java.util.List;
import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.OneToMany;
import lombok.AccessLevel;
import lombok.Builder;
import lombok.Getter;
import lombok.NoArgsConstructor;
import org.springframework.data.annotation.CreatedDate;
import org.winey.server.domain.AuditingTimeEntity;
import org.winey.server.domain.comment.Comment;
import org.winey.server.domain.goal.Goal;
import org.winey.server.domain.user.User;

import javax.persistence.*;
import java.time.LocalDateTime;
import java.util.List;

@Getter
@Entity
@NoArgsConstructor(access = AccessLevel.PROTECTED)
public class Feed extends AuditingTimeEntity {

@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "feed_id")
private Long feedId;

@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name="user_id")
private User user;
Expand All @@ -46,11 +54,11 @@ public class Feed extends AuditingTimeEntity {
private List<Comment> comments;

@Builder
public Feed(User user, String feedTitle, String feedImage, Long feedMoney, Goal goal){
public Feed(User user, String feedTitle, String feedImage, Long feedMoney) {
this.user = user;
this.feedTitle = feedTitle;
this.feedImage = feedImage;
this.feedMoney = feedMoney;
this.goal = goal;
this.goal = null;
}
}
9 changes: 2 additions & 7 deletions src/main/java/org/winey/server/domain/goal/Goal.java
Original file line number Diff line number Diff line change
@@ -1,9 +1,6 @@
package org.winey.server.domain.goal;

import java.time.LocalDate;
import java.util.ArrayList;
import java.util.List;
import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.ConstraintMode;
import javax.persistence.Entity;
Expand All @@ -16,7 +13,6 @@
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.OneToMany;
import javax.persistence.Table;
import javax.persistence.UniqueConstraint;
import lombok.AccessLevel;
Expand All @@ -25,7 +21,6 @@
import lombok.NoArgsConstructor;
import org.hibernate.annotations.DynamicInsert;
import org.winey.server.domain.AuditingTimeEntity;
import org.winey.server.domain.feed.Feed;
import org.winey.server.domain.user.User;

@Entity
Expand Down Expand Up @@ -64,8 +59,8 @@ public class Goal extends AuditingTimeEntity {
@JoinColumn(name = "user_id", nullable = false, foreignKey = @ForeignKey(ConstraintMode.CONSTRAINT))
private User user;

@OneToMany(fetch = FetchType.LAZY, cascade = CascadeType.REMOVE, mappedBy = "goal", orphanRemoval = true)
private List<Feed> feeds = new ArrayList<>();
// @OneToMany(fetch = FetchType.LAZY, cascade = CascadeType.REMOVE, mappedBy = "goal", orphanRemoval = true)
// private List<Feed> feeds = new ArrayList<>();

@Builder
public Goal(GoalType goalType, User user) {
Expand Down
9 changes: 5 additions & 4 deletions src/main/java/org/winey/server/domain/goal/GoalType.java
Original file line number Diff line number Diff line change
Expand Up @@ -7,13 +7,14 @@
@Getter
@AllArgsConstructor
public enum GoalType {
COMMONER_GOAL(UserLevel.COMMONER, 5000, "아메리카노"),
KNIGHT_GOAL(UserLevel.KNIGHT, 30000, "치킨"),
ARISTOCRAT_GOAL(UserLevel.ARISTOCRAT, 150000, "운동화"),
EMPEROR_GOAL(UserLevel.EMPEROR, 300000, "에어팟");
COMMONER_GOAL(UserLevel.COMMONER, 5000, 2, "아메리카노"),
KNIGHT_GOAL(UserLevel.KNIGHT, 30000, 7, "치킨"),
ARISTOCRAT_GOAL(UserLevel.ARISTOCRAT, 150000, 10, "운동화"),
EMPEROR_GOAL(UserLevel.EMPEROR, 300000, 20, "에어팟");

private final UserLevel userLevel;
private final int targetMoney;
private final int targetCount;
private final String targetProduct;

public static GoalType findGoalTypeByUserLevel(UserLevel userLevel) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,10 +2,6 @@

import lombok.AllArgsConstructor;
import lombok.Getter;
import lombok.RequiredArgsConstructor;
import lombok.Setter;

import javax.validation.constraints.Null;

@Getter
@AllArgsConstructor
Expand All @@ -18,8 +14,7 @@ public enum NotiType {
//삭제로 등급 강등
DELETERANKDOWNTO3("게시글이 삭제되어 등급이 귀족으로 내려갔어요."),
DELETERANKDOWNTO2("게시글이 삭제되어 등급이 기사로 내려갔어요."),

DELETERANKDOWNTO1("게시글이 삭제되어 등급이 귀족으로 내려갔어요."),
DELETERANKDOWNTO1("게시글이 삭제되어 등급이 평민으로 내려갔어요."),

//목표 달성 실패
GOALFAILED("이번에는 아쉽지만 힘내서 다음 목표를 세워볼까요?"),
Expand Down
18 changes: 18 additions & 0 deletions src/main/java/org/winey/server/domain/user/User.java
Original file line number Diff line number Diff line change
Expand Up @@ -60,6 +60,12 @@ public class User extends AuditingTimeEntity {
@Column(nullable = true)
private Boolean fcmIsAllowed = true;

@Column
private Long savedAmount;

@Column
private Long savedCount;

@OneToMany(fetch = FetchType.LAZY, cascade = CascadeType.REMOVE, mappedBy = "user", orphanRemoval = true)
private List<Goal> goals;

Expand All @@ -83,6 +89,8 @@ public User(String nickname, String socialId, SocialType socialType) {
this.userLevel = COMMONER;
this.socialId = socialId;
this.socialType = socialType;
this.savedCount = 0L;
this.savedAmount = 0L;
}

public void updateUserLevel(UserLevel userLevel){
Expand Down Expand Up @@ -117,6 +125,16 @@ public void updateNickname(String nickname) {

public void updateFcmIsAllowed(Boolean isAllowed){this.fcmIsAllowed = isAllowed;}

public void increaseSavedAmountAndCount(Long money) {
this.savedAmount += money;
this.savedCount += 1;
}

public void decreaseSavedAmountAndCount(Long money) {
this.savedCount -= money;
this.savedCount -= 1;
}

public String getFcmToken() {
if (Objects.nonNull(this.fcmToken)) {
return this.fcmToken;
Expand Down
21 changes: 17 additions & 4 deletions src/main/java/org/winey/server/domain/user/UserLevel.java
Original file line number Diff line number Diff line change
Expand Up @@ -6,11 +6,24 @@
@Getter
@AllArgsConstructor
public enum UserLevel {
COMMONER("평민", 1),
KNIGHT("기사", 2),
ARISTOCRAT("귀족", 3),
EMPEROR("황제", 4);
COMMONER("평민", 1, 0L, 0L),
KNIGHT("기사", 2, 30000L, 2L),
ARISTOCRAT("귀족", 3, 150000L, 4L),
EMPEROR("황제", 4, 300000L, 6L);

private final String name;
private final int levelNumber;
private final Long minimumAmount;
private final Long minimumCount;

public static UserLevel calculateUserLevel(Long amount, Long count) {
if (amount >= EMPEROR.minimumAmount && count >= EMPEROR.minimumCount) {
return EMPEROR;
} else if (amount >= ARISTOCRAT.minimumAmount && count >= ARISTOCRAT.minimumCount) {
return ARISTOCRAT;
} else if (amount >= KNIGHT.minimumAmount && count >= KNIGHT.minimumCount) {
return KNIGHT;
}
return COMMONER;
}
}
Loading

0 comments on commit b114101

Please sign in to comment.