Ver código fonte

업무별 클래스 분리 작업

jsh77b 5 anos atrás
pai
commit
341f107300
18 arquivos alterados com 1621 adições e 1178 exclusões
  1. 34 0
      style24.admin/src/main/java/com/style24/admin/biz/dao/TsaExchDao.java
  2. 122 0
      style24.admin/src/main/java/com/style24/admin/biz/dao/TsaOrderChangeDao.java
  3. 0 89
      style24.admin/src/main/java/com/style24/admin/biz/dao/TsaOrderDao.java
  4. 33 0
      style24.admin/src/main/java/com/style24/admin/biz/dao/TsaPgDao.java
  5. 35 0
      style24.admin/src/main/java/com/style24/admin/biz/dao/TsaRefundDao.java
  6. 33 0
      style24.admin/src/main/java/com/style24/admin/biz/dao/TsaReturnDao.java
  7. 545 0
      style24.admin/src/main/java/com/style24/admin/biz/service/TsaOrderChangeService.java
  8. 4 505
      style24.admin/src/main/java/com/style24/admin/biz/service/TsaOrderService.java
  9. 48 0
      style24.admin/src/main/java/com/style24/admin/biz/service/TsaPgService.java
  10. 247 0
      style24.admin/src/main/java/com/style24/admin/biz/web/TsaOrderChangeController.java
  11. 1 186
      style24.admin/src/main/java/com/style24/admin/biz/web/TsaOrderController.java
  12. 75 0
      style24.admin/src/main/java/com/style24/admin/biz/web/TsaPgController.java
  13. 4 386
      style24.admin/src/main/java/com/style24/persistence/mybatis/shop/TsaOrder.xml
  14. 406 0
      style24.admin/src/main/java/com/style24/persistence/mybatis/shop/TsaOrderChange.xml
  15. 22 0
      style24.admin/src/main/java/com/style24/persistence/mybatis/shop/TsaPg.xml
  16. 5 5
      style24.admin/src/main/webapp/WEB-INF/views/order/CancelRequestForm.html
  17. 6 6
      style24.admin/src/main/webapp/WEB-INF/views/order/OrderDetailForm.html
  18. 1 1
      style24.front/target/m2e-wtp/web-resources/META-INF/MANIFEST.MF

+ 34 - 0
style24.admin/src/main/java/com/style24/admin/biz/dao/TsaExchDao.java

@@ -0,0 +1,34 @@
+package com.style24.admin.biz.dao;
+
+import java.util.Collection;
+
+import org.apache.ibatis.session.ResultHandler;
+
+import com.style24.core.support.annotation.ShopDs;
+import com.style24.persistence.domain.Order;
+import com.style24.persistence.domain.OrderChange;
+
+/**
+ * 교환관리 Dao
+ *
+ * @author jsh77b
+ * @since 2020. 11. 16
+ */
+@ShopDs
+public interface TsaExchDao {
+	
+	
+}
+
+
+
+
+
+
+
+
+
+
+
+
+

+ 122 - 0
style24.admin/src/main/java/com/style24/admin/biz/dao/TsaOrderChangeDao.java

@@ -0,0 +1,122 @@
+package com.style24.admin.biz.dao;
+
+import java.util.Collection;
+
+import org.apache.ibatis.session.ResultHandler;
+
+import com.style24.core.support.annotation.ShopDs;
+import com.style24.persistence.domain.Order;
+import com.style24.persistence.domain.OrderChange;
+
+/**
+ * 취소관리 Dao
+ *
+ * @author jsh77b
+ * @since 2020. 11. 16
+ */
+@ShopDs
+public interface TsaOrderChangeDao {
+	
+	/**
+	 * 주문상세 > 주문취소대상목록
+	 *
+	 * @param Order - 주문 정보
+	 * @return
+	 * @author jsh77b
+	 * @since 2020. 12. 16
+	 */
+	Collection<Order> getCancelRequestTargetList(Order order);
+	
+	/**
+	 * 주문상세 > 주문취소신청 > 주문변경정보 등록
+	 *
+	 * @param Order - 주문 정보
+	 * @return
+	 * @author jsh77b
+	 * @since 2020. 12. 22
+	 */
+	int createOrderChange(OrderChange orderChange);
+	
+	/**
+	 * 주문상세 > 주문취소신청 > 주문사은품전체취소
+	 *
+	 * @param Order - 주문 정보
+	 * @return
+	 * @author jsh77b
+	 * @since 2020. 12. 22
+	 */
+	int updateOrdFreegiftDel(Order order);
+	
+	/**
+	 * 주문상세 > 주문취소신청 > 주문 환불 정보 등록
+	 *
+	 * @param Order - 주문 정보
+	 * @return
+	 * @author jsh77b
+	 * @since 2020. 12. 22
+	 */
+	int createRefund(Order order);
+	
+	/**
+	 * 주문상세 > 주문취소신청 > 주문 환불 금액 정보 등록
+	 *
+	 * @param Order - 주문 정보
+	 * @return
+	 * @author jsh77b
+	 * @since 2020. 12. 22
+	 */
+	int createPayment(Order order);
+	
+	/**
+	 * 주문상세 > 주문취소신청 > 주문 추가 배송 금액 등록
+	 *
+	 * @param Order - 주문 정보
+	 * @return
+	 * @author jsh77b
+	 * @since 2021. 01. 06
+	 */
+	int createDeliveryFee(Order order);
+	
+	/**
+	 * 고객환불계좌 정보 조회
+	 *
+	 * @param order - 주문 정보
+	 * @return
+	 * @author jsh77b
+	 * @since 2021. 01. 04
+	 */
+	Collection<Order> getRefundAccount(Order order);
+	
+	/**
+	 * 환불계좌 존재 유무 체크
+	 *
+	 * @param order
+	 * @return int
+	 * @author jsh77b
+	 * @since 2021. 01. 05
+	 */
+	int getRefundAccountCheck(Order order);
+	
+	/**
+	 * 환불계좌 저정
+	 *
+	 * @param order
+	 * @return int
+	 * @author jsh77b
+	 * @since 2021. 01. 05
+	 */
+	int saveRefundAccount(Order order);
+}
+
+
+
+
+
+
+
+
+
+
+
+
+

+ 0 - 89
style24.admin/src/main/java/com/style24/admin/biz/dao/TsaOrderDao.java

@@ -330,26 +330,6 @@ public interface TsaOrderDao {
 	 */
 	int changedOrdDtlStat(Order order);
 
-	/**
-	 * 주문상세 > 주문취소대상목록
-	 *
-	 * @param Order - 주문 정보
-	 * @return
-	 * @author jsh77b
-	 * @since 2020. 12. 16
-	 */
-	Collection<Order> getCancelRequestTargetList(Order order);
-	
-	/**
-	 * 주문상세 > 주문취소신청 > 주문변경정보 등록
-	 *
-	 * @param Order - 주문 정보
-	 * @return
-	 * @author jsh77b
-	 * @since 2020. 12. 22
-	 */
-	int createOrderChange(OrderChange orderChange);
-	
 	/**
 	 * 주문상세 > 주문취소신청 > 주문변경정보 상세 등록
 	 *
@@ -410,75 +390,6 @@ public interface TsaOrderDao {
 	 */
 	int updateOrderDetail(Order order);
 	
-	/**
-	 * 주문상세 > 주문취소신청 > 주문 환불 정보 등록
-	 *
-	 * @param Order - 주문 정보
-	 * @return
-	 * @author jsh77b
-	 * @since 2020. 12. 22
-	 */
-	int createRefund(Order order);
-	
-	/**
-	 * 주문상세 > 주문취소신청 > 주문 환불 금액 정보 등록
-	 *
-	 * @param Order - 주문 정보
-	 * @return
-	 * @author jsh77b
-	 * @since 2020. 12. 22
-	 */
-	int createPayment(Order order);
-	
-	/**
-	 * 주문상세 > 주문취소신청 > 주문 추가 배송 금액 등록
-	 *
-	 * @param Order - 주문 정보
-	 * @return
-	 * @author jsh77b
-	 * @since 2021. 01. 06
-	 */
-	int createDeliveryFee(Order order);
-	
-	/**
-	 * 고객환불계좌 정보 조회
-	 *
-	 * @param order - 주문 정보
-	 * @return
-	 * @author jsh77b
-	 * @since 2021. 01. 04
-	 */
-	Collection<Order> getRefundAccount(Order order);
-	
-	/**
-	 * 환불계좌 존재 유무 체크
-	 *
-	 * @param order
-	 * @return int
-	 * @author jsh77b
-	 * @since 2021. 01. 05
-	 */
-	int getRefundAccountCheck(Order order);
-	
-	/**
-	 * 환불계좌 저정
-	 *
-	 * @param order
-	 * @return int
-	 * @author jsh77b
-	 * @since 2021. 01. 05
-	 */
-	int saveRefundAccount(Order order);
-	
-	/**
-	 * 주문상세 > 주문취소신청 > 주문사은품전체취소
-	 *
-	 * @param Order - 주문 정보
-	 * @return
-	 * @author jsh77b
-	 * @since 2020. 12. 22
-	 */
-	int updateOrdFreegiftDel(Order order);
 	
 	
 }

+ 33 - 0
style24.admin/src/main/java/com/style24/admin/biz/dao/TsaPgDao.java

@@ -0,0 +1,33 @@
+package com.style24.admin.biz.dao;
+
+import java.util.Collection;
+
+import org.apache.ibatis.session.ResultHandler;
+
+import com.style24.core.support.annotation.ShopDs;
+import com.style24.persistence.domain.Order;
+import com.style24.persistence.domain.OrderChange;
+
+/**
+ * 주문관리 Dao
+ *
+ * @author jsh77b
+ * @since 2020. 11. 16
+ */
+@ShopDs
+public interface TsaPgDao {
+
+}
+
+
+
+
+
+
+
+
+
+
+
+
+

+ 35 - 0
style24.admin/src/main/java/com/style24/admin/biz/dao/TsaRefundDao.java

@@ -0,0 +1,35 @@
+package com.style24.admin.biz.dao;
+
+import java.util.Collection;
+
+import org.apache.ibatis.session.ResultHandler;
+
+import com.style24.core.support.annotation.ShopDs;
+import com.style24.persistence.domain.Order;
+import com.style24.persistence.domain.OrderChange;
+
+/**
+ * 주문관리 Dao
+ *
+ * @author jsh77b
+ * @since 2020. 11. 16
+ */
+@ShopDs
+public interface TsaRefundDao {
+	
+	
+	
+}
+
+
+
+
+
+
+
+
+
+
+
+
+

+ 33 - 0
style24.admin/src/main/java/com/style24/admin/biz/dao/TsaReturnDao.java

@@ -0,0 +1,33 @@
+package com.style24.admin.biz.dao;
+
+import java.util.Collection;
+
+import org.apache.ibatis.session.ResultHandler;
+
+import com.style24.core.support.annotation.ShopDs;
+import com.style24.persistence.domain.Order;
+import com.style24.persistence.domain.OrderChange;
+
+/**
+ * 반품관리 Dao
+ *
+ * @author jsh77b
+ * @since 2020. 11. 16
+ */
+@ShopDs
+public interface TsaReturnDao {
+	
+}
+
+
+
+
+
+
+
+
+
+
+
+
+

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

@@ -0,0 +1,545 @@
+package com.style24.admin.biz.service;
+
+import java.util.ArrayList;
+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.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+import com.fasterxml.jackson.databind.ObjectMapper;
+import com.gagaframework.web.parameter.GagaMap;
+import com.style24.admin.biz.dao.TsaOrderChangeDao;
+import com.style24.admin.biz.dao.TsaOrderDao;
+import com.style24.admin.biz.dao.TsaRefundDao;
+import com.style24.admin.support.security.session.TsaSession;
+import com.style24.core.support.message.TscMessageByLocale;
+import com.style24.persistence.domain.Order;
+import com.style24.persistence.domain.OrderChange;
+
+import lombok.extern.slf4j.Slf4j;
+
+/**
+ * 취소관리 Service
+ *
+ * @author jsh77b
+ * @since 2020. 11. 16
+ */
+@Service
+@Slf4j
+public class TsaOrderChangeService {
+
+	@Autowired
+	private TscMessageByLocale message;
+
+	@Autowired
+	private Environment env;
+
+	@Autowired
+	private TsaOrderDao orderDao;
+	
+	@Autowired
+	private TsaOrderChangeDao orderChangeDao;
+
+	@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("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 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);
+		
+		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 주문상세단품정보 수정
+				orderDao.updateOrderDetailItem(cancelOrderRefundPo);
+				
+				// 4.2.4 주문상세단품정보 이력 등록
+				orderDao.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 상품옵션 재고 원복
+				orderDao.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 주문변경상세정보 이력 등록
+			orderDao.createOrderDetailHstCnclRtn(vo);
+			
+			// 4.2 주문변경상세정보 수정
+			orderDao.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);
+			
+			orderDao.createOrderChangeDetail(changeDetailPo);
+		}
+		
+		// 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);
+			}
+		}
+
+		// 9. 포인트원복 (사용포인트, 주문상세단위)
+		
+		// 10. 쿠폰원복 (상품쿠폰, 주문상세단위) (전체취소시 장바구니쿠폰, 배송비쿠폰)
+		
+		// 11. 사은품 전체 취소 (전체취소시 적용)
+		Order freegiftOrder = new Order();
+		freegiftOrder.setOrdNo(ordNo);
+		freegiftOrder.setUpdNo(userNo);
+		orderChangeDao.updateOrdFreegiftDel(freegiftOrder);
+		
+		// 13. PG 연동
+		
+		//int a = 100/0;
+	}
+	
+	/**
+	 * 주문 환불계좌
+	 *
+	 * @param order - 주문정보
+	 * @return Order
+	 * @author jsh77b
+	 * @since 2021. 01. 04.
+	 */
+	public Collection<Order> getRefundAccount(Order order) {
+		return orderChangeDao.getRefundAccount(order);
+	}
+	
+	/**
+	 * 환불계좌 저장
+	 *
+	 * @param order - 주문정보
+	 * @return TsaOrder
+	 * @author jsh77b
+	 * @since 2021. 01. 05.
+	 */
+	public int saveRefundAccount(Order order) {
+		
+		// 환불계좌 유무 체크 후 등록
+		if (orderChangeDao.getRefundAccountCheck(order) < 1) {
+			orderChangeDao.saveRefundAccount(order);
+		}
+		
+		return 1;
+	}
+	
+}

+ 4 - 505
style24.admin/src/main/java/com/style24/admin/biz/service/TsaOrderService.java

@@ -1,8 +1,6 @@
 package com.style24.admin.biz.service;
 
-import java.util.ArrayList;
 import java.util.Collection;
-import java.util.List;
 
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -13,13 +11,10 @@ import org.springframework.transaction.annotation.Transactional;
 import com.fasterxml.jackson.databind.ObjectMapper;
 import com.gagaframework.excel.env.GagaExcelConstants;
 import com.gagaframework.excel.xssf.GagaExcelResultHandler;
-import com.gagaframework.web.parameter.GagaMap;
 import com.style24.admin.biz.dao.TsaOrderDao;
 import com.style24.admin.support.security.session.TsaSession;
-import com.style24.admin.support.util.TsitUtil;
 import com.style24.core.support.message.TscMessageByLocale;
 import com.style24.persistence.domain.Order;
-import com.style24.persistence.domain.OrderChange;
 
 import lombok.extern.slf4j.Slf4j;
 
@@ -92,7 +87,7 @@ public class TsaOrderService {
 	}
 	
 	/**
-	 * 주문상세 > 사은품목록
+	 * 사은품목록
 	 *
 	 * @param order - 주문 정보
 	 * @return Collection<Order>
@@ -116,7 +111,7 @@ public class TsaOrderService {
 	}
 	
 	/**
-	 * 결제내역 > 결제정보
+	 * 결제정보
 	 *
 	 * @param order - 주문 정보
 	 * @return Collection<Order>
@@ -128,7 +123,7 @@ public class TsaOrderService {
 	}
 	
 	/**
-	 * 배송비 정보
+	 * 배송비정보
 	 *
 	 * @param order - 주문 정보
 	 * @return Collection<Order>
@@ -176,7 +171,7 @@ public class TsaOrderService {
 	}
 	
 	/**
-	 * 변경내역 > 주문요청 관리자 메모 목록 조회
+	 * 주문요청 관리자 메모 목록 조회
 	 *
 	 * @param order - 주문 정보
 	 * @return Collection<Order>
@@ -544,500 +539,4 @@ public class TsaOrderService {
 		}
 	}
 	
-	/**
-	 * 주문상세 > 주문취소대상목록
-	 * @param Order
-	 * @return Order
-	 * @author jsh77b
-	 * @since 2020. 12. 16
-	 */
-	public Collection<Order> getCancelRequestTargetList(Order order) {
-		return orderDao.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("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 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);
-		
-		orderDao.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 주문상세단품정보 수정
-				orderDao.updateOrderDetailItem(cancelOrderRefundPo);
-				
-				// 4.2.4 주문상세단품정보 이력 등록
-				orderDao.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 상품옵션 재고 원복
-				orderDao.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 주문변경상세정보 이력 등록
-			orderDao.createOrderDetailHstCnclRtn(vo);
-			
-			// 4.2 주문변경상세정보 수정
-			orderDao.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);
-			
-			orderDao.createOrderChangeDetail(changeDetailPo);
-		}
-		
-		// 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);
-		
-		orderDao.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());
-		
-		orderDao.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);
-				
-				orderDao.createDeliveryFee(delvFeeOrder);
-			}
-		}
-
-		// 9. 포인트원복 (사용포인트, 주문상세단위)
-		
-		// 10. 쿠폰원복 (상품쿠폰, 주문상세단위) (전체취소시 장바구니쿠폰, 배송비쿠폰)
-		
-		// 11. 사은품 전체 취소 (전체취소시 적용)
-		Order freegiftOrder = new Order();
-		freegiftOrder.setOrdNo(ordNo);
-		freegiftOrder.setUpdNo(userNo);
-		orderDao.updateOrdFreegiftDel(freegiftOrder);
-		
-		// 13. PG 연동
-		
-		//int a = 100/0;
-	}
-	
-	/**
-	 * 주문 환불계좌
-	 *
-	 * @param order - 주문정보
-	 * @return Order
-	 * @author jsh77b
-	 * @since 2021. 01. 04.
-	 */
-	public Collection<Order> getRefundAccount(Order order) {
-		return orderDao.getRefundAccount(order);
-	}
-	
-	/**
-	 * 환불계좌 저장
-	 *
-	 * @param order - 주문정보
-	 * @return TsaOrder
-	 * @author jsh77b
-	 * @since 2021. 01. 05.
-	 */
-	public int saveRefundAccount(Order order) {
-		
-		// 환불계좌 유무 체크 후 등록
-		if (orderDao.getRefundAccountCheck(order) < 1) {
-			orderDao.saveRefundAccount(order);
-		}
-		
-		return 1;
-	}
-	
 }

+ 48 - 0
style24.admin/src/main/java/com/style24/admin/biz/service/TsaPgService.java

@@ -0,0 +1,48 @@
+package com.style24.admin.biz.service;
+
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.List;
+
+import org.apache.commons.lang3.StringUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.core.env.Environment;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+import com.fasterxml.jackson.databind.ObjectMapper;
+import com.gagaframework.excel.env.GagaExcelConstants;
+import com.gagaframework.excel.xssf.GagaExcelResultHandler;
+import com.gagaframework.web.parameter.GagaMap;
+import com.style24.admin.biz.dao.TsaOrderDao;
+import com.style24.admin.support.security.session.TsaSession;
+import com.style24.admin.support.util.TsitUtil;
+import com.style24.core.support.message.TscMessageByLocale;
+import com.style24.persistence.domain.Order;
+import com.style24.persistence.domain.OrderChange;
+
+import lombok.extern.slf4j.Slf4j;
+
+/**
+ * PG 연동 Service
+ *
+ * @author jsh77b
+ * @since 2020. 11. 16
+ */
+@Service
+@Slf4j
+public class TsaPgService {
+
+	@Autowired
+	private TscMessageByLocale message;
+
+	@Autowired
+	private Environment env;
+
+	@Autowired
+	private TsaOrderDao orderDao;
+
+	@Autowired
+	private ObjectMapper mapper;
+	
+}

+ 247 - 0
style24.admin/src/main/java/com/style24/admin/biz/web/TsaOrderChangeController.java

@@ -0,0 +1,247 @@
+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.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.support.message.TscMessageByLocale;
+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 Environment env;
+	
+	@Autowired
+	private TsaRendererService rendererService;
+	
+	@Autowired
+	private TsaOrderService orderService;
+	
+	@Autowired
+	private TsaOrderChangeService orderChangeService;
+	
+	/**
+	 * 취소요청 화면
+	 * 
+	 * @param ordNo - 주문번호
+	 * @param cncWait - 취소대기요청 구분
+	 * @return ModelAndView
+	 * @author jsh77b
+	 * @since 2020. 12. 22
+	 */
+	@GetMapping("/cancel/request/form")
+	public ModelAndView cancelRequestFrom(@RequestParam(value = "ordNo") int ordNo, @RequestParam(value = "cncWait") String cncWait) {
+
+		Order order = new Order();
+		ModelAndView mav = new ModelAndView();
+		
+		order.setOrdNo(ordNo);
+		order.setCncWait(cncWait);
+		
+		//NicePay nicePay = new NicePay();
+		//nicePay.setMerchantId(env.getProperty("pg.nicepay.merchantId"));
+		//nicePay.setMerchantKey(env.getProperty("pg.nicepay.merchantKey"));
+		
+		Collection<Order> cancelRequestTargetList = orderChangeService.getCancelRequestTargetList(order);
+
+		Collection<Order> orderInfoList = orderService.getOrderInfoList(order);
+
+		//mav.addObject("nicePay", nicePay);
+		mav.addObject("chgReasonList"				, rendererService.getAvailCommonCodeList("G686"));	// 취소사유
+		mav.addObject("cancelRequestTargetList"		, cancelRequestTargetList);							// 취소요청대상 목록
+		mav.addObject("orderInfoList"				, orderInfoList);									// 주문정보
+		mav.addObject("ordNo"						, ordNo);
+		mav.addObject("cncWait"						, cncWait);
+
+		mav.setViewName("order/CancelRequestForm");
+		
+		return mav;
+	}
+	
+	/**
+	 * 주문취소신청
+	 * @param Collection<Order> - 주문취소신청목록
+	 * @return
+	 * @author jsh77b
+	 * @since 2020. 12. 29
+	 */
+	@PostMapping("/cancel")
+	@ResponseBody
+	public GagaResponse orderCancel(@RequestBody OrderChange cancelReq) {
+		
+		GagaMap mav = new GagaMap();
+		
+		if (cancelReq== null) {
+			throw new IllegalStateException(message.getMessage("FAIL_1001"));
+		}
+
+		List<Order> cancelReqList = cancelReq.getCancelReqList(); // 취소요청정보
+		
+		// 1. 환불금액정보 계산 & 조회
+		mav = orderChangeService.orderCancelRefundAmt(cancelReqList);
+		
+		// 2. 주문변경기본정보 설정
+		mav.set("ordNo"			, cancelReq.getOrdNo());
+		mav.set("chgReason"		, cancelReq.getChgReason());
+		mav.set("chgMemo"		, cancelReq.getChgMemo());
+		
+		mav.set("accountNo"		, cancelReq.getAccountNo());
+		mav.set("accountNm"		, cancelReq.getAccountNm());
+		mav.set("bankCd"		, cancelReq.getBankCd());
+		
+		mav.set("allCanYn"		, cancelReq.getAllCanYn());
+		
+		// 3. 주문변경 DB 등록 (주문정보, 배송정보)
+		orderChangeService.orderCancel(mav);
+		
+		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 = orderChangeService.orderCancelRefundAmt(cancelReqList);
+		
+		return mav;
+	}
+	
+	/**
+	 * 환불계좌등록 화면
+	 *
+	 * @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);
+		
+		/*
+		NicePay nicePay = new NicePay();
+		nicePay.setInAccount(order.getRaNo());
+		nicePay.setInBankCode(order.getRaBnk());
+		nicePay.setRaNm(order.getRaNm());
+		String accountCheck = nicepay.checkBankAccount(nicePay);
+		*/
+		
+		String accountCheck = "Y";
+
+		if ("Y".equals(accountCheck)) {
+			orderChangeService.saveRefundAccount(order);
+		} else {
+			throw new IllegalStateException("환불계좌정보가 맞지 않습니다!");
+		}
+
+		return super.ok(message.getMessage("SUCC_0001"));
+	}
+	
+	/**
+	 * 환불계좌정보
+	 *
+	 * @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;
+	}
+}
+
+
+
+
+
+
+
+
+
+

+ 1 - 186
style24.admin/src/main/java/com/style24/admin/biz/web/TsaOrderController.java

@@ -62,9 +62,6 @@ public class TsaOrderController extends TsaBaseController {
 	@Autowired
 	private TsaOrderService orderService;
 	
-	//@Autowired
-	//private TsaMessageByLocale message;
-	
 	/**
 	 * 주문목록조회
 	 *
@@ -205,7 +202,7 @@ public class TsaOrderController extends TsaBaseController {
 		mav.addObject("orderDeliveryFeeInfo"	, orderService.getDeliveryFeeList(order));				// 배송비정보
 		
 		// 2. 클레임정보
-		mav.addObject("orderChangeInfo"			, orderService.getOrderChangeList(order));				// 취소/반품/교환요청 정보
+		mav.addObject("orderChangeInfo"			, orderService.getOrderChangeList(order));				// 취소/반품/교환 요청 정보
 		mav.addObject("orderRefundInfo"			, orderService.getOrderRefundInfo(order));				// 환불정보
 		
 		// 3. 주문메모정보
@@ -604,188 +601,6 @@ public class TsaOrderController extends TsaBaseController {
 		
 		return super.ok("성공");
 	}
-	
-	/**
-	 * 취소요청 화면
-	 * 
-	 * @param ordNo - 주문번호
-	 * @param cncWait - 취소대기요청 구분
-	 * @return ModelAndView
-	 * @author jsh77b
-	 * @since 2020. 12. 22
-	 */
-	@GetMapping("/cancel/request/form")
-	public ModelAndView cancelRequestFrom(@RequestParam(value = "ordNo") int ordNo, @RequestParam(value = "cncWait") String cncWait) {
-
-		Order order = new Order();
-		ModelAndView mav = new ModelAndView();
-		
-		order.setOrdNo(ordNo);
-		order.setCncWait(cncWait);
-		
-		//NicePay nicePay = new NicePay();
-		//nicePay.setMerchantId(env.getProperty("pg.nicepay.merchantId"));
-		//nicePay.setMerchantKey(env.getProperty("pg.nicepay.merchantKey"));
-		
-		Collection<Order> cancelRequestTargetList = orderService.getCancelRequestTargetList(order);
-
-		Collection<Order> orderInfoList = orderService.getOrderInfoList(order);
-
-		//mav.addObject("nicePay", nicePay);
-		mav.addObject("chgReasonList"				, rendererService.getAvailCommonCodeList("G686"));	// 취소사유
-		mav.addObject("cancelRequestTargetList"		, cancelRequestTargetList);							// 취소요청대상 목록
-		mav.addObject("orderInfoList"				, orderInfoList);										// 주문정보
-		mav.addObject("ordNo"						, ordNo);
-		mav.addObject("cncWait"						, cncWait);
-
-		mav.setViewName("order/CancelRequestForm");
-		
-		return mav;
-	}
-	
-	/**
-	 * 주문취소신청환불금액 계산
-	 * @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 = orderService.orderCancelRefundAmt(cancelReqList);
-		
-		return mav;
-	}
-	
-	/**
-	 * 주문취소신청
-	 * @param Collection<Order> - 주문취소신청목록
-	 * @return
-	 * @author jsh77b
-	 * @since 2020. 12. 29
-	 */
-	@PostMapping("/cancel")
-	@ResponseBody
-	public GagaResponse orderCancel(@RequestBody OrderChange cancelReq) {
-		
-		GagaMap mav = new GagaMap();
-		
-		if (cancelReq== null) {
-			throw new IllegalStateException(message.getMessage("FAIL_1001"));
-		}
-
-		List<Order> cancelReqList = cancelReq.getCancelReqList(); // 취소요청정보
-		
-		// 1. 환불금액정보 계산 & 조회
-		mav = orderService.orderCancelRefundAmt(cancelReqList);
-		
-		// 2. 주문변경기본정보 설정
-		mav.set("ordNo"			, cancelReq.getOrdNo());
-		mav.set("chgReason"		, cancelReq.getChgReason());
-		mav.set("chgMemo"		, cancelReq.getChgMemo());
-		
-		mav.set("accountNo"		, cancelReq.getAccountNo());
-		mav.set("accountNm"		, cancelReq.getAccountNm());
-		mav.set("bankCd"		, cancelReq.getBankCd());
-		
-		mav.set("allCanYn"		, cancelReq.getAllCanYn());
-		
-		// 3. 주문변경 DB 등록 (주문정보, 배송정보)
-		orderService.orderCancel(mav);
-		
-		return super.ok("성공");
-	}
-	
-	/**
-	 * 환불계좌등록 화면
-	 *
-	 * @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 	= orderService.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);
-		
-		/*
-		NicePay nicePay = new NicePay();
-		nicePay.setInAccount(order.getRaNo());
-		nicePay.setInBankCode(order.getRaBnk());
-		nicePay.setRaNm(order.getRaNm());
-		String accountCheck = nicepay.checkBankAccount(nicePay);
-		*/
-		
-		String accountCheck = "Y";
-
-		if ("Y".equals(accountCheck)) {
-			orderService.saveRefundAccount(order);
-		} else {
-			throw new IllegalStateException("환불계좌정보가 맞지 않습니다!");
-		}
-
-		return super.ok(message.getMessage("SUCC_0001"));
-	}
-	
-	/**
-	 * 환불계좌정보
-	 *
-	 * @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 = orderService.getRefundAccount(order);
-
-		return orderRfAccountInfo;
-	}
 }
 
 

+ 75 - 0
style24.admin/src/main/java/com/style24/admin/biz/web/TsaPgController.java

@@ -0,0 +1,75 @@
+package com.style24.admin.biz.web;
+
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.List;
+
+import javax.servlet.http.HttpServletRequest;
+
+import org.apache.commons.collections4.CollectionUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.core.env.Environment;
+import org.springframework.core.io.InputStreamResource;
+import org.springframework.http.ResponseEntity;
+import org.springframework.stereotype.Controller;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PathVariable;
+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.fasterxml.jackson.databind.ObjectMapper;
+import com.gagaframework.excel.GagaExcelUtil;
+import com.gagaframework.web.parameter.GagaMap;
+import com.gagaframework.web.rest.server.GagaResponse;
+import com.gagaframework.web.util.GagaDateUtil;
+import com.gagaframework.web.util.GagaFileUtil;
+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.support.message.TscMessageByLocale;
+import com.style24.persistence.TsaPageRequest;
+import com.style24.persistence.domain.Order;
+import com.style24.persistence.domain.OrderChange;
+
+import lombok.extern.slf4j.Slf4j;
+
+/**
+ * PG관리 Controller
+ *
+ * @author jsh77b
+ * @since 2020. 11. 16
+ */
+@Controller
+@RequestMapping("/pg")
+@Slf4j
+public class TsaPgController extends TsaBaseController {
+	
+	@Autowired
+	private TscMessageByLocale message;
+	
+	@Autowired
+	private Environment env;
+	
+	@Autowired
+	private TsaRendererService rendererService;
+	
+	@Autowired
+	private TsaOrderService orderService;
+	
+}
+
+
+
+
+
+
+
+
+
+

+ 4 - 386
style24.admin/src/main/java/com/style24/persistence/mybatis/shop/TsaOrder.xml

@@ -745,7 +745,7 @@
 	</select>
 	
 	<!-- 주문상세 > 관리자메모 -->
-	<select id="getOrderTsainMemoList" parameterType="Order" resultType="Order">
+	<select id="getOrderMemoList" parameterType="Order" resultType="Order">
 		/* order.getOrderTsainMemoList */
 		SELECT ORDER_MEMO_SQ 
 		     , OM.ORD_NO
@@ -1497,147 +1497,9 @@
 		AND    ORD_DTL_NO = #{ordDtlNo}
 	</update>
 	
-	<!-- 주문상세 > 주문취소대상목록 -->
-	<select id="getCancelRequestTargetList" parameterType="Order" resultType="Order">
-		/* order.getCancelRequestTargetList */
-		SELECT OD.ORD_NO
-		     , OD.ORD_DTL_NO
-		     , OD.ORD_DTL_STAT
-		     , FN_GET_CODE_NM('G013', OD.ORD_DTL_STAT) AS ORD_DTL_STAT_NM
-		     , CASE WHEN OD.ORD_DTL_STAT IN ('G013_20', 'G013_30', 'G013_40')
-		            THEN 'Y'
-		            ELSE 'N'
-		             END ALL_CAN_YN
-		     , G1.GOODS_CD
-		     , G1.GOODS_NM
-		     , G1.GOODS_TYPE
-		     , FN_GET_CODE_NM('G056', G1.GOODS_TYPE) AS GOODS_TYPE_NM
-		     , ODI.ORD_DTL_ITEM_SQ
-		     , G2.GOODS_CD AS ITEM_CD
-		     , G2.GOODS_NM AS ITEM_NM
-		     , ODI.OPT_CD
-		     , ODI.OPT_CD1
-		     , ODI.OPT_CD2
-		     , ODI.ITEM_QTY
-		     , OD.ORD_QTY
-             , OD.CNCL_RTN_QTY 
-		     , CASE WHEN OCD.ORD_REQ_CHG_QTY IS NULL
-		            THEN 0
-		            ELSE OCD.ORD_REQ_CHG_QTY * ODI.ITEM_QTY
-		            END  ORD_REQ_CHG_QTY
-		     , ODI.ITEM_PRICE
-		     , ODI.OPT_ADD_PRICE
-		     , ODI.ORD_AMT
-		     , ODI.CNCL_RTN_AMT
-		     , ODI.CPN1_DC_AMT 
-		     , ODI.TMTB1_DC_AMT 
-		     , ODI.TMTB2_DC_AMT 
-		     , ODI.GOODS_CPN_DC_AMT 
-		     , ODI.CART_CPN_DC_AMT
-		     , ODI.PNT_DC_AMT 
-		     , ODI.PRE_PNT_DC_AMT 
-		     , ODI.GFCD_USE_AMT
-		     , ODI.REAL_ORD_AMT
-		     , DF.DELV_FEE
-		     , DF.SUPPLY_COMP_CD
-		     , DF.DELV_FEE_CD 
-		     , DFP.MIN_ORD_AMT 
-		     , DFP.DELV_FEE AS ORG_DELV_FEE
-		     , DFP.RTN_DELV_FEE
-		     , DFP.DELV_FEE + DFP.RTN_DELV_FEE AS EXC_DELV_FEE
-		     , 0			AS ORD_CAN_CHG_QTY
-		FROM   TB_ORDER_DETAIL OD
-		INNER  JOIN TB_GOODS G1
-		ON     OD.GOODS_CD = G1.GOODS_CD
-		INNER  JOIN TB_ORDER_DETAIL_ITEM ODI
-		ON     OD.ORD_NO = ODI.ORD_NO
-		AND    OD.ORD_DTL_NO = ODI.ORD_DTL_NO
-		INNER  JOIN TB_GOODS G2
-		ON     ODI.ITEM_CD = G2.GOODS_CD
-		LEFT   OUTER JOIN (
-			SELECT OD.ORD_DTL_NO
-			     , SUM(OCD.CHG_QTY) AS ORD_REQ_CHG_QTY
-			FROM   TB_ORDER_CHANGE_DETAIL OCD
-			INNER  JOIN TB_ORDER_DETAIL OD
-			ON     OCD.ORD_DTL_NO = OD.ORD_DTL_NO
-			WHERE  1=1
-			AND    OD.ORD_NO = #{ordNo}
-			AND    OCD.CHG_STAT IN (
-				'G685_20', 'G685_30', 'G685_40'
-			)
-			GROUP  BY OCD.ORD_DTL_NO
-		) OCD
-		ON     OD.ORD_DTL_NO = OCD.ORD_DTL_NO
-		INNER  JOIN (
-			SELECT X.SUPPLY_COMP_CD
-			     , X.DELV_FEE_CD
-			     , SUM(X.DELV_FEE) AS DELV_FEE
-			FROM   TB_DELIVERY_FEE X
-			WHERE  1=1
-			AND    X.ORD_NO = #{ordNo}
-			AND    X.DELV_FEE_GB = 'G018_10'
-			GROUP  BY X.SUPPLY_COMP_CD
-			        , X.DELV_FEE_CD
-		) DF
-		ON     OD.SUPPLY_COMP_CD = DF.SUPPLY_COMP_CD 
-		AND    OD.DELV_FEE_CD = DF.DELV_FEE_CD 
-		INNER  JOIN TB_DELV_FEE_POLICY DFP
-		ON     DF.SUPPLY_COMP_CD  = DFP.SUPPLY_COMP_CD 
-		AND    DF.DELV_FEE_CD = DFP.DELV_FEE_CD 
-		AND    DFP.USE_YN = 'Y'
-		WHERE  1=1
-		AND    OD.ORD_DTL_STAT IN (
-			'G013_10', 'G013_20', 'G013_30', 'G013_40'
-		)
-		AND    OD.ORD_NO = #{ordNo}
-		GROUP  BY OD.ORD_NO
-		     , OD.ORD_DTL_NO
-	    ORDER  BY OD.ORD_NO
-	         , OD.ORD_DTL_NO
-	</select>
 	
-	<!-- 주문상세 > 주문취소신청 > 주문변경정보 등록-->
-	<insert id="createOrderChange" parameterType="OrderChange" keyProperty="ordChgSq">
-		/* Order.createOrderChange */
-		INSERT INTO TB_ORDER_CHANGE (
-			CHG_GB
-			, CHG_REASON
-			, CHG_MEMO
-			, CHGER_NM
-			, CHGER_PHNNO
-			, CHGER_TELNO
-			, CHGER_EMAIL
-			, CHGER_ZIP_NO
-			, CHGER_BASE_ADDR
-			, CHGER_DTL_ADDR
-			, CHGER_RTN_MEMO
-			, ADD_PAY_COST
-			, ADD_PAY_AMT
-			, REG_NO
-			, REG_DT
-			, UPD_NO
-			, UPD_DT
-		) 
-		SELECT #{chgGb}
-			 , #{chgReason}
-			 , #{chgMemo}
-			 , ORD_NM
-			 , ORD_PHNNO
-			 , ORD_TELNO
-			 , ORD_EMAIL
-			 , #{chgerZipNo}
-			 , #{chgerBaseAddr}
-			 , #{chgerDtlAddr}
-			 , #{chgerRtnMemo}
-			 , #{addPayCost}
-			 , #{addPayAmt}
-			 , #{regNo}
-			 , SYSDATE()
-			 , #{updNo}
-			 , SYSDATE()
-		FROM   TB_ORDER  
-		WHERE  ORD_NO = #{ordNo}
-	</insert>
+	
+	
 	
 	<!-- 주문상세 > 주문취소신청 > 주문변경정보 등록-->
 	<insert id="createOrderChangeDetail" parameterType="OrderChange">
@@ -2005,251 +1867,7 @@
 		AND    OD.ORD_NO = #{ordNo}
 		AND    OD.ORD_DTL_NO = #{ordDtlNo}
 	</update>
-		
-	<!-- 주문상세 > 주문취소신청 > 주문환불 결제 정보 등록 -->
-	<insert id="createPayment" parameterType="Order" keyProperty="paySq">
-		/* Order.createPayment */
-		INSERT INTO TB_PAYMENT (
-			ORD_NO
-			, PAY_DT
-			, PAY_MEANS
-			, PAY_AMT
-			, PG_CPN_AMT
-			, NPAY_PNT_AMT
-			, PAY_GB
-			, PAY_STAT
-			, PG_GB
-			, PG_TID
-			, PG_TRADE_NO
-			, PG_SHOP_ID
-			, CARD_TYPE
-			, CARD_KIND
-			, CARD_BANK
-			, CARD_NM
-			, CARD_MIPS
-			, CARD_PCABLE_YN
-			, VA_NO
-			, VA_NM
-			, VA_BANK
-			, VA_DEADLINE
-			, TELECOM
-			, ESCROW_YN
-			, ORD_CHG_SQ
-			, REG_NO
-			, REG_DT
-			, UPD_NO
-			, UPD_DT
-		) 
-		SELECT ORD_NO
-		 	 , SYSDATE()
-			 , PAY_MEANS
-			 , #{payAmt}
-			 , #{pgCpnAmt}
-			 , #{npayPntAmt}
-			 , PAY_GB
-			 , #{payStat}
-			 , PG_GB
-			 , #{pgTid}
-			 , #{pgTradeNo}
-			 , PG_SHOP_ID
-			 , CARD_TYPE
-			 , CARD_KIND
-			 , CARD_BANK
-			 , CARD_NM
-			 , CARD_MIPS
-			 , CARD_PCABLE_YN
-			 , #{vaNo}
-			 , #{vaNm}
-			 , #{vaBank}
-			 , #{vaDeadline}
-			 , TELECOM
-			 , ESCROW_YN
-			 , #{ordChgSq}
-			 , #{regNo}
-			 , SYSDATE()
-			 , #{updNo}
-			 , SYSDATE()
-		FROM   TB_PAYMENT 
-		WHERE  1=1
-		AND    ORD_NO = #{ordNo}
-		AND    PAY_GB = 'O'
-		AND    PAY_STAT = 'G016_30'
-	</insert>
-	
-	<!-- 주문상세 > 주문취소신청 > 주문환불 금액 정보 등록 -->
-	<insert id="createRefund" parameterType="Order">
-		/* Order.createRefund */
-		INSERT INTO TB_REFUND (
-			ORD_NO
-			, PAY_SQ
-			, ORD_CHG_SQ
-			, REFUND_AMT
-			, RA_NO
-			, RA_BANK
-			, RA_NM
-			, RF_CPN1_AMT
-			, RF_TMTB1_AMT
-			, RF_TMTB2_AMT
-			, RF_GOODS_CPN_AMT
-			, RF_CART_CPN_AMT
-			, RF_PNT_AMT
-			, RF_PRE_PNT_AMT
-			, RF_GFCD_USE_AMT
-			, REG_NO
-			, REG_DT
-		) VALUES (
-			#{ordNo}
-			, #{paySq}
-			, #{ordChgSq}
-			, #{refundAmt}
-			, #{raNo}
-			, #{raBank}
-			, #{raNm}
-			, #{rfCpn1Amt}
-			, #{rfTmtb1Amt}
-			, #{rfTmtb2Amt}
-			, #{rfGoodsCpnAmt}
-			, #{rfCartCpnAmt}
-			, #{rfPntAmt}
-			, #{rfPrePntAmt}
-			, #{rfGfcdUseAmt}
-			, #{regNo}
-			, SYSDATE()
-		)
-	</insert>
-	
-	<!-- 주문상세 > 주문취소신청 > 주문 추가 배송 금액 등록-->
-	<insert id="createDeliveryFee" parameterType="Order">
-		/* Order.createDeliveryFee */
-		INSERT INTO TB_DELIVERY_FEE ( 
-			PAY_SQ
-			, ORD_NO
-			, DELV_FEE_GB
-			, DELV_FEE_CD
-			, DELV_FEE
-			, DELV_CPN_SQ
-			, DELV_CPN_DC_AMT
-			, REAL_DELV_AMT
-			, ORD_CHG_SQ
-			, SUPPLY_COMP_CD
-			, DELV_USAC_YN
-			, DELV_USAC_DT
-			, REG_NO
-			, REG_DT
-			, UPD_NO
-			, UPD_DT
-		) VALUES (
-			#{paySq}
-			, #{ordNo}
-			, #{delvFeeGb}
-			, #{delvFeeCd}
-			, #{delvFee}
-			, #{delvCpnSq}
-			, #{delvCpnDcAmt}
-			, #{realDelvAmt}
-			, #{ordChgSq}
-			, #{supplyCompCd}
-			, 'N'
-			, null
-			, #{regNo}
-			, SYSDATE()
-			, #{updNo}
-			, SYSDATE()
-		)
-	</insert>
-	
-	<!-- 고객환불계좌정보 조회 -->
-	<select id="getRefundAccount" parameterType="Order" resultType="Order">
-		/* Order.getRefundAccount */
-		SELECT Z.ACCOUNT_NO
-		     , Z.ACCOUNT_NM
-		     , Z.BANK_CD
-		     , FN_GET_CODE_NM('G940', Z.BANK_CD) AS BANK_NM
-		     , Z.DEFAULT_YN
-		     , Z.REG_DT
-		FROM   (
-			SELECT CA.ACCOUNT_NO
-			     , CA.ACCOUNT_NM 
-			     , CA.BANK_CD
-			     , CA.DEFAULT_YN
-			     , CA.REG_DT
-			FROM   TB_ORDER O
-			LEFT   OUTER JOIN TB_CUST_ACCOUNT CA 
-			ON     O.CUST_NO = CA.CUST_NO
-			WHERE  1=1
-			AND    O.CUST_NO = 0
-			GROUP  BY CA.ACCOUNT_NO
-			     , CA.ACCOUNT_NM 
-			     , CA.BANK_CD
-			     , CA.DEFAULT_YN
-			ORDER  BY CA.DEFAULT_YN DESC
-			     , CA.REG_DT DESC
-		) Z
-	</select>
-	
-	<!-- 고객환불계좌정보 체크 -->
-	<select id="getRefundAccountCheck" parameterType="Order" resultType="int">
-		/* Order.getRefundAccountCheck */
-		SELECT COUNT(1)
-		FROM   TB_CUST_ACCOUNT CA
-		WHERE  1=1
-		AND    CA.ACCOUNT_NO = ${accountNo}
-		AND    CA.ACCOUNT_NM = #{accountNm}
-		AND    CA.BANK_CD = #{bankCd}
-		AND    CA.DEL_YN = 'N'
-	</select>
-	
-	<!-- 고객환불계좌정보 등록 -->
-	<insert id="saveRefundAccount" parameterType="Order">
-		/* Order.saveRefundAccount */
-		INSERT INTO TB_CUST_ACCOUNT (
-			CUST_NO
-			, BANK_CD
-			, ACCOUNT_NO
-			, ACCOUNT_NM
-			, DEFAULT_YN
-			, DEL_YN
-			, REG_NO
-			, REG_DT
-			, UPD_NO
-			, UPD_DT
-		) VALUES (
-			#{custNo}
-			, #{bankCd}
-			, #{accountNo}
-			, #{accountNm}
-			, 'N'
-			, 'N'
-			, #{regNo}
-			, SYSDATE()
-			, #{updNo}
-			, SYSDATE()
-		)
-	</insert>
-	
-	<!-- 주문사은품취소 -->
-	<update id="updateOrdFreegiftDel" parameterType="Order">
-		/* Order.updateOrdFreegiftDel */
-		UPDATE TB_ORD_FREEGIFT_VAL
-		SET    DEL_YN= 'N'
-		     , UPD_NO = #{updNo}
-		     , UPD_DT = SYSDATE()
-		WHERE  FREEGIFT_VAL_SQ IN (
-			SELECT OFRV.FREEGIFT_VAL_SQ 
-			FROM   TB_ORD_FREEGIFT OFR
-			INNER  JOIN TB_ORD_FREEGIFT_VAL OFRV
-			ON     OFR.ORD_FREEGIFT_SQ  = OFRV.ORD_FREEGIFT_SQ 
-			WHERE  1=1
-			AND    OFR.ORD_NO = (SELECT CASE WHEN SUM(X.ORD_QTY) > SUM(X.CNCL_RTN_QTY)
-								             THEN 0
-								             ELSE X.ORD_NO
-								             END 
-								 FROM   TB_ORDER_DETAIL X
-								 WHERE  1=1
-								 AND    X.ORD_NO = #{ordNo})
-		)
-	</update>
-	
+
 </mapper>
 
 

+ 406 - 0
style24.admin/src/main/java/com/style24/persistence/mybatis/shop/TsaOrderChange.xml

@@ -0,0 +1,406 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.style24.admin.biz.dao.TsaOrderChangeDao">
+
+	<!-- 주문상세 > 주문취소대상목록 -->
+	<select id="getCancelRequestTargetList" parameterType="Order" resultType="Order">
+		/* order.getCancelRequestTargetList */
+		SELECT OD.ORD_NO
+		     , OD.ORD_DTL_NO
+		     , OD.ORD_DTL_STAT
+		     , FN_GET_CODE_NM('G013', OD.ORD_DTL_STAT) AS ORD_DTL_STAT_NM
+		     , CASE WHEN OD.ORD_DTL_STAT IN ('G013_20', 'G013_30', 'G013_40')
+		            THEN 'Y'
+		            ELSE 'N'
+		             END ALL_CAN_YN
+		     , G1.GOODS_CD
+		     , G1.GOODS_NM
+		     , G1.GOODS_TYPE
+		     , FN_GET_CODE_NM('G056', G1.GOODS_TYPE) AS GOODS_TYPE_NM
+		     , ODI.ORD_DTL_ITEM_SQ
+		     , G2.GOODS_CD AS ITEM_CD
+		     , G2.GOODS_NM AS ITEM_NM
+		     , ODI.OPT_CD
+		     , ODI.OPT_CD1
+		     , ODI.OPT_CD2
+		     , ODI.ITEM_QTY
+		     , OD.ORD_QTY
+             , OD.CNCL_RTN_QTY 
+		     , CASE WHEN OCD.ORD_REQ_CHG_QTY IS NULL
+		            THEN 0
+		            ELSE OCD.ORD_REQ_CHG_QTY * ODI.ITEM_QTY
+		            END  ORD_REQ_CHG_QTY
+		     , ODI.ITEM_PRICE
+		     , ODI.OPT_ADD_PRICE
+		     , ODI.ORD_AMT
+		     , ODI.CNCL_RTN_AMT
+		     , ODI.CPN1_DC_AMT 
+		     , ODI.TMTB1_DC_AMT 
+		     , ODI.TMTB2_DC_AMT 
+		     , ODI.GOODS_CPN_DC_AMT 
+		     , ODI.CART_CPN_DC_AMT
+		     , ODI.PNT_DC_AMT 
+		     , ODI.PRE_PNT_DC_AMT 
+		     , ODI.GFCD_USE_AMT
+		     , ODI.REAL_ORD_AMT
+		     , DF.DELV_FEE
+		     , DF.SUPPLY_COMP_CD
+		     , DF.DELV_FEE_CD 
+		     , DFP.MIN_ORD_AMT 
+		     , DFP.DELV_FEE AS ORG_DELV_FEE
+		     , DFP.RTN_DELV_FEE
+		     , DFP.DELV_FEE + DFP.RTN_DELV_FEE AS EXC_DELV_FEE
+		     , 0			AS ORD_CAN_CHG_QTY
+		FROM   TB_ORDER_DETAIL OD
+		INNER  JOIN TB_GOODS G1
+		ON     OD.GOODS_CD = G1.GOODS_CD
+		INNER  JOIN TB_ORDER_DETAIL_ITEM ODI
+		ON     OD.ORD_NO = ODI.ORD_NO
+		AND    OD.ORD_DTL_NO = ODI.ORD_DTL_NO
+		INNER  JOIN TB_GOODS G2
+		ON     ODI.ITEM_CD = G2.GOODS_CD
+		LEFT   OUTER JOIN (
+			SELECT OD.ORD_DTL_NO
+			     , SUM(OCD.CHG_QTY) AS ORD_REQ_CHG_QTY
+			FROM   TB_ORDER_CHANGE_DETAIL OCD
+			INNER  JOIN TB_ORDER_DETAIL OD
+			ON     OCD.ORD_DTL_NO = OD.ORD_DTL_NO
+			WHERE  1=1
+			AND    OD.ORD_NO = #{ordNo}
+			AND    OCD.CHG_STAT IN (
+				'G685_20', 'G685_30', 'G685_40'
+			)
+			GROUP  BY OCD.ORD_DTL_NO
+		) OCD
+		ON     OD.ORD_DTL_NO = OCD.ORD_DTL_NO
+		INNER  JOIN (
+			SELECT X.SUPPLY_COMP_CD
+			     , X.DELV_FEE_CD
+			     , SUM(X.DELV_FEE) AS DELV_FEE
+			FROM   TB_DELIVERY_FEE X
+			WHERE  1=1
+			AND    X.ORD_NO = #{ordNo}
+			AND    X.DELV_FEE_GB = 'G018_10'
+			GROUP  BY X.SUPPLY_COMP_CD
+			        , X.DELV_FEE_CD
+		) DF
+		ON     OD.SUPPLY_COMP_CD = DF.SUPPLY_COMP_CD 
+		AND    OD.DELV_FEE_CD = DF.DELV_FEE_CD 
+		INNER  JOIN TB_DELV_FEE_POLICY DFP
+		ON     DF.SUPPLY_COMP_CD  = DFP.SUPPLY_COMP_CD 
+		AND    DF.DELV_FEE_CD = DFP.DELV_FEE_CD 
+		AND    DFP.USE_YN = 'Y'
+		WHERE  1=1
+		AND    OD.ORD_DTL_STAT IN (
+			'G013_10', 'G013_20', 'G013_30', 'G013_40'
+		)
+		AND    OD.ORD_NO = #{ordNo}
+		GROUP  BY OD.ORD_NO
+		     , OD.ORD_DTL_NO
+	    ORDER  BY OD.ORD_NO
+	         , OD.ORD_DTL_NO
+	</select>
+	
+	<!-- 주문상세 > 주문취소신청 > 주문변경정보 등록-->
+	<insert id="createOrderChange" parameterType="OrderChange" keyProperty="ordChgSq">
+		/* Order.createOrderChange */
+		INSERT INTO TB_ORDER_CHANGE (
+			CHG_GB
+			, CHG_REASON
+			, CHG_MEMO
+			, CHGER_NM
+			, CHGER_PHNNO
+			, CHGER_TELNO
+			, CHGER_EMAIL
+			, CHGER_ZIP_NO
+			, CHGER_BASE_ADDR
+			, CHGER_DTL_ADDR
+			, CHGER_RTN_MEMO
+			, ADD_PAY_COST
+			, ADD_PAY_AMT
+			, REG_NO
+			, REG_DT
+			, UPD_NO
+			, UPD_DT
+		) 
+		SELECT #{chgGb}
+			 , #{chgReason}
+			 , #{chgMemo}
+			 , ORD_NM
+			 , ORD_PHNNO
+			 , ORD_TELNO
+			 , ORD_EMAIL
+			 , #{chgerZipNo}
+			 , #{chgerBaseAddr}
+			 , #{chgerDtlAddr}
+			 , #{chgerRtnMemo}
+			 , #{addPayCost}
+			 , #{addPayAmt}
+			 , #{regNo}
+			 , SYSDATE()
+			 , #{updNo}
+			 , SYSDATE()
+		FROM   TB_ORDER  
+		WHERE  ORD_NO = #{ordNo}
+	</insert>
+	
+	<!-- 주문사은품취소 -->
+	<update id="updateOrdFreegiftDel" parameterType="Order">
+		/* Order.updateOrdFreegiftDel */
+		UPDATE TB_ORD_FREEGIFT_VAL
+		SET    DEL_YN= 'N'
+		     , UPD_NO = #{updNo}
+		     , UPD_DT = SYSDATE()
+		WHERE  FREEGIFT_VAL_SQ IN (
+			SELECT OFRV.FREEGIFT_VAL_SQ 
+			FROM   TB_ORD_FREEGIFT OFR
+			INNER  JOIN TB_ORD_FREEGIFT_VAL OFRV
+			ON     OFR.ORD_FREEGIFT_SQ  = OFRV.ORD_FREEGIFT_SQ 
+			WHERE  1=1
+			AND    OFR.ORD_NO = (SELECT CASE WHEN SUM(X.ORD_QTY) > SUM(X.CNCL_RTN_QTY)
+								             THEN 0
+								             ELSE X.ORD_NO
+								             END 
+								 FROM   TB_ORDER_DETAIL X
+								 WHERE  1=1
+								 AND    X.ORD_NO = #{ordNo})
+		)
+	</update>
+	
+	<!-- 주문상세 > 주문취소신청 > 주문환불 금액 정보 등록 -->
+	<insert id="createRefund" parameterType="Order">
+		/* Order.createRefund */
+		INSERT INTO TB_REFUND (
+			ORD_NO
+			, PAY_SQ
+			, ORD_CHG_SQ
+			, REFUND_AMT
+			, RA_NO
+			, RA_BANK
+			, RA_NM
+			, RF_CPN1_AMT
+			, RF_TMTB1_AMT
+			, RF_TMTB2_AMT
+			, RF_GOODS_CPN_AMT
+			, RF_CART_CPN_AMT
+			, RF_PNT_AMT
+			, RF_PRE_PNT_AMT
+			, RF_GFCD_USE_AMT
+			, REG_NO
+			, REG_DT
+		) VALUES (
+			#{ordNo}
+			, #{paySq}
+			, #{ordChgSq}
+			, #{refundAmt}
+			, #{raNo}
+			, #{raBank}
+			, #{raNm}
+			, #{rfCpn1Amt}
+			, #{rfTmtb1Amt}
+			, #{rfTmtb2Amt}
+			, #{rfGoodsCpnAmt}
+			, #{rfCartCpnAmt}
+			, #{rfPntAmt}
+			, #{rfPrePntAmt}
+			, #{rfGfcdUseAmt}
+			, #{regNo}
+			, SYSDATE()
+		)
+	</insert>
+	
+	<!-- 주문상세 > 주문취소신청 > 주문환불 결제 정보 등록 -->
+	<insert id="createPayment" parameterType="Order" keyProperty="paySq">
+		/* Order.createPayment */
+		INSERT INTO TB_PAYMENT (
+			ORD_NO
+			, PAY_DT
+			, PAY_MEANS
+			, PAY_AMT
+			, PG_CPN_AMT
+			, NPAY_PNT_AMT
+			, PAY_GB
+			, PAY_STAT
+			, PG_GB
+			, PG_TID
+			, PG_TRADE_NO
+			, PG_SHOP_ID
+			, CARD_TYPE
+			, CARD_KIND
+			, CARD_BANK
+			, CARD_NM
+			, CARD_MIPS
+			, CARD_PCABLE_YN
+			, VA_NO
+			, VA_NM
+			, VA_BANK
+			, VA_DEADLINE
+			, TELECOM
+			, ESCROW_YN
+			, ORD_CHG_SQ
+			, REG_NO
+			, REG_DT
+			, UPD_NO
+			, UPD_DT
+		) 
+		SELECT ORD_NO
+		 	 , SYSDATE()
+			 , PAY_MEANS
+			 , #{payAmt}
+			 , #{pgCpnAmt}
+			 , #{npayPntAmt}
+			 , PAY_GB
+			 , #{payStat}
+			 , PG_GB
+			 , #{pgTid}
+			 , #{pgTradeNo}
+			 , PG_SHOP_ID
+			 , CARD_TYPE
+			 , CARD_KIND
+			 , CARD_BANK
+			 , CARD_NM
+			 , CARD_MIPS
+			 , CARD_PCABLE_YN
+			 , #{vaNo}
+			 , #{vaNm}
+			 , #{vaBank}
+			 , #{vaDeadline}
+			 , TELECOM
+			 , ESCROW_YN
+			 , #{ordChgSq}
+			 , #{regNo}
+			 , SYSDATE()
+			 , #{updNo}
+			 , SYSDATE()
+		FROM   TB_PAYMENT 
+		WHERE  1=1
+		AND    ORD_NO = #{ordNo}
+		AND    PAY_GB = 'O'
+		AND    PAY_STAT = 'G016_30'
+	</insert>
+	
+	<!-- 주문상세 > 주문취소신청 > 주문 추가 배송 금액 등록-->
+	<insert id="createDeliveryFee" parameterType="Order">
+		/* Order.createDeliveryFee */
+		INSERT INTO TB_DELIVERY_FEE ( 
+			PAY_SQ
+			, ORD_NO
+			, DELV_FEE_GB
+			, DELV_FEE_CD
+			, DELV_FEE
+			, DELV_CPN_SQ
+			, DELV_CPN_DC_AMT
+			, REAL_DELV_AMT
+			, ORD_CHG_SQ
+			, SUPPLY_COMP_CD
+			, DELV_USAC_YN
+			, DELV_USAC_DT
+			, REG_NO
+			, REG_DT
+			, UPD_NO
+			, UPD_DT
+		) VALUES (
+			#{paySq}
+			, #{ordNo}
+			, #{delvFeeGb}
+			, #{delvFeeCd}
+			, #{delvFee}
+			, #{delvCpnSq}
+			, #{delvCpnDcAmt}
+			, #{realDelvAmt}
+			, #{ordChgSq}
+			, #{supplyCompCd}
+			, 'N'
+			, null
+			, #{regNo}
+			, SYSDATE()
+			, #{updNo}
+			, SYSDATE()
+		)
+	</insert>
+	
+	<!-- 고객환불계좌정보 체크 -->
+	<select id="getRefundAccountCheck" parameterType="Order" resultType="int">
+		/* Order.getRefundAccountCheck */
+		SELECT COUNT(1)
+		FROM   TB_CUST_ACCOUNT CA
+		WHERE  1=1
+		AND    CA.ACCOUNT_NO = ${accountNo}
+		AND    CA.ACCOUNT_NM = #{accountNm}
+		AND    CA.BANK_CD = #{bankCd}
+		AND    CA.DEL_YN = 'N'
+	</select>
+	
+	<!-- 고객환불계좌정보 등록 -->
+	<insert id="saveRefundAccount" parameterType="Order">
+		/* Order.saveRefundAccount */
+		INSERT INTO TB_CUST_ACCOUNT (
+			CUST_NO
+			, BANK_CD
+			, ACCOUNT_NO
+			, ACCOUNT_NM
+			, DEFAULT_YN
+			, DEL_YN
+			, REG_NO
+			, REG_DT
+			, UPD_NO
+			, UPD_DT
+		) VALUES (
+			#{custNo}
+			, #{bankCd}
+			, #{accountNo}
+			, #{accountNm}
+			, 'N'
+			, 'N'
+			, #{regNo}
+			, SYSDATE()
+			, #{updNo}
+			, SYSDATE()
+		)
+	</insert>
+	
+	<!-- 고객환불계좌정보 조회 -->
+	<select id="getRefundAccount" parameterType="Order" resultType="Order">
+		/* Order.getRefundAccount */
+		SELECT Z.ACCOUNT_NO
+		     , Z.ACCOUNT_NM
+		     , Z.BANK_CD
+		     , FN_GET_CODE_NM('G940', Z.BANK_CD) AS BANK_NM
+		     , Z.DEFAULT_YN
+		     , Z.REG_DT
+		FROM   (
+			SELECT CA.ACCOUNT_NO
+			     , CA.ACCOUNT_NM 
+			     , CA.BANK_CD
+			     , CA.DEFAULT_YN
+			     , CA.REG_DT
+			FROM   TB_ORDER O
+			LEFT   OUTER JOIN TB_CUST_ACCOUNT CA 
+			ON     O.CUST_NO = CA.CUST_NO
+			WHERE  1=1
+			AND    O.CUST_NO = 0
+			GROUP  BY CA.ACCOUNT_NO
+			     , CA.ACCOUNT_NM 
+			     , CA.BANK_CD
+			     , CA.DEFAULT_YN
+			ORDER  BY CA.DEFAULT_YN DESC
+			     , CA.REG_DT DESC
+		) Z
+	</select>
+	
+</mapper>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+

+ 22 - 0
style24.admin/src/main/java/com/style24/persistence/mybatis/shop/TsaPg.xml

@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.style24.admin.biz.dao.TsaPgDao">
+
+	
+	
+</mapper>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+

+ 5 - 5
style24.admin/src/main/webapp/WEB-INF/views/order/CancelRequestForm.html

@@ -21,7 +21,7 @@
 		</div>
 			
 		<div class="panelContent" style="height:90%; overflow-y:auto; padding:0px 20px !important; ">
-			<form id="cancelRequestFrm" name="cancelRequestFrm" action="/order/cancel" method="post" target="hdFrameForOrderCancel">
+			<form id="cancelRequestFrm" name="cancelRequestFrm" action="/orderChange/cancel" method="post" target="hdFrameForOrderCancel">
 				<input type="hidden" name="ordNo" th:value="${ordNo}"/>
 				<input type="hidden" name="chgReason" value=""/>
 				<input type="hidden" name="chgReasonDesc" value=""/>
@@ -851,7 +851,7 @@ var fnCalculateRefundAmt = function (obj) {
 	// 환불금액계산호출
 	var jsonData = JSON.stringify(cancelRequestTargetList);
 	gagajf.ajaxJsonSubmit(
-		'/order/cancel/refundAmt'
+		'/orderChange/cancel/refundAmt'
 		, jsonData
 		, function(result) {
 			gridOptionsCancelReqToBeList.api.setRowData(result.cancelOrderRefundList);
@@ -991,7 +991,7 @@ var fnCancelRequestPartOk = function () {
 		sureBtnClick		: function(){
 			// 취소 실행
 			gagajf.ajaxJsonSubmit(
-				'/order/cancel/'
+				'/orderChange/cancel/'
 				, jsonData
 				, function() {
 					uifnPopupClose('popupOrderDetail');
@@ -1005,14 +1005,14 @@ var fnCancelRequestPartOk = function () {
 
 // 환불계좌 등록
 var fnCreateOrderRfAccount = function () {	
-	var actionUrl = "/order/refund/account/create/form?ordNo=" + ordNo ;
+	var actionUrl = "/orderChange/refund/account/create/form?ordNo=" + ordNo ;
 	cfnOpenModalPopup(actionUrl, 'popupCreateRefundAccount');
 };
 
 // 환불계좌 정보
 var fnBindOrderRfAccountInfo = function () {
 	gagaAgGrid.fetch(
-		"/order/refund/account/info/list?ordNo=" + ordNo
+		"/orderChange/refund/account/info/list?ordNo=" + ordNo
 		, gridOptionsRefundAccountInfo
 		, null
 		, function (result) {

+ 6 - 6
style24.admin/src/main/webapp/WEB-INF/views/order/OrderDetailForm.html

@@ -668,7 +668,7 @@ var columnDefsOrderChangeInfo = [
 			var retStr = "";
 			
 			// 교환요청, 반품요청일때만 버튼 활성화
-			if (chgStat == 'G685_30' || chgStat == 'G685_40' ) {
+			if (params.data.chgStat == 'G685_30' || params.data.chgStat == 'G685_40' ) {
 				if (params.data.wdInvoiceSendYn == 'N') {
 					retStr += "<button type=\"button\" class=\"btn btn-info\" onclick=\"fnOpenPostFindPopup('" + params.node.rowIndex + "');\">POST</button>";
 					retStr += "<button type=\"button\" class=\"btn btn-info\" onclick=\"fnSaveChgerAddr('" + params.node.rowIndex + "');\">저장</button>";
@@ -1021,19 +1021,19 @@ $(document).ready(function () {
 
 	// 반품요청
 	var fnReturnRequest = function () {
-		var actionUrl = "/order/return/request/form?ordNo=" + ordNo;
+		var actionUrl = "/orderChange/return/request/form?ordNo=" + ordNo;
 		cfnOpenModalPopup(actionUrl, 'popupReturnRequestForm');
 	};
 
 	// 교환요청
 	var fnExchangeRequest = function () {
-		var actionUrl = "/order/exchange/request/form?ordNo=" + ordNo;
+		var actionUrl = "/orderChange/exchange/request/form?ordNo=" + ordNo;
 		cfnOpenModalPopup(actionUrl, 'popupExchangeRequestForm');
 	};
 
 	// 취소요청
 	var fnCancelRequest = function () {
-		var actionUrl = "/order/cancel/request/form?ordNo=" + ordNo + "&cncWait=N";
+		var actionUrl = "/orderChange/cancel/request/form?ordNo=" + ordNo + "&cncWait=N";
 		cfnOpenModalPopup(actionUrl, 'popupCancelRequestForm');
 	};
 
@@ -1049,7 +1049,7 @@ $(document).ready(function () {
 
 				var jsonData = JSON.stringify(data);
 				gagajf.ajaxJsonSubmit(
-					'/order/cancel/confirm'
+					'/orderChange/cancel/confirm'
 					, jsonData
 					, function (result) {
 						uifnPopupClose('popupOrderDetail');
@@ -1071,7 +1071,7 @@ $(document).ready(function () {
 				
 				var jsonData = JSON.stringify(data);
 				gagajf.ajaxJsonSubmit(
-					'/order/cancel/wait/cancel'
+					'/orderChange/cancel/wait/cancel'
 					, jsonData
 					, function (result) {
 						uifnPopupClose('popupOrderDetail');

+ 1 - 1
style24.front/target/m2e-wtp/web-resources/META-INF/MANIFEST.MF

@@ -1,6 +1,6 @@
 Manifest-Version: 1.0
+Build-Jdk-Spec: 14
 Implementation-Title: style24.front
 Implementation-Version: 0.0.1-SNAPSHOT
-Build-Jdk-Spec: 1.8
 Created-By: Maven Integration for Eclipse