Paper.Yellow
이력서 등록 페이지 구현 1 본문
깃헙 주소
HJH/이력서등록 컨트롤러까지 구현 완료 · LegdayDev/miniproject1@59410df
Show file tree Showing 8 changed files with 98 additions and 4 deletions.
github.com
src/main/java/site/metacoding/miniproject/domain/person_skill/PersonSkillDao
public interface PersonSkillDao {
public void insert(PersonSkill personSkill);
public PersonSkill findById(Integer personSkillId);
public List<PersonSkill> findAll();
public void update(PersonSkill personSkill); // dto생각
public void deleteById(Integer personSkillId);
public List<PersonSkill> findByPersonId(Integer personId);
}
src/main/java/site/metacoding/miniproject/domain/resume/Resume
import java.sql.Timestamp;
import lombok.Getter;
import lombok.NoArgsConstructor;
@NoArgsConstructor
@Getter
public class Resume {
private Integer resumeId;
private Integer personId;
private String resumeTitle;
private String photo;
private String introduction;
private String myCloud;
private Timestamp createdAt;
public Resume(Integer personId, String resumeTitle, String photo, String introduction, String myCloud) {
this.personId = personId;
this.resumeTitle = resumeTitle;
this.photo = photo;
this.introduction = introduction;
this.myCloud = myCloud;
}
}
public Resume 생성자 추가
src/main/java/site/metacoding/miniproject/service/PersonService
@RequiredArgsConstructor
@Service
public class PersonService {
private final PersonDao personDao;
private final UserDao userDao;
private final ResumeDao resumeDao;
private final PersonSkillDao personSkillDao;
public void 회원가입(PersonJoinDto personJoinDto) {
userDao.insert(personJoinDto.toUser());
User userPS = userDao.findByUsername(personJoinDto.getUsername());
personDao.insert(personJoinDto.toPerson(userPS.getUserId()));
}
public ResumeFormDto 이력서내용가져오기(Integer personId) {
Person person = personDao.findById(personId);
ResumeFormDto resumeFormDto = new ResumeFormDto(person.getPersonName(), person.getPersonEmail(),
person.getDegree(),
personSkillDao.findByPersonId(personId));
return resumeFormDto;
}
public void 이력서등록(ResumeWriteDto resumeWriteDto, Integer personId) {
resumeDao.insert(resumeWriteDto.toEntity(personId));
}
}
이력서 등록 페이지에 가져올 데이터 뿌리기 위해서 이력서내용가져오기 / 등록을 위한 이력서 등록
src/main/java/site/metacoding/miniproject/web/PersonController
@RequiredArgsConstructor
@Controller
public class PersonController {
private final PersonService personService;
private final UserService userService;
@GetMapping("/person/resumeWrite/{id}")
public String resumeForm(@PathVariable Integer personId, Model model) {
ResumeFormDto personPS = personService.이력서내용가져오기(personId);
model.addAttribute("person", personPS);
return "person/resumeWriteForm";
}
@PostMapping("/save/resume/{id}")
public @ResponseBody CMRespDto<?> resumeWrite(@RequestBody ResumeWriteDto resumeWriteDto,
@PathVariable Integer personId) {
personService.이력서등록(resumeWriteDto, personId);
return new CMRespDto<>(1, "이력서 등록 성공", null);
}
}
src/main/java/site/metacoding/miniproject/web/dto/request/ResumeWriteDto
@Getter
@Setter
public class ResumeWriteDto {
private String resumeTitle;
private String photo;
private String myCloud;
private String introduction;
public Resume toEntity(Integer personId) {
return new Resume(personId, this.resumeTitle, this.photo, this.introduction, this.myCloud);
}
}
src/main/java/site/metacoding/miniproject/web/dto/response/ResumeFormDto
@Getter
@AllArgsConstructor
public class ResumeFormDto {
private String personName;
private String personEmail;
private String degree;
private List<PersonSkill> personSkillList;
}
src/main/resources/mapper/person_skill.xml
<select id="findByPersonId" resultType="site.metacoding.miniproject.domain.person_skill.PersonSkill">
SELECT *
FROM Person_Skill
WHERE person_Id = #{personId}
</select>
person_id로 검색 후 가지고 있는 모든 스킬을 가져오기 위해서 명령문 생성
src/main/resources/mapper/resume.xml
<insert id="insert">
INSERT INTO resume(person_id, photo, introduction, my_cloud, created_At )
VALUE(#{personId}, #{photo}, #{introduction}, #{myCloud}, now())
>>>>INSERT INTO resume(person_id, resumeTitle, photo, introduction, my_cloud, created_At )
VALUE( #{personId}, #{resumeTitle}, #{photo}, #{introduction}, #{myCloud}, now())
</insert>
처음엔 타이틀의 값을 받는 형식의 시안이 아니었다가 변경되어 명령문 변경
'프로젝트 > 구인구직구현 mini 프로젝트' 카테고리의 다른 글
이력서 상세보기 DTO (0) | 2022.11.02 |
---|---|
공고별 지원자 리스트 DTO (0) | 2022.11.02 |
공고 리스트 DTO 수정 (0) | 2022.11.02 |
이력서 등록 페이지 구현 2 (0) | 2022.10.12 |