| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509 |
- package com.style24.admin.biz.web;
- import java.util.Collection;
- import java.util.List;
- import org.springframework.beans.factory.annotation.Autowired;
- import org.springframework.core.env.Environment;
- import org.springframework.stereotype.Controller;
- import org.springframework.web.bind.annotation.GetMapping;
- 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 com.gagaframework.web.parameter.GagaMap;
- import com.gagaframework.web.rest.server.GagaResponse;
- import com.gagaframework.web.rest.server.GagaResponseStatus;
- import com.style24.admin.biz.service.TsaDeliveryService;
- import com.style24.admin.biz.service.TsaOrderChangeService;
- import com.style24.admin.biz.service.TsaOrderService;
- import com.style24.admin.biz.service.TsaRendererService;
- import com.style24.admin.support.controller.TsaBaseController;
- import com.style24.admin.support.security.session.TsaSession;
- import com.style24.core.biz.service.TscOrderChangeService;
- import com.style24.core.biz.service.TscOrderRefundService;
- import com.style24.core.support.env.TscConstants;
- import com.style24.core.support.message.TscMessageByLocale;
- import com.style24.persistence.domain.Delivery;
- import com.style24.persistence.domain.Order;
- import com.style24.persistence.domain.OrderChange;
- import lombok.extern.slf4j.Slf4j;
- /**
- * 취소관리 Controller
- *
- * @author jsh77b
- * @since 2020. 11. 16
- */
- @Controller
- @RequestMapping("/orderChange")
- @Slf4j
- public class TsaOrderChangeController extends TsaBaseController {
-
- @Autowired
- private TscMessageByLocale message;
-
- @Autowired
- private TsaRendererService rendererService;
-
- @Autowired
- private TsaOrderService orderService;
-
- @Autowired
- private TsaOrderChangeService orderChangeService;
-
- @Autowired
- private TscOrderChangeService coreOrderChangeService;
-
- @Autowired
- private TscOrderRefundService coreOrderRefundService;
-
- /**
- * 취소요청 화면 (관리자)
- *
- * @param ordNo - 주문번호
- * @param cncWait - 취소대기요청 구분
- * @return ModelAndView
- * @author jsh77b
- * @since 2020. 12. 22
- */
- @GetMapping("/cancel/request/form")
- public ModelAndView cancelRequestFrom(@RequestParam(value = "ordNo") int ordNo) {
- Order order = new Order();
- ModelAndView mav = new ModelAndView();
-
- order.setOrdNo(ordNo);
-
- // 취소가능 주문상세상탭값 설정
- String[] ordDtlStatArr = new String[4];
- ordDtlStatArr[0] = TscConstants.OrderDetailStat.DEPOSIT_WAIT.value();
- ordDtlStatArr[1] = TscConstants.OrderDetailStat.PAYMENT_COMPLETE.value();
- ordDtlStatArr[2] = TscConstants.OrderDetailStat.GOODS_PREPARE.value();
- ordDtlStatArr[3] = TscConstants.OrderDetailStat.DELIVERY_PREPARE.value();
- order.setOrdDtlStatArr(ordDtlStatArr);
- mav.addObject("chgReasonList" , rendererService.getAvailCommonCodeList("G686")); // 취소사유
- mav.addObject("cancelRequestTargetList" , coreOrderChangeService.getCancelRequestTargetList(order)); // 취소요청대상목록
- mav.addObject("orderInfoList" , orderService.getOrderInfoList(order)); // 주문정보
- mav.addObject("ordNo" , ordNo); // 주문번호
- mav.setViewName("order/CancelRequestForm");
-
- return mav;
- }
-
- /**
- * 취소신청 (ADMIN, NAPY, 외부몰) (배치)
- *
- * @param OrderChange - 주문취소신청정보
- * @return
- * @author jsh77b
- * @since 2021. 01. 20
- */
- @PostMapping("/cnclReq")
- @ResponseBody
- public GagaResponse cnclReq(@RequestBody OrderChange cnclReq) {
-
- GagaMap mav = new GagaMap();
-
- if (cnclReq== null) {
- throw new IllegalStateException(message.getMessage("FAIL_1001"));
- }
-
- List<Order> cnclReqList = cnclReq.getCancelReqList(); // 취소요청정보목록
-
- // To Do List
- // @ 결품취소로직 추가
- // @ 주문취소시 상태값 체크
- // @ 취소, 반품시 배송비 체크 로직 (선결제 로직)
-
- // 1. 세션회원조회
- int userNo = TsaSession.getInfo().getUserNo();
-
- // 2. 환불금액계산
- // 2021.01.19 취소신청정보를 목록 (주문상세번호, 취소/반품수량) 으로 표현
- mav = coreOrderRefundService.cnclRtnRefundAmt(cnclReqList);
-
- // 3. 주문변경 기본정보 설정
- mav.set("ordNo" , cnclReq.getOrdNo()); // 주문번호
- mav.set("chgReason" , cnclReq.getChgReason()); // 변경사유
- mav.set("chgMemo" , cnclReq.getChgMemo()); // 변경메모
-
- mav.set("accountNo" , cnclReq.getAccountNo()); // 환불계좌번호
- mav.set("accountNm" , cnclReq.getAccountNm()); // 환불계좌예금주명
- mav.set("bankCd" , cnclReq.getBankCd()); // 환불계좌은행코드
-
- mav.set("allCanYn" , cnclReq.getAllCanYn()); // 무통장입금전 전체취소 여부
- mav.set("isCustomer" , cnclReq.getIsCustomer()); // 변경사유 (고객, 회사)
-
- // 4. 주문변경 회수지정보 추가
- mav.set("chgerNm" , cnclReq.getChgerNm()); // 변경자명
- mav.set("chgerEmail" , cnclReq.getChgerEmail()); // 변경자이메일주소
- mav.set("chgerPhnno" , cnclReq.getChgerPhnno()); // 변경자핸드폰번호
- mav.set("chgerTelno" , cnclReq.getChgerTelno()); // 변경자전화번호
-
- // 5. 주문변경 DB 등록 (TB_ORDER_CHANGE, TB_ORDER_CHANGE_DETAIL, TB_REFUND)
- coreOrderChangeService.cnclReq(mav, userNo);
-
- return super.ok("성공");
- }
-
- /**
- * 취소요청컨펌 (NAPY, 외부몰) (관리자)
- * @param OrderChange - 주문취소신청정보
- * @return
- * @author jsh77b
- * @since 2021. 01. 20
- */
- @PostMapping("/cnclReqComplete")
- @ResponseBody
- public GagaResponse cnclReqComplete(@RequestBody OrderChange cnclReq) {
-
- if (cnclReq== null) {
- throw new IllegalStateException(message.getMessage("FAIL_1001"));
- }
-
- return super.ok("성공");
- }
-
- /**
- * 취소완료 (관리자)
- * @param Collection<Order> - 주문취소신청목록
- * @return
- * @author jsh77b
- * @since 2020. 12. 29
- */
- @PostMapping("/cnclComplete")
- @ResponseBody
- public GagaResponse cnclComplete(@RequestBody OrderChange cnclReq) {
-
- GagaMap mav = new GagaMap();
-
- if (cnclReq== null) {
- throw new IllegalStateException(message.getMessage("FAIL_1001"));
- }
-
- List<Order> cnclReqList = cnclReq.getCancelReqList(); // 취소요청정보목록
-
- // To Do List
- // @ 결품취소로직 추가
- // @ 주문취소시 상태값 체크
- // @ 취소, 반품시 배송비 체크 로직 (선결제 로직)
-
- // 1. 세션회원조회
- int userNo = TsaSession.getInfo().getUserNo();
-
- // 2. 환불금액계산
- // 2021.01.19 취소신청정보를 목록 (주문상세번호, 취소/반품수량) 으로 표현
- mav = coreOrderRefundService.cnclRtnRefundAmt(cnclReqList);
-
- // 3. 주문변경 기본정보 설정
- mav.set("ordNo" , cnclReq.getOrdNo()); // 주문번호
- mav.set("chgReason" , cnclReq.getChgReason()); // 변경사유
- mav.set("chgMemo" , cnclReq.getChgMemo()); // 변경메모
-
- mav.set("accountNo" , cnclReq.getAccountNo()); // 환불계좌번호
- mav.set("accountNm" , cnclReq.getAccountNm()); // 환불계좌예금주명
- mav.set("bankCd" , cnclReq.getBankCd()); // 환불계좌은행코드
-
- mav.set("allCanYn" , cnclReq.getAllCanYn()); // 무통장입금전 전체취소 여부
- mav.set("isCustomer" , cnclReq.getIsCustomer()); // 변경사유 (고객, 회사)
-
- // 4. 주문변경 회수지정보 추가
- mav.set("chgerNm" , cnclReq.getChgerNm()); // 변경자명
- mav.set("chgerEmail" , cnclReq.getChgerEmail()); // 변경자이메일주소
- mav.set("chgerPhnno" , cnclReq.getChgerPhnno()); // 변경자핸드폰번호
- mav.set("chgerTelno" , cnclReq.getChgerTelno()); // 변경자전화번호
-
- // 5. 주문변경 DB 등록 (TB_ORDER_CHANGE, TB_ORDER_CHANGE_DETAIL)
- coreOrderChangeService.cnclComplete(mav, userNo);
-
- return super.ok("성공");
- }
-
- /**
- * 반품요청 화면 (관리자)
- *
- * @param ordNo - 주문번호
- * @param cncWait - 취소대기요청 구분
- * @return ModelAndView
- * @author jsh77b
- * @since 2020. 12. 22
- */
- @GetMapping("/return/request/form")
- public ModelAndView returnRequestFrom(@RequestParam(value = "ordNo") int ordNo) {
- Order order = new Order();
- ModelAndView mav = new ModelAndView();
-
- order.setOrdNo(ordNo);
-
- // 반품가능 주문상세상탭값 설정
- String[] ordDtlStatArr = new String[3];
- ordDtlStatArr[0] = TscConstants.OrderDetailStat.SHIPPING.value();
- ordDtlStatArr[1] = TscConstants.OrderDetailStat.SHIP_COMPLETE.value();
- ordDtlStatArr[2] = TscConstants.OrderDetailStat.DELIVERY_COMPLETE.value();
- order.setOrdDtlStatArr(ordDtlStatArr);
-
- mav.addObject("chgReasonList" , rendererService.getAvailCommonCodeList("G688")); // 취소사유
- mav.addObject("cancelRequestTargetList" , coreOrderChangeService.getCancelRequestTargetList(order)); // 취소요청대상 목록
- mav.addObject("orderInfoList" , orderService.getOrderInfoList(order)); // 주문정보
- mav.addObject("ordNo" , ordNo); // 주문번호
-
- mav.addObject("orderDelvRtnAddrInfo" , orderService.getDeliveryAddrList(order)); // 배송정보
- mav.addObject("TelExcNoList" , rendererService.getAvailCommonCodeList("G095")); // 전화번호국번
- mav.addObject("PhnExcNoList" , rendererService.getAvailCommonCodeList("G096")); // (휴대전화)번호국번
- mav.setViewName("order/ReturnRequestForm");
-
- return mav;
- }
-
- /**
- * 반품신청 (관리자)
- * @param Collection<Order> - 주문취소신청목록
- * @return
- * @author jsh77b
- * @since 2020. 12. 29
- */
- @PostMapping("/returnRequest")
- @ResponseBody
- public GagaResponse orderReturnRequest(@RequestBody OrderChange rtnReq) {
-
- GagaMap mav = new GagaMap();
-
- if (rtnReq== null) {
- throw new IllegalStateException(message.getMessage("FAIL_1001"));
- }
- List<Order> cancelReqList = rtnReq.getCancelReqList(); // 취소요청정보
-
- // 1. 세션회원조회
- int userNo = TsaSession.getInfo().getUserNo();
-
- // 2. 환불금액계산
- mav = coreOrderRefundService.cnclRtnRefundAmt(cancelReqList);
-
- // 3. 주문변경 기본정보 설정
- mav.set("ordNo" , rtnReq.getOrdNo()); // 주문번호
- mav.set("chgReason" , rtnReq.getChgReason()); // 변경사유
- mav.set("chgMemo" , rtnReq.getChgMemo()); // 변경메모
-
- mav.set("accountNo" , rtnReq.getAccountNo()); // 환불계좌번호
- mav.set("accountNm" , rtnReq.getAccountNm()); // 환불계좌예금주명
- mav.set("bankCd" , rtnReq.getBankCd()); // 환불계좌은행코드
-
- mav.set("allCanYn" , rtnReq.getAllCanYn()); // 무통장입금전 전체취소 여부
- mav.set("isCustomer" , rtnReq.getIsCustomer()); // 변경사유 (고객, 회사)
-
- // 4. 주문변경 회수지정보 추가
- mav.set("chgerNm" , rtnReq.getChgerNm()); // 변경자명
- mav.set("chgerEmail" , rtnReq.getChgerEmail()); // 변경자이메일주소
- mav.set("chgerZipNo" , rtnReq.getChgerZipNo()); // 회수지우편번호
- mav.set("chgerBaseAddr" , rtnReq.getChgerBaseAddr()); // 회수지기본주소
- mav.set("chgerDtlAddr" , rtnReq.getChgerDtlAddr()); // 회수지상세주소
- mav.set("chgerPhnno" , rtnReq.getChgerPhnno()); // 변경자핸드폰번호
- mav.set("chgerTelno" , rtnReq.getChgerTelno()); // 변경자전화번호
-
- // 5. 주문변경 DB 등록 (TB_ORDER_CHANGE, TB_ORDER_CHANGE_DETAIL, TB_REFUND)
- coreOrderChangeService.rtnReq(mav, userNo);
-
- return super.ok("성공");
- }
-
- /**
- * 주문 취소/반품 신청환불금액 계산
- * @param Collection<Order>- 주문취소신청목록
- * @return
- * @author jsh77b
- * @since 2020. 12. 29
- */
- @PostMapping("/cancel/refundAmt")
- @ResponseBody
- public GagaMap orderCancelRefundAmt(@RequestBody List<Order> cancelReqList) {
-
- GagaMap mav = new GagaMap();
-
- if (cancelReqList == null || cancelReqList.isEmpty()) {
- throw new IllegalStateException(message.getMessage("FAIL_1001"));
- }
-
- // 1. 환불금액정보 계산 & 조회
- mav = coreOrderRefundService.cnclRtnRefundAmt(cancelReqList);
-
- return mav;
- }
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- /**
- * 환불계좌목록
- *
- * @param ordNo - 주문번호
- * @param custNo - 고객고유번호
- * @return Collection<TsaOrder>
- * @author jsshin
- * @since 2020. 10. 16.
- */
- @GetMapping("/refund/account/info/list")
- @ResponseBody
- public Collection<Order> getRefundAccountInfoList(@RequestParam(value = "ordNo") int ordNo) {
- Order order = new Order();
- order.setOrdNo(ordNo);
- Collection<Order> orderRfAccountInfo = orderChangeService.getRefundAccount(order);
- return orderRfAccountInfo;
- }
-
- /**
- * 환불계좌등록 화면
- *
- * @param ordNo - 주문번호
- * @param custNo - 고객고유번호
- * @return ModelAndView
- * @author jsh77b
- * @since 2021. 01. 04.
- */
- @GetMapping("/refund/account/create/form")
- public ModelAndView refundAccountCreateForm(@RequestParam(value = "ordNo") int ordNo) {
- ModelAndView mav = new ModelAndView();
- Order order = new Order();
- order.setOrdNo(ordNo);
- Collection<Order> orderBasic = orderService.getOrderInfoList(order);
- Collection<Order> orderRfAccountInfo = orderChangeService.getRefundAccount(order);
- mav.addObject("bankList" , rendererService.getCommonCodeList("G940"));
- mav.addObject("orderRfAccountInfo" , orderRfAccountInfo);
- mav.addObject("orderBasic" , orderBasic);
- mav.setViewName("order/RefundAccountRegistForm");
-
- return mav;
- }
-
- /**
- * 환불계좌등록
- *
- * @param order - 환불계좌정보
- * @return GagaResponse
- * @author jsh77b
- * @since 2021. 01. 04.
- */
- @PostMapping("/account/save")
- @ResponseBody
- public GagaResponse saveRefundAccount(@RequestBody Order order) {
-
- int userNo = TsaSession.getInfo().getUserNo();
- order.setUpdNo(userNo);
- order.setRegNo(userNo);
-
- String accountCheck = "Y";
-
- // To Do List
- // @ 환불계좌인증
-
- if ("Y".equals(accountCheck)) {
- orderChangeService.saveRefundAccount(order);
- } else {
- throw new IllegalStateException("환불계좌정보가 맞지 않습니다!");
- }
- return super.ok(message.getMessage("SUCC_0001"));
- }
- /**
- * 교환요청 화면
- *
- * @param ordNo - 주문번호
- * @return ModelAndView
- * @author card007
- * @since 2021. 01. 14
- */
- @GetMapping("/exchange/request/form")
- public ModelAndView exchangeRequestFrom(@RequestParam(value = "ordNo") int ordNo) {
- Order order = new Order();
- ModelAndView mav = new ModelAndView();
- order.setOrdNo(ordNo);
- // 교환가능 주문상세상탭값 설정
- String[] ordDtlStatArr = new String[3];
- ordDtlStatArr[0] = TscConstants.OrderDetailStat.SHIPPING.value();
- ordDtlStatArr[1] = TscConstants.OrderDetailStat.SHIP_COMPLETE.value();
- ordDtlStatArr[2] = TscConstants.OrderDetailStat.DELIVERY_COMPLETE.value();
- order.setOrdDtlStatArr(ordDtlStatArr);
- Collection<Order> cancelRequestTargetList = coreOrderChangeService.getCancelRequestTargetList(order);
- Collection<Order> orderInfoList = orderService.getOrderInfoList(order);
- mav.addObject("chgReasonList" , rendererService.getAvailCommonCodeList("G689")); // 교환사유
- mav.addObject("cancelRequestTargetList" , cancelRequestTargetList); // 교환요청대상 목록
- mav.addObject("orderInfoList" , orderInfoList); // 주문정보
- mav.addObject("ordNo" , ordNo);
- mav.addObject("orderDelvAddrInfo" , orderService.getDeliveryAddrList(order)); // 배송정보
- mav.addObject("TelExcNoList" , rendererService.getAvailCommonCodeList("G095")); // 전화번호국번
- mav.addObject("PhnExcNoList" , rendererService.getAvailCommonCodeList("G096")); // (휴대전화)번호국번
- mav.setViewName("order/ExchangeRequestForm");
- return mav;
- }
- /**
- * 교환신청 (관리자)
- *
- * @param Collection<OrderChange>
- * @return
- * @author card007
- * @since 2021. 01. 22
- */
- @PostMapping("/exchangeRequest")
- @ResponseBody
- public GagaMap orderExchangeRequest(@RequestBody OrderChange excReq) {
- GagaMap result = new GagaMap();
- result.set("status", GagaResponseStatus.FAIL.getCode());
- if (excReq == null) {
- result.set("message", message.getMessage("FAIL_1001"));
- return result;
- }
- log.info("excReq >>> {}", excReq);
- // orderChangeService.changeRequest()
- // result.set("status", GagaResponseStatus.SUCCESS.getCode());
- return result;
- }
- }
|