@@ -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";
|
||||
}
|
||||
|
||||
|
||||
@@ -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<OrderPageItemDTO> getGoodsInfo(List<OrderPageItemDTO> orders);
|
||||
|
||||
/* 주문 */
|
||||
public void order(OrderDTO orw);
|
||||
|
||||
}
|
||||
|
||||
@@ -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<OrderPageItemDTO> getGoodsInfo(List<OrderPageItemDTO> 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<OrderItemDTO> 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);
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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";
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -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<OrderPageItemDTO> getGoodsInfo(List<OrderPageItemDTO> orders);
|
||||
public List<OrderPageItemDTO> getGoodsInfo(List<OrderPageItemDTO> orders);
|
||||
|
||||
/* 주문 */
|
||||
public void order(OrderDTO orw);
|
||||
|
||||
}
|
||||
|
||||
@@ -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<OrderPageItemDTO> getGoodsInfo(List<OrderPageItemDTO> orders) {
|
||||
@@ -44,6 +64,77 @@ public class OrderServiceImpl implements OrderService{
|
||||
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
@Transactional
|
||||
public void order(OrderDTO ord) {
|
||||
|
||||
/* 사용할 데이터가져오기 */
|
||||
/* 회원 정보 */
|
||||
MemberVO member = memberMapper.getMemberInfo(ord.getMemberId());
|
||||
/* 주문 정보 */
|
||||
List<OrderItemDTO> 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);
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user