Parcourir la source

주문로직 공통 작업 진행중

jsh77b il y a 5 ans
Parent
commit
859e89ba9d

+ 0 - 746
src/main/java/com/style24/admin/biz/service/TsaOrderChangeService.java

@@ -45,753 +45,7 @@ public class TsaOrderChangeService {
 
 	@Autowired
 	private ObjectMapper mapper;
-	
-	/**
-	 * 주문상세 > 주문취소신청 > 주문취소,반품,교환 대상목록
-	 * @param Order
-	 * @return Order
-	 * @author jsh77b
-	 * @since 2020. 12. 16
-	 */
-	public Collection<Order> getCancelRequestTargetList(Order order) {
-		return orderChangeDao.getCancelRequestTargetList(order);
-	}
-	
-	/**
-	 * 주문상세 > 주문취소신청 > 주문취소, 반품 환불 금액 계산
-	 * @param Order
-	 * @return Order
-	 * @author jsh77b
-	 * @since 2020. 12. 16
-	 */
-	public GagaMap orderCancelRefundAmt(List<Order> cancelReqList) {
-		GagaMap mav = new GagaMap();
-		
-		// 1. 변수설정
-		int spanPayAmt				= 0; // 총 결제 금액
-		int spanSumRealOrdAmt		= 0; // 상품 실결제 금액
-		int spanSumDeliveryFee		= 0; // 배송금액
-		int spanRtnSumDeliveryFee 	= 0; // 반품배송금액
-		int spanExcSumDeliveryFee 	= 0; // 교환배송금액
-		int spanOrdAmt				= 0; // 주문 상품 금액
-		int spanCnclRtnAmt			= 0; // 취소 상품 금액
-		int spanTotPntDcAmt			= 0; // 취소 사용 포인트
-		int spanPntDcAmt			= 0; // 고객 포인트
-		int spanPrePntDcAmt			= 0; // 상품 선포인트
-		int spanCpnDcAmt			= 0; // 취소 사용 쿠폰금액
-		int spanCpn1DcAmt			= 0; // 즉시할인쿠폰
-		int spanGoodsCpnDcAmt		= 0; // 상품쿠폰
-		int spanCartCpnDcAmt		= 0; // 장바구니쿠폰
-		int spanTmtbDcAmt			= 0; // 취소 다다익선 금액
-		int spanTmtb1DcAmt			= 0; // 수량할인
-		int spanTmtb2DcAmt			= 0; // 금액할인
-		int spanGfcdUseAmt			= 0; // 취소 고객 상품권 금액
-		int spanRealCnclRtnAmt		= 0; // 취소 상품 실결제 금액
-		int spanTotDeliveryFee		= 0; // 환불 배송 금액
-		int spanRefundAmt			= 0; // 환불 금액 합계
-		
-		int sumDeliveryFee			= 0; // 배송금액 (전체 취소시에 배송금액도 같이 환불)
-		
-		List<Order> cancelOrderRefundList 	= new ArrayList<Order>();	// 주문환불금액목록
-		List<Order> cancelDelvRefundList 	= new ArrayList<Order>();	// 주문환불배송금액목록
-		
-		Order orderObj	= new Order();
-		Order delvObj	= new Order();
-		int k 			= 0 ;
-		
-		// 2. 초기 배송정보 설정
-		delvObj.setOrdAmt(0);
-		delvObj.setCnclRtnAmt(0);
-		delvObj.setRealOrdAmt(0);
-		delvObj.setDelvFee(cancelReqList.get(k).getDelvFee());
-		delvObj.setMinOrdAmt(cancelReqList.get(k).getMinOrdAmt());
-		delvObj.setOrgDelvFee(cancelReqList.get(k).getOrgDelvFee());
-		delvObj.setRtnDelvFee(cancelReqList.get(k).getRtnDelvFee());
-		delvObj.setExcDelvFee(cancelReqList.get(k).getExcDelvFee());
-		delvObj.setSupplyCompCd(cancelReqList.get(k).getSupplyCompCd());
-		delvObj.setDelvFeeCd(cancelReqList.get(k).getDelvFeeCd());
-		delvObj.setAllCanYn(cancelReqList.get(k).getAllCanYn());
-		cancelDelvRefundList.add(delvObj);
-		
-		// 3. 취소신청수량 정보를 취소 환불 금액 계산
-		for (Order oneData : cancelReqList) {
-			orderObj	= new Order();
-			
-			// 3.1 주문기본정보 설정
-			orderObj.setItemQty(oneData.getItemQty());
-			orderObj.setOrdQty(oneData.getOrdQty());
-			orderObj.setCnclRtnQty(oneData.getCnclRtnQty());
-			orderObj.setOrdReqChgQty(oneData.getOrdReqChgQty());
-			orderObj.setOrdCanChgQty(oneData.getOrdCanChgQty());
-			orderObj.setItemPrice(oneData.getItemPrice());
-			orderObj.setOptAddPrice	(oneData.getOptAddPrice());
-			orderObj.setOrdAmt(oneData.getOrdAmt());
-			
-			orderObj.setOrdNo(oneData.getOrdNo());
-			orderObj.setOrdDtlNo(oneData.getOrdDtlNo());
-			orderObj.setGoodsCd(oneData.getGoodsCd());
-			orderObj.setGoodsNm(oneData.getGoodsNm());
-			orderObj.setOrdDtlItemSq(oneData.getOrdDtlItemSq());
-			orderObj.setItemCd(oneData.getItemCd());
-			orderObj.setItemNm(oneData.getItemNm());
-			orderObj.setOptCd1(oneData.getOptCd1());
-			orderObj.setOptCd2(oneData.getOptCd2());
-			
-			// 3.2 주문취소수량으로 취소율 정보 설정
-			int ordQty 			= oneData.getOrdQty();
-			int itemQty 		= oneData.getItemQty();
-			int ordCanChgQty 	= oneData.getOrdCanChgQty();
-			
-			float _appQty		= (float)ordCanChgQty / (float)ordQty;
-			
-			// 3.3 주문취소금액 & 취소할인금액 계산
-			orderObj.setCnclRtnAmt(((oneData.getItemPrice() + oneData.getOptAddPrice()) * itemQty) * ordCanChgQty);
-			orderObj.setCpn1DcAmt((int)(oneData.getCpn1DcAmt() 				* _appQty));
-			orderObj.setTmtb1DcAmt((int)(oneData.getTmtb1DcAmt() 			* _appQty));
-			orderObj.setTmtb2DcAmt((int)(oneData.getTmtb2DcAmt() 			* _appQty));
-			orderObj.setGoodsCpnDcAmt((int)(oneData.getGoodsCpnDcAmt() 		* _appQty));
-			orderObj.setCartCpnDcAmt((int)(oneData.getCartCpnDcAmt() 		* _appQty));
-			orderObj.setPntDcAmt((int)(oneData.getPntDcAmt() 				* _appQty));
-			orderObj.setPrePntDcAmt((int)(oneData.getPrePntDcAmt() 			* _appQty));
-			orderObj.setSavePntAmt((int)(oneData.getSavePntAmt() 			* _appQty));
-			orderObj.setGfcdUseAmt((int)(oneData.getGfcdUseAmt() 			* _appQty));
-			
-			// 3.4 취소할인합계금액 적용
-			int dcTotAmt		= 0;
-			dcTotAmt			+= orderObj.getTmtb1DcAmt();
-			dcTotAmt			+= orderObj.getTmtb2DcAmt();
-			dcTotAmt			+= orderObj.getGoodsCpnDcAmt();
-			dcTotAmt			+= orderObj.getCartCpnDcAmt();
-			dcTotAmt			+= orderObj.getPntDcAmt();
-			dcTotAmt			+= orderObj.getPrePntDcAmt();
-			dcTotAmt			+= orderObj.getCpn1DcAmt();
-			dcTotAmt			+= orderObj.getGfcdUseAmt();
-			
-			// 3.5 주문취소환불금액 계산
-			orderObj.setRealOrdAmt(orderObj.getCnclRtnAmt() - dcTotAmt);
-			
-			// 3.6 배송정보 관련 설정		
-			orderObj.setOrdDtlNo(oneData.getOrdDtlNo());
-			orderObj.setGoodsTypeNm(oneData.getGoodsTypeNm());
-			orderObj.setDelvFee(oneData.getDelvFee());
-			orderObj.setSupplyCompCd(oneData.getSupplyCompCd());
-			orderObj.setDelvFeeCd(oneData.getDelvFeeCd());
-			orderObj.setMinOrdAmt(oneData.getMinOrdAmt());
-			orderObj.setOrgDelvFee(oneData.getOrgDelvFee());
-			orderObj.setRtnDelvFee(oneData.getRtnDelvFee());
-			orderObj.setExcDelvFee(oneData.getExcDelvFee());
-			
-			// 3.7 주문상세상태체크
-			orderObj.setOrdDtlStat(oneData.getOrdDtlStat());
-			orderObj.setOrdDtlStatNm(oneData.getOrdDtlStatNm());
-			orderObj.setAllCanYn(oneData.getAllCanYn()); // 전체취소 여부 (기존의 취소 또는 출고, 반품, 교환 의 경우에는 전체취소 불가능)
-			
-			cancelOrderRefundList.add(orderObj);
-			
-			// 3.8 배송업체 & 배송비정책 조건으로 추가 배송비 금액 설정
-			if (cancelDelvRefundList.get(k).getSupplyCompCd().equals(orderObj.getSupplyCompCd()) && cancelDelvRefundList.get(k).getDelvFeeCd().equals(orderObj.getDelvFeeCd())) {
-				// 공급업체 와 배송정책코드가 같으면 주문금액, 취소금액 SUM
-				cancelDelvRefundList.get(k).setOrdAmt(cancelDelvRefundList.get(k).getOrdAmt() + orderObj.getOrdAmt());
-				cancelDelvRefundList.get(k).setCnclRtnAmt(cancelDelvRefundList.get(k).getCnclRtnAmt() + orderObj.getCnclRtnAmt());
-				cancelDelvRefundList.get(k).setRealOrdAmt(cancelDelvRefundList.get(k).getRealOrdAmt() + orderObj.getRealOrdAmt());
-				
-				if ("N".equals(orderObj.getAllCanYn())) {
-					cancelDelvRefundList.get(k).setAllCanYn("N");
-				}
-			} else {			
-				k++;
-				
-				delvObj	= new Order();
-				
-				// 공급업체 와 배송정책코드가 같지안으면 주문금액, 취소금액 RESET
-				delvObj.setOrdAmt(orderObj.getOrdAmt());
-				delvObj.setCnclRtnAmt(orderObj.getCnclRtnAmt());
-				delvObj.setRealOrdAmt(orderObj.getRealOrdAmt());
-				
-				delvObj.setDelvFee(orderObj.getDelvFee());
-				delvObj.setMinOrdAmt(orderObj.getMinOrdAmt());		
-				delvObj.setOrgDelvFee(orderObj.getOrgDelvFee());
-				delvObj.setRtnDelvFee(orderObj.getRtnDelvFee());
-				delvObj.setExcDelvFee(orderObj.getExcDelvFee());
-				delvObj.setSupplyCompCd(orderObj.getSupplyCompCd());
-				delvObj.setDelvFeeCd(orderObj.getDelvFeeCd());
-				delvObj.setAllCanYn(orderObj.getAllCanYn());
-				
-				cancelDelvRefundList.add(delvObj);
-			}
-			
-			// 3.9 FRONT 화면에서 사용 하는 변수 값 설정 & 계산
-			spanSumRealOrdAmt	+= oneData.getRealOrdAmt();
-			spanPntDcAmt		+= orderObj.getPntDcAmt();
-			spanPrePntDcAmt		+= orderObj.getPrePntDcAmt();
-			spanCpn1DcAmt		+= orderObj.getCpn1DcAmt();
-			spanGoodsCpnDcAmt	+= orderObj.getGoodsCpnDcAmt();
-			spanCartCpnDcAmt	+= orderObj.getCartCpnDcAmt();
-			spanTmtb1DcAmt		+= orderObj.getTmtb1DcAmt();
-			spanTmtb2DcAmt		+= orderObj.getTmtb2DcAmt();
-			spanGfcdUseAmt		+= orderObj.getGfcdUseAmt();
-			spanRealCnclRtnAmt	+= orderObj.getRealOrdAmt();
-		}
-		
-		// 4. 추가배송비 발생여부, 추가배송비, 배송비정책단위 전체취소 여부 체크
-		for (int i=0 ; i<cancelDelvRefundList.size() ; i++) {
-			Order obj = cancelDelvRefundList.get(i);
-			
-			// 취소금액이 있을때 처리
-			if (obj.getCnclRtnAmt() > 0) {
-			
-				// 4.1 무료배송비용 > (주문금액 - 취소금액)
-				if (obj.getMinOrdAmt() > (obj.getOrdAmt() - obj.getCnclRtnAmt())) {
-					
-					// 4.2 주문시 배송비가 존재하면 추가 배송비 없음
-					if (obj.getDelvFee() > 0) {
-						obj.setAddDelvFeeYn("N");
-						obj.setAddDelvFee(0);
-						
-						// 4.2.1 전체취소시 배송비 환불
-						if ((obj.getOrdAmt() - obj.getCnclRtnAmt()) == 0) {
-							if ("Y".equals(obj.getAllCanYn())) {
-								sumDeliveryFee += obj.getDelvFee(); // 전체취소시 배송금액도 같이 환불
-							}
-						}
-					} else {
-						// 4.3 주문금액 - 취소금액 == 0 이면 전체취소 이므로 배송비 발생 안함
-						// * 2020.12.28 
-						// * case : 배송정책 기준으로 1,2 상품 주문 후 1번 출고 후 1번반품 2번취소 할 경우 전체 취소 가 아니므로 배송비 부과 있을지 모르겠음 주문업체 단위로 배송되기 때문에 발생하지 않을것 같음
-						if ((obj.getOrdAmt() - obj.getCnclRtnAmt()) == 0) {
-							if ("N".equals(obj.getAllCanYn())) {
-								obj.setAddDelvFeeYn("Y");
-								obj.setAddDelvFee(obj.getOrgDelvFee());
-							} else {
-								// 4.4 전체취소의 경우에 해당
-								obj.setAddDelvFeeYn("N");
-								obj.setAddDelvFee(0);
-							}
-						} else {
-							// 4.5 추가배송비 발생 (취소신청화면에서 대부분 아래의 조건에 해당)
-							obj.setAddDelvFeeYn("Y");
-							obj.setAddDelvFee(obj.getOrgDelvFee());
-						}
-					}
-				} else {
-					obj.setAddDelvFeeYn("N");
-					obj.setAddDelvFee(0);
-				}
-			}
-				
-			spanSumDeliveryFee		+= obj.getDelvFee();
-			spanRtnSumDeliveryFee	+= obj.getRtnDelvFee();
-			spanExcSumDeliveryFee	+= obj.getExcDelvFee();
-			spanOrdAmt				+= obj.getOrdAmt();
-			spanCnclRtnAmt			+= obj.getCnclRtnAmt();
-			spanTotDeliveryFee  	+= obj.getAddDelvFee();
-			
-			cancelDelvRefundList.set(i, obj);
-		}
-		
-		// 5. FRONT 화면엣 필요한 금액 설정
-		// 2020.12.30 프론트에서 필요한 부분 작업 필여
-		// 관리자 화면에서 사용하는 환불 칼럼 정보
-		// 환불금액표시
-		spanPayAmt 			= spanSumRealOrdAmt + spanSumDeliveryFee;
-		spanTotPntDcAmt 	= spanPntDcAmt + spanPrePntDcAmt;
-		spanCpnDcAmt 		= spanCpn1DcAmt + spanGoodsCpnDcAmt + spanCartCpnDcAmt;
-		spanTmtbDcAmt 		= spanTmtb1DcAmt + spanTmtb2DcAmt;
-		spanRefundAmt 		= (spanRealCnclRtnAmt + sumDeliveryFee) - spanTotDeliveryFee;
-
-		mav.set("cancelReqList"			, cancelReqList);			//주문 취소 신청 목록
-		mav.set("cancelOrderRefundList"	, cancelOrderRefundList);	//주문 환불 금액 목록
-		mav.set("cancelDelvRefundList"	, cancelDelvRefundList);	//주문 환불 배송 금액 목록
-		mav.set("spanPayAmt"			, spanPayAmt);				//총 결제 금액
-		mav.set("spanSumRealOrdAmt"		, spanSumRealOrdAmt);		//상품 실결제 금액
-		mav.set("spanSumDeliveryFee"	, spanSumDeliveryFee);		//배송금액
-		mav.set("spanOrdAmt"			, spanOrdAmt);				//주문 상품 금액
-		mav.set("spanCnclRtnAmt"		, spanCnclRtnAmt);			//취소 상품 금액
-		mav.set("spanTotPntDcAmt"		, spanTotPntDcAmt);			//취소 사용 포인트
-		mav.set("spanPntDcAmt"			, spanPntDcAmt);			//고객 포인트
-		mav.set("spanPrePntDcAmt"		, spanPrePntDcAmt);			//상품 선포인트
-		mav.set("spanCpnDcAmt"			, spanCpnDcAmt);			//취소 사용 쿠폰금액
-		mav.set("spanCpn1DcAmt"			, spanCpn1DcAmt);			//즉시할인쿠폰
-		mav.set("spanGoodsCpnDcAmt"		, spanGoodsCpnDcAmt);		//상품쿠폰
-		mav.set("spanCartCpnDcAmt"		, spanCartCpnDcAmt);		//장바구니쿠폰
-		mav.set("spanTmtbDcAmt"			, spanTmtbDcAmt);			//취소 다다익선 금액
-		mav.set("spanTmtb1DcAmt"		, spanTmtb1DcAmt);			//수량할인
-		mav.set("spanTmtb2DcAmt"		, spanTmtb2DcAmt);			//금액할인
-		mav.set("spanGfcdUseAmt"		, spanGfcdUseAmt);			//취소 고객 상품권 금액
-		mav.set("spanRealCnclRtnAmt"	, spanRealCnclRtnAmt);		//취소 상품 실결제 금액
-		mav.set("sumDeliveryFee"		, sumDeliveryFee);			//배송비 합계 금액
-		mav.set("spanTotDeliveryFee"	, spanTotDeliveryFee);		//추가 배송 금액
-		mav.set("spanTotRtnDelvFee"		, spanRtnSumDeliveryFee);	//추가 반품 배송 금액
-		mav.set("spanTotExcDelvFee"		, spanExcSumDeliveryFee);	//추가 교환 배송 금액
-		mav.set("spanRefundAmt"			, spanRefundAmt);			//환불 금액 합계
-		
-		return mav;
-	}
-	
-	/**
-	 * 주문상세 > 주문취소신청 > 주문취소
-	 * @param Order
-	 * @return Order
-	 * @author jsh77b
-	 * @since 2020. 12. 30
-	 */
-	@Transactional("shopTxnManager")
-	public void orderCancel(GagaMap mav) {
-		
-		// 1. 세션회원조회
-		int userNo = TsaSession.getInfo().getUserNo();
-		
-		// 2. 취소요정정보목록
-		List<Order> cancelReqList		 	= (List<Order>) mav.get("cancelReqList");			//주문 취소 신청 목록
-		List<Order> cancelOrderRefundList 	= (List<Order>) mav.get("cancelOrderRefundList");	//주문 환불 금액 목록
-		List<Order> cancelDelvRefundList 	= (List<Order>) mav.get("cancelDelvRefundList");	//주문 환불 배송 금액 목록
-				
-		// 3. 취소신청정보
-		int ordNo 			= Integer.parseInt(mav.getString("ordNo").toString());
-		String chgReason 	= mav.getString("chgReason").toString();
-		String chgMemo 		= mav.getString("chgMemo").toString();
-		String allCanYn		= mav.getString("allCanYn").toString();
-		String isCustomer	= mav.getString("isCustomer").toString();
-		String chgGb		= "G680_20"; // 취소요청
-		
-		// 4.1 주문변경 기본정보 등록
-		OrderChange orderChange = new OrderChange();
-		orderChange.setOrdNo(ordNo);
-		orderChange.setChgGb(chgGb);
-		orderChange.setChgReason(chgReason);
-		orderChange.setChgMemo(chgMemo);
-		orderChange.setAddPayCost(0);
-		orderChange.setAddPayAmt(0);
-		orderChange.setRegNo(userNo);
-		orderChange.setUpdNo(userNo);
-		
-		// 4.2 주문변경 추가정조 등록하기
-		// 4.2 반품회수지 정보 등록
-		String chgerNm 			= mav.getString("chgerNm").toString();
-		String chgerPhnno 		= mav.getString("chgerPhnno").toString();
-		String chgerTelno 		= mav.getString("chgerTelno").toString();
-		String chgerEmail 		= mav.getString("chgerEmail").toString();
-		
-		orderChange.setChgerNm(chgerNm);
-		orderChange.setChgerPhnno(chgerPhnno);
-		orderChange.setChgerTelno(chgerTelno);
-		orderChange.setChgerEmail(chgerEmail);
-		orderChange.setChgerRtnMemo("");
-		
-		orderChangeDao.createOrderChange(orderChange);
-		
-		List<Order> cancelOrderDetailList = new ArrayList<Order>();
-		
-		// 4.2 주문변경 상세 단품 정보 등록 (단품단위)
-		for (int i=0 ; i<cancelOrderRefundList.size() ; i++) {
-			Order cancelOrderRefundPo = cancelOrderRefundList.get(i);
-			cancelOrderRefundPo.setRegNo(userNo);
-			cancelOrderRefundPo.setUpdNo(userNo);
-			
-			// 2020.01.05 추후 무통장입금전 전체 취소시 분기로직 추가 예정
-			if ("Y".equals(allCanYn)) {
-				cancelOrderRefundPo.setOrdDtlStat("G013_98"); // 결제전주문취소 : 공통코드로관리예정
-			} else {
-				cancelOrderRefundPo.setOrdDtlStat("G013_99"); // 결제후주문취소 : 공통코드로관리예정
-			}
-
-			// 4.2.1 취소수량이 존재하면 주문정보 수정 및 주문변경정보 등록
-			if (cancelOrderRefundPo.getOrdCanChgQty() > 0) {
-				// 4.2.3 주문상세단품정보 수정
-				orderChangeDao.updateOrderDetailItem(cancelOrderRefundPo);
-				
-				// 4.2.4 주문상세단품정보 이력 등록
-				orderChangeDao.createOrderDetailItemHst(cancelOrderRefundPo);
-				
-				// 4.3 주문변경 상세 단위로 데이타 등록 (ORD_DTL_NO)
-				Boolean temp = false;
-				
-				if (cancelOrderDetailList.size() > 0) {
-					for (int j=0 ; j<cancelOrderDetailList.size() ; j++) {
-						if (cancelOrderRefundPo.getOrdDtlNo() == cancelOrderDetailList.get(j).getOrdDtlNo()) {
-							temp = true;
-						}
-					}
-				}
-				
-				// 4.4 주문상세단위 데이타 저장
-				if (!temp) {
-					cancelOrderDetailList.add(cancelOrderRefundPo);
-				}
-				
-				// 4.5 상품옵션 재고 원복
-				orderChangeDao.updateOptionQty(cancelOrderRefundPo);
-			}
-		}
 		
-		// 5. 주문상세단위 취소 데이타 처리
-		for (int i=0 ; i<cancelOrderDetailList.size() ; i++) {			
-			Order vo = cancelOrderRefundList.get(i);
-			vo.setRegNo(userNo);
-			vo.setUpdNo(userNo);
-			
-			// 2020.01.05 추후 무통장입금전 전체 취소시 분기로직 추가 예정
-			if ("Y".equals(allCanYn)) {
-				vo.setOrdDtlStat("G013_98"); // 결제전주문취소 : 공통코드로관리예정
-			} else {
-				vo.setOrdDtlStat("G013_99"); // 결제후주문취소 : 공통코드로관리예정
-			}
-			
-			// 5.1 주문변경상세정보 이력 등록
-			orderChangeDao.createOrderDetailHstCnclRtn(vo);
-			
-			// 4.2 주문변경상세정보 수정
-			orderChangeDao.updateOrderDetail(vo);
-			
-			// * 주문상세단위가 아닌 주문상세단품단위로 데이타가 처리되고 있었음
-			// 5.3 주문변경상세정보 등록
-			OrderChange changeDetailPo = new OrderChange();
-			changeDetailPo.setOrdChgSq(orderChange.getOrdChgSq());
-			changeDetailPo.setOrdDtlNo(vo.getOrdDtlNo());
-			changeDetailPo.setChgQty(vo.getOrdCanChgQty());
-			changeDetailPo.setChgStat("G685_21"); // 취소완료 : 공통코드로관리예정
-			changeDetailPo.setRegNo(userNo);
-			changeDetailPo.setUpdNo(userNo);
-			
-			orderChangeDao.createOrderChangeDetail(changeDetailPo);
-		}
-		
-		// To Do List
-		// 취소, 반품 사유에 따른 추가배송비, 반품배송비를 환불금액에서 추가, 제외 할 수 있다.
-		int spanRealCnclRtnAmt 		= Integer.parseInt(mav.get("spanRealCnclRtnAmt").toString());		// 취소금액합계
-		int sumDeliveryFee 			= Integer.parseInt(mav.get("sumDeliveryFee").toString());			// 배송비합계
-		int spanTotDeliveryFee 		= Integer.parseInt(mav.get("spanTotDeliveryFee").toString());		// 추가배송비합계
-		int spanTotRtnDelvFee 		= Integer.parseInt(mav.get("spanTotRtnDelvFee").toString());		// 반품배송비합계
-		int spanRefundAmt			= 0;
-		
-		// 고객사유 : 환불금액계산 = (취소금액 + 배송비) - 추가배송비
-		if ("true".equals(isCustomer)) {
-			spanRefundAmt = (spanRealCnclRtnAmt + sumDeliveryFee) - spanTotDeliveryFee - spanTotRtnDelvFee;
-			//Integer.parseInt(mav.get("spanRefundAmt").toString());
-		}
-		// 회사사유 : 환불금액계산 = (취소금액 + 배송비)
-		else {
-			spanRefundAmt = (spanRealCnclRtnAmt + sumDeliveryFee);
-		}
-		mav.set("spanRefundAmt", spanRefundAmt);
-		
-		// 6. 환불결제 정보 등록
-		Order paymentOrder = new Order();
-		paymentOrder.setOrdNo(ordNo);
-		paymentOrder.setPayAmt(Integer.parseInt(mav.get("spanRefundAmt").toString()) * -1);
-		paymentOrder.setPayStat("G016_99");
-		paymentOrder.setOrdChgSq(orderChange.getOrdChgSq());
-		paymentOrder.setRegNo(userNo);
-		paymentOrder.setUpdNo(userNo);
-		
-		orderChangeDao.createPayment(paymentOrder);
-		
-		// 7. 환불금액 등록
-		Order refundOrder = new Order();
-		refundOrder.setOrdNo(ordNo);
-		refundOrder.setPaySq(paymentOrder.getPaySq());
-		refundOrder.setOrdChgSq(orderChange.getOrdChgSq());
-		refundOrder.setRegNo(userNo);
-		
-		refundOrder.setRefundAmt(Integer.parseInt(mav.get("spanRefundAmt").toString()));
-		refundOrder.setRfCpn1Amt(Integer.parseInt(mav.get("spanCpn1DcAmt").toString()));
-		refundOrder.setRfTmtb1Amt(Integer.parseInt(mav.get("spanTmtb1DcAmt").toString()));
-		refundOrder.setRfTmtb2Amt(Integer.parseInt(mav.get("spanTmtb2DcAmt").toString()));
-		refundOrder.setRfGoodsCpnAmt(Integer.parseInt(mav.get("spanGoodsCpnDcAmt").toString()));
-		refundOrder.setRfCartCpnAmt(Integer.parseInt(mav.get("spanCartCpnDcAmt").toString()));
-		refundOrder.setRfPntAmt(Integer.parseInt(mav.get("spanPntDcAmt").toString()));
-		refundOrder.setRfPrePntAmt(Integer.parseInt(mav.get("spanPrePntDcAmt").toString()));
-		refundOrder.setRfGfcdUseAmt(Integer.parseInt(mav.get("spanGfcdUseAmt").toString()));
-		
-		refundOrder.setRaNo(mav.get("accountNo").toString());
-		refundOrder.setRaNm(mav.get("accountNm").toString());
-		refundOrder.setRaBank(mav.get("bankCd").toString());
-		
-		orderChangeDao.createRefund(refundOrder);
-		
-		// 8. 결제금액이 무료배송금액보다 작으면 배송비 신규 등록
-		for (int i=0 ; i<cancelDelvRefundList.size() ; i++) {
-			Order vo = cancelDelvRefundList.get(i);
-			
-			if (vo.getAddDelvFee() > 0) {
-				Order delvFeeOrder = new Order();
-				
-				delvFeeOrder.setPaySq(paymentOrder.getPaySq());
-				delvFeeOrder.setOrdNo(ordNo);
-				delvFeeOrder.setDelvFeeGb("G018_10");
-				delvFeeOrder.setDelvFeeCd(vo.getDelvFeeCd());
-				delvFeeOrder.setDelvFee(vo.getAddDelvFee());
-				delvFeeOrder.setRealDelvAmt(vo.getDelvFee());
-				delvFeeOrder.setOrdChgSq(orderChange.getOrdChgSq());
-				delvFeeOrder.setSupplyCompCd(vo.getSupplyCompCd());
-				delvFeeOrder.setRegNo(userNo);
-				delvFeeOrder.setUpdNo(userNo);
-				
-				orderChangeDao.createDeliveryFee(delvFeeOrder);
-			}
-		}
-		
-		// To Do List
-		// 9. 포인트원복 (사용포인트, 주문상세단위)
-		
-		// To Do List
-		// 10. 쿠폰원복 (상품쿠폰, 주문상세단위) (전체취소시 장바구니쿠폰, 배송비쿠폰)
-		
-		// To Do List
-		// 11. 상품권원복
-		
-		// 12. 사은품 전체 취소 (전체취소시 적용) 추후 사은품 관련 취소 로직 개발 예정
-		Order freegiftOrder = new Order();
-		freegiftOrder.setOrdNo(ordNo);
-		freegiftOrder.setUpdNo(userNo);
-		orderChangeDao.updateOrdFreegiftDel(freegiftOrder);
-		
-		// To Do List
-		// 13. PG 연동
-		
-		// To Do List
-		// 14. 취소 완료 알림톡 발송 에정
-		
-		//int a = 100/0;
-	}
-	
-	/**
-	 * 주문상세 > 주문취소신청 > 주문반품신청
-	 * @param Order
-	 * @return Order
-	 * @author jsh77b
-	 * @since 2021. 01. 14
-	 */
-	@Transactional("shopTxnManager")
-	public void orderReturn(GagaMap mav) {
-		
-		// 1. 세션회원조회
-		int userNo = TsaSession.getInfo().getUserNo();
-		
-		// 2. 취소요정정보목록
-		List<Order> cancelReqList		 	= (List<Order>) mav.get("cancelReqList");			//주문 취소 신청 목록
-		List<Order> cancelOrderRefundList 	= (List<Order>) mav.get("cancelOrderRefundList");	//주문 환불 금액 목록
-		List<Order> cancelDelvRefundList 	= (List<Order>) mav.get("cancelDelvRefundList");	//주문 환불 배송 금액 목록
-				
-		// 3. 취소신청정보
-		int ordNo 			= Integer.parseInt(mav.getString("ordNo").toString());
-		String chgReason 	= mav.getString("chgReason").toString();
-		String chgMemo 		= mav.getString("chgMemo").toString();
-		String allCanYn		= mav.getString("allCanYn").toString();
-		String isCustomer	= mav.getString("isCustomer").toString();
-		String chgGb		= "G680_30"; //반품요청
-		
-		// 4.1 주문변경 기본정보 등록
-		OrderChange orderChange = new OrderChange();
-		orderChange.setOrdNo(ordNo);
-		orderChange.setChgGb(chgGb);
-		orderChange.setChgReason(chgReason);
-		orderChange.setChgMemo(chgMemo);
-		orderChange.setAddPayCost(0);
-		orderChange.setAddPayAmt(0);
-		orderChange.setRegNo(userNo);
-		orderChange.setUpdNo(userNo);
-		
-		// 4.2 반품추가정보, 반품회수지 정보 등록
-		String chgerNm 			= mav.getString("chgerNm").toString();
-		String chgerPhnno 		= mav.getString("chgerPhnno").toString();
-		String chgerTelno 		= mav.getString("chgerTelno").toString();
-		String chgerEmail 		= mav.getString("chgerEmail").toString();
-		String chgerZipNo 		= mav.getString("chgerZipNo").toString();
-		String chgerBaseAddr 	= mav.getString("chgerBaseAddr").toString();
-		String chgerDtlAddr 	= mav.getString("chgerDtlAddr").toString();
-		
-		orderChange.setChgerNm(chgerNm);
-		orderChange.setChgerPhnno(chgerPhnno);
-		orderChange.setChgerTelno(chgerTelno);
-		orderChange.setChgerEmail(chgerEmail);
-		orderChange.setChgerZipNo(chgerZipNo);
-		orderChange.setChgerBaseAddr(chgerBaseAddr);
-		orderChange.setChgerDtlAddr(chgerDtlAddr);
-		orderChange.setChgerRtnMemo("");
-		
-		orderChangeDao.createOrderChange(orderChange);
-		
-		List<Order> cancelOrderDetailList = new ArrayList<Order>();
-		
-		// 4.2 주문변경 상세 단품 정보 등록 (단품단위)
-		for (int i=0 ; i<cancelOrderRefundList.size() ; i++) {
-			Order cancelOrderRefundPo = cancelOrderRefundList.get(i);
-			cancelOrderRefundPo.setRegNo(userNo);
-			cancelOrderRefundPo.setUpdNo(userNo);
-			
-			// 2020.01.05 추후 무통장입금전 전체 취소시 분기로직 추가 예정
-			if ("Y".equals(allCanYn)) {
-				cancelOrderRefundPo.setOrdDtlStat("G013_98"); // 결제전주문취소 : 공통코드로관리예정
-			} else {
-				cancelOrderRefundPo.setOrdDtlStat("G013_99"); // 결제후주문취소 : 공통코드로관리예정
-			}
-
-			// 4.2.1 취소수량이 존재하면 주문정보 수정 및 주문변경정보 등록
-			if (cancelOrderRefundPo.getOrdCanChgQty() > 0) {
-				// 4.2.3 주문상세단품정보 수정
-				//orderChangeDao.updateOrderDetailItem(cancelOrderRefundPo);
-				
-				// 4.2.4 주문상세단품정보 이력 등록
-				//orderChangeDao.createOrderDetailItemHst(cancelOrderRefundPo);
-				
-				// 4.3 주문변경 상세 단위로 데이타 등록 (ORD_DTL_NO)
-				Boolean temp = false;
-				
-				if (cancelOrderDetailList.size() > 0) {
-					for (int j=0 ; j<cancelOrderDetailList.size() ; j++) {
-						if (cancelOrderRefundPo.getOrdDtlNo() == cancelOrderDetailList.get(j).getOrdDtlNo()) {
-							temp = true;
-						}
-					}
-				}
-				
-				// 4.4 주문상세단위 데이타 저장
-				if (!temp) {
-					cancelOrderDetailList.add(cancelOrderRefundPo);
-				}
-				
-				// 4.5 상품옵션 재고 원복
-				//orderChangeDao.updateOptionQty(cancelOrderRefundPo);
-			}
-		}
-		
-		// 5. 주문상세단위 취소 데이타 처리
-		for (int i=0 ; i<cancelOrderDetailList.size() ; i++) {			
-			Order vo = cancelOrderRefundList.get(i);
-			vo.setRegNo(userNo);
-			vo.setUpdNo(userNo);
-			
-			// 2020.01.05 추후 무통장입금전 전체 취소시 분기로직 추가 예정
-			if ("Y".equals(allCanYn)) {
-				vo.setOrdDtlStat("G013_98"); // 결제전주문취소 : 공통코드로관리예정
-			} else {
-				vo.setOrdDtlStat("G013_99"); // 결제후주문취소 : 공통코드로관리예정
-			}
-			
-			// 5.1 주문변경상세정보 이력 등록
-			orderChangeDao.createOrderDetailHstCnclRtn(vo);
-			
-			// 4.2 주문변경상세정보 수정
-			//orderChangeDao.updateOrderDetail(vo);
-			
-			// * 주문상세단위가 아닌 주문상세단품단위로 데이타가 처리되고 있었음
-			// 5.3 주문변경상세정보 등록
-			OrderChange changeDetailPo = new OrderChange();
-			changeDetailPo.setOrdChgSq(orderChange.getOrdChgSq());
-			changeDetailPo.setOrdDtlNo(vo.getOrdDtlNo());
-			changeDetailPo.setChgQty(vo.getOrdCanChgQty());
-			changeDetailPo.setChgStat("G685_40"); // 반품요청 : 공통코드로관리예정
-			changeDetailPo.setRegNo(userNo);
-			changeDetailPo.setUpdNo(userNo);
-			
-			orderChangeDao.createOrderChangeDetail(changeDetailPo);
-		}
-		
-		// To Do List
-		// 취소, 반품 사유에 따른 추가배송비, 반품배송비를 환불금액에서 추가, 제외 할 수 있다.
-		int spanRealCnclRtnAmt 		= Integer.parseInt(mav.get("spanRealCnclRtnAmt").toString());		// 취소금액합계
-		int sumDeliveryFee 			= Integer.parseInt(mav.get("sumDeliveryFee").toString());			// 배송비합계
-		int spanTotDeliveryFee 		= Integer.parseInt(mav.get("spanTotDeliveryFee").toString());		// 추가배송비합계
-		int spanTotRtnDelvFee 		= Integer.parseInt(mav.get("spanTotRtnDelvFee").toString());		// 반품배송비합계
-		int spanRefundAmt			= 0;
-		
-		// 고객사유 : 환불금액계산 = (취소금액 + 배송비) - 추가배송비
-		if ("true".equals(isCustomer)) {
-			spanRefundAmt = (spanRealCnclRtnAmt + sumDeliveryFee) - spanTotDeliveryFee - spanTotRtnDelvFee;
-			//Integer.parseInt(mav.get("spanRefundAmt").toString());
-		}
-		// 회사사유 : 환불금액계산 = (취소금액 + 배송비)
-		else {
-			spanRefundAmt = (spanRealCnclRtnAmt + sumDeliveryFee);
-		}
-		mav.set("spanRefundAmt", spanRefundAmt);
-		
-		// 6. 환불결제 정보 등록
-		Order paymentOrder = new Order();
-		paymentOrder.setOrdNo(ordNo);
-		paymentOrder.setPayAmt(Integer.parseInt(mav.get("spanRefundAmt").toString()) * -1);
-		paymentOrder.setPayStat("G016_99");
-		paymentOrder.setOrdChgSq(orderChange.getOrdChgSq());
-		paymentOrder.setRegNo(userNo);
-		paymentOrder.setUpdNo(userNo);
-		
-		//orderChangeDao.createPayment(paymentOrder);
-		
-		// 7. 환불금액 등록
-		Order refundOrder = new Order();
-		refundOrder.setOrdNo(ordNo);
-		refundOrder.setPaySq(paymentOrder.getPaySq());
-		refundOrder.setOrdChgSq(orderChange.getOrdChgSq());
-		refundOrder.setRegNo(userNo);
-		
-		refundOrder.setRefundAmt(Integer.parseInt(mav.get("spanRefundAmt").toString()));
-		refundOrder.setRfCpn1Amt(Integer.parseInt(mav.get("spanCpn1DcAmt").toString()));
-		refundOrder.setRfTmtb1Amt(Integer.parseInt(mav.get("spanTmtb1DcAmt").toString()));
-		refundOrder.setRfTmtb2Amt(Integer.parseInt(mav.get("spanTmtb2DcAmt").toString()));
-		refundOrder.setRfGoodsCpnAmt(Integer.parseInt(mav.get("spanGoodsCpnDcAmt").toString()));
-		refundOrder.setRfCartCpnAmt(Integer.parseInt(mav.get("spanCartCpnDcAmt").toString()));
-		refundOrder.setRfPntAmt(Integer.parseInt(mav.get("spanPntDcAmt").toString()));
-		refundOrder.setRfPrePntAmt(Integer.parseInt(mav.get("spanPrePntDcAmt").toString()));
-		refundOrder.setRfGfcdUseAmt(Integer.parseInt(mav.get("spanGfcdUseAmt").toString()));
-		
-		refundOrder.setRaNo(mav.get("accountNo").toString());
-		refundOrder.setRaNm(mav.get("accountNm").toString());
-		refundOrder.setRaBank(mav.get("bankCd").toString());
-		
-		//orderChangeDao.createRefund(refundOrder);
-		
-		// 8. 결제금액이 무료배송금액보다 작으면 배송비 신규 등록
-		for (int i=0 ; i<cancelDelvRefundList.size() ; i++) {
-			Order vo = cancelDelvRefundList.get(i);
-			
-			if (vo.getAddDelvFee() > 0) {
-				Order delvFeeOrder = new Order();
-				
-				delvFeeOrder.setPaySq(paymentOrder.getPaySq());
-				delvFeeOrder.setOrdNo(ordNo);
-				delvFeeOrder.setDelvFeeGb("G018_10");
-				delvFeeOrder.setDelvFeeCd(vo.getDelvFeeCd());
-				delvFeeOrder.setDelvFee(vo.getAddDelvFee());
-				delvFeeOrder.setRealDelvAmt(vo.getDelvFee());
-				delvFeeOrder.setOrdChgSq(orderChange.getOrdChgSq());
-				delvFeeOrder.setSupplyCompCd(vo.getSupplyCompCd());
-				delvFeeOrder.setRegNo(userNo);
-				delvFeeOrder.setUpdNo(userNo);
-				
-				//orderChangeDao.createDeliveryFee(delvFeeOrder);
-			}
-		}
-		
-		// To Do List
-		// 9. 포인트원복 (사용포인트, 주문상세단위)
-		
-		// To Do List
-		// 10. 쿠폰원복 (상품쿠폰, 주문상세단위) (전체취소시 장바구니쿠폰, 배송비쿠폰)
-		
-		// To Do List
-		// 11. 상품권원복
-		
-		// 12. 사은품 전체 취소 (전체취소시 적용) 추후 사은품 관련 취소 로직 개발 예정
-		Order freegiftOrder = new Order();
-		freegiftOrder.setOrdNo(ordNo);
-		freegiftOrder.setUpdNo(userNo);
-		//orderChangeDao.updateOrdFreegiftDel(freegiftOrder);
-		
-		// To Do List
-		// 13. PG 연동
-		
-		// To Do List
-		// 14. 취소 완료 알림톡 발송 에정
-		
-		//int a = 100/0;
-	}
-	
-	
-	
-	
-	
-	
 	/**
 	 * 주문 환불계좌
 	 *

+ 95 - 32
src/main/java/com/style24/admin/biz/web/TsaOrderChangeController.java

@@ -21,6 +21,7 @@ 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.support.env.TscConstants;
 import com.style24.core.support.message.TscMessageByLocale;
 import com.style24.persistence.domain.Order;
@@ -54,8 +55,63 @@ public class TsaOrderChangeController extends TsaBaseController {
 	@Autowired
 	private TsaOrderChangeService orderChangeService;
 	
+	@Autowired
+	private TscOrderChangeService coreOrderChangeService;
+	
+	/**
+	 * 취소신청 (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"));
+		}
+		
+		// * 필요 데이타
+		// 주문번호, 주문상세, 취소신청수량, 신청구분(취소신청, 취소완료), 몰구분(자사, NAPY, EXTMALL)
+
+		// 1. 주문변경정보등록
+		// TB_ORDER_CHANGE (등록)
+		// TB_ORDER_CHANGE_DTL (등록)
+		
+		return super.ok("성공");
+	}
+	
 	/**
-	 * 취소요청 화면
+	 * 취소신청컨펌 (NAPY, 외부몰) (관리자)
+	 * @param OrderChange - 주문취소신청정보
+	 * @return
+	 * @author jsh77b
+	 * @since 2021. 01. 20
+	 */
+	@PostMapping("/cnclReqComplete")
+	@ResponseBody
+	public GagaResponse cnclReqComplete(@RequestBody OrderChange cnclReq) {
+		GagaMap mav = new GagaMap();
+		
+		if (cnclReq== null) {
+			throw new IllegalStateException(message.getMessage("FAIL_1001"));
+		}
+		
+		// * 필요 데이타
+		// 주문번호, 주문상세, 취소신청수량, 신청구분(취소신청, 취소완료), 몰구분(자사, NAPY, EXTMALL)
+		
+		// 1. 취소신청목록으로 변환
+		List<Order> cnclReqList = coreOrderChangeService.getCnclReqList(cnclReq);
+		
+		return super.ok("성공");
+	}
+	
+	/**
+	 * 취소요청 화면 (관리자)
 	 * 
 	 * @param ordNo - 주문번호
 	 * @param cncWait - 취소대기요청 구분
@@ -73,16 +129,16 @@ public class TsaOrderChangeController extends TsaBaseController {
 		
 		// 취소가능 주문상세상탭값 설정
 		String[] ordDtlStatArr = new String[4];
-		ordDtlStatArr[0] = "G013_10";
-		ordDtlStatArr[1] = "G013_20";
-		ordDtlStatArr[2] = "G013_30";
-		ordDtlStatArr[3] = "G013_40";
+		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"		, orderChangeService.getCancelRequestTargetList(order));	// 취소요청대상 목록
-		mav.addObject("orderInfoList"				, orderService.getOrderInfoList(order));					// 주문정보
-		mav.addObject("ordNo"						, ordNo);													// 주문번호
+		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");
 		
@@ -90,7 +146,7 @@ public class TsaOrderChangeController extends TsaBaseController {
 	}
 	
 	/**
-	 * 주문취소신청
+	 * 주문취소완료 (관리자)
 	 * @param Collection<Order> - 주문취소신청목록
 	 * @return
 	 * @author jsh77b
@@ -105,16 +161,20 @@ public class TsaOrderChangeController extends TsaBaseController {
 		if (cancelReq== null) {
 			throw new IllegalStateException(message.getMessage("FAIL_1001"));
 		}
-
-		List<Order> cancelReqList = cancelReq.getCancelReqList(); // 취소요청정보
+		
+		List<Order> cnclReqList = cancelReq.getCancelReqList(); // 취소요청정보
 		
 		// To Do List
-		// @ 결품취소로직 현재는 일반취소로직만존재
-		// @ 주문취소 취소시 상태값 체크
-		// @ 취소, 반품시 배송비 체크 로직 
+		// @ 결품취소로직 추가
+		// @ 주문취소시 상태값 체크
+		// @ 취소, 반품시 배송비 체크 로직 (선결제 로직)
+		
+		// 1. 세션회원조회
+		int userNo = TsaSession.getInfo().getUserNo();
 		
 		// 1. 환불금액정보 계산 & 조회
-		mav = orderChangeService.orderCancelRefundAmt(cancelReqList);
+		// 2021.01.19 취소신청정보를 목록 (주문상세번호, 취소/반품수량) 으로 표현		
+		mav = coreOrderChangeService.cnclRtnRefundAmt(cnclReqList);
 		
 		// 2. 주문변경기본정보 설정
 		mav.set("ordNo"			, cancelReq.getOrdNo());
@@ -129,7 +189,7 @@ public class TsaOrderChangeController extends TsaBaseController {
 		mav.set("isCustomer"	, cancelReq.getIsCustomer());
 		
 		// 3. 주문변경 DB 등록 (주문정보, 배송정보)
-		orderChangeService.orderCancel(mav);
+		coreOrderChangeService.cnclComplete(mav, userNo);
 		
 		return super.ok("성공");
 	}
@@ -152,7 +212,7 @@ public class TsaOrderChangeController extends TsaBaseController {
 		}
 		
 		// 1. 환불금액정보 계산 & 조회
-		mav = orderChangeService.orderCancelRefundAmt(cancelReqList);
+		mav = coreOrderChangeService.cnclRtnRefundAmt(cancelReqList);
 		
 		return mav;
 	}
@@ -174,21 +234,21 @@ public class TsaOrderChangeController extends TsaBaseController {
 		
 		order.setOrdNo(ordNo);
 		
-		// 취소가능 주문상세상탭값 설정
+		// 반품가능 주문상세상탭값 설정
 		String[] ordDtlStatArr = new String[3];
-		ordDtlStatArr[0] = "G013_50";
-		ordDtlStatArr[1] = "G013_55";
-		ordDtlStatArr[2] = "G013_60";
+		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"		, orderChangeService.getCancelRequestTargetList(order));	// 취소요청대상 목록
-		mav.addObject("orderInfoList"				, orderService.getOrderInfoList(order));					// 주문정보
-		mav.addObject("ordNo"						, ordNo);													// 주문번호
+		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.addObject("orderDelvRtnAddrInfo"		, orderService.getDeliveryAddrList(order));						// 배송정보
+		mav.addObject("TelExcNoList"				, rendererService.getAvailCommonCodeList("G095"));				// 전화번호국번
+		mav.addObject("PhnExcNoList"				, rendererService.getAvailCommonCodeList("G096"));				// (휴대전화)번호국번
 
 		mav.setViewName("order/ReturnRequestForm");
 		
@@ -219,8 +279,11 @@ public class TsaOrderChangeController extends TsaBaseController {
 		// @ 주문취소 취소시 상태값 체크
 		// @ 취소, 반품시 배송비 체크 로직 
 		
+		// 1. 세션회원조회
+		int userNo = TsaSession.getInfo().getUserNo();
+		
 		// 1. 환불금액정보 계산 & 조회
-		mav = orderChangeService.orderCancelRefundAmt(cancelReqList);
+		mav = coreOrderChangeService.cnclRtnRefundAmt(cancelReqList);
 		
 		// 2. 주문변경기본정보 설정
 		mav.set("ordNo"			, cancelReq.getOrdNo());
@@ -243,7 +306,7 @@ public class TsaOrderChangeController extends TsaBaseController {
 		mav.set("chgerTelno"	, cancelReq.getChgerTelno());
 		
 		// 4. 주문변경 DB 등록 (주문정보, 배송정보)
-		orderChangeService.orderReturn(mav);
+		coreOrderChangeService.rtnReq(mav, userNo);
 		
 		return super.ok("성공");
 	}
@@ -350,7 +413,7 @@ public class TsaOrderChangeController extends TsaBaseController {
 		ordDtlStatArr[2] = TscConstants.OrderDetailStat.DELIVERY_COMPLETE.value();
 		order.setOrdDtlStatArr(ordDtlStatArr);
 
-		Collection<Order> cancelRequestTargetList = orderChangeService.getCancelRequestTargetList(order);
+		Collection<Order> cancelRequestTargetList = coreOrderChangeService.getCancelRequestTargetList(order);
 
 		Collection<Order> orderInfoList = orderService.getOrderInfoList(order);
 

+ 0 - 392
src/main/java/com/style24/persistence/domain/Order.java

@@ -1,392 +0,0 @@
-package com.style24.persistence.domain;
-
-import com.fasterxml.jackson.annotation.JsonFormat;
-import com.style24.persistence.TscBaseDomain;
-
-import com.style24.persistence.TscPageRequest;
-import lombok.Data;
-
-/**
- * 주문 Domain
- *
- * @author jsh77b
- * @since 2020. 11. 16
- */
-@SuppressWarnings("serial")
-@Data
-public class Order extends TscBaseDomain {
-	
-	// 주문마스터
-	private int ordNo;
-	private String mallGb;
-	private String mallGbNm;
-	private String ordDt;
-	private String payDt;
-	private int custNo;
-	private String ordNm;
-	private String ordTelno;
-	private String siteCd;
-	private String siteCdNm;
-	private int npayOrdNo;
-	private String frontGb;
-	private String frontGbNm;
-	private String extmallNm;
-
-	// 주문상세
-	private int ordDtlNo;
-	private String ordExchGb;
-	private String ordDtlStat;
-	private int orgOrdDtlNo;
-	private String supplyCompCd;
-	private String goodsCd;
-	private String formalGb;
-	private String formalGbNm;
-	private String goodsType;
-	private int listPrice;
-	private int currPrice;
-	private double dcRate;
-	private int optAddPrice;
-	private int ordQty;
-	private int ordAmt;
-	private int cnclRtnQty;
-	private int cnclRtnAmt;
-	private int cpn1CpnSq;
-	private int cpn1DcAmt;
-	private int tmtb1Sq;
-	private int tmtb1DcAmt;
-	private int tmtb2Sq;
-	private int tmtb2DcAmt;
-	private int goodsCpnSq;
-	private int goodsCpnDcAmt;
-	private int cartCpnSq;
-	private int cartCpnDcAmt;
-	
-	private int pntDcAmt;
-	private int prePntDcAmt;
-	private int savePntAmt;
-	
-	private int realOrdAmt;
-	private String venderId;
-	private String extmallId;
-	private String agentOrderId;
-	private String extmallOrderId;
-	private String changeableYn;
-	private String changeFeeFreeYn;
-	private String returnableYn;
-	private String returnFeeFreeYn;
-	
-	private String soldoutYn;
-	private String soldoutMemo;
-	private String soldoutRegNo;
-	private String soldoutRegDt;
-	private int delvAddrSq;
-	private String shotDelvYn;
-	private String giftPackYn;
-	
-	private String delvLocCd;
-	private String delvAssigngDt;
-	private String delvAddignStat;
-	private String dstrbtMemo;
-	private String delvStdt;
-	private String delvEddt;
-	
-	private String shipCompCd;
-	private String invoiceNo;
-	private String invoiceSendYn;
-	private String sellStoreCd;
-	private double sellFeeRate;
-	
-	private String afLinkCd;
-	private String ithrCd;
-	private String contentsLoc;
-	
-	private int planDtlsq;
-	private int socialSq;
-	
-	private String condition;
-	private String[] conditions = null;
-	
-	private String stDate;
-	private String edDate;
-	private String searchDateGb;
-	private String orderNm;
-	private int custId;
-	private String orderPhnno;
-	private String vendorId;
-	private String sizeCd;
-	private String goodsNm;
-	private String payMeans;
-	private String chgStat;
-	private String recipNm;
-	private String chgGb;
-	private String wdInvoiceSendYn;
-	
-	// 상품정보
-	private String imgPath1;
-	private String sysImgNm;
-	private String brandCd;
-	private String optCd1;
-	private String optCd2;
-	private String goodsTypeNm;
-	private String brandEnm;
-	private String itemCd;
-	private String goodsNum;
-	private String supplyGoodsCd;
-	
-	private int totDcAmt;
-	private String dateGbn;
-	private String mallCd;
-	private String search;
-	
-	/* Multi CheckBox 항목*/
-	@JsonFormat(with = JsonFormat.Feature.ACCEPT_SINGLE_VALUE_AS_ARRAY)
-	private String[] multiBrand;
-
-	@JsonFormat(with = JsonFormat.Feature.ACCEPT_SINGLE_VALUE_AS_ARRAY)
-	private String[] multiOrdStat;
-
-	@JsonFormat(with = JsonFormat.Feature.ACCEPT_SINGLE_VALUE_AS_ARRAY)
-	private String[] multiOrdDtlStat;
-	
-	private int sumOrdAmt;
-	private int sumOrdCnclAmt;
-	private int sumRealPayAmt;
-	private int ordNoCnt;
-	private int sumOrdQty;
-	private int sumOrdCnclQty;
-	
-	private String excelFileNm;
-	
-	@JsonFormat(with = JsonFormat.Feature.ACCEPT_SINGLE_VALUE_AS_ARRAY)
-	private int[] ordNoList;
-	
-	private String delYn;
-	private String recipPhnno;
-	private String recipTelno;
-	private String recipZipNo;
-	private String recipBaseAddr;
-	private String recipDtlAddr;
-	private String ordEmail;
-	private String delvMemo;
-	private String delvAddrEditYn;
-	private String exchGbNm;
-	
-	private String escrowYn;
-	private String payMeansNm;
-	private String cardNm;
-	private String vaBank;
-	private String pgTradeNo;
-	private String payStat;
-	private String payStatNm;
-	private int payAmt;
-	private String vaDeadLine;
-	
-	private String delvFeeGb;
-	private String delvFeeGbNm;
-	private int delvFee;
-	private String delvUsacYn;
-	private String delvUsacDt;
-	private int delvFeeSq;
-	
-	private String coundelClsf;
-	private String relGoodsCd;
-	private String questTitle;
-	private String questDt;
-	private String ansDt;
-	private int andNo;
-	
-	private int ordChgSq;
-	private String chgGbNm;
-	private String chgStatNm;
-	private String chgReason;
-	private String chgReasonNm;
-	private String chgMemo;
-	private String chgerNm;
-	private String chgerPhnno;
-	private String chgerZipNo;
-	private String chgerBaseAddr;
-	private String chgerDtlAddr;
-	private String wdInvoiceNo;
-	
-	private String supplyCompNm;
-	private String brandKnm;
-	private String ordDtlStatNm;	
-	private String ordPhnno;
-	
-	private String custGrade;
-	private String custGradeNm;
-	private String custGb;
-	private String custGbNm;
-	private String managedRsn;
-	private String managedRsnNm;
-	
-	private int itemQty;
-	private int itemPrice;
-	private String itemNm;
-	private int gfcdUseAmt;
-	
-	// Pagination
-	private TscPageRequest pageable;
-	private int pageNo = 1;
-	private int pageSize = 50;
-	private int pageUnit = 10;
-	
-	// 주문문의 1:1 응답 칼럼
-	private String counselClsfNm;
-	private String ansNo;
-	private String ansNm;
-	private String regNm;
-	private String updNm;
-	
-	// 주문메모칼럼
-	private int orderMemoSq;
-	private String memo;
-	private String orgFileNm;
-	private String sysFileNm;
-	
-	// 사은품칼럼
-	private int ordFreegiftSq;
-	private int freegiftSq;
-	private String freegiftNm;
-	private int freegiftValSq;
-	private int usePoint;
-	private int seq;
-	private String userNm;
-	
-	// 환불계좌칼럼
-	private String raBank;
-	private String raBankNm;
-	private String raNo;
-	private String raNm;
-	private String defaultYn;
-	
-	// 주문상세변경내역칼럼
-	private String userId;
-	private String updId;
-	private String shipCompNm;
-	private String shipCompId;
-	
-	// 주문쿠폰
-	private int cpnSq;
-	private int cpnId;
-	private int cpnDcAmt;
-	private String cpnType;
-	private String targetCd1;
-	private String targetCd2;
-	private String cpnNm;
-	private String dcWay;
-	private int dcPval;
-	private int dcMval;
-	private int dcAval;
-	
-	// 주문포인트
-	private int pntPrate;
-	private int pntMrate;
-	private int pntAmt;
-	private String occurGb;
-	private String occurGbNm;
-	private String occurDtlDesc;
-	
-	// 주문상품권
-	private String gfcdNm;
-	private String gfcdNo;
-	private int gfcdAmt;
-	private int chgGfcdAmt;
-	private int usGfcdAmt;
-	private int rmGfcdAmt;
-	
-	// 다다익선
-	private int tmtbSq;
-	private String tmtbNm;
-	private int tmtbDcAmt;
-	
-	// 상태변경
-	private String g20;
-	private String g30;
-	private String g40;
-	private String g50;
-	private String g55;
-	private String g60;
-	
-	// 취소요청
-	private String cncWait;
-	private int ordReqChgQty;
-	private int itemReqChgQty;
-	private int itemOrdPrice;
-	private int minOrdAmt;
-	private int orgDelvFee;
-	private String delvFeeCd;
-	private int ordCanChgQty;
-	private String allCanYn;
-	
-	private String addDelvFeeYn;
-	private int addDelvFee;
-	private int ordDtlItemSq;
-	
-	private int paySq;
-	private int refundAmt;
-	private int rfCpn1Amt;
-	private int rfTmtb1Amt;
-	private int rfTmtb2Amt;
-	private int rfGoodsCpnAmt;
-	private int rfCartCpnAmt;
-	private int rfPntAmt;
-	private int rfPrePntAmt;
-	private int rfGfcdUseAmt;
-
-	private int pgCpnAmt;
-	private int npayPntAmt;
-	private String payGb;
-	private String pgGb;
-	private String pgTid;
-	private String cardType;
-	private String cardKind;
-	private String cardBank;
-	private String cardMips;
-	private String cardPcableYn;
-	private String vaNo;
-	private String vaNm;
-	private String vaDeadline;
-	private String telecom;
-
-	private String accountNo;
-	private String accountNm;
-	private String bankCd;
-	private String bankNm;
-
-	private int realDelvAmt;
-	private int delvCpnSq;
-	private int delvCpnDcAmt;
-
-	private int chgQty;
-	private int rtnDelvFee;
-	private int excDelvFee;
-
-	private String[] ordDtlStatArr;
-}
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-

+ 0 - 84
src/main/java/com/style24/persistence/domain/OrderChange.java

@@ -1,84 +0,0 @@
-package com.style24.persistence.domain;
-
-import java.util.List;
-
-import com.style24.persistence.TscBaseDomain;
-
-import lombok.Data;
-
-/**
- * 주문 취소 Domain
- *
- * @author jsh77b
- * @since 2020. 11. 16
- */
-@SuppressWarnings("serial")
-@Data
-public class OrderChange extends TscBaseDomain {
-	
-	List<Order> cancelReqList;
-	private int ordNo;
-	
-	private int ordChgSq;
-	private String chgGb;
-	private String chgReason;
-	private String chgMemo;
-	private String chgerNm;
-	private String chgerPhnno;
-	private String chgerTelno;
-	private String chgerEmail;
-	private String chgerZipNo;
-	private String chgerBaseAddr;
-	private String chgerDtlAddr;
-	private String chgerRtnMemo;
-	private int addPayCost;
-	private int addPayAmt;
-	private String wdInvoiceNo;
-	private String wdInvoiceSendYn;
-	private String wdStdt;
-	private String wdEddt;
-	private String shipCompCd;
-	
-	private int ordDtlNo;
-	private int chgQty;
-	private String chgStat;
-	private String chgStatNm;
-	private String whMemo;
-	
-	private String accountNo;
-	private String accountNm;
-	private String bankCd;
-	private String bankNm;
-
-	private String allCanYn;
-
-	private String isCustomer;
-
-
-}
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-