Skip to content

Commit

Permalink
카카오 로그인 프로필 이미지 가져오기 추가
Browse files Browse the repository at this point in the history
이력서 삭제할때 파일도 같이 삭제하도록 변경
  • Loading branch information
HwangHoYoon committed Dec 10, 2023
1 parent f9abd2f commit 93b0c98
Show file tree
Hide file tree
Showing 7 changed files with 75 additions and 5 deletions.
4 changes: 4 additions & 0 deletions src/main/generated/com/chwipoClova/user/entity/QUser.java
Original file line number Diff line number Diff line change
Expand Up @@ -25,12 +25,16 @@ public class QUser extends EntityPathBase<User> {

public final StringPath name = createString("name");

public final StringPath profileImage = createString("profileImage");

public final DateTimePath<java.util.Date> regDate = createDateTime("regDate", java.util.Date.class);

public final NumberPath<Long> snsId = createNumber("snsId", Long.class);

public final NumberPath<Integer> snsType = createNumber("snsType", Integer.class);

public final StringPath thumbnailImage = createString("thumbnailImage");

public final NumberPath<Long> userId = createNumber("userId", Long.class);

public QUser(String variable) {
Expand Down
26 changes: 22 additions & 4 deletions src/main/java/com/chwipoClova/resume/service/ResumeService.java
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.StringUtils;
import org.springframework.web.multipart.MultipartFile;

import java.io.File;
Expand Down Expand Up @@ -64,6 +65,8 @@ public ResumeUploadRes resumeUpload(Long userId, MultipartFile file) throws IOEx
String orginalName = file.getOriginalFilename();
assert orginalName != null;

String extension = StringUtils.getFilenameExtension(file.getOriginalFilename());

// 날짜 폴더 생성
String folderPath = makeFolder();

Expand All @@ -73,7 +76,7 @@ public ResumeUploadRes resumeUpload(Long userId, MultipartFile file) throws IOEx
long currentTimeMills = Timestamp.valueOf(LocalDateTime.now()).getTime();

String filePath = uploadPath + File.separator + folderPath + File.separator;
String fileName = uuid + "_" + currentTimeMills;
String fileName = uuid + "_" + currentTimeMills + "." +extension;
Long fileSize = file.getSize();

if (fileSize > uploadMaxSize) {
Expand Down Expand Up @@ -150,8 +153,7 @@ public CommonResponse deleteResume(ResumeDeleteReq resumeDeleteReq) {

userRepository.findById(userId).orElseThrow(() -> new CommonException(ExceptionCode.USER_NULL.getMessage(), ExceptionCode.USER_NULL.getCode()));
Resume resume = resumeRepository.findByUserUserIdAndResumeId(userId, resumeId).orElseThrow(() -> new CommonException(ExceptionCode.RESUME_NULL.getMessage(), ExceptionCode.RESUME_NULL.getCode()));
resumeRepository.delete(resume);
return new CommonResponse<>(MessageCode.SUCCESS_DELETE.getCode(), null, MessageCode.SUCCESS_DELETE.getMessage());
return resumeDelete(resume);
}


Expand All @@ -160,8 +162,24 @@ public CommonResponse deleteOldResume(ResumeDeleteOldReq resumeDeleteOldReq) {
Long userId = resumeDeleteOldReq.getUserId();

userRepository.findById(userId).orElseThrow(() -> new CommonException(ExceptionCode.USER_NULL.getMessage(), ExceptionCode.USER_NULL.getCode()));

Resume resume = resumeRepository.findTop1ByUserUserIdOrderByRegDate(userId).orElseThrow(() -> new CommonException(ExceptionCode.RESUME_NULL.getMessage(), ExceptionCode.RESUME_NULL.getCode()));
return resumeDelete(resume);
}

private CommonResponse resumeDelete(Resume resume) {
String filePath = resume.getFilePath();
String fileName = resume.getFileName();

File file = new File(filePath + fileName);

if (!file.exists()) {
log.error("파일이 존재 하지 않습니다. {}", filePath + fileName);
} else {
if (!file.delete()) {
log.error("파일 삭제 실패했습니다. {}", filePath + fileName);
}
}

resumeRepository.delete(resume);
return new CommonResponse<>(MessageCode.SUCCESS_DELETE.getCode(), null, MessageCode.SUCCESS_DELETE.getMessage());
}
Expand Down
19 changes: 19 additions & 0 deletions src/main/java/com/chwipoClova/user/dto/KakaoUserInfo.java
Original file line number Diff line number Diff line change
Expand Up @@ -26,12 +26,19 @@ static class KakaoAccount {
private KakaoProfile profile;

private String email;

}

@Getter
@JsonIgnoreProperties(ignoreUnknown = true)
static class KakaoProfile {
private String nickname;

private String thumbnail_image_url;

private String profile_image_url;

private boolean is_default_image;
}

public String getEmail() {
Expand All @@ -42,6 +49,18 @@ public String getNickname() {
return kakaoAccount.profile.nickname;
}

public String getThumbnailImageUrl() {
return kakaoAccount.profile.thumbnail_image_url;
}

public String getProfileImageUrl() {
return kakaoAccount.profile.profile_image_url;
}

public boolean isDefaultImage() {
return kakaoAccount.profile.is_default_image;
}

public UserLoginType getOAuthProvider() {
return UserLoginType.KAKAO;
}
Expand Down
8 changes: 8 additions & 0 deletions src/main/java/com/chwipoClova/user/entity/User.java
Original file line number Diff line number Diff line change
Expand Up @@ -52,6 +52,14 @@ public class User {
@Schema(description = "소셜회원 ID")
private Long snsId;

@Column(name = "thumbnailImage")
@Schema(description = "프로필 미리보기 이미지")
private String thumbnailImage;

@Column(name = "profileImage")
@Schema(description = "프로필 이미지")
private String profileImage;

// @PrePersist 메서드 정의 (최초 등록시 호출)
@PrePersist
public void prePersist() {
Expand Down
6 changes: 6 additions & 0 deletions src/main/java/com/chwipoClova/user/response/UserInfoRes.java
Original file line number Diff line number Diff line change
Expand Up @@ -24,4 +24,10 @@ public class UserInfoRes {

@Schema(description = "수정일", example = "2023-12-09T10:13:17.838+00:00", name = "modifyDate")
private Date modifyDate;

@Schema(description = "프로필 미리보기 이미지", example = "http://k.kakaocdn.net/", name = "thumbnailImage")
private String thumbnailImage;

@Schema(description = "프로필 이미지", example = "http://k.kakaocdn.net/", name = "profileImage")
private String profileImage;
}
7 changes: 7 additions & 0 deletions src/main/java/com/chwipoClova/user/response/UserLoginRes.java
Original file line number Diff line number Diff line change
Expand Up @@ -34,4 +34,11 @@ public class UserLoginRes {

@Schema(description = "소셜회원 ID", example = "11314", name = "snsId")
private Long snsId;

@Schema(description = "프로필 미리보기 이미지", example = "http://k.kakaocdn.net/", name = "thumbnailImage")
private String thumbnailImage;

@Schema(description = "프로필 이미지", example = "http://k.kakaocdn.net/", name = "profileImage")
private String profileImage;

}
10 changes: 9 additions & 1 deletion src/main/java/com/chwipoClova/user/service/UserService.java
Original file line number Diff line number Diff line change
Expand Up @@ -87,6 +87,8 @@ public CommonResponse kakaoLogin(String code, HttpServletResponse response) {
String email = kakaoUserInfo.getEmail();
String nickname = kakaoUserInfo.getNickname();
Integer snsType = kakaoUserInfo.getOAuthProvider().getCode();
String thumbnailImageUrl = kakaoUserInfo.getThumbnailImageUrl();
String profileImageUrl = kakaoUserInfo.getProfileImageUrl();

Optional<User> userInfo = userRepository.findBySnsTypeAndSnsId(snsType, snsId);

Expand Down Expand Up @@ -119,6 +121,8 @@ public CommonResponse kakaoLogin(String code, HttpServletResponse response) {
.email(userInfoRst.getEmail())
.name(userInfoRst.getName())
.snsType(userInfoRst.getSnsType())
.thumbnailImage(userInfoRst.getThumbnailImage())
.profileImage(userInfoRst.getProfileImage())
.regDate(userInfoRst.getRegDate())
.modifyDate(userInfoRst.getModifyDate())
.build();
Expand All @@ -130,7 +134,9 @@ public CommonResponse kakaoLogin(String code, HttpServletResponse response) {
.snsId(snsId)
.email(email)
.name(nickname)
.snsType(kakaoUserInfo.getOAuthProvider().getCode())
.snsType(snsType)
.thumbnailImage(thumbnailImageUrl)
.profileImage(profileImageUrl)
.regDate(new Date())
.build();
userRepository.save(user);
Expand Down Expand Up @@ -191,6 +197,8 @@ public UserInfoRes selectUserInfo(String email) {
.userId(user.getUserId())
.email(user.getEmail())
.name(user.getName())
.thumbnailImage(user.getThumbnailImage())
.profileImage(user.getProfileImage())
.regDate(user.getRegDate())
.modifyDate(user.getModifyDate())
.build();
Expand Down

0 comments on commit 93b0c98

Please sign in to comment.