Skip to content

Commit 7dbf608

Browse files
authored
Merge pull request #27 from Neighbors-dev/develop
feat : 공유하기 페이지 조회 API 에 최초 조회 정보 DTO에 추가
2 parents 0f9d4e6 + 43481ae commit 7dbf608

File tree

8 files changed

+32
-15
lines changed

8 files changed

+32
-15
lines changed

src/main/java/com/neighbors/tohero/application/sharing/dto/GetSharingPageInfoResponse.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
import java.util.List;
44

55
public record GetSharingPageInfoResponse(
6+
boolean isFirst,
67
int numberOfWriter,
78
List<String> nameOfWriters
89
) {

src/main/java/com/neighbors/tohero/application/sharing/service/SharingService.java

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,16 +8,20 @@
88
import com.neighbors.tohero.common.jwt.JwtProvider;
99
import com.neighbors.tohero.domain.domain.user.model.User;
1010
import com.neighbors.tohero.domain.domain.user.service.GetUser;
11+
import com.neighbors.tohero.domain.domain.user.service.UpdateUser;
1112
import lombok.RequiredArgsConstructor;
1213
import org.springframework.stereotype.Service;
1314

15+
import java.util.ArrayList;
16+
import java.util.Arrays;
1417
import java.util.List;
1518

1619
@Service
1720
@RequiredArgsConstructor
1821
public class SharingService {
1922

2023
private final GetUser getUser;
24+
private final UpdateUser updateUser;
2125
private final JwtProvider jwtProvider;
2226

2327
public BaseResponse<GetRecommenderCodeResponse> getRecommenderCode(String userEmail){
@@ -33,12 +37,15 @@ public BaseResponse<GetRecommenderCodeResponse> getRecommenderCode(String userEm
3337
}
3438

3539
public BaseResponse<GetSharingPageInfoResponse> getSharingPageInfo(long userId){
36-
List<String> nameOfWriters = getUser.getNameOfWritersByUserId(userId);
40+
User user = getUser.getUserForSharing(userId);
41+
String recommendedPeopleName = user.getRecommenders();
42+
List<String> recommendedPeopleNameList = new ArrayList<>(Arrays.asList(recommendedPeopleName
43+
.split(",")));
3744

3845
return new BaseResponse<>(
3946
BaseResponseStatus.OK,
4047
BaseResponseMessage.공유하기_페이지_조회가_성공했습니다.getMessage(),
41-
new GetSharingPageInfoResponse(nameOfWriters.size(), nameOfWriters)
48+
new GetSharingPageInfoResponse(user.isFirstSharing(), recommendedPeopleNameList.size(), recommendedPeopleNameList)
4249
);
4350
}
4451

src/main/java/com/neighbors/tohero/domain/domain/user/model/User.java

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
import lombok.AllArgsConstructor;
66
import lombok.Builder;
77
import lombok.Getter;
8+
import lombok.Setter;
89

910
@Builder
1011
@Getter
@@ -15,9 +16,11 @@ public class User {
1516
private String email;
1617
private Role role;
1718
private String recommenders;
19+
@Setter
20+
private boolean isFirstSharing;
1821

19-
public static User of (Long userId, String userName, String email, Role role, String recommenders) {
20-
return new User(userId, userName, email, role, recommenders);
22+
public static User of (Long userId, String userName, String email, Role role, String recommenders, boolean isFirstSharing) {
23+
return new User(userId, userName, email, role, recommenders, isFirstSharing);
2124
}
2225

2326
public static User toEntity(AuthenticateUserRequest authenticateUserRequest) {

src/main/java/com/neighbors/tohero/domain/domain/user/service/GetUser.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ public User getUserById(long userId) {
2020
return userRepository.getUser(repo -> repo.findByUserId(userId));
2121
}
2222

23-
public List<String> getNameOfWritersByUserId(long userId){
24-
return userRepository.getNameOfWriters(repo -> repo.findNameOfWritersByUserId(userId));
23+
public User getUserForSharing(long userId){
24+
return userRepository.getUserForSharing(repo -> repo.findByUserId(userId));
2525
}
2626
}

src/main/java/com/neighbors/tohero/domain/query/UserRepository.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,5 +15,5 @@ public interface UserRepository {
1515
User getUser(Function<UserEntityRepository, Optional<UserEntity>> findUserFunction);
1616
void deleteUser(Consumer<UserEntityRepository> findUserConsumer);
1717
void reflectRecommendation(String writer, List<String> recommenderEmails);
18-
List<String> getNameOfWriters(Function<UserEntityRepository, Optional<UserEntity>> findUserFunction);
18+
User getUserForSharing(Function<UserEntityRepository, Optional<UserEntity>> findUserFunction);
1919
}

src/main/java/com/neighbors/tohero/infrastructure/entity/UserEntity.java

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,10 @@ public class UserEntity extends BaseEntity {
2727
@Column(name = "role", nullable = false)
2828
private Role role;
2929

30+
@Setter
31+
@Column(name = "isFirstSharing", nullable = false)
32+
private boolean isFirstSharing = true;
33+
3034
@Setter
3135
@Column(name = "recommenders", nullable = true)
3236
private String recommenders;
@@ -53,7 +57,7 @@ public static UserEntity returnNewObjectOf(String nickName, String email, Role r
5357
}
5458

5559
public static UserEntity from(User user) {
56-
return new UserEntity(user.getUserId(), user.getUserName(), user.getEmail(), user.getRole(),user.getRecommenders(), null);
60+
return new UserEntity(user.getUserId(), user.getUserName(), user.getEmail(), user.getRole(), user.isFirstSharing(), user.getRecommenders(), null);
5761
}
5862

5963
public String getRecommenders() {

src/main/java/com/neighbors/tohero/infrastructure/mapper/UserMapper.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,8 @@ public User toDomain(UserEntity userEntity){
2626
userEntity.getNickName(),
2727
userEntity.getEmail(),
2828
userEntity.getRole(),
29-
userEntity.getRecommenders()
29+
userEntity.getRecommenders(),
30+
userEntity.isFirstSharing()
3031
);
3132
}
3233
}

src/main/java/com/neighbors/tohero/infrastructure/query/impl/UserRepositoryImpl.java

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -92,14 +92,15 @@ public void reflectRecommendation(String writer, List<String> recommenderEmails)
9292
}
9393

9494
@Override
95-
public List<String> getNameOfWriters(Function<UserEntityRepository, Optional<UserEntity>> findUserFunction) {
95+
public User getUserForSharing(Function<UserEntityRepository, Optional<UserEntity>> findUserFunction) {
9696
UserEntity matchedUserEntity = getUserEntity(findUserFunction);
9797

98-
String recommendedPeopleName = matchedUserEntity.getRecommendEntity().getRecommendedPeopleName();
98+
User user = userMapper.toDomain(matchedUserEntity);
99+
if(matchedUserEntity.isFirstSharing()){
100+
matchedUserEntity.setFirstSharing(false);
101+
userEntityRepository.save(matchedUserEntity);
102+
}
99103

100-
if(recommendedPeopleName == null) {return new ArrayList<>();}
101-
return Arrays.stream(recommendedPeopleName
102-
.split(","))
103-
.toList();
104+
return user;
104105
}
105106
}

0 commit comments

Comments
 (0)