[Spring][쇼핑몰 프로젝트][21] 상품정보 수정 구현 - 3

https://kimvampa.tistory.com/208
This commit is contained in:
SeoJin Kim
2021-04-26 10:40:31 +09:00
parent 7e9c3dc965
commit 28bc356fce
18 changed files with 419 additions and 10 deletions

View File

@@ -101,6 +101,20 @@ public class AdminController {
}
/* 상품 정보 수정 */
@PostMapping("/goodsModify")
public String goodsModifyPOST(BookVO vo, RedirectAttributes rttr) {
logger.info("goodsModifyPOST.........." + vo);
int result = adminService.goodsModify(vo);
rttr.addFlashAttribute("modify_result", result);
return "redirect:/admin/goodsManage";
}
/* 작가 등록 페이지 접속 */
@RequestMapping(value = "authorEnroll", method = RequestMethod.GET)
public void authorEnrollGET() throws Exception{

View File

@@ -23,4 +23,7 @@ public interface AdminMapper {
/* 상품 조회 페이지 */
public BookVO goodsGetDetail(int bookId);
/* 상품 수정 */
public int goodsModify(BookVO vo);
}

View File

@@ -23,4 +23,7 @@ public interface AdminService {
/* 상품 조회 페이지 */
public BookVO goodsGetDetail(int bookId);
/* 상품 수정 */
public int goodsModify(BookVO vo);
}

View File

@@ -64,4 +64,14 @@ public class AdminServiceImpl implements AdminService {
return adminMapper.goodsGetDetail(bookId);
}
/* 상품 정보 수정 */
@Override
public int goodsModify(BookVO vo) {
log.info("goodsModify........");
return adminMapper.goodsModify(vo);
}
}

View File

@@ -65,5 +65,14 @@
from vam_book where bookId = #{bookId}
</select>
<!-- 상품 정보 수정 -->
<update id="goodsModify">
update vam_book set bookName = #{bookName}, authorId = #{authorId}, publeYear = #{publeYear}, publisher = #{publisher}, cateCode = ${cateCode},
bookPrice = #{bookPrice}, bookStock = #{bookStock}, bookDiscount = #{bookDiscount}, bookIntro = #{bookIntro}, bookContents = #{bookContents}, updateDate = sysdate
where bookId = ${bookId}
</update>
</mapper>

View File

@@ -111,10 +111,9 @@
<script>
$(document).ready(function(){
/* 등록 성공 이벤트 */
let eResult = '<c:out value="${enroll_result}"/>';
checkResult(eResult);
function checkResult(result){
if(result === ''){
@@ -124,6 +123,13 @@ $(document).ready(function(){
alert("상품'"+ eResult +"'을 등록하였습니다.");
}
/* 수정 성공 이벤트 */
let modify_result = '${modify_result}';
if(modify_result == 1){
alert("수정 완료");
}
});

View File

@@ -421,7 +421,133 @@
}
});
});
/* 취소 버튼 */
$("#cancelBtn").on("click", function(e){
e.preventDefault();
$("#moveForm").submit();
});
/* 수정 버튼 */
$("#modifyBtn").on("click",function(e){
e.preventDefault();
/* 체크 변수 */
let bookNameCk = false;
let authorIdCk = false;
let publeYearCk = false;
let publisherCk = false;
let cateCodeCk = false;
let priceCk = false;
let stockCk = false;
let discountCk = false;
let introCk = false;
let contentsCk = false;
/* 체크 대상 변수 */
let bookName = $("input[name='bookName']").val();
let authorId = $("input[name='authorId']").val();
let publeYear = $("input[name='publeYear']").val();
let publisher = $("input[name='publisher']").val();
let cateCode = $("select[name='cateCode']").val();
let bookPrice = $("input[name='bookPrice']").val();
let bookStock = $("input[name='bookStock']").val();
let bookDiscount = $("#discount_interface").val();
let bookIntro = $(".bit p").html();
let bookContents = $(".bct p").html();
/* 공란 체크 */
if(bookName){
$(".bookName_warn").css('display','none');
bookNameCk = true;
} else {
$(".bookName_warn").css('display','block');
bookNameCk = false;
}
if(authorId){
$(".authorId_warn").css('display','none');
authorIdCk = true;
} else {
$(".authorId_warn").css('display','block');
authorIdCk = false;
}
if(publeYear){
$(".publeYear_warn").css('display','none');
publeYearCk = true;
} else {
$(".publeYear_warn").css('display','block');
publeYearCk = false;
}
if(publisher){
$(".publisher_warn").css('display','none');
publisherCk = true;
} else {
$(".publisher_warn").css('display','block');
publisherCk = false;
}
if(cateCode != 'none'){
$(".cateCode_warn").css('display','none');
cateCodeCk = true;
} else {
$(".cateCode_warn").css('display','block');
cateCodeCk = false;
}
if(bookPrice != 0){
$(".bookPrice_warn").css('display','none');
priceCk = true;
} else {
$(".bookPrice_warn").css('display','block');
priceCk = false;
}
if(bookStock != 0){
$(".bookStock_warn").css('display','none');
stockCk = true;
} else {
$(".bookStock_warn").css('display','block');
stockCk = false;
}
if(!isNaN(bookDiscount)){
$(".bookDiscount_warn").css('display','none');
discountCk = true;
} else {
$(".bookDiscount_warn").css('display','block');
discountCk = false;
}
if(bookIntro != '<br data-cke-filler="true">'){
$(".bookIntro_warn").css('display','none');
introCk = true;
} else {
$(".bookIntro_warn").css('display','block');
introCk = false;
}
if(bookContents != '<br data-cke-filler="true">'){
$(".bookContents_warn").css('display','none');
contentsCk = true;
} else {
$(".bookContents_warn").css('display','block');
contentsCk = false;
}
/* 최종 확인 */
if(bookNameCk && authorIdCk && publeYearCk && publisherCk && cateCodeCk && priceCk && stockCk && discountCk && introCk && contentsCk ){
//alert('통과');
$("#modifyForm").submit();
} else {
return false;
}
});
</script>

View File

@@ -74,17 +74,41 @@ public class AdminMapperTests {
*/
/* 상품 조회 페이지 */
/*
@Test
public void goodsGetDetailTest() {
int bookId = 150;
int bookId = 134;
BookVO result = mapper.goodsGetDetail(bookId);
System.out.println("상품 조회 데이터 : " + result);
System.out.println("상품 상페 결과 : " + result);
}
*/
/* 상품 정보 수정 */
@Test
public void goodsModifyTest() {
BookVO book = new BookVO();
book.setBookId(95);
book.setBookName("mapper 테스트");
book.setAuthorId(94);
book.setPubleYear("2021-03-18");
book.setPublisher("출판사");
book.setCateCode("103002");
book.setBookPrice(20000);
book.setBookStock(300);
book.setBookDiscount(0.23);
book.setBookIntro("책 소개 ");
book.setBookContents("책 목차 ");
mapper.goodsModify(book);
}
}

View File

@@ -65,5 +65,14 @@
from vam_book where bookId = #{bookId}
</select>
<!-- 상품 정보 수정 -->
<update id="goodsModify">
update vam_book set bookName = #{bookName}, authorId = #{authorId}, publeYear = #{publeYear}, publisher = #{publisher}, cateCode = ${cateCode},
bookPrice = #{bookPrice}, bookStock = #{bookStock}, bookDiscount = #{bookDiscount}, bookIntro = #{bookIntro}, bookContents = #{bookContents}, updateDate = sysdate
where bookId = ${bookId}
</update>
</mapper>

View File

@@ -101,6 +101,21 @@ public class AdminController {
}
/* 상품 정보 수정 */
@PostMapping("/goodsModify")
public String goodsModifyPOST(BookVO vo, RedirectAttributes rttr) {
logger.info("goodsModifyPOST.........." + vo);
int result = adminService.goodsModify(vo);
rttr.addFlashAttribute("modify_result", result);
return "redirect:/admin/goodsManage";
}
/* 작가 등록 페이지 접속 */
@RequestMapping(value = "authorEnroll", method = RequestMethod.GET)
public void authorEnrollGET() throws Exception{

View File

@@ -24,4 +24,7 @@ public interface AdminMapper {
/* 상품 조회 페이지 */
public BookVO goodsGetDetail(int bookId);
/* 상품 수정 */
public int goodsModify(BookVO vo);
}

View File

@@ -22,5 +22,8 @@ public interface AdminService {
/* 상품 조회 페이지 */
public BookVO goodsGetDetail(int bookId);
/* 상품 수정 */
public int goodsModify(BookVO vo);
}

View File

@@ -60,4 +60,14 @@ public class AdminServiceImpl implements AdminService {
return adminMapper.goodsGetDetail(bookId);
}
/* 상품 정보 수정 */
@Override
public int goodsModify(BookVO vo) {
log.info("goodsModify........");
return adminMapper.goodsModify(vo);
}
}

View File

@@ -56,4 +56,13 @@
</select>
<!-- 상품 정보 수정 -->
<update id="goodsModify">
update vam_book set bookName = #{bookName}, authorId = #{authorId}, publeYear = #{publeYear}, publisher = #{publisher}, cateCode = ${cateCode},
bookPrice = #{bookPrice}, bookStock = #{bookStock}, bookDiscount = #{bookDiscount}, bookIntro = #{bookIntro}, bookContents = #{bookContents}, updateDate = now()
where bookId = ${bookId}
</update>
</mapper>

View File

@@ -111,10 +111,9 @@
<script>
$(document).ready(function(){
/* 등록 성공 이벤트 */
let eResult = '<c:out value="${enroll_result}"/>';
checkResult(eResult);
function checkResult(result){
if(result === ''){
@@ -124,6 +123,13 @@ $(document).ready(function(){
alert("상품'"+ eResult +"'을 등록하였습니다.");
}
/* 수정 성공 이벤트 */
let modify_result = '${modify_result}';
if(modify_result == 1){
alert("수정 완료");
}
});

View File

@@ -142,7 +142,7 @@
<button id="modifyBtn" class="btn modify_btn">수 정</button>
</div>
</div>
<form id="moveForm" action="/admin/goodsManage" method="get" >
<form id="moveForm" action="/admin/goodsDetail" method="get" >
<input type="hidden" name="pageNum" value="${cri.pageNum}">
<input type="hidden" name="amount" value="${cri.amount}">
<input type="hidden" name="keyword" value="${cri.keyword}">
@@ -421,6 +421,132 @@
});
/* 취소 버튼 */
$("#cancelBtn").on("click", function(e){
e.preventDefault();
$("#moveForm").submit();
});
/* 수정 버튼 */
$("#modifyBtn").on("click",function(e){
e.preventDefault();
/* 체크 변수 */
let bookNameCk = false;
let authorIdCk = false;
let publeYearCk = false;
let publisherCk = false;
let cateCodeCk = false;
let priceCk = false;
let stockCk = false;
let discountCk = false;
let introCk = false;
let contentsCk = false;
/* 체크 대상 변수 */
let bookName = $("input[name='bookName']").val();
let authorId = $("input[name='authorId']").val();
let publeYear = $("input[name='publeYear']").val();
let publisher = $("input[name='publisher']").val();
let cateCode = $("select[name='cateCode']").val();
let bookPrice = $("input[name='bookPrice']").val();
let bookStock = $("input[name='bookStock']").val();
let bookDiscount = $("#discount_interface").val();
let bookIntro = $(".bit p").html();
let bookContents = $(".bct p").html();
/* 공란 체크 */
if(bookName){
$(".bookName_warn").css('display','none');
bookNameCk = true;
} else {
$(".bookName_warn").css('display','block');
bookNameCk = false;
}
if(authorId){
$(".authorId_warn").css('display','none');
authorIdCk = true;
} else {
$(".authorId_warn").css('display','block');
authorIdCk = false;
}
if(publeYear){
$(".publeYear_warn").css('display','none');
publeYearCk = true;
} else {
$(".publeYear_warn").css('display','block');
publeYearCk = false;
}
if(publisher){
$(".publisher_warn").css('display','none');
publisherCk = true;
} else {
$(".publisher_warn").css('display','block');
publisherCk = false;
}
if(cateCode != 'none'){
$(".cateCode_warn").css('display','none');
cateCodeCk = true;
} else {
$(".cateCode_warn").css('display','block');
cateCodeCk = false;
}
if(bookPrice != 0){
$(".bookPrice_warn").css('display','none');
priceCk = true;
} else {
$(".bookPrice_warn").css('display','block');
priceCk = false;
}
if(bookStock != 0){
$(".bookStock_warn").css('display','none');
stockCk = true;
} else {
$(".bookStock_warn").css('display','block');
stockCk = false;
}
if(!isNaN(bookDiscount)){
$(".bookDiscount_warn").css('display','none');
discountCk = true;
} else {
$(".bookDiscount_warn").css('display','block');
discountCk = false;
}
if(bookIntro != '<br data-cke-filler="true">'){
$(".bookIntro_warn").css('display','none');
introCk = true;
} else {
$(".bookIntro_warn").css('display','block');
introCk = false;
}
if(bookContents != '<br data-cke-filler="true">'){
$(".bookContents_warn").css('display','none');
contentsCk = true;
} else {
$(".bookContents_warn").css('display','block');
contentsCk = false;
}
/* 최종 확인 */
if(bookNameCk && authorIdCk && publeYearCk && publisherCk && cateCodeCk && priceCk && stockCk && discountCk && introCk && contentsCk ){
//alert('통과');
$("#modifyForm").submit();
} else {
return false;
}
});
</script>
</body>

View File

@@ -76,16 +76,40 @@ public class AdminMapperTests {
*/
/* 상품 조회 페이지 */
/*
@Test
public void goodsGetDetailTest() {
int bookId = 150;
int bookId = 134;
BookVO result = mapper.goodsGetDetail(bookId);
System.out.println("상품 조회 데이터 : " + result);
System.out.println("상품 상페 결과 : " + result);
}
*/
/* 상품 정보 수정 */
@Test
public void goodsModifyTest() {
BookVO book = new BookVO();
book.setBookId(4);
book.setBookName("mapper 테스트");
book.setAuthorId(94);
book.setPubleYear("2021-03-18");
book.setPublisher("출판사");
book.setCateCode("104002");
book.setBookPrice(20000);
book.setBookStock(300);
book.setBookDiscount(0.23);
book.setBookIntro("책 소개 ");
book.setBookContents("책 목차 ");
mapper.goodsModify(book);
}
}

View File

@@ -56,4 +56,13 @@
</select>
<!-- 상품 정보 수정 -->
<update id="goodsModify">
update vam_book set bookName = #{bookName}, authorId = #{authorId}, publeYear = #{publeYear}, publisher = #{publisher}, cateCode = ${cateCode},
bookPrice = #{bookPrice}, bookStock = #{bookStock}, bookDiscount = #{bookDiscount}, bookIntro = #{bookIntro}, bookContents = #{bookContents}, updateDate = now()
where bookId = ${bookId}
</update>
</mapper>