[Spring][쇼핑몰 프로젝트][44] 주문 취소 - 1

https://kimvampa.tistory.com/285?category=771727
This commit is contained in:
SeoJin Kim
2021-12-29 04:59:42 +09:00
parent d5a0a656d4
commit e7a0d46763
12 changed files with 345 additions and 1 deletions

View File

@@ -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<OrderItemDTO> getOrderItemInfo(String orderId);
/* 주문 정보(주문취소) */
public OrderDTO getOrder(String orderId);
}

View File

@@ -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 + "]";
}
}

View File

@@ -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);
}

View File

@@ -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<OrderItemDTO> 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);
}
}

View File

@@ -48,5 +48,28 @@
update vam_book set bookStock = #{bookStock} where bookId = #{bookId}
</update>
<!-- 주문취소 -->
<update id="orderCancle">
update vam_order set orderState = '주문취소' where orderId = #{orderId}
</update>
<!-- 주문 상품 정보(주문취소) -->
<select id="getOrderItemInfo" resultType="com.vam.model.OrderItemDTO">
select * from vam_orderItem
where orderId = #{orderId}
</select>
<!-- 주문 정보(주문 취소) -->
<select id="getOrder" resultType="com.vam.model.OrderDTO">
select * from vam_order
where orderId = #{orderId}
</select>
</mapper>

View File

@@ -48,5 +48,28 @@
update vam_book set bookStock = #{bookStock} where bookId = #{bookId}
</update>
<!-- 주문취소 -->
<update id="orderCancle">
update vam_order set orderState = '주문취소' where orderId = #{orderId}
</update>
<!-- 주문 상품 정보(주문취소) -->
<select id="getOrderItemInfo" resultType="com.vam.model.OrderItemDTO">
select * from vam_orderItem
where orderId = #{orderId}
</select>
<!-- 주문 정보(주문 취소) -->
<select id="getOrder" resultType="com.vam.model.OrderDTO">
select * from vam_order
where orderId = #{orderId}
</select>
</mapper>

View File

@@ -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<OrderItemDTO> getOrderItemInfo(String orderId);
/* 주문 정보(주문취소) */
public OrderDTO getOrder(String orderId);
}

View File

@@ -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 + "]";
}
}

View File

@@ -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);
}

View File

@@ -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<OrderItemDTO> 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);
}
}
}

View File

@@ -48,5 +48,28 @@
update vam_book set bookStock = #{bookStock} where bookId = #{bookId}
</update>
<!-- 주문취소 -->
<update id="orderCancle">
update vam_order set orderState = '주문취소' where orderId = #{orderId}
</update>
<!-- 주문 상품 정보(주문취소) -->
<select id="getOrderItemInfo" resultType="com.vam.model.OrderItemDTO">
select * from vam_orderItem
where orderId = #{orderId}
</select>
<!-- 주문 정보(주문 취소) -->
<select id="getOrder" resultType="com.vam.model.OrderDTO">
select * from vam_order
where orderId = #{orderId}
</select>
</mapper>

View File

@@ -48,5 +48,28 @@
update vam_book set bookStock = #{bookStock} where bookId = #{bookId}
</update>
<!-- 주문취소 -->
<update id="orderCancle">
update vam_order set orderState = '주문취소' where orderId = #{orderId}
</update>
<!-- 주문 상품 정보(주문취소) -->
<select id="getOrderItemInfo" resultType="com.vam.model.OrderItemDTO">
select * from vam_orderItem
where orderId = #{orderId}
</select>
<!-- 주문 정보(주문 취소) -->
<select id="getOrder" resultType="com.vam.model.OrderDTO">
select * from vam_order
where orderId = #{orderId}
</select>
</mapper>