diff --git a/VamPa/src/main/java/com/vam/mapper/OrderMapper.java b/VamPa/src/main/java/com/vam/mapper/OrderMapper.java index 329651e..e021199 100644 --- a/VamPa/src/main/java/com/vam/mapper/OrderMapper.java +++ b/VamPa/src/main/java/com/vam/mapper/OrderMapper.java @@ -1,5 +1,7 @@ package com.vam.mapper; +import java.util.List; + import com.vam.model.BookVO; import com.vam.model.MemberVO; import com.vam.model.OrderDTO; @@ -26,4 +28,14 @@ public interface OrderMapper { /* 주문 재고 차감 */ public int deductStock(BookVO book); + /* 주문 취소 */ + public int orderCancle(String orderId); + + /* 주문 상품 정보(주문취소) */ + public List getOrderItemInfo(String orderId); + + /* 주문 정보(주문취소) */ + public OrderDTO getOrder(String orderId); + + } diff --git a/VamPa/src/main/java/com/vam/model/OrderCancelDTO.java b/VamPa/src/main/java/com/vam/model/OrderCancelDTO.java new file mode 100644 index 0000000..67dfe7c --- /dev/null +++ b/VamPa/src/main/java/com/vam/model/OrderCancelDTO.java @@ -0,0 +1,63 @@ +package com.vam.model; + +public class OrderCancelDTO { + + private String memberId; + + private String orderId; + + private String keyword; + + private int amount; + + private int pageNum; + + public String getMemberId() { + return memberId; + } + + public void setMemberId(String memberId) { + this.memberId = memberId; + } + + public String getOrderId() { + return orderId; + } + + public void setOrderId(String orderId) { + this.orderId = orderId; + } + + public String getKeyword() { + return keyword; + } + + public void setKeyword(String keyword) { + this.keyword = keyword; + } + + public int getAmount() { + return amount; + } + + public void setAmount(int amount) { + this.amount = amount; + } + + public int getPageNum() { + return pageNum; + } + + public void setPageNum(int pageNum) { + this.pageNum = pageNum; + } + + @Override + public String toString() { + return "OrderCancelDTO [memberId=" + memberId + ", orderId=" + orderId + ", keyword=" + keyword + ", amount=" + + amount + ", pageNum=" + pageNum + "]"; + } + + + +} diff --git a/VamPa/src/main/java/com/vam/service/OrderService.java b/VamPa/src/main/java/com/vam/service/OrderService.java index 541a525..90e17ca 100644 --- a/VamPa/src/main/java/com/vam/service/OrderService.java +++ b/VamPa/src/main/java/com/vam/service/OrderService.java @@ -2,6 +2,7 @@ package com.vam.service; import java.util.List; +import com.vam.model.OrderCancelDTO; import com.vam.model.OrderDTO; import com.vam.model.OrderPageItemDTO; @@ -13,4 +14,7 @@ public interface OrderService { /* 주문 */ public void order(OrderDTO orw); + /* 주문 취소 */ + public void orderCancle(OrderCancelDTO dto); + } diff --git a/VamPa/src/main/java/com/vam/service/OrderServiceImpl.java b/VamPa/src/main/java/com/vam/service/OrderServiceImpl.java index fdfbf9c..549d40d 100644 --- a/VamPa/src/main/java/com/vam/service/OrderServiceImpl.java +++ b/VamPa/src/main/java/com/vam/service/OrderServiceImpl.java @@ -18,6 +18,7 @@ import com.vam.model.AttachImageVO; import com.vam.model.BookVO; import com.vam.model.CartDTO; import com.vam.model.MemberVO; +import com.vam.model.OrderCancelDTO; import com.vam.model.OrderDTO; import com.vam.model.OrderItemDTO; import com.vam.model.OrderPageItemDTO; @@ -138,6 +139,53 @@ public class OrderServiceImpl implements OrderService{ } + + /* 주문취소 */ + @Override + @Transactional + public void orderCancle(OrderCancelDTO dto) { + + /* 주문, 주문상품 객체 */ + /*회원*/ + MemberVO member = memberMapper.getMemberInfo(dto.getMemberId()); + /*주문상품*/ + List ords = orderMapper.getOrderItemInfo(dto.getOrderId()); + for(OrderItemDTO ord : ords) { + ord.initSaleTotal(); + } + /* 주문 */ + OrderDTO orw = orderMapper.getOrder(dto.getOrderId()); + orw.setOrders(ords); + + orw.getOrderPriceInfo(); + + /* 주문상품 취소 DB */ + orderMapper.orderCancle(dto.getOrderId()); + + /* 돈, 포인트, 재고 변환 */ + /* 돈 */ + int calMoney = member.getMoney(); + calMoney += orw.getOrderFinalSalePrice(); + member.setMoney(calMoney); + + /* 포인트 */ + int calPoint = member.getPoint(); + calPoint = calPoint + orw.getUsePoint() - orw.getOrderSavePoint(); + member.setPoint(calPoint); + + /* DB적용 */ + orderMapper.deductMoney(member); + + /* 재고 */ + for(OrderItemDTO ord : orw.getOrders()) { + BookVO book = bookMapper.getGoodsInfo(ord.getBookId()); + book.setBookStock(book.getBookStock() + ord.getBookCount()); + orderMapper.deductStock(book); + } + + + } + diff --git a/VamPa/src/main/resources/com/vam/mapper/OrderMapper.xml b/VamPa/src/main/resources/com/vam/mapper/OrderMapper.xml index cbd1f88..74d2a0b 100644 --- a/VamPa/src/main/resources/com/vam/mapper/OrderMapper.xml +++ b/VamPa/src/main/resources/com/vam/mapper/OrderMapper.xml @@ -48,5 +48,28 @@ update vam_book set bookStock = #{bookStock} where bookId = #{bookId} + + + + + update vam_order set orderState = '주문취소' where orderId = #{orderId} + + + + + + + + \ No newline at end of file diff --git a/VamPa/target/classes/com/vam/mapper/OrderMapper.xml b/VamPa/target/classes/com/vam/mapper/OrderMapper.xml index cbd1f88..74d2a0b 100644 --- a/VamPa/target/classes/com/vam/mapper/OrderMapper.xml +++ b/VamPa/target/classes/com/vam/mapper/OrderMapper.xml @@ -48,5 +48,28 @@ update vam_book set bookStock = #{bookStock} where bookId = #{bookId} + + + + + update vam_order set orderState = '주문취소' where orderId = #{orderId} + + + + + + + + \ No newline at end of file diff --git a/VamPa_MySQL/src/main/java/com/vam/mapper/OrderMapper.java b/VamPa_MySQL/src/main/java/com/vam/mapper/OrderMapper.java index 6ebba16..7aa3fa6 100644 --- a/VamPa_MySQL/src/main/java/com/vam/mapper/OrderMapper.java +++ b/VamPa_MySQL/src/main/java/com/vam/mapper/OrderMapper.java @@ -1,5 +1,7 @@ package com.vam.mapper; +import java.util.List; + import com.vam.model.BookVO; import com.vam.model.MemberVO; import com.vam.model.OrderDTO; @@ -24,6 +26,15 @@ public interface OrderMapper { public int deductMoney(MemberVO member); /* 주문 재고 차감 */ - public int deductStock(BookVO book); + public int deductStock(BookVO book); + + /* 주문 취소 */ + public int orderCancle(String orderId); + + /* 주문 상품 정보(주문취소) */ + public List getOrderItemInfo(String orderId); + + /* 주문 정보(주문취소) */ + public OrderDTO getOrder(String orderId); } diff --git a/VamPa_MySQL/src/main/java/com/vam/model/OrderCancelDTO.java b/VamPa_MySQL/src/main/java/com/vam/model/OrderCancelDTO.java new file mode 100644 index 0000000..28bc08a --- /dev/null +++ b/VamPa_MySQL/src/main/java/com/vam/model/OrderCancelDTO.java @@ -0,0 +1,62 @@ +package com.vam.model; + +public class OrderCancelDTO { + + private String memberId; + + private String orderId; + + private String keyword; + + private int amount; + + private int pageNum; + + public String getMemberId() { + return memberId; + } + + public void setMemberId(String memberId) { + this.memberId = memberId; + } + + public String getOrderId() { + return orderId; + } + + public void setOrderId(String orderId) { + this.orderId = orderId; + } + + public String getKeyword() { + return keyword; + } + + public void setKeyword(String keyword) { + this.keyword = keyword; + } + + public int getAmount() { + return amount; + } + + public void setAmount(int amount) { + this.amount = amount; + } + + public int getPageNum() { + return pageNum; + } + + public void setPageNum(int pageNum) { + this.pageNum = pageNum; + } + + @Override + public String toString() { + return "OrderCancelDTO [memberId=" + memberId + ", orderId=" + orderId + ", keyword=" + keyword + ", amount=" + + amount + ", pageNum=" + pageNum + "]"; + } + + +} diff --git a/VamPa_MySQL/src/main/java/com/vam/service/OrderService.java b/VamPa_MySQL/src/main/java/com/vam/service/OrderService.java index 3e5d7ac..37ed064 100644 --- a/VamPa_MySQL/src/main/java/com/vam/service/OrderService.java +++ b/VamPa_MySQL/src/main/java/com/vam/service/OrderService.java @@ -2,6 +2,7 @@ package com.vam.service; import java.util.List; +import com.vam.model.OrderCancelDTO; import com.vam.model.OrderDTO; import com.vam.model.OrderPageItemDTO; @@ -13,4 +14,7 @@ public interface OrderService { /* 주문 */ public void order(OrderDTO orw); + /* 주문 취소 */ + public void orderCancle(OrderCancelDTO dto); + } diff --git a/VamPa_MySQL/src/main/java/com/vam/service/OrderServiceImpl.java b/VamPa_MySQL/src/main/java/com/vam/service/OrderServiceImpl.java index c404209..81cced4 100644 --- a/VamPa_MySQL/src/main/java/com/vam/service/OrderServiceImpl.java +++ b/VamPa_MySQL/src/main/java/com/vam/service/OrderServiceImpl.java @@ -18,6 +18,7 @@ import com.vam.model.AttachImageVO; import com.vam.model.BookVO; import com.vam.model.CartDTO; import com.vam.model.MemberVO; +import com.vam.model.OrderCancelDTO; import com.vam.model.OrderDTO; import com.vam.model.OrderItemDTO; import com.vam.model.OrderPageItemDTO; @@ -137,4 +138,51 @@ public class OrderServiceImpl implements OrderService{ } + + /* 주문취소 */ + @Override + @Transactional + public void orderCancle(OrderCancelDTO dto) { + + /* 주문, 주문상품 객체 */ + /*회원*/ + MemberVO member = memberMapper.getMemberInfo(dto.getMemberId()); + /*주문상품*/ + List ords = orderMapper.getOrderItemInfo(dto.getOrderId()); + for(OrderItemDTO ord : ords) { + ord.initSaleTotal(); + } + /* 주문 */ + OrderDTO orw = orderMapper.getOrder(dto.getOrderId()); + orw.setOrders(ords); + + orw.getOrderPriceInfo(); + + /* 주문상품 취소 DB */ + orderMapper.orderCancle(dto.getOrderId()); + + /* 돈, 포인트, 재고 변환 */ + /* 돈 */ + int calMoney = member.getMoney(); + calMoney += orw.getOrderFinalSalePrice(); + member.setMoney(calMoney); + + /* 포인트 */ + int calPoint = member.getPoint(); + calPoint = calPoint + orw.getUsePoint() - orw.getOrderSavePoint(); + member.setPoint(calPoint); + + /* DB적용 */ + orderMapper.deductMoney(member); + + /* 재고 */ + for(OrderItemDTO ord : orw.getOrders()) { + BookVO book = bookMapper.getGoodsInfo(ord.getBookId()); + book.setBookStock(book.getBookStock() + ord.getBookCount()); + orderMapper.deductStock(book); + } + + + } + } diff --git a/VamPa_MySQL/src/main/resources/com/vam/mapper/OrderMapper.xml b/VamPa_MySQL/src/main/resources/com/vam/mapper/OrderMapper.xml index 9d422a7..094983f 100644 --- a/VamPa_MySQL/src/main/resources/com/vam/mapper/OrderMapper.xml +++ b/VamPa_MySQL/src/main/resources/com/vam/mapper/OrderMapper.xml @@ -48,5 +48,28 @@ update vam_book set bookStock = #{bookStock} where bookId = #{bookId} + + + + + update vam_order set orderState = '주문취소' where orderId = #{orderId} + + + + + + + + \ No newline at end of file diff --git a/VamPa_MySQL/target/classes/com/vam/mapper/OrderMapper.xml b/VamPa_MySQL/target/classes/com/vam/mapper/OrderMapper.xml index 9d422a7..094983f 100644 --- a/VamPa_MySQL/target/classes/com/vam/mapper/OrderMapper.xml +++ b/VamPa_MySQL/target/classes/com/vam/mapper/OrderMapper.xml @@ -48,5 +48,28 @@ update vam_book set bookStock = #{bookStock} where bookId = #{bookId} + + + + + update vam_order set orderState = '주문취소' where orderId = #{orderId} + + + + + + + + \ No newline at end of file