Skip to content

Commit

Permalink
✨ [STMT-89] 당도 -> 레벨 변경으로 인한 스키마 구조 변경 및 코드 대응 (#88)
Browse files Browse the repository at this point in the history
Co-authored-by: yongckim <zxcv9203@naver.com>
  • Loading branch information
05AM and zxcv9203 authored Mar 6, 2024
1 parent 346f4d8 commit 6499fd2
Show file tree
Hide file tree
Showing 8 changed files with 79 additions and 13 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@

import com.stumeet.server.common.model.BaseTimeEntity;
import com.stumeet.server.member.domain.AuthType;
import com.stumeet.server.member.domain.MemberRank;
import com.stumeet.server.member.domain.UserRole;
import com.stumeet.server.profession.adapter.out.persistence.ProfessionJpaEntity;
import jakarta.persistence.*;
Expand Down Expand Up @@ -36,9 +37,14 @@ public class MemberJpaEntity extends BaseTimeEntity {
@Comment("멤버 이미지 URL")
private String image;

@Column(name = "sugar_contents", nullable = false)
@Comment("포도알 당도")
private Double sugarContents;
@Column(name = "rank", length = 50, nullable = false)
@Enumerated(EnumType.STRING)
@Comment("등급")
private MemberRank rank;

@Column(name = "experience", nullable = false)
@Comment("경험치")
private double experience;

@Column(name = "region", length = 50)
@Comment("지역")
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
package com.stumeet.server.member.adapter.out.persistence;

import com.stumeet.server.member.domain.Member;
import com.stumeet.server.member.domain.MemberLevel;
import com.stumeet.server.profession.adapter.out.persistence.ProfessionPersistenceMapper;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Component;
Expand All @@ -16,7 +17,8 @@ public MemberJpaEntity toEntity(Member domain) {
.id(domain.getId())
.name(domain.getName())
.image(domain.getImage())
.sugarContents(domain.getSugarContents())
.rank(domain.getLevel().getRank())
.experience(domain.getLevel().getExperience())
.region(domain.getRegion())
.profession(professionPersistenceMapper.toEntity(domain.getProfession()))
.authType(domain.getAuthType())
Expand All @@ -25,11 +27,16 @@ public MemberJpaEntity toEntity(Member domain) {
}

public Member toDomain(MemberJpaEntity entity) {
MemberLevel level = MemberLevel.builder()
.rank(entity.getRank())
.experience(entity.getExperience())
.build();

return Member.builder()
.id(entity.getId())
.name(entity.getName())
.image(entity.getImage())
.sugarContents(entity.getSugarContents())
.level(level)
.region(entity.getRegion())
.profession(professionPersistenceMapper.toDomain(entity.getProfession()))
.authType(entity.getAuthType())
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -28,9 +28,13 @@ public Member getMemberOrCreate(OAuthUserProfileResponse response, String provid
if (isRegisterUser) {
member = memberQueryPort.getByOAuthProviderId(response.id(), oAuthProvider);
} else {
MemberLevel initialLevel = MemberLevel.builder()
.rank(MemberRank.SEED)
.experience(0.0)
.build();
member = memberCommandPort.save(
Member.builder()
.sugarContents(0.0)
.level(initialLevel)
.authType(AuthType.OAUTH)
.role(UserRole.FIRST_LOGIN)
.build()
Expand Down
2 changes: 1 addition & 1 deletion src/main/java/com/stumeet/server/member/domain/Member.java
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ public class Member {

private String image;

private Double sugarContents;
private MemberLevel level;

private String region;

Expand Down
14 changes: 14 additions & 0 deletions src/main/java/com/stumeet/server/member/domain/MemberLevel.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
package com.stumeet.server.member.domain;

import lombok.*;


@Getter
@NoArgsConstructor(access = AccessLevel.PROTECTED)
@AllArgsConstructor(access = AccessLevel.PRIVATE)
@Builder
public class MemberLevel {

private MemberRank rank;
private double experience;
}
19 changes: 19 additions & 0 deletions src/main/java/com/stumeet/server/member/domain/MemberRank.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
package com.stumeet.server.member.domain;

import lombok.Getter;
import lombok.RequiredArgsConstructor;

@RequiredArgsConstructor
@Getter
public enum MemberRank {
SEED("씨앗"),
SPROUT("새싹"),
LEAF("잎"),
FLOWER("꽃"),
TREE("나무"),
FRUIT("열매");


private final String name;

}
8 changes: 8 additions & 0 deletions src/main/resources/db/migration/V1.2__modify_member_level.sql
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
ALTER TABLE `member`
DROP COLUMN `sugar_contents`;

ALTER TABLE `member`
ADD COLUMN `rank` VARCHAR(50) not null comment '등급' AFTER `image`;

ALTER TABLE `member`
ADD COLUMN `experience` DOUBLE not null comment '경험치' AFTER `rank` ;
20 changes: 14 additions & 6 deletions src/test/java/com/stumeet/server/stub/MemberStub.java
Original file line number Diff line number Diff line change
Expand Up @@ -3,9 +3,7 @@
import com.stumeet.server.member.adapter.out.persistence.MemberJpaEntity;
import com.stumeet.server.member.application.port.in.command.MemberSignupCommand;
import com.stumeet.server.member.application.port.in.command.MemberUpdateCommand;
import com.stumeet.server.member.domain.AuthType;
import com.stumeet.server.member.domain.Member;
import com.stumeet.server.member.domain.UserRole;
import com.stumeet.server.member.domain.*;
import com.stumeet.server.helper.WithMockMember;
import org.springframework.mock.web.MockMultipartFile;

Expand All @@ -31,7 +29,8 @@ public static MemberJpaEntity getMemberEntity() {
.name("test")
.role(UserRole.FIRST_LOGIN)
.authType(AuthType.OAUTH)
.sugarContents(0.0)
.rank(MemberRank.SEED)
.experience(0.0)
.build();
}

Expand All @@ -41,25 +40,34 @@ public static MemberSignupCommand getMemberSignupCommand() {
}

public static Member getMember(WithMockMember annotation) {
MemberLevel level = MemberLevel.builder()
.rank(MemberRank.SEED)
.experience(0.0)
.build();

return Member.builder()
.id(1L)
.name("test")
.role(annotation.authority())
.authType(AuthType.OAUTH)
.sugarContents(0.0)
.level(level)
.profession(null)
.region(null)
.image(null)
.build();
}

public static Member getMember() {
MemberLevel level = MemberLevel.builder()
.rank(MemberRank.SEED)
.experience(0.0)
.build();
return Member.builder()
.id(1L)
.name("test")
.role(UserRole.MEMBER)
.authType(AuthType.OAUTH)
.sugarContents(0.0)
.level(level)
.profession(null)
.region(null)
.image(null)
Expand Down

0 comments on commit 6499fd2

Please sign in to comment.