bin2107 5 лет назад
Родитель
Сommit
790b308585

+ 14 - 4
src/main/java/com/style24/admin/biz/dao/TsaCouponDao.java

@@ -1,12 +1,11 @@
 package com.style24.admin.biz.dao;
 package com.style24.admin.biz.dao;
 
 
-import com.style24.core.support.annotation.ShopDs;
-import com.style24.persistence.domain.*;
-import org.springframework.stereotype.Component;
-
 import java.util.ArrayList;
 import java.util.ArrayList;
 import java.util.Collection;
 import java.util.Collection;
 
 
+import com.style24.core.support.annotation.ShopDs;
+import com.style24.persistence.domain.Coupon;
+
 /**
 /**
  * 쿠폰 DAO
  * 쿠폰 DAO
  * @author xyzp1539
  * @author xyzp1539
@@ -14,6 +13,7 @@ import java.util.Collection;
  */
  */
 @ShopDs
 @ShopDs
 public interface TsaCouponDao {
 public interface TsaCouponDao {
+
 	/**
 	/**
 	 * 쿠폰 리스트 조회
 	 * 쿠폰 리스트 조회
 	 * @param  Coupon
 	 * @param  Coupon
@@ -39,4 +39,14 @@ public interface TsaCouponDao {
 	 * @since  2021-01-12
 	 * @since  2021-01-12
 	 */
 	 */
 	void couponInsert(Coupon params);
 	void couponInsert(Coupon params);
+
+	/**
+	 * 쿠폰조회 목록
+	 * @param coupon - 쿠폰 정보
+	 * @return
+	 * @author gagamel
+	 * @since 2021. 1. 8
+	 */
+	Collection<Coupon> getCouponRetrieveList(Coupon coupon);
+
 }
 }

+ 28 - 0
src/main/java/com/style24/admin/biz/dao/TsaCustomerDao.java

@@ -0,0 +1,28 @@
+package com.style24.admin.biz.dao;
+
+import com.style24.core.support.annotation.ShopDs;
+import com.style24.persistence.domain.Customer;
+import com.style24.persistence.domain.CustomerSearch;
+import org.springframework.stereotype.Repository;
+
+import java.util.Collection;
+
+/**
+ * 회원 Dao
+ * 
+ * @author jsshin
+ * @since 2020. 11. 3
+ */
+@ShopDs
+@Repository
+public interface TsaCustomerDao {
+
+	/**
+	 * 활동회원 목록
+	 * @param customerSearch - 검색조건
+	 * @return Collection<Customer>
+	 * @author jsshin
+	 * @since 2020. 01. 12
+	 */
+	Collection<Customer> getCustomerActiveList(CustomerSearch customerSearch);
+}

+ 3 - 4
src/main/java/com/style24/admin/biz/dao/TsaMarketingDao.java

@@ -1,12 +1,11 @@
 package com.style24.admin.biz.dao;
 package com.style24.admin.biz.dao;
 
 
+import java.util.Collection;
+
 import org.springframework.stereotype.Component;
 import org.springframework.stereotype.Component;
 
 
 import com.style24.core.support.annotation.ShopDs;
 import com.style24.core.support.annotation.ShopDs;
-import com.style24.persistence.domain.*;
-
-import java.util.ArrayList;
-import java.util.Collection;
+import com.style24.persistence.domain.FreeGoodsPromotion;
 
 
 /**
 /**
  * 마케팅 Dao
  * 마케팅 Dao

+ 37 - 31
src/main/java/com/style24/admin/biz/service/TsaCouponService.java

@@ -34,9 +34,6 @@ public class TsaCouponService {
 	@Autowired
 	@Autowired
 	private TsaCommonService commonService;
 	private TsaCommonService commonService;
 
 
-
-
-
 	/**
 	/**
 	 * 쿠폰 저장
 	 * 쿠폰 저장
 	 * @param params
 	 * @param params
@@ -53,19 +50,18 @@ public class TsaCouponService {
 		params.setUpdNo(TsaSession.getInfo().getUserNo());
 		params.setUpdNo(TsaSession.getInfo().getUserNo());
 
 
 		// 자동생성이면 시퀀스 가져오기
 		// 자동생성이면 시퀀스 가져오기
-		if(params.getCpnId() == null || params.getCpnId().equals("")) {
+		if (params.getCpnId() == null || params.getCpnId().equals("")) {
 			int sequence = commonService.getNextSequence("SEQ_COUPON");
 			int sequence = commonService.getNextSequence("SEQ_COUPON");
-			cpnId = "CPN"+sequence;
+			cpnId = "CPN" + sequence;
 		} else {
 		} else {
 			cpnId = params.getCpnId();
 			cpnId = params.getCpnId();
 		}
 		}
 
 
-		log.info(">>>> CPNID : {}" , cpnId );
+		log.info(">>>> CPNID : {}", cpnId);
 		params.setCpnId(cpnId);
 		params.setCpnId(cpnId);
 
 
 		couponDao.couponInsert(params);
 		couponDao.couponInsert(params);
 
 
-
 		//checkCpnValidation(params);
 		//checkCpnValidation(params);
 
 
 	}
 	}
@@ -81,27 +77,27 @@ public class TsaCouponService {
 		ObjectMapper mapper = new ObjectMapper();
 		ObjectMapper mapper = new ObjectMapper();
 
 
 		try {
 		try {
-			if(params.getSupplyCompList() != null) {
+			if (params.getSupplyCompList() != null) {
 				cpnSupplyCompList = mapper.readValue(params.getSupplyCompList(), new TypeReference<Collection<Coupon>>() {
 				cpnSupplyCompList = mapper.readValue(params.getSupplyCompList(), new TypeReference<Collection<Coupon>>() {
 				});
 				});
 			}
 			}
-			if(params.getBrandList() != null) {
+			if (params.getBrandList() != null) {
 				cpnBrandList = mapper.readValue(params.getBrandList(), new TypeReference<Collection<Coupon>>() {
 				cpnBrandList = mapper.readValue(params.getBrandList(), new TypeReference<Collection<Coupon>>() {
 				});
 				});
 			}
 			}
-			if(params.getApplyGoodsList() != null) {
+			if (params.getApplyGoodsList() != null) {
 				cpnApplyGoodsList = mapper.readValue(params.getApplyGoodsList(), new TypeReference<Collection<Coupon>>() {
 				cpnApplyGoodsList = mapper.readValue(params.getApplyGoodsList(), new TypeReference<Collection<Coupon>>() {
 				});
 				});
 			}
 			}
-			if(params.getCateList() != null) {
+			if (params.getCateList() != null) {
 				cpnCateList = mapper.readValue(params.getCateList(), new TypeReference<Collection<Coupon>>() {
 				cpnCateList = mapper.readValue(params.getCateList(), new TypeReference<Collection<Coupon>>() {
 				});
 				});
 			}
 			}
-			if(params.getBurdenList() != null) {
+			if (params.getBurdenList() != null) {
 				cpnBurdenList = mapper.readValue(params.getBurdenList(), new TypeReference<Collection<Coupon>>() {
 				cpnBurdenList = mapper.readValue(params.getBurdenList(), new TypeReference<Collection<Coupon>>() {
 				});
 				});
 			}
 			}
-			if(params.getCateList() != null) {
+			if (params.getCateList() != null) {
 				cpnExcepGoodsList = mapper.readValue(params.getExceptGoodsList(), new TypeReference<Collection<Coupon>>() {
 				cpnExcepGoodsList = mapper.readValue(params.getExceptGoodsList(), new TypeReference<Collection<Coupon>>() {
 				});
 				});
 			}
 			}
@@ -109,7 +105,6 @@ public class TsaCouponService {
 			e.printStackTrace();
 			e.printStackTrace();
 		}
 		}
 
 
-
 		return params;
 		return params;
 	}
 	}
 
 
@@ -144,25 +139,25 @@ public class TsaCouponService {
 	public void checkCpnValidation(Coupon params) {
 	public void checkCpnValidation(Coupon params) {
 		SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
 		SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
 		// 할인율이면  100% 초과 체크하기
 		// 할인율이면  100% 초과 체크하기
-		if(params.getDcWay() != null && params.getDcWay().equals("G240_11")) {
-			if(params.getDcAval() > 100) {
+		if (params.getDcWay() != null && params.getDcWay().equals("G240_11")) {
+			if (params.getDcAval() > 100) {
 				throw new IllegalStateException("모바일 앱 할인율은 100을 초과할수 없습니다.");
 				throw new IllegalStateException("모바일 앱 할인율은 100을 초과할수 없습니다.");
-			} else if(params.getDcPval() > 100) {
+			} else if (params.getDcPval() > 100) {
 				throw new IllegalStateException("PC할인율은 100을 초과할수 없습니다.");
 				throw new IllegalStateException("PC할인율은 100을 초과할수 없습니다.");
-			} else if(params.getDcMval() > 100) {
+			} else if (params.getDcMval() > 100) {
 				throw new IllegalStateException("모바일 웹 100을 초과할수 없습니다.");
 				throw new IllegalStateException("모바일 웹 100을 초과할수 없습니다.");
 			}
 			}
 		}
 		}
 
 
 		// 기간/일수구분이 일수인 경우 날짜 체크
 		// 기간/일수구분이 일수인 경우 날짜 체크
-		if(params.getPdGb() != null && params.getPdGb().equals("D")) {
+		if (params.getPdGb() != null && params.getPdGb().equals("D")) {
 			try {
 			try {
 				Date date1 = format.parse(params.getAvailStdt());
 				Date date1 = format.parse(params.getAvailStdt());
 				Date date2 = format.parse(params.getAvailEddt());
 				Date date2 = format.parse(params.getAvailEddt());
 
 
-				log.info("checkCpnValidation params.getAvailEddt() :  {}" , params.getAvailEddt());
-				log.info("checkCpnValidation params.getAvailStdt :  {}" , params.getAvailStdt());
-				if(date2.before(date1)) {
+				log.info("checkCpnValidation params.getAvailEddt() :  {}", params.getAvailEddt());
+				log.info("checkCpnValidation params.getAvailStdt :  {}", params.getAvailStdt());
+				if (date2.before(date1)) {
 					throw new IllegalStateException("유효기간 종료날짜가 시작날짜보다 작습니다.");
 					throw new IllegalStateException("유효기간 종료날짜가 시작날짜보다 작습니다.");
 				}
 				}
 			} catch (ParseException exception) {
 			} catch (ParseException exception) {
@@ -170,14 +165,14 @@ public class TsaCouponService {
 		}
 		}
 
 
 		// 직접다운로드인 경우 기간 체크
 		// 직접다운로드인 경우 기간 체크
-		if(params.getDnGb() != null && params.getDnGb().equals("G058_20")) {
+		if (params.getDnGb() != null && params.getDnGb().equals("G058_20")) {
 			try {
 			try {
 				Date date1 = format.parse(params.getDownStdt());
 				Date date1 = format.parse(params.getDownStdt());
 				Date date2 = format.parse(params.getDownEddt());
 				Date date2 = format.parse(params.getDownEddt());
 
 
-				log.info("checkCpnValidation params.getDownStdt() :  {}" , params.getDownStdt());
-				log.info("checkCpnValidation params.getDownEddt :  {}" , params.getDownEddt());
-				if(date2.before(date1)) {
+				log.info("checkCpnValidation params.getDownStdt() :  {}", params.getDownStdt());
+				log.info("checkCpnValidation params.getDownEddt :  {}", params.getDownEddt());
+				if (date2.before(date1)) {
 					throw new IllegalStateException("다운로드 종료날짜가 시작날짜보다 작습니다.");
 					throw new IllegalStateException("다운로드 종료날짜가 시작날짜보다 작습니다.");
 				}
 				}
 			} catch (ParseException exception) {
 			} catch (ParseException exception) {
@@ -185,14 +180,14 @@ public class TsaCouponService {
 		}
 		}
 
 
 		// 첫구매 적용하는 경우 날짜 체크
 		// 첫구매 적용하는 경우 날짜 체크
-		if(params.getFirstYn() != null && params.getFirstYn().equals("Y")) {
+		if (params.getFirstYn() != null && params.getFirstYn().equals("Y")) {
 			try {
 			try {
 				Date date1 = format.parse(params.getBuyStdt());
 				Date date1 = format.parse(params.getBuyStdt());
 				Date date2 = format.parse(params.getBuyEddt());
 				Date date2 = format.parse(params.getBuyEddt());
 
 
-				log.info("checkCpnValidation params.getBuyStdt() :  {}" , params.getBuyStdt());
-				log.info("checkCpnValidation params.getBuyEddt :  {}" , params.getBuyEddt());
-				if(date2.before(date1)) {
+				log.info("checkCpnValidation params.getBuyStdt() :  {}", params.getBuyStdt());
+				log.info("checkCpnValidation params.getBuyEddt :  {}", params.getBuyEddt());
+				if (date2.before(date1)) {
 					throw new IllegalStateException("첫구매 종료날짜가 시작날짜보다 작습니다.");
 					throw new IllegalStateException("첫구매 종료날짜가 시작날짜보다 작습니다.");
 				}
 				}
 			} catch (ParseException exception) {
 			} catch (ParseException exception) {
@@ -200,10 +195,21 @@ public class TsaCouponService {
 		}
 		}
 
 
 		// 신규회원여부 적용하는 경우 날짜 체크
 		// 신규회원여부 적용하는 경우 날짜 체크
-		if(params.getCustJoinYn() != null && params.getCustJoinYn().equals("Y")) {
+		if (params.getCustJoinYn() != null && params.getCustJoinYn().equals("Y")) {
 
 
 		}
 		}
 
 
 	}
 	}
 
 
+	/**
+	 * 쿠폰조회 목록
+	 * @param coupon - 쿠폰 정보
+	 * @return
+	 * @author gagamel
+	 * @since 2021. 1. 8
+	 */
+	public Collection<Coupon> getCouponRetrieveList(Coupon coupon) {
+		return couponDao.getCouponRetrieveList(coupon);
+	}
+
 }
 }

+ 29 - 0
src/main/java/com/style24/admin/biz/service/TsaCustomerService.java

@@ -0,0 +1,29 @@
+package com.style24.admin.biz.service;
+
+import com.style24.admin.biz.dao.TsaCustomerDao;
+import com.style24.persistence.domain.Customer;
+import com.style24.persistence.domain.CustomerSearch;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.Collection;
+
+/**
+ * 회원 Service
+ *
+ * @author jsshin
+ * @since 2020. 01. 12
+ */
+@Service
+@Slf4j
+public class TsaCustomerService {
+
+	@Autowired
+	private TsaCustomerDao customerDao;
+
+
+	public Collection<Customer> getCustomerActiveList(CustomerSearch customerSearch) {
+		return customerDao.getCustomerActiveList(customerSearch);
+	}
+}

+ 9 - 5
src/main/java/com/style24/admin/biz/service/TsaGoodsService.java

@@ -2047,6 +2047,10 @@ public class TsaGoodsService {
 			goodsPriceRes.setUpdNo(TsaSession.getInfo().getUserNo());
 			goodsPriceRes.setUpdNo(TsaSession.getInfo().getUserNo());
 			goodsPriceRes.setRegNo(TsaSession.getInfo().getUserNo());
 			goodsPriceRes.setRegNo(TsaSession.getInfo().getUserNo());
 
 
+			//예약일시 시분 설정
+			goodsPriceRes.setApplyStdt(goodsPriceRes.getApplyStdt() + "0000");
+			goodsPriceRes.setApplyEddt(goodsPriceRes.getApplyEddt() + "5959");
+
 			// 엑셀조회를 위한 SEARCH 테이블 생성
 			// 엑셀조회를 위한 SEARCH 테이블 생성
 			SearchData searchData = new SearchData();
 			SearchData searchData = new SearchData();
 			searchData.setRegNo(goodsPriceRes.getRegNo());
 			searchData.setRegNo(goodsPriceRes.getRegNo());
@@ -2082,22 +2086,22 @@ public class TsaGoodsService {
 				return (cnt + 2) + "행의 예약가격을 확인해주세요.";
 				return (cnt + 2) + "행의 예약가격을 확인해주세요.";
 			}
 			}
 
 
-			String nowDate = GagaDateUtil.getToday();	//yyyyMMdd
-			SimpleDateFormat dateFormatParser = new SimpleDateFormat("yyyyMMdd");
+			String nowDate = GagaDateUtil.getToday();	//yyyyMMddHH
+			SimpleDateFormat dateFormatParser = new SimpleDateFormat("yyyyMMddHH");
 			dateFormatParser.setLenient(false);
 			dateFormatParser.setLenient(false);
 			try {
 			try {
 				dateFormatParser.parse(goodsPriceRes.getApplyStdt() );
 				dateFormatParser.parse(goodsPriceRes.getApplyStdt() );
 			} catch (Exception e) {
 			} catch (Exception e) {
-				return (cnt + 2) + "행의 예약시작일을 확인해주세요.";
+				return (cnt + 2) + "행의 예약시작일을 확인해주세요.";
 			}
 			}
 			try {
 			try {
 				dateFormatParser.parse(goodsPriceRes.getApplyEddt() );
 				dateFormatParser.parse(goodsPriceRes.getApplyEddt() );
 			} catch (Exception e) {
 			} catch (Exception e) {
-				return (cnt + 2) + "행의 예약종료일을 확인해주세요.";
+				return (cnt + 2) + "행의 예약종료일을 확인해주세요.";
 			}
 			}
 
 
 			if (Integer.parseInt(goodsPriceRes.getApplyStdt()) > Integer.parseInt(goodsPriceRes.getApplyEddt())) {
 			if (Integer.parseInt(goodsPriceRes.getApplyStdt()) > Integer.parseInt(goodsPriceRes.getApplyEddt())) {
-				return (cnt + 2) + "행의 예약 시작일은 종료일보다 보다 클 수 없습니다.";
+				return (cnt + 2) + "행의 예약 시작일은 종료일보다 보다 클 수 없습니다.";
 			}
 			}
 
 
 			if (Integer.parseInt(goodsPriceRes.getApplyStdt()) <= Integer.parseInt(nowDate)) {
 			if (Integer.parseInt(goodsPriceRes.getApplyStdt()) <= Integer.parseInt(nowDate)) {

+ 8 - 22
src/main/java/com/style24/admin/biz/service/TsaMarketingService.java

@@ -1,33 +1,19 @@
 package com.style24.admin.biz.service;
 package com.style24.admin.biz.service;
 
 
-import com.fasterxml.jackson.core.type.TypeReference;
+import java.util.Collection;
+
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.core.env.Environment;
+import org.springframework.stereotype.Service;
+
 import com.fasterxml.jackson.databind.ObjectMapper;
 import com.fasterxml.jackson.databind.ObjectMapper;
-import com.gagaframework.excel.GagaExcelUtil;
-import com.gagaframework.excel.env.GagaExcelConstants;
-import com.gagaframework.web.parameter.GagaMap;
-import com.gagaframework.web.util.GagaDateUtil;
-import com.gagaframework.web.util.GagaFileUtil;
-import com.gagaframework.web.util.GagaStringUtil;
-import com.style24.admin.biz.dao.TsaGoodsDao;
 import com.style24.admin.biz.dao.TsaMarketingDao;
 import com.style24.admin.biz.dao.TsaMarketingDao;
-import com.style24.admin.support.env.TsaConstants;
-import com.style24.admin.support.security.session.TsaSession;
 import com.style24.core.biz.thirdparty.NaverLowestPriceApi;
 import com.style24.core.biz.thirdparty.NaverLowestPriceApi;
 import com.style24.core.biz.thirdparty.SafetyKoreaApi;
 import com.style24.core.biz.thirdparty.SafetyKoreaApi;
 import com.style24.core.support.message.TscMessageByLocale;
 import com.style24.core.support.message.TscMessageByLocale;
-import com.style24.persistence.domain.*;
-import io.netty.util.internal.StringUtil;
-import lombok.extern.slf4j.Slf4j;
-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 org.springframework.util.StringUtils;
+import com.style24.persistence.domain.FreeGoodsPromotion;
 
 
-import java.io.IOException;
-import java.text.SimpleDateFormat;
-import java.util.ArrayList;
-import java.util.Collection;
+import lombok.extern.slf4j.Slf4j;
 
 
 /**
 /**
  *상품관리 Service
  *상품관리 Service

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

@@ -2,6 +2,9 @@ package com.style24.admin.biz.web;
 
 
 import java.util.Collection;
 import java.util.Collection;
 
 
+import com.style24.admin.biz.service.TsaCustomerService;
+import com.style24.persistence.domain.Customer;
+import com.style24.persistence.domain.CustomerSearch;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Controller;
 import org.springframework.stereotype.Controller;
 import org.springframework.web.bind.annotation.GetMapping;
 import org.springframework.web.bind.annotation.GetMapping;
@@ -48,6 +51,9 @@ public class TsaCustomerController extends TsaBaseController {
 	@Autowired
 	@Autowired
 	private TscAnswerPhaseService ansPhaseService;
 	private TscAnswerPhaseService ansPhaseService;
 
 
+	@Autowired
+	private TsaCustomerService customerService;
+
 	/**
 	/**
 	 * 1:1문의관리 화면
 	 * 1:1문의관리 화면
 	 * @return
 	 * @return
@@ -235,4 +241,45 @@ public class TsaCustomerController extends TsaBaseController {
 		return super.ok(message.getMessage("SUCC_0004"));
 		return super.ok(message.getMessage("SUCC_0004"));
 	}
 	}
 
 
+	/**
+	 * 활동회원
+	 * @return ModelAndView
+	 * @author jsshin
+	 * @since 2020. 01. 12
+	 */
+	@GetMapping("/active/list/form")
+	public ModelAndView customerActiveListForm() {
+		ModelAndView mav = new ModelAndView();
+
+		// 사이트 목록
+		mav.addObject("siteList", rendererService.getCommonCodeList("G000", "Y"));
+
+		// 회원 구분
+		mav.addObject("custGbList", rendererService.getCommonCodeList("G100", "Y"));
+
+		// 회원 등급
+		mav.addObject("custGradeList", rendererService.getCommonCodeList("G110", "Y"));
+
+		// 관리대상
+		mav.addObject("managedRsnList", rendererService.getCommonCodeList("G103", "Y"));
+
+		mav.setViewName("customer/CustomerActiveListForm");
+
+		return mav;
+	}
+
+	/**
+	 * 활동회원 목록
+	 * @param customerSearch - 검색조건
+	 * @return Collection<Customer>
+	 * @author jsshin
+	 * @since 2020. 12. 24
+	 */
+	@PostMapping("/active/list")
+	@ResponseBody
+	public Collection<Customer> getCustomerActiveList(@RequestBody CustomerSearch customerSearch) {
+		return customerService.getCustomerActiveList(customerSearch);
+	}
+
+
 }
 }

+ 32 - 0
src/main/java/com/style24/persistence/domain/CustomerSearch.java

@@ -0,0 +1,32 @@
+package com.style24.persistence.domain;
+
+import com.style24.persistence.TscBaseDomain;
+import lombok.Data;
+
+/**
+ * 회원 검색조건 Admin - Domain
+ *
+ * @author jsshin
+ * @since 2020. 01. 12
+ */
+@SuppressWarnings("serial")
+@Data
+public class CustomerSearch extends TscBaseDomain {
+
+	// 검색조건
+	private String searchDateGb;
+	private String searchGb;
+	private String searchTxt;
+	private String stDate;
+	private String edDate;
+
+	private String siteCd;
+	private String cellPhnno;
+	private String custGb;
+	private String custGrade;
+	private String managedRsn;
+	private String smsAgreeYn;
+	private String emailAgreeYn;
+	private String appAgreeYn;
+
+}

+ 33 - 0
src/main/java/com/style24/persistence/mybatis/shop/TsaCoupon.xml

@@ -220,5 +220,38 @@
 		)
 		)
 	</insert>
 	</insert>
 
 
+	<!-- 쿠폰조회 목록 -->
+	<select id="getCouponRetrieveList" parameterType="Coupon" resultType="Coupon">
+		/* TsaCoupon.getCouponRetrieveList */
+		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). 할인방식이 금액이면 할인금액, 율이면 할인율*/
+		     , A.DC_MVAL                                              /*할인값(모바일). 할인방식이 금액이면 할인금액, 율이면 할인율*/
+		     , A.MAX_DC_AMT                                           /*최고할인값. 할인방식이 금액이면 최고할인금액, 율이면 최고할인율*/
+		     , A.PD_GB                                                /*기간/일수구분(P 기간, D 일수)*/
+		     , DATE_FORMAT(A.AVAIL_STDT,'%Y%m%d%H%i%S') AS AVAIL_STDT /*유효시작일시(기간/일수구분 "P 기간"일 때 사용됨)*/
+		     , DATE_FORMAT(A.AVAIL_EDDT,'%Y%m%d%H%i%S') AS AVAIL_EDDT /*유효종료일시(기간/일수구분 "P 기간"일 때 사용됨)*/
+		     , A.AVAIL_DAYS                                           /*유효일수(기간/일수구분 "D 일수"일 때 사용됨)*/
+		     , A.CUST_PUB_LIMIT_QTY                                   /*고객당발행제한수량(0은 무제한)*/
+		     , A.TOT_PUB_LIMIT_QTY                                    /*총발행제한수량(0은 무제한)*/
+		     , A.ONE_PUB_QTY                                          /*1회발행수량*/
+		     , A.DN_GB                                                /*다운로드구분(A:자동다운로드, D:직접다운로드). 다운로드가능여부가 "Y 다운로드가능"일 때만 사용됨*/
+		     , A.BUY_LIMIT_AMT                                        /*구매제한금액(0은 제한없음)*/
+		FROM   TB_COUPON A
+		WHERE  A.SITE_CD = #{siteCd}
+		<if test="cpnId !=null and cpnId !=''">
+			AND	   A.CPN_ID = #{cpnId}
+		</if>
+		<if test="cpnNm !=null and cpnNm !=''">
+			AND	   A.CPN_NM LIKE '%'||#{cpnNm}||'%'
+		</if>
+		<if test="cpnType !=null and cpnType !=''">
+			AND	   A.CPN_TYPE = #{cpnType}
+		</if>
+	</select>
 
 
 </mapper>
 </mapper>

+ 108 - 0
src/main/java/com/style24/persistence/mybatis/shop/TsaCustomer.xml

@@ -0,0 +1,108 @@
+<?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.TsaCustomerDao">
+
+	<!-- 활동회원목록 -->
+	<select id="getCustomerActiveList" parameterType="CustomerSearch" resultType="Customer">
+		/* TsaCustomer.getCustomerActiveList */
+		SELECT CUST_NO
+		     , CUST_ID
+		     , CUST_NM
+		     , PASSWD
+		     , BIRTH_YMD
+		     , BIRTH_SM
+		     , SEX_GB
+		     , CELL_PHNNO
+		     , APP_AGREE_YN
+		     , DATE_FORMAT(APP_AGREE_DT, '%Y%m%d%H%i%S') AS APP_AGREE_DT
+		     , SMS_AGREE_YN
+		     , DATE_FORMAT(SMS_AGREE_DT, '%Y%m%d%H%i%S') AS SMS_AGREE_DT
+		     , EMAIL
+		     , EMAIL_AGREE_YN
+		     , DATE_FORMAT(EMAIL_AGREE_DT, '%Y%m%d%H%i%S') AS EMAIL_AGREE_DT
+		     , HOME_POST_NO
+		     , HOME_BASE_ADDR
+		     , HOME_DTL_ADDR
+		     , SITE_CD
+		     , FRONT_GB
+		     , AF_LINK_CD
+		     , CUST_GB
+		     , CUST_GRADE
+		     , DATE_FORMAT(JOIN_DT, '%Y%m%d%H%i%S') AS JOIN_DT
+		     , FOREIGNER_YN
+		     , CUST_STAT
+		     , DATE_FORMAT(PASSWD_CHG_DT, '%Y%m%d%H%i%S') AS PASSWD_CHG_DT
+		     , TEMP_PASSWD_YN
+		     , DATE_FORMAT(LOGIN_LDT, '%Y%m%d%H%i%S') AS LOGIN_LDT
+		     , NV_JOIN_ID
+		     , NV_ACCESS_TOKEN
+		     , DATE_FORMAT(NV_JOIN_DT, '%Y%m%d%H%i%S') AS NV_JOIN_DT
+		     , KK_JOIN_ID
+		     , KK_ACCESS_TOKEN
+		     , DATE_FORMAT(KK_JOIN_DT, '%Y%m%d%H%i%S') AS KK_JOIN_DT
+		     , YS_JOIN_ID
+		     , YS_ACCESS_TOKEN
+		     , DATE_FORMAT(YS_JOIN_DT, '%Y%m%d%H%i%S') AS YS_JOIN_DT
+		     , CI
+		     , DATE_FORMAT(AUTH_DT, '%Y%m%d%H%i%S') AS AUTH_DT
+		     , MANAGED_RSN
+		     , MANAGED_DTL_RSN
+		     , MANAGED_DT
+		     , SECEDE_RSN
+		     , SECEDE_DTL_RSN
+		     , SECEDE_DT
+		     , FN_GET_USER_NM(REG_NO)              AS REG_NM
+		     , DATE_FORMAT(REG_DT, '%Y%m%d%H%i%S') AS REG_DT
+		     , FN_GET_USER_NM(UPD_NO)              AS UPD_NM
+		     , DATE_FORMAT(UPD_DT, '%Y%m%d%H%i%S') AS UPD_DT
+		FROM   TB_CUSTOMER
+		WHERE  CUST_STAT = 'G104_10'
+		<if test="searchGb == 'custNo'">
+		AND    CUST_NO = #{searchTxt}
+		</if>
+		<if test="searchGb == 'custNm'">
+		AND    LOWER(CUST_NM) LIKE CONCAT('%',LOWER(#{searchTxt}),'%')
+		</if>
+		<if test="searchGb == 'email'">
+		AND    LOWER(EMAIL) LIKE CONCAT('%',LOWER(#{searchTxt}),'%')
+		</if>
+		<if test="searchGb == 'custId'">
+		AND    LOWER(CUST_ID) LIKE CONCAT('%',LOWER(#{searchTxt}),'%')
+		</if>
+		<if test="siteCd != null and siteCd != ''">
+		AND    SITE_CD = #{siteCd}
+		</if>
+		<if test="cellPhnno != null and cellPhnno != ''">
+		AND    CELL_PHNNO = #{cellPhnno}
+		</if>
+		<if test="custGb != null and custGb != ''">
+		AND    CUST_GB = #{custGb}
+		</if>
+		<if test="custGrade != null and custGrade != ''">
+		AND    CUST_GRADE = #{custGrade}
+		</if>
+		<if test="managedRsn != null and managedRsn != ''">
+		AND    MANAGED_RSN = #{managedRsn}
+		</if>
+		<if test="smsAgreeYn != null and smsAgreeYn != ''">
+		AND   SMS_AGREE_YN = #{smsAgreeYn}
+		</if>
+		<if test="emailAgreeYn != null and emailAgreeYn != ''">
+		AND   EMAIL_AGREE_YN = #{emailAgreeYn}
+		</if>
+		<if test="appAgreeYn != null and appAgreeYn != ''">
+		AND   APP_AGREE_YN = #{appAgreeYn}
+		</if>
+		<if test="stDate != null and edDate != '' and stDate != null and edDate != ''">
+		     <if test="searchDateGb == 'joinDt'">
+		AND   JOIN_DT >= DATE_FORMAT(#{stDate}, '%Y-%m-%d %H:%i:%S')
+		AND   JOIN_DT <![CDATA[<]]> DATE_FORMAT(DATE_ADD(#{edDate}, INTERVAL 1 DAY), '%Y-%m-%d %H:%i:%S')
+		     </if>
+		     <if test="searchDateGb == 'loginLdt'">
+		AND   LOGIN_LDT >= DATE_FORMAT(#{stDate}, '%Y-%m-%d %H:%i:%S')
+		AND   LOGIN_LDT <![CDATA[<]]> DATE_FORMAT(DATE_ADD(#{edDate}, INTERVAL 1 DAY), '%Y-%m-%d %H:%i:%S')
+		     </if>
+		</if>
+	</select>
+
+</mapper>

+ 2 - 2
src/main/java/com/style24/persistence/mybatis/shop/TsaGoods.xml

@@ -2689,8 +2689,8 @@
 		        <include refid="getGoodsListCondition_sql"/>
 		        <include refid="getGoodsListCondition_sql"/>
 		        ORDER BY  GR.APPLY_STDT DESC, GR.APPLY_EDDT DESC, G.GOODS_CD, GR.GOODS_PRICE_RES_SQ
 		        ORDER BY  GR.APPLY_STDT DESC, GR.APPLY_EDDT DESC, G.GOODS_CD, GR.GOODS_PRICE_RES_SQ
 		        </if>
 		        </if>
-		        <if test="searchGb != null and searchGb =='EXCEL'">
-		        ORDER BY SD.TMP_DISP_ORD
+		        <if test="searchGb != null and (searchGb =='EXCEL' or searchGb =='EXCELRESULT')">
+		        ORDER BY SD.TMP_DISP_ORD, GR.APPLY_STDT DESC, GR.APPLY_EDDT DESC, G.GOODS_CD, GR.GOODS_PRICE_RES_SQ
 		        </if>
 		        </if>
 		<include refid="getListPagingCondition_sql"/>
 		<include refid="getListPagingCondition_sql"/>
 	</select>
 	</select>

+ 1 - 0
src/main/webapp/WEB-INF/views/common/fragments/header.html

@@ -47,6 +47,7 @@
 	<script type="text/javascript" src="/ux/plugins/dropzone/dropzone.js"></script>
 	<script type="text/javascript" src="/ux/plugins/dropzone/dropzone.js"></script>
 	<script type="text/javascript" src="/ux/plugins/c3/d3.v5.js"></script>
 	<script type="text/javascript" src="/ux/plugins/c3/d3.v5.js"></script>
 	<script type="text/javascript" src="/ux/plugins/c3/c3.js"></script>
 	<script type="text/javascript" src="/ux/plugins/c3/c3.js"></script>
+	<script type="text/javascript" src="https://ssl.daumcdn.net/dmaps/map_js_init/postcode.v2.js"></script>
 	
 	
 	<!-- Custom Common JS library -->
 	<!-- Custom Common JS library -->
 	<script type="text/javascript" th:src="@{'/ux/js/admin.ui.js?v=' + ${#calendars.format(#calendars.createNow(), 'yyyyMMddHHmmss')}}" src="/ux/js/admin.ui.js"></script>
 	<script type="text/javascript" th:src="@{'/ux/js/admin.ui.js?v=' + ${#calendars.format(#calendars.createNow(), 'yyyyMMddHHmmss')}}" src="/ux/js/admin.ui.js"></script>

+ 265 - 0
src/main/webapp/WEB-INF/views/customer/CustomerActiveListForm.html

@@ -0,0 +1,265 @@
+<!DOCTYPE html>
+<html lang="ko"
+	  xmlns:th="http://www.thymeleaf.org">
+<!--
+ *******************************************************************************
+ * @source  : CustomerActiveListForm.html
+ * @desc    : 활동회원목록 Page
+ *============================================================================
+ * STYLE24
+ * Copyright(C) 2021 TSIT, All rights reserved.
+ *============================================================================
+ * VER  DATE         AUTHOR      DESCRIPTION
+ * ===  ===========  ==========  =============================================
+ * 1.0  2021.01.12   jsshin     최초 작성
+ *******************************************************************************
+ -->
+<div id="main">
+	<!-- 메인타이틀 영역 -->
+	<div class="main-title">
+	</div>
+	<!-- //메인타이틀 영역 -->
+
+	<!-- 메뉴 설명 -->
+	<div class="infoBox menu-desc">
+	</div>
+	<!-- //메뉴 설명 -->
+
+	<!-- 검색조건 영역 -->
+	<div class="panelStyle">
+		<form id="searchForm" name="searchForm" action="#" th:action="@{'/customer/active/list'}" onsubmit="$('#btnSearch').trigger('click'); return false;">
+			<table class="frmStyle" aria-describedby="검색조건">
+				<colgroup>
+					<col style="width:10%;"/>
+					<col style="width:20%;"/>
+					<col style="width:10%;"/>
+					<col style="width:15%;"/>
+					<col style="width:10%;"/>
+					<col style="width:20%;"/>
+					<col/>
+				</colgroup>
+				<tbody>
+				<tr>
+					<th class="dashR">검색구분</th>
+					<td class="dashR">
+						<select name="searchGb">
+							<option value="">선택</option>
+							<option value="custNo">회원번호 </option>
+							<option value="custNm">회원명 </option>
+							<option value="email">이메일</option>
+							<option value="custId">아이디</option>
+						</select>
+						<input type="text" class="w200" name="searchTxt" id="searchTxt"/>
+					</td>
+
+					<th class="dashR">사이트</th>
+					<td class="dashR">
+						<select name="siteCd"> <!-- 회원구분(공통코드G100) -->
+							<option value="">전체</option>
+							<option th:if="${siteList}" th:each="oneData, status : ${siteList}" th:value="${oneData.cd}" th:text="|[${oneData.cd}] ${oneData.cdNm}|"></option>
+						</select>
+					</td>
+					<th class="dashR">수신여부</th>
+					<td class="dashR">
+						<label class="chkBox">
+							<input type="checkbox" name='emailAgreeYn' value='Y'/> 메일 수신여부
+						</label>
+						<label class="chkBox">
+							<input type="checkbox" name='smsAgreeYn' value='Y'/> SMS 수신여부
+						</label>
+					</td>
+				</tr>
+				<tr>
+					<th class="dashR">회원구분</th>
+					<td class="dashR">
+						<select name="custGb"> <!-- 회원구분(공통코드G100) -->
+							<option value="">전체</option>
+							<option th:if="${custGbList}" th:each="oneData, status : ${custGbList}" th:value="${oneData.cd}" th:text="|[${oneData.cd}] ${oneData.cdNm}|"></option>
+						</select>
+					</td>
+
+					<th class="dashR">회원등급</th>
+					<td class="dashR">
+						<select name="custGrade"> <!-- 회원등급(공통코드G110) -->
+							<option value="">전체</option>
+							<option th:if="${custGradeList}" th:each="oneData, status : ${custGradeList}" th:value="${oneData.cd}" th:text="|[${oneData.cd}] ${oneData.cdNm}|"></option>
+						</select>
+					</td>
+
+					<th class="dashR">관리대상</th>
+					<td class="dashR">
+						<select name="managedRsn"> <!-- 관리대상지정사유(공통코드G120) -->
+							<option value="">전체</option>
+							<option th:if="${managedRsnList}" th:each="oneData, status : ${managedRsnList}" th:value="${oneData.cd}" th:text="|[${oneData.cd}] ${oneData.cdNm}|"></option>
+						</select>
+					</td>
+				</tr>
+				<tr>
+					<th class="dashR">휴대폰번호</th>
+					<td class="dashR" colspan="5">
+						<input type="text" class="w200" name="cellPhnno" id="cellPhnno"/>
+					</td>
+				</tr>
+				<tr>
+					<th class="dashR">조회일자</th>
+					<td class="dashR" colspan="5" >
+						<select name="searchDateGb">
+							<option value="joinDt">가입일자</option>
+							<option value="loginLdt">로그인일자</option>
+						</select>
+						<span id="terms"></span>
+					</td>
+				</tr>
+				</tbody>
+			</table>
+
+			<ul class="panelBar">
+				<li class="center">
+					<button type="button" class="btn btn-base btn-lg" id="btnSearch">조회</button>
+					<button type="button" class="btn btn-gray btn-lg" onclick="$('#searchForm')[0].reset();">초기화</button>
+				</li>
+			</ul>
+		</form>
+	</div>
+	<!-- //검색조건 영역 -->
+
+	<!-- 리스트 영역 -->
+	<div class="panelStyle">
+		<div id="gridList" style="width: 100%; height: 570px" class="ag-theme-balham lh60"></div>
+	</div>
+	<!-- //리스트 영역 -->
+</div>
+
+<script th:inline="javascript">
+	/*<![CDATA[*/
+	// 사이트목록
+	const siteList = gagajf.convertToArray([[${siteList}]]);
+	// 회원구분
+	const custGbList = gagajf.convertToArray([[${custGbList}]]);
+	// 회원등급
+	const custGradeList = gagajf.convertToArray([[${custGradeList}]]);
+	// 관리대상
+	const managedRsnList = gagajf.convertToArray([[${managedRsnList}]]);
+	// 성별
+	const genderGb = {"F":"여성", "M":"남성"};
+
+	// specify the columns
+	const columnDefs = [
+		{
+			headerName: "사이트", field:'siteCd', width:100, cellClass: 'text-center',
+			valueGetter: function (params) { return gagaAgGrid.lookupValue(siteList, params.data.siteCd); }
+		},
+		{headerName: "회원ID", field:'custId', width:120, cellClass: 'text-center'},
+		{headerName: "회원NO", field:'custNo', width:100, cellClass: 'text-center'},
+		{
+			headerName: "회원명", field:'custNm', width:100, cellClass: 'text-center',
+			cellRenderer: function(params) { return '<a href="javascript:void(0);">' + params.value + '</a>'; }
+		},
+		{
+			headerName: "회원구분", field:'custGb', width:100, cellClass: 'text-center',
+			valueGetter: function (params) { return gagaAgGrid.lookupValue(custGbList, params.data.custGb); }
+		},
+		{
+			headerName: "등급", field:'custGrade', width:100, cellClass: 'text-center',
+			valueGetter: function (params) { return gagaAgGrid.lookupValue(custGradeList, params.data.custGrade); }
+		},
+		{
+			headerName: "관리대상", field:'managedRsn', width:230, cellClass: 'text-center',
+			valueGetter: function (params) { return gagaAgGrid.lookupValue(managedRsnList, params.data.managedRsn); }
+		},
+		{
+			headerName: "가입일자", field:'joinDt', width:120, cellClass: 'text-center',
+			valueGetter: function (params) { return gagaAgGrid.toDateFormat(params.data.joinDt); }
+		},
+		{
+			headerName: "로그인일자", field:'loginLdt', width:120, cellClass: 'text-center',
+			valueGetter: function (params) { return gagaAgGrid.toDateFormat(params.data.loginLdt); }
+		},
+		{headerName: "핸드폰", field:'cellPhnno', width:140, cellClass: 'text-center'},
+		{headerName: "이메일", field:'email', width:220, cellClass: 'text-center'},
+		{
+			headerName: "성별", field:'sexGb', width:50, cellClass: 'text-center',
+			valueGetter: function (params) { return gagaAgGrid.lookupValue(genderGb, params.data.sexGb); }
+		},
+		{
+			headerName: "생년월일", field:'birthYmd', width:90, cellClass: 'text-center', hide:true,
+			valueGetter: function (params) { return gagaAgGrid.toDateFormat(params.data.birthYmd); }
+		},
+		{headerName: "기본주소", field:'homeBaseAddr', width:350, cellClass: 'text-center'},
+		{headerName: "상세주소", field:'homeDtlAddr', width:250, cellClass: 'text-center'},
+		{headerName: "수신동의(SMS)", field:'smsAgreeYn', width:110, cellClass: 'text-center'},
+		{headerName: "수신동의(메일)", field:'emailAgreeYn', width:110, cellClass: 'text-center'}
+	];
+
+	// Get GridOptions
+	let gridOptions = gagaAgGrid.getGridOptions(columnDefs);
+
+	// 이미지가 있을 경우 높이 지정
+	gridOptions.rowHeight = 60;
+
+	// 셀 클릭 이벤트
+	gridOptions.onCellClicked = function(event) {
+		 if (event.colDef.field == 'custNm') {
+			// 고객 상세
+			cfnOpenCustDetailPopup(event.data.custNo);
+		}
+	}
+
+	// 조회
+	$('#btnSearch').on('click', function() {
+		// 유효성 체크
+		let validation = fnValidationCheck();
+		if (!validation) {
+			return;
+		}
+		// Fetch data
+		gagaAgGrid.fetch($('#searchForm').prop('action'), gridOptions, '#searchForm');
+	});
+	
+	var fnValidationCheck = function () {
+		// 입력 값 체크
+		const $searchGb = $('#searchForm select[name=searchGb]');	// 검색구분
+		const $searchNm = $('#searchForm input[name=searchNm]');	// 검색내용
+		let isSearchVaild = true;
+		let validationMessage;
+
+		// 검색구분: O / 검색내용: X
+		if (!gagajf.isNull($searchGb.val())) {
+			if (gagajf.isNull($searchNm.val())) {
+				validationMessage = '내용을 입력해주세요';
+				isSearchVaild = false;
+			}
+		}
+
+		// 검색구분: X / 검색내용: O
+		if (!gagajf.isNull($searchNm.val())) {
+			if (gagajf.isNull($searchGb.val())) {
+				validationMessage = '검색구분을 선택해주세요';
+				isSearchVaild = false;
+			}
+		}
+		if (!isSearchVaild) {
+			mcxDialog.alertC(validationMessage, {
+				sureBtnText: "확인",
+				sureBtnClick: function() {
+					$searchNm.focus();
+				}
+			});
+		}
+
+		return isSearchVaild;
+
+	}
+
+	$(document).ready(function() {
+		// 공통 달력 생성
+		cfnCreateCalendar('#terms', 'stDate', 'edDate', true);
+		$('.btnToday').trigger('click');
+
+		// Create a agGrid
+		gagaAgGrid.createGrid('gridList', gridOptions);
+	});
+	/*]]>*/
+</script>
+
+</html>

+ 1 - 1
src/main/webapp/WEB-INF/views/goods/GoodsPriceReserveForm.html

@@ -453,7 +453,7 @@
 	});
 	});
 	
 	
 	var fnGoodsPriceResDeleteCollBack = function(){
 	var fnGoodsPriceResDeleteCollBack = function(){
-		//fnGoodsRsvtTnmListSearch($("#goodsPriceResForm input[name=searchGb]").val());
+		fnGoodsPriceSearch($("#goodsPriceResForm input[name=searchGb]").val());
 	}
 	}
 	
 	
 	//엑셀양식 다운로드
 	//엑셀양식 다운로드

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

@@ -141,8 +141,8 @@
 						<tr>
 						<tr>
 							<th>회수지주소 <i class="star"></i></th>
 							<th>회수지주소 <i class="star"></i></th>
 							<td colspan="3">
 							<td colspan="3">
-								<input type="text" name ="chgerPostNo" class="w100" readonly="readonly" />
-								<button type="button" class="btn btn-info" onclick="cfnOpenPostFindPopup('returnRequest');">우편번호찾기</button>
+								<input type="text" name ="chgerZipNo" class="w100" readonly="readonly" />
+								<button type="button" class="btn btn-info" onclick="fnOpenDaumAddr('delvLoc');">우편번호찾기</button>
 								<input type="text" name ="chgerBaseAddr" class="w300" />
 								<input type="text" name ="chgerBaseAddr" class="w300" />
 								<input type="text" name ="chgerDtlAddr" class="w300" />
 								<input type="text" name ="chgerDtlAddr" class="w300" />
 							</td>
 							</td>
@@ -1077,9 +1077,9 @@ var fnOpenDaumAddr = function() {
 	let daumZip = new daum.Postcode({
 	let daumZip = new daum.Postcode({
 		oncomplete: function(data) {
 		oncomplete: function(data) {
 			// 우편번호와 주소 정보를 해당 필드에 넣는다.
 			// 우편번호와 주소 정보를 해당 필드에 넣는다.
-			$('#detailForm input[name=bizZipcode]').val(data.zonecode);
-			$('#detailForm input[name=bizBaseAddr]').val(cfnGetDaumRoadAddr(data));
-			$('#detailForm input[name=bizDtlAddr]').focus();
+			$('#detailForm input[name=chgerZipNo]').val(data.zonecode);
+			$('#detailForm input[name=chgerBaseAddr]').val(cfnGetDaumRoadAddr(data));
+			$('#detailForm input[name=chgerDtlAddr]').focus();
 			
 			
 			cfnCloseDaumAddr();
 			cfnCloseDaumAddr();
 		},
 		},