Jelajahi Sumber

다다익선 오류 수정

jsh77b 4 tahun lalu
induk
melakukan
f8b4c7abba

+ 24 - 19
src/main/java/com/style24/admin/biz/service/TsaMorebetterService.java

@@ -144,10 +144,11 @@ public class TsaMorebetterService {
         // <,> replace 처리
         moreBetter.setRegNo(TsaSession.getInfo().getUserNo());
         moreBetter.setUpdNo(TsaSession.getInfo().getUserNo());
+        
         Gson gson = new Gson();
         String jsonData = gson.toJson(moreBetter);
 
-        if("U".equals(moreBetter.getMode())){
+        if ("U".equals(moreBetter.getMode())){
             morebetterDao.deleteTmtbGoods(moreBetter);      // TB_TMTB_GOODS DEL_YN 'Y' UPDATE
             morebetterDao.deleteTmtbBurden(moreBetter);     // TB_TMTB_BURDEN DEL_YN 'Y' UPDATE
             morebetterDao.deleteTmtbSection(moreBetter);    // TB_TMTB_SECTION DEL_YN 'Y' UPDATE
@@ -159,7 +160,7 @@ public class TsaMorebetterService {
         morebetterDao.saveMorebetterMst(moreBetter);
 
         // 공급업체
-        for(MoreBetterGoods regSupplyComp : moreBetter.getSupplyCompList()){
+        for (MoreBetterGoods regSupplyComp : moreBetter.getSupplyCompList()) {
             regSupplyComp.setTmtbSq(moreBetter.getTmtbSq());
             regSupplyComp.setGoodsGb("G800_20");
             regSupplyComp.setTargetVal(regSupplyComp.getSupplyCompCd());
@@ -190,30 +191,30 @@ public class TsaMorebetterService {
             morebetterDao.saveMorebetterGoods(regDefaultGoods);
         }
 
-        // 기준상품+적용상품 중복제거
-        List<MoreBetterGoods> dgList = moreBetter.getDefaultGoodsList();
-        List<MoreBetterGoods> agList = moreBetter.getGridApplyGoodsList();
+        // 기준상품 + 적용상품 중복제거
+        List<MoreBetterGoods> dgList = moreBetter.getDefaultGoodsList();		// 기준상품
+        List<MoreBetterGoods> agList = moreBetter.getGridApplyGoodsList();		// 적용상품
         List<MoreBetterGoods> applyList = new ArrayList<>();
+        
         int dupCnt = 0;
-        if(agList.size() > 0){
+        
+        if (agList.size() > 0){
             applyList = dgList;
-            for(int i=0; i<agList.size(); i++){
-                for(int j=0; j<dgList.size(); j++){
-                    if(agList.get(i).getGoodsCd().equals(dgList.get(j).getGoodsCd())){
-                        //applyList.add(agList.get(i));
+            
+            for (int i=0 ; i<agList.size() ; i++) {
+                for (int j=0; j<dgList.size(); j++) {
+                    if (agList.get(i).getGoodsCd().equals(dgList.get(j).getGoodsCd())) {
                         dupCnt++;
                     }
                 }
-                if(dupCnt==0){
+                if (dupCnt == 0) {                	
                     applyList.add(agList.get(i));
                 }
             }
-        }else{
+        } else {
             applyList = dgList;
         }
 
-        log.info("applyList ::::{}",applyList);
-
         for(MoreBetterGoods regApplyGoods : applyList){
             // 다다익선 적용대상 설정(TB_TMTB_GOODS) 저장
             regApplyGoods.setTmtbSq(moreBetter.getTmtbSq());
@@ -262,16 +263,20 @@ public class TsaMorebetterService {
         StringBuilder sb = new StringBuilder();
         StringBuilder sb3 = new StringBuilder();
         //int i = 1;
-        log.info("applyList2 ::::{}",applyList);
 
-        if(applyList.size()>0){
-            for(int i=0; i<applyList.size(); i++){
+        if (applyList.size() > 0) {
+            for (int i=0; i<applyList.size(); i++) {
+            	log.info("goodCd >>> {}", applyList.get(i).getGoodsCd());
+            	log.info("goodGb >>> {}", applyList.get(i).getGoodsGb());
+            	
                 sb.append("SELECT   '").append(applyList.get(i).getGoodsCd()).append("' AS GOODS_CD ");
-                if(i<applyList.size()-1){
+                
+                if (i < applyList.size()-1) {
                     sb.append("\n UNION ALL \n");
                 }
 
-                sb3.append("SELECT   '").append(applyList.get(i).getGoodsCd()).append("' AS GOODS_CD ").append(" , '").append(applyList.get(i).getGoodsGb()).append("' AS GOODS_GB ");
+                sb3.append("SELECT   '").append(applyList.get(i).getGoodsCd()).append("' AS GOODS_CD ");
+                sb3.append(" , '").append(applyList.get(i).getGoodsGb()).append("' AS GOODS_GB ");
                 if(i<applyList.size()-1){
                     sb3.append("\n UNION ALL \n");
                 }

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

@@ -1302,14 +1302,17 @@ public class TsaMarketingController extends TsaBaseController {
 
 		try {
 			MoreBetterGoods moreBetterGoods = new MoreBetterGoods();
+			
 			// 적용상품 으로 tb_goods 조회해서 temp 테이블 insert
 			morebetterService.insertMorebetterApplyGoodsTemp(moreBetter);
 			morebetterService.saveMoreBetterDetail(moreBetter);
 
 			moreBetterGoods.setTmtbSq(moreBetter.getTmtbSq());
 			moreBetterGoods.setRegNo(TsaSession.getInfo().getUserNo());
+			
 			// 다른 다다에서 사용중인 상품 조회
 			Collection<MoreBetterGoods> duplicateGoodsList = morebetterService.getMorebetterDuplicateList(moreBetterGoods);
+			
 			// SELECT -> 지금 내가 선택한 업체&브랜드 + 적용상품에 해당하는 상품 조회 MINUS TMTB_GOODS_TEMP 상품
 			// 조회 건수 있으면 -> 해당 상품코드 엑셀로 던져주기
 			if (duplicateGoodsList.size() > 0) {

+ 21 - 14
src/main/java/com/style24/persistence/mybatis/shop/TsaMorebetter.xml

@@ -644,26 +644,33 @@
 			SELECT T.GOODS_CD
 			     , T.GOODS_GB
 			FROM (
-				
-				SELECT GOODS_CD
-				     , 'G800_10' AS GOODS_GB
-				FROM   TB_GOODS
-				WHERE  1=1
-				<if test="multiSupplyCompCd != null and multiSupplyCompCd.length > 0">
-				AND    SUPPLY_COMP_CD IN
+				<if test="multiSupplyCompCd!= null and multiSupplyCompCd.length>0">
+					SELECT GOODS_CD
+					     , 'G800_10' AS GOODS_GB
+					FROM TB_GOODS
+					WHERE SUPPLY_COMP_CD IN
 					<foreach collection="multiSupplyCompCd" item="item" open="(" separator="," close=")">
-					       #{item}
+						#{item}
 					</foreach>
+					<if test="multiDefaultGoods != null and multiDefaultGoods.length>0">
+						AND GOODS_CD NOT IN ( ${applySql} )
+					</if>
+					UNION ALL
 				</if>
-				<if test="multiBrand != null and multiBrand.length > 0">
-				AND    BRAND_CD IN
+				<if test="multiBrand!= null and multiBrand.length>0">
+					SELECT	GOODS_CD
+					      , 'G800_10' AS GOODS_GB
+					FROM	TB_GOODS
+					WHERE 	BRAND_CD IN
 					<foreach collection="multiBrand" item="item" open="(" separator="," close=")">
-						   #{item}
+						#{item}
 					</foreach>
+					<if test="multiDefaultGoods != null and multiDefaultGoods.length>0">
+						AND GOODS_CD NOT IN (${applySql})
+					</if>
+					UNION ALL
 				</if>
-				<if test="multiDefaultGoods != null and multiDefaultGoods.length > 0">
-				AND    GOODS_CD IN ( ${applySql} )
-				</if>
+				${applyGbSql}
 			) T
 			WHERE	1=1
 			<if test="multiExceptGoods != null and multiExceptGoods.length >0">