Skip to content

Commit

Permalink
Feature: 프로젝트 등록 기능 수정2(FK설정 추가)
Browse files Browse the repository at this point in the history
  • Loading branch information
EunSeo119 committed Aug 15, 2022
1 parent 76e265e commit e2daa96
Show file tree
Hide file tree
Showing 8 changed files with 37 additions and 12 deletions.
2 changes: 1 addition & 1 deletion jjowin/src/main/java/back/jjowin/DTO/ProjectCreateDTO.java
Expand Up @@ -9,6 +9,6 @@
@Getter @Setter
public class ProjectCreateDTO {
private Project project;
private ProjectSkill projectSkill;
private ProjectSkill[] projectSkill;
private RecruitInfo[] recruitInfo;
}
Expand Up @@ -24,9 +24,9 @@ public class ProjectController {
public ResponseEntity register (@RequestBody ProjectCreateDTO model){
CustomResponseBody<ProjectCreateDTO> responseBody = new CustomResponseBody<>("프로젝트 등록 성공2");
try {
projectService.register(model.getProject());
projectSkillService.register(model.getProjectSkill());
recruitInfoService.register(model.getRecruitInfo());
Long projectId = projectService.register(model.getProject());
projectSkillService.register(model.getProjectSkill(),projectId);
recruitInfoService.register(model.getRecruitInfo(),projectId);

} catch (RuntimeException re){
responseBody.setResultCode(-1);
Expand Down
6 changes: 6 additions & 0 deletions jjowin/src/main/java/back/jjowin/domain/Project.java
Expand Up @@ -2,6 +2,8 @@

import lombok.Getter;
import lombok.Setter;
import org.hibernate.annotations.ColumnDefault;
import org.hibernate.annotations.CreationTimestamp;

import javax.persistence.*;
import java.time.LocalDate;
Expand Down Expand Up @@ -36,12 +38,16 @@ public class Project {
@Enumerated(EnumType.STRING)
private ProjectStatus status; //프로젝트 진행상태 [INSPECTION, PROGRESS, COMPLETION]

@ColumnDefault("0")
private int likeCount;

@CreationTimestamp
private LocalDate startDate;

private LocalDate endDate;

private String image;

@OneToMany(mappedBy = "project")
private List<ProjectSkill> projectSkills = new ArrayList<>();

Expand Down
2 changes: 2 additions & 0 deletions jjowin/src/main/java/back/jjowin/domain/RecruitInfo.java
Expand Up @@ -2,6 +2,7 @@

import lombok.Getter;
import lombok.Setter;
import org.hibernate.annotations.ColumnDefault;

import javax.persistence.*;

Expand All @@ -21,5 +22,6 @@ public class RecruitInfo {

private int count;

@ColumnDefault("0")
private int completeCount;
}
Expand Up @@ -48,7 +48,7 @@ public List<Project> findAll() {
* @param name
* @return 프로젝트 리스트
*/
public List<Project> findByEmail(String name) {
public List<Project> findByName(String name) {
return em.createQuery("select u from Project u WHERE u.name = :name", Project.class)
.setParameter("name", name)
.getResultList();
Expand Down
2 changes: 2 additions & 0 deletions jjowin/src/main/java/back/jjowin/service/ProjectService.java
@@ -1,6 +1,7 @@
package back.jjowin.service;

import back.jjowin.domain.Project;
import back.jjowin.domain.ProjectStatus;
import back.jjowin.repository.ProjectRepository;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;
Expand All @@ -14,6 +15,7 @@ public class ProjectService {

@Transactional
public Long register(Project project){
project.setStatus(ProjectStatus.INSPECTION);
projectRepository.save(project);
return project.getId();
}
Expand Down
15 changes: 12 additions & 3 deletions jjowin/src/main/java/back/jjowin/service/ProjectSkillService.java
@@ -1,6 +1,9 @@
package back.jjowin.service;

import back.jjowin.domain.Project;
import back.jjowin.domain.ProjectSkill;
import back.jjowin.domain.ProjectStatus;
import back.jjowin.repository.ProjectRepository;
import back.jjowin.repository.ProjectSkillRepository;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;
Expand All @@ -11,11 +14,17 @@
@RequiredArgsConstructor
public class ProjectSkillService {
private final ProjectSkillRepository projectSkillRepository;
private final ProjectRepository projectRepository;

@Transactional
public Long register(ProjectSkill projectSkill){
projectSkillRepository.save(projectSkill);
return projectSkill.getId();
public void register(ProjectSkill[] projectSkills, Long projectId){

Project project = projectRepository.findOne(projectId);

for (int i=0; i<projectSkills.length;i++){
projectSkills[i].setProject(project);
projectSkillRepository.save(projectSkills[i]);
}
}

}
14 changes: 10 additions & 4 deletions jjowin/src/main/java/back/jjowin/service/RecruitInfoService.java
@@ -1,6 +1,8 @@
package back.jjowin.service;

import back.jjowin.domain.Project;
import back.jjowin.domain.RecruitInfo;
import back.jjowin.repository.ProjectRepository;
import back.jjowin.repository.RecruitInfoRepository;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;
Expand All @@ -11,13 +13,17 @@
@RequiredArgsConstructor
public class RecruitInfoService {
private final RecruitInfoRepository recruitInfoRepository;
private final ProjectRepository projectRepository;

@Transactional
public Long register(RecruitInfo[] recruitInfo){
for (int i=0; i<recruitInfo.length;i++){
recruitInfoRepository.save(recruitInfo[i]);
public void register(RecruitInfo[] recruitInfos, Long projectId){

Project project = projectRepository.findOne(projectId);

for (int i=0; i<recruitInfos.length;i++){
recruitInfos[i].setProject(project);
recruitInfoRepository.save(recruitInfos[i]);
}
return recruitInfo[0].getId();
}

}

0 comments on commit e2daa96

Please sign in to comment.