seong

채용 공고 수정 기능 본문

이력관리사이트

채용 공고 수정 기능

hyeonseong 2022. 10. 22. 14:54

채용 공고 수정 기능도 기본 CRUD 기본에 하던 방식을 벗어나지않고 만들면서 필요한 부분에대해 더 생각해보기로 하자. 

작성 순서

1. 필요한 정보 확인

2. Mapper 작성

3. Dto생성

4. Service작성

5. Controller작성

6. View만들어서 확인

 

1. 필요한 정보 확인

- insert와 거의 동일 하다 . Category, career두개의 테이블을 한번에 수정 해야한다.

2. Mapper 작성

- Category테이블에 대한 update

	UPDATE category 
	SET category_frontend = #{categoryFrontend},
	 category_Backend =#{categoryBackend},
	 category_devops = #{categoryDevops}
	WHERE category_id = #{categoryId}

- Career테이블에 대한 update

UPDATE career 

SET one_year_less = #{oneYearLess},

two_year_over =#{twoYearOver},

three_year_over = #{threeYearOver},

five_year_over = #{fiveYearOver}

WHERE career_id = #{careerId}

- job_posting_board에 대한 update

		UPDATE job_posting_board
		SET
		job_posting_board_title=#{jobPostingBoardTitle},
		job_posting_board_content=#{jobPostingBoardContent},
		job_posting_salary =#{jobPostingSalary},
		job_posting_board_place = #{jobPostingBoardPlace},
		job_posting_board_deadline = #{jobPostingBoardDeadline}
		WHERE
		job_posting_board_id = #{jobPostingBoardId}

3. Dto생성

4. Service작성

업데이트 해당 엔티티에 updateDto를 매개변수로 가지고 있는 생성자를 만들어주었다.

그리고 jobPostingBoard에서는 job_posting_board_career_id라는 아이디를 가지고 있지만,

Career에는 Career_id로 업데이트를 하는 로직이었다.

그래서 따로 엔티티에 id값을 임의로 만들어 주어 업데이트를 진행 했다.

5. Controller작성

Controller에서 값이 클라이언트 -> 컨트롤러로 전달이 되는지 확인 해보기 위해 로그로 일일이 확인 해주었다. 

6. View만들어서 확인

업데이트의 실행 함수 스크립트 부분이다.

insert와 다를게 거의 없어 어렵지 않게 진행 되었다.

function update() {
	let jobPostingBoardId =$("#jobPostingBoardId").val();
	jobPostingBoardCategoryId: $("#jobPostingBoardCategoryId").val();
	jobPostingBoardCareerId: $("#jobPostingBoardCareerId").val();
	let data = {
			jobPostingBoardCategoryId: $("#jobPostingBoardCategoryId").val(),
			jobPostingBoardCareerId: $("#jobPostingBoardCareerId").val(),

			jobPostingBoardTitle: $("#jobPostingBoardTitle").val(),
			oneYearLess: $("input:checkbox[value='oneYearLess']").is(":checked"),
			twoYearOver: $("input:checkbox[value='twoYearOver']").is(":checked"),
			threeYearOver: $("input:checkbox[value='threeYearOver']").is(":checked"),
			fiveYearOver: $("input:checkbox[value='fiveYearOver']").is(":checked"),
			categoryFrontend: $("input:checkbox[value='categoryFrontend']").is(":checked"),
			categoryBackend: $("input:checkbox[value='categoryBackend']").is(":checked"),
			categoryDevops: $("input:checkbox[value='categoryDevops']").is(":checked"),
			jobPostingSalary:$('input[type=radio][name= jobPostingSalary]:checked').val(),
			jobPostingBoardPlace: $("#post").val() + "," + $("#addr").val(),
			
			jobPostingBoardDeadline: $("#jobPostingBoardDeadline").val(),
			jobPostingBoardContent: $("#jobPostingBoardContent").val()
		};	
	console.log(jobPostingBoardCategoryId);
	console.log(jobPostingBoardCareerId);
	
	$.ajax("/company/jobPostingBoardUpdate/"+jobPostingBoardId, {
		type: "PUT",
		dataType: "json",
		data: JSON.stringify(data),
		headers: {
			"Content-Type": "application/json; charset=utf-8"
		}
	}).done((res) => {
		if (res.code == 1) {
			alert("채용 공고 수정 완료");
			location.href="/company/jobPostingBoardList";
		} else {
			alert("업데이트에 실패하였습니다");
		}
	});
}

 

'이력관리사이트' 카테고리의 다른 글

이력서 - 채용공고 상세보기  (0) 2022.11.14
Git 진행 시 파일 대소문자 구분에러 해결  (0) 2022.10.22
채용 공고 등록 기능  (0) 2022.10.22
회사 정보 수정 하기  (1) 2022.10.15
회사 정보 보기  (0) 2022.10.14