Procházet zdrojové kódy

다다익선 - 저장로직 수정

bin2107 před 5 roky
rodič
revize
3f49cf33b8

+ 28 - 0
src/main/java/com/style24/admin/biz/dao/TsaMorebetterDao.java

@@ -7,6 +7,7 @@ import org.apache.ibatis.session.ResultHandler;
 import org.springframework.stereotype.Component;
 
 import java.util.Collection;
+import java.util.List;
 
 /**
  * 마케팅 다다익선 Dao
@@ -222,6 +223,15 @@ public interface TsaMorebetterDao {
      */
     void createTmtbGoodsTemp(MoreBetterGoods moreBetterGoods);
 
+    /**
+     * 다다익선 - 입력받은 다다익선 적용 상품 insert
+     * @param
+     * @return
+     * @author bin2107
+     * @since 2021. 1. 22
+     */
+    void createTmtbApplyGoodsTemp(MoreBetterGoods moreBetterGoods);
+
     /**
      * 다다익선 중복 상품 조회
      * @param moreBetterGoods
@@ -239,5 +249,23 @@ public interface TsaMorebetterDao {
      * @since 2021. 1. 26
      */
     void updateMorebetterStat(MoreBetter moreBetter);
+
+    /**
+     * 다다익선 - 중복제거 적용 상품 리스트 delete
+     * @param
+     * @return
+     * @author bin2107
+     * @since 2021. 1. 22
+     */
+    void deleteTmtbApplyGoodsTemp(MoreBetterGoods moreBetterGoods);
+
+    /**
+     * 다다익선 중복제거 적용 상품 리스트 조회
+     * @param
+     * @return
+     * @author bin2107
+     * @since 2021. 2. 1
+     */
+    List<MoreBetterGoods> getMorebetterRealApplyGoodsList(MoreBetter moreBetter);
     /* // CSB 진행 */
 }

+ 20 - 12
src/main/java/com/style24/admin/biz/service/TsaMorebetterService.java

@@ -16,6 +16,7 @@ import com.style24.admin.biz.dao.TsaMorebetterDao;
 
 import java.util.ArrayList;
 import java.util.Collection;
+import java.util.List;
 
 /**
  *마케팅>다다익선 Service
@@ -136,15 +137,12 @@ public class TsaMorebetterService {
      * @author bin2107
      * @since 2021. 1. 5
      */
-    @Transactional("shopTxnManager")
     public void saveMoreBetterDetail(MoreBetter moreBetter) {
         // <,> replace 처리
         moreBetter.setRegNo(TsaSession.getInfo().getUserNo());
         moreBetter.setUpdNo(TsaSession.getInfo().getUserNo());
         Gson gson = new Gson();
         String jsonData = gson.toJson(moreBetter);
-        log.info("{ saveMoreBetterDetail jsonData}",jsonData);
-        log.info("{ saveMoreBetterDetail moreBetter}",moreBetter);
 
         // TMTB 마스터(TB_TMTB) 저장
         morebetterDao.saveMorebetterMst(moreBetter);
@@ -171,16 +169,21 @@ public class TsaMorebetterService {
             morebetterDao.saveMorebetterGoods(regBrand);
         }
 
+        List<MoreBetterGoods> realApplyGoodsList = morebetterDao.getMorebetterRealApplyGoodsList(moreBetter);
         // 적용상품
-        for(MoreBetterGoods regApplyGoods : moreBetter.getApplyGoodsList()){
-            // 다다익선 적용대상 설정(TB_TMTB_GOODS) 저장
-            regApplyGoods.setTmtbSq(moreBetter.getTmtbSq());
-            regApplyGoods.setTargetVal(regApplyGoods.getGoodsCd());
-            regApplyGoods.setRegNo(moreBetter.getRegNo());
-            regApplyGoods.setUpdNo(moreBetter.getUpdNo());
-
-            morebetterDao.saveMorebetterGoods(regApplyGoods);
-            morebetterDao.saveMorebetterApplyGoods(regApplyGoods);
+        for(MoreBetterGoods realApplyGoods : realApplyGoodsList){
+            for(MoreBetterGoods regApplyGoods : moreBetter.getApplyGoodsList()){
+                if(regApplyGoods.getGoodsCd().equals(realApplyGoods.getGoodsCd())){
+                    // 다다익선 적용대상 설정(TB_TMTB_GOODS) 저장
+                    regApplyGoods.setTmtbSq(moreBetter.getTmtbSq());
+                    regApplyGoods.setTargetVal(realApplyGoods.getGoodsCd());
+                    regApplyGoods.setRegNo(moreBetter.getRegNo());
+                    regApplyGoods.setUpdNo(moreBetter.getUpdNo());
+
+                    morebetterDao.saveMorebetterGoods(regApplyGoods);
+                    morebetterDao.saveMorebetterApplyGoods(regApplyGoods);
+                }
+            }
         }
 
         // 제외상품
@@ -338,6 +341,11 @@ public class TsaMorebetterService {
     public void createMorebetterGoodsTemp(MoreBetterGoods moreBetterGoods){
         moreBetterGoods.setRegNo(TsaSession.getInfo().getUserNo());
 
+        morebetterDao.deleteTmtbApplyGoodsTemp(moreBetterGoods);
+        for(int i=0; i<moreBetterGoods.getMultiApplyGoods().length; i++){
+            moreBetterGoods.setGoodsCd(moreBetterGoods.getMultiApplyGoods()[i]);
+            morebetterDao.createTmtbApplyGoodsTemp(moreBetterGoods);
+        }
         morebetterDao.deleteTmtbGoodsTemp(moreBetterGoods);
         morebetterDao.createTmtbGoodsTemp(moreBetterGoods);
     }

+ 7 - 8
src/main/java/com/style24/admin/biz/web/TsaMarketingController.java

@@ -1,11 +1,9 @@
 package com.style24.admin.biz.web;
 
 import java.text.SimpleDateFormat;
-import java.util.ArrayList;
-import java.util.Calendar;
-import java.util.Collection;
-import java.util.Date;
+import java.util.*;
 
+import com.fasterxml.jackson.databind.ObjectMapper;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.core.env.Environment;
@@ -703,6 +701,7 @@ public class TsaMarketingController extends TsaBaseController {
 	public GagaMap saveMorebetterDetail(@RequestBody MoreBetter moreBetter){
 		String result = "";
 		GagaMap map = new GagaMap();
+		ObjectMapper mapper = new ObjectMapper();
 
 		try{
 			MoreBetterGoods moreBetterGoods = new MoreBetterGoods();
@@ -713,21 +712,21 @@ public class TsaMarketingController extends TsaBaseController {
 
 			// TMTB_GOODS_TEMP TABLE TRUNCATE -> 다른 다다에서 사용중인 상품 조회 -> INSERT
 			morebetterService.createMorebetterGoodsTemp(moreBetterGoods);
+
+			morebetterService.saveMoreBetterDetail(moreBetter);
+
 			// 다른 다다에서 사용중인 상품 조회
 			Collection<MoreBetterGoods> duplicateGoodsList = morebetterService.getMorebetterDuplicateList(moreBetterGoods);
-
 			// SELECT -> 지금 내가 선택한 업체&브랜드 + 적용상품에 해당하는 상품 조회 MINUS TMTB_GOODS_TEMP 상품
 			// 조회 건수 있으면 -> 해당 상품코드 엑셀로 던져주기
 			if(duplicateGoodsList.size() > 0){
 				map.set("duplicateYn","Y");
-				//map.set("message", result);
 				map.set("duplicateGoodsList",duplicateGoodsList);
 			}else{
 				// 조회 건수 없으면 -> 저장으로 넘어감
-				morebetterService.saveMoreBetterDetail(moreBetter);
 				map.set("duplicateYn","N");
-				map.set("message", message.getMessage("SUCC_0001"));
 			}
+			map.set("message", message.getMessage("SUCC_0001"));
 		} catch(Exception e) {
 			e.printStackTrace();
 			map.set("message", message.getMessage("FAIL_0001"));

+ 5 - 0
src/main/java/com/style24/persistence/domain/MoreBetter.java

@@ -77,6 +77,11 @@ public class MoreBetter extends TscBaseDomain {
 	@JsonFormat(with = JsonFormat.Feature.ACCEPT_SINGLE_VALUE_AS_ARRAY)
 	private String[] multiExceptGoods;
 
+	@JsonFormat(with = JsonFormat.Feature.ACCEPT_SINGLE_VALUE_AS_ARRAY)
+	private String[] multiDuplicateGoods;
+
+	private Collection<MoreBetterGoods> checkData;
+	List<MoreBetterGoods> dupList;
 	// 날짜+시간
 	private String eventStdt;				// 다다익선시작일시
 	private String eventStHH;				// 다다익선시작일시

+ 4 - 0
src/main/java/com/style24/persistence/domain/MoreBetterGoods.java

@@ -4,6 +4,7 @@ import com.fasterxml.jackson.annotation.JsonFormat;
 import com.style24.persistence.TscBaseDomain;
 import lombok.Data;
 
+import java.util.Collection;
 import java.util.List;
 
 
@@ -55,6 +56,9 @@ public class MoreBetterGoods extends TscBaseDomain {
 
 	@JsonFormat(with = JsonFormat.Feature.ACCEPT_SINGLE_VALUE_AS_ARRAY)
 	private String[] multiExceptGoods;
+
+	@JsonFormat(with = JsonFormat.Feature.ACCEPT_SINGLE_VALUE_AS_ARRAY)
+	private String[] multiDuplicateGoods;
 /*
 	List<MoreBetterGoods> multiSupplyCompCd;
 	List<MoreBetterGoods> multiBrand;

+ 32 - 0
src/main/java/com/style24/persistence/mybatis/shop/TsaMorebetter.xml

@@ -608,5 +608,37 @@
 			, UPD_DT = NOW()
 		WHERE TMTB_SQ = #{tmtbSq}
 	</update>
+
+	<delete id="deleteTmtbApplyGoodsTemp" parameterType="MoreBetterGoods">
+		/* TsaMarketing.deleteTmtbApplyGoodsTemp */
+		DELETE FROM TB_TMTB_APPLY_GOODS_TEMP
+		WHERE	REG_NO = #{regNo}
+	</delete>
+
+	<insert id="createTmtbApplyGoodsTemp" parameterType="MoreBetterGoods">
+		/* TsaMarketing.createTmtbApplyGoodsTemp */
+		INSERT INTO TB_TMTB_APPLY_GOODS_TEMP(
+											 REG_NO
+											,GOODS_CD
+		)
+		VALUES (
+				   #{regNo}
+			   ,#{goodsCd}
+			   )
+	</insert>
+
+	<select id="getMorebetterRealApplyGoodsList" parameterType="MoreBetter" resultType="MoreBetterGoods">
+		/* TsaMarketing.getMorebetterRealApplyGoodsList */
+		SELECT	GOODS_CD
+		  FROM	TB_TMTB_APPLY_GOODS_TEMP
+		 WHERE	1=1
+		   AND	REG_NO = #{regNo}
+		   AND	GOODS_CD NOT IN (
+							SELECT	GOODS_CD
+							FROM	TB_TMTB_USING_GOODS_TEMP
+							WHERE	1=1
+							  AND	REG_NO = #{regNo}
+							)
+	</select>
 	<!--// CSB 진행 -->
 </mapper>

+ 6 - 6
src/main/webapp/WEB-INF/views/marketing/MorebetterPopupForm.html

@@ -698,7 +698,7 @@
 
 		var jsonData = JSON.stringify(data);
 
-		//gagajf.ajaxJsonSubmit($('#moreBetterForm').prop('action'), jsonData, fnMorebetterSaveCollback);
+		gagajf.ajaxJsonSubmit($('#moreBetterForm').prop('action'), jsonData, fnMorebetterSaveCollback);
 	});
 
 	var fnMorebetterSaveCollback = function(result){
@@ -739,11 +739,11 @@
 		}
 
 		// 브랜드 데이터 체크
-		let allBrandCnt = gagaAgGrid.getAllRowData(gridOptionsFGBrandList).length;
+		/*let allBrandCnt = gagaAgGrid.getAllRowData(gridOptionsFGBrandList).length;
 		if(allBrandCnt<1){
 			mcxDialog.alert('브랜드를 추가해주세요.');
 			return;
-		}
+		}*/
 	};
 
 	// 브랜드 설정 / 브랜드 추가 콜백함수 (단수로 가져오므로 복수일 경우에 수정 확인 필요)
@@ -763,13 +763,13 @@
 		}
 
 		// 공급업체 데이터 체크
-		var allSupplyCompData = gagaAgGrid.getAllRowData(gridOptionsFGCompanyList);
+		/*var allSupplyCompData = gagaAgGrid.getAllRowData(gridOptionsFGCompanyList);
 		var allBrandData = gagaAgGrid.getAllRowData(gridOptionsFGBrandList);
 
 		if(allSupplyCompData.length < 1){
 			mcxDialog.alert('공급업체를 추가해주세요.');
 			return;
-		}
+		}*/
 	};
 
 	// 분담업체율 설정 / 업체 추가 콜백함수
@@ -841,7 +841,7 @@
 
 	// 공급업체 설정 업체 추가 버튼 클릭시
 	$('#moreBetterForm #btnAddCompany').on('click', function() {
-		cfnOpenCompanyListPopup("fnSetPopupComapnyInfo");
+		cfnOpenCompanyListPopup("fnSetPopupComapnyInfo", "M");
 	});
 
 	// 브랜드 추가 버튼 클릭시 (복수 브랜드때 수정 필요)