Bläddra i källkod

2/9 MKT 메일관리임시커밋

ChoiSooHwan 5 år sedan
förälder
incheckning
55a7548051

+ 17 - 0
src/main/java/com/style24/admin/biz/dao/TsaMailTemplateDao.java

@@ -60,6 +60,23 @@ public interface TsaMailTemplateDao {
 	 */
 	MktmailManagement getMktmailManagementDetail(Integer mktmailManagement);
 	
+	/**
+	 * MKT메일 등록수정
+	 * @param  mailtemplate - 메일관련 정보
+	 * @author csh9191
+	 * @since 2021. 02. 03
+	 */
+	void saveMktMailDetail(MktmailManagement mktMailManagement);
+	
+	/**
+	 * MKT메일 등록수정
+	 * @param  mailtemplate - 메일관련 정보
+	 * @author csh9191
+	 * @since 2021. 02. 09
+	 */
+	void saveMktMailTemplate(MktmailManagement mktMailManagement);
+	
+	/* MKT 메일 전시 */
 	Collection<Goods> getOrderSampleGoodsInfo(Goods goods);
 
 }

+ 40 - 1
src/main/java/com/style24/admin/biz/service/TsaMailTemplateService.java

@@ -6,11 +6,14 @@ import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
+
+import com.gagaframework.web.parameter.GagaMap;
 import com.style24.admin.biz.dao.TsaMailTemplateDao;
 import com.style24.admin.support.security.session.TsaSession;
 import com.style24.persistence.domain.Goods;
 import com.style24.persistence.domain.MailTemplate;
 import com.style24.persistence.domain.MktmailManagement;
+import com.style24.persistence.domain.MktmailManagementGoods;
 
 import lombok.extern.slf4j.Slf4j;
 
@@ -96,8 +99,44 @@ public class TsaMailTemplateService {
 		return mailtempletDao.getMktmailManagementDetail(mktmailManagement);
 	}
 	
-	/* 주문 샘플 데이터 (추후 삭제 예정) */
+	/**
+	 * MKT메일 상세 등록/수정
+	 * @param mailtemplate - 메일관련 정보
+	 * @author csh9191
+	 * @since 2021. 02. 03
+	 */
+	@Transactional("shopTxnManager")
+	public void saveMktMailDetail(MktmailManagement mktMailManagement) {
+		// 내용 유무 확인
+		if (StringUtils.isNotBlank(mktMailManagement.getMailContent())) {
+			mktMailManagement.setMailContent(mktMailManagement.getMailContent().replaceAll("&lt;", "<").replaceAll("&gt;", ">"));
+		}
+
+		mailtempletDao.saveMktMailDetail(mktMailManagement);
+	
+	}
+		
+	
+	/**
+	 * MKT 상세 등록/수정
+	 * @param mailtemplate - 메일관련 정보
+	 * @author csh9191
+	 * @since 2021. 02. 03
+	 */
+	public GagaMap saveMktMailTemplate (MktmailManagement mktMailManagement) {
+		GagaMap result = new GagaMap();
+		
+		
+
+		return result;
+	}
+	
+	/* MKT 메일 전시 */
 	public Collection<Goods> getOrderSampleGoodsInfo(Goods goods) {
 		return mailtempletDao.getOrderSampleGoodsInfo(goods);
 	}
+	
+
+	
+
 }

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

@@ -933,7 +933,7 @@ public class TsaMarketingController extends TsaBaseController {
 	 */
 	@PostMapping("/mailtemplate/save")
 	@ResponseBody
-	public GagaResponse getMailHFDetail(@RequestBody MailTemplate mailTemplate) {
+	public GagaResponse saveMailHF(@RequestBody MailTemplate mailTemplate) {
 		mailTemplate.setRegNo(TsaSession.getInfo().getUserNo());
 		mailTemplate.setUpdNo(TsaSession.getInfo().getUserNo());
 		mailTemplateService.saveMailHF(mailTemplate);
@@ -978,14 +978,21 @@ public class TsaMarketingController extends TsaBaseController {
 	 * @since 2021. 02. 08
 	 */
 	@GetMapping("/mktmailmanagement/detail/form")
-	public ModelAndView mktmailManagementDetailForm(@RequestParam(value = "mode") String mode, @RequestParam(value = "mailtSq", required = false) Integer mailtSq, MailTemplate mailTemplate) {
+	public ModelAndView mktmailManagementDetailForm(MailTemplate mailTemplate) {
 		ModelAndView mav = new ModelAndView();
 		
+		Integer mailtSq = mailTemplate.getMailtSq();
+		String mode = mailTemplate.getMode();
 		
-		mav.addObject("mailHsqList", mailTemplate.getMailhfNm());
+		MailTemplate param = new MailTemplate();
 		
-		mav.addObject("mode", mode);
+		param.setMailhfGb("H");
+		mav.addObject("mailHsqList", mailTemplateService.getmailHFList(param));
+		
+		param.setMailhfGb("F");
+		mav.addObject("mailFsqList", mailTemplateService.getmailHFList(param));
 		
+		mav.addObject("mode", mode);
 		if ("U".equals(mode)) {
 			mav.addObject("mktmailInfo", mailTemplateService.getMktmailManagementDetail(mailtSq));
 		}
@@ -994,8 +1001,46 @@ public class TsaMarketingController extends TsaBaseController {
 
 		return mav;
 	}
+	
+	/**
+	 * MKT 메일관리 상품추가 팝업
+	 * @param 
+	 * @return
+	 * @author csh9191
+	 * @since 2021. 02. 09
+	 */
+	
+	@PostMapping("/mktMailManagement/goods/info")
+	@ResponseBody
+	public Collection<Goods> getOrderSampleGoodsInfo(@RequestBody String[] arrGoodsCd) {
+		Goods goods = new Goods();
+		goods.setArrGoodsCd(arrGoodsCd);
+		
+		return mailTemplateService.getOrderSampleGoodsInfo(goods);
+	}
+	
+	/**
+	 * MKT메일 상세 등록/수정
+	 * @param 메일헤더푸터관리 - 메일헤더푸터 정보
+	 * @return
+	 * @author csh9191	
+	 * @since 2021. 02. 09
+	 */
+	@PostMapping("/mktMailManagement/save")
+	@ResponseBody
+	public GagaMap saveMktMailTemplate(@RequestBody MktmailManagement mktmailManagement){
+		GagaMap result = new GagaMap();
+		result.set("status", GagaResponseStatus.FAIL.getCode());
+		
+		result = mailTemplateService.saveMktMailTemplate(mktmailManagement);
+			
+		log.info("mktmailManagement >>> {}", mktmailManagement);
+		
+		return result;
+	}
 
 
+	
 
 	/* // CSB 진행 */
 

+ 1 - 0
src/main/java/com/style24/persistence/domain/MailTemplate.java

@@ -16,6 +16,7 @@ import lombok.Data;
 public class MailTemplate extends TscBaseDomain{
 
 	//메일템플릿
+	private Integer mailtSq;		// 메일템플릿 일련번호
 	private Integer mailhfSq;		// 메일헤더푸터 일련번호
 	private String mailhfNm;		// 메일헤더푸터 타이틀명
 	private String mailhfGb;		// 메일헤더푸터 구분 H:헤더 F:푸터

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

@@ -1,5 +1,9 @@
 package com.style24.persistence.domain;
 
+import java.util.Collection;
+import java.util.List;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
 import com.style24.persistence.TscBaseDomain;
 
 import lombok.Data;
@@ -13,13 +17,12 @@ import lombok.Data;
 @SuppressWarnings("serial")
 @Data
 public class MktmailManagement extends TscBaseDomain{
-	
 	// MKT 메일관리
 	private Integer mailtSq; 				// 메일템플릿 번호
 	private String mailtNm;					// 메일템플릿 명
 	private String mailGb;					// 메일템플릿 구분
-	private String mailHsq;					// 메일헤더 일련번호
-	private String mailFsq;					// 메일푸터 일련번호
+	private Integer mailHsq;				// 메일헤더 일련번호
+	private Integer mailFsq;				// 메일푸터 일련번호
 	private String mailContent;				// 메일 내용
 	private String useYn;					// 사용구분
 	private String regDt;					// 등록일시
@@ -27,4 +30,26 @@ public class MktmailManagement extends TscBaseDomain{
 
 	private String searchTxt;				// 검색어
 	
+	List<MktmailManagementGoods> mktmailManagementGoods; //메일 전시
+	// 메일 템플릿 코너 
+	private Integer mailtcSq;				// 메일템플릿 코너번호
+	private String mailtcNm;				// 메일템플릿 코너명
+	private Integer goodsCpr;				// 상품 노출건수
+	private String mailtcLink;				// 메일템플릿 코너 링크
+	
+
+	private String goodsCd;					// 상품코드(상품)
+	private Integer dispOrd;				// 표시순서
+	
+	List<MktmailManagementTc> mktmailManagementTc; //메일템플릿 구분자
+	//상품정보
+	private String brandKnm;				// 브랜드명
+	private String goodNms;					// 상품명
+	private String cdNm;					// 판매상태
+	private String listPrice;				// 정상가
+	private String currPrice;				// 판매가
+
+	
+
+	
 }

+ 2 - 1
src/main/java/com/style24/persistence/domain/MktmailManagementGoods.java

@@ -23,8 +23,9 @@ public class MktmailManagementGoods extends TscBaseDomain{
 	
 	//상품정보
 	private String brandKnm;				// 브랜드명
-	private String  goodNms;				// 상품명
+	private String goodNms;					// 상품명
 	private String cdNm;					// 판매상태
 	private String listPrice;				// 정상가
 	private String currPrice;				// 판매가
+
 }

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

@@ -23,5 +23,7 @@ public class MktmailManagementTc extends TscBaseDomain{
 	private String useYn;					// 사용구분
 	private String regDt;					// 등록일시
 	private String updDt;					// 수정일시
-	
+
+
+
 }

+ 0 - 149
src/main/java/com/style24/persistence/mybatis/shop/TsaMailManagement.xml

@@ -1,149 +0,0 @@
-<?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.TsaMailTemplateDao">
-
-	<!-- 메일헤더푸터관리 리스트 -->
-	<select id="getmailHFList" parameterType="MailTemplate" resultType="MailTemplate">
-		/* TsaMailHF.getmailHFList */
-			SELECT
-				 MAILHF_SQ																<!-- 메일헤더푸터 일련번호 -->
-			   , MAILHF_NM																<!-- 메일헤더푸터 명 -->
-			   , MAILHF_GB																<!-- 메일 헤더푸터 구분 H:헤더 F:푸터 -->
-			   , MAILHF_CONTENT															<!-- 메일 헤더푸터 내용 -->
-			   , USE_YN																	<!-- 사용여부 -->
-			   , 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_MAILHF
-			 WHERE USE_YN = 'Y'															<!-- 사용구분이 Y일때만 표시 -->
-			 <if test="mailhfNm != null and mailhfNm !='' ">							<!-- 메일헤더푸터 명 검색 -->
-			  AND LOWER(MAILHF_NM) LIKE CONCAT('%',LOWER(#{mailhfNm}),'%')
-			 </if>
-			 <if test="mailhfGb !=null and mailhfGb !='' ">								<!-- 메일헤더푸터 구분 -->
-			 AND MAILHF_GB = #{mailhfGb}
-			 </if> 
-			 <if test="searchTxt !=null and searchTxt !='' ">							<!-- 검색어 입력받아 검색 -->
-			 AND FN_GET_USER_NM(REG_NO) LIKE CONCAT('%',LOWER(#{searchTxt}), '%')				
-			 </if>
-			 ORDER BY MAILHF_SQ 														<!--리스트 표시 조건 : 시퀀스 값 -->
-	</select>
-	
-	
-	<!-- 메일헤더푸터관리 등록/수정 -->
-	<insert id="saveMailHF" parameterType="MailTemplate">
-		/* TsaMailHF.saveMailHF */
-			INSERT INTO TB_MAILHF (
-		     	MAILHF_SQ				<!-- 메일헤더푸터 일련번호 -->
-		   	  , MAILHF_NM				<!-- 메일헤더푸터 명 -->
-		      , MAILHF_GB				<!-- 메일헤더푸터 구분 H:헤더 F:푸터 -->
-		      , MAILHF_CONTENT			<!-- 메일헤더푸터 내용 -->
-		      , USE_YN					<!-- 사용여부 -->
-		      , REG_NO
-		      , REG_DT
-		      , UPD_NO
-		      , UPD_DT
-			)
-			VALUES (
-		        #{mailhfSq}
-		      , #{mailhfNm}
-		      , #{mailhfGb}
-		      , #{mailhfContent}
-		      , IFNULL(#{useYn},'Y')
-		      , #{regNo}
-		      , NOW()
-		      , #{updNo}
-		      , NOW()
-			)
-			ON DUPLICATE KEY UPDATE
-			    MAILHF_SQ = #{mailhfSq}
-		      , MAILHF_NM = #{mailhfNm}
-		      , MAILHF_GB = #{mailhfGb}
-		      , MAILHF_CONTENT = #{mailhfContent}
-		      , UPD_NO = #{updNo}
-		      , UPD_DT = NOW()
-	</insert>
-	
-	<!-- 메일헤더푸터 상세화면 팝업 -->
-	<select id="getMailHFDetail" parameterType="Integer" resultType="MailTemplate">
-		/* TsaMailHF.getMailHFDetail */
-			SELECT 
-					MAILHF_SQ						<!-- 메일헤더푸터 일련번호 -->
-				  , MAILHF_NM						<!-- 메일헤더푸터 명 -->
-				  , MAILHF_GB						<!-- 메일헤더푸터 구분 H:헤더 F:푸터 -->	
-				  , MAILHF_CONTENT					<!-- 메일헤더푸터 내용 -->
-			FROM 	TB_MAILHF
-			WHERE	MAILHF_SQ = #{mailhfSq}
-	</select>
-	
-	<!--메일헤더푸터관리 리스트 삭제 -->
-	<update id='deleteMailHFList' parameterType='MailTemplate'>
-		/* TsaMailHF.deleteMailHFList */
-			UPDATE TB_MAILHF
-	  		SET USE_YN = 'N'								<!-- 사용구분을 N으로 변경하여 리스트에서 표시 삭제 -->
-			WHERE MAILHF_SQ = #{mailhfSq}
-	</update>
-	
-	
-	<select id="getOrderSampleGoodsInfo" parameterType="Goods" resultType="Goods">
-	SELECT SYS_IMG_NM
-		     , GOODS_CD
-		     , GOODS_NM
-		     , STOCK_QTY_SUM
-		     , GOODS_STAT
-		     , STYLE_YEAR
-			 , SEASON_CD
-		     , LIST_PRICE
-		     , CURR_PRICE
-		     , PRICE_UPD_DT
-		     , ERP_STOCK_LINK_YN
-		     , FORMAL_GB
-		     , RETURNABLE_YN
-		     , REG_DT
-		     , REG_NM
-			 , UPD_DT
-		     , UPD_NM
-		     , REP_GOODS_CD
-			 , GROUP_CONCAT(OPT_CD2 ORDER BY DISP_ORD DESC, OPT_CD2 SEPARATOR ',')        AS SITE_CD
-		  FROM (
-			  SELECT GI.SYS_IMG_NM
-				   , G.GOODS_CD
-				   , G.GOODS_NM
-				   , (CASE WHEN G.GOODS_TYPE = 'G056_N' THEN (SELECT IFNULL(SUM(CURR_STOCK_QTY - BASE_STOCK_QTY),0) FROM VW_STOCK WHERE GOODS_CD = G.GOODS_CD)
-						   ELSE (SELECT IFNULL(SUM(CURR_STOCK_QTY - BASE_STOCK_QTY),0) FROM VW_STOCK_COMPOSE WHERE GOODS_CD = G.GOODS_CD)
-					  END) AS STOCK_QTY_SUM
-				   , G.GOODS_STAT
-				   , G.STYLE_YEAR
-				   , G.SEASON_CD
-				   , G.LIST_PRICE
-				   , G.CURR_PRICE
-				   , G.PRICE_UPD_DT
-				   , G.ERP_STOCK_LINK_YN
-				   , G.FORMAL_GB
-				   , G.RETURNABLE_YN
-				   , G.REG_DT
-				   , FN_GET_USER_NM(G.REG_NO) AS REG_NM
-				   , G.UPD_DT
-				   , FN_GET_USER_NM(G.UPD_NO) AS UPD_NM
-				   , IFNULL(GC.COMPS_GOODS_CD, G.GOODS_CD) AS REP_GOODS_CD
-				   , OP.OPT_CD2
-				   , OP.DISP_ORD
-				FROM TB_GOODS G
-				LEFT OUTER JOIN TB_GOODS_COMPOSE GC
-				  ON G.GOODS_CD = GC.GOODS_CD
-			   INNER JOIN TB_OPTION OP
-				  ON IFNULL(GC.COMPS_GOODS_CD, G.GOODS_CD) = OP.GOODS_CD
-				LEFT OUTER JOIN TB_GOODS_IMG GI
-				  ON G.GOODS_CD = GI.GOODS_CD
-			   INNER JOIN TB_BRAND B
-				  ON G.BRAND_CD = B.BRAND_CD
-			   WHERE G.GOODS_CD IN
-		<foreach collection="arrGoodsCd" item="item" index="index"  open="(" close=")" separator=",">
-			#{item}
-		</foreach>
-		  ) Z
-		 GROUP BY SYS_IMG_NM, GOODS_CD, GOODS_NM, STOCK_QTY_SUM, GOODS_STAT, STYLE_YEAR
-				, SEASON_CD, LIST_PRICE, CURR_PRICE, PRICE_UPD_DT, ERP_STOCK_LINK_YN, FORMAL_GB, RETURNABLE_YN, REG_DT, REG_NM
-				, UPD_DT, UPD_NM, REP_GOODS_CD
-	</select>
-</mapper>

+ 157 - 0
src/main/java/com/style24/persistence/mybatis/shop/TsaMailTemplateManagement.xml

@@ -0,0 +1,157 @@
+<?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.TsaMailTemplateDao">
+
+	<!-- 메일헤더푸터관리 리스트 -->
+	<select id="getmailHFList" parameterType="MailTemplate" resultType="MailTemplate">
+			/* TsaMailTemplateManagement.getmailHFList */
+			SELECT  MAILHF_SQ                                             /*메일헤더푸터 일련번호*/
+			   	 ,  MAILHF_NM                                             /*메일헤더푸터 명*/
+			     ,  MAILHF_GB                                             /*메일 헤더푸터 구분 H:헤더 F:푸터*/
+			     ,  MAILHF_CONTENT                                        /*메일 헤더푸터 내용*/
+			     ,  USE_YN                                                /*사용여부*/
+			     ,  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_MAILHF
+			 WHERE  USE_YN = 'Y'
+		<if test="mailhfNm != null and mailhfNm !='' ">
+			   AND  LOWER(MAILHF_NM) LIKE CONCAT('%',LOWER(#{mailhfNm}),'%')
+		</if>
+		<if test="mailhfGb !=null and mailhfGb !='' ">
+			   AND  MAILHF_GB = #{mailhfGb}
+		</if> 
+		<if test="searchTxt !=null and searchTxt !='' ">
+			   AND  FN_GET_USER_NM(REG_NO) LIKE CONCAT('%',LOWER(#{searchTxt}), '%')
+		</if>
+			 ORDER  BY MAILHF_SQ
+	</select>
+	
+	
+	<!-- 메일헤더푸터관리 등록/수정 -->
+	<insert id="saveMailHF" parameterType="MailTemplate">
+			/* TsaMailTemplateManagement.saveMailHF */
+			 INSERT INTO TB_MAILHF (
+		     	    MAILHF_SQ                                        /*메일헤더푸터 일련번호*/
+		   	      , MAILHF_NM                                        /*메일헤더푸터 명*/
+		          , MAILHF_GB                                        /*메일헤더푸터 구분 H:헤더 F:푸터*/
+		          , MAILHF_CONTENT                                   /* 메일헤더푸터 내용*/
+		          , USE_YN                                           /*사용여부*/
+		          , REG_NO
+		          , REG_DT
+		          , UPD_NO
+		          , UPD_DT
+			        )
+		     VALUES (
+		            #{mailhfSq}
+		          , #{mailhfNm}
+		          , #{mailhfGb}
+		          , #{mailhfContent}
+		          , IFNULL(#{useYn},'Y')
+		          , #{regNo}
+		          , NOW()
+		          , #{updNo}
+		          , NOW()
+			      )
+       ON DUPLICATE KEY UPDATE
+			        MAILHF_SQ = #{mailhfSq}
+		          , MAILHF_NM = #{mailhfNm}
+		          , MAILHF_GB = #{mailhfGb}
+		          , MAILHF_CONTENT = #{mailhfContent}
+		          , UPD_NO = #{updNo}
+		          , UPD_DT = NOW()
+	</insert>
+	
+	<!-- 메일헤더푸터 상세화면 팝업 -->
+	<select id="getMailHFDetail" parameterType="Integer" resultType="MailTemplate">
+		/* TsaMailTemplateManagement.getMailHFDetail */
+			SELECT 	MAILHF_SQ
+				 ,  MAILHF_NM
+				 ,  MAILHF_GB
+				 ,  MAILHF_CONTENT
+			  FROM 	TB_MAILHF
+			 WHERE	MAILHF_SQ = #{mailhfSq}
+	</select>
+	
+	<!--메일헤더푸터관리 리스트 삭제 -->
+	<update id='deleteMailHFList' parameterType='MailTemplate'>
+			/* TsaMailManagement.deleteMailHFList */
+			UPDATE  TB_MAILHF
+	  		   SET  USE_YN = 'N'
+			 WHERE  MAILHF_SQ = #{mailhfSq}
+	</update>
+	
+	
+	<select id="getOrderSampleGoodsInfo" parameterType="Goods" resultType="Goods">
+			/*메일 템플릿 상품 전시*/
+			SELECT GOODS_CD
+		         , GOODS_NM
+		         , BRAND_ENM 
+		         , STOCK_QTY_SUM
+		         , GOODS_STAT
+		         , STYLE_YEAR
+			     , SEASON_CD
+		         , LIST_PRICE
+		         , CURR_PRICE
+		         , PRICE_UPD_DT
+		         , ERP_STOCK_LINK_YN
+		         , FORMAL_GB
+		         , RETURNABLE_YN
+		         , REG_DT
+		         , REG_NM
+			     , UPD_DT
+		         , UPD_NM
+		         , REP_GOODS_CD
+			     , GROUP_CONCAT(OPT_CD2 ORDER BY DISP_ORD DESC, OPT_CD2 SEPARATOR ',')        AS SITE_CD
+		      FROM (
+			SELECT   GI.SYS_IMG_NM
+				   , G.GOODS_CD
+				   , G.GOODS_NM
+   				   , B.BRAND_ENM 
+				   , (CASE WHEN G.GOODS_TYPE = 'G056_N' THEN (SELECT IFNULL(SUM(CURR_STOCK_QTY - BASE_STOCK_QTY),0) FROM VW_STOCK WHERE GOODS_CD = G.GOODS_CD)
+			   ELSE  (SELECT IFNULL(SUM(CURR_STOCK_QTY - BASE_STOCK_QTY),0) FROM VW_STOCK_COMPOSE WHERE GOODS_CD = G.GOODS_CD)
+					 END) AS STOCK_QTY_SUM
+				   , G.GOODS_STAT
+				   , G.STYLE_YEAR
+				   , G.SEASON_CD
+				   , G.LIST_PRICE
+				   , G.CURR_PRICE
+				   , G.PRICE_UPD_DT
+				   , G.ERP_STOCK_LINK_YN
+				   , G.FORMAL_GB
+				   , G.RETURNABLE_YN
+				   , G.REG_DT
+				   , FN_GET_USER_NM(G.REG_NO) AS REG_NM
+				   , G.UPD_DT
+				   , FN_GET_USER_NM(G.UPD_NO) AS UPD_NM
+				   , IFNULL(GC.COMPS_GOODS_CD, G.GOODS_CD) AS REP_GOODS_CD
+				   , OP.OPT_CD2
+				   , OP.DISP_ORD
+				FROM TB_GOODS G
+				LEFT OUTER JOIN TB_GOODS_COMPOSE GC
+				  ON G.GOODS_CD = GC.GOODS_CD
+			   INNER JOIN TB_OPTION OP
+				  ON IFNULL(GC.COMPS_GOODS_CD, G.GOODS_CD) = OP.GOODS_CD
+				LEFT OUTER JOIN TB_GOODS_IMG GI
+				  ON G.GOODS_CD = GI.GOODS_CD
+			   INNER JOIN TB_BRAND B
+				  ON G.BRAND_CD = B.BRAND_CD
+			   WHERE G.GOODS_CD IN
+		<foreach collection="arrGoodsCd" item="item" index="index"  open="(" close=")" separator=",">
+			 #{item}
+		</foreach>
+		  ) Z
+		    GROUP BY SYS_IMG_NM, GOODS_CD, GOODS_NM, STOCK_QTY_SUM, GOODS_STAT, STYLE_YEAR
+				   , SEASON_CD, LIST_PRICE, CURR_PRICE, PRICE_UPD_DT, ERP_STOCK_LINK_YN, FORMAL_GB, RETURNABLE_YN, REG_DT, REG_NM
+				   , UPD_DT, UPD_NM, REP_GOODS_CD
+	</select>
+	
+	
+	
+	<!-- 메일헤더푸터관리 등록/수정 -->
+	<insert id="saveMktMailTemplate" parameterType="MktmailManagement">
+			/* TsaMailTemplateManagement.saveMktMailTemplate */
+			
+	</insert>
+</mapper>

+ 189 - 101
src/main/webapp/WEB-INF/views/marketing/MktmailmanagementDetailForm.html

@@ -14,18 +14,18 @@
  * 1.0  2021. 02. 05   csh9191     최초 작성
  *******************************************************************************
  -->
-<div class="modalPopup" data-width="1200" id="popupMailHF">
+<div class="modalPopup" data-width="1200" id="popupMktMail">
 	<div class="panelStyle" style="max-height:700px;overflow-y:scroll;">
 		<!-- 팝업창 타이틀 -->
 		<div class="panelTitle">
 			<strong th:text="${'이메일' + (mode == 'N' ? '등록' : '상세')}">이메일</strong>
-			<button type="button" class="close" onclick="uifnPopupClose('popupMailHF');"><em class="fa fa-times"></em></button>
+			<button type="button" class="close" onclick="uifnPopupClose('popupMktMail');"><em class="fa fa-times"></em></button>
 		</div>
 		<!-- 팝업창 타이틀 -->
 		
 		<!-- 팝업창 상단부분 시작-->
 		<div class="panelContent">
-			<form id="mailManagementForm" name="mailManagementForm" action="#" th:action="@{'/marketing/mailtemplate/save'}" th:method="post">
+			<form id="mailManagementForm" name="mailManagementForm" action="#" th:action="@{'/marketing/mktMailManagement/save'}" th:method="post">
 				<input type="hidden" name="mode" th:value="${mode}"/>
 				
 				<table class="frmStyle" aria-describedby="">
@@ -37,32 +37,30 @@
 						<tr>
 							<th>메일번호</th>
 							<td>
-								<input type="text" name="mailtSq" maxlength="20" placeholder="자동생성" readonly="readonly"/>								
+								<input type="text" name="mailtSq" maxlength="20" placeholder="자동생성" readonly="readonly"/>
 							</td>
 						</tr>
 						<tr>
 							<th>헤더</th>
-							<td><select name="mailHsq">
-									<option value="">[전체]</option>
-									<option th:if="${mailHsqList}"
-										th:each="oneData, status : ${mailHsqList}"
-										th:value="${oneData.cd}"
-										th:text="${'[' + oneData.cd + '] ' + oneData.cdNm}"></option>
-							</select></td>
+							<td>
+								<select name="mailHsq">
+									<option>선택하기 ▼</option>
+									<option th:if="${mailHsqList}" th:each="oneData, status : ${mailHsqList}" th:text="|${oneData.mailhfNm}|">></option>
+								</select>
+							</td>
 						</tr>
 						<tr>
 							<th>푸터</th>
-							<td><select name="mailHsq">
-									<option value="">[전체]</option>
-									<option th:if="${mailFsq}"
-										th:each="oneData, status : ${mailFsqList}"
-										th:value="${oneData.cd}"
-										th:text="${'[' + oneData.cd + '] ' + oneData.cdNm}"></option>
-							</select></td>
+							<td>
+								<select name="mailFsq">
+										<option>선택하기 ▼</option>
+										<option th:if="${mailFsqList}" th:each="oneData, status : ${mailFsqList}" th:text="|${oneData.mailhfNm}|"></option>
+								</select>
+							</td>
 						</tr>
 						<tr>
 							<th>타이틀</th>
-							<td><input type="text" name="mailhfNm" maxlength="50" required="required" data-valid-name="타이틀" /></td>
+							<td><input type="text" name="mailtNm" maxlength="50" required="required" data-valid-name="타이틀" /></td>
 						</tr>
 						
 						<tr>
@@ -74,8 +72,6 @@
 					</tbody>
 					
 				</table>
-			</form>
-		</div>
 		<!-- 팝업창 상단부분 끝-->
 		
 		<!-- 팡업창 하단부분 시작 -->
@@ -100,7 +96,6 @@
 						</li>
 					</ul>
 						<!-- 구분 1 -->
-						<form id="searchForm1" name="searchForm1" action="#" th:action="@{'/'}">
 						<div class="inner-panelContent" id="btnAddGridNum">
 							<div class="panelContent">
 								<table class="frmStyle">
@@ -109,7 +104,7 @@
 										<col width="90%"/>
 									</colgroup>
 									<tr>
-										<th>상품 구분 1<br><br>
+										<th>상품 구분 1<br>
 											<button type="button" class="btn btn-danger btn-lg" id="" onclick="btnDeleteGridNum();">구분 삭제</button>
 										</th>
 										<td>
@@ -118,7 +113,7 @@
 													<tr>
 														<th class="w100">구분자 명</th>
 														<td>
-															<input type="text" name="mailtcNm" placeholder="자동생성" readonly="readonly"/>								
+															<input type="text" name="mailtcNm"/>								
 														</td>
 													</tr>
 													<tr>
@@ -128,7 +123,14 @@
 														</td>
 													</tr>
 													<tr>
-														<th>상품 노출 기준</th>
+														<th>상품 노출 기준
+															<div class="iconTooltip">
+																	<i class="fa fa-info" aria-hidden="true"></i>
+																	<span class="left aL" style="width:230px;">
+																		<em>1열 에 노출될 상품 개수를 뜻합니다.</em>
+																	</span>
+															</div>
+														</th>
 														<td>
 															<label class="rdoBtn"><input type="radio" name="goodsCpr"/>1개</label>
 															<label class="rdoBtn"><input type="radio" name="goodsCpr"/>2개</label>
@@ -140,7 +142,7 @@
 												</table>
 												<ul class="panelBar">
 													<li class="left">
-														<button type="button" class="btn btn-danger btn-lg" id="">상품삭제</button>
+														<button type="button" class="btn btn-danger btn-lg" onclick="fnGoodsDeleteRow('gridOptions_c1');">상품삭제</button>
 													</li>
 													<li class="right">
 														<button type="button" class="btn btn-info btn-lg" onclick="fnOpenGoodsPopup('gridOptions_c1');">상품추가</button>
@@ -154,11 +156,9 @@
 								</table>
 							</div>
 						</div>
-						</form> 
 						<!-- 구분 1 -->
 						
 						<!-- 구분2 -->
-						<form id="searchForm2" name="searchForm2" action="#" th:action="@{'/'}">
 						<div class="inner-panelContent" id="btnAddGridNum2" style="display:none;">
 							<div class="panelContent">
 								<table class="frmStyle">
@@ -174,7 +174,7 @@
 											<div class="">
 												<table  class="frmStyle">
 													<tr>
-														<th class="w100">번호</th>
+														<th class="w100">구분자 명</th>
 														<td>
 															<input type="text" name="" placeholder="자동생성" readonly="readonly"/>
 														</td>
@@ -198,10 +198,10 @@
 												</table>
 												<ul class="panelBar">
 													<li class="left">
-														<button type="button" class="btn btn-danger btn-lg" id="" >상품삭제</button>
+														<button type="button" class="btn btn-danger btn-lg" onclick="fnGoodsDeleteRow('gridOptions_c2');">상품삭제</button>
 													</li>
 													<li class="right">
-														<button type="button" class="btn btn-info btn-lg" onclick="fnOpenGoodsPopup(gridOptions_c2);">상품추가</button>
+														<button type="button" class="btn btn-info btn-lg" onclick="fnOpenGoodsPopup('gridOptions_c2');">상품추가</button>
 													</li>													
 												</ul>
 												<!-- Agrid -->
@@ -212,11 +212,9 @@
 								</table>
 							</div>
 						</div>
-						</form>
 						<!-- 구분2  -->
 						
 						<!-- 구분3 -->
-						<form id="searchForm3" name="searchForm3" action="#" th:action="@{'/'}">
 						<div class="inner-panelContent" id="btnAddGridNum3" style="display:none;">
 							<div class="panelContent">
 								<table class="frmStyle">
@@ -226,13 +224,13 @@
 									</colgroup>
 									<tr>
 										<th>상품 구분 3<br><br>
-											<button type="button" class="btn btn-danger btn-lg" id="" onclick="btnDeleteGridNum3();">구분 삭제</button>
+											<button type="button" class="btn btn-danger btn-lg" id="" onclick="btnDeleteGridNum3('gridOptions_c3');">구분 삭제</button>
 										</th>
 										<td>
 											<div class="">
 												<table  class="frmStyle">
 													<tr>
-														<th class="w100">번호</th>
+														<th class="w100">구분자 명</th>
 														<td>
 															<input type="text" name="" placeholder="자동생성" readonly="readonly"/>								
 														</td>
@@ -256,10 +254,10 @@
 												</table>
 												<ul class="panelBar">
 													<li class="left">
-														<button type="button" class="btn btn-danger btn-lg" id="" >상품삭제</button>
+														<button type="button" class="btn btn-danger btn-lg" onclick="fnGoodsDeleteRow('gridOptions_c3');">상품삭제</button>
 													</li>
 													<li class="right">
-														<button type="button" class="btn btn-info btn-lg" id="">상품추가</button>
+														<button type="button" class="btn btn-info btn-lg" onclick="fnOpenGoodsPopup('gridOptions_c3');">상품추가</button>
 													</li>													
 												</ul>
 												<!-- Agrid -->
@@ -270,11 +268,9 @@
 								</table>
 							</div>
 						</div>
-						</form>
 						<!-- 구분3 -->
 						
 						<!-- 구분4 -->
-						<form id="searchForm4" name="searchForm4" action="#" th:action="@{'/'}">
 						<div class="inner-panelContent" id="btnAddGridNum4" style="display:none;">
 							<div class="panelContent">
 								<table class="frmStyle">
@@ -284,7 +280,7 @@
 									</colgroup>
 									<tr>
 										<th>상품 구분 4<br><br>
-											<button type="button" class="btn btn-danger btn-lg" id="" onclick="btnDeleteGridNum4();">구분 삭제</button>
+											<button type="button" class="btn btn-danger btn-lg" id="" onclick="btnDeleteGridNum4('gridOptions_c4');">구분 삭제</button>
 										</th>
 										<td>
 											<div class="">
@@ -314,10 +310,10 @@
 												</table>
 												<ul class="panelBar">
 													<li class="left">
-														<button type="button" class="btn btn-danger btn-lg" id="" >상품삭제</button>
+														<button type="button" class="btn btn-danger btn-lg" onclick="fnGoodsDeleteRow('gridOptions_c4');">상품삭제</button>
 													</li>
 													<li class="right">
-														<button type="button" class="btn btn-info btn-lg" id="">상품추가</button>
+														<button type="button" class="btn btn-info btn-lg" onclick="fnOpenGoodsPopup('gridOptions_c4');">상품추가</button>
 													</li>													
 												</ul>
 												<!-- Agrid -->
@@ -328,11 +324,9 @@
 								</table>
 							</div>
 						</div>
-						</form>
 						<!-- 구분4 -->
 						
 						<!-- 구분5 -->
-						<form id="searchForm5" name="searchForm5" action="#" th:action="@{'/'}">
 						<div class="inner-panelContent" id="btnAddGridNum5" style="display:none;">
 							<div class="panelContent">
 								<table class="frmStyle">
@@ -342,13 +336,13 @@
 									</colgroup>
 									<tr>
 										<th>상품 구분 5<br><br>
-											<button type="button" class="btn btn-danger btn-lg" id="" onclick="btnDeleteGridNum5();">구분 삭제</button>
+											<button type="button" class="btn btn-danger btn-lg" id="" onclick="btnDeleteGridNum5('gridOptions_c5');">구분 삭제</button>
 										</th>
 										<td>
 											<div class="">
 												<table  class="frmStyle">
 													<tr>
-														<th class="w100">번호</th>
+														<th class="w100">구분자 명</th>
 														<td>
 															<input type="text" name="" placeholder="자동생성" readonly="readonly"/>								
 														</td>
@@ -372,10 +366,10 @@
 												</table>
 												<ul class="panelBar">
 													<li class="left">
-														<button type="button" class="btn btn-danger btn-lg" id="" >상품삭제</button>
+														<button type="button" class="btn btn-danger btn-lg" onclick="fnGoodsDeleteRow('gridOptions_c5');">상품삭제</button>
 													</li>
 													<li class="right">
-														<button type="button" class="btn btn-info btn-lg" id="">상품추가</button>
+														<button type="button" class="btn btn-info btn-lg" onclick="fnOpenGoodsPopup('gridOptions_c5');">상품추가</button>
 													</li>													
 												</ul>
 												<!-- Agrid -->
@@ -386,7 +380,6 @@
 								</table>
 							</div>
 						</div>
-						</form>
 						<!-- 구분5 -->
 					
 						
@@ -398,39 +391,92 @@
 		<!-- 버튼 배치 영역 -->
 		<ul class="panelBar">
 			<li class="left"  th:if="${mode  == 'N' }">
-				<button type="button" class="btn btn-danger btn-lg" id="btndeleteMailHF">삭제</button>
+				<button type="button" class="btn btn-danger btn-lg" id="btndeleteMktmail">삭제</button>
 			</li>
 			<li class="right">
-				<button type="button" class="btn btn-info btn-lg" id="btnSaveMailHF">저장</button>
+				<button type="button" class="btn btn-info btn-lg" id="btnSaveMktMail">저장</button>
 			</li>
 		</ul>
 		<!-- //버튼 배치 영역 -->
-	</div>
+				</form>
+		</div>
+	</div>//
 </div>
 
 <script type="text/javascript" src="/ux/plugins/summernote/summernote.js?v=2020102902"></script>
 <script type="text/javascript" src="/ux/plugins/gaga/gaga.summernote.js?v=20201030"></script>
 <script th:inline="javascript">
 /*<![CDATA[*/
+		let AddgridRow;		
+		
+		//팝업창 삭제버튼
+		$('#btndeleteMktmail').on('click', function() {
+			mcxDialog.confirm("등록하신 내용을 삭제하시겠습니까?<br>삭제한 내용은 복원하실 수 없습니다.", {
+				cancelBtnText: "취소",
+				sureBtnText: "확인",
+				sureBtnClick: function() {
+					uifnPopupClose('popupMktMail');
+				}
+			});
+		});
 		
-		let AddgridRow;
-	
 		//상품 전시 그리드 그리기
 		var columnDefs = [
 			{width: 40, minWidth: 40, cellClass: 'text-center', headerCheckboxSelection: true, checkboxSelection: true, filter: false},
 			{headerName: "Product ID", field: "goodsCd" , width: 120, cellClass: 'text-center'},
-			{headerName: "브랜드명", field: "brandKnm" , width: 200, cellClass: 'text-center'},
+			{headerName: "브랜드명", field: "brandEnm" , width: 200, cellClass: 'text-center'},
 			{headerName: "상품명", field: "goodNms" , width: 200, cellClass: 'text-center'},
 			{headerName: "판매상태", field: "cdNm" , width: 100, cellClass: 'text-center'	},
 			{headerName: "정상가", field: "listPrice" , width: 120, cellClass: 'text-center'},
 			{headerName: "판매가", field: "listPrice" , width: 120, cellClass: 'text-center'},
-			{headerName: "순번", field: "dispOrd" , width: 120, cellClass: 'text-center'},
+			{headerName: "순번", field: "dispOrd" , width: 120, cellClass: 'text-center'}
 		]
-	
-		// 상품 구분 추가 버튼
-		// 추가 버튼 표시는 1~5까지 순서대로 표시
-		function btnAddGrid(){
-			if($('#btnAddGridNum2').css('display') == 'none'){
+		
+		
+		///저장
+		$('#btnSaveMktMail').on('click', function() {
+		
+		//타이틀 길이 제한 2자 이상 50자미만
+			var check = $('#mailManagementForm input[name=mailtNm]').val();
+
+			if(check.length < 2){
+				mcxDialog.alert('타이틀은 2자 이상 50자 미만으로 입력하세요.');
+				return false;
+			}
+			
+			mcxDialog.confirm("내용을 등록 하시겠습니까?", {
+				cancelBtnText: "취소",
+				sureBtnText: "확인",
+				sureBtnClick: function() {
+					let data = {};
+					data.mktHeader = $('#mailManagementForm select[name=mailHsq]').val();
+					data.mktFooter = $('#mailManagementForm select[name=mailFsq]').val();
+					data.mailtNm = $('#mailManagementForm input[name=mailtNm]').val();
+					data.mailContent = $('#mailManagementForm textarea[name=mailContent]').val();
+					
+					data.gridOptions_c1 = gagaAgGrid.selectedRowData(gridOptions_c1);
+					data.gridOptions_c2 = gagaAgGrid.selectedRowData(gridOptions_c2);
+					data.gridOptions_c3 = gagaAgGrid.selectedRowData(gridOptions_c3);
+					data.gridOptions_c4 = gagaAgGrid.selectedRowData(gridOptions_c4);
+					data.gridOptions_c5 = gagaAgGrid.selectedRowData(gridOptions_c5);
+					
+					let jsonData = JSON.stringify(data);
+					console.log(data);
+					
+					gagajf.ajaxJsonSubmit($('#mailManagementForm').prop('action'), jsonData, function(data){
+						uifnPopupClose('popupMktMail');
+					});
+				
+				}
+			});
+		
+		});
+		
+		// 상품 구분 추가 버튼 추가 버튼 표시는 1~5까지 순서대로 표시
+		$('#btnAddGrid').on('click', function(){
+			if($('#btnAddGridNum').css('display') == 'none'){
+				$('#btnAddGridNum').show();('#searchForm')
+			}else if($('#btnAddGridNum2').css('display') == 'none' && $('#btnAddGridNum').css('display') != 'none'){
 				$('#btnAddGridNum2').show();('#searchForm2')
 			}else if($('#btnAddGridNum3').css('display') == 'none' && $('#btnAddGridNum2').css('display') != 'none'){
 				$('#btnAddGridNum3').show();('#searchForm3')
@@ -444,7 +490,7 @@
 				});
 				return false;
 			}
-		}
+		});
 		
 		// Add on options
 		var gridOptions_c1 = gagaAgGrid.getGridOptions(columnDefs);
@@ -453,33 +499,36 @@
 		var gridOptions_c4 = gagaAgGrid.getGridOptions(columnDefs);
 		var gridOptions_c5 = gagaAgGrid.getGridOptions(columnDefs);
 		
-		switch (fnOpenGoodsPopup){
-		case 'gridOptions_c1' : 
-			AddgridRow = gridOptions_c1;
-			break;
-		case 'gridOptions_c2' : 
-			AddgridRow = gridOptions_c2;
-			break;
-		case 'gridOptions_c3' : 
-			AddgridRow = gridOptions_c3;
-			break;
-		case 'gridOptions_c4' : 
-			AddgridRow = gridOptions_c4;
-			break;
-		case 'gridOptions_c5' : 
-			AddgridRow = gridOptions_c5;
-			break;
-		}
+		// 표시순번 수정가능
+		gridOptions_c1.defaultColDef.editable = true;
+		gridOptions_c1.suppressRowClickSelection = true;
 		
-		// 상품조회 팡업
-		var fnOpenGoodsPopup = function() {
+		// 버튼별 상품추가 팝업
+		var fnOpenGoodsPopup = function(param) {
+			switch (param){
+			case 'gridOptions_c1': 
+				AddgridRow = gridOptions_c1;
+				break;
+			case 'gridOptions_c2' : 
+				AddgridRow = gridOptions_c2;
+				break;
+			case 'gridOptions_c3' : 
+				AddgridRow = gridOptions_c3;
+				break;
+			case 'gridOptions_c4' : 
+				AddgridRow = gridOptions_c4;
+				break;
+			case 'gridOptions_c5' : 
+				AddgridRow = gridOptions_c5;
+				break;
+			}
+			
 			cfnOpenGoodsPopup('fnFetchGoods');
 		}
-		
-		
+
 		// 상품추가
 		var fnFetchGoods = function(goodsData) {
-
+			
 			if (goodsData.length < 1) return;
 			
 			// 기존상품
@@ -493,7 +542,7 @@
 			
 			var isExist = false;
 			var jsonData = JSON.stringify(arrGoodsCd);
-			gagajf.ajaxJsonSubmit('/marketing/mktmailmanagement/goods/info', jsonData, function(result) {
+			gagajf.ajaxJsonSubmit('/marketing/mktMailManagement/goods/info', jsonData, function(result) {
 				$.each(result, function(idx, item) {
 					isExist = false;
 					AddgridRow.api.forEachNode(function(rowNode, index) {
@@ -503,18 +552,23 @@
 						}
 					});
 					
+					//상품 추가 갯수 제한
+					if(goodsData.length > 40){
+						mcxDialog.alert('상품은 최대 40개까지 추가 가능합니다.');
+						return false;
+					}
+					
 					if(!isExist){
 						var data = {
-							goodsCd : item.goodsCd
-							, brandKnm : item.brandKnm
-							, goodNms : item.goodsNm
-							, cdNm : item.goodsStat
-							, listPrice : item.listPrice
-							, currPrice : item.currPrice
-							, dispOrd : index
+							   goodsCd : item.goodsCd
+						   ,  brandEnm : item.brandEnm
+						   ,   goodNms : item.goodsNm
+						   ,      cdNm : item.goodsStat
+						   , listPrice : item.listPrice
+						   , currPrice : item.currPrice
+						   ,   dispOrd : index
 	
 						};
-						
 						//그리드 마지막에 추가해야함
 						AddgridRow.api.updateRowData({add: [data], addIndex: idx});
 						AddgridRow.api.refreshCells();
@@ -522,41 +576,75 @@
 					}
 				});
 			});
+		}
+	
+		// 상품 삭제
+		var fnGoodsDeleteRow = function(param) {
+			switch (param){
+			case 'gridOptions_c1': 
+				AddgridRow = gridOptions_c1;
+				break;
+			case 'gridOptions_c2' : 
+				AddgridRow = gridOptions_c2;
+				break;
+			case 'gridOptions_c3' : 
+				AddgridRow = gridOptions_c3;
+				break;
+			case 'gridOptions_c4' : 
+				AddgridRow = gridOptions_c4;
+				break;
+			case 'gridOptions_c5' : 
+				AddgridRow = gridOptions_c5;
+				break;
+			}
 			
+			var selectedData = gagaAgGrid.selectedRowData(AddgridRow);
+		
+			if (selectedData.length == 0) {
+				mcxDialog.alert('선택된 행이 없습니다.');
+				return false;
+			}		
+			//화면에서 삭제
+			gagaAgGrid.removeRowData(AddgridRow, false);
 		}
-
-
+		
+		
 		// 상품 구분 삭제 버튼  삭제는 해당 하는 폼이 삭제
-		function btnDeleteGridNum(){
+		function btnDeleteGridNum(param){
 			if($('#btnAddGridNum').css('display') !='none'){
 				$('#btnAddGridNum').hide();
 				$('#btnAddGridNum')[0].reset();
+				gagaAgGrid.removeRowData(AddgridRow, false);
 			}
 		}		
-		function btnDeleteGridNum2(){
+		function btnDeleteGridNum2(param){
 			if($('#btnAddGridNum2').css('display') !='none'){
 				$('#btnAddGridNum2').hide();
 				$('#searchForm2')[0].reset();
+				gagaAgGrid.removeRowData(AddgridRow, false);
 			}			
 		}			
-		function btnDeleteGridNum3(){
+		function btnDeleteGridNum3(param){
 			if ($('#btnAddGridNum3').css('display') !='none'){
 				$('#btnAddGridNum3').hide();
 				$('#searchForm3')[0].reset();
+				gagaAgGrid.removeRowData(AddgridRow, false);
 			}			
 		}		
-		function btnDeleteGridNum4(){
+		function btnDeleteGridNum4(param){
 			if ($('#btnAddGridNum4').css('display') !='none'){
 				$('#btnAddGridNum4').hide();
 				$('#searchForm3')[0].reset();
+				gagaAgGrid.removeRowData(AddgridRow, false);
 			}			
 		}
-		function btnDeleteGridNum5(){
+		function btnDeleteGridNum5(param){
 			if ($('#btnAddGridNum5').css('display') !='none'){
 				$('#btnAddGridNum5').hide();
 				$('#searchForm5')[0].reset();
+				gagaAgGrid.removeRowData(AddgridRow, false);
 			}			
-		}
+		} 
 
 
 		

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

@@ -23,7 +23,6 @@
 		<div class="infoBox menu-desc"></div>
 
 		<form id="searchForm" name="searchForm" action="#" th:action="@{'/marketing/Mktmailmanagement/list'}">
-
 			<!-- 검색조건 영역 -->
 			<div class="panelStyle" >
 				<!-- //TITLE -->
@@ -33,7 +32,6 @@
 							<col style="width: 7%;"/>
 							<col/>
 						</colgroup>
-
 						<tr>
 							<th>기간<em class="required" title="필수"></em></th>
 							<td id="sellTerms"></td>
@@ -42,8 +40,8 @@
 						<tr>
 							<th>조회</th>
 							<td>
-								<label class="rdoBtn"><input type="radio" name="mailtSq"  checked/>메일번호</label>
-								<label class="rdoBtn"><input type="radio" name="mailtNm"/>타이틀</label>
+								<label class="rdoBtn"><input type="radio" name="mailtSq" value="mailtSq" checked/>메일번호</label>
+								<label class="rdoBtn"><input type="radio" name="mailtSq" value="mailtNm"/>타이틀</label>
 								<input type="text" class="w900" name="searchTxt" id="searchTxt"/>
 							</td>
 						</tr>
@@ -140,7 +138,7 @@
 	var fnOpenMailHFPopup = function(mode, mailtSq) {
 		var actionUrl = '/marketing/mktmailmanagement/detail/form' + '?mode=' + mode;
 		if (!gagajf.isNull(mailtSq)) actionUrl += '&mailtSq=' + mailtSq;
-		cfnOpenModalPopup(actionUrl, 'popupMailHF');
+		cfnOpenModalPopup(actionUrl, 'popupMktMail');
 	}