|
|
@@ -7,18 +7,24 @@ import javax.servlet.http.HttpServletRequest;
|
|
|
import javax.servlet.http.HttpServletResponse;
|
|
|
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
+import org.springframework.core.env.Environment;
|
|
|
import org.springframework.stereotype.Controller;
|
|
|
+import org.springframework.ui.Model;
|
|
|
import org.springframework.web.bind.annotation.PostMapping;
|
|
|
import org.springframework.web.bind.annotation.RequestBody;
|
|
|
import org.springframework.web.bind.annotation.RequestMapping;
|
|
|
+import org.springframework.web.bind.annotation.RequestParam;
|
|
|
import org.springframework.web.bind.annotation.ResponseBody;
|
|
|
import org.springframework.web.servlet.ModelAndView;
|
|
|
import org.springframework.web.servlet.mvc.support.RedirectAttributes;
|
|
|
+import org.thymeleaf.util.StringUtils;
|
|
|
|
|
|
import com.gagaframework.web.parameter.GagaMap;
|
|
|
import com.style24.core.biz.service.TscFreegiftService;
|
|
|
import com.style24.core.biz.service.TscKakaoPayService;
|
|
|
import com.style24.core.biz.service.TscOrderService;
|
|
|
+import com.style24.core.biz.thirdparty.KakaoPayApi;
|
|
|
+import com.style24.core.support.env.TscConstants;
|
|
|
import com.style24.core.support.message.TscMessageByLocale;
|
|
|
import com.style24.front.biz.service.TsfCartService;
|
|
|
import com.style24.front.biz.service.TsfOrderService;
|
|
|
@@ -57,6 +63,9 @@ public class TsfOrderController extends TsfBaseController {
|
|
|
|
|
|
@Autowired
|
|
|
private TscKakaoPayService kakaoPayService;
|
|
|
+
|
|
|
+ @Autowired
|
|
|
+ private Environment env;
|
|
|
|
|
|
/**
|
|
|
* 회원, 비회원 주문페이지
|
|
|
@@ -70,8 +79,6 @@ public class TsfOrderController extends TsfBaseController {
|
|
|
public ModelAndView orderNoMember(Order order, RedirectAttributes redirectAttributes) {
|
|
|
ModelAndView mav = new ModelAndView();
|
|
|
|
|
|
- String rtnView = "";
|
|
|
-
|
|
|
// 비회원 주문시 로직 정리
|
|
|
// @ web 인 경우에는 고객정보 입력 화면 후 주문서 이동 후 본인인중
|
|
|
// @ web 의 경우에는 입력한 고객정보와 인증받은 고객정보가 다른경우 고객정보 업데이트
|
|
|
@@ -91,6 +98,8 @@ public class TsfOrderController extends TsfBaseController {
|
|
|
return mav;
|
|
|
}
|
|
|
|
|
|
+
|
|
|
+
|
|
|
/**
|
|
|
* 주문페이지
|
|
|
*
|
|
|
@@ -116,13 +125,13 @@ public class TsfOrderController extends TsfBaseController {
|
|
|
}
|
|
|
|
|
|
// TODO
|
|
|
- // 1.1 카트시퀀스가 없을때 처리 장바구니로 이동
|
|
|
+ // 1.1 카트시퀀스가 정보가 없을때 처리 장바구니로 이동
|
|
|
if (order.getCartSqArr() == null) {
|
|
|
mav.setViewName("redirect:/order/noMember"); // 비회원주문서화면
|
|
|
return mav;
|
|
|
}
|
|
|
|
|
|
- // 2. 로그인정보 체크 후 비회원 고객정보 설정 (화면에서 오류 발생에 대비해서 정리)
|
|
|
+ // 2. 로그인정보 체크 후 비회원 고객정보 설정
|
|
|
if (TsfSession.isLogin()) {
|
|
|
order.setCustNm("");
|
|
|
order.setCellPhnno("");
|
|
|
@@ -139,44 +148,67 @@ public class TsfOrderController extends TsfBaseController {
|
|
|
// 2.1 배송단위별 상품 목록 조회 (장바구니)
|
|
|
Collection<Order> tmtbGoodsApplyList = cartService.getMoreBetterAmtList(order);
|
|
|
|
|
|
- // 2.2 상품금액, 선포인트, 다다익선할인금액
|
|
|
+ // 2.1.0 상품금액, 선포인트, 다다익선할인금액
|
|
|
GagaMap goodsDcAmtMap = coreOrderService.getGoodsDcAmt(tmtbGoodsApplyList);
|
|
|
|
|
|
- // 2.3 배송단위별 장바구니 상품 건수 조회 (장바구니상품)
|
|
|
+ // 2.2 배송단위별 장바구니 상품 건수 조회 (장바구니상품)
|
|
|
GagaMap delvOrderMap = coreOrderService.getCartDelvGoodsCntList(tmtbGoodsApplyList);
|
|
|
+
|
|
|
+ // 3. 할인구간정보조회
|
|
|
+ // 3.2 상품쿠폰, 장바구니쿠폰 목록 조회
|
|
|
+ GagaMap goodsCartCpnMap = coreOrderService.getGoodsCartCpnApplyGoodsList(order);
|
|
|
+
|
|
|
+ Collection<Order> goodsCpnList = (Collection<Order>) goodsCartCpnMap.get("goodsCpnList");
|
|
|
+ Collection<Order> cartCpnList = (Collection<Order>) goodsCartCpnMap.get("cartCpnList");
|
|
|
+
|
|
|
+ // 3.2.1 상품기준 ---> 상품쿠폰 적용된 상품 목록
|
|
|
+ Collection<Order> goodsApplyCpnList = coreOrderService.getGoodsCpnApplyList(tmtbGoodsApplyList, goodsCpnList);
|
|
|
|
|
|
- // 2.4 고객 보유 포인트 정보 조회
|
|
|
- //int rmPntAmt = coreOrderService.getCustPointInfo(order);
|
|
|
+ // 3.2.2 장바구니쿠폰기준 ---> 상품목록
|
|
|
+ cartCpnList = coreOrderService.getCartCpnApplyList(tmtbGoodsApplyList, cartCpnList);
|
|
|
|
|
|
- // 2.5 고객 보유 상품권 정보 조회
|
|
|
- //int rmGfcdAmt = coreOrderService.getGiftcardInfo(order);
|
|
|
+ // 3.3 배송비쿠폰목록 조회
|
|
|
+ Collection<Order> delvCpnList = coreOrderService.getDelvCpnList(order);
|
|
|
+
|
|
|
+ Collection<Order> delvFeeCdList = (Collection<Order>) delvOrderMap.get("delvFeeCdList");
|
|
|
+
|
|
|
+ // 3.3.1 배소업체기준 ---> 배송비쿠폰
|
|
|
+ delvCpnList = coreOrderService.getDelvCpnApplyList(delvFeeCdList, delvCpnList);
|
|
|
+
|
|
|
+ // 3.4 고객 보유 포인트 정보 조회
|
|
|
+ int rmPntAmt = coreOrderService.getCustPointInfo(order);
|
|
|
+
|
|
|
+ // 3.5 고객 보유 상품권 정보 조회
|
|
|
+ int rmGfcdAmt = coreOrderService.getGiftcardInfo(order);
|
|
|
|
|
|
// 101. 상품정보
|
|
|
- mav.addObject("cartGoodsList" , tmtbGoodsApplyList); // 장바구니상품목록 (즉시할인쿠폰적용)
|
|
|
- mav.addObject("delvTotCnt" , delvOrderMap.get("delvTotCnt")); // 총상품건수
|
|
|
- mav.addObject("delvFeeTotCnt" , delvOrderMap.get("delvFeeTotCnt")); // 총배송타입건수
|
|
|
- mav.addObject("wmsCnt" , delvOrderMap.get("wmsCnt")); // 자사상품건수
|
|
|
- mav.addObject("resCnt" , delvOrderMap.get("resCnt")); // 자사예약상품건수
|
|
|
- mav.addObject("delvCnt" , delvOrderMap.get("delvCnt")); // 입점업체상품건수
|
|
|
-
|
|
|
- mav.addObject("shotCartList" , delvOrderMap.get("shotCartList")); // 자사총알배송상품목록
|
|
|
- mav.addObject("wmsCartList" , delvOrderMap.get("wmsCartList")); // 자사일반배송상품목록
|
|
|
- mav.addObject("delvCartList" , delvOrderMap.get("delvCartList")); // 입점업체상품목록
|
|
|
- mav.addObject("resCartList" , delvOrderMap.get("resCartList")); // 자사예약배송상품목록
|
|
|
- mav.addObject("delvAllCartList" , delvOrderMap.get("delvAllCartList")); // 전체배송목록
|
|
|
- mav.addObject("sumDelvFee" , delvOrderMap.get("sumDelvFee")); // 배송비합계
|
|
|
+ mav.addObject("cartGoodsList" , tmtbGoodsApplyList); // 장바구니상품목록 (즉시할인쿠폰적용)
|
|
|
+ mav.addObject("delvTotCnt" , delvOrderMap.get("delvTotCnt")); // 총상품건수
|
|
|
+ mav.addObject("delvFeeTotCnt" , delvOrderMap.get("delvFeeTotCnt")); // 총배송타입건수
|
|
|
+ mav.addObject("wmsCnt" , delvOrderMap.get("wmsCnt")); // 자사상품건수
|
|
|
+ mav.addObject("resCnt" , delvOrderMap.get("resCnt")); // 자사예약상품건수
|
|
|
+ mav.addObject("delvCnt" , delvOrderMap.get("delvCnt")); // 입점업체상품건수
|
|
|
+
|
|
|
+ mav.addObject("shotCartList" , delvOrderMap.get("shotCartList")); // 자사총알배송상품목록
|
|
|
+ mav.addObject("wmsCartList" , delvOrderMap.get("wmsCartList")); // 자사일반배송상품목록
|
|
|
+ mav.addObject("delvCartList" , delvOrderMap.get("delvCartList")); // 입점업체상품목록
|
|
|
+ mav.addObject("resCartList" , delvOrderMap.get("resCartList")); // 자사예약배송상품목록
|
|
|
+ mav.addObject("delvAllCartList" , delvOrderMap.get("delvAllCartList")); // 전체배송목록
|
|
|
+ mav.addObject("sumDelvFee" , delvOrderMap.get("sumDelvFee")); // 배송비합계
|
|
|
|
|
|
// 102. 주문정보
|
|
|
- mav.addObject("order" , order); // 주문정보
|
|
|
+ mav.addObject("order" , order); // 주문정보
|
|
|
|
|
|
// 103. 할인정보
|
|
|
- mav.addObject("tmtbGoodsApplyList" , tmtbGoodsApplyList); // 다다익선상품 적용목록
|
|
|
- mav.addObject("orgGoodsSumAmt" , goodsDcAmtMap.get("orgGoodsSumAmt")); // 상품금액합계
|
|
|
- mav.addObject("cpn1DcSumAmt" , goodsDcAmtMap.get("cpn1DcSumAmt")); // 즉시할인금액합계
|
|
|
- mav.addObject("tmtbDcSumAmt" , goodsDcAmtMap.get("tmtbDcSumAmt")); // 다다익선할인금액합계
|
|
|
-
|
|
|
- mav.addObject("prePntDcAmt" , goodsDcAmtMap.get("prePntDcAmt")); // 선포인트사용가능금액
|
|
|
- mav.addObject("savePntSumAmt" , goodsDcAmtMap.get("savePntSumAmt")); // 적립예정포인트합계
|
|
|
+ mav.addObject("tmtbGoodsApplyList" , tmtbGoodsApplyList); // 다다익선상품 적용목록
|
|
|
+ mav.addObject("orgGoodsSumAmt" , goodsDcAmtMap.get("orgGoodsSumAmt")); // 상품금액합계
|
|
|
+ mav.addObject("cpn1DcSumAmt" , goodsDcAmtMap.get("cpn1DcSumAmt")); // 즉시할인금액합계
|
|
|
+ mav.addObject("tmtbDcSumAmt" , goodsDcAmtMap.get("tmtbDcSumAmt")); // 다다익선할인금액합계
|
|
|
+ mav.addObject("prePntDcAmt" , goodsDcAmtMap.get("prePntDcAmt")); // 선포인트사용가능금액
|
|
|
+
|
|
|
+ mav.addObject("rmPntAmt" , rmPntAmt); // 고객포인트정보
|
|
|
+ mav.addObject("rmGfcdAmt" , rmGfcdAmt); // 고객상품권정보
|
|
|
+ mav.addObject("savePntSumAmt" , goodsDcAmtMap.get("savePntSumAmt")); // 적립예정포인트합계
|
|
|
|
|
|
mav.setViewName(super.getDeviceViewName("order/OrderForm"));
|
|
|
|
|
|
@@ -382,19 +414,19 @@ public class TsfOrderController extends TsfBaseController {
|
|
|
}
|
|
|
|
|
|
ModelAndView mav = new ModelAndView();
|
|
|
- mav.addObject("goodsApplyCpnList" , goodsApplyCpnList); // 상품적용쿠폰
|
|
|
- mav.addObject("cartCpnList" , cartCpnList); // 장바구니쿠폰목록
|
|
|
- mav.addObject("delvCpnList" , delvCpnList); // 배송비쿠폰목록
|
|
|
+ mav.addObject("goodsApplyCpnList" , goodsApplyCpnList); // 상품적용쿠폰
|
|
|
+ mav.addObject("cartCpnList" , cartCpnList); // 장바구니쿠폰목록
|
|
|
+ mav.addObject("delvCpnList" , delvCpnList); // 배송비쿠폰목록
|
|
|
|
|
|
- mav.addObject("orgGoodsSumAmt" , goodsDcAmtMap.get("orgGoodsSumAmt")); // 상품금액합계
|
|
|
- mav.addObject("cpn1DcSumAmt" , goodsDcAmtMap.get("cpn1DcSumAmt")); // 즉시할인금액합계
|
|
|
- mav.addObject("tmtbDcSumAmt" , goodsDcAmtMap.get("tmtbDcSumAmt")); // 다다익선할인금액합계
|
|
|
- mav.addObject("prePntDcAmt" , goodsDcAmtMap.get("prePntDcAmt")); // 선포인트사용가능금액
|
|
|
+ mav.addObject("orgGoodsSumAmt" , goodsDcAmtMap.get("orgGoodsSumAmt")); // 상품금액합계
|
|
|
+ mav.addObject("cpn1DcSumAmt" , goodsDcAmtMap.get("cpn1DcSumAmt")); // 즉시할인금액합계
|
|
|
+ mav.addObject("tmtbDcSumAmt" , goodsDcAmtMap.get("tmtbDcSumAmt")); // 다다익선할인금액합계
|
|
|
+ mav.addObject("prePntDcAmt" , goodsDcAmtMap.get("prePntDcAmt")); // 선포인트사용가능금액
|
|
|
|
|
|
- mav.addObject("rmPntAmt" , rmPntAmt); // 고객포인트정보
|
|
|
- mav.addObject("rmGfcdAmt" , rmGfcdAmt); // 고객상품권정보
|
|
|
- mav.addObject("savePntSumAmt" , goodsDcAmtMap.get("savePntSumAmt")); // 적립예정포인트합계
|
|
|
- mav.addObject("order" , order); // 파라미터
|
|
|
+ mav.addObject("rmPntAmt" , rmPntAmt); // 고객포인트정보
|
|
|
+ mav.addObject("rmGfcdAmt" , rmGfcdAmt); // 고객상품권정보
|
|
|
+ mav.addObject("savePntSumAmt" , goodsDcAmtMap.get("savePntSumAmt")); // 적립예정포인트합계
|
|
|
+ mav.addObject("order" , order); // 파라미터
|
|
|
|
|
|
mav.setViewName(super.getDeviceViewName("order/OrderDcAmtInfo"));
|
|
|
|
|
|
@@ -432,23 +464,6 @@ public class TsfOrderController extends TsfBaseController {
|
|
|
return mav;
|
|
|
}
|
|
|
|
|
|
- /**
|
|
|
- * 총알배송 가능 지역 체크
|
|
|
- *
|
|
|
- * @param
|
|
|
- * @return
|
|
|
- * @author jsh77b
|
|
|
- * @since 2021. 02. 08
|
|
|
- */
|
|
|
- @ResponseBody
|
|
|
- @RequestMapping(value = "/create/order")
|
|
|
- public ModelAndView createOrder(Order order) {
|
|
|
- ModelAndView mav = new ModelAndView();
|
|
|
-
|
|
|
- mav.setViewName(super.getDeviceViewName("pg/kcpOrder"));
|
|
|
- return mav;
|
|
|
- }
|
|
|
-
|
|
|
/**
|
|
|
* 주문페이지
|
|
|
*
|
|
|
@@ -457,12 +472,11 @@ public class TsfOrderController extends TsfBaseController {
|
|
|
* @author jsh77b
|
|
|
* @since 2021. 02. 02
|
|
|
*/
|
|
|
- @SuppressWarnings({ "unchecked", "null" })
|
|
|
@RequestMapping(value = "/pay/result/response")
|
|
|
public ModelAndView payResultResponse(Payment param, HttpServletRequest request, HttpServletResponse response) {
|
|
|
ModelAndView mav = new ModelAndView();
|
|
|
|
|
|
- orderService.kcpTest(param, request, response);
|
|
|
+ orderService.orderPgPayResult(param, request, response);
|
|
|
|
|
|
mav.setViewName(super.getDeviceViewName("pg/kcpOrder"));
|
|
|
return mav;
|
|
|
@@ -477,7 +491,7 @@ public class TsfOrderController extends TsfBaseController {
|
|
|
* @since 2021. 02. 08
|
|
|
*/
|
|
|
@ResponseBody
|
|
|
- @RequestMapping(value = "/getDailyDeliveryCheck")
|
|
|
+ @PostMapping(value = "/getDailyDeliveryCheck")
|
|
|
public int getDailyDeliveryCheck(Order order) {
|
|
|
|
|
|
// 1. 총알배송가능 지역, 총알배송 가능 시간 체크
|
|
|
@@ -495,7 +509,7 @@ public class TsfOrderController extends TsfBaseController {
|
|
|
* @since 2021. 02. 17
|
|
|
*/
|
|
|
@ResponseBody
|
|
|
- @RequestMapping(value = "/delvAddrChangePop")
|
|
|
+ @PostMapping(value = "/delvAddrChangePop")
|
|
|
public ModelAndView delvAddrChangePop(Order order) {
|
|
|
|
|
|
ModelAndView mav = new ModelAndView();
|
|
|
@@ -579,6 +593,217 @@ public class TsfOrderController extends TsfBaseController {
|
|
|
|
|
|
return mav;
|
|
|
}
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 주문페이지
|
|
|
+ *
|
|
|
+ * @param
|
|
|
+ * @return
|
|
|
+ * @author jsh77b
|
|
|
+ * @since 2021. 02. 02
|
|
|
+ */
|
|
|
+ @SuppressWarnings({ "unchecked", "null" })
|
|
|
+ @RequestMapping(value = "/form20210304")
|
|
|
+ public ModelAndView orderForm20210304(Order order) {
|
|
|
+ ModelAndView mav = new ModelAndView();
|
|
|
+
|
|
|
+ // TODO
|
|
|
+ // 1.비회주문, 회원 주문 판단 로직, 고객정보 세션 판단
|
|
|
+ // 세션고객정보가 존재하면 회원주문 없으면 비회원 주문
|
|
|
+
|
|
|
+ // 임시 jsessionId
|
|
|
+ String jsessionId = "aaec62cc-5f91-47bb-ba65-ebc9a61385cf";
|
|
|
+ Boolean noMember = true;
|
|
|
+
|
|
|
+ // TODO 로그인체크 로직 추가
|
|
|
+ // 1.0 회원, 비회원 여부 판단
|
|
|
+ if (TsfSession.getInfo().getCustNo() == null) {
|
|
|
+ order.setJsessionId(jsessionId);
|
|
|
+ } else {
|
|
|
+ noMember = false;
|
|
|
+ order.setCustNo(TsfSession.getInfo().getCustNo()); // 고객번호등록
|
|
|
+ }
|
|
|
+
|
|
|
+ // TODO
|
|
|
+ // 1.1 카트시퀀스가 없을때 처리 장바구니로 이동
|
|
|
+ if (order.getCartSqArr() == null) {
|
|
|
+ mav.setViewName("redirect:/order/noMember"); // 비회원주문서화면
|
|
|
+ return mav;
|
|
|
+ }
|
|
|
+
|
|
|
+ Order custemerInfo = new Order();
|
|
|
+ Order deliveryAddrInfo = new Order();
|
|
|
+
|
|
|
+ // TODO 로그인체크 로직 추가
|
|
|
+ if (noMember) {
|
|
|
+ // 1.1 주문고객 정보조회
|
|
|
+ custemerInfo.setCustNm(order.getCustNm());
|
|
|
+ custemerInfo.setCellPhnno(order.getCellPhnno());
|
|
|
+ custemerInfo.setEmail(order.getEmail());
|
|
|
+
|
|
|
+ // 1.2 배송지 정보조회 (기본배송지)
|
|
|
+ deliveryAddrInfo.setDelvAddrNm(order.getCustNm());
|
|
|
+ deliveryAddrInfo.setRecipZipcode(order.getRecipZipcode());
|
|
|
+ deliveryAddrInfo.setRecipBaseAddr(order.getRecipBaseAddr());
|
|
|
+ deliveryAddrInfo.setRecipDtlAddr(order.getRecipDtlAddr());
|
|
|
+ deliveryAddrInfo.setDelvMemo("직접받고 부재시 문 앞");
|
|
|
+ } else {
|
|
|
+ // 1.1 주문고객 정보조회
|
|
|
+ custemerInfo = coreOrderService.getCustemerInfo(order);
|
|
|
+
|
|
|
+ // 1.2 배송지 정보조회 (기본배송지)
|
|
|
+ deliveryAddrInfo = coreOrderService.getDeliveryAddrInfo(order);
|
|
|
+
|
|
|
+ if (deliveryAddrInfo == null) {
|
|
|
+ deliveryAddrInfo = new Order();
|
|
|
+ deliveryAddrInfo.setDelvAddrNm(custemerInfo.getCustNm());
|
|
|
+ deliveryAddrInfo.setRecipZipcode("");
|
|
|
+ deliveryAddrInfo.setRecipBaseAddr("");
|
|
|
+ deliveryAddrInfo.setRecipDtlAddr("");
|
|
|
+ deliveryAddrInfo.setDelvMemo("직접받고 부재시 문 앞");
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ // TODO 임시 장바구니
|
|
|
+ // 2. 장바구니시퀀스 배열 등록 (장바구니 상품 정보 조회)
|
|
|
+ // 2.1 배송단위별 상품 목록 조회 (장바구니)
|
|
|
+ Collection<Order> tmtbGoodsApplyList = cartService.getMoreBetterAmtList(order);
|
|
|
+
|
|
|
+ // 2.1.0 상품금액, 선포인트, 다다익선할인금액
|
|
|
+ GagaMap goodsDcAmtMap = coreOrderService.getGoodsDcAmt(tmtbGoodsApplyList);
|
|
|
+
|
|
|
+ // 2.2 배송단위별 장바구니 상품 건수 조회 (장바구니상품)
|
|
|
+ GagaMap delvOrderMap = coreOrderService.getCartDelvGoodsCntList(tmtbGoodsApplyList);
|
|
|
+
|
|
|
+ // 3. 할인구간정보조회
|
|
|
+ // 3.2 상품쿠폰, 장바구니쿠폰 목록 조회
|
|
|
+ GagaMap goodsCartCpnMap = coreOrderService.getGoodsCartCpnApplyGoodsList(order);
|
|
|
+
|
|
|
+ Collection<Order> goodsCpnList = (Collection<Order>) goodsCartCpnMap.get("goodsCpnList");
|
|
|
+ Collection<Order> cartCpnList = (Collection<Order>) goodsCartCpnMap.get("cartCpnList");
|
|
|
+
|
|
|
+ // 3.2.1 상품기준 ---> 상품쿠폰 적용된 상품 목록
|
|
|
+ Collection<Order> goodsApplyCpnList = coreOrderService.getGoodsCpnApplyList(tmtbGoodsApplyList, goodsCpnList);
|
|
|
+
|
|
|
+ // 3.2.2 장바구니쿠폰기준 ---> 상품목록
|
|
|
+ cartCpnList = coreOrderService.getCartCpnApplyList(tmtbGoodsApplyList, cartCpnList);
|
|
|
+
|
|
|
+ // 3.3 배송비쿠폰목록 조회
|
|
|
+ Collection<Order> delvCpnList = coreOrderService.getDelvCpnList(order);
|
|
|
+
|
|
|
+ Collection<Order> delvFeeCdList = (Collection<Order>) delvOrderMap.get("delvFeeCdList");
|
|
|
+
|
|
|
+ // 3.3.1 배소업체기준 ---> 배송비쿠폰
|
|
|
+ delvCpnList = coreOrderService.getDelvCpnApplyList(delvFeeCdList, delvCpnList);
|
|
|
+
|
|
|
+ // 3.4 고객 보유 포인트 정보 조회
|
|
|
+ int rmPntAmt = coreOrderService.getCustPointInfo(order);
|
|
|
+
|
|
|
+ // 3.5 고객 보유 상품권 정보 조회
|
|
|
+ int rmGfcdAmt = coreOrderService.getGiftcardInfo(order);
|
|
|
+
|
|
|
+ // 4. 사은품 정보
|
|
|
+ // 4.1 장바구니상품 사음품 적용 정보 조회
|
|
|
+ GagaMap resultMap = coreFreegiftService.getOrderFreegift(order);
|
|
|
+
|
|
|
+ // 101. 상품정보
|
|
|
+ mav.addObject("cartGoodsList" , tmtbGoodsApplyList); // 장바구니상품목록 (즉시할인쿠폰적용)
|
|
|
+ mav.addObject("delvTotCnt" , delvOrderMap.get("delvTotCnt")); // 총상품건수
|
|
|
+ mav.addObject("delvFeeTotCnt" , delvOrderMap.get("delvFeeTotCnt")); // 총배송타입건수
|
|
|
+ mav.addObject("wmsCnt" , delvOrderMap.get("wmsCnt")); // 자사상품건수
|
|
|
+ mav.addObject("resCnt" , delvOrderMap.get("resCnt")); // 자사예약상품건수
|
|
|
+ mav.addObject("delvCnt" , delvOrderMap.get("delvCnt")); // 입점업체상품건수
|
|
|
+
|
|
|
+ mav.addObject("shotCartList" , delvOrderMap.get("shotCartList")); // 자사총알배송상품목록
|
|
|
+ mav.addObject("wmsCartList" , delvOrderMap.get("wmsCartList")); // 자사일반배송상품목록
|
|
|
+ mav.addObject("delvCartList" , delvOrderMap.get("delvCartList")); // 입점업체상품목록
|
|
|
+ mav.addObject("resCartList" , delvOrderMap.get("resCartList")); // 자사예약배송상품목록
|
|
|
+ mav.addObject("delvAllCartList" , delvOrderMap.get("delvAllCartList")); // 전체배송목록
|
|
|
+ mav.addObject("sumDelvFee" , delvOrderMap.get("sumDelvFee")); // 배송비합계
|
|
|
+
|
|
|
+ // 102. 고객정보
|
|
|
+ mav.addObject("custemerInfo" , custemerInfo); // 고객정보
|
|
|
+ mav.addObject("deliveryAddrInfo" , deliveryAddrInfo); // 배송지정보
|
|
|
+ mav.addObject("shotDelvYn" , order.getShotDelvYn()); // 장바구니 총알배송여부
|
|
|
+
|
|
|
+ // 103. 할인정보
|
|
|
+ mav.addObject("tmtbGoodsApplyList" , tmtbGoodsApplyList); // 다다익선상품 적용목록
|
|
|
+ mav.addObject("goodsApplyCpnList" , goodsApplyCpnList); // 상품적용쿠폰
|
|
|
+ mav.addObject("cartCpnList" , cartCpnList); // 장바구니쿠폰목록
|
|
|
+ mav.addObject("delvCpnList" , delvCpnList); // 배송비쿠폰목록
|
|
|
+
|
|
|
+ mav.addObject("orgGoodsSumAmt" , goodsDcAmtMap.get("orgGoodsSumAmt")); // 상품금액합계
|
|
|
+ mav.addObject("cpn1DcSumAmt" , goodsDcAmtMap.get("cpn1DcSumAmt")); // 즉시할인금액합계
|
|
|
+ mav.addObject("tmtbDcSumAmt" , goodsDcAmtMap.get("tmtbDcSumAmt")); // 다다익선할인금액합계
|
|
|
+ mav.addObject("prePntDcAmt" , goodsDcAmtMap.get("prePntDcAmt")); // 선포인트사용가능금액
|
|
|
+
|
|
|
+ mav.addObject("rmPntAmt" , rmPntAmt); // 고객포인트정보
|
|
|
+ mav.addObject("rmGfcdAmt" , rmGfcdAmt); // 고객상품권정보
|
|
|
+ mav.addObject("savePntSumAmt" , goodsDcAmtMap.get("savePntSumAmt")); // 적립예정포인트합계
|
|
|
+
|
|
|
+ // 104. 사은품정보
|
|
|
+ mav.addObject("freegiftGoodsList" , resultMap.get("freegiftGoodsList")); // 사은품상품정보 목록
|
|
|
+ mav.addObject("freegiftList" , resultMap.get("freegiftList")); // 사은품정보 목록
|
|
|
+
|
|
|
+ mav.setViewName(super.getDeviceViewName("order/OrderForm"));
|
|
|
+
|
|
|
+ return mav;
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 주문 데이터 생성
|
|
|
+ *
|
|
|
+ * @param
|
|
|
+ * @return
|
|
|
+ * @author xodud1202
|
|
|
+ * @since 2021. 03. 04
|
|
|
+ */
|
|
|
+ @PostMapping("/create/order")
|
|
|
+ public ModelAndView createOrder(Order order) {
|
|
|
+ ModelAndView mav = new ModelAndView();
|
|
|
+
|
|
|
+ // KCP CARD 전송 데이터
|
|
|
+ Payment payment = new Payment();
|
|
|
+ // KCP 주문요청 공통 데이터
|
|
|
+ payment.setReqTx("pay"); // 필수 (주문시 only "pay")
|
|
|
+ payment.setOrdrIdxx((int)(Math.random()*10000));// 필수
|
|
|
+ payment.setPayMethod("100000000000"); // 필수 결제수단코드(신용카드 : 100000000000, 계좌이체 : 010000000000, 가상계좌 : 001000000000, 포인트 : 000100000000, 휴대폰 : 000010000000, 상품권 : 000000001000, ARS : 000000000010)
|
|
|
+ payment.setGoodName("LTY_TEST_GOODS_NAME"); // 필수
|
|
|
+ payment.setGoodMny(1779); // 필수
|
|
|
+ payment.setBuyrName("LTY"); // 필수
|
|
|
+ payment.setBuyrMail("xodud1202@naver.com"); // 선택
|
|
|
+ payment.setBuyrTel1(""); // 선택, 일반 전화번호
|
|
|
+ payment.setBuyrTel2("010-7111-4489"); // 필수, 휴대폰번호
|
|
|
+ payment.setCurrency("WON"); // 필수, 원화 : WON, 달러 : USD
|
|
|
+ payment.setShopUserId(1000006); // 필수, 쇼핑몰회원ID (CUST_NO)
|
|
|
+ // KCP 공통 변경되지 않는 값
|
|
|
+ payment.setSiteCd(env.getProperty("pg.kcp.site.cd")); // 상점코드
|
|
|
+ payment.setSiteName(env.getProperty("pg.kcp.site.name")); // 상점 이름 (영문 작성 권장)
|
|
|
+ payment.setModuleType(env.getProperty("pg.kcp.module.type"));
|
|
|
+ payment.setGoodExpr("0"); // 제공 기간 설정 0:일회성 1:기간설정(ex 1:2012010120120131)
|
|
|
+
|
|
|
+ // KCP 신용카드 옵션
|
|
|
+ payment.setQuotaopt(12); // 최대 할부 개월 수
|
|
|
+
|
|
|
+ // KCP PAYCO
|
|
|
+ if(!StringUtils.isEmpty(payment.getPgGb()) && TscConstants.PgGb.PAYCO.value().equals(payment.getPgGb())) { // PAYCO일경우
|
|
|
+ payment.setPaycoDirect("Y");
|
|
|
+ payment.setPayMthod("100000000000"); // PAYCO일때 payMethod 뿐 아니라 payMthod도 송부해야함. cart와 동일하게 송부하면됨.
|
|
|
+ payment.setPayMethod("100000000000"); // CARD로 변경
|
|
|
+ }
|
|
|
+
|
|
|
+ mav.addObject("payment", payment);
|
|
|
+ //model.addAttribute("payment", payment);
|
|
|
+
|
|
|
+ mav.setViewName(super.getDeviceViewName("pg/kcpOrder"));
|
|
|
+ return mav;
|
|
|
+ //return super.getDeviceViewName("pg/kcpOrder");
|
|
|
+ }
|
|
|
|
|
|
/**
|
|
|
* 카카오페이 결제준비 처리
|
|
|
@@ -590,8 +815,58 @@ public class TsfOrderController extends TsfBaseController {
|
|
|
*/
|
|
|
@RequestMapping(value = "/kakao/payment/ready")
|
|
|
@ResponseBody
|
|
|
- public GagaMap kakaoPaymentReady(Order order) {
|
|
|
+ public GagaMap kakaoPaymentReady(@RequestBody Order order) {
|
|
|
+ if (TsfSession.getInfo().getCustNo() == null) {
|
|
|
+ order.setCustNo(0);
|
|
|
+ } else {
|
|
|
+ order.setCustNo(TsfSession.getInfo().getCustNo());
|
|
|
+ }
|
|
|
+
|
|
|
return kakaoPayService.kakaoPaymentReady(order);
|
|
|
}
|
|
|
|
|
|
+ /**
|
|
|
+ * 카카오페이 결제 요청 처리
|
|
|
+ *
|
|
|
+ * @param Order
|
|
|
+ * @return GagaMap
|
|
|
+ * @author card007
|
|
|
+ * @since 2021. 03. 04
|
|
|
+ */
|
|
|
+ @RequestMapping(value = "/kakao/payment/request")
|
|
|
+ @ResponseBody
|
|
|
+ public ModelAndView kakaoPaymentRequest(@RequestParam(value = "pg_token", required = false) String pgToken) {
|
|
|
+ ModelAndView mav = new ModelAndView();
|
|
|
+
|
|
|
+ mav.addObject("pgToken", pgToken);
|
|
|
+
|
|
|
+ mav.setViewName(super.getDeviceViewName("/pg/KakaoPaymentRequest"));
|
|
|
+
|
|
|
+ return mav;
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 카카오페이 결제 승인 처리
|
|
|
+ *
|
|
|
+ * @param Order
|
|
|
+ * @return GagaMap
|
|
|
+ * @author card007
|
|
|
+ * @since 2021. 03. 04
|
|
|
+ */
|
|
|
+ @RequestMapping(value = "/kakao/payment/approve")
|
|
|
+ @ResponseBody
|
|
|
+ public Payment approveKakaoPayment(@RequestBody Order order) {
|
|
|
+ if (TsfSession.getInfo().getCustNo() == null) {
|
|
|
+ order.setCustNo(0);
|
|
|
+ } else {
|
|
|
+ order.setCustNo(TsfSession.getInfo().getCustNo());
|
|
|
+ }
|
|
|
+
|
|
|
+ Payment payment = kakaoPayService.approveKakaoPayment(order);
|
|
|
+
|
|
|
+ GagaMap map = kakaoPayService.getKakaoPaymentOrder(order);
|
|
|
+ log.info("map >>> {}", map);
|
|
|
+
|
|
|
+ return payment;
|
|
|
+ }
|
|
|
}
|