Explorar o código

Merge branch 'develop' into eskim

eskim %!s(int64=5) %!d(string=hai) anos
pai
achega
8edb6991dc

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

@@ -1,12 +1,6 @@
 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

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

@@ -1,12 +1,6 @@
 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

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

@@ -1,12 +1,6 @@
 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

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

@@ -1,12 +1,6 @@
 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

+ 3 - 2
src/main/java/com/style24/admin/biz/service/TsaCouponService.java

@@ -5,6 +5,7 @@ import com.google.gson.reflect.TypeToken;
 import com.style24.admin.biz.dao.TsaCouponDao;
 import com.style24.admin.support.env.TsaConstants;
 import com.style24.admin.support.security.session.TsaSession;
+import com.style24.core.support.env.TscConstants;
 import com.style24.persistence.domain.*;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -166,7 +167,7 @@ public class TsaCouponService {
 		}
 
 		// 시리얼 쿠폰 생성(최초 쿠폰 생성일 경우에만)
-		if(cpnId == 0 && params.getCpnType().equals(TsaConstants.CpnType.PAY_CPN.value()) && params.getDcCdGb().equals(TsaConstants.DcCdGb.SERIAL.value())) {
+		if(cpnId == 0 && params.getCpnType().equals(TscConstants.CpnType.PAY_CPN.value()) && params.getDcCdGb().equals(TscConstants.DcCdGb.SERIAL.value())) {
 			// 시리얼 쿠폰명이 동일한 쿠폰이 일정 겹치는 부분이 있는지 확인
 			int overlapCheck = couponDao.getSerialOverlapCheck(params);
 			if(overlapCheck < 1) {
@@ -176,7 +177,7 @@ public class TsaCouponService {
 			} else {
 				throw new IllegalStateException("같은 시리얼명이 사용되는 쿠폰이 중복됩니다. 기간을 확인해주세요.");
 			}
-		} else if(cpnId == 0 && params.getCpnType().equals(TsaConstants.CpnType.PAY_CPN.value()) && params.getDcCdGb().equals(TsaConstants.DcCdGb.RANDOM.value())) {
+		} else if(cpnId == 0 && params.getCpnType().equals(TscConstants.CpnType.PAY_CPN.value()) && params.getDcCdGb().equals(TscConstants.DcCdGb.RANDOM.value())) {
 			Random random = new Random();
 			String prefixRandomCpn = "" + params.getCpnId();		// 랜덤 번호는 쿠폰번호 + 랜덤문자 = 12로 처리함
 			// 랜덤 문자 발급 수 만큼 진행

+ 2 - 2
src/main/java/com/style24/admin/biz/web/TsaCustomerController.java

@@ -10,7 +10,6 @@ import com.style24.admin.biz.service.TsaKakaoService;
 import com.style24.admin.biz.service.TsaSystemService;
 import com.style24.core.support.env.TscConstants;
 import com.style24.core.support.session.TscSession;
-import com.style24.core.support.util.CryptoUtils;
 import com.style24.persistence.domain.Coupon;
 import com.style24.persistence.domain.CustContactHst;
 import com.style24.persistence.domain.CustGrade;
@@ -18,7 +17,7 @@ import com.style24.persistence.domain.Customer;
 import com.style24.persistence.domain.CustomerSearch;
 import com.style24.persistence.domain.Delivery;
 import com.style24.persistence.domain.GiftCard;
-import com.style24.persistence.domain.Order;
+
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Controller;
@@ -43,6 +42,7 @@ import com.style24.persistence.domain.Counsel;
 import lombok.extern.slf4j.Slf4j;
 
 import com.gagaframework.web.rest.server.GagaResponse;
+import com.style24.persistence.domain.Order;
 import com.style24.persistence.domain.Point;
 import com.style24.persistence.domain.Review;
 

+ 9 - 9
src/main/java/com/style24/admin/biz/web/TsaMarketingController.java

@@ -179,7 +179,7 @@ public class TsaMarketingController extends TsaBaseController {
 	 * @author xodud1202
 	 * @since 2020. 12. 16
 	 */
-	@GetMapping("/freeGoods/promotion/form")
+	@GetMapping("/freegoods/promotion/form")
 	public ModelAndView freeGoodsPromotionForm() {
 		ModelAndView mav = new ModelAndView();
 		mav.setViewName("marketing/FreeGoodsPromotionForm");
@@ -191,7 +191,7 @@ public class TsaMarketingController extends TsaBaseController {
 	 * @author xodud1202
 	 * @since 2020. 12. 16
 	 */
-	@PostMapping("/freeGoodsPromotion/list")
+	@PostMapping("/freegoods/promotion/list")
 	@ResponseBody
 	public GagaMap getFreeGoodsPromotionList(@RequestBody FreeGoodsPromotion param) {
 		GagaMap result = new GagaMap();
@@ -214,7 +214,7 @@ public class TsaMarketingController extends TsaBaseController {
 	 * @since 2020. 12. 23
 	 */
 	@ResponseBody
-	@GetMapping("/freeGoodsRegiPopup/form")
+	@GetMapping("/freegoods/promotion/popup/form")
 	public ModelAndView freeGoodsRegiForm(FreeGoodsPromotion param) {
 		ModelAndView mav = new ModelAndView();
 
@@ -256,11 +256,11 @@ public class TsaMarketingController extends TsaBaseController {
 	}
 
 	/**
-	 * 사은품 프로모션 목록 조회
+	 * 사은품 프로모션 상세 조회
 	 * @author xodud1202
 	 * @since 2021. 01. 28
 	 */
-	@PostMapping("/freeGoodsPromotion/detail")
+	@PostMapping("/freegoods/promotion/detail")
 	@ResponseBody
 	public GagaMap getFreeGoodsPromotionDetail(FreeGoodsPromotion param) {
 		return freegiftService.getFreegiftDetailInfo(param);
@@ -274,7 +274,7 @@ public class TsaMarketingController extends TsaBaseController {
 	 * @since 2021. 01. 14
 	 */
 	@ResponseBody
-	@PostMapping("/freeGoodsPromotion/save")
+	@PostMapping("/freegoods/promotion/save")
 	public GagaResponse freeGoodsPromotionSave(@RequestBody FreeGoodsPromotion param) {
 		try {
 			freegiftService.saveFreegoodsPromotionInfo(param);
@@ -294,7 +294,7 @@ public class TsaMarketingController extends TsaBaseController {
 	 * @since 2021. 01. 14
 	 */
 	@ResponseBody
-	@PostMapping("/freeGoodsPromotion/changeStat")
+	@PostMapping("/freegoods/promotion/change/stat")
 	public GagaResponse freeGoodsPromotionChangeStat(@RequestBody FreeGoodsPromotion param) {
 		try {
 			freegiftService.updateFreegoodsPromotionStat(param);
@@ -682,8 +682,8 @@ public class TsaMarketingController extends TsaBaseController {
 
 			moreBetter1.setEventStdt(new SimpleDateFormat("yyyy-MM-dd").format(new Date()));
 			moreBetter1.setEventEdHH(new SimpleDateFormat("yyyy-MM-dd").format(calendar.getTime()));
-			moreBetter1.setEventEdHH("23");
-			moreBetter1.setEventEdMM("59");
+			moreBetter1.setEventEdHH("24");
+			moreBetter1.setEventEdMM("00");
 			mav.addObject("tmtbMstInfo", moreBetter1);
 		}
 

+ 1 - 20
src/main/java/com/style24/admin/biz/web/TsaOrderChangeController.java

@@ -522,26 +522,7 @@ public class TsaOrderChangeController extends TsaBaseController {
 		
 		return result;
 	}
-	
-	
-	
-	
-	
-	
-	
-	
-	
-	
-	
-	
-	
-	
-	
-	
-	
-	
-	
-	
+
 	/**
 	 * 취소요청 (ADMIN, NAPY, 외부몰) (배치) (사용안함)
 	 * 

+ 0 - 31
src/main/java/com/style24/admin/support/env/TsaConstants.java

@@ -41,35 +41,4 @@ public class TsaConstants {
 			return value;
 		}
 	}
-
-	// 쿠폰유형
-	public enum CpnType {
-		CATE_CPN("G230_13"),			// 장바구니쿠폰
-		PAY_CPN("G230_20");			// 주문서쿠폰
-
-		private String value;
-
-		private CpnType(String value) {
-			this.value = value;
-		}
-
-		public String value() {
-			return value;
-		}
-	}
-
-	// 할인 코드 유형
-	public enum DcCdGb {
-		NARMAL("G233_00"),			// 일반 쿠폰 유형
-		SERIAL("G233_10"),			// 시리얼 쿠폰 유형
-		RANDOM("G233_20");			// 랜덤 쿠폰 유형
-
-		private String value;
-
-		private DcCdGb(String value) {	this.value = value;	}
-
-		public String value() {
-			return value;
-		}
-	}
 }

+ 3 - 3
src/main/java/com/style24/persistence/domain/Coupon.java

@@ -45,8 +45,8 @@ public class Coupon extends TscBaseDomain {
     private String reissuance;				// 쿠폰재발급여부(공통코드G231)
     private String cpnStat;				    // 쿠폰상태(공통코드G232)
     private String endAlimYn;				// 만료알림여부
-    private String firstYn;				    // 첫구매여부 (Y:구매이력이없음 | N:구매이력있음)
-    private String downYn;					// 다운로드가능여부(마이페이지, 상품상세) --> EP쿠폰, 난수쿠폰
+    private String firstOrdYn;				// 첫구매여부 (Y:구매이력이없음 | N:구매이력있음)
+    private String downAblYn;				// 다운로드가능여부(마이페이지, 상품상세) --> EP쿠폰, 난수쿠폰
     private String custJoinStdt;			// 회원가입일자(FROM) 20200101 (신규회원여부의 판단을 가입일자로 설정함)
     private String custJoinEddt;			// 회원가입일자(FROM) 20200101 (신규회원여부의 판단을 가입일자로 설정함)
     private String buyStdt;				    // 회원가입일자(FROM) 20200101 (구매기간일자(FROM) (해당기간에 구매이력이 없으면 다운로드 가능))
@@ -54,7 +54,7 @@ public class Coupon extends TscBaseDomain {
     private int    issueCnt;				// 쿠폰발급개수
     private int    useCnt;					// 쿠폰사용개수
     private String payType;                 // 결제수단
-    private String custJoinYn;              // 신규회원여부
+    private String newCustYn;              // 신규회원여부
     private String afChannel;               // 제휴링크
     private String dcCdGb;                  // 할인코드유형 (공통코드G233)
     private String rdCpnNm;                 // 랜덤쿠폰 사용키 (시리얼명 or 난수)

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

@@ -1,405 +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 String optCd2s;
-	private int currStockQty;
-	private String currStockQtys;
-	
-	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 recipZipcode;
-	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 chgerZipcode;
-	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;
-	
-	// 교환요청
-	private String ordChgOpt;
-	private String rtnLocZipcode;
-	private String rtnLocBaseAddr;
-	private String rtnLocDtlAddr;
-	private String rtnLocTelno;
-	private String rtnLocNm;
-	private int exchangeOrdDtlNo;
-	private int exchangeOrdDtlItemSq;
-}
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-

+ 20 - 41
src/main/java/com/style24/persistence/mybatis/shop/TsaCoupon.xml

@@ -11,7 +11,6 @@
 				SELECT SITE_CD
 					 , CPN_ID
 					 , CPN_NM
-					 , USABLE_CUST_GB
 					 , CPN_TYPE
 					 , DC_WAY
 					 , DC_PVAL
@@ -56,7 +55,6 @@
 		GROUP BY  T.SITE_CD
 				, T.CPN_ID
 				, T.CPN_NM
-				, T.USABLE_CUST_GB
 				, T.CPN_TYPE
 				, T.DC_WAY
 				, T.DC_PVAL
@@ -113,8 +111,6 @@
 		    CPN_NM
 		  , SITE_CD
 		  , AF_LINK_CD
-		  , USABLE_CUST_GB
-		  , USABLE_CUST_GRADE
 		  , CPN_TYPE
 		  , APPLY_SCOPE
 		  , DC_WAY
@@ -142,22 +138,17 @@
 		  , REG_DT
 		  , UPD_NO
 		  , UPD_DT
-		  , FIRST_YN
-		  , DOWN_YN
+		  , FIRST_ORD_YN
+		  , DOWN_ABL_YN
 		  , CUST_JOIN_STDT
 		  , CUST_JOIN_EDDT
 		  , BUY_STDT
 		  , BUY_EDDT
-		  <if test='cpnType != null and cpnType == "G230_20"'>
-		  , PAY_TYPE
-		  </if>
-		  , CUST_JOIN_YN
+		  , NEW_CUST_YN
 		) VALUES (
 		    #{cpnNm}
 		  , #{siteCd}
 		  , #{afLinkCd}
-		  , #{usableCustGb}
-		  , #{usableCustGrade}
 		  , #{cpnType}
 		  , #{applyScope}
 		  , #{dcWay}
@@ -194,38 +185,33 @@
 		  , now()
 		  , #{updNo}
 		  , now()
-		  , #{firstYn}
-		  , #{downYn}
+		  , #{firstOrdYn}
+		  , #{downAblYn}
 		  <choose>
-			  <when test='custJoinYn != null and custJoinYn == "Y"'>
+			  <when test='newCustYn != null and newCustYn == "Y"'>
 		  , DATE_FORMAT(#{custJoinStdt} , '%Y-%m-%d %H:%i:%s')
 		  , DATE_FORMAT(#{custJoinEddt} , '%Y-%m-%d %H:%i:%s')
 			  </when>
-			  <when test='custJoinYn != null and custJoinYn == "N"'>
+			  <when test='newCustYn != null and newCustYn == "N"'>
 		  , null
 		  , null
 			  </when>
 		  </choose>
 		  <choose>
-			  <when test='firstYn != null and firstYn == "Y"'>
+			  <when test='firstOrdYn != null and firstOrdYn == "Y"'>
 		  , DATE_FORMAT(#{buyStdt} , '%Y-%m-%d %H:%i:%s')
 		  , DATE_FORMAT(#{buyEddt} , '%Y-%m-%d %H:%i:%s')
 			  </when>
-			  <when test='firstYn != null and firstYn == "N"'>
+			  <when test='firstOrdYn != null and firstOrdYn == "N"'>
 		  , DATE_FORMAT(#{buyStdt} , '%Y-%m-%d %H:%i:%s')
 		  , DATE_FORMAT(#{buyEddt} , '%Y-%m-%d %H:%i:%s')
 			  </when>
 		  </choose>
-		  <if test='cpnType != null and cpnType == "G230_20"'>
-		  , #{payType}
-		  </if>
-		  , #{custJoinYn}
+		  , #{newCustYn}
 		) ON DUPLICATE KEY UPDATE
 		    CPN_NM = #{cpnNm}
 		  , SITE_CD = #{siteCd}
 		  , AF_LINK_CD = #{afLinkCd}
-		  , USABLE_CUST_GB = #{usableCustGb}
-		  , USABLE_CUST_GRADE = #{usableCustGrade}
 		  , CPN_TYPE = #{cpnType}
 		  , APPLY_SCOPE = #{applyScope}
 		  , DC_WAY = #{dcWay}
@@ -258,32 +244,29 @@
 		  , END_ALIM_YN = #{endAlimYn}
 		  , UPD_NO = #{updNo}
 		  , UPD_DT = now()
-		  , FIRST_YN = #{firstYn}
-		  , DOWN_YN = #{downYn}
+		  , FIRST_ORD_YN = #{firstOrdYn}
+		  , DOWN_ABL_YN = #{downAblYn}
 		<choose>
-			<when test='custJoinYn != null and custJoinYn == "Y"'>
+			<when test='newCustYn != null and newCustYn == "Y"'>
 		  , CUST_JOIN_STDT = DATE_FORMAT(#{custJoinStdt} , '%Y-%m-%d %H:%i:%s')
 		  , CUST_JOIN_EDDT = DATE_FORMAT(#{custJoinEddt} , '%Y-%m-%d %H:%i:%s')
 			</when>
-			<when test='custJoinYn != null and custJoinYn == "N"'>
+			<when test='newCustYn != null and newCustYn == "N"'>
 		  , CUST_JOIN_STDT = null
 		  , CUST_JOIN_EDDT = null
 			</when>
 		</choose>
 		<choose>
-			<when test='firstYn != null and firstYn == "Y"'>
+			<when test='firstOrdYn != null and firstOrdYn == "Y"'>
 		  , BUY_STDT = DATE_FORMAT(#{buyStdt} , '%Y-%m-%d %H:%i:%s')
 		  , BUY_EDDT = DATE_FORMAT(#{buyEddt} , '%Y-%m-%d %H:%i:%s')
 			</when>
-			<when test='firstYn != null and firstYn == "N"'>
+			<when test='firstOrdYn != null and firstOrdYn == "N"'>
 		  , BUY_STDT = null
 		  , BUY_EDDT = null
 			</when>
 		</choose>
-		<if test='cpnType != null and cpnType == "G230_20"'>
-		  , PAY_TYPE = #{payType}
-		</if>
-		  , CUST_JOIN_YN = #{custJoinYn}
+		  , NEW_CUST_YN = #{newCustYn}
 	</insert>
 
 	<!-- 쿠폰조회 목록 -->
@@ -292,7 +275,6 @@
 		SELECT A.CPN_ID                                               /*쿠폰ID*/
 		     , A.CPN_NM                                               /*쿠폰명*/
 		     , A.SITE_CD                                              /*사이트코드(공통코드G000)*/
-		     , A.USABLE_CUST_GB                                       /*사용가능고객구분(공통코드G100)*/
 		     , A.CPN_TYPE                                             /*쿠폰유형(공통코드G230)*/
 		     , A.DC_WAY                                               /*할인방식(공통코드G240)*/
 		     , A.DC_PVAL                                              /*할인값(PC). 할인방식이 금액이면 할인금액, 율이면 할인율*/
@@ -415,8 +397,6 @@
 			 , B.CPN_NM
 			 , B.SITE_CD
 			 , B.AF_LINK_CD
-			 , B.USABLE_CUST_GB
-			 , B.USABLE_CUST_GRADE
 			 , B.CPN_TYPE
 			 , B.APPLY_SCOPE
 			 , B.DC_WAY
@@ -439,15 +419,14 @@
 			 , B.REISSUANCE
 			 , B.CPN_STAT
 			 , B.END_ALIM_YN
-			 , B.FIRST_YN
-			 , B.DOWN_YN
+			 , B.FIRST_ORD_YN
+			 , B.DOWN_ABL_YN
 		     , B.DC_CD_GB
 			 , B.CUST_JOIN_STDT
 			 , B.CUST_JOIN_EDDT
 			 , B.BUY_STDT
 			 , B.BUY_EDDT
-			 , B.PAY_TYPE
-			 , B.CUST_JOIN_YN
+			 , B.NEW_CUST_YN
 			 , (SELECT AF_CHANNEL
 			      FROM TB_AF_LINK A
 			     WHERE A.AF_LINK_CD = B.AF_LINK_CD) AS AF_CHANNEL

+ 3 - 3
src/main/webapp/WEB-INF/views/marketing/CouponListForm.html

@@ -142,7 +142,7 @@
 		var cpnTypeList = gagajf.convertToArray([[${cpnTypeList}]]);
 		var siteCdList = gagajf.convertToArray([[${siteCdList}]]);
 		var dcWayList = gagajf.convertToArray([[${dcWayList}]]);
-		var usableCustGbList = gagajf.convertToArray([[${usableCustGbList}]]);
+		//var usableCustGbList = gagajf.convertToArray([[${usableCustGbList}]]);
 		var pdGbList = { "P":"기간", "D":"일수" };
 
 		var columnDefs = [];
@@ -157,12 +157,12 @@
 			{headerName: "쿠폰명", field: "cpnNm", width: 140, cellClass: 'text-center' , cellRenderer: function (params) {
 				return "<a href=\"javascript:void(0);\" onclick=\"cfnCouponCreatePopup('" + params.data.cpnId + "');\">" + params.value + "</a>";
 			}},
-			{headerName: "사용가능고객구분", field: "usableCustGb", width: 140, cellClass: 'text-center' ,
+			/*{headerName: "사용가능고객구분", field: "usableCustGb", width: 140, cellClass: 'text-center' ,
 				cellEditor: 'agRichSelectCellEditor',
 				cellEditorParams: { values: gagaAgGrid.extractValues(usableCustGbList) },
 				valueFormatter: function (params) { return gagaAgGrid.lookupValue(usableCustGbList, params.value); },
 				valueParser: function (params) { return gagaAgGrid.lookupKey(usableCustGbList, params.newValue);}
-			},
+			},*/
 			{headerName: "쿠폰유형", field: "cpnType", width: 140, cellClass: 'text-center' ,
 				cellEditor: 'agRichSelectCellEditor',
 				cellEditorParams: { values: gagaAgGrid.extractValues(cpnTypeList) },

+ 30 - 30
src/main/webapp/WEB-INF/views/marketing/CouponPopupForm.html

@@ -232,7 +232,7 @@
 										<tr class="firstBuyTr">
 											<th>첫구매여부<em class="required" title="필수"></em></th>
 											<td>
-												<select name="firstYn" id="firstYn" onchange="firstYnChange(this)" required="required" data-valid-name="첫구매여부">
+												<select name="firstOrdYn" id="firstOrdYn" onchange="firstOrdYnChange(this)" required="required" data-valid-name="첫구매여부">
 													<option value="Y">Y</option>
 													<option value="N" selected="selected">N</option>
 												</select>
@@ -264,7 +264,7 @@
 										<tr class="custJoinTr">
 											<th>신규회원여부<em class="required" title="필수"></em></th>
 											<td>
-												<select name="custJoinYn" id="custJoinYn" onchange="custJoinYnChange(this)" required="required" data-valid-name="신규회원여부">
+												<select name="newCustYn" id="newCustYn" onchange="newCustYnChange(this)" required="required" data-valid-name="신규회원여부">
 													<option value="Y">Y</option>
 													<option value="N" selected="selected">N</option>
 												</select>
@@ -312,7 +312,7 @@
 											</td>
 											<th>다운로드가능여부<em class="required" title="필수"></em></th>
 											<td>
-												<select name="downYn" id="downYn" required="required" data-valid-name="다운로드가능여부">
+												<select name="downAblYn" id="downAblYn" required="required" data-valid-name="다운로드가능여부">
 													<option value="Y">Y</option>
 													<option value="Y" selected="selected">N</option>
 												</select>
@@ -332,7 +332,7 @@
 												</select>
 											</td>
 										</tr>-->
-										<tr class="payTypeTr" style="display: none;">
+										<!--<tr class="payTypeTr" style="display: none;">
 											<th>결제수단<em class="required" title="필수"></em></th>
 											<td colspan="5">
 												<select name="payType" id="payType" data-valid-name="결제수단">
@@ -346,7 +346,7 @@
 											<td colspan="5">
 
 											</td>
-										</tr>
+										</tr>-->
 										<tr>
 											<th>쿠폰상태<em class="required" title="필수"></em></th>
 											<td>
@@ -762,7 +762,7 @@
 
 	function checkValidation(){
 		//신규가입 지급한다면 validation 체크
-		if( $('#custJoinYn option:selected').val() == "Y" ){
+		if( $('#newCustYn option:selected').val() == "Y" ){
 			var fromDate = $('#CouponForm input[name=custJoinStdt]').val();
 			var toDate = $('#CouponForm input[name=custJoinEddt]').val();
 
@@ -788,7 +788,7 @@
 		}
 
 		// 첫구매 지급하면 validation 체크
-		if( $('#firstYn option:selected').val() == "Y" ){
+		if( $('#firstOrdYn option:selected').val() == "Y" ){
 			var fromDate = $('#CouponForm input[name=buyStdt]').val();
 			var toDate = $('#CouponForm input[name=buyEddt]').val();
 
@@ -923,12 +923,12 @@
 
 		// 주문서 쿠폰 선택시 결제수단 노출
 		if(radioValue == 'G230_20') {
-			$('#CouponForm .payTypeTr').show();
-			$('#CouponForm #payType').attr('required' , true);
+			//$('#CouponForm .payTypeTr').show();
+			//$('#CouponForm #payType').attr('required' , true);
 			$("#CouponForm .dcCdGb").show();		// 할인쿠폰유형 노출
 		} else {
-			$('#CouponForm .payTypeTr').hide();
-			$('#CouponForm #payType').attr('required' , false );
+			//$('#CouponForm .payTypeTr').hide();
+			//$('#CouponForm #payType').attr('required' , false );
 			$("#CouponForm .dcCdGb").hide();		// 할인쿠폰유형 숨김
 			$("#CouponForm input:radio[name='dcCdGb']:radio[value='G233_00']").prop('checked', true);		// 주문서 쿠폰이 아닐 경우 일반 쿠폰으로 설정
 		}
@@ -943,7 +943,7 @@
 			$("#CouponForm .dcCdCheck2").show();
 			$("#CouponForm .serialCpnArea").hide();
 			$("#CouponForm .randomCpnArea").hide();
-			$("#CouponForm #custJoinYn").parent().attr("colspan", "");
+			$("#CouponForm #newCustYn").parent().attr("colspan", "");
 			$("#CouponForm .normalCol").attr("colspan", "5");
 			$('#CouponForm input[name="serialCpnNm"]').attr('required' , false);
 			$('#CouponForm input[name="serialCpnQty"]').attr('required' , false);
@@ -966,7 +966,7 @@
 			}
 			$("#CouponForm .dcCdCheck1").hide();								// 총발행제한수량, 1회발행수량, 1인당발행제한수량 숨김
 			$("#CouponForm .dcCdCheck2").hide();								// 총발행제한수량, 1회발행수량, 1인당발행제한수량 숨김
-			$("#CouponForm #custJoinYn").parent().attr("colspan", "5");		// 총발행제한 수량을 없애면서 신규회원여부 colspan 수정
+			$("#CouponForm #newCustYn").parent().attr("colspan", "5");		// 총발행제한 수량을 없애면서 신규회원여부 colspan 수정
 		}
 	});
 
@@ -1283,12 +1283,12 @@
 	}
 
 	// 첫구매여부 변경시
-	function firstYnChange(pThis){
+	function firstOrdYnChange(pThis){
 		var selectVal = $(pThis).val();
 
 		if(typeof selectVal == "undefined") {
 			if(mode == "U") {
-				selectVal = cpnDetail.firstYn;
+				selectVal = cpnDetail.firstOrdYn;
 			} else {
 				selectVal = "N";
 			}
@@ -1306,12 +1306,12 @@
 	}
 
 	// 신규회원여부 변경시
-	function custJoinYnChange(pThis){
+	function newCustYnChange(pThis){
 		var selectVal = $(pThis).val();
 
 		if(typeof selectVal == "undefined") {
 			if(mode == "U") {
-				selectVal = cpnDetail.custJoinYn;
+				selectVal = cpnDetail.newCustYn;
 			} else {
 				selectVal = "N";
 			}
@@ -1485,16 +1485,16 @@
 			$("#CouponForm #usableCustGb").val(cpnDetail.usableCustGb).prop("selected", true);
 			$("#CouponForm #usableCustGrade").val(cpnDetail.usableCustGrade).prop("selected", true);
 			$("#CouponForm #endAlimYn").val(cpnDetail.endAlimYn).prop("selected", true);
-			$("#CouponForm #firstYn").val(cpnDetail.firstYn).prop("selected", true);
+			$("#CouponForm #firstOrdYn").val(cpnDetail.firstOrdYn).prop("selected", true);
 			$("#CouponForm #reissuance").val(cpnDetail.reissuance).prop("selected", true);
 			$("#CouponForm #dnGb").val(cpnDetail.dnGb).prop("selected", true);
 			$("#CouponForm #cpnStat").val(cpnDetail.cpnStat).prop("selected", true);
-			$("#CouponForm #custJoinYn").val(cpnDetail.custJoinYn).prop("selected", true);
+			$("#CouponForm #newCustYn").val(cpnDetail.newCustYn).prop("selected", true);
 			$("#CouponForm #pdGb").val(cpnDetail.pdGb).prop("selected", true);
 			$("#CouponForm #siteCd").val(cpnDetail.siteCd).prop("selected", true);
 			$("#CouponForm #afChannel").val(cpnDetail.afChannel).prop("selected", true);
 			$("#CouponForm #cpnNm").val(cpnDetail.cpnNm);
-			$("#CouponForm #downYn").val(cpnDetail.downYn);
+			$("#CouponForm #downAblYn").val(cpnDetail.downAblYn);
 			$("#CouponForm #buyLimitAmt").val(cpnDetail.buyLimitAmt);
 			$("#CouponForm #cpnId").val(cpnDetail.cpnId);
 
@@ -1568,18 +1568,18 @@
 				$("#CouponForm #usableCustGrade").attr('disabled', true);
 				$("#CouponForm #endAlimYn").attr('readonly', true);
 				$("#CouponForm #endAlimYn").attr('disabled', true);
-				$("#CouponForm #firstYn").attr('readonly', true);
-				$("#CouponForm #firstYn").attr('disabled', true);
+				$("#CouponForm #firstOrdYn").attr('readonly', true);
+				$("#CouponForm #firstOrdYn").attr('disabled', true);
 				$("#CouponForm #reissuance").attr('readonly', true);
 				$("#CouponForm #reissuance").attr('disabled', true);
 				$("#CouponForm #dnGb").attr('readonly', true);
 				$("#CouponForm #dnGb").attr('disabled', true);
-				$("#CouponForm #custJoinYn").attr('readonly', true);
-				$("#CouponForm #custJoinYn").attr('disabled', true);
+				$("#CouponForm #newCustYn").attr('readonly', true);
+				$("#CouponForm #newCustYn").attr('disabled', true);
 				$("#CouponForm #pdGb").attr('readonly', true);
 				$("#CouponForm #pdGb").attr('disabled', true);
-				$("#CouponForm #downYn").attr('readonly', true);
-				$("#CouponForm #downYn").attr('disabled', true);
+				$("#CouponForm #downAblYn").attr('readonly', true);
+				$("#CouponForm #downAblYn").attr('disabled', true);
 				$("#CouponForm #siteCd").attr('readonly', true);
 				$("#CouponForm #siteCd").attr('disabled', true);
 				$("#CouponForm #cpnNm").attr('readonly', true);
@@ -1637,7 +1637,7 @@
 
 			}
 			// 첫구매여부 적용하는 경우 날짜 세팅
-			if (cpnDetail.firstYn == "Y") {
+			if (cpnDetail.firstOrdYn == "Y") {
 				splitDate("start", cpnDetail.buyStdt, "buy");
 				splitDate("end", cpnDetail.buyEddt, "buy");
 				if(issueCnt > 0) {
@@ -1650,7 +1650,7 @@
 				}
 			}
 			// 신규회원여부 적용하는 경우 날짜 세팅
-			if (cpnDetail.custJoinYn == "Y") {
+			if (cpnDetail.newCustYn == "Y") {
 				splitDate("start", cpnDetail.custJoinStdt, "custJoin");
 				splitDate("end", cpnDetail.custJoinEddt, "custJoin");
 				if(issueCnt > 0) {
@@ -1665,8 +1665,8 @@
 		}
 		// 기본세팅
 		pdGbChange();
-		firstYnChange();
-		custJoinYnChange();
+		firstOrdYnChange();
+		newCustYnChange();
 		fnChangeAfLinkCdList();
 
 		// 제휴채널2뎁스 기본세팅

+ 1 - 1
src/main/webapp/WEB-INF/views/marketing/FreeGoodsPromotionForm.html

@@ -22,7 +22,7 @@
 		<!-- 메뉴 설명 -->
 		<div class="infoBox menu-desc"></div>
 
-		<form id="searchForm" name="searchForm" action="#" th:action="@{'/marketing/freeGoodsPromotion/list'}">
+		<form id="searchForm" name="searchForm" action="#" th:action="@{'/marketing/freegoods/promotion/list'}">
 			<input type="hidden" id="searchGb" name="searchGb" />
 			<input type="hidden" id="imageViewYn" name="imageViewYn" />
 			<input type="hidden" id="goodsPriceYn" name="goodsPriceYn" value="Y"/> <!-- 즉시할인판매가 조회 -->

+ 5 - 5
src/main/webapp/WEB-INF/views/marketing/FreeGoodsPromotionRegiForm.html

@@ -595,7 +595,7 @@
 		params.gbn = $('#freeGoodsPromotionForm input[name=gbn]').val();
 		params.freegiftSq = $('#freeGoodsPromotionForm input[name=freegiftSq]').val();
 
-		cfnAjaxSubmit("/marketing/freeGoodsPromotion/detail", "json", fnFreeGoodsPromotionSearchCallback, params);
+		cfnAjaxSubmit("/marketing/freegoods/promotion/detail", "json", fnFreeGoodsPromotionSearchCallback, params);
 	}
 
 	$(document).ready(function() {
@@ -887,7 +887,7 @@
 		};
 
 		var jsonData = JSON.stringify(data);
-		gagajf.ajaxJsonSubmit('/marketing/freeGoodsPromotion/save', jsonData, fnFreeGoodsPromotionSaveFin);
+		gagajf.ajaxJsonSubmit('/marketing/freegoods/promotion/save', jsonData, fnFreeGoodsPromotionSaveFin);
 	});
 
 	// 할인방식 변경
@@ -915,7 +915,7 @@
 						, freegiftSq : $("#freeGoodsPromotionForm input[name=freegiftSq]").val()
 					}
 					var jsonData = JSON.stringify(data);
-					gagajf.ajaxJsonSubmit('/marketing/freeGoodsPromotion/changeStat', jsonData, fnFreeGoodsPromotionSaveFin);
+					gagajf.ajaxJsonSubmit('/marketing/freegoods/promotion/change/stat', jsonData, fnFreeGoodsPromotionSaveFin);
 				}
 			}
 		});
@@ -932,7 +932,7 @@
 						, freegiftSq: $("#freeGoodsPromotionForm input[name=freegiftSq]").val()
 					}
 					var jsonData = JSON.stringify(data);
-					gagajf.ajaxJsonSubmit('/marketing/freeGoodsPromotion/changeStat', jsonData, function() {
+					gagajf.ajaxJsonSubmit('/marketing/freegoods/promotion/change/stat', jsonData, function() {
 						uifnPopupClose('popupFreeGoodsPromotionRegi');
 					});
 				}
@@ -951,7 +951,7 @@
 						, freegiftSq: $("#freeGoodsPromotionForm input[name=freegiftSq]").val()
 					}
 					var jsonData = JSON.stringify(data);
-					gagajf.ajaxJsonSubmit('/marketing/freeGoodsPromotion/changeStat', jsonData, fnFreeGoodsPromotionSaveFin);
+					gagajf.ajaxJsonSubmit('/marketing/freegoods/promotion/change/stat', jsonData, fnFreeGoodsPromotionSaveFin);
 				}
 			}
 		});

+ 39 - 22
src/main/webapp/WEB-INF/views/marketing/MorebetterPopupForm.html

@@ -61,12 +61,12 @@
 						<td>
 							<input type="hidden" name="tmtbStdt" id="tmtbStdt" required="required" data-valid-name="다다익선시작일시">
 							<input type="text" class="schDate w100" name="eventStdt" id="eventStdt" maxlength="10" th:value="${#calendars.format(#calendars.createNow(), 'yyyy-MM-dd')}"/>
-							<select name="eventStHH" data-valid-name="다다익선시작(시)" style="width: 65px;"> <!--th:disabled="${mode == 'U'}"-->
+							<select name="eventStHH" id="eventStHH" data-valid-name="다다익선시작(시)" style="width: 65px;"> <!--th:disabled="${mode == 'U'}"-->
 								<th:block th:each="num, index : ${#numbers.sequence(0,23)}">
 									<option  th:value="${#numbers.formatInteger(num,2)}" th:text="|${#numbers.formatInteger(num,2)}시|" th:selected="${tmtbMstInfo.eventStHH == #numbers.formatInteger(num,2)}">시간</option>
 								</th:block>
 							</select>
-							<select name="eventStMM" data-valid-name="다다익선시작(분)" style="width: 65px;">
+							<select name="eventStMM" id="eventStMM" data-valid-name="다다익선시작(분)" style="width: 65px;">
 								<th:block th:each="num, index : ${#numbers.sequence(0,59)}">
 									<option  th:value="${#numbers.formatInteger(num,2)}"  th:text="|${#numbers.formatInteger(num,2)}분|" th:selected="${tmtbMstInfo.eventStMM == #numbers.formatInteger(num,2)}">분</option>
 								</th:block>
@@ -76,12 +76,13 @@
 						<td>
 							<input type="hidden" name="tmtbEddt" id="tmtbEddt" required="required" data-valid-name="다다익선종료일시">
 							<input type="text" class="schDate w100" name="eventEddt" id="eventEddt" maxlength="10" th:value="${#calendars.format(#calendars.createNow(), 'yyyy-MM-dd')}"/>
-							<select name="eventEdHH" data-valid-name="다다익선종료(시)" style="width: 65px;">
+							<select name="eventEdHH" id="eventEdHH" data-valid-name="다다익선종료(시)" style="width: 65px;">
 								<th:block th:each="num, index : ${#numbers.sequence(0,23)}">
 									<option  th:value="${#numbers.formatInteger(num,2)}" th:text="|${#numbers.formatInteger(num,2)}시|" th:selected="${tmtbMstInfo.eventEdHH == #numbers.formatInteger(num,2)}">시간</option>
 								</th:block>
+								<option th:text="24시" th:value="24"></option>
 							</select>
-							<select name="eventEdMM" data-valid-name="다다익선종료(분)" style="width: 65px;">
+							<select name="eventEdMM" id="eventEdMM" data-valid-name="다다익선종료(분)" style="width: 65px;">
 								<th:block th:each="num, index : ${#numbers.sequence(0,59)}">
 									<option  th:value="${#numbers.formatInteger(num,2)}"  th:text="|${#numbers.formatInteger(num,2)}분|" th:selected="${tmtbMstInfo.eventEdMM == #numbers.formatInteger(num,2)}">분</option>
 								</th:block>
@@ -526,6 +527,15 @@
 			$("input:radio[name='dcWay']:radio[value="+tmtbMstInfo.dcWay+"]").prop('checked', true); // 선택하기
 			$("input:radio[name='multiYn']:radio[value="+tmtbMstInfo.multiYn+"]").prop('checked', true); // 선택하기
 
+			let edDtArr = tmtbMstInfo.tmtbEddt.split(" ");
+			if(edDtArr[1] == "23:59:59") {
+				edHour = "24";
+				edMinute = "00";
+				$('#moreBetterForm #eventEdHH option:last').show().prop("selected", true);
+				$("#moreBetterForm #eventEdMM option").hide();
+				$('#moreBetterForm #eventEdMM option:first').show().prop("selected", true);
+			}
+
 			if(tmtbMstInfo.tmtbStat == "G232_10"){
 				$("#btnMorebetterSave").show();		// 저장버튼
 				$("#btnChangeStatIng").show();		// 진행버튼
@@ -540,11 +550,27 @@
 		if(mode=="N"){
 			$("input:radio[name='disTmtbStat']:radio[value='G232_10']").prop('checked', true); // 선택하기
 			$("#btnMorebetterSave").show();	// 저장버튼
+
+			if(tmtbMstInfo.eventEdHH == "24"){
+				$("#moreBetterForm #eventEdHH option:last").show().prop("selected", true);
+				$("#moreBetterForm #eventEdMM option").hide();
+				$('#moreBetterForm #eventEdMM option:first').show().prop("selected", true);
+			}
 		}
 		//cfnCreateCalendar('#tmtbTerms', 'tmtbStdt', 'tmtbEddt', true, '행사기간', 'X');
 		cfnCreateCalendar('#tmtbTerms', 'eventStdt', 'eventEddt', true, '행사기간', 'X');
 	});
 
+	// 종료시간 클릭 시
+	$("#moreBetterForm #eventEdHH").bind('click change', function () {
+		if(this.value == 24) {
+			$("#moreBetterForm #eventEdMM option").hide();
+			$('#moreBetterForm #eventEdMM option:first').show().prop("selected", true);
+		} else {
+			$("#moreBetterForm #eventEdMM option").show();
+		}
+	});
+
 	var fnGoodsGbCheck = function (){
 		let applyGoodsData = gagaAgGrid.getAllRowData(gridOptionsFGApplyGoodsList);
 		var checkCnt = 0;
@@ -585,14 +611,18 @@
 			$('#moreBetterForm input[name=tmtbStdt]').focus();
 			return false;
 		}
+		var eventStDt = "";
+		var eventEdDt = "";
 
-		var eventStDt = $('#moreBetterForm input[name=eventStdt]').val()+$('#moreBetterForm select[name=eventStHH]').val()+$('#moreBetterForm select[name=eventStMM]').val()+'00';
-		var eventEdDt = $('#moreBetterForm input[name=eventEddt]').val()+$('#moreBetterForm select[name=eventEdHH]').val()+$('#moreBetterForm select[name=eventEdMM]').val()+'59';
+		eventStDt = $('#moreBetterForm input[name=eventStdt]').val()+$('#moreBetterForm select[name=eventStHH]').val()+$('#moreBetterForm select[name=eventStMM]').val()+'00';
+		if($('#moreBetterForm select[name=eventEdHH]').val() == "24"){
+			eventEdDt = $('#moreBetterForm input[name=eventEddt]').val()+'235959';
+		}else{
+			eventEdDt = $('#moreBetterForm input[name=eventEddt]').val()+$('#moreBetterForm select[name=eventEdHH]').val()+$('#moreBetterForm select[name=eventEdMM]').val()+'00';
+		}
 
 		eventStDt = eventStDt.replace(/[^0-9]/g, '');
 		eventEdDt = eventEdDt.replace(/[^0-9]/g, '');
-		console.log('2.eventStDt>>'+eventStDt);
-		console.log('3.eventEdDt>>'+eventEdDt);
 
 		let fromDate = $('#moreBetterForm input[name=tmtbStdt]').val(eventStDt);
 		let toDate = $('#moreBetterForm input[name=tmtbEddt]').val(eventEdDt);
@@ -611,19 +641,6 @@
 		let allApplyBurdenData = gagaAgGrid.getAllRowData(gridOptionsApplyBurdenList);
 		let allSectionGbData = gagaAgGrid.getAllRowData(gridOptionsSectionGbList);
 
-		if(allSupplyCompData.length > 0){
-			if(allBrandData.length < 1){
-				mcxDialog.alert('브랜드를 추가해주세요.');
-				return;
-			}
-		}
-		if(allBrandData.length > 0){
-			if(allSupplyCompData.length < 1){
-				mcxDialog.alert('공급업체를 추가해주세요.');
-				return;
-			}
-		}
-
 		if(allSectionGbData.length < 1){
 			mcxDialog.alert("할인구간을 설정해주세요.");
 			return false;
@@ -681,7 +698,7 @@
 
 		var jsonData = JSON.stringify(data);
 
-		gagajf.ajaxJsonSubmit($('#moreBetterForm').prop('action'), jsonData, fnMorebetterSaveCollback);
+		//gagajf.ajaxJsonSubmit($('#moreBetterForm').prop('action'), jsonData, fnMorebetterSaveCollback);
 	});
 
 	var fnMorebetterSaveCollback = function(result){

+ 15 - 16
src/main/webapp/WEB-INF/views/order/ExchangeRequestForm.html

@@ -90,7 +90,7 @@
 							<th>회수지주소 <i class="star"></i></th>
 							<td colspan="3">
 								<input type="text" name ="chgerZipcode" class="w100" readonly="readonly"/>
-								<button type="button" class="btn btn-info" onclick="fnOpenDaumAddr('delvLoc');">우편번호찾기</button>
+								<button type="button" class="btn btn-info" onclick="fnOpenDaumAddr('withdraw');">우편번호찾기</button>
 								<input type="text" name ="chgerBaseAddr" class="w300"/>
 								<input type="text" name ="chgerDtlAddr" class="w300"/>
 							</td>
@@ -141,7 +141,7 @@
 						<th>교환지주소 <i class="star"></i></th>
 						<td colspan="3">
 							<input type="text" name ="recipZipcode" class="w100" readonly="readonly"/>
-							<button type="button" class="btn btn-info" onclick="fnOpenDaumAddr('delvLoc');">우편번호찾기</button>
+							<button type="button" class="btn btn-info" onclick="fnOpenDaumAddr('exchange');">우편번호찾기</button>
 							<input type="text" name ="recipBaseAddr" class="w300"/>
 							<input type="text" name ="recipDtlAddr" class="w300"/>
 						</td>
@@ -497,8 +497,8 @@ gridOptionsExchangeReqList.rowSelection = 'multiple';
 
 // 3. 배송정보(환불정보)
 var columnDelvCdList = [
-	{headerName: "업체"			, field: "supplyCompNm"		, width: 100	, cellClass: 'text-center', hide: temp2},
-	{headerName: "배송비코드"		, field: "delvFeeCd"		, width: 100	, cellClass: 'text-center', hide: temp2},
+	{headerName: "업체"			, field: "supplyCompNm"		, width: 100	, cellClass: 'text-center'},
+	{headerName: "배송비코드"		, field: "delvFeeCd"		, width: 100	, cellClass: 'text-center'},
 	{
 		headerName		: "추가배송비"
 		, field			: "addDelvFee"
@@ -507,13 +507,12 @@ var columnDelvCdList = [
 		, cellRenderer	: function (params) {
 			return params.value.addComma();
 		}
-		, hide			: temp2
 	},
-	{headerName: "반품지명"		, field: "rtnLocNm"			, width: 100	, cellClass: 'text-center', hide: temp2},
-	{headerName: "반품지전화번호"	, field: "rtnLocTelno"		, width: 100	, cellClass: 'text-center', hide: temp2},
-	{headerName: "반품지우편번호"	, field: "rtnLocZipcode"	, width: 100	, cellClass: 'text-center', hide: temp2},
-	{headerName: "반품지기본주소"	, field: "rtnLocBaseAddr"	, width: 300	, cellClass: 'text-center', hide: temp2},
-	{headerName: "반품지상세주소"	, field: "rtnLocDtlAddr"	, width: 300	, cellClass: 'text-center', hide: temp2},
+	{headerName: "반품지명"		, field: "rtnLocNm"			, width: 100	, cellClass: 'text-center'},
+	{headerName: "반품지전화번호"	, field: "rtnLocTelno"		, width: 100	, cellClass: 'text-center'},
+	{headerName: "반품지우편번호"	, field: "rtnLocZipcode"	, width: 100	, cellClass: 'text-center'},
+	{headerName: "반품지기본주소"	, field: "rtnLocBaseAddr"	, width: 300	, cellClass: 'text-center'},
+	{headerName: "반품지상세주소"	, field: "rtnLocDtlAddr"	, width: 300	, cellClass: 'text-center'},
 ];
 var gridOptionsDelvCdList = gagaAgGrid.getGridOptions(columnDelvCdList);
 </script>
@@ -620,8 +619,8 @@ var fnExchange = function () {
 			mcxDialog.alert("휴대전화를 입력하세요."); return;
 		}
 	
-		var chgerPhnno 		= chgerPhnno1 + chgerPhnno2 + chgerPhnno3;
-		var chgerTelno 		= chgerTelno1 + chgerTelno2 + chgerTelno3;
+		var chgerPhnno 		= chgerPhnno1 + '-' + chgerPhnno2 + '-' + chgerPhnno3;
+		var chgerTelno 		= chgerTelno1 + '-' + chgerTelno2 + '-' + chgerTelno3;
 		var chgerEmail 		= orderInfoList[0].ordEmail;
 	}
 
@@ -659,8 +658,8 @@ var fnExchange = function () {
 		mcxDialog.alert("휴대전화를 입력하세요."); return;
 	}
 	
-	var recipPhnno 		= recipPhnno1 + recipPhnno2 + recipPhnno3;
-	var recipTelno 		= recipTelno1 + recipTelno2 + recipTelno3;
+	var recipPhnno 		= recipPhnno1 + '-' + recipPhnno2 + '-' + recipPhnno3;
+	var recipTelno 		= recipTelno1 + '-' + recipTelno2 + '-' + recipTelno3;
 	var recipEmail 		= orderInfoList[0].ordEmail;
 	
 	var jsonObj = {
@@ -713,6 +712,7 @@ var fnExchange = function () {
 var fnOpenDaumAddr = function(loc) {
 	let daumZip = new daum.Postcode({
 		oncomplete: function(data) {
+			console.log(data);
 			// 우편번호와 주소 정보를 해당 필드에 넣는다.
 			if (loc == 'withdraw') {
 				$('#exchangeRequestFrm input[name=chgerZipcode]').val(data.zonecode);
@@ -873,8 +873,7 @@ var fnAddDelvFee = function (exchangeRequestTargetList) {
 $(document).ready(function() {
 	// 1. 그리드생성
 	gagaAgGrid.createGrid('gridOrderCancelRequestList'		, gridOptionsExchangeReqList);			// 주문정보
-	//gagaAgGrid.createGrid('gridOrderCancelRequestToBeList'	, gridOptionsExchangeReqToBeList);		// 취소정보
-	gagaAgGrid.createGrid('gridDelvCdList'					, gridOptionsDelvCdList);				// 배송비정보
+	gagaAgGrid.createGrid('gridDelvCdList'					, gridOptionsDelvCdList);				// 배송정보
 	gridOptionsExchangeReqList.api.setRowData(cancelRequestTargetList);
 	
 	// 2.1 TOTAL ROWS 없애기

+ 5 - 5
src/main/webapp/WEB-INF/views/order/OrderDetailForm.html

@@ -166,6 +166,8 @@ var orderChangeInfo 		= [[${orderChangeInfo}]];				// 취소/반품/교환요청
 var orderRefundInfo 		= [[${orderRefundInfo}]];				// 환불정보
 var orderCounselInfo 		= [[${orderCounselInfo}]];				// 상담내역
 var orderAdminMemoInfo 		= [[${orderAdminMemoInfo}]];			// 관리자메모
+
+var canChgDelvStat			= ['G013_10', 'G013_11', 'G013_17', 'G013_20', 'G013_30', 'G013_40'];
 </script>
 
 <!-- AgGrid 컬럼 세팅 -->
@@ -501,7 +503,6 @@ var gridOptionsOrderFreeGiftInfo = gagaAgGrid.getGridOptions(columnDefsOrderFree
 var columnDefsDeliveryInfo = [
 	{headerName: "배송지번호"		, field: "delvAddrSq"		, width: 80, cellClass: 'text-center'},
 	{headerName: "주문구분"		, field: "exchGbNm"			, width: 80, cellClass: 'text-center'},
-	{headerName: "수정여부"		, field: "delvAddrEditYn"	, width: 80, cellClass: 'text-center', hide: true},
 	{headerName: "받는분"			, field: "recipNm"			, width: 80, cellClass: 'text-left', editable: true},
 	{headerName: "핸드폰번호"		, field: "recipPhnno"		, width: 120, cellClass: 'text-left', editable: true},
 	{headerName: "전화번호"		, field: "recipTelno"		, width: 120, cellClass: 'text-left', editable: true},
@@ -512,10 +513,9 @@ var columnDefsDeliveryInfo = [
 		, cellClass		: 'text-center'
 		, cellRenderer	: function (params) {
 			var rtnStr = ""
-			
-			if (params.data.delvAddrEditYn < 1) {
+			if (canChgDelvStat.includes(params.data.ordDtlStat)) {
 				// 배송지 수정 (주문배송, 교환배송)
-				rtnStr += params.value;			
+				rtnStr += params.value;
 				rtnStr += "<button type=\"button\" style=\"margin-left:10px\" class=\"btn btn-info\" onclick=\"fnOpenDaumAddr('" + params.node.rowIndex + "', 'ADDR');\">POST</button>";
 				rtnStr += "<button type=\"button\" class=\"btn btn-info\" onclick=\"fnUpdateOrderAddr('" + params.node.rowIndex + "');\">저장</button>";
 			} else {
@@ -656,7 +656,7 @@ var columnDefsOrderChangeInfo = [
 			var rtnStr = ""
 			
 			// 회수지수정가능(교환요청, 반품요청)
-			if (params.data.chgStat == 'G685_30' || params.data.chgStat == 'G685_40' ) {
+			if (!params.data.wdGb != 'D' && (params.data.chgStat == 'G685_30' || params.data.chgStat == 'G685_40')) {
 				
 				rtnStr += params.value;			
 				rtnStr += "<button type=\"button\" style=\"margin-left:10px\" class=\"btn btn-info\" onclick=\"fnOpenDaumAddr('" + params.node.rowIndex + "', 'CLAIM');\">POST</button>";

+ 1 - 1
src/main/webapp/ux/js/admin.popup.js

@@ -704,7 +704,7 @@ var cfnOpenBrandListPopup = function(callbackfn, multiGb, searchTxt) {
  * @author : xodud1202
  */
 var cfnOpenFreeGoodsPromotionSetPopup = function(gbn, freegiftSq) {
-	var actionUrl = "/marketing/freeGoodsRegiPopup/form?gbn=" + gbn;
+	var actionUrl = "/marketing/freegoods/promotion/popup/form?gbn=" + gbn;
 	if (typeof(freegiftSq) != 'undefined') actionUrl += "&freegiftSq=" + freegiftSq;
 
 	uifnPopupClose('popupFreeGoodsPromotionRegi');