Ver Fonte

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

jsh77b há 4 anos atrás
pai
commit
2aa17a9807

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

@@ -122,4 +122,31 @@ public interface TsaSocialDao {
 	 */
 	void updateSocialApplyGbtoF(Social social);
 
+	/**
+	 * 즉시적용할 소셜 시작 상품 적용
+	 *
+	 * @return
+	 * @author bin2107
+	 * @since 2021. 7. 30
+	 */
+	void updateGoodsAfterPriceInfo(Social social);
+
+	/**
+	 * 즉시적용할 상품 이력 생성
+	 *
+	 * @return
+	 * @author bin2107
+	 * @since 2021. 7. 30
+	 */
+	void createAfterGoodsHst(Social social);
+
+	/**
+	 * 즉시적용할 소셜 적용 처리(상태변경)
+	 *
+	 * @return
+	 * @author bin2107
+	 * @since 2021. 7. 30
+	 */
+	void updateSocialApplyGbtoA(Social social);
+
 }

+ 31 - 0
src/main/java/com/style24/admin/biz/service/TsaSocialService.java

@@ -148,6 +148,13 @@ public class TsaSocialService {
 		}
 	}
 
+	/**
+	 * 진행 중인 핫딜 즉시 종료
+	 *
+	 * @return
+	 * @author bin2107
+	 * @since 2021. 7. 29
+	 */
 	@Transactional("shopTxnManager")
 	public void saveSocialEnd(Social social){
 		// 1. 소셜 종료 상품 원복
@@ -157,4 +164,28 @@ public class TsaSocialService {
 		// 3. 소셜 종료 처리(상태변경)
 		socialDao.updateSocialApplyGbtoF(social);
 	}
+
+	/**
+	 * 진행 중인 핫딜 즉시 종료
+	 *
+	 * @return
+	 * @author bin2107
+	 * @since 2021. 7. 29
+	 */
+	@Transactional("shopTxnManager")
+	public void saveSocialApply(Social social){
+		// 1. 진행중인 소셜 종료 상품 원복
+		socialDao.updateGoodsBeforePriceInfo(social);
+		// 2. 진행중인 소셜 원복 상품 이력 생성
+		socialDao.createBeforeGoodsHst(social);
+		// 3. 진행중인 소셜 종료 처리(상태변경)
+		socialDao.updateSocialApplyGbtoF(social);
+
+		// 4. 즉시적용할 소셜 시작 상품 적용
+		socialDao.updateGoodsAfterPriceInfo(social);
+		// 5. 즉시적용할 상품 이력 생성
+		socialDao.createAfterGoodsHst(social);
+		// 6. 즉시적용할 소셜 적용 처리(상태변경)
+		socialDao.updateSocialApplyGbtoA(social);
+	}
 }

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

@@ -2765,4 +2765,21 @@ public class TsaMarketingController extends TsaBaseController {
 		socialService.saveSocialEnd(social);
 		return super.ok(message.getMessage("SUCC_0001"));
 	}
+
+	/**
+	 *  진행중인 핫딜 종료후 해당 핫딜 즉시적용
+	 *
+	 * @return
+	 * @author bin2107
+	 * @since 2021. 7. 30
+	 */
+	@PostMapping("/social/apply/save")
+	@ResponseBody
+	public GagaResponse saveSocialApply(@RequestBody Social social) {
+		Integer userNo = TsaSession.getInfo().getUserNo();
+		social.setRegNo(userNo);
+		social.setUpdNo(userNo);
+		socialService.saveSocialApply(social);
+		return super.ok(message.getMessage("SUCC_0001"));
+	}
 }

+ 3 - 0
src/main/java/com/style24/persistence/domain/Social.java

@@ -77,6 +77,9 @@ public class Social extends TscBaseDomain{
 		// 검색
 		private String stDate;	// 시작일시
 		private String edDate;	// 종료일시
+
+		// 핫딜 즉시적용시 사용
+		private String immediatelyApplyYn;
 		
 		
 		// Pagination

+ 188 - 1
src/main/java/com/style24/persistence/mybatis/shop/TsaSocial.xml

@@ -287,7 +287,9 @@
 		WHERE C.USE_YN = 'Y'
 		  AND C.APPLY_GB = 'A'
 		  AND B.DEL_YN = 'N'
+		  <if test="immediatelyApplyYn == null or immediatelyApplyYn == ''">
 		  AND C.SOCIAL_SQ = #{socialSq}
+		  </if>
 	</update>
 
 	<!-- 진행중인 상품 종료처리 : 원복(before) 상품 이력 생성 -->
@@ -438,7 +440,9 @@
 		                         AND    A.USE_YN   = 'Y'
 		                         AND    A.APPLY_GB = 'A'
 		                         AND    B.DEL_YN   = 'N'
+		                       <if test="immediatelyApplyYn == null or immediatelyApplyYn == ''">
 		                         AND    A.SOCIAL_SQ = #{socialSq}
+		                       </if>
 		                       )
 	</insert>
 
@@ -450,7 +454,190 @@
 		        ,UPD_DT = NOW()
 		        ,UPD_NO = #{updNo}
 		WHERE  APPLY_GB = 'A' 	<!-- 적용상태 -->
-		AND    SOCIAL_SQ = #{socialSq}
+		<if test="immediatelyApplyYn == null or immediatelyApplyYn == ''">
+		  AND    SOCIAL_SQ = #{socialSq}
+		</if>
+	</update>
+
+	<!-- 상품 가격정보 적용(after) -->
+	<update id="updateGoodsAfterPriceInfo" parameterType="Social">
+		/* TsaSocial.updateGoodsAfterPriceInfo */
+		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 = 'P'
+		AND B.DEL_YN = 'N'
+		AND C.SOCIAL_SQ = #{socialSq}
+	</update>
+
+	<!-- 적용(after) 상품 이력 생성 -->
+	<insert id="createAfterGoodsHst" parameterType="Social">
+		/* TsaSocial.createAfterGoodsHst */
+		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 = 'P'
+		                AND    B.DEL_YN   = 'N'
+		                AND    A.SOCIAL_SQ = #{socialSq}
+		             )
+	</insert>
+
+	<!-- 소셜 적용 여부 '적용'(대기->적용) 업데이트 -->
+	<update id="updateSocialApplyGbtoA" parameterType="Social">
+		/* TsbSocial.updateSocialApplyGbtoA */
+		UPDATE TB_SOCIAL
+		SET    APPLY_GB = 'A',
+		       UPD_DT = NOW(),
+		       UPD_NO = #{updNo}
+		WHERE  APPLY_GB = 'P'
+		  AND  USE_YN   = 'Y'
+		  AND  SOCIAL_SQ = #{socialSq}
 	</update>
 
 </mapper>

+ 9 - 0
src/main/webapp/WEB-INF/views/display/MainContentsPopupForm.html

@@ -25,6 +25,15 @@
 			<ul class="panelBar">
 				<li class="aL">
 					<span class="cBlue">* 상단으로 드래그&amp;드랍하여 순서 변경 가능합니다.</span>
+					<br th:if="${contentsLoc=='SGNB001' or contentsLoc=='SMM001' or contentsLoc=='SMM005' or contentsLoc=='SMM008' or contentsLoc=='SBM004' or contentsLoc=='SBM006' or contentsLoc=='SBM014' or contentsLoc=='SBM015' or contentsLoc=='SBM016' or contentsLoc=='SCM001' or contentsLoc=='SOM001'}">
+					<span class="cRed" th:if="${contentsLoc=='SGNB001'}">* 띠배너 이미지: 1120 X 185 / 확장형 배너이미지: 1920 X 400 / 확장형 HTML 이미지: 1920 X 700</span>
+					<span class="cRed" th:if="${contentsLoc=='SMM001'}">* PC 이미지: 1080 X 700 / 모바일 이미지: 960 X 960</span>
+					<span class="cRed" th:if="${contentsLoc=='SMM001'}">* PC 이미지: 1080 X 700 / 모바일 이미지: 960 X 960</span>
+					<span class="cRed" th:if="${contentsLoc=='SMM005'}">* 1단 이미지: 1780 X 230(안전영역 810X230 + BG컬러) / 모바일 이미지: 810 X 230</span>
+					<span class="cRed" th:if="${contentsLoc=='SMM008'}">* 이미지: 1920 X 340 </span>
+					<span class="cRed" th:if="${contentsLoc=='SBM004'}">* PC 이미지: 1080 X 700 / 모바일 이미지: 960 X 960</span>
+					<span class="cRed" th:if="${contentsLoc=='SBM006' or contentsLoc=='SBM014' or contentsLoc=='SBM015' or contentsLoc=='SBM016'}">* 이미지: 1780 X 230(안전영역 810X230 + BG컬러)</span>
+					<span class="cRed" th:if="${contentsLoc=='SCM001' or contentsLoc=='SOM001'}">* 이미지: 960 X 960</span>
 				</li>
 				<li class="aR">
 					<button type="button" class="btn btn btn-base btn-sm" id="btnPopAddRow">컨텐츠 추가</button>

+ 8 - 0
src/main/webapp/WEB-INF/views/display/MainMultiContentsPopupForm.html

@@ -24,6 +24,14 @@
 				<ul class="panelBar">
 					<li class="aL">
 						<span class="cBlue">* 상단으로 드래그&amp;드랍하여 순서 변경 가능합니다.</span>
+						<br th:if="${contentsLoc=='SMM003' or contentsLoc=='SMM007' or contentsLoc=='SMM009' or contentsLoc=='SBM007' or contentsLoc=='SBM008' or contentsLoc=='SBM009' or contentsLoc=='SBM017' or contentsLoc=='SBM018' or contentsLoc=='SBM019' or contentsLoc=='SCM002' or contentsLoc=='SCM003' or contentsLoc=='SOM002' or contentsLoc=='SOM003'}">
+						<span class="cRed" th:if="${contentsLoc=='SMM003' or contentsLoc=='SBM007' or contentsLoc=='SCM002'}">* 신상품 최대 20개(수동설정 20개 미만일시, 수동 설정 + 최신 등록 상품)</span>
+						<span class="cRed" th:if="${contentsLoc=='SMM007'}">* 배너 최대 5개(수동설정 + 브랜드 룩북1개 + 진행중인 기획전)</span><br th:if="${contentsLoc=='SMM007'}">
+						<span class="cRed" th:if="${contentsLoc=='SMM007'}">* 상품 최대 3개(수동설정 3개 미만일시, 수동설정 + 브랜드 최신 등록 상품)</span>
+						<span class="cRed" th:if="${contentsLoc=='SMM009'}">* 키워드 최대 5개(수동설정 5개 미만일시, 추천솔루션 데이터 노출(키워드별 상품 7개))</span>
+						<span class="cRed" th:if="${contentsLoc=='SBM008'}">* 상품 최대 10개(수동설정 10개 미만일시, 수동설정 + 추천솔루션 데이터 노출)</span>
+						<span class="cRed" th:if="${contentsLoc=='SBM009' or contentsLoc=='SBM017' or contentsLoc=='SBM018' or contentsLoc=='SBM019' or contentsLoc=='SOM002'}">* 상품 최대 20개(수동설정 20개 미만일시, 수동설정 + 추천솔루션 데이터 노출)</span>
+						<span class="cRed" th:if="${contentsLoc=='SCM003' or contentsLoc=='SOM003'}">* 상품 최대 수동설정한 노출 갯수(수동설정 갯수 미만일시, 수동설정 + 추천솔루션 데이터 노출)</span>
 					</li>
 					<li class="aR">
 						<button type="button" class="btn btn btn-base btn-sm" th:if="${contentsLoc == 'SMM007'}" onclick="fnAddBrand(this);">브랜드 추가</button> <!--id="btnBrandAddRow"-->

+ 2 - 1
src/main/webapp/WEB-INF/views/goods/GoodsListForm.html

@@ -980,8 +980,9 @@
 				if (item.supplyCompCd != statSupplyCompCd){
 					mcxDialog.alert(item.goodsCd +" 상품은 배송정책의 업체와 상이합니다.");
 					chkFlag = true;
-					 false;
+					return false;
 				}
+				
 			});
 			if (chkFlag){
 				return;

+ 18 - 1
src/main/webapp/WEB-INF/views/marketing/SocialShoppingListForm.html

@@ -407,7 +407,7 @@
 			// 버튼영역
 			$("#tab-2 #endBtn").hide();
 			// TODO 7/28: 즉시적용 버튼 추가
-			$("#tab-2 #applyBtn").hide();
+			$("#tab-2 #applyBtn").show();
 		}else if(data.applyGb=='A') {
 			$(formId + ' input[name=applyGbName]').val('적용');
 			$(formId+ " input").prop("disabled", true);
@@ -898,6 +898,23 @@
 		}
 	}
 
+	// 진행중인 핫딜 종료후 해당 핫딜 즉시적용
+	$("#applyBtn").on("click",function() {
+		var data = {
+			socialSq : $('#detailForm').find('input[name=socialSq]').val()
+			, immediatelyApplyYn : 'Y'
+		}
+		var jsonData = JSON.stringify(data);
+
+		mcxDialog.confirm('진행중인 핫딜 종료 후 해당 핫딜이 즉시 적용됩니다.\n 진행하시겠습니까?', {
+			cancelBtnText: "취소",
+			sureBtnText: "확인",
+			sureBtnClick: function(){
+				gagajf.ajaxJsonSubmit('/marketing/social/apply/save', jsonData, fnEndSocialCallBack);
+			}
+		});
+	});
+
 	// 진행중인 핫딜 종료처리
 	$("#endBtn").on("click",function() {
 		var data = {