Bladeren bron

이태영 - 20210702 네이버페이 주문형 개발 중

xodud lee 4 jaren geleden
bovenliggende
commit
66e4db0a0c

+ 70 - 26
src/main/java/com/style24/front/biz/service/TsfGoodsService.java

@@ -571,6 +571,7 @@ public class TsfGoodsService {
 	 * @date 2021. 3. 8
 	 */
 	public Collection<Goods> getTmtbGoodsList(Goods goods) {
+		Integer[] arrTmtbSq = goods.getArrTmtbSq();		// 장바구니 다다익선 추천상품 적용을 위해 백업.
 		goods.setArrTmtbSq(null);		// 배열 사용하여 진행시에 IN절에 걸려 query timeout 걸려 null처리
 		Collection<Goods> result = new ArrayList<Goods>();
 
@@ -586,43 +587,86 @@ public class TsfGoodsService {
 			tCount = 20;
 		}
 
-		for (Tmtb tmtb : tmtbSqList) {
-
-			goods.setTmtbSq(tmtb.getTmtbSq());
-			Collection<Goods> tmtbGoodsList = goodsDao.getTmtbGoodsList(goods);
-			if (tmtbGoodsList == null || tmtbGoodsList.isEmpty()) {
-				continue;
-			}
+		// 상품상세 다다익선 조회 쿼리
+		if(arrTmtbSq == null || arrTmtbSq.length < 1) {
+			for (Tmtb tmtb : tmtbSqList) {
+				goods.setTmtbSq(tmtb.getTmtbSq());
+				Collection<Goods> tmtbGoodsList = goodsDao.getTmtbGoodsList(goods);
+				if (tmtbGoodsList == null || tmtbGoodsList.isEmpty()) {
+					continue;
+				}
 
-			if (tCount <= 0) { //잔여수가 없으면 종료
-				break;
-			}
+				if (tCount <= 0) { //잔여수가 없으면 종료
+					break;
+				}
 
-			//다다익선 조회 상품 수
-			rCount = tmtbGoodsList.size();
+				//다다익선 조회 상품 수
+				rCount = tmtbGoodsList.size();
 
-			if (tCount > rCount) { 	//조회수보다 잔여수가 클경우
-				result.addAll(tmtbGoodsList);
-				tCount = tCount - rCount; //남은 잔여수 계산
-			} else {
-				if (tCount == rCount) {	//잔여 수량과 조회수가 같은면 종료
+				if (tCount > rCount) { 	//조회수보다 잔여수가 클경우
 					result.addAll(tmtbGoodsList);
-					break;
+					tCount = tCount - rCount; //남은 잔여수 계산
 				} else {
+					if (tCount == rCount) {	//잔여 수량과 조회수가 같은면 종료
+						result.addAll(tmtbGoodsList);
+						break;
+					} else {
 
-					for (int i = 0; i < tCount; i++) {  //잔여수량만큼 loop
-						int tmtbGoodsListCnt = 0;
-						for (Goods tmtbGoods : tmtbGoodsList) {
-							if (i == tmtbGoodsListCnt) {
-								result.add(tmtbGoods);
-								tCount--;
-								break;
+						for (int i = 0; i < tCount; i++) {  //잔여수량만큼 loop
+							int tmtbGoodsListCnt = 0;
+							for (Goods tmtbGoods : tmtbGoodsList) {
+								if (i == tmtbGoodsListCnt) {
+									result.add(tmtbGoods);
+									tCount--;
+									break;
+								}
+								tmtbGoodsListCnt++;
 							}
-							tmtbGoodsListCnt++;
 						}
 					}
+
 				}
+			}
+		} else {		// 장바구니 다다익선 팝업 조회 쿼리
+			for (int tmtb : arrTmtbSq) {
+				if(tmtb > 0) {
+					goods.setTmtbSq(tmtb);
+					Collection<Goods> tmtbGoodsList = goodsDao.getTmtbGoodsList(goods);
+					if (tmtbGoodsList == null || tmtbGoodsList.isEmpty()) {
+						continue;
+					}
+
+					if (tCount <= 0) { //잔여수가 없으면 종료
+						break;
+					}
+
+					//다다익선 조회 상품 수
+					rCount = tmtbGoodsList.size();
 
+					if (tCount > rCount) { 	//조회수보다 잔여수가 클경우
+						result.addAll(tmtbGoodsList);
+						tCount = tCount - rCount; //남은 잔여수 계산
+					} else {
+						if (tCount == rCount) {	//잔여 수량과 조회수가 같은면 종료
+							result.addAll(tmtbGoodsList);
+							break;
+						} else {
+
+							for (int i = 0; i < tCount; i++) {  //잔여수량만큼 loop
+								int tmtbGoodsListCnt = 0;
+								for (Goods tmtbGoods : tmtbGoodsList) {
+									if (i == tmtbGoodsListCnt) {
+										result.add(tmtbGoods);
+										tCount--;
+										break;
+									}
+									tmtbGoodsListCnt++;
+								}
+							}
+						}
+
+					}
+				}
 			}
 		}
 

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

@@ -976,7 +976,7 @@
 		LEFT   OUTER JOIN TB_COLOR C
 		ON     A.CART_OPT_CD1 = C.COLOR_CD
 		AND    C.USE_YN = 'Y'
-		ORDER  BY NULLIF(C.COLOR_KNM, A.CART_OPT_CD1)
+		ORDER  BY NULLIF(C.COLOR_KNM, A.OPT_CD1)
 	</select>
 
 	<!-- 장바구니 상품 사이즈 정보 조회 -->