From c98b4e9d8bbe2b421e3eab4ec43a4d8dac8c8d88 Mon Sep 17 00:00:00 2001 From: SeoJin Kim Date: Thu, 16 Dec 2021 01:02:50 +0900 Subject: [PATCH] =?UTF-8?q?[Spring][=EC=87=BC=ED=95=91=EB=AA=B0=20?= =?UTF-8?q?=ED=94=84=EB=A1=9C=EC=A0=9D=ED=8A=B8][42]=20=EC=A3=BC=EB=AC=B8?= =?UTF-8?q?=20=EA=B5=AC=ED=98=84=20-=203?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit https://kimvampa.tistory.com/280 --- .../com/vam/controller/OrderController.java | 19 ++++ .../java/com/vam/service/OrderService.java | 4 + .../com/vam/service/OrderServiceImpl.java | 95 ++++++++++++++++++- .../maven/com.vam/controller/pom.properties | 2 +- .../com/vam/controller/OrderController.java | 21 +++- .../java/com/vam/service/OrderService.java | 6 +- .../com/vam/service/OrderServiceImpl.java | 95 ++++++++++++++++++- .../maven/com.vam/controller/pom.properties | 2 +- 8 files changed, 237 insertions(+), 7 deletions(-) diff --git a/VamPa/src/main/java/com/vam/controller/OrderController.java b/VamPa/src/main/java/com/vam/controller/OrderController.java index e93a3f1..df6fd12 100644 --- a/VamPa/src/main/java/com/vam/controller/OrderController.java +++ b/VamPa/src/main/java/com/vam/controller/OrderController.java @@ -1,6 +1,7 @@ package com.vam.controller; import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpSession; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; @@ -9,6 +10,7 @@ import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.PostMapping; +import com.vam.model.MemberVO; import com.vam.model.OrderDTO; import com.vam.model.OrderPageDTO; import com.vam.service.MemberService; @@ -38,6 +40,23 @@ public class OrderController { System.out.println(od); + orderService.order(od); + + MemberVO member = new MemberVO(); + member.setMemberId(od.getMemberId()); + + HttpSession session = request.getSession(); + + try { + MemberVO memberLogin = memberService.memberLogin(member); + memberLogin.setMemberPw(""); + session.setAttribute("member", memberLogin); + + } catch (Exception e) { + + e.printStackTrace(); + } + return "redirect:/main"; } diff --git a/VamPa/src/main/java/com/vam/service/OrderService.java b/VamPa/src/main/java/com/vam/service/OrderService.java index 5445faa..541a525 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.OrderDTO; import com.vam.model.OrderPageItemDTO; public interface OrderService { @@ -9,4 +10,7 @@ public interface OrderService { /* 주문 정보 */ public List getGoodsInfo(List orders); + /* 주문 */ + public void order(OrderDTO orw); + } diff --git a/VamPa/src/main/java/com/vam/service/OrderServiceImpl.java b/VamPa/src/main/java/com/vam/service/OrderServiceImpl.java index 3fd709e..fdfbf9c 100644 --- a/VamPa/src/main/java/com/vam/service/OrderServiceImpl.java +++ b/VamPa/src/main/java/com/vam/service/OrderServiceImpl.java @@ -1,15 +1,25 @@ package com.vam.service; +import java.text.SimpleDateFormat; import java.util.ArrayList; +import java.util.Date; import java.util.List; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; import com.vam.mapper.AttachMapper; +import com.vam.mapper.BookMapper; +import com.vam.mapper.CartMapper; +import com.vam.mapper.MemberMapper; import com.vam.mapper.OrderMapper; import com.vam.model.AttachImageVO; -import com.vam.model.AttachImageVO; +import com.vam.model.BookVO; +import com.vam.model.CartDTO; +import com.vam.model.MemberVO; +import com.vam.model.OrderDTO; +import com.vam.model.OrderItemDTO; import com.vam.model.OrderPageItemDTO; @Service @@ -21,6 +31,15 @@ public class OrderServiceImpl implements OrderService{ @Autowired private AttachMapper attachMapper; + @Autowired + private MemberMapper memberMapper; + + @Autowired + private CartMapper cartMapper; + + @Autowired + private BookMapper bookMapper; + @Override public List getGoodsInfo(List orders) { @@ -45,6 +64,80 @@ public class OrderServiceImpl implements OrderService{ return result; } + + + @Override + @Transactional + public void order(OrderDTO ord) { + + /* 사용할 데이터가져오기 */ + /* 회원 정보 */ + MemberVO member = memberMapper.getMemberInfo(ord.getMemberId()); + /* 주문 정보 */ + List ords = new ArrayList<>(); + for(OrderItemDTO oit : ord.getOrders()) { + OrderItemDTO orderItem = orderMapper.getOrderInfo(oit.getBookId()); + // 수량 셋팅 + orderItem.setBookCount(oit.getBookCount()); + // 기본정보 셋팅 + orderItem.initSaleTotal(); + //List객체 추가 + ords.add(orderItem); + } + /* OrderDTO 셋팅 */ + ord.setOrders(ords); + ord.getOrderPriceInfo(); + + /*DB 주문,주문상품(,배송정보) 넣기*/ + + /* orderId만들기 및 OrderDTO객체 orderId에 저장 */ + Date date = new Date(); + SimpleDateFormat format = new SimpleDateFormat("_yyyyMMddmm"); + String orderId = member.getMemberId() + format.format(date); + ord.setOrderId(orderId); + + /* db넣기 */ + orderMapper.enrollOrder(ord); //vam_order 등록 + for(OrderItemDTO oit : ord.getOrders()) { //vam_orderItem 등록 + oit.setOrderId(orderId); + orderMapper.enrollOrderItem(oit); + } + + /* 비용 포인트 변동 적용 */ + + /* 비용 차감 & 변동 돈(money) Member객체 적용 */ + int calMoney = member.getMoney(); + calMoney -= ord.getOrderFinalSalePrice(); + member.setMoney(calMoney); + + /* 포인트 차감, 포인트 증가 & 변동 포인트(point) Member객체 적용 */ + int calPoint = member.getPoint(); + calPoint = calPoint - ord.getUsePoint() + ord.getOrderSavePoint(); // 기존 포인트 - 사용 포인트 + 획득 포인트 + member.setPoint(calPoint); + + /* 변동 돈, 포인트 DB 적용 */ + orderMapper.deductMoney(member); + + /* 재고 변동 적용 */ + for(OrderItemDTO oit : ord.getOrders()) { + /* 변동 재고 값 구하기 */ + BookVO book = bookMapper.getGoodsInfo(oit.getBookId()); + book.setBookStock(book.getBookStock() - oit.getBookCount()); + /* 변동 값 DB 적용 */ + orderMapper.deductStock(book); + } + + /* 장바구니 제거 */ + for(OrderItemDTO oit : ord.getOrders()) { + CartDTO dto = new CartDTO(); + dto.setMemberId(ord.getMemberId()); + dto.setBookId(oit.getBookId()); + + cartMapper.deleteOrderCart(dto); + } + + + } diff --git a/VamPa/target/m2e-wtp/web-resources/META-INF/maven/com.vam/controller/pom.properties b/VamPa/target/m2e-wtp/web-resources/META-INF/maven/com.vam/controller/pom.properties index 15b9164..c54603d 100644 --- a/VamPa/target/m2e-wtp/web-resources/META-INF/maven/com.vam/controller/pom.properties +++ b/VamPa/target/m2e-wtp/web-resources/META-INF/maven/com.vam/controller/pom.properties @@ -1,5 +1,5 @@ #Generated by Maven Integration for Eclipse -#Thu Dec 09 15:29:52 KST 2021 +#Tue Dec 14 18:11:21 KST 2021 m2e.projectLocation=C\:\\Users\\sjinj\\git\\Blog_Project2\\VamPa m2e.projectName=VamPa groupId=com.vam diff --git a/VamPa_MySQL/src/main/java/com/vam/controller/OrderController.java b/VamPa_MySQL/src/main/java/com/vam/controller/OrderController.java index f75929a..df6fd12 100644 --- a/VamPa_MySQL/src/main/java/com/vam/controller/OrderController.java +++ b/VamPa_MySQL/src/main/java/com/vam/controller/OrderController.java @@ -1,6 +1,7 @@ package com.vam.controller; import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpSession; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; @@ -9,6 +10,7 @@ import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.PostMapping; +import com.vam.model.MemberVO; import com.vam.model.OrderDTO; import com.vam.model.OrderPageDTO; import com.vam.service.MemberService; @@ -38,7 +40,24 @@ public class OrderController { System.out.println(od); + orderService.order(od); + + MemberVO member = new MemberVO(); + member.setMemberId(od.getMemberId()); + + HttpSession session = request.getSession(); + + try { + MemberVO memberLogin = memberService.memberLogin(member); + memberLogin.setMemberPw(""); + session.setAttribute("member", memberLogin); + + } catch (Exception e) { + + e.printStackTrace(); + } + return "redirect:/main"; - } + } } 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 5445faa..3e5d7ac 100644 --- a/VamPa_MySQL/src/main/java/com/vam/service/OrderService.java +++ b/VamPa_MySQL/src/main/java/com/vam/service/OrderService.java @@ -2,11 +2,15 @@ package com.vam.service; import java.util.List; +import com.vam.model.OrderDTO; import com.vam.model.OrderPageItemDTO; public interface OrderService { /* 주문 정보 */ - public List getGoodsInfo(List orders); + public List getGoodsInfo(List orders); + + /* 주문 */ + public void order(OrderDTO orw); } 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 e6ab9b5..c404209 100644 --- a/VamPa_MySQL/src/main/java/com/vam/service/OrderServiceImpl.java +++ b/VamPa_MySQL/src/main/java/com/vam/service/OrderServiceImpl.java @@ -1,14 +1,25 @@ package com.vam.service; +import java.text.SimpleDateFormat; import java.util.ArrayList; +import java.util.Date; import java.util.List; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; import com.vam.mapper.AttachMapper; +import com.vam.mapper.BookMapper; +import com.vam.mapper.CartMapper; +import com.vam.mapper.MemberMapper; import com.vam.mapper.OrderMapper; import com.vam.model.AttachImageVO; +import com.vam.model.BookVO; +import com.vam.model.CartDTO; +import com.vam.model.MemberVO; +import com.vam.model.OrderDTO; +import com.vam.model.OrderItemDTO; import com.vam.model.OrderPageItemDTO; @Service @@ -18,7 +29,16 @@ public class OrderServiceImpl implements OrderService{ private OrderMapper orderMapper; @Autowired - private AttachMapper attachMapper; + private AttachMapper attachMapper; + + @Autowired + private MemberMapper memberMapper; + + @Autowired + private CartMapper cartMapper; + + @Autowired + private BookMapper bookMapper; @Override public List getGoodsInfo(List orders) { @@ -44,6 +64,77 @@ public class OrderServiceImpl implements OrderService{ } - + @Override + @Transactional + public void order(OrderDTO ord) { + + /* 사용할 데이터가져오기 */ + /* 회원 정보 */ + MemberVO member = memberMapper.getMemberInfo(ord.getMemberId()); + /* 주문 정보 */ + List ords = new ArrayList<>(); + for(OrderItemDTO oit : ord.getOrders()) { + OrderItemDTO orderItem = orderMapper.getOrderInfo(oit.getBookId()); + // 수량 셋팅 + orderItem.setBookCount(oit.getBookCount()); + // 기본정보 셋팅 + orderItem.initSaleTotal(); + //List객체 추가 + ords.add(orderItem); + } + /* OrderDTO 셋팅 */ + ord.setOrders(ords); + ord.getOrderPriceInfo(); + + /*DB 주문,주문상품(,배송정보) 넣기*/ + + /* orderId만들기 및 OrderDTO객체 orderId에 저장 */ + Date date = new Date(); + SimpleDateFormat format = new SimpleDateFormat("_yyyyMMddmm"); + String orderId = member.getMemberId() + format.format(date); + ord.setOrderId(orderId); + + /* db넣기 */ + orderMapper.enrollOrder(ord); //vam_order 등록 + for(OrderItemDTO oit : ord.getOrders()) { //vam_orderItem 등록 + oit.setOrderId(orderId); + orderMapper.enrollOrderItem(oit); + } + + /* 비용 포인트 변동 적용 */ + + /* 비용 차감 & 변동 돈(money) Member객체 적용 */ + int calMoney = member.getMoney(); + calMoney -= ord.getOrderFinalSalePrice(); + member.setMoney(calMoney); + + /* 포인트 차감, 포인트 증가 & 변동 포인트(point) Member객체 적용 */ + int calPoint = member.getPoint(); + calPoint = calPoint - ord.getUsePoint() + ord.getOrderSavePoint(); // 기존 포인트 - 사용 포인트 + 획득 포인트 + member.setPoint(calPoint); + + /* 변동 돈, 포인트 DB 적용 */ + orderMapper.deductMoney(member); + + /* 재고 변동 적용 */ + for(OrderItemDTO oit : ord.getOrders()) { + /* 변동 재고 값 구하기 */ + BookVO book = bookMapper.getGoodsInfo(oit.getBookId()); + book.setBookStock(book.getBookStock() - oit.getBookCount()); + /* 변동 값 DB 적용 */ + orderMapper.deductStock(book); + } + + /* 장바구니 제거 */ + for(OrderItemDTO oit : ord.getOrders()) { + CartDTO dto = new CartDTO(); + dto.setMemberId(ord.getMemberId()); + dto.setBookId(oit.getBookId()); + + cartMapper.deleteOrderCart(dto); + } + + + } } diff --git a/VamPa_MySQL/target/m2e-wtp/web-resources/META-INF/maven/com.vam/controller/pom.properties b/VamPa_MySQL/target/m2e-wtp/web-resources/META-INF/maven/com.vam/controller/pom.properties index 7b66ad6..a8d7396 100644 --- a/VamPa_MySQL/target/m2e-wtp/web-resources/META-INF/maven/com.vam/controller/pom.properties +++ b/VamPa_MySQL/target/m2e-wtp/web-resources/META-INF/maven/com.vam/controller/pom.properties @@ -1,5 +1,5 @@ #Generated by Maven Integration for Eclipse -#Thu Dec 09 15:29:52 KST 2021 +#Tue Dec 14 18:11:23 KST 2021 m2e.projectLocation=C\:\\Users\\sjinj\\git\\Blog_Project2\\VamPa_MySQL m2e.projectName=VamPa_MySQL groupId=com.vam