Jelajahi Sumber

Merge branch 'develop' of http://112.172.147.34:4936/style24/STYLE24.git into develop

gagamel 5 tahun lalu
induk
melakukan
5ea82f5eb0

+ 1 - 1
style24.admin/src/main/java/com/style24/persistence/domain/Goods.java

@@ -36,7 +36,7 @@ public class Goods extends TscBaseDomain {
 	private int currBprice;		//변경전현재판매가
 	private String priceUpdDt;		//가격변경일시
 	private float dcRate;		//할인율
-
+	private int benefitCurrPrice;		//즉시할인판매가
 	private String goodsStat;		//상품상태(공통코드G008)
 	private String selfMallYn;		//자사몰노출여부
 	private String goodsGb;		//해외구매대행/병행수입 상품일 경우 주문 시 통관부호 입력 란이 추가되어야 한다

+ 1 - 1
style24.admin/src/main/java/com/style24/persistence/domain/GoodsSearch.java

@@ -73,7 +73,7 @@ public class GoodsSearch extends TscBaseDomain {
 	private int goodsPriceResSt;
 	private int goodsPriceResEd;
 	private String selfGoodsYn;
-
+	private String goodsPriceYn;
 	private String goodsType;
 	private String selfMallYn;
 

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

@@ -401,10 +401,12 @@
 		    , (CASE WHEN Z.GOODS_TYPE = 'G056_N' THEN (SELECT NVL(SUM(CURR_STOCK_QTY - BASE_STOCK_QTY),0) FROM VW_STOCK WHERE GOODS_CD = Z.GOODS_CD) 
 		            ELSE (SELECT NVL(SUM(CURR_STOCK_QTY - BASE_STOCK_QTY),0) FROM VW_STOCK_COMPOSE WHERE GOODS_CD = Z.GOODS_CD) 
 		            END) AS STOCK_QTY_SUM
-		    , 0 AS STOCK_QTY_SUM
 		    , (SELECT ITEMKIND_NM FROM TB_ITEMKIND WHERE ITEMKIND_CD = Z.ITEMKIND_CD ) AS ITEMKIND_NM
 		    , FN_GET_USER_NM(REG_NO) AS REG_NM
 		    , FN_GET_USER_NM(UPD_NO) AS UPD_NM
+		    <if test='goodsPriceYn != null and goodsPriceYn = "Y"'>
+		    , GB.CURR_PRICE AS BENEFIT_CURR_PRICE
+		    </if>
 		FROM (
 		    SELECT A.*, @rownum := @rownum + 1 AS RNUM FROM (
 		        SELECT
@@ -729,11 +731,18 @@
 		<choose>
 		<when test="pageable != null">
 		    ) A
-		)Z WHERE RNUM BETWEEN  #{pageable.startRow} AND #{pageable.endRow}
+		)Z
+		<if test='goodsPriceYn != null and goodsPriceYn = "Y"'>
+		LEFT OUTER JOIN TB_GOODS_BENEFIT_PRICE GB ON Z.GOODS_CD = GB.GOODS_CD AND GB.CUST_GB = 'G100_00'
+		</if> 
+		WHERE RNUM BETWEEN  #{pageable.startRow} AND #{pageable.endRow}
 		</when>
 		<otherwise>
 		    ) A
 		)Z
+		<if test='goodsPriceYn != null and goodsPriceYn = "Y"'>
+		LEFT OUTER JOIN TB_GOODS_BENEFIT_PRICE GB ON Z.GOODS_CD = GB.GOODS_CD AND GB.CUST_GB = 'G100_00'
+		</if> 
 		</otherwise>
 		</choose>
 	</sql>

+ 12 - 1
style24.admin/src/main/webapp/WEB-INF/views/goods/GoodsListForm.html

@@ -26,6 +26,8 @@
 		<form id="searchForm" name="searchForm" action="#" th:action="@{'/goods/list'}">
 		<input type="hidden" id="searchGb" name="searchGb" />
 		<input type="hidden" id="imageViewYn" name="imageViewYn" />
+		<input type="hidden" id="goodsPriceYn" name="goodsPriceYn" value="Y"/> <!-- 즉시할인판매가 조회 -->
+		
 	 		<!-- 패널 영역1 -->
 		<div class="panelStyle" >
 			<!-- 검색조건 영역 -->
@@ -471,7 +473,16 @@
 			cellEditor: 'textCellEditor',
 			cellEditorParams: { maxlength: 14, validType: 'numeric'}
 		},
-		{headerName: "할인율", field: "dcRate" , width: 90, cellClass: 'text-right'},
+		/*{headerName: "할인율", field: "dcRate" , width: 90, cellClass: 'text-right'},*/
+		{headerName: "자사즉시할인가", field: "benefitCurrPrice" , width: 120, cellClass: 'text-right'
+			,valueFormatter: function(params) {
+				if (params.value > 0) {
+					return params.value.addComma();
+				}else{
+					return '';
+				}
+			}
+		},
 		{headerName: "가격변경일", field: "priceUpdDt", width: 150, cellClass: 'text-center',
 			cellRenderer: function(params) {
 				return !gagajf.isNull(params.value) ? params.value.toDate("YYYYMMDDHHmmss").format("YYYY-MM-DD HH:mm:ss") : '';

+ 12 - 1
style24.admin/src/main/webapp/WEB-INF/views/goods/GoodsPopupListForm.html

@@ -23,6 +23,8 @@
 		</div>
 		<!-- //TITLE -->
 		<form id="goodsPopupForm" name="goodsPopupForm" action="#" th:action="@{'/goods/popup/list'}">
+		<input type="hidden" id="searchGb" name="searchGb" />
+		<input type="hidden" id="goodsPriceYn" name="goodsPriceYn" value="Y"/> <!-- 즉시할인판매가 조회 -->
 		<div class="panelContent">
 			<ul class="notice">
 				<li>아래 검색조건 중 <font color="red">업체, 키워드, 발생일</font>중 하나를 꼭 입력해 주세요.</li>
@@ -295,7 +297,16 @@
 			cellEditor: 'textCellEditor',
 			cellEditorParams: { maxlength: 14, validType: 'numeric'}
 		},
-		{headerName: "할인율", field: "dcRate" , width: 90, cellClass: 'text-right'},
+		/*{headerName: "할인율", field: "dcRate" , width: 90, cellClass: 'text-right'},*/
+		{headerName: "자사즉시할인가", field: "benefitCurrPrice" , width: 120, cellClass: 'text-right'
+			,valueFormatter: function(params) {
+				if (params.value > 0) {
+					return params.value.addComma();
+				}else{
+					return '';
+				}
+			}
+		},
 		{headerName: "가격변경일", field: "priceUpdDt", width: 150, cellClass: 'text-center',
 			cellRenderer: function(params) {
 				return !gagajf.isNull(params.value) ? params.value.toDate("YYYYMMDDHHmmss").format("YYYY-MM-DD HH:mm:ss") : '';

+ 2 - 0
style24.batch/src/main/java/com/style24/batch/biz/service/TsbGoodsService.java

@@ -145,6 +145,8 @@ public class TsbGoodsService {
 		coupon.setPointUnit(floorUnit);
 		/*
 		 * 쿠폰적용순선 전체->일반->임직원
+		 *
+		 * 테이블(TB_GOODS_BENEFIT_PRICE)은 전체기준으로만 생성
 		 */
 		coupon.setUsableCustGb("G100_00"); // 전체
 		// TB_GOODS_BENEFIT_PRICE_TEMP 생성 - 상품쿠폰 전체

+ 1 - 1
style24.batch/src/main/java/com/style24/batch/biz/task/TsbGoodsTask.java

@@ -92,7 +92,7 @@ public class TsbGoodsTask {
 	}
 
 	/**
-	 * 상품 즉시할인가 생성
+	 * 상품 즉시할인가 생성 : 시간배치 - 매시 2분
 	 *
 	 * @throws Exception
 	 * @author eskim

+ 31 - 30
style24.batch/src/main/java/com/style24/persistence/mybatis/shop/TsbGoods.xml

@@ -482,33 +482,33 @@
 	<!-- 상품 혜택가 목록 -->
 	<sql id="getGoodsBenefitList_sql">
 		SELECT GOODS_CD
-		       , CUST_GB
+		       , 'G100_00' AS CUST_GB
 		       , CURR_PRICE
 		       , MIN(CURR_PRICE - 
 		           ( CASE WHEN DC_WAY = 'G240_10' THEN
 		                 (CASE WHEN NVL(MAX_DC_AMT, 0) >0 AND MAX_DC_AMT <![CDATA[<]]> DC_PVAL THEN MAX_DC_AMT ELSE DC_PVAL END)
 		            ELSE
 		                 (CASE WHEN NVL(MAX_DC_AMT, 0) >0 AND MAX_DC_AMT <![CDATA[<]]> FLOOR((CURR_PRICE * DC_PVAL / 100) / #{pointUnit}) * #{pointUnit} THEN MAX_DC_AMT ELSE FLOOR((CURR_PRICE * DC_PVAL / 100) / #{pointUnit}) * #{pointUnit} END)
-		            END) )AS PC_PRICE
+		            END) )AS PC_CURR_PRICE
 		       , MIN(CURR_PRICE - 
 		           ( CASE WHEN DC_WAY = 'G240_10' THEN
 		                 (CASE WHEN NVL(MAX_DC_AMT, 0) >0 AND MAX_DC_AMT <![CDATA[<]]> DC_MVAL THEN MAX_DC_AMT ELSE DC_MVAL END)
 		            ELSE
 		                 (CASE WHEN NVL(MAX_DC_AMT, 0) >0 AND MAX_DC_AMT <![CDATA[<]]> FLOOR((CURR_PRICE * DC_MVAL / 100) / #{pointUnit}) * #{pointUnit} THEN MAX_DC_AMT ELSE FLOOR((CURR_PRICE * DC_MVAL / 100) / #{pointUnit}) * #{pointUnit} END)
-		            END)  )AS MO_PRICE
+		            END)  )AS MO_CURR_PRICE
 		       , STAFF_CURR_PRICE
 		       , MIN(STAFF_CURR_PRICE - 
 		           ( CASE WHEN DC_WAY = 'V' THEN
 		                 (CASE WHEN NVL(MAX_DC_AMT, 0) >0 AND MAX_DC_AMT <![CDATA[<]]> DC_PVAL THEN MAX_DC_AMT ELSE DC_PVAL END)
 		            ELSE
 		                 (CASE WHEN NVL(MAX_DC_AMT, 0) >0 AND MAX_DC_AMT <![CDATA[<]]> FLOOR((STAFF_CURR_PRICE * DC_PVAL / 100) / #{pointUnit}) * #{pointUnit} THEN MAX_DC_AMT ELSE FLOOR((STAFF_CURR_PRICE * DC_PVAL / 100) / #{pointUnit}) * #{pointUnit} END)
-		            END) )AS STAFF_PC_PRICE
+		            END) )AS STAFF_PC_CURR_PRICE
 		       , MIN(STAFF_CURR_PRICE - 
 		           ( CASE WHEN DC_WAY = 'G240_10' THEN
 		                 (CASE WHEN NVL(MAX_DC_AMT, 0) >0 AND MAX_DC_AMT <![CDATA[<]]> DC_MVAL THEN MAX_DC_AMT ELSE DC_MVAL END)
 		            ELSE
 		                 (CASE WHEN NVL(MAX_DC_AMT, 0) >0 AND MAX_DC_AMT <![CDATA[<]]> FLOOR((STAFF_CURR_PRICE * DC_MVAL / 100) / #{pointUnit}) * #{pointUnit} THEN MAX_DC_AMT ELSE FLOOR((STAFF_CURR_PRICE * DC_MVAL / 100) / #{pointUnit}) * #{pointUnit} END)
-		            END)  )AS STAFF_MO_PRICE
+		            END)  )AS STAFF_MO_CURR_PRICE
 		FROM   (
 		        SELECT CP.CPN_ID
 		             , CP.CPN_NM
@@ -553,17 +553,20 @@
 		                AND    CP.BUY_LIMIT_AMT <![CDATA[<=]]> G.CURR_PRICE  /*최소주문금액*/
 		                AND    IF (CP.TOT_PUB_LIMIT_QTY = 0, 9999999999,CP.TOT_PUB_LIMIT_QTY) > (SELECT COUNT(1) FROM TB_CUST_COUPON WHERE CPN_ID = CP.CPN_ID) /*총발행제한수*/
 		                AND   (
-		                        (CP.APPLY_SCOPE = 'A' ) OR
+		                        (CP.APPLY_SCOPE = 'A' ) 
+		                        OR  /* 적용대상:상품*/
 		                        (CP.APPLY_SCOPE = 'I' AND (SELECT COUNT(1) FROM TB_COUPON_REFVAL
 		                                                   WHERE CPN_ID = CP.CPN_ID
-		                                                   AND CPN_TARGET = 'G260_10' /* 적용대상:상품*/
+		                                                   AND CPN_TARGET = 'G260_10'
 		                                                   AND DEL_YN = 'N'
 		                                                   AND REF_VAL = G.GOODS_CD
 		                                                   ) > 0
-		                        ) OR
+		                        ) 
+		                        /*OR*/ /* 적용대상:카테고리*/
+		                        /*
 		                        (CP.APPLY_SCOPE = 'I' AND (SELECT COUNT(1) FROM TB_COUPON_REFVAL
 		                                                   WHERE CPN_ID = CP.CPN_ID
-		                                                   AND CPN_TARGET = 'G260_11' /* 적용대상:카테고리*/
+		                                                   AND CPN_TARGET = 'G260_11' 
 		                                                   AND DEL_YN = 'N'
 		                                                   AND NVL(REF_FORMAL_GB,G.FORMAL_GB) = G.FORMAL_GB
 		                                                   AND NVL(REF_BRAND_CD,G.BRAND_CD) = G.BRAND_CD
@@ -572,18 +575,21 @@
 		                                                                   WHERE GOODS_CD = G.GOODS_CD
 		                                                                   )
 		                                                  ) >0
-		                        ) OR
+		                        ) 
+		                        */
+		                        OR /* 적용대상:브랜드*/
 		                        (CP.APPLY_SCOPE = 'I' AND (SELECT COUNT(1) FROM TB_COUPON_REFVAL
 		                                                   WHERE CPN_ID = CP.CPN_ID
-		                                                   AND CPN_TARGET = 'G260_12' /* 적용대상:브랜드*/
+		                                                   AND CPN_TARGET = 'G260_12' 
 		                                                   AND DEL_YN = 'N'
 		                                                   AND REF_VAL = G.BRAND_CD
 		                                                   AND NVL(REF_FORMAL_GB,G.FORMAL_GB) = G.FORMAL_GB
 		                                                  ) >0
-		                        ) OR
+		                        ) 
+		                        OR /* 적용대상:공급업체*/
 		                        (CP.APPLY_SCOPE = 'I' AND (SELECT COUNT(1) FROM TB_COUPON_REFVAL
 		                                                   WHERE CPN_ID = CP.CPN_ID
-		                                                   AND CPN_TARGET = 'G260_13' /* 적용대상:공급업체*/
+		                                                   AND CPN_TARGET = 'G260_13' 
 		                                                   AND DEL_YN = 'N'
 		                                                   AND REF_VAL = G.SUPPLY_COMP_CD
 		                                                   /*AND NVL(REF_FORMAL_GB,G.FORMAL_GB) = G.FORMAL_GB*/
@@ -635,7 +641,7 @@
 	<!-- 상품혜택가 temp 적용 변경 -->
 	<update id="updateGoodsBenefitPriceTemp"  parameterType="Coupon"  timeout="600">
 		/* TsbGoods.updateGoodsBenefitPriceTemp */
-		INSERT TB_GOODS_BENEFIT_PRICE_TEMP (
+		INSERT INTO TB_GOODS_BENEFIT_PRICE_TEMP (
 		         GOODS_CD
 		       , CUST_GB
 		       , CURR_PRICE
@@ -647,41 +653,36 @@
 		       , REG_DT
 		  )
 		  (
+		    SELECT * FROM (
 		       SELECT C.*, NOW() FROM (
-		           SELECT (
 		           <include refid="getGoodsBenefitList_sql"/>
-		           ) C
-		        ) B
-		       
+		       ) C
+		    ) B
 		  )
 		ON DUPLICATE KEY UPDATE
 		     REG_DT = NOW()
 		   , CURR_PRICE = B.CURR_PRICE
 		   , STAFF_CURR_PRICE = B.STAFF_CURR_PRICE
-		    <if test="custGb != null and custGb == 'G100_00'">
+		    <if test="usableCustGb != null and usableCustGb == 'G100_00'">
 		   , PC_CURR_PRICE = B.PC_CURR_PRICE
 		   , MO_CURR_PRICE = B.MO_CURR_PRICE
 		   , STAFF_PC_CURR_PRICE = B.STAFF_PC_CURR_PRICE
 		   , STAFF_MO_CURR_PRICE = B.STAFF_MO_CURR_PRICE
 		    </if>
-		    <if test="custGb != null and custGb == 'G100_10'">
-		   , PC_CURR_PRICE = CASE WHEN B.PC_CURR_PRICE <![CDATA[<=]]> PC_CURR_PRICE THEN B.PC_CURR_PRICE
-		                     ELSE PC_CURR_PRICE END
-		   , MO_CURR_PRICE = CASE WHEN B.MO_CURR_PRICE <![CDATA[<=]]> MO_CURR_PRICE THEN B.MO_CURR_PRICE
-		                     ELSE MO_CURR_PRICE END
+		    <if test="usableCustGb != null and usableCustGb == 'G100_10'">
+		   , PC_CURR_PRICE = IF (TB_GOODS_BENEFIT_PRICE_TEMP.PC_CURR_PRICE >= B.PC_CURR_PRICE, B.PC_CURR_PRICE, TB_GOODS_BENEFIT_PRICE_TEMP.PC_CURR_PRICE)
+		   , MO_CURR_PRICE = IF (TB_GOODS_BENEFIT_PRICE_TEMP.MO_CURR_PRICE >= B.MO_CURR_PRICE, B.MO_CURR_PRICE, TB_GOODS_BENEFIT_PRICE_TEMP.MO_CURR_PRICE)
 		    </if>
-		    <if test="custGb != null and custGb == 'G100_20'">
-		   , STAFF_PC_CURR_PRICE = CASE WHEN B.STAFF_PC_CURR_PRICE <![CDATA[<=]]> STAFF_PC_CURR_PRICE THEN B.STAFF_PC_CURR_PRICE
-		                           ELSE STAFF_PC_CURR_PRICE END
-		   , STAFF_MO_CURR_PRICE = CASE WHEN B.STAFF_MO_CURR_PRICE <![CDATA[<=]]> STAFF_MO_CURR_PRICE THEN B.STAFF_MO_CURR_PRICE
-		                           ELSE STAFF_MO_CURR_PRICE END
+		    <if test="usableCustGb != null and usableCustGb == 'G100_20'">
+		   , STAFF_PC_CURR_PRICE = IF (TB_GOODS_BENEFIT_PRICE_TEMP.STAFF_PC_CURR_PRICE >= B.STAFF_PC_CURR_PRICE, B.STAFF_PC_CURR_PRICE, TB_GOODS_BENEFIT_PRICE_TEMP.STAFF_PC_CURR_PRICE)
+		   , STAFF_MO_CURR_PRICE = IF (TB_GOODS_BENEFIT_PRICE_TEMP.STAFF_MO_CURR_PRICE >= B.STAFF_MO_CURR_PRICE, B.STAFF_MO_CURR_PRICE, TB_GOODS_BENEFIT_PRICE_TEMP.STAFF_MO_CURR_PRICE)
 		    </if>
 	</update>
 	
 	<!-- 상품혜택가  테이블 삭제 -->
 	<delete id="deleteGoodsBenefitPrice">
 		/* TsbGoods.deleteGoodsBenefitPrice */
-		DELETE TB_GOODS_BENEFIT_PRICE
+		DELETE FROM TB_GOODS_BENEFIT_PRICE
 	</delete>
 	
 	<!-- 상품혜택가 생성 -->