Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,6 @@
import gsm.gsmjava.domain.applicationresult.entity.ApplicationResult;
import gsm.gsmjava.domain.position.entity.Position;
import gsm.gsmjava.domain.posting.entity.Posting;
import gsm.gsmjava.domain.resume.type.ResumeType;
import gsm.gsmjava.domain.user.entity.User;
import jakarta.persistence.*;
import lombok.*;
Expand Down Expand Up @@ -47,13 +46,14 @@ public class Application {

private String applicantStudentNumber;

@Enumerated(EnumType.STRING)
private ResumeType applicantResumeType;

private String applicantResumeUrl;

private String applicantResumeName;

private String applicantPortfolioUrl;

private String applicantPortfolioName;

@Enumerated(EnumType.STRING)
private ApplicationStatus applicantStatus;

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -59,9 +59,10 @@ public void apply(Long postingId, ApplyReqDto reqDto) {
.applicantEmail(user.getEmail())
.applicantPhoneNumber(user.getPhoneNumber())
.applicantStudentNumber(user.getStudentNumber())
.applicantResumeType(user.getResume().getType())
.applicantResumeUrl(user.getResume().getUrl())
.applicantResumeName(user.getResume().getName())
.applicantPortfolioUrl(user.getPortfolio().getUrl())
.applicantPortfolioName(user.getPortfolio().getName())
.applicantStatus(ApplicationStatus.PENDING)
.build();
Application newApplication = applicationRepository.save(application);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,13 +9,10 @@
import org.springframework.transaction.annotation.Transactional;

import java.io.*;
import java.net.URL;
import java.util.List;
import java.util.zip.ZipEntry;
import java.util.zip.ZipOutputStream;

import static gsm.gsmjava.domain.resume.type.ResumeType.*;

@Service
@RequiredArgsConstructor
public class DownloadService {
Expand All @@ -37,15 +34,13 @@ public byte[] generateResumeZip(Long postingId, List<Long> applicationIds) {
String studentNumber = app.getUser().getStudentNumber();
String position = app.getPosition().getName();
String company = app.getPosting().getCompanyName();
String extension = app.getApplicantResumeType() == LINK ? "txt" : "pdf";
String extension = "txt";
String resumeName = sanitize(name) + "_" + sanitize(studentNumber) + "_" + sanitize(position) + "_이력서." + extension;

byte[] resumeBytes;
if (app.getApplicantResumeType() == LINK) {
resumeBytes = createTxtWithLink(app.getApplicantResumeUrl());
} else {
resumeBytes = downloadPdfFile(app.getApplicantResumeUrl());
}
byte[] resumeBytes = createTxtWithLink(
app.getApplicantResumeName(), app.getApplicantResumeUrl(),
app.getApplicantPortfolioName(), app.getApplicantPortfolioUrl()
);

String pathInZip = sanitize(company) + "_이력서_모음/" + resumeName;
zip.putNextEntry(new ZipEntry(pathInZip));
Expand All @@ -60,14 +55,9 @@ public byte[] generateResumeZip(Long postingId, List<Long> applicationIds) {
}
}

private byte[] downloadPdfFile(String url) throws IOException {
try (InputStream in = new URL(url).openStream()) {
return in.readAllBytes();
}
}

private byte[] createTxtWithLink(String link) {
String content = "링크로 제출된 이력서입니다:\n" + link;
private byte[] createTxtWithLink(String resumeName, String resumeUrl, String portfolioName, String portfolioUrl) {
String content = resumeName != null ? resumeName + ": " + resumeUrl : "";
content += portfolioName != null ? portfolioName + ": " + portfolioUrl : "";
return content.getBytes(java.nio.charset.StandardCharsets.UTF_8);
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,8 @@

import java.util.List;

import static gsm.gsmjava.domain.application.service.dto.res.MyApplicationResDto.*;

@Service
@RequiredArgsConstructor
public class QueryApplicationService {
Expand Down Expand Up @@ -47,7 +49,10 @@ public ApplicationResDto queryByPosting(Long postingId) {
.resume(ResumeDto.builder()
.name(application.getApplicantResumeName())
.url(application.getApplicantResumeUrl())
.type(application.getApplicantResumeType())
.build())
.portfolio(PortfolioDto.builder()
.name(application.getApplicantPortfolioName())
.url(application.getApplicantPortfolioUrl())
.build())
.status(application.getApplicantStatus())
.result(application.getApplicationResult() == null ? null : ResultDto.builder()
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,10 +3,7 @@
import gsm.gsmjava.domain.application.entity.Application;
import gsm.gsmjava.domain.application.repository.ApplicationRepository;
import gsm.gsmjava.domain.application.service.dto.res.MyApplicationResDto;
import gsm.gsmjava.domain.application.service.dto.res.MyApplicationResDto.MyApplicationDto;
import gsm.gsmjava.domain.application.service.dto.res.MyApplicationResDto.PositionDto;
import gsm.gsmjava.domain.application.service.dto.res.MyApplicationResDto.ResultDto;
import gsm.gsmjava.domain.application.service.dto.res.MyApplicationResDto.ResumeDto;
import gsm.gsmjava.domain.application.service.dto.res.MyApplicationResDto.*;
import gsm.gsmjava.domain.user.entity.User;
import gsm.gsmjava.global.util.UserUtil;
import lombok.RequiredArgsConstructor;
Expand Down Expand Up @@ -35,9 +32,12 @@ public MyApplicationResDto queryMy() {
.employmentType(application.getPosting().getEmploymentType())
.resume(ResumeDto.builder()
.name(application.getApplicantResumeName())
.type(application.getApplicantResumeType())
.url(application.getApplicantResumeUrl())
.build())
.portfolio(PortfolioDto.builder()
.name(application.getApplicantPortfolioName())
.url(application.getApplicantPortfolioUrl())
.build())
.position(PositionDto.builder()
.id(application.getPosition().getId())
.name(application.getPosition().getName())
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
package gsm.gsmjava.domain.application.service.dto.res;

import com.fasterxml.jackson.annotation.JsonFormat;
import gsm.gsmjava.domain.application.service.dto.res.MyApplicationResDto.PortfolioDto;
import gsm.gsmjava.domain.application.service.dto.res.MyApplicationResDto.PositionDto;
import gsm.gsmjava.domain.application.service.dto.res.MyApplicationResDto.ResultDto;
import gsm.gsmjava.domain.application.service.dto.res.MyApplicationResDto.ResumeDto;
Expand Down Expand Up @@ -38,6 +39,7 @@ public static class ApplicationDto {
private PositionDto position;
private ApplicationStatus status;
private ResumeDto resume;
private PortfolioDto portfolio;
private ResultDto result;
@JsonFormat(pattern = "yyyy-MM-dd'T'HH:mm:ss")
private LocalDateTime createdAt;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,6 @@
import gsm.gsmjava.domain.applicationresult.type.ApplicationResultStatus;
import gsm.gsmjava.domain.posting.type.CompanyLocation;
import gsm.gsmjava.domain.posting.type.EmploymentType;
import gsm.gsmjava.domain.resume.type.ResumeType;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Getter;
Expand All @@ -32,6 +31,7 @@ public static class MyApplicationDto {
private PositionDto position;
private ApplicationStatus status;
private ResumeDto resume;
private PortfolioDto portfolio;
private ResultDto result;
@JsonFormat(pattern = "yyyy-MM-dd'T'HH:mm:ss")
private LocalDateTime createdAt;
Expand All @@ -47,7 +47,14 @@ public static class MyApplicationDto {
public static class ResumeDto {
private String name;
private String url;
private ResumeType type;
}

@Getter
@Builder
@AllArgsConstructor
public static class PortfolioDto {
private String name;
private String url;
}

@Getter
Expand Down

This file was deleted.

This file was deleted.

55 changes: 0 additions & 55 deletions src/main/java/gsm/gsmjava/domain/file/service/FileService.java

This file was deleted.

34 changes: 34 additions & 0 deletions src/main/java/gsm/gsmjava/domain/portfolio/entity/Portfolio.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
package gsm.gsmjava.domain.portfolio.entity;

import gsm.gsmjava.domain.user.entity.User;
import jakarta.persistence.*;
import lombok.*;

@Entity
@Table(name = "tbl_portfolio")
@NoArgsConstructor(access = AccessLevel.PROTECTED)
@Getter
@ToString
@Builder
@AllArgsConstructor
public class Portfolio {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "id", nullable = false)
private Long id;

@JoinColumn(name = "user_id", nullable = false)
@OneToOne(fetch = FetchType.LAZY)
private User user;

@Column(nullable = false)
private String name;

@Column(nullable = false)
private String url;

public void update(String url, String name) {
this.name = name;
this.url = url;
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
package gsm.gsmjava.domain.portfolio.repository;

import gsm.gsmjava.domain.portfolio.entity.Portfolio;
import org.springframework.data.jpa.repository.JpaRepository;

public interface PortfolioRepository extends JpaRepository<Portfolio, Long> {
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
package gsm.gsmjava.domain.portfolio.service.dto.req;

import jakarta.validation.constraints.NotBlank;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Getter;
import lombok.NoArgsConstructor;

@Getter
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class PortfolioReqDto {
@NotBlank
private String name;
@NotBlank
private String url;
}
5 changes: 0 additions & 5 deletions src/main/java/gsm/gsmjava/domain/posting/entity/Posting.java
Original file line number Diff line number Diff line change
@@ -1,11 +1,9 @@
package gsm.gsmjava.domain.posting.entity;

import gsm.gsmjava.domain.application.entity.Application;
import gsm.gsmjava.domain.posting.service.dto.req.CreatePostingReqDto;
import gsm.gsmjava.domain.posting.service.dto.req.UpdatePostingReqDto;
import gsm.gsmjava.domain.posting.type.CompanyLocation;
import gsm.gsmjava.domain.posting.type.EmploymentType;
import gsm.gsmjava.domain.postingfile.entity.PostingFile;
import gsm.gsmjava.domain.postingposition.entity.PostingPosition;
import gsm.gsmjava.domain.user.entity.User;
import jakarta.persistence.*;
Expand Down Expand Up @@ -34,9 +32,6 @@ public class Posting {
@OneToMany(mappedBy = "posting", cascade = CascadeType.ALL, orphanRemoval = true)
private List<PostingPosition> postingPositions;

@OneToMany(mappedBy = "posting", cascade = CascadeType.ALL, orphanRemoval = true)
private List<PostingFile> postingFiles;

@OneToMany(mappedBy = "posting", cascade = CascadeType.ALL, orphanRemoval = true)
private List<Application> applications;

Expand Down
Loading
Loading