Sfoglia il codice sorgente

Merge remote-tracking branch 'origin/develop' into xodud1202

xodud lee 4 anni fa
parent
commit
dfbec67386

+ 27 - 0
src/main/java/com/style24/admin/biz/dao/TsaSocialDao.java

@@ -95,4 +95,31 @@ public interface TsaSocialDao {
 	 */
 	int getSocialGoodsGoOffCount(Integer socialSq);
 
+	/**
+	 * 진행 중인 핫딜 즉시 종료 : 상품 가격정보 원복
+	 *
+	 * @return
+	 * @author bin2107
+	 * @since 2021. 7. 29
+	 */
+	void updateGoodsBeforePriceInfo(Social social);
+
+	/**
+	 * 진행 중인 핫딜 즉시 종료 : 원복 상품 이력 생성
+	 *
+	 * @return
+	 * @author bin2107
+	 * @since 2021. 7. 29
+	 */
+	void createBeforeGoodsHst(Social social);
+
+	/**
+	 * 진행 중인 핫딜 즉시 종료 : 소셜 종료 처리(상태변경)
+	 *
+	 * @return
+	 * @author bin2107
+	 * @since 2021. 7. 29
+	 */
+	void updateSocialApplyGbtoF(Social social);
+
 }

+ 10 - 2
src/main/java/com/style24/admin/biz/service/TsaSocialService.java

@@ -147,6 +147,14 @@ public class TsaSocialService {
 			socialDao.deleteSocialGoods(socialInfo);
 		}
 	}
-	
-	
+
+	@Transactional("shopTxnManager")
+	public void saveSocialEnd(Social social){
+		// 1. 소셜 종료 상품 원복
+		socialDao.updateGoodsBeforePriceInfo(social);
+		// 2. 원복 상품 이력 생성
+		socialDao.createBeforeGoodsHst(social);
+		// 3. 소셜 종료 처리(상태변경)
+		socialDao.updateSocialApplyGbtoF(social);
+	}
 }

+ 17 - 0
src/main/java/com/style24/admin/biz/web/TsaMarketingController.java

@@ -2748,4 +2748,21 @@ public class TsaMarketingController extends TsaBaseController {
 		planService.deleteShotBrandGoods(paramList);
 		return super.ok(message.getMessage("SUCC_0003"));
 	}
+
+	/**
+	 * 진행 중인 핫딜 즉시 종료
+	 *
+	 * @return
+	 * @author bin2107
+	 * @since 2021. 7. 29
+	 */
+	@PostMapping("/social/end/save")
+	@ResponseBody
+	public GagaResponse saveSocialEnd(@RequestBody Social social) {
+		Integer userNo = TsaSession.getInfo().getUserNo();
+		social.setRegNo(userNo);
+		social.setUpdNo(userNo);
+		socialService.saveSocialEnd(social);
+		return super.ok(message.getMessage("SUCC_0001"));
+	}
 }

+ 180 - 0
src/main/java/com/style24/persistence/mybatis/shop/TsaSocial.xml

@@ -273,4 +273,184 @@
 		</choose>
 	</sql>
 
+	<!-- 진행중인 상품 종료처리 : 소셜상품 가격정보 원복(before) 업데이트 -->
+	<update id="updateGoodsBeforePriceInfo" parameterType="Social">
+		/* TsaSocial.updateGoodsBeforePriceInfo */
+		UPDATE TB_GOODS A
+			INNER JOIN TB_SOCIAL_GOODS B ON A.GOODS_CD = B.GOODS_CD
+			INNER JOIN TB_SOCIAL C ON B.SOCIAL_SQ = C.SOCIAL_SQ
+		SET A.GOODS_CD = B.GOODS_CD ,
+			A.CURR_PRICE = B.CURR_BPRICE,
+			A.DC_RATE = B.DC_BRATE,
+			A.UPD_DT = NOW(),
+			A.UPD_NO = #{updNo}
+		WHERE C.USE_YN = 'Y'
+		  AND C.APPLY_GB = 'A'
+		  AND B.DEL_YN = 'N'
+		  AND C.SOCIAL_SQ = #{socialSq}
+	</update>
+
+	<!-- 진행중인 상품 종료처리 : 원복(before) 상품 이력 생성 -->
+	<insert id="createBeforeGoodsHst" parameterType="Social">
+		/* TsaSocial.createBeforeGoodsHst */
+		INSERT INTO TB_GOODS_HST
+		(
+		    GOODS_CD
+		    , BRAND_CD
+		    , ITEMKIND_CD
+		    , GOODS_NM
+		    , GOODS_TNM
+		    , GOODS_SNM
+		    , GOODS_SNM1
+		    , MAIN_COLOR_CD
+		    , STYLE_YEAR
+		    , SEASON_CD
+		    , SEX_GB
+		    , GOODS_NUM
+		    , GOODS_TYPE
+		    , TAG_PRICE
+		    , LIST_PRICE
+		    , CURR_PRICE
+		    , CURR_BPRICE
+		    , PRICE_UPD_DT
+		    , COST_PRICE
+		    , DC_RATE
+		    , GOODS_STAT
+		    , SELL_STDT
+		    , SELL_EDDT
+		    , SELF_MALL_YN
+		    , GOODS_GB
+		    , FOREIGN_BUY_YN
+		    , PARALLEL_IMPORT_YN
+		    , ORDER_MADE_YN
+		    , DISTRIBUTION_GB
+		    , SELF_GOODS_YN
+		    , SUPPLY_COMP_CD
+		    , SUPPLY_GOODS_CD
+		    , AGE_GRP_CD
+		    , DELV_LOC_CD
+		    , DELV_FEE_CD
+		    , DELV_FEE
+		    , MIN_ORD_AMT
+		    , PNT_PRATE
+		    , PNT_MRATE
+		    , SELL_FEE_RATE
+		    , FORMAL_GB
+		    , CHANGEABLE_YN
+		    , RETURNABLE_YN
+		    , CHANGE_FEE_FREE_YN
+		    , RETURN_FEE_FREE_YN
+		    , PRE_PPNT_USABLE_YN
+		    , PRE_MPNT_USABLE_YN
+		    , MIN_ORD_QTY
+		    , MAX_ORD_QTY
+		    , DAY_MAX_ORD_QTY
+		    , GIFT_PACK_YN
+		    , FRST_CFRM_DT
+		    , ORIGIN_CD
+		    , MAKE_YMD
+		    , TAX_GB
+		    , ERP_PRICE_LINK_YN
+		    , ERP_STOCK_LINK_YN
+		    , NEW_CUST_ORD_YN
+		    , NEW_CUST_ORD_STDT
+		    , NEW_CUST_ORD_EDDT
+		    , ADULT_YN
+		    , TOBE_FORM_YN
+		    , REG_NO
+		    , REG_DT
+		    , UPD_NO
+		    , UPD_DT
+		)
+		SELECT GOODS_CD
+		     , BRAND_CD
+		     , ITEMKIND_CD
+		     , GOODS_NM
+		     , GOODS_TNM
+		     , GOODS_SNM
+		     , GOODS_SNM1
+		     , MAIN_COLOR_CD
+		     , STYLE_YEAR
+		     , SEASON_CD
+		     , SEX_GB
+		     , GOODS_NUM
+		     , GOODS_TYPE
+		     , TAG_PRICE
+		     , LIST_PRICE
+		     , CURR_PRICE
+		     , CURR_BPRICE
+		     , PRICE_UPD_DT
+		     , COST_PRICE
+		     , DC_RATE
+		     , GOODS_STAT
+		     , SELL_STDT
+		     , SELL_EDDT
+		     , SELF_MALL_YN
+		     , GOODS_GB
+		     , FOREIGN_BUY_YN
+		     , PARALLEL_IMPORT_YN
+		     , ORDER_MADE_YN
+		     , DISTRIBUTION_GB
+		     , SELF_GOODS_YN
+		     , SUPPLY_COMP_CD
+		     , SUPPLY_GOODS_CD
+		     , AGE_GRP_CD
+		     , DELV_LOC_CD
+		     , DELV_FEE_CD
+		     , DELV_FEE
+		     , MIN_ORD_AMT
+		     , PNT_PRATE
+		     , PNT_MRATE
+		     , SELL_FEE_RATE
+		     , FORMAL_GB
+		     , CHANGEABLE_YN
+		     , RETURNABLE_YN
+		     , CHANGE_FEE_FREE_YN
+		     , RETURN_FEE_FREE_YN
+		     , PRE_PPNT_USABLE_YN
+		     , PRE_MPNT_USABLE_YN
+		     , MIN_ORD_QTY
+		     , MAX_ORD_QTY
+		     , DAY_MAX_ORD_QTY
+		     , GIFT_PACK_YN
+		     , FRST_CFRM_DT
+		     , ORIGIN_CD
+		     , MAKE_YMD
+		     , TAX_GB
+		     , ERP_PRICE_LINK_YN
+		     , ERP_STOCK_LINK_YN
+		     , NEW_CUST_ORD_YN
+		     , NEW_CUST_ORD_STDT
+		     , NEW_CUST_ORD_EDDT
+		     , ADULT_YN
+		     , TOBE_FORM_YN
+		     , #{regNo}
+		     , now()
+		     , #{updNo}
+		     , now()
+		FROM   TB_GOODS
+		WHERE  1 = 1
+		  AND    GOODS_CD IN (
+		                       SELECT B.GOODS_CD
+		                       FROM   TB_SOCIAL A
+		                          , TB_SOCIAL_GOODS B
+		                       WHERE  A.SOCIAL_SQ = B.SOCIAL_SQ
+		                         AND    A.USE_YN   = 'Y'
+		                         AND    A.APPLY_GB = 'A'
+		                         AND    B.DEL_YN   = 'N'
+		                         AND    A.SOCIAL_SQ = #{socialSq}
+		                       )
+	</insert>
+
+	<!-- 진행중인 상품 종료처리 : 소셜상품 가격정보 원복(before) 업데이트 -->
+	<update id="updateSocialApplyGbtoF" parameterType="Social">
+		/* TsaSocial.updateSocialApplyGbtoF */
+		UPDATE TB_SOCIAL
+		   SET   APPLY_GB = 'F'	<!-- 종료상태 -->
+		        ,UPD_DT = NOW()
+		        ,UPD_NO = #{updNo}
+		WHERE  APPLY_GB = 'A' 	<!-- 적용상태 -->
+		AND    SOCIAL_SQ = #{socialSq}
+	</update>
+
 </mapper>

+ 68 - 29
src/main/webapp/WEB-INF/views/marketing/SocialShoppingListForm.html

@@ -252,7 +252,7 @@
 			<!-- 소셜 상품 -->
 			<li class="tab" id="tab-2">
 				<div class="panelStyle">	
-						<span class="btnLeft">
+						<span class="btnLeft" id="priceApplyArea">
 							<select name="priceGb" id="priceGb">
 								<option value="">선택</option>
 								<option value="currAprice">판매가</option>
@@ -263,16 +263,18 @@
 							<input type="text" class="w100 aR" id="price" name="price" data-valid-type="numeric"/>
 							<button type="button" class="btn btn-default btn-lg" onclick="fnPriceApply();">일괄적용</button>
 						</span> 
-						<ul class="panelBar">
-							<li>
+						<ul class="panelBar" id="btnArea">
+							<li id="noteArea">
 								<h3><i class="fa fa-info-circle"></i>설정하는 가격과 할인율은 즉시적용 쿠폰을 적용하지 않으며 <font color="red">상품에 있는 판매가로 적용</font>됩니다.</h3>
 							</li>
 							<li class="right">
-								<button type="button" class="btn btn-default btn-lg" onclick="fnOpenGoodsPopup();">상품추가</button>
-								<button type="button" class="btn btn-default btn-lg" onclick="fnDeleteGoods();">상품삭제</button>
-								<button type="button" class="btn btn-default btn-lg" onclick="fnSocialGoodsExcelUpload();">엑셀상품추가</button>
-								<button type="button" class="btn btn-default btn-lg" onclick="cfnDownloadSampleFile('SF011');">엑셀상품추가 양식 다운로드</button>
-								<button type="button" class="btn btn-success btn-lg" onclick="fnSocialGoodsSave();">저장</button>
+								<button type="button" class="btn btn-default btn-lg" id="addGoodsBtn" onclick="fnOpenGoodsPopup();">상품추가</button>
+								<button type="button" class="btn btn-default btn-lg" id="delGoodsBtn" onclick="fnDeleteGoods();">상품삭제</button>
+								<button type="button" class="btn btn-default btn-lg" id="addExcelGoodsBtn" onclick="fnSocialGoodsExcelUpload();">엑셀상품추가</button>
+								<button type="button" class="btn btn-default btn-lg" id="excelDownBtn" onclick="cfnDownloadSampleFile('SF011');">엑셀상품추가 양식 다운로드</button>
+								<button type="button" class="btn btn-success btn-lg" id="regGoodsBtn" onclick="fnSocialGoodsSave();">저장</button>
+								<button type="button" class="btn btn-danger  btn-lg" id="applyBtn" style="display:none;" onclick="fnApplyGoods();">즉시적용</button>
+								<button type="button" class="btn btn-dark btn-lg" id="endBtn" style="display:none;" onclick="fnEndSocial();">종료</button>
 							</li>
 						</ul>
 						<div id="gridSocialGoodsList" style="width: 100%; height: 700px" class="ag-theme-balham lh60"></div>
@@ -391,48 +393,58 @@
 			$(formId+ " input").prop("disabled", false);
 			$(formId+ " select").prop("disabled", false);
 			$(formId+ " button").show();
-
 			// 사용여부 활성화
 			$(formId + ' select[name=useYn]').attr('readonly', false);
-
 			$('#regBtn').show();
+			// noteInfo 영역삭제
+			$("#tab-2 #noteArea #noteInfo").remove();
+			$("#tab-2 #priceApplyArea").show();
+			$("#tab-2 #btnArea").show();
+			$("#tab-2 #addGoodsBtn").show();
+			$("#tab-2 #delGoodsBtn").show();
+			$("#tab-2 #addExcelGoodsBtn").show();
+			$("#tab-2 #excelDownBtn").show();
+			// 버튼영역
+			$("#tab-2 #endBtn").hide();
 			// TODO 7/28: 즉시적용 버튼 추가
+			$("#tab-2 #applyBtn").hide();
 		}else if(data.applyGb=='A') {
 			$(formId + ' input[name=applyGbName]').val('적용');
 			$(formId+ " input").prop("disabled", true);
 			$(formId+ " select").prop("disabled", true);
 			$(formId+ " button").hide();
-
 			// 진행 종료 날짜/시간만 수정가능
 			$(formId + ' input[name=edDate]').attr('readonly', false);
 			$(formId + ' input[name=edDate]').prop('disabled', false);
 			$(formId + ' #edTimeHour').prop('disabled', false);
 			$(formId + ' #edTimeHour').attr('readonly', false);
-
 			$('#regBtn').show();
+
+			// 소셜상품 탭 버튼 show , [저장]버튼만 노출:노출순서 수정만 가능
+			$("#tab-2 #priceApplyArea").hide();
+			$("#tab-2 #btnArea").show();
+			$("#tab-2 #addGoodsBtn").hide();
+			$("#tab-2 #delGoodsBtn").hide();
+			$("#tab-2 #addExcelGoodsBtn").hide();
+			$("#tab-2 #excelDownBtn").hide();
+			$("#tab-2 #noteArea #noteInfo").remove();
+			var noteHtml = '<br id="noteInfo"><h3 id="noteInfo"><i class="fa fa-info-circle"></i>진행중인 핫딜은 노출 순서만 변경 가능합니다.</h3>';
+			$("#tab-2 #noteArea").append(noteHtml);
 			// TODO 7/28: 종료 버튼 추가
+			$("#tab-2 #endBtn").show();
+			$("#tab-2 #applyBtn").hide();
 		}else{
 			$(formId + ' input[name=applyGbName]').val('종료');
-			// $(formId + ' input[name=socialNm]').attr('readonly', true);
-			// $(formId + ' input[name=socialTnm]').attr('readonly', true);
-			// $(formId + ' select[name=siteCd]').prop('disabled', true);
-			// $(formId + ' select[name=siteCd]').attr('readonly', true);
-			// $(formId + ' select[name=useYn]').prop('disabled', true);
-			// $(formId + ' select[name=useYn]').attr('readonly', true);
-			// $(formId + ' select[name=frontGb]').prop('disabled', true);
-			// $(formId + ' select[name=frontGb]').attr('readonly', true);
-			// $(formId + ' select[name=socialType]').prop('disabled', true);
-			// $(formId + ' select[name=socialType]').attr('readonly', true);
-			// $(formId + ' input[name=stDate]').attr('readonly', true);
-			// $(formId + ' input[name=edDate]').attr('readonly', true);
-			// $(formId + ' #stTimeHour').prop('disabled', true);
-			// $(formId + ' #stTimeHour').attr('readonly', true);
-			// $(formId + ' #edTimeHour').prop('disabled', true);
-			// $(formId + ' #edTimeHour').attr('readonly', true);
 			$(formId+ " input").prop("disabled", true);
 			$(formId+ " select").prop("disabled", true);
 			$(formId+ " button").hide();
 			$('#regBtn').hide();
+
+			// 소셜상품 탭 버튼 hide
+			$("#tab-2 #priceApplyArea").hide();
+			$("#tab-2 #btnArea").hide();
+			$("#tab-2 #endBtn").hide();
+			$("#tab-2 #applyBtn").hide();
 		}
 	}
 
@@ -446,12 +458,19 @@
 		var formId = '#detailForm';
 		
 		$('#detailForm')[0].reset();
+		$(formId+ " input").prop("disabled", false);
+		$(formId+ " select").prop("disabled", false);
+		$(formId+ " button").show();
+		$("#regBtn").show();
+		// 사용여부 활성화
+		$(formId + ' select[name=useYn]').attr('readonly', true);
+		$(formId + ' select[name=useYn]').attr('disabled', true);
 		$('.tabsNav li').eq(1).addClass('off');
 		
 		$(formId + ' select[name=planSq]').removeAttr("disabled");
 		$(formId + ' select[name=socialType]').removeAttr("disabled");
 		$(formId + ' button[id=btnSearchPlan]').removeAttr("style");
-		
+
 	};
 	// 소셜 기본정보 저장
 	var fnSocialSaveValid = function() {
@@ -878,6 +897,26 @@
 			clearInterval(timer);
 		}
 	}
+
+	// 진행중인 핫딜 종료처리
+	$("#endBtn").on("click",function() {
+		var data = {
+			socialSq : $('#detailForm').find('input[name=socialSq]').val()
+		}
+		var jsonData = JSON.stringify(data);
+
+		mcxDialog.confirm('진행중인 핫딜이 즉시 종료됩니다. 진행하시겠습니까?', {
+			cancelBtnText: "취소",
+			sureBtnText: "확인",
+			sureBtnClick: function(){
+				gagajf.ajaxJsonSubmit('/marketing/social/end/save', jsonData, fnEndSocialCallBack);
+			}
+		});
+	});
+
+	var fnEndSocialCallBack = function (result){
+		console.log(result);
+	}
 	
 /*]]>*/
 </script>