Bladeren bron

Merge branch 'jsshin' into develop

jsshin 5 jaren geleden
bovenliggende
commit
3ea158cef7

+ 91 - 0
src/main/java/com/style24/admin/biz/dao/TsaGiftCardDao.java

@@ -0,0 +1,91 @@
+package com.style24.admin.biz.dao;
+
+import com.style24.persistence.domain.GiftCard;
+import org.springframework.stereotype.Repository;
+
+import com.style24.core.support.annotation.ShopDs;
+
+import java.util.Collection;
+
+/**
+ * 상품권 Dao
+ *
+ * @author jsshin
+ * @since 2021. 05. 12
+ */
+
+@ShopDs
+@Repository
+public interface TsaGiftCardDao {
+
+	/**
+	 * 상품권 정보 저장
+	 *
+	 * @param giftCard - 상품권, 고객 정보
+	 * @return int - 결과
+	 * @author jsshin
+	 * @since 2021. 05. 12
+	 */
+	int createGfcdBulkReg(GiftCard giftCard);
+
+	/**
+	 * 상품권API 결과 저장
+	 *
+	 * @param giftCard - 상품권, 고객 정보
+	 * @return int - 결과
+	 * @author jsshin
+	 * @since 2021. 05. 12
+	 */
+	int createGiftcardApi(GiftCard giftCard);
+
+	/**
+	 * 고객 상품권 등록
+	 *
+	 * @param giftCard - 상품권, 고객 정보
+	 * @return int - 결과
+	 * @author jsshin
+	 * @since 2021. 05. 12
+	 */
+	int createGiftcardUseConfirm(GiftCard giftCard);
+
+	/**
+	 * 고객 상품권 정보 이력
+	 *
+	 * @param giftCard - 상품권, 고객 정보
+	 * @return int - 결과
+	 * @author jsshin
+	 * @since 2021. 05. 12
+	 */
+	int createCustGiftcardHistory(GiftCard giftCard);
+
+	/**
+	 * 상품권 대량등록 결과
+	 *
+	 * @param giftCard - 상품권, 고객 정보
+	 * @return int - 결과
+	 * @author jsshin
+	 * @since 2021. 05. 12
+	 */
+	int updateGfcdBulkReg(GiftCard giftCard);
+
+	/**
+	 * 상품권 대량 등록수
+	 *
+	 * @param giftCard - 상품권, 고객 정보
+	 * @author jsshin
+	 * @since 2021. 5. 12
+	 */
+	int getGiftCardListCount(GiftCard giftCard);
+
+
+	/**
+	 * 상품권 대량등록 목록
+	 *
+	 * @param giftCard - 상품권, 고객 정보
+	 * @author jsshin
+	 * @since 2021. 5. 12
+	 */
+	 Collection<GiftCard> getGiftCardList(GiftCard giftCard);
+
+
+}

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

@@ -453,4 +453,21 @@ public class TsaCustomerService {
 		customer.setUpdNo(userNo);
 		return coreCustomerService.saveDormantCustomerRelease(customer);
 	}
+
+	/**
+	 * 회원 정보 조회
+	 * @param custId - 고객 아이디
+	 * @return Customer
+	 * @author jsshin
+	 * @since 2021. 05. 13
+	 */
+	public Customer getCustomerInfoByCustId(String custId) {
+		Customer customer = new Customer();
+		customer.setSiteCd(TscConstants.Site.STYLE24.value());
+		customer.setCustId(custId);
+		customer.setCustStat(TscConstants.CustStat.ACTIVE.value());
+		return coreCustomerService.getCustomerInfo(customer);
+	}
+
+
 }

+ 151 - 0
src/main/java/com/style24/admin/biz/service/TsaGiftCardService.java

@@ -0,0 +1,151 @@
+package com.style24.admin.biz.service;
+
+
+import com.fasterxml.jackson.databind.ObjectMapper;
+import com.gagaframework.web.parameter.GagaMap;
+import com.style24.admin.biz.dao.TsaGiftCardDao;
+import com.style24.admin.support.security.session.TsaSession;
+import com.style24.core.biz.thirdparty.Yes24Giftcard;
+import com.style24.core.support.env.TscConstants;
+import com.style24.persistence.domain.Customer;
+import com.style24.persistence.domain.GiftCard;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+import java.util.Collection;
+
+/**
+ * 상품권 Service
+ *
+ * @author jsshin
+ * @since 2021. 05. 12
+ */
+@Service
+@Slf4j
+public class TsaGiftCardService {
+
+	@Autowired
+	private TsaGiftCardDao giftCardDao;
+
+	@Autowired
+	private TsaCustomerService customerService;
+
+	@Autowired
+	private Yes24Giftcard yes24Giftcard;
+
+	@Autowired
+	private ObjectMapper objectMapper;
+
+
+	/**
+	 * 상품권 대량 등록수
+	 *
+	 * @param giftCard - 상품권, 고객 정보
+	 * @author jsshin
+	 * @since 2021. 5. 12
+	 */
+	public int getGiftCardListCount(GiftCard giftCard) {
+		return giftCardDao.getGiftCardListCount(giftCard);
+	}
+
+	/**
+	 * 상품권 대량등록 목록
+	 *
+	 * @param giftCard - 상품권, 고객 정보
+	 * @author jsshin
+	 * @since 2021. 5. 12
+	 */
+	public Collection<GiftCard> getGiftCardList(GiftCard giftCard) {
+		return giftCardDao.getGiftCardList(giftCard);
+	}
+
+	/**
+	 * 상품권 저장
+	 *
+	 * @param gagaMap - 상품권, 고객 정보
+	 * @author jsshin
+	 * @throws Exception
+	 * @since 2021. 5. 12
+	 */
+	@Transactional("shopTxnManager")
+	public void saveGiftcardUseConfirm(GagaMap gagaMap) throws Exception {
+		Integer userNo = TsaSession.getInfo().getUserNo();
+		String ip = TsaSession.getIpAddress();
+		String resultMsg;
+		GiftCard giftCard = objectMapper.convertValue(gagaMap, GiftCard.class);
+
+		giftCard.setRegNo(userNo);
+		giftCard.setUpdNo(userNo);
+		giftCard.setIpAddr(ip);
+
+		// 1. 엑셀 내용 데이터 생성
+		giftCardDao.createGfcdBulkReg(giftCard);
+
+		// 2. 활동회원 확인
+		Customer customer = customerService.getCustomerInfoByCustId(giftCard.getCustId().trim());
+
+		// 3. 유효한 회원이면
+		if (customer != null) {
+			Integer custNo = customer.getCustNo();
+			String pubNo = giftCard.getGfcdNo().trim();
+			// 상품권 API 호출
+			String result = yes24Giftcard.soapDataTransfer(pubNo, ip, custNo);
+
+			giftCard.setGfcdNo(pubNo);
+			giftCard.setCustNo(custNo);
+
+			if ("01".equals(result)) {
+				giftCard.setResultVal(result);
+				resultMsg = "존재하지 않는 상품권";
+			} else if ("02".equals(result)) {
+				giftCard.setResultVal(result);
+				resultMsg = "이미 등록된 상품권";
+			} else if ("03".equals(result)) {
+				giftCard.setResultVal(result);
+				resultMsg = "삭제된 상품권";
+			} else if ("04".equals(result)) {
+				giftCard.setResultVal(result);
+				resultMsg = "기간이 만료된 상품권";
+			} else if ("99".equals(result)) {
+				giftCard.setResultVal(result);
+				resultMsg = "시스템 오류";
+			} else {
+				giftCard.setResultVal("00");
+				resultMsg = "상품권등록 성공";
+			}
+			// 상품권 API 이력 저장
+			giftCardDao.createGiftcardApi(giftCard);
+
+			// 성공일 경우
+			if ("00".equals(giftCard.getResultVal())) {
+				String[] param = result.split("[|]");
+				// [2021-04-01, 오전, 12:00:00]
+				String[] param2 = param[2].split(" ");
+				String[] param3 = param[3].split(" ");
+
+				// 고객 상품권 등록
+				giftCard.setGfcdNm("YES24상품권");
+				giftCard.setChgGfcdAmt(Integer.parseInt(param[1])); // 승인금액
+				giftCard.setRmGfcdAmt(Integer.parseInt(param[1])); // 승인금액
+				giftCard.setUseStDate(param2[0]);
+				giftCard.setUseExpDate(param3[0]);
+				giftCardDao.createGiftcardUseConfirm(giftCard);
+
+				// 고객 상품권 이력 등록
+				giftCard.setOccurGb(TscConstants.GiftCardOccurGb.REGISTER_GIFTCARD.value());
+				giftCard.setOccurDtlDesc("상품권등록");
+				giftCard.setGfcdAmt(Integer.parseInt(param[1]));
+				giftCardDao.createCustGiftcardHistory(giftCard);
+			}
+		} else {
+			resultMsg = "존재하지 않는 회원";
+		}
+
+		giftCard.setResultMsg(resultMsg);
+		giftCardDao.updateGfcdBulkReg(giftCard);
+
+	}
+
+}

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

@@ -8,6 +8,14 @@ import java.util.Collection;
 import java.util.Date;
 import java.util.Iterator;
 
+import com.fasterxml.jackson.databind.ObjectMapper;
+import com.style24.admin.biz.dao.TsaGiftCardDao;
+import com.style24.admin.biz.service.TsaGiftCardService;
+import com.style24.core.support.session.TscSession;
+import com.style24.core.support.util.CryptoUtils;
+import com.style24.persistence.domain.CustomerSearch;
+import com.style24.persistence.domain.GiftCard;
+import com.style24.persistence.domain.GoodsMass;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Value;
@@ -127,6 +135,9 @@ public class TsaMarketingController extends TsaBaseController {
 	@Autowired
 	private TsaSocialService socialService;
 
+	@Autowired
+	private TsaGiftCardService giftCardService;
+
 	@Value("${upload.default.target.path}")
 	private String uploadTargetPath;
 
@@ -2363,7 +2374,6 @@ public class TsaMarketingController extends TsaBaseController {
 	/**
 	 * 소셜쇼핑관리 화면
 	 *
-	 * @param
 	 * @author sowon
 	 * @since 2021. 3. 3 
 	 */
@@ -2392,8 +2402,8 @@ public class TsaMarketingController extends TsaBaseController {
 	/**
 	 * 소셜 저장
 	 *
-	 * @param 소셜 정보
-	 * @return
+	 * @param  param - 소셜정보
+	 * @return GagaResponse - 메시지
 	 * @author sowon
 	 * @since 2021. 3. 3
 	 */
@@ -2408,8 +2418,8 @@ public class TsaMarketingController extends TsaBaseController {
 	/**
 	 * 소셜 목록
 	 *
-	 * @param 
-	 * @return 
+	 * @param params - 소셜정보
+	 * @return GagaResponse - 결과메시지
 	 * @author sowon
 	 * @since 2021. 3. 3
 	 */
@@ -2431,8 +2441,8 @@ public class TsaMarketingController extends TsaBaseController {
 	/**
 	 * 소셜 상품 저장
 	 *
-	 * @param 소셜 상품 정보
-	 * @return
+	 * @param  paramList - 소셜상품정보
+	 * @return GagaResponse - 결과메시지
 	 * @author sowon
 	 * @since 2021. 3. 4
 	 */
@@ -2446,8 +2456,8 @@ public class TsaMarketingController extends TsaBaseController {
 	/**
 	 * 소셜 상품 목록
 	 *
-	 * @param 소셜 상품 정보
-	 * @return 소셜 상품 목록
+	 * @param params - 소셜상품정보
+	 * @return Collection<Social> - 소셜상품목록
 	 * @author sowon
 	 * @since 2021. 3. 4
 	 */
@@ -2461,8 +2471,8 @@ public class TsaMarketingController extends TsaBaseController {
 	/**
 	 * 소셜 상품 삭제
 	 *
-	 * @param 소셜 상품 정보
-	 * @return
+	 * @param paramList - 소셜상품정보
+	 * @return GagaResponse - 결과메시지
 	 * @author sowon
 	 * @since 2021. 3. 4
 	 */
@@ -2473,4 +2483,67 @@ public class TsaMarketingController extends TsaBaseController {
 		return super.ok(message.getMessage("SUCC_0003"));
 	}
 
+	/**
+	 * 상품권 대량 등록 화면
+	 *
+	 * @return ModelAndView
+	 * @author jsshin
+	 * @since 2021. 05. 13
+	 */
+	@GetMapping("/giftcard/list/form")
+	public ModelAndView getGiftCardListForm() {
+		ModelAndView mav = new ModelAndView();
+
+		// 사이트 목록
+		mav.addObject("siteList", rendererService.getCommonCodeList("G000", "Y"));
+
+		mav.setViewName("marketing/GiftCardListForm");
+
+		return mav;
+	}
+
+	/**
+	 * 상품권 등록 목록
+	 *
+	 * @param giftCard - 검색조건
+	 * @return GagaMap - 페이징, 결과
+	 * @author jsshin
+	 * @since 2021. 01. 12
+	 */
+	@PostMapping("/giftcard/list")
+	@ResponseBody
+	public GagaMap getGiftCardList(@RequestBody GiftCard giftCard) {
+		GagaMap result = new GagaMap();
+		giftCard.setRegNo(TsaSession.getInfo().getUserNo());
+		giftCard.setPageable(new TscPageRequest(giftCard.getPageNo()-1, giftCard.getPageSize()));
+		giftCard.getPageable().setTotalCount(giftCardService.getGiftCardListCount(giftCard));
+		TscSession.setAttribute("maskingYn", TsaSession.getInfo().getMaskingYn());
+		result.set("pageing", giftCard);
+		result.set("giftCardList", giftCardService.getGiftCardList(giftCard));
+		return result;
+	}
+
+	/**
+	 * 상품권대량 업로드 엑셀 저장
+	 *
+	 * @param giftCard - 검색조건
+	 * @return
+	 * @author jsshin
+	 * @since 2021. 01. 12
+	 */
+	@PostMapping("/upload/giftcard/bulk/reg")
+	@ResponseBody
+	public GagaResponse uploadGiftCardBulkReg(@RequestBody GiftCard giftCard) throws Exception {
+		String targetPath = GagaFileUtil.getConcatenationPath(env.getProperty("upload.excel.target.path"), "excel");
+		String[] giftGardNames = {"custId", "gfcdNo"};
+		Collection<GagaMap> excelGiftCardList = GagaExcelUtil.getList(GagaFileUtil.getConcatenationPath(targetPath, giftCard.getExcelFileNm()), 0, giftGardNames, 0);
+
+		for (GagaMap gagaMap : excelGiftCardList) {
+			if (StringUtils.isNotBlank(gagaMap.getString("custId"))  && StringUtils.isNotBlank(gagaMap.getString("gfcdNo"))) {
+				giftCardService.saveGiftcardUseConfirm(gagaMap);
+			}
+		}
+		return super.ok(message.getMessage("SUCC_0001"));
+	}
+
 }

+ 182 - 0
src/main/java/com/style24/persistence/mybatis/shop/TsaGiftCard.xml

@@ -0,0 +1,182 @@
+<?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.TsaGiftCardDao">
+
+	<!-- 페이징을 위한 select절 상단 -->
+	<sql id="selectForPagingHeader">
+		SELECT *
+		FROM (
+	</sql>
+
+	<!-- 페이징을 위한 select절 하단 -->
+	<sql id="selectForPagingFooter">
+		) ORIGINAL
+		WHERE NUMB BETWEEN #{pageable.startRow} AND #{pageable.endRow}
+	</sql>
+
+	<!-- 상품권 대량 등록 수-->
+	<select id="getGiftCardListCount" parameterType="GiftCard" resultType="int">
+		/*TsaGiftCard.getGiftCardListCount*/
+		SELECT COUNT(*)  AS CNT
+		FROM   TB_GFCD_BULK_REG GBR
+		LEFT JOIN
+		       TB_GIFTCARD_API_HST GAH
+		ON     GBR.GFCD_API_HST_SQ = GAH.GFCD_API_HST_SQ
+		WHERE  1 = 1
+		<if test="custId != null and custId != ''">
+		AND    LOWER(GBR.CUST_ID) LIKE CONCAT('%',LOWER(#{custId}),'%')
+		</if>
+		<if test="stDate != null and edDate != '' and stDate != null and edDate != ''">
+		AND    GBR.REG_DT >= DATE_FORMAT(#{stDate}, '%Y-%m-%d %H:%i:%S')
+		AND    GBR.REG_DT <![CDATA[<]]> DATE_FORMAT(DATE_ADD(#{edDate}, INTERVAL 1 DAY), '%Y-%m-%d %H:%i:%S')
+		</if>
+	</select>
+
+	<!--상품권 대량 등록 목록-->
+	<select id="getGiftCardList" parameterType="GiftCard" resultType="GiftCard">
+		/*TsaGiftCard.getGiftCardList*/
+		<include refid="selectForPagingHeader"/>
+		SELECT GBR.GFCD_BULK_REG_SQ
+		     , GBR.CUST_ID
+		     , GBR.GFCD_NO
+		     , GBR.RESULT_MSG
+		     , FN_GET_USER_NM(GBR.REG_NO)              AS REG_NM
+		     , DATE_FORMAT(GBR.REG_DT, '%Y%m%d%H%i%S') AS REG_DT
+		     , FN_GET_USER_NM(GBR.UPD_NO)              AS UPD_NM
+		     , DATE_FORMAT(GBR.UPD_DT, '%Y%m%d%H%i%S') AS UPD_DT
+		     , GAH.CUST_NO
+		     , GAH.IP_ADDR
+		     , GAH.RESULT_VAL
+		     , ROW_NUMBER() OVER(ORDER BY GBR.REG_DT DESC)   AS NUMB
+		FROM   TB_GFCD_BULK_REG GBR
+		LEFT JOIN
+		       TB_GIFTCARD_API_HST GAH
+		ON     GBR.GFCD_API_HST_SQ = GAH.GFCD_API_HST_SQ
+		WHERE  1 = 1
+		<if test="custId != null and custId != ''">
+		AND    LOWER(GBR.CUST_ID) LIKE CONCAT('%',LOWER(#{custId}),'%')
+		</if>
+		<if test="stDate != null and edDate != '' and stDate != null and edDate != ''">
+		AND    GBR.REG_DT >= DATE_FORMAT(#{stDate}, '%Y-%m-%d %H:%i:%S')
+		AND    GBR.REG_DT <![CDATA[<]]> DATE_FORMAT(DATE_ADD(#{edDate}, INTERVAL 1 DAY), '%Y-%m-%d %H:%i:%S')
+		</if>
+		<include refid="selectForPagingFooter"/>
+	</select>
+
+	<!--상품권 대량 엑셀 정보 등록-->
+	<insert id="createGfcdBulkReg" parameterType="GiftCard" keyProperty="gfcdBulkRegSq">
+		/*TsaGiftCard.createGfcdBulkReg*/
+		INSERT INTO TB_GFCD_BULK_REG (
+		       CUST_ID
+		     , GFCD_NO
+		     , GFCD_API_HST_SQ
+		     , RESULT_MSG
+		     , REG_NO
+		     , REG_DT
+		     , UPD_NO
+		     , UPD_DT
+		) VALUES (
+		       #{custId}
+		     , #{gfcdNo}
+		     , IFNULL(#{gfcdApiHstSq}, NULL)
+		     , IFNULL(#{resultMsg}, NULL)
+		     , #{regNo}
+		     , NOW()
+		     , #{updNo}
+		     , NOW()
+		)
+	</insert>
+
+	<!-- 상품권API 결과 저장-->
+	<insert id="createGiftcardApi" parameterType="GiftCard" keyProperty="gfcdApiHstSq">
+		/*TsaGiftCard.createGiftcardApi*/
+		INSERT INTO TB_GIFTCARD_API_HST (
+		       GFCD_NO
+		     , IP_ADDR
+		     , CUST_NO
+		     , RESULT_VAL
+		     , REG_NO
+		     , REG_DT
+		) VALUES (
+		       #{gfcdNo}
+		     , #{ipAddr}
+		     , #{custNo}
+		     , #{resultVal}
+		     , #{regNo}
+		     , NOW()
+		)
+	</insert>
+	
+	<!-- 고객 상품권 등록 -->
+	<insert id="createGiftcardUseConfirm" parameterType="GiftCard" keyProperty="custGfcdSq">
+		/*TsaGiftCard.createGiftcardUseConfirm*/
+		INSERT INTO TB_CUST_GIFTCARD (
+		       CUST_NO
+		     , GFCD_NO
+		     , GFCD_NM
+		     , CHG_GFCD_AMT
+		     , US_GFCD_AMT
+		     , RM_GFCD_AMT
+		     , USE_ST_DATE
+		     , USE_EXP_DATE
+		     , REG_NO
+		     , REG_DT
+		     , UPD_NO
+		     , UPD_DT
+		) VALUES(
+		       #{custNo}
+		     , #{gfcdNo}
+		     , #{gfcdNm}
+		     , #{chgGfcdAmt}
+		     , #{usGfcdAmt}
+		     , #{rmGfcdAmt}
+		     , DATE_FORMAT(#{useStDate},'%Y%m%d')
+		     , DATE_FORMAT(#{useExpDate},'%Y%m%d')
+		     , #{regNo}
+		     , NOW()
+		     , #{updNo}
+		     , NOW()
+		)
+	</insert>
+
+	<!-- 고객 상품권 정보 이력 -->
+	<insert id="createCustGiftcardHistory"  parameterType="GiftCard" keyProperty="gfcdHstSq">
+		/* TsaGiftCard.createCustGiftcardHistory */
+		INSERT INTO TB_CUST_GIFTCARD_HST (
+		      CUST_NO
+		    , OCCUR_GB
+		    , OCCUR_DTL_DESC
+		    , GFCD_AMT
+		    , CUST_GFCD_SQ
+		    , ORD_NO
+		    , ORD_DTL_NO
+		    , REG_NO
+		    , REG_DT
+		    , UPD_NO
+		    , UPD_DT
+		) VALUES (
+		      #{custNo}
+		    , #{occurGb}
+		    , #{occurDtlDesc}
+		    , #{gfcdAmt}
+		    , #{custGfcdSq}
+		    , #{ordNo}
+		    , #{ordDtlNo}
+		    , #{custNo}
+		    , NOW()
+		    , #{custNo}
+		    , NOW()
+		)
+	</insert>
+
+	<!--상품권 대량등록 결과-->
+	<update id="updateGfcdBulkReg" parameterType="GiftCard">
+		UPDATE TB_GFCD_BULK_REG
+		SET    GFCD_API_HST_SQ = #{gfcdApiHstSq}
+		     , RESULT_MSG = #{resultMsg}
+		     , UPD_NO = #{updNo}
+		     , UPD_DT = NOW()
+		WHERE  GFCD_BULK_REG_SQ = #{gfcdBulkRegSq}
+	</update>
+
+</mapper>

+ 3 - 3
src/main/webapp/WEB-INF/views/customer/CustomerDetailForm.html

@@ -42,7 +42,7 @@
 				</td>
 				<th>아이디</th>
 				<td>
-					<span id="custId" name="custId"></span>
+					<span id="spanCustId" name="spanCustId"></span>
 					<th:block th:if="${sessionInfo.userId == 'jsshin'}">
 						<button type="button" id="btnLogin" class="btn btnRight btn-success btn-lg">Login</button>
 					</th:block>
@@ -1216,7 +1216,7 @@
 			, function (data) {
 				if (!gagajf.isNull(data)) {
 					$('#spanCustNm').text(data.maskingCustNm);
-					$('#custId').text(data.maskingCustId);
+					$('#spanCustId').text(data.maskingCustId);
 					$('#siteNm').text(gagaAgGrid.lookupValue(siteList, data.siteCd));
 					$('#custGrade').val(data.custGrade);
 					$('#custGb').val(data.custGb);
@@ -1534,7 +1534,7 @@
 
 
 	$('#btnLogin').on('click', function () {
-		let custId = $('span[name=custId]').text();
+		let custId = $('#spanCustId').text();
 		const actionUrl = _frontUrl + '/customer/front/login?custId=' + custId;
 		let popupWidth = window.screen.width;
 		let popupHeight = window.screen.height;

+ 175 - 0
src/main/webapp/WEB-INF/views/marketing/GiftCardListForm.html

@@ -0,0 +1,175 @@
+<!DOCTYPE html>
+<html lang="ko"
+	  xmlns:th="http://www.thymeleaf.org">
+<!--
+ *******************************************************************************
+ * @source  : GiftCardListForm.html
+ * @desc    : 상품권 등록 화면 Page
+ *============================================================================
+ * STYLE24
+ * Copyright(C) 2021 TSIT, All rights reserved.
+ *============================================================================
+ * VER  DATE         AUTHOR      DESCRIPTION
+ * ===  ===========  ==========  =============================================
+ * 1.0  2021.05.13   jsshin     최초 작성
+ *******************************************************************************
+ -->
+<div id="main">
+	<!-- 메인타이틀 영역 -->
+	<div class="main-title">
+	</div>
+	<!-- //메인타이틀 영역 -->
+
+	<!-- 메뉴 설명 -->
+	<div class="infoBox menu-desc">
+	</div>
+	<!-- //메뉴 설명 -->
+
+	<!-- 검색조건 영역 -->
+	<div class="panelContent">
+		<form id="giftCardForm" name="giftCardForm" action="#" th:action="@{'/marketing/giftcard/list'}" onsubmit="$('#btnSearch').trigger('click'); return false;">
+		<div class="panelStyle">
+				<table class="frmStyle" aria-describedby="검색조건">
+					<colgroup>
+						<col style="width:10%;"/>
+						<col style="width:40%;"/>
+						<col style="width:10%;"/>
+						<col/>
+					</colgroup>
+					<tbody>
+					<tr>
+						<th class="dashR">아이디</th>
+						<td class="dashR">
+							<input type="text" class="w200" name="custId" id="custId"/>
+						</td>
+					</tr>
+					<tr>
+						<th class="dashR">등록일자</th>
+						<td class="dashR">
+							<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="$('#giftCardForm')[0].reset();">초기화</button>
+					</li>
+				</ul>
+		</div>
+		<!-- //검색조건 영역 -->
+
+		<!-- 리스트 영역 -->
+		<div class="panelStyle">
+			<ul class="panelBar">
+				<li>
+					<button type="button" class="btn btn-default btn-lg" onclick="cfnDownloadSampleFile('SF021');">상품권대량업로드 양식 다운로드</button>
+					<button type="button" class="btn btn-primary btn-lg" id="btnGiftCardReg">상품권대량업로드</button>
+				</li>
+				<li class="right">
+					검색결과 : <strong><span id="gridRowTotalCount">0</span> 건</strong>&nbsp;
+					쪽번호 <span id="pgNo">0</span>/ <strong id="endPgNo">0</strong>&nbsp;&nbsp;
+					<select id="pageSize" name="pageSize">
+						<option value="50" selected="selected">50개씩 보기</option>
+						<option value="100">100개씩 보기</option>
+						<option value="500">500개씩 보기</option>
+						<option value="1000">1000개씩 보기</option>
+					</select>
+					<input type="hidden" name="pageNo" id="pageNo" value ="1"/>
+				</li>
+			</ul>
+			<div id="gridList" style="width: 100%; height: 570px" class="ag-theme-balham"></div>
+			<ul class="panelBar">
+				<li class="center">
+					<div class="tablePaging" id="giftCardListPagination"></div>
+				</li>
+			</ul>
+		</div>
+		</form>
+	</div>
+</div>
+<script type="text/javascript" th:src="@{'/ux/plugins/gaga/gaga.paging.js?v=' + ${#calendars.format(#calendars.createNow(), 'yyyyMMddHHmmss')}}" src="/ux/plugins/gaga/gaga.paging.js"></script>
+<script th:inline="javascript">
+	/*<![CDATA[*/
+	const siteList = gagajf.convertToArray([[${siteList}]]);				// 사이트목록
+
+	// specify the columns
+	const columnDefs = [
+		{
+			headerName: "회원ID", field:'maskingCustId', width:120, cellClass: 'text-rigth',
+			cellRenderer: function (params) {
+				return gagajf.isNull(params.data.custNo) ?
+					params.data.maskingCustId :'<a href="javascript:void(0);" onclick="cfnOpenCustDetailPopup(\''+params.data.custNo+'\')">' + params.data.maskingCustId + '</a>'
+			}
+		},
+		{headerName: "상품권번호", field:'gfcdNo', width:200, cellClass: 'text-center'},
+		{headerName: "결과메시지", field:'resultMsg', width:150, cellClass: 'text-center'},
+		{
+			headerName: "등록일자", field:'regDt', width:120, cellClass: 'text-center',
+			valueGetter: function (params) { return gagaAgGrid.toDateFormat(params.data.regDt); }
+		}
+
+	];
+
+	// Get GridOptions
+	let gridOptions = gagaAgGrid.getGridOptions(columnDefs);
+
+	// 셀 클릭 이벤트
+	gridOptions.onCellClicked = function(event) {
+
+	}
+
+	// 조회
+	$('#btnSearch').on('click', function() {
+		fnSearch();
+	});
+
+	// 검색
+	var fnSearch = function() {
+		gagaPaging.init('giftCardForm', fnSearchCallBack, 'giftCardListPagination', $('#giftCardForm select[name=pageSize]').val());
+		gagaPaging.load($('#giftCardForm input[name=pageNo]').val());
+	};
+
+	var fnSearchCallBack = function (result) {
+		$('#gridRowTotalCount').html(result.pageing.pageable.totalCount.addComma());
+		$('#giftCardForm input[name=pageNo]').val(result.pageing.pageable.pageNo.addComma());
+		$('#pgNo').html(result.pageing.pageable.pageNo.addComma());
+		$('#endPgNo').html(result.pageing.pageable.totalPage.addComma());
+
+		gridOptions.api.setRowData(result.giftCardList);
+		gagaPaging.createPagination(result.pageing.pageable);
+	};
+
+	// 상품대량수정 클릭시
+	$('#btnGiftCardReg').on('click', function() {
+		cfnExcelUploadPopup('giftCardReg', 'fnSaveGiftCardExcel');
+	});
+
+	var fnSaveGiftCardExcel = function(result){
+		var data = {
+			         procJob : result.procJob
+					,excelFileNm : result.excelFileNm
+					};
+		var jsonData = JSON.stringify(data);
+		gagajf.ajaxJsonSubmit('/marketing/upload/giftcard/bulk/reg', jsonData, fnGiftCardBulkExcelUpload);
+	}
+
+	var fnGiftCardBulkExcelUpload = function(){
+		fnSearch();
+	}
+
+	$(document).ready(function() {
+		// 공통 달력 생성
+		cfnCreateCalendar('#terms', 'stDate', 'edDate', true);
+		$('.btnToday').trigger('click');
+
+		// Create a agGrid
+		gagaAgGrid.createGrid('gridList', gridOptions);
+	});
+
+	/*]]>*/
+</script>
+
+</html>