Prechádzať zdrojové kódy

핫딜 대기상태시 즉시적용 로직 추가

bin2107 4 rokov pred
rodič
commit
a0db42c1c4

+ 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>

+ 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 = {