| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916 |
- package com.style24.front.biz.web;
- import java.util.ArrayList;
- import java.util.Collection;
- 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.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 com.gagaframework.web.parameter.GagaMap;
- import com.style24.core.biz.service.TscFreegiftService;
- import com.style24.core.biz.service.TscOrderService;
- import com.style24.core.support.message.TscMessageByLocale;
- import com.style24.front.biz.service.TsfCartService;
- import com.style24.front.biz.service.TsfOrderService;
- import com.style24.front.biz.thirdparty.NiceCertify;
- import com.style24.front.support.controller.TsfBaseController;
- import com.style24.front.support.security.session.TsfSession;
- import com.style24.persistence.domain.Customer;
- import com.style24.persistence.domain.Order;
- import com.style24.persistence.domain.Payment;
- import lombok.extern.slf4j.Slf4j;
- /**
- * 주문 Controller
- *
- * @author gagamel
- * @since 2020. 12. 29
- */
- @Controller
- @RequestMapping("/order")
- @Slf4j
- public class TsfOrderController extends TsfBaseController {
- @Autowired
- private TscMessageByLocale message;
- @Autowired
- private TscOrderService coreOrderService;
- @Autowired
- private TsfOrderService orderService;
- @Autowired
- private TscFreegiftService coreFreegiftService;
- @Autowired
- private TsfCartService cartService;
- @Autowired
- private Environment env;
-
- @Autowired
- private NiceCertify niceCertify;
-
- /**
- * 회원, 비회원 주문페이지
- *
- * @param
- * @return
- * @author jsh77b
- * @since 2021. 02. 02
- */
- @RequestMapping(value = "/noMember")
- public ModelAndView orderNoMember(Order order, RedirectAttributes redirectAttributes) {
- ModelAndView mav = new ModelAndView();
-
- // 비회원 주문시 로직 정리
- // @ web 인 경우에는 고객정보 입력 화면 후 주문서 이동 후 본인인중
- // @ web 의 경우에는 입력한 고객정보와 인증받은 고객정보가 다른경우 고객정보 업데이트
- // @ mobile 인 경우에는 본인인증 후 주문서 이동
- // 배송완료 후 14일 자동구매확정
-
- // TODO 임시 장바구니
- // 2. 장바구니시퀀스 배열 등록 (장바구니 상품 정보 조회)
- //int[] arr = {20,12};
- //order.setCartSqArr(arr); // 장바구니시퀀스
- //order.setShotDelvUseYn("Y"); // 장바구니총알배송사용여부
-
- // 1.1 카트시퀀스가 정보가 없을때 처리 장바구니로 이동
- if (order.getCartSqArr() == null) {
- mav.setViewName("redirect:/cart/list/form"); // 비회원주문서화면
- return mav;
- }
-
- mav.addObject("order" , order); // 주문정보
- mav.addObject("isLogin" , TsfSession.isLogin()); // 로그인여부
- mav.setViewName(super.getDeviceViewName("order/OrderNoMember")); // 비회원주문서화면
- return mav;
- }
-
- /**
- * 비회원 - 개명본인인증, 휴대폰 본인인증
- *
- * @return GagaMap - 결과
- * @param customer - 본인인증 값
- * @author jsh77b
- * @since 2021. 03. 30
- */
- @PostMapping("/customer/auth")
- @ResponseBody
- public GagaMap updateCustomerAuth(@RequestBody Customer customer) {
- GagaMap authInfo = niceCertify.getCertifyCellPhoneResultInfo(customer);
- return authInfo;
- }
-
- /**
- * 주문페이지
- *
- * @param
- * @return
- * @author jsh77b
- * @since 2021. 02. 02
- */
- @RequestMapping(value = "/form")
- public ModelAndView orderForm(Order order) {
- ModelAndView mav = new ModelAndView();
-
- // TODO
- // 1.비회주문, 회원 주문 판단 로직, 고객정보 세션 판단
- // 세션고객정보가 존재하면 회원주문 없으면 비회원 주문
- // 1. 로그인체크 후 custNo 설정
- if (TsfSession.isLogin()) {
- order.setCustNo(TsfSession.getInfo().getCustNo()); // 고객번호등록
- } else {
- order.setJsessionId(TsfSession.getSessionId());
- order.setCustNo(0);
- }
-
- // TODO
- int[] arr = {1,2,158,150,149,159,148,153,20,12};
- order.setCartSqArr(arr); // 장바구니시퀀스
- order.setShotDelvUseYn("Y"); // 장바구니총알배송사용여부
-
- // 1.1 카트시퀀스가 정보가 없을때 처리 장바구니로 이동
- if (order.getCartSqArr() == null) {
- mav.setViewName("redirect:/cart/list/form"); // 비회원주문서화면
- return mav;
- }
-
- // 2. 로그인정보 체크 후 비회원 고객정보 설정
- if (TsfSession.isLogin()) {
- order.setCustNm("");
- order.setCellPhnno("");
- order.setEmail("");
-
- order.setDelvAddrNm("");
- order.setRecipZipcode("00000");
- order.setRecipBaseAddr("기본주소정보없음");
- order.setRecipDtlAddr("상제주소정보없음");
- }
-
- // 2.1 총알배소여부가 null 이면 Y로 설정
- if (order.getShotDelvUseYn() == null || "".equals(order.getShotDelvUseYn())) {
- order.setShotDelvUseYn("Y");
- }
- order.setShotDelvYn(order.getShotDelvUseYn());
- // TODO 임시 장바구니
- // 3. 장바구니상품시퀀스 상품목록조회
- // 3.1 즉시할인, 다다익선 할인금액 정보 적용 정보
- Collection<Order> tmtbGoodsApplyList = cartService.getMoreBetterAmtList(order);
-
- // 3.2 배송정보조회(장바구니상품목록)
- GagaMap delvOrderMap = coreOrderService.getCartDelvGoodsCntList(tmtbGoodsApplyList, order);
-
- // 3.3 할인정보조회(상품금액, 선포인트, 다다익선할인금액)
- GagaMap goodsDcAmtMap = coreOrderService.getGoodsDcAmt(tmtbGoodsApplyList);
- // 4. 화면설정설정
- // 4.1 배송정보설정
- mav.addObject("cartGoodsList" , tmtbGoodsApplyList); // 장바구니상품목록(즉시할인, 다다익선적용)
-
- mav.addObject("delvFeeCdCnt" , delvOrderMap.get("delvFeeCdCnt")); // 배송정책단위건수
- mav.addObject("shotCnt" , delvOrderMap.get("shotCnt")); // 자사총알배송상품건수
- mav.addObject("wmsCnt" , delvOrderMap.get("wmsCnt")); // 자사일반상품건수
- mav.addObject("shotWmsCnt" , delvOrderMap.get("shotWmsCnt")); // 자사총알,일반상품건수
- mav.addObject("resCnt" , delvOrderMap.get("resCnt")); // 자사예약상품건수
- mav.addObject("delvCnt" , delvOrderMap.get("delvCnt")); // 입점업체상품건수
-
- mav.addObject("goodsTotCnt" , delvOrderMap.get("goodsTotCnt")); // 총상품건수
- mav.addObject("delvAllCartList" , delvOrderMap.get("delvAllCartList")); // 전체배송목록
- mav.addObject("delvFeeCdList" , delvOrderMap.get("delvFeeCdList")); // 배송단위목록
- mav.addObject("sumDelvFee" , delvOrderMap.get("sumDelvFee")); // 배송비합계
- // 4.2 할인정보(상품금액, 즉시할인, 다다익선, 선포인트, 적립예정포인트)
- 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")); // 적립예정포인트합계
-
- // 4.3 주문정보
- mav.addObject("order" , order); // 주문정보(고객정보, 배송지정보, 총알배송사용여부)
-
- // 4.5 해외구매대행, 주문제작
- mav.addObject("foreignBuyYn" , delvOrderMap.get("foreignBuyYn")); // 해외구매대행여부
- mav.addObject("orderMadeYn" , delvOrderMap.get("orderMadeYn")); // 주문제작여부
-
- // 4.6 로그인여부
- mav.addObject("isLogin" , TsfSession.isLogin()); // 로그인여부
-
- mav.setViewName(super.getDeviceViewName("order/OrderForm"));
-
- return mav;
- }
-
- /**
- * 고객정보조회
- *
- * @param
- * @return
- * @author jsh77b
- * @since 2021. 02. 17
- */
- @ResponseBody
- @PostMapping("/custemerInfo")
- public ModelAndView custemerInfo(@RequestBody Order order) {
-
- Order custemerInfo = new Order();
-
- // 1. 로그인체크 후 custNo 설정
- if (TsfSession.isLogin()) {
- order.setCustNo(TsfSession.getInfo().getCustNo()); // 고객번호등록
- } else {
- order.setCustNo(0); // 고객번호등록
- order.setJsessionId(TsfSession.getSessionId());
- }
-
- // 2. 로그인체크 후 고객정보 설정
- if (TsfSession.isLogin()) {
- // 2.1 주문고객 정보조회
- custemerInfo = coreOrderService.getCustemerInfo(order);
- } else {
- // 2.1 주문고객 정보조회
- custemerInfo.setCustNm(order.getCustNm());
- custemerInfo.setCellPhnno(order.getCellPhnno());
- custemerInfo.setEmail(order.getEmail());
- }
-
- ModelAndView mav = new ModelAndView();
- mav.addObject("custemerInfo" , custemerInfo); // 고객정보
- mav.addObject("order" , order); // 파라미터
- mav.addObject("isLogin" , TsfSession.isLogin()); // 로그인여부
- mav.setViewName(super.getDeviceViewName("order/OrderCustemerInfo"));
-
- return mav;
- }
-
- /**
- * 배송정보조회
- *
- * @param
- * @return
- * @author jsh77b
- * @since 2021. 02. 17
- */
- @ResponseBody
- @PostMapping("/deliveryAddrInfo")
- public ModelAndView deliveryAddrInfo(@RequestBody Order order) {
- Order deliveryAddrInfo = new Order();
-
- // 1. 로그인체크 후 custNo 설정
- if (TsfSession.isLogin()) {
- order.setCustNo(TsfSession.getInfo().getCustNo()); // 고객번호등록
- } else {
- order.setCustNo(0); // 고객번호등록
- order.setJsessionId(TsfSession.getSessionId());
- }
-
- // 2. 로그인체크 후 고객정보 설정
- if (TsfSession.isLogin()) {
-
- // 2.1 주문고객 배송지정보조회
- Collection<Order> deliveryAddrList = coreOrderService.getDeliveryAddrInfo(order);
- int index = 0;
-
- for (Order deliveryAddr : deliveryAddrList) {
- // 회원 배송지 번호가 존재하면 실행
- if (order.getCustDelvAddrSq() > 0) {
- if (order.getCustDelvAddrSq() == deliveryAddr.getCustDelvAddrSq()) {
- deliveryAddrInfo = deliveryAddr;
- }
- }
- // 회원 배송지 번가 존재하지 않으면 기본배송지 설정
- else {
- if (index == 0) {
- deliveryAddrInfo = deliveryAddr;
-
- if (deliveryAddrInfo.getRecipZipcode() == null || "".equals(deliveryAddrInfo.getRecipZipcode())) {
- deliveryAddrInfo.setDelvAddrNm(deliveryAddrInfo.getCustNm());
-
- // 회원 배송지명이 없으면 설정
- if (deliveryAddrInfo.getRecipNm() == null || "".equals(deliveryAddrInfo.getRecipNm())) {
- deliveryAddrInfo.setRecipNm(deliveryAddrInfo.getCustNm());
- }
-
- deliveryAddrInfo.setRecipZipcode("00000");
- deliveryAddrInfo.setRecipBaseAddr("기본주소정보없음");
- deliveryAddrInfo.setRecipDtlAddr("상세주소정보없음");
- deliveryAddrInfo.setDelvMemo("직접받고 부재시 문 앞");
- deliveryAddrInfo.setRecipNm(deliveryAddrInfo.getCustNm());
- }
- }
- }
- index++;
- }
- } else {
- // 2.2 비회원 주문고객 정보조회
- if (order.getRecipNm() == null || "".equals(order.getRecipNm())) {
- deliveryAddrInfo.setRecipNm(order.getCustNm());
- } else {
- deliveryAddrInfo.setRecipNm(order.getRecipNm());
- }
-
- if (order.getRecipPhnno() == null || "".equals(order.getRecipPhnno())) {
- deliveryAddrInfo.setRecipPhnno(order.getCellPhnno());
- } else {
- deliveryAddrInfo.setRecipPhnno(order.getRecipPhnno());
- }
-
- deliveryAddrInfo.setRecipZipcode(order.getRecipZipcode());
- deliveryAddrInfo.setRecipBaseAddr(order.getRecipBaseAddr());
- deliveryAddrInfo.setRecipDtlAddr(order.getRecipDtlAddr());
-
- if (order.getDelvMemo() == null || "".equals(order.getDelvMemo())) {
- deliveryAddrInfo.setDelvMemo("직접받고 부재시 문 앞");
- } else {
- deliveryAddrInfo.setDelvMemo(order.getDelvMemo());
- }
- }
-
- ModelAndView mav = new ModelAndView();
- mav.addObject("deliveryAddrInfo" , deliveryAddrInfo); // 배송지정보
- mav.addObject("order" , order); // 파라미터
- mav.addObject("isLogin" , TsfSession.isLogin()); // 로그인여부
- mav.setViewName(super.getDeviceViewName("order/OrderDeliveryAddrInfo"));
-
- return mav;
- }
-
- /**
- * 배송정보조회
- *
- * @param
- * @return
- * @author jsh77b
- * @since 2021. 02. 17
- */
- @ResponseBody
- @PostMapping("/entryInfo")
- public ModelAndView entryInfo(@RequestBody Order order) {
- ModelAndView mav = new ModelAndView();
-
- mav.addObject("order" , order); // 파라미터
- mav.addObject("isLogin" , TsfSession.isLogin()); // 로그인여부
- mav.setViewName(super.getDeviceViewName("order/OrderEntryInfo"));
-
- return mav;
- }
-
- /**
- * 배송정보조회
- *
- * @param
- * @return
- * @author jsh77b
- * @since 2021. 02. 17
- */
- @ResponseBody
- @PostMapping("/madeInfo")
- public ModelAndView madeInfo(@RequestBody Order order) {
- ModelAndView mav = new ModelAndView();
- mav.addObject("order" , order); // 파라미터
- mav.addObject("isLogin" , TsfSession.isLogin()); // 로그인여부
- mav.setViewName(super.getDeviceViewName("order/OrderMadeInfo"));
-
- return mav;
- }
-
- /**
- * 주문내역정보조회
- *
- * @param
- * @return
- * @author jsh77b
- * @since 2021. 02. 17
- */
- @ResponseBody
- @PostMapping("/orderListInfo")
- public ModelAndView orderListInfo(@RequestBody Order order) {
-
- // 1. 로그인체크 후 custNo 설정
- if (TsfSession.isLogin()) {
- order.setCustNo(TsfSession.getInfo().getCustNo()); // 고객번호등록
- } else {
- order.setCustNo(0); // 고객번호등록
- order.setJsessionId(TsfSession.getSessionId());
- }
- Collection<Order> tmtbGoodsApplyList = cartService.getMoreBetterAmtList(order);
- // 3.2 배송정보조회(장바구니상품목록)
- GagaMap delvOrderMap = coreOrderService.getCartDelvGoodsCntList(tmtbGoodsApplyList, order);
-
- ModelAndView mav = new ModelAndView();
- mav.addObject("goodsTotCnt" , delvOrderMap.get("goodsTotCnt")); // 총상품건수
- mav.addObject("delvAllCartList" , delvOrderMap.get("delvAllCartList")); // 전체배송목록
- mav.addObject("delvFeeCdCnt" , delvOrderMap.get("delvFeeCdCnt")); // 자사총알배송상품건수
- mav.addObject("shotCnt" , delvOrderMap.get("shotCnt")); // 자사총알배송상품건수
- mav.addObject("wmsCnt" , delvOrderMap.get("wmsCnt")); // 자사일반상품건수
- mav.addObject("isLogin" , TsfSession.isLogin()); // 로그인여부
- mav.setViewName(super.getDeviceViewName("order/OrderListInfo"));
-
- return mav;
- }
-
- /**
- * 사은품정보조회
- *
- * @param
- * @return
- * @author jsh77b
- * @since 2021. 02. 17
- */
- @ResponseBody
- @PostMapping("/freegiftInfo")
- public ModelAndView freegiftInfo(@RequestBody Order order) {
- GagaMap resultMap = new GagaMap();
-
- // 1. 로그인체크 후 custNo 설정
- if (TsfSession.isLogin()) {
- order.setCustNo(TsfSession.getInfo().getCustNo()); // 고객번호등록
- } else {
- order.setCustNo(0); // 고객번호등록
- order.setJsessionId(TsfSession.getSessionId());
- }
-
- // 2. 로그인체크 후 정보 설정
- if (TsfSession.isLogin()) {
- // 3. 사은품 정보 (장바구니상품 사음품 적용 정보 조회)
- resultMap = coreFreegiftService.getOrderFreegift(order);
- }
-
- ModelAndView mav = new ModelAndView();
- mav.addObject("freegiftApplyAmtList" , resultMap.get("freegiftApplyAmtList")); // 사은품장바구니목록
- mav.addObject("freegiftGoodsList" , resultMap.get("freegiftGoodsList")); // 사은품상품정보 목록
- mav.addObject("freegiftList" , resultMap.get("freegiftList")); // 사은품정보 목록
- mav.addObject("order" , order); // 파라미터
- mav.addObject("isLogin" , TsfSession.isLogin()); // 로그인여부
-
- mav.setViewName(super.getDeviceViewName("order/OrderFreegiftInfo"));
-
- return mav;
- }
-
- /**
- * 할인정보조회
- *
- * @param
- * @return
- * @author jsh77b
- * @since 2021. 02. 17
- */
- @SuppressWarnings("unchecked")
- @ResponseBody
- @PostMapping("/dcAmtInfo")
- public ModelAndView dcAmtInfo(@RequestBody Order order) {
- GagaMap goodsDcAmtMap = new GagaMap();
-
- Collection<Order> goodsApplyCpnList = new ArrayList<Order>();
- Collection<Order> goodsCpnList = new ArrayList<Order>();
- Collection<Order> cartCpnList = new ArrayList<Order>();
- Collection<Order> delvCpnList = new ArrayList<Order>();
- Collection<Order> delvFeeCdList = new ArrayList<Order>();
-
- int rmPntAmt = 0;
- int rmGfcdAmt = 0;
-
- // 1. 로그인체크 후 custNo 설정
- if (TsfSession.isLogin()) {
- order.setCustNo(TsfSession.getInfo().getCustNo()); // 고객번호등록
- } else {
- order.setCustNo(0); // 고객번호등록
- order.setJsessionId(TsfSession.getSessionId());
- }
-
- // 2. 로그인체크 후 정보 설정 (할인구간정보조회)
- if (TsfSession.isLogin()) {
-
- // 2.1 배송단위별 상품 목록 조회 (장바구니)
- Collection<Order> tmtbGoodsApplyList = cartService.getMoreBetterAmtList(order);
-
- // 2.2 상품금액, 선포인트, 다다익선할인금액
- goodsDcAmtMap = coreOrderService.getGoodsDcAmt(tmtbGoodsApplyList);
-
- // 2.3 배송단위별 장바구니 상품 건수 조회 (장바구니상품)
- GagaMap delvOrderMap = coreOrderService.getCartDelvGoodsCntList(tmtbGoodsApplyList, order);
-
- // 2.4 상품쿠폰, 장바구니쿠폰 목록 조회
- GagaMap goodsCartCpnMap = coreOrderService.getGoodsCartCpnApplyGoodsList(order);
-
- goodsCpnList = (Collection<Order>) goodsCartCpnMap.get("goodsCpnList");
- cartCpnList = (Collection<Order>) goodsCartCpnMap.get("cartCpnList");
-
- // 2.5 상품쿠폰 적용된 상품 목록(상품기준)
- goodsApplyCpnList = coreOrderService.getGoodsCpnApplyList(tmtbGoodsApplyList, goodsCpnList);
-
- // 2.6 장바구니쿠폰(장바구니기준 상품목록)
- cartCpnList = coreOrderService.getCartCpnApplyList(tmtbGoodsApplyList, cartCpnList);
-
- // 2.7 배송비쿠폰목록 조회
- delvCpnList = coreOrderService.getDelvCpnList(order);
-
- delvFeeCdList = (Collection<Order>) delvOrderMap.get("delvFeeCdList");
-
- // 2.8 배송비쿠폰(배송업체기준)
- delvCpnList = coreOrderService.getDelvCpnApplyList(delvFeeCdList, delvCpnList);
-
- // 2.9 고객 보유 포인트 정보 조회
- rmPntAmt = coreOrderService.getCustPointInfo(order);
-
- // 2.10 고객 보유 상품권 정보 조회
- rmGfcdAmt = coreOrderService.getGiftcardInfo(order);
- }
- ModelAndView mav = new ModelAndView();
- mav.addObject("goodsApplyCpnList" , goodsApplyCpnList); // 상품적용쿠폰
- mav.addObject("cartCpnList" , cartCpnList); // 장바구니쿠폰목록
- mav.addObject("delvCpnList" , delvCpnList); // 배송비쿠폰목록
- mav.addObject("orgGoodsSumAmt" , goodsDcAmtMap.getInt("orgGoodsSumAmt")); // 상품금액합계
- mav.addObject("cpn1DcSumAmt" , goodsDcAmtMap.getInt("cpn1DcSumAmt")); // 즉시할인금액합계
- mav.addObject("tmtbDcSumAmt" , goodsDcAmtMap.getInt("tmtbDcSumAmt")); // 다다익선할인금액합계
- mav.addObject("prePntDcAmt" , goodsDcAmtMap.getInt("prePntDcAmt")); // 선포인트사용가능금액
- mav.addObject("rmPntAmt" , rmPntAmt); // 고객포인트정보
- mav.addObject("rmGfcdAmt" , rmGfcdAmt); // 고객상품권정보
- mav.addObject("savePntSumAmt" , goodsDcAmtMap.get("savePntSumAmt")); // 적립예정포인트합계
- mav.addObject("order" , order); // 파라미터
- mav.addObject("isLogin" , TsfSession.isLogin()); // 로그인여부
-
- mav.setViewName(super.getDeviceViewName("order/OrderDcAmtInfo"));
-
- return mav;
- }
-
- /**
- * 결제정보조회
- *
- * @param
- * @return
- * @author jsh77b
- * @since 2021. 02. 17
- */
- @ResponseBody
- @PostMapping("/paymentInfo")
- public ModelAndView paymentInfo(@RequestBody Order order) {
-
- // 1. 로그인체크 후 custNo 설정
- if (TsfSession.isLogin()) {
- order.setCustNo(TsfSession.getInfo().getCustNo()); // 고객번호등록
- } else {
- order.setCustNo(0); // 고객번호등록
- order.setJsessionId(TsfSession.getSessionId());
- }
-
- // 2. 로그인체크 후 정보 설정
- if (TsfSession.isLogin()) {
-
- }
- ModelAndView mav = new ModelAndView();
- mav.addObject("order" , order); // 파라미터
- mav.addObject("isLogin" , TsfSession.isLogin()); // 로그인여부
- mav.setViewName(super.getDeviceViewName("order/OrderPaymentInfo"));
-
- return mav;
- }
- /**
- * 주문 데이터 생성 (주문접수)
- *
- * @param
- * @return
- * @author xodud1202
- * @since 2021. 03. 04
- */
- @PostMapping("/create/preOrder")
- @ResponseBody
- public ModelAndView createOrder(@RequestBody Order order) {
- ModelAndView mav = new ModelAndView();
-
- // TODO 주문 시작 데이터 처리
- // 2021.03.09 주문데이타 등록
- // 1. 로그인체크 후 custNo 설정
- if (TsfSession.isLogin()) {
- order.setCustNo(TsfSession.getInfo().getCustNo());
- } else {
- order.setCustNo(0);
- }
-
- order.setFrontGb(TsfSession.getFrontGb());
-
- // TODO
- // 2. 주문정보유효성체크
- orderService.orderValidationCheck(order);
-
- // 3. 주문기본정보등록(주문접수)
- coreOrderService.createPreOrder(order);
-
- log.info("order.getEntryNo() ::: {}", order.getEntryNo());
- log.info("order.getPgGb() ::: {}", order.getPgGb());
- log.info("order.getPayMeans() ::: {}", order.getPayMeans());
- log.info("order.getOrdNo() ::: {}", order.getOrdNo());
- log.info("order.getGoodsNm() ::: {}", order.getGoodsNm());
- log.info("order.getOrdGoodsQty() ::: {}", order.getOrdGoodsQty());
- log.info("order.getPayAmt() ::: {}", order.getPayAmt());
- log.info("order.getOrdNm() ::: {}", order.getOrdNm());
- log.info("order.getOrdPhnno() ::: {}", order.getOrdPhnno());
- log.info("order.getCustNo() ::: {}", order.getCustNo());
- log.info("order.getFreegiftValArr() ::: {}", order.getFreegiftValArr());
- log.info("order.getFreegiftValArr() ::: {}", order.getFreegiftValArr());
- log.info("order.getFreegiftSqArr() ::: {}", order.getFreegiftSqArr());
-
- for(int i = 0 ; i < order.getFreegiftGoodsArr().length ; i++) {
- log.info("order.getFreegiftGoodsArr() ::: {}", order.getFreegiftGoodsArr()[i]);
- }
- // 필수 데이터
- // pgGb = 결제타입, payMeans = 결제수단, ordNo = 주문번호, goodsNm = 상품명, payAmt = 실결제금액, ordNm = 주문자명, ordPhnno = 휴대폰번호, custNo = 고객번호
- // 선택 데이터
- // ordEmail = 주문자메일, ordTelno = 전화번호
-
- /*
- === 카카오페이 & 네이버페이 파라메터 ===
- ordNo = 주문번호
- custNo = 고객번호
- goodsNm = 상품명
- ordGoodsQty = 주문상품수량
- payAmt = 결제금액
- ======================
- */
- Payment payment = orderService.setPgDataInfo(order);
- mav.addObject("payment" , payment);
- mav.addObject("orderDetailList" , order.getOrderDetailList());
- mav.setViewName(super.getDeviceViewName("pg/kcpOrder"));
- return mav;
- }
-
- /**
- * 결제 PG 요청 완료
- *
- * @param
- * @return
- * @author xodud1202
- * @since 2021. 03. 05
- */
- @ResponseBody
- @RequestMapping(value = "/pay/result/response")
- public ModelAndView payResultResponse(Payment param, HttpServletRequest request, HttpServletResponse response) {
-
- ModelAndView mav = new ModelAndView();
-
- Order order = new Order();
-
- // 1. 로그인체크 후 custNo 설정
- if (TsfSession.isLogin()) {
- param.setCustNo(TsfSession.getInfo().getCustNo()); // 고객번호등록
- order.setCustNo(TsfSession.getInfo().getCustNo());
- } else {
- param.setCustNo(0);
- order.setCustNo(0);
- }
-
- param.setUpdNo(param.getCustNo());
-
- // 2. 결재정보등록(TB_PAYMENT)
- param = orderService.orderPgPayResult(param, request, response);
-
- order.setOrdNo(param.getOrdNo());
- order.setSellGb("10");
- order.setPgGb(param.getPgGb());
- order.setPayMeans(param.getPayMeans());
-
- // TODO 3. 주문정보 업데이트
- coreOrderService.updateOrderInfo(order);
-
- // 2021.03.16 주문완료화면이동처리
- //mav.addObject("payment", param);
- //mav.setViewName(super.getDeviceViewName("pg/kcpOrder"));
-
- mav.setViewName("redirect:/order/complete?ordNo=" + order.getOrdNo());
- return mav;
- }
- /**
- * 주문완료페이지
- *
- * @param
- * @return
- * @author jsh77b
- * @since 2021. 03. 16
- */
- @ResponseBody
- @RequestMapping(value = "/complete")
- public ModelAndView orderComplete(Order order) {
-
- ModelAndView mav = new ModelAndView();
-
- // 1. 로그인체크 후 custNo 설정
- if (TsfSession.isLogin()) {
- order.setCustNo(TsfSession.getInfo().getCustNo()); // 고객번호등록
- } else {
- order.setCustNo(0);
- }
-
- // 2. 결제완료정보조회
- GagaMap resultMap = coreOrderService.getOrderCompleteInfo(order);
-
- // 3. 화면전송변수설정
- mav.addObject("orderInfo" , resultMap.get("orderInfo")); // 주문기본정보
- mav.addObject("ordSumAmt" , resultMap.get("ordSumAmt")); // 주문금액합계
- mav.addObject("dcSumAmt" , resultMap.get("dcSumAmt")); // 할인금액합계
- mav.addObject("realOrdSumAmt" , resultMap.get("realOrdSumAmt")); // 결제금액합계
- mav.addObject("goodsSumAmt" , resultMap.get("goodsSumAmt")); // 상품금액합계
- mav.addObject("delvFeeSumAmt" , resultMap.get("delvFeeSumAmt")); // 배송비합계
- mav.addObject("cpn1DcSumAmt" , resultMap.get("cpn1DcSumAmt")); // 즉시할인합계
- mav.addObject("tmtbSumAmt" , resultMap.get("tmtbSumAmt")); // 다다익선합계
- mav.addObject("cpnDcSumAmt" , resultMap.get("cpnDcSumAmt")); // 쿠폰할인합계
- mav.addObject("prePntDcSumAmt" , resultMap.get("prePntDcSumAmt")); // 선포인트할인합계
- mav.addObject("pntDcSumAmt" , resultMap.get("pntDcSumAmt")); // 포인트사용합계
- mav.addObject("gfcdUseSumAmt" , resultMap.get("gfcdUseSumAmt")); // 상품권사용합계
- mav.addObject("savePntSumAmt" , resultMap.get("savePntSumAmt")); // 적립예정포인트합계
- mav.addObject("mileageDcAmt" , resultMap.get("mileageDcAmt")); // 마일리지사용합계
- mav.addObject("allianceDcAmt" , resultMap.get("allianceDcAmt")); // 제휴할인합계
- mav.addObject("isLogin" , TsfSession.isLogin()); // 로그인여부
- mav.addObject("delvAddrSq" , resultMap.get("delvAddrSq")); // 배송지번호
-
- // TODO 주문정보조회
- mav.setViewName(super.getDeviceViewName("order/OrderComplete"));
- return mav;
- }
- /**
- * 총알배송 가능 지역 체크
- *
- * @param
- * @return
- * @author jsh77b
- * @since 2021. 02. 08
- */
- @ResponseBody
- @PostMapping(value = "/getDailyDeliveryCheck")
- public int getDailyDeliveryCheck(Order order) {
-
- // 1. 총알배송가능 지역, 총알배송 가능 시간 체크
- int rtn = coreOrderService.getDailyDeliveryCheck(order);
- return rtn;
- }
-
- /**
- * 사은품안내팝업
- *
- * @param
- * @return
- * @author jsh77b
- * @since 2021. 02. 17
- */
- @ResponseBody
- @RequestMapping(value = "/freegiftInfoPop")
- public ModelAndView freegiftInfoPop(Order order) {
-
- ModelAndView mav = new ModelAndView();
-
- mav.setViewName(super.getDeviceViewName("order/OrderFreegiftInfoPop"));
-
- return mav;
- }
-
- /**
- * 쿠폰변경팝업
- *
- * @param
- * @return
- * @author jsh77b
- * @since 2021. 02. 17
- */
- @SuppressWarnings({ "unused", "unchecked" })
- @ResponseBody
- @PostMapping(value = "/couponApplyPop")
- public ModelAndView couponApplyPop(@RequestBody Order order) {
-
- ModelAndView mav = new ModelAndView();
-
- GagaMap goodsDcAmtMap = new GagaMap();
-
- Collection<Order> goodsApplyCpnList = new ArrayList<Order>();
- Collection<Order> goodsCpnList = new ArrayList<Order>();
- Collection<Order> cartCpnList = new ArrayList<Order>();
-
- // 1. 로그인체크 후 custNo 설정
- if (TsfSession.isLogin()) {
- order.setCustNo(TsfSession.getInfo().getCustNo()); // 고객번호등록
- } else {
- order.setJsessionId(TsfSession.getSessionId());
- }
-
- // 2. 로그인체크 후 정보 설정 (할인구간정보조회)
- if (TsfSession.isLogin()) {
-
- // 2.1 배송단위별 상품 목록 조회 (장바구니)
- Collection<Order> tmtbGoodsApplyList = cartService.getMoreBetterAmtList(order);
-
- // 2.2 상품금액, 선포인트, 다다익선할인금액
- goodsDcAmtMap = coreOrderService.getGoodsDcAmt(tmtbGoodsApplyList);
-
- // 2.3 배송단위별 장바구니 상품 건수 조회 (장바구니상품)
- GagaMap delvOrderMap = coreOrderService.getCartDelvGoodsCntList(tmtbGoodsApplyList, order);
-
- // 2.4 상품쿠폰, 장바구니쿠폰 목록 조회
- GagaMap goodsCartCpnMap = coreOrderService.getGoodsCartCpnApplyGoodsList(order);
-
- goodsCpnList = (Collection<Order>) goodsCartCpnMap.get("goodsCpnList");
- cartCpnList = (Collection<Order>) goodsCartCpnMap.get("cartCpnList");
-
- // 2.5 상품쿠폰 적용된 상품 목록(상품기준)
- goodsApplyCpnList = coreOrderService.getGoodsCpnApplyList(tmtbGoodsApplyList, goodsCpnList);
-
- // 2.6 장바구니쿠폰(장바구니기준 상품목록)
- cartCpnList = coreOrderService.getCartCpnApplyList(tmtbGoodsApplyList, cartCpnList);
- }
- mav.addObject("goodsApplyCpnList" , goodsApplyCpnList); // 상품적용쿠폰
- mav.addObject("cartCpnList" , cartCpnList); // 장바구니쿠폰목록
- mav.addObject("order" , order); // 파라미터
- mav.setViewName(super.getDeviceViewName("order/OrderCouponApplyPop"));
-
- return mav;
- }
- /**
- * 카카오페이 결제 요청 처리
- *
- * @param String
- * @return ModelAndView
- * @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 String
- * @return ModelAndView
- * @author card007
- * @since 2021. 03. 04
- */
- @RequestMapping(value = "/naver/payment/request")
- @ResponseBody
- public ModelAndView naverPaymentRequest(@RequestParam(value = "paymentId", required = false) String paymentId) {
- ModelAndView mav = new ModelAndView();
- mav.addObject("paymentId", paymentId);
- mav.setViewName(super.getDeviceViewName("/pg/NaverPaymentRequest"));
- return mav;
- }
- /**
- * 주문 데이터 생성
- *
- * @param
- * @return
- * @author xodud1202
- * @since 2021. 03. 04
- */
- @RequestMapping(value = "/test")
- public ModelAndView test() {
- ModelAndView mav = new ModelAndView();
- mav.setViewName("web/order/test");
- return mav;
- }
- }
|