Skip to content

Commit 9babf63

Browse files
authored
Merge pull request #48 from MEME-UMC/refactor/#45
[Refactor] User-Artist/Model 연관관계 수정
2 parents 3d0aa9e + 4a53698 commit 9babf63

19 files changed

+106
-72
lines changed

MEME-SERVICE/src/main/java/org/meme/service/domain/converter/ArtistConverter.java

+7-7
Original file line numberDiff line numberDiff line change
@@ -17,10 +17,10 @@ public static ArtistResponse.ArtistDto toArtistDto(Artist artist, boolean isFavo
1717
return ArtistResponse.ArtistDto.builder()
1818
.artistId(artist.getUserId())
1919
.isFavorite(isFavorite)
20-
.gender(artist.getGender())
21-
.nickname(artist.getNickname())
22-
.profileImg(artist.getProfileImg())
23-
.email(artist.getEmail())
20+
.gender(artist.getUser().getGender())
21+
.nickname(artist.getUser().getNickname())
22+
.profileImg(artist.getUser().getProfileImg())
23+
.email(artist.getUser().getEmail())
2424
.phoneNumber(artist.getPhoneNumber())
2525
.instagramId(artist.getInstagramId())
2626
.introduction(artist.getIntroduction())
@@ -35,9 +35,9 @@ public static ArtistResponse.ArtistDto toArtistDto(Artist artist, boolean isFavo
3535
public static ArtistResponse.ArtistSimpleDto toArtistSimpleDto(Artist artist, Long modelCount) {
3636
return ArtistResponse.ArtistSimpleDto.builder()
3737
.artistId(artist.getUserId())
38-
.profileImg(artist.getProfileImg())
39-
.artistNickName(artist.getNickname())
40-
.email(artist.getEmail())
38+
.profileImg(artist.getUser().getProfileImg())
39+
.artistNickName(artist.getUser().getNickname())
40+
.email(artist.getUser().getEmail())
4141
.region(artist.getRegion().get(0).getValue())
4242
.modelCount(modelCount)
4343
.build();

MEME-SERVICE/src/main/java/org/meme/service/domain/converter/FavoriteConverter.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ public class FavoriteConverter {
1313
public static FavoriteArtist toFavoriteArtist(Artist artist, Model model){
1414
return FavoriteArtist.builder()
1515
.model(model)
16-
.artistId(artist.getUserId())
16+
.artist(artist)
1717
.build();
1818
}
1919

MEME-SERVICE/src/main/java/org/meme/service/domain/converter/MypageConverter.java

+6-6
Original file line numberDiff line numberDiff line change
@@ -11,9 +11,9 @@ public class MypageConverter {
1111
public static MypageResponse.ModelProfileDto toModelProfileDto(Model model){
1212
return MypageResponse.ModelProfileDto.builder()
1313
.userId(model.getUserId())
14-
.profileImg(model.getProfileImg())
15-
.nickname(model.getNickname())
16-
.gender(model.getGender())
14+
.profileImg(model.getUser().getProfileImg())
15+
.nickname(model.getUser().getNickname())
16+
.gender(model.getUser().getGender())
1717
.skinType(model.getSkinType())
1818
.personalColor(model.getPersonalColor())
1919
.build();
@@ -22,9 +22,9 @@ public static MypageResponse.ModelProfileDto toModelProfileDto(Model model){
2222
public static MypageResponse.ArtistProfileDto toArtistProfileDto(Artist artist){
2323
return MypageResponse.ArtistProfileDto.builder()
2424
.userId(artist.getUserId())
25-
.profileImg(artist.getProfileImg())
26-
.nickname(artist.getNickname())
27-
.gender(artist.getGender())
25+
.profileImg(artist.getUser().getProfileImg())
26+
.nickname(artist.getUser().getNickname())
27+
.gender(artist.getUser().getGender())
2828
.introduction(artist.getIntroduction())
2929
.phoneNumber(artist.getPhoneNumber())
3030
.instagramId(artist.getInstagramId())

MEME-SERVICE/src/main/java/org/meme/service/domain/converter/PortfolioConverter.java

+7-7
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@ public static PortfolioResponse.PortfolioDto toPortfolioDto(Portfolio portfolio)
3939
.portfolioId(portfolio.getPortfolioId())
4040
.userId(portfolio.getArtist().getUserId())
4141
.category(portfolio.getCategory())
42-
.artistNickName(artist.getNickname())
42+
.artistNickName(artist.getUser().getNickname())
4343
.makeupName(portfolio.getMakeupName())
4444
.price(portfolio.getPrice())
4545
.makeupLocation(artist.getMakeupLocation())
@@ -66,8 +66,8 @@ public static PortfolioResponse.PortfolioDetailDto toPortfolioDetailDto(Portfoli
6666
.userId(portfolio.getArtist().getUserId())
6767
.isFavorite(isFavorite)
6868
.category(portfolio.getCategory())
69-
.artistProfileImg(artist.getProfileImg())
70-
.artistNickName(artist.getNickname())
69+
.artistProfileImg(artist.getUser().getProfileImg())
70+
.artistNickName(artist.getUser().getNickname())
7171
.makeupName(portfolio.getMakeupName())
7272
.price(portfolio.getPrice())
7373
.info(portfolio.getInfo())
@@ -118,8 +118,8 @@ public static PortfolioResponse.PortfolioSimpleDto toPortfolioSimpleDto(Portfoli
118118
.portfolioImg(portfolio.getPortfolioImgList().get(0).getSrc())
119119
.category(portfolio.getCategory())
120120
.makeupName(portfolio.getMakeupName())
121-
.artistName(artist.getNickname())
122-
.artistEmail(artist.getEmail())
121+
.artistName(artist.getUser().getNickname())
122+
.artistEmail(artist.getUser().getEmail())
123123
.price(portfolio.getPrice())
124124
.makeupLocation(artist.getMakeupLocation())
125125
.averageStars(portfolio.getAverageStars())
@@ -135,8 +135,8 @@ public static PortfolioResponse.PortfolioSimpleDto toPortfolioSimpleDto(Favorite
135135
.portfolioImg(portfolio.getPortfolioImgList().get(0).getSrc())
136136
.category(portfolio.getCategory())
137137
.makeupName(portfolio.getMakeupName())
138-
.artistName(artist.getNickname())
139-
.artistEmail(artist.getEmail())
138+
.artistName(artist.getUser().getNickname())
139+
.artistEmail(artist.getUser().getEmail())
140140
.price(portfolio.getPrice())
141141
.makeupLocation(artist.getMakeupLocation())
142142
.averageStars(portfolio.getAverageStars())

MEME-SERVICE/src/main/java/org/meme/service/domain/converter/ReviewConverter.java

+5-5
Original file line numberDiff line numberDiff line change
@@ -30,8 +30,8 @@ public static ReviewResponse.ReviewDto toReviewDto(Review review){
3030

3131
return ReviewResponse.ReviewDto.builder()
3232
.reviewId(review.getReviewId())
33-
.modelNickName(review.getModel().getNickname())
34-
.modelProfileImg(review.getModel().getProfileImg())
33+
.modelNickName(review.getModel().getUser().getNickname())
34+
.modelProfileImg(review.getModel().getUser().getProfileImg())
3535
.star(review.getStar())
3636
.comment(review.getComment())
3737
.createdAt(review.getCreatedAt())
@@ -46,7 +46,7 @@ public static ReviewResponse.ReviewDetailsDto toReviewDetailDto(Review review){
4646
.toList();
4747

4848
return ReviewResponse.ReviewDetailsDto.builder()
49-
.artistNickName(review.getPortfolio().getArtist().getNickname())
49+
.artistNickName(review.getPortfolio().getArtist().getUser().getNickname())
5050
.makeupName(review.getPortfolio().getMakeupName())
5151
.star(review.getStar())
5252
.comment(review.getComment())
@@ -57,7 +57,7 @@ public static ReviewResponse.ReviewDetailsDto toReviewDetailDto(Review review){
5757
public static ReviewResponse.MyReviewDto toMyReviewDto(Review review){
5858
return ReviewResponse.MyReviewDto.builder()
5959
.reviewId(review.getReviewId())
60-
.artistNickName(review.getPortfolio().getArtist().getNickname())
60+
.artistNickName(review.getPortfolio().getArtist().getUser().getNickname())
6161
.makeupName(review.getPortfolio().getMakeupName())
6262
.portfolioImg(review.getPortfolio().getPortfolioImgList().get(0).getSrc()) //첫 번째 포트폴리오 이미지
6363
.location(review.getPortfolio().getArtist().getShopLocation())
@@ -69,7 +69,7 @@ public static ReviewResponse.ReviewAvailableListDto toReviewAvailableListDto(Res
6969
return ReviewResponse.ReviewAvailableListDto.builder()
7070
.reservationId(reservation.getReservationId())
7171
.portfolioId(reservation.getReservationId())
72-
.artistNickName(reservation.getPortfolio().getArtist().getNickname())
72+
.artistNickName(reservation.getPortfolio().getArtist().getUser().getNickname())
7373
.makeupName(reservation.getPortfolio().getMakeupName())
7474
.portfolioImg(reservation.getPortfolio().getPortfolioImgList().get(0).getSrc())
7575
.reservationYear(reservation.getYear())

MEME-SERVICE/src/main/java/org/meme/service/domain/entity/Artist.java

+23-6
Original file line numberDiff line numberDiff line change
@@ -7,19 +7,24 @@
77
import lombok.Setter;
88
import lombok.experimental.SuperBuilder;
99
import org.meme.service.domain.entity.Portfolio;
10-
import org.meme.service.domain.enums.Category;
11-
import org.meme.service.domain.enums.MakeupLocation;
12-
import org.meme.service.domain.enums.Region;
13-
import org.meme.service.domain.enums.WorkExperience;
10+
import org.meme.service.domain.enums.*;
1411

1512
import java.util.List;
1613

17-
@SuperBuilder
14+
1815
@AllArgsConstructor
1916
@NoArgsConstructor
2017
@Getter @Setter
2118
@Entity
22-
public class Artist extends User{
19+
public class Artist {
20+
21+
@Id
22+
private Long userId;
23+
24+
@OneToOne
25+
@MapsId
26+
@JoinColumn(name = "user_id")
27+
private User user;
2328

2429
@Column(length = 500, nullable = true)
2530
private String introduction;
@@ -57,4 +62,16 @@ public class Artist extends User{
5762
public void updatePortfolioList(Portfolio portfolio){
5863
this.portfolioList.add(portfolio);
5964
}
65+
66+
public void updateProfileImg(String profileimg){
67+
this.user.updateProfileImg(profileimg);
68+
}
69+
70+
public void updateNickname(String nickname){
71+
this.user.updateNickname(nickname);
72+
}
73+
74+
public void updateGender(Gender gender){
75+
this.user.updateGender(gender);
76+
}
6077
}

MEME-SERVICE/src/main/java/org/meme/service/domain/entity/FavoriteArtist.java

+2-1
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@ public class FavoriteArtist extends BaseEntity {
2323
@JoinColumn(name="user_id", nullable = false)
2424
private Model model;
2525

26-
private Long artistId;
26+
@OneToOne
27+
private Artist artist;
2728

2829
}

MEME-SERVICE/src/main/java/org/meme/service/domain/entity/FavoritePortfolio.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ public class FavoritePortfolio extends BaseEntity {
2323

2424
@ManyToOne
2525
@JoinColumn(name="user_id", nullable = false)
26-
private User model;
26+
private Model model;
2727

2828
@ManyToOne
2929
@JoinColumn(name="portfolio_id", nullable = false)

MEME-SERVICE/src/main/java/org/meme/service/domain/entity/Model.java

+22-7
Original file line numberDiff line numberDiff line change
@@ -5,20 +5,26 @@
55
import lombok.Getter;
66
import lombok.NoArgsConstructor;
77
import lombok.Setter;
8-
import lombok.experimental.SuperBuilder;
9-
import org.meme.service.domain.entity.Reservation;
108
import org.meme.service.domain.entity.*;
9+
import org.meme.service.domain.enums.Gender;
1110
import org.meme.service.domain.enums.PersonalColor;
1211
import org.meme.service.domain.enums.SkinType;
1312

1413
import java.util.List;
1514

16-
@SuperBuilder
1715
@Getter @Setter
1816
@AllArgsConstructor
1917
@NoArgsConstructor
2018
@Entity
21-
public class Model extends User {
19+
public class Model {
20+
21+
@Id
22+
private Long userId;
23+
24+
@OneToOne
25+
@MapsId
26+
@JoinColumn(name = "user_id")
27+
private User user;
2228

2329
@Enumerated(EnumType.STRING)
2430
@Column(nullable = false)
@@ -47,12 +53,21 @@ public void updateFavoriteArtistList(FavoriteArtist artist){
4753
public void updateFavoritePortfolioList(FavoritePortfolio portfolio){
4854
this.favoritePortfolioList.add(portfolio);
4955
}
50-
public void updateReservationList(Reservation reservation){
51-
this.reservationList.add(reservation);
52-
}
5356

5457
public void updateReviewList(Review review){
5558
this.reviewList.add(review);
5659
}
5760

61+
public void updateProfileImg(String profileimg){
62+
this.user.updateProfileImg(profileimg);
63+
}
64+
65+
public void updateNickname(String nickname){
66+
this.user.updateNickname(nickname);
67+
}
68+
69+
public void updateGender(Gender gender){
70+
this.user.updateGender(gender);
71+
}
72+
5873
}

MEME-SERVICE/src/main/java/org/meme/service/domain/entity/Review.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ public class Review extends BaseEntity {
2424

2525
@ManyToOne
2626
@JoinColumn(name="user_id", nullable = false)
27-
private User model;
27+
private Model model;
2828

2929
@OneToMany(cascade = CascadeType.ALL, mappedBy = "review")
3030
private List<ReviewImg> reviewImgList;

MEME-SERVICE/src/main/java/org/meme/service/domain/entity/User.java

+4-8
Original file line numberDiff line numberDiff line change
@@ -2,11 +2,7 @@
22

33
import jakarta.persistence.*;
44
import jakarta.validation.constraints.NotNull;
5-
import lombok.AllArgsConstructor;
6-
import lombok.Builder;
7-
import lombok.Getter;
8-
import lombok.NoArgsConstructor;
9-
import lombok.experimental.SuperBuilder;
5+
import lombok.*;
106
import org.meme.service.domain.entity.Inquiry;
117
import org.meme.service.domain.enums.Gender;
128
import org.meme.service.domain.enums.Provider;
@@ -18,10 +14,10 @@
1814
import java.util.List;
1915
import java.util.Set;
2016

21-
@SuperBuilder @Getter
17+
@Getter
2218
@NoArgsConstructor
2319
@AllArgsConstructor
24-
@Inheritance(strategy = InheritanceType.JOINED)
20+
//@Inheritance(strategy = InheritanceType.JOINED)
2521
@Entity
2622
public class User {
2723

@@ -68,7 +64,7 @@ public class User {
6864
private Provider provider;
6965

7066
@ElementCollection
71-
@Builder.Default
67+
// @Builder.Default
7268
private Set<String> deviceTokens = new HashSet<>();
7369

7470
@OneToMany(cascade = CascadeType.ALL, mappedBy = "user")

MEME-SERVICE/src/main/java/org/meme/service/domain/repository/ArtistRepository.java

-1
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,5 @@
88

99
@Repository
1010
public interface ArtistRepository extends JpaRepository<Artist, Long> {
11-
Optional<Artist> findByEmail(String email);
1211

1312
}

MEME-SERVICE/src/main/java/org/meme/service/domain/repository/FavoriteArtistRepository.java

+4-3
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
package org.meme.service.domain.repository;
22

3+
import org.meme.service.domain.entity.Artist;
34
import org.meme.service.domain.entity.FavoriteArtist;
45
import org.meme.service.domain.entity.Model;
56
import org.springframework.data.jpa.repository.JpaRepository;
@@ -11,7 +12,7 @@
1112
@Repository
1213
public interface FavoriteArtistRepository extends JpaRepository<FavoriteArtist, Long> {
1314
List<FavoriteArtist> findByModel(Model model);
14-
boolean existsByModelAndArtistId(Model model, Long userId);
15-
Optional<FavoriteArtist> findByModelAndArtistId(Model model, Long userId);
16-
Long countByArtistId(Long artistId);
15+
boolean existsByModelAndArtist(Model model, Artist artist);
16+
Optional<FavoriteArtist> findByModelAndArtist(Model model, Artist artist);
17+
Long countByArtist(Artist artist);
1718
}

MEME-SERVICE/src/main/java/org/meme/service/domain/repository/ModelRepository.java

-1
Original file line numberDiff line numberDiff line change
@@ -9,5 +9,4 @@
99
@Repository
1010
public interface ModelRepository extends JpaRepository<Model, Long> {
1111

12-
Optional<Model> findByEmail(String email);
1312
}

MEME-SERVICE/src/main/java/org/meme/service/domain/service/ArtistService.java

+3-1
Original file line numberDiff line numberDiff line change
@@ -12,11 +12,13 @@
1212
import org.springframework.stereotype.Service;
1313
import org.meme.service.domain.entity.Artist;
1414
import org.meme.service.common.exception.GeneralException;
15+
import org.springframework.transaction.annotation.Transactional;
1516

1617
import java.util.Optional;
1718

1819
@Service
1920
@RequiredArgsConstructor
21+
@Transactional(readOnly = true)
2022
public class ArtistService {
2123
private final ArtistRepository artistRepository;
2224
private final ModelRepository modelRepository;
@@ -29,7 +31,7 @@ public ArtistResponse.ArtistDto getArtistProfile(Long userId, Long artistId){
2931
Artist artist = findArtistById(artistId);
3032

3133
boolean isFavorite = false;
32-
Optional<FavoriteArtist> favoriteArtist = favoriteArtistRepository.findByModelAndArtistId(model, artistId);
34+
Optional<FavoriteArtist> favoriteArtist = favoriteArtistRepository.findByModelAndArtist(model, artist);
3335
if(favoriteArtist.isPresent())
3436
isFavorite = true;
3537

0 commit comments

Comments
 (0)