|
|
@@ -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++;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
|