Bläddra i källkod

Merge branch 'xyzp1539' into develop

xyzp1539 5 år sedan
förälder
incheckning
1f0387b01e

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

@@ -1,5 +1,6 @@
 package com.style24.admin.biz.service;
 
+import com.fasterxml.jackson.core.type.TypeReference;
 import com.fasterxml.jackson.databind.ObjectMapper;
 import com.style24.admin.biz.dao.TsaCouponDao;
 import com.style24.admin.biz.dao.TsaMarketingDao;
@@ -49,6 +50,8 @@ public class TsaCouponService {
 	public void couponSave(Coupon params) {
 		String cpnId = "";		// 쿠폰ID
 
+		params = applyTargetSetting(params);
+
 		params.setRegNo(TsaSession.getInfo().getUserNo());
 		params.setUpdNo(TsaSession.getInfo().getUserNo());
 
@@ -70,9 +73,55 @@ public class TsaCouponService {
 
 	}
 
+	// 쿠폰 적용대상 세팅
+	public Coupon applyTargetSetting(Coupon params) {
+		Collection<Coupon> cpnSupplyCompList = null;
+		Collection<Coupon> cpnBrandList = null;
+		Collection<Coupon> cpnApplyGoodsList = null;
+		Collection<Coupon> cpnCateList = null;
+		Collection<Coupon> cpnBurdenList = null;
+		Collection<Coupon> cpnExcepGoodsList = null;
+		ObjectMapper mapper = new ObjectMapper();
+
+		try {
+			if(params.getSupplyCompList() != null) {
+				cpnSupplyCompList = mapper.readValue(params.getSupplyCompList(), new TypeReference<Collection<Coupon>>() {
+				});
+			}
+			if(params.getBrandList() != null) {
+				cpnBrandList = mapper.readValue(params.getBrandList(), new TypeReference<Collection<Coupon>>() {
+				});
+			}
+			if(params.getApplyGoodsList() != null) {
+				cpnApplyGoodsList = mapper.readValue(params.getApplyGoodsList(), new TypeReference<Collection<Coupon>>() {
+				});
+			}
+			if(params.getCateList() != null) {
+				cpnCateList = mapper.readValue(params.getCateList(), new TypeReference<Collection<Coupon>>() {
+				});
+			}
+			if(params.getBurdenList() != null) {
+				cpnBurdenList = mapper.readValue(params.getBurdenList(), new TypeReference<Collection<Coupon>>() {
+				});
+			}
+			if(params.getCateList() != null) {
+				cpnExcepGoodsList = mapper.readValue(params.getExceptGoodsList(), new TypeReference<Collection<Coupon>>() {
+				});
+			}
+		} catch (Exception e) {
+			e.printStackTrace();
+		}
+
+		params.setsup
+
+
+
+		return params;
+	}
+
 	/**
 	 * 쿠폰 리스트 조회
-	 * @param  Coupon
+	 * @param  param
 	 * @return ArrayList<Coupon>
 	 * @author xyzp1539
 	 * @since 2020-12-22
@@ -83,7 +132,7 @@ public class TsaCouponService {
 
 	/**
 	 * 쿠폰리스트 카운트 조회
-	 * @param  Coupon
+	 * @param  param
 	 * @return int
 	 * @author xyzp1539
 	 * @since 2020-12-22
@@ -94,7 +143,7 @@ public class TsaCouponService {
 
 	/**
 	 * 쿠폰 벨리데이션 체크
-	 * @param Coupon
+	 * @param params
 	 * @author xyzp1539
 	 * @since  2021-01-12
 	 */

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

@@ -135,6 +135,8 @@ public class TsaMarketingController extends TsaBaseController {
 		mav.addObject("dcWayList" , rendererService.getCommonCodeList("G240"));
 		// 사이트 조회
 		mav.addObject("siteCdList" , rendererService.getCommonCodeList("G000"));
+		// 사용가능 고객구분 조회
+		mav.addObject("usableCustGbList", rendererService.getCommonCodeList("G100"));
 
 		mav.setViewName("marketing/CouponListForm");
 
@@ -143,7 +145,7 @@ public class TsaMarketingController extends TsaBaseController {
 
 	/**
 	 * 쿠폰 리스트 조회
-	 * @param  Coupon
+	 * @param  param
 	 * @return GagaMap
 	 * @author xyzp1539
 	 * @since 2020-12-22
@@ -231,7 +233,7 @@ public class TsaMarketingController extends TsaBaseController {
 		mav.addObject("dnGbList" , rendererService.getCommonCodeList("G058"));
 		// 결제수단 조회
 		mav.addObject("payTypeList" , rendererService.getCommonCodeList("G015"));
-		// 결제수단 조회
+		// 쿠폰상태 조회
 		mav.addObject("cpnStatList" , rendererService.getCommonCodeList("G232"));
 		// 시간 분 리스트 세팅
 		mav.addObject("mmList" , mmList);
@@ -246,7 +248,7 @@ public class TsaMarketingController extends TsaBaseController {
 
 	/**
 	 * 쿠폰 저장
-	 * @param Coupon - 쿠폰 정보
+	 * @param coupon - 쿠폰 정보
 	 * @return
 	 * @author xyzp1539
 	 * @since 2021. 1. 11

+ 10 - 0
style24.admin/src/main/java/com/style24/persistence/domain/Coupon.java

@@ -4,6 +4,8 @@ import com.style24.persistence.TsaPageRequest;
 import com.style24.persistence.TscBaseDomain;
 import lombok.Data;
 
+import java.util.Collection;
+
 /**
  * 쿠폰 도메인
  * @author xyzp1539
@@ -55,6 +57,7 @@ public class Coupon extends TscBaseDomain {
     private Integer useCnt;					// 쿠폰사용개수
     private String  payType;                 // 결제수단
     private String  custJoinYn;             // 신규회원여부
+    private String  regNm;                  // 사용자명
 
     private String  supplyCompCd;            // 공급업체코드
     private int     burdenRate;                 // 업체분담율
@@ -78,6 +81,13 @@ public class Coupon extends TscBaseDomain {
     private String  burdenList;              // 업체 분담율 리스트
     private String  cateList;                // 카테고리 리스트
 
+    private Collection<Coupon> supplyCompListNew;          // 공급업체 리스트
+    private Collection<Coupon>  brandListNew;               // 브랜드 리스트
+    private Collection<Coupon>  applyGoodsListNew;          // 적용상품 리스트
+    private Collection<Coupon>  exceptGoodsListNew;         // 제외상품 리스트
+    private Collection<Coupon>  burdenListNew;              // 업체 분담율 리스트
+    private Collection<Coupon>  cateListNew;                // 카테고리 리스트
+
     // Pagination
     private TsaPageRequest pageable;
     private int pageNo = 1;

+ 10 - 10
style24.admin/src/main/java/com/style24/persistence/mybatis/shop/TsaCoupon.xml

@@ -20,7 +20,7 @@
 		, PD_GB
 		, AVAIL_STDT
 		, AVAIL_EDDT
-		, REG_NO
+		, FN_GET_USER_NM(REG_NO) AS REG_NM
 		, REG_DT
 		FROM TB_COUPON
 		WHERE 1=1
@@ -64,7 +64,7 @@
 		, T.PD_GB
 		, T.AVAIL_STDT
 		, T.AVAIL_EDDT
-		, T.REG_NO
+		, T.REG_NM
 		, T.REG_DT
 		ORDER BY  T.REG_DT DESC
 	</select>
@@ -179,8 +179,8 @@
 		  , #{pdGb}
 		  <choose>
 			  <when test='pdGb != null and pdGb == "P"'>
-		  , DATE_FORMAT(#{availStdt} , '%Y-%m-%d %h:%i:%s')
-		  , DATE_FORMAT(#{availEddt} , '%Y-%m-%d %h:%i:%s')
+		  , DATE_FORMAT(#{availStdt} , '%Y-%m-%d %H:%i:%s')
+		  , DATE_FORMAT(#{availEddt} , '%Y-%m-%d %H:%i:%s')
 			  </when>
 			  <when test='pdGb != null and pdGb == "D"' >
 		  , #{availDays}
@@ -191,8 +191,8 @@
 		  , #{onePubQty}
 		  , #{dnGb}
 		  <if test='dnGb != null and dnGb == "G058_20"'>
-		  , DATE_FORMAT(#{downStdt} , '%Y-%m-%d %h:%i:%s')
-		  , DATE_FORMAT(#{downEddt} , '%Y-%m-%d %h:%i:%s')
+		  , DATE_FORMAT(#{downStdt} , '%Y-%m-%d %H:%i:%s')
+		  , DATE_FORMAT(#{downEddt} , '%Y-%m-%d %H:%i:%s')
 		  </if>
 		  , #{buyLimitAmt}
 		  , #{planSq}
@@ -206,12 +206,12 @@
 		  , #{firstYn}
 		  , #{downYn}
 		  <if test='custJoinYn != null and custJoinYn == "Y"'>
-		  , DATE_FORMAT(#{custJoinStdt} , '%Y-%m-%d %h:%i:%s')
-		  , DATE_FORMAT(#{custJoinEddt} , '%Y-%m-%d %h:%i:%s')
+		  , DATE_FORMAT(#{custJoinStdt} , '%Y-%m-%d %H:%i:%s')
+		  , DATE_FORMAT(#{custJoinEddt} , '%Y-%m-%d %H:%i:%s')
 		  </if>
 		  <if test='firstYn != null and firstYn == "Y"'>
-		  , DATE_FORMAT(#{buyStdt} , '%Y-%m-%d %h:%i:%s')
-		  , DATE_FORMAT(#{buyEddt} , '%Y-%m-%d %h:%i:%s')
+		  , DATE_FORMAT(#{buyStdt} , '%Y-%m-%d %H:%i:%s')
+		  , DATE_FORMAT(#{buyEddt} , '%Y-%m-%d %H:%i:%s')
 		  </if>
 		  <if test='cpnType != null and cpnType == "G230_20"'>
 		  , #{payType}

+ 54 - 11
style24.admin/src/main/webapp/WEB-INF/views/marketing/CouponListForm.html

@@ -3,7 +3,7 @@
 	  xmlns:th="http://www.thymeleaf.org">
 <!--
  *******************************************************************************
- * @source  : CouponListForm.html
+ * @source  : .html
  * @desc    : 쿠폰관리 Page
  *============================================================================
  * STYLE24
@@ -133,20 +133,46 @@
 			</ul>
 
 			<!-- 검색결과 영역 -->
-			<div id="gridList" style="width: 100%; height: 700px;" class="ag-theme-balham lh60"></div>
+			<div id="gridList" style="width: 100%; height: 570px;" class="ag-theme-balham"></div>
 		</div>
 	</form>
 	<script type="text/javascript" src="/ux/plugins/gaga/gaga.paging.js?v=2019072202"></script>
 	<script th:inline="javascript">
 		/*<![CDATA[*/
+		var cpnTypeList = gagajf.convertToArray([[${cpnTypeList}]]);
+		var siteCdList = gagajf.convertToArray([[${siteCdList}]]);
+		var dcWayList = gagajf.convertToArray([[${dcWayList}]]);
+		var usableCustGbList = gagajf.convertToArray([[${usableCustGbList}]]);
+		var pdGbList = { "P":"기간", "D":"일수" };
+
 		var columnDefs = [];
 		columnDefs = [
-			{headerName: "사이트", field: "siteCd", width: 80, cellClass: 'text-center'},
+			{headerName: "사이트", field: "siteCd", width: 80, cellClass: 'text-center' ,
+				cellEditor: 'agRichSelectCellEditor',
+				cellEditorParams: { values: gagaAgGrid.extractValues(siteCdList) },
+				valueFormatter: function (params) { return gagaAgGrid.lookupValue(siteCdList, params.value); },
+				valueParser: function (params) { return gagaAgGrid.lookupKey(siteCdList, params.newValue); }
+			},
 			{headerName: "쿠폰ID", field: "cpnId", width: 130, cellClass: 'text-center'},
 			{headerName: "쿠폰명", field: "cpnNm", width: 140, cellClass: 'text-center'},
-			{headerName: "사용가능고객구분", field: "usableCustGb", width: 140, cellClass: 'text-center'},
-			{headerName: "쿠폰유형", field: "cpnType", width: 140, cellClass: 'text-center'},
-			{headerName: "할인방식", field: "dcWay", width: 140, cellClass: 'text-center'},
+			{headerName: "사용가능고객구분", field: "usableCustGb", width: 140, cellClass: 'text-center' ,
+				cellEditor: 'agRichSelectCellEditor',
+				cellEditorParams: { values: gagaAgGrid.extractValues(usableCustGbList) },
+				valueFormatter: function (params) { return gagaAgGrid.lookupValue(usableCustGbList, params.value); },
+				valueParser: function (params) { return gagaAgGrid.lookupKey(usableCustGbList, params.newValue);}
+			},
+			{headerName: "쿠폰유형", field: "cpnType", width: 140, cellClass: 'text-center' ,
+				cellEditor: 'agRichSelectCellEditor',
+				cellEditorParams: { values: gagaAgGrid.extractValues(cpnTypeList) },
+				valueFormatter: function (params) { return gagaAgGrid.lookupValue(cpnTypeList, params.value); },
+				valueParser: function (params) { return gagaAgGrid.lookupKey(cpnTypeList, params.newValue); }
+			},
+			{headerName: "할인방식", field: "dcWay", width: 140, cellClass: 'text-center' ,
+				cellEditor: 'agRichSelectCellEditor',
+				cellEditorParams: { values: gagaAgGrid.extractValues(dcWayList) },
+				valueFormatter: function (params) { return gagaAgGrid.lookupValue(dcWayList, params.value); },
+				valueParser: function (params) { return gagaAgGrid.lookupKey(dcWayList, params.newValue); }
+			},
 			{headerName: "할인값(PC)", field: "dcPval", width: 140, cellClass: 'text-center'},
 			{headerName: "할인값(MOBILE)", field: "dcMval", width: 140, cellClass: 'text-center'},
 			{headerName: "최고할인값", field: "maxDcAmt", width: 140, cellClass: 'text-center'},
@@ -155,11 +181,28 @@
 					return params.data.issueCnt + "/" + params.data.useCnt;
 				}
 			},
-			{headerName: "기간/일수구분", field: "pdGb", width: 140, cellClass: 'text-center'},
-			{headerName: "유효시작일시", field: "availStdt", width: 140, cellClass: 'text-center'},
-			{headerName: "유효종료일시", field: "availEddt", width: 140, cellClass: 'text-center'},
-			{headerName: "등록자", field: "regNo", width: 200, cellClass: 'text-left'},
-			{headerName: "등록일시", field: "regDt", width: 140, cellClass: 'text-center'},
+			{headerName: "기간/일수구분", field: "pdGb", width: 140, cellClass: 'text-center' ,
+				cellEditor: 'agRichSelectCellEditor',
+				cellEditorParams: { values: gagaAgGrid.extractValues(pdGbList) },
+				valueFormatter: function (params) { return gagaAgGrid.lookupValue(pdGbList, params.value); },
+				valueParser: function (params) { return gagaAgGrid.lookupKey(pdGbList, params.newValue); }
+			},
+			{headerName: "유효시작일시", field: "availStdt", width: 140, cellClass: 'text-center' ,
+				cellRenderer: function(params) {
+					return !gagajf.isNull(params.value) ? params.value.toDate("YYYY-MM-DD HH:mm:ss").format("YYYY-MM-DD HH:mm:ss") : '';
+				}
+			},
+			{headerName: "유효종료일시", field: "availEddt", width: 140, cellClass: 'text-center' ,
+				cellRenderer: function(params) {
+					return !gagajf.isNull(params.value) ? params.value.toDate("YYYY-MM-DD HH:mm:ss").format("YYYY-MM-DD HH:mm:ss") : '';
+				}
+			},
+			{headerName: "등록자", field: "regNm", width: 150, cellClass: 'text-center'},
+			{headerName: "등록일시", field: "regDt", width: 140, cellClass: 'text-center' ,
+				cellRenderer: function(params) {
+					return !gagajf.isNull(params.value) ? params.value.toDate("YYYY-MM-DD HH:mm:ss").format("YYYY-MM-DD HH:mm:ss") : '';
+				}
+			},
 		];
 
 		// Get GridOptions