Skip to content

Commit 08cc0c8

Browse files
committed
feat: 펫 생성 기능 수정
1 parent bc79440 commit 08cc0c8

File tree

4 files changed

+28
-9
lines changed

4 files changed

+28
-9
lines changed

src/main/java/cmf/commitField/domain/pet/entity/Pet.java

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
package cmf.commitField.domain.pet.entity;
22

3+
import cmf.commitField.domain.user.entity.User;
34
import cmf.commitField.global.jpa.BaseEntity;
4-
import jakarta.persistence.Entity;
5-
import jakarta.persistence.Table;
5+
import jakarta.persistence.*;
66
import lombok.AllArgsConstructor;
77
import lombok.Getter;
88
import lombok.NoArgsConstructor;
@@ -17,6 +17,11 @@
1717
@SuperBuilder
1818
@Table(name = "pet")
1919
public class Pet extends BaseEntity {
20+
private int type; // 펫 타입 넘버, 현재 1~3까지 존재
2021
private String name;
2122
private String imageUrl;
23+
24+
@ManyToOne(fetch = FetchType.LAZY)
25+
@JoinColumn(name = "user_id", nullable = false)
26+
private User user;
2227
}

src/main/java/cmf/commitField/domain/pet/repository/PetRepository.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,9 +4,11 @@
44
import org.springframework.data.jpa.repository.JpaRepository;
55
import org.springframework.stereotype.Repository;
66

7+
import java.util.List;
78
import java.util.Optional;
89

910
@Repository
1011
public interface PetRepository extends JpaRepository<Pet, Long> {
1112
Optional<Pet> findById(Long id);
13+
List<Pet> findByUserEmail(String email);
1214
}

src/main/java/cmf/commitField/domain/pet/service/PetService.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010
import java.io.IOException;
1111
import java.util.List;
1212
import java.util.Optional;
13+
import java.util.Random;
1314

1415
@Service
1516
@RequiredArgsConstructor
@@ -26,8 +27,8 @@ public Pet createPet(String name, MultipartFile imageFile) throws IOException {
2627
if (imageFile != null && !imageFile.isEmpty()) {
2728
imageUrl = s3Service.uploadFile(imageFile, "pet-images");
2829
}
29-
30-
Pet pet = new Pet(name, imageUrl);
30+
Random random = new Random();
31+
Pet pet = new Pet(random.nextInt(3), name, imageUrl);
3132
return petRepository.save(pet);
3233
}
3334

src/main/java/cmf/commitField/domain/user/service/CustomOAuth2UserService.java

Lines changed: 16 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,11 @@
11
package cmf.commitField.domain.user.service;
22

3+
import cmf.commitField.domain.pet.entity.Pet;
4+
import cmf.commitField.domain.pet.repository.PetRepository;
35
import cmf.commitField.domain.user.entity.CustomOAuth2User;
46
import cmf.commitField.domain.user.entity.User;
57
import cmf.commitField.domain.user.repository.UserRepository;
8+
import lombok.RequiredArgsConstructor;
69
import org.springframework.security.oauth2.client.userinfo.DefaultOAuth2UserService;
710
import org.springframework.security.oauth2.client.userinfo.OAuth2UserRequest;
811
import org.springframework.security.oauth2.core.user.OAuth2User;
@@ -11,14 +14,13 @@
1114
import java.util.ArrayList;
1215
import java.util.Map;
1316
import java.util.Optional;
17+
import java.util.Random;
1418

1519
@Service
20+
@RequiredArgsConstructor
1621
public class CustomOAuth2UserService extends DefaultOAuth2UserService {
1722
private final UserRepository userRepository;
18-
19-
public CustomOAuth2UserService(UserRepository userRepository) {
20-
this.userRepository = userRepository;
21-
}
23+
private final PetRepository petRepository;
2224

2325
@Override
2426
public OAuth2User loadUser(OAuth2UserRequest userRequest) {
@@ -36,14 +38,23 @@ public OAuth2User loadUser(OAuth2UserRequest userRequest) {
3638
}
3739

3840
Optional<User> existingUser = userRepository.findByUsername(username);
41+
3942
User user;
43+
Pet pet;
4044
if (existingUser.isPresent()) {
45+
//유저 정보가 있다면 유저 정보를 얻어온다.
4146
user = existingUser.get();
4247
user.setAvatarUrl(avatarUrl);
43-
user.setEmail(email); // GitHub에서 이메일이 변경될 수도 있으니 업데이트\
48+
user.setEmail(email); // GitHub에서 이메일이 변경될 수도 있으니 업데이트
4449
} else {
50+
//유저 정보가 db에 존재하지 않을 경우 회원가입 시킨다.
51+
//유저 생성 및 펫 생성
4552
user = new User(username, email, name, avatarUrl, User.Role.USER, new ArrayList<>(), new ArrayList<>(), new ArrayList<>());
4653
userRepository.save(user);
54+
55+
Random random = new Random(); //펫 랜덤 생성
56+
pet = new Pet(random.nextInt(3), "알알", "temp-Url", user); // 변경 필요
57+
petRepository.save(pet);
4758
}
4859

4960
return new CustomOAuth2User(oauthUser, user);

0 commit comments

Comments
 (0)