Explorar el Código

Merge remote-tracking branch 'origin/xodud1202' into order

xodud1202 hace 5 años
padre
commit
817d37c96f

+ 28 - 0
src/main/java/com/style24/front/biz/dao/TsfCartDao.java

@@ -3,6 +3,7 @@ package com.style24.front.biz.dao;
 import com.style24.core.support.annotation.ShopDs;
 import com.style24.persistence.domain.Cart;
 import com.style24.persistence.domain.GoodsStock;
+import com.style24.persistence.domain.Order;
 
 import java.util.Collection;
 import java.util.List;
@@ -86,4 +87,31 @@ public interface TsfCartDao {
      * @since 2021. 02. 02
      */
     void insertCartDetailHst(Cart param);
+
+    /**
+     * 다다익선 기본 상품 조회
+     * @param Cart
+     * @return void
+     * @author xodud1202
+     * @since 2021. 02. 04
+     */
+    Collection<Order> selectMoreBetterBaseCartList(Order param);
+
+   /**
+    * 다다익선 적용 상품 SUM DATA 조회
+    * @param Cart
+    * @return void
+    * @author xodud1202
+    * @since 2021. 02. 04
+    */
+   Collection<Order> selectApplyMoreBetterCartInfoList(List<Integer> param);
+
+    /**
+     * 다다익선 SECTION 적용 조건 조회
+     * @param Cart
+     * @return void
+     * @author xodud1202
+     * @since 2021. 02. 04
+     */
+    Collection<Order> selectTmtbSectionValList(List<Integer> param);
 }

+ 104 - 2
src/main/java/com/style24/front/biz/service/TsfCartService.java

@@ -1,5 +1,7 @@
 package com.style24.front.biz.service;
 
+import com.gagaframework.web.parameter.GagaMap;
+import com.style24.core.biz.service.TscOrderService;
 import com.style24.core.support.env.TscConstants;
 import com.style24.core.support.session.TscSession;
 import com.style24.front.biz.dao.TsfCartDao;
@@ -8,12 +10,16 @@ import com.style24.front.support.security.session.TsfSession;
 import com.style24.persistence.domain.Cart;
 import com.style24.persistence.domain.Goods;
 import com.style24.persistence.domain.GoodsStock;
+import com.style24.persistence.domain.Order;
+
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
+import java.util.ArrayList;
 import java.util.Collection;
+import java.util.List;
 
 /**
  * 장바구니 Service
@@ -31,13 +37,15 @@ public class TsfCartService {
 	@Autowired
 	private TsfGoodsService goodsService;
 
+	@Autowired
+	private TscOrderService coreOrderService;
+
 	/**
 	 * 장바구니 저장
 	 * 단품 : goodsCd, optCd, optCd1, optCd2
 	 * 세트 : goodsCd,
 	 * @param cart
 	 */
-	@Transactional("shopTxnManager")
 	public String saveCartInfo(Collection<Cart> params) {
 		Cart cart = new Cart();
 		// JSESSION_ID 저장
@@ -83,7 +91,7 @@ public class TsfCartService {
 		}
 
 		// 장바구니 정보 수정
-		if(cart.getGoodsType().equals(TscConstants.GOODS_TYPE.SET.value())) {
+		if(cart.getGoodsType().equals(TscConstants.GoodsType.SET.value())) {
 			// 세트상품일 경우
 			saveSetTypeCartInfo(params);
 		} else {
@@ -208,4 +216,98 @@ public class TsfCartService {
 			cartDao.insertCartDetailHst(param);             // 장바구니 수정 이력 저장
 		}
 	}
+
+	public GagaMap selecCartGoodsList() {
+		GagaMap result = new GagaMap();
+
+		Order order = new Order();
+
+		// TODO 로그인 체크
+		order.setJsessionId("aaec62cc-5f91-47bb-ba65-ebc9a61385cf");
+		//order.setJsessionId(TscSession.getSessionId());
+		order.setCustNo(0);
+		order.setRegNo(0);
+		order.setUpdNo(0);
+
+		// 장바구니 상품 조회
+		Collection<Order> cartGoodsList = coreOrderService.getCartGoodsList(order);
+
+		// 즉시할인쿠폰 적용가 조회
+		List<Integer> cartSqArr2 = new ArrayList<Integer>();
+		for(Order temp : cartGoodsList) {
+			cartSqArr2.add(temp.getCartSq());
+		}
+		order.setCartSqArr(cartSqArr2.stream().mapToInt(Integer::intValue).toArray());
+
+		// 즉시 할인가 조회
+		Collection<Order> cpn1ApplyGoodsList = coreOrderService.getCpn1ApplyGoodsList(order);
+
+		// 즉시 할인가 적용 금액 // pcCurrPrice
+		for(Order goods : cartGoodsList) {
+			for(Order amt : cpn1ApplyGoodsList) {
+				if(goods.getGoodsCd().equals(amt.getGoodsCd())) {
+					goods.setPcCurrPrice(amt.getPcCurrPrice());		// 즉시할인금액
+					// TODO 모바일 금액 추가 필요
+				}
+			}
+		}
+
+		// 장바구니 내 적용 가능 다다익선 조회 (등록된 기본 상품 정보 조회)
+		Collection<Order> tmtbBaseList = cartDao.selectMoreBetterBaseCartList(order);
+
+		// 기본 상품이 등록된 장바구니의 다다익선 정보 지정
+		List<Integer> baseSq = new ArrayList<Integer>();
+		for(Order tmtbBase : tmtbBaseList) {
+			baseSq.add(tmtbBase.getTmtbSq());
+		}
+
+		// 기본 상품이 걸려있는 다다익선별 총합 데이터 조회
+		Collection<Order> tmtbSumDataList = cartDao.selectApplyMoreBetterCartInfoList(baseSq);
+
+		// 기본상품 목록에 총합 데이터 등록
+		for(Order baseInfo : tmtbBaseList) {
+			for(Order tmtbSumInfo : tmtbSumDataList) {
+				if(baseInfo.getTmtbSq() == tmtbSumInfo.getTmtbSq()) {
+					baseInfo.setTmtbSumAmt(tmtbSumInfo.getTmtbSumAmt());
+					baseInfo.setTmtbSumQty(tmtbSumInfo.getTmtbSumQty());
+				}
+			}
+		}
+
+		// 섹션 정보 조회 후 할인 여부 판단
+		Collection<Order> tmtbSectionList = cartDao.selectTmtbSectionValList(baseSq);
+		for(Order baseInfo : tmtbBaseList) {						// 기준 상품 및 다다익선 정보 조회
+			for(Order section : tmtbSectionList) {					// 다다익선 할인 조건 조회
+				if(baseInfo.getTmtbSq() == section.getTmtbSq()) {
+					if(TscConstants.ApplyGb.QTY.value().equals(baseInfo.getApplyGb())) {		// 수량 적용
+						if(section.getSectionVal() < baseInfo.getTmtbSumQty()) {				// 장바구니 수량 할인 기준 달성시
+							if(baseInfo.getApplyQtySectionVal() < section.getSectionVal()) {	// 기존 달성된 기준치보다 할인폭이 클 경우 기준할인 수정
+								baseInfo.setApplyQtySectionVal(section.getSectionVal());
+								baseInfo.setApplyQtySectionYn("Y");
+							}
+						} else {
+							baseInfo.setApplyQtySectionYn("N");
+						}
+					} else if (TscConstants.ApplyGb.AMT.value().equals(baseInfo.getApplyGb())) {
+						if(section.getSectionVal() < baseInfo.getTmtbSumQty()) {				// 장바구니 수량 할인 기준 달성시
+							if(baseInfo.getApplyAmtSectionVal() < section.getSectionVal()) {	// 기존 달성된 기준치보다 할인폭이 클 경우 기준할인 수정
+								baseInfo.setApplyAmtSectionVal(section.getSectionVal());
+								baseInfo.setApplyAmtSectionYn("Y");
+							}
+						} else {
+							baseInfo.setApplyAmtSectionYn("N");
+						}
+					}
+				}
+			}
+		}
+
+		// 다다익선 할인 된 상품 조회 (적용상품까지 모두 화면에 노출되어야함)
+
+
+
+		result.put("cartGoodsList", cartGoodsList);
+
+		return result;
+	}
 }

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

@@ -69,7 +69,7 @@ public class TsfGoodsService {
 	 * @since 2021. 01. 28
 	 */
 	public String getCheckStock(GoodsStock param) {
-		if(param.getGoodsType().equals(TscConstants.GOODS_TYPE.SET.value())) {		// 세트상품이면 구성 상품코드로 조회
+		if(param.getGoodsType().equals(TscConstants.GoodsType.SET.value())) {		// 세트상품이면 구성 상품코드로 조회
 			GoodsStock stockCheck = new GoodsStock();		// 재고 조회 결과
 			stockCheck.setGoodsCd(param.getItemCd());
 			stockCheck.setOptCd(param.getOptCd());

+ 7 - 2
src/main/java/com/style24/front/biz/web/TsfCartController.java

@@ -3,18 +3,23 @@ package com.style24.front.biz.web;
 import com.fasterxml.jackson.annotation.JsonProperty;
 import com.gagaframework.web.parameter.GagaMap;
 import com.gagaframework.web.rest.server.GagaResponse;
+import com.style24.core.biz.service.TscOrderService;
 import com.style24.core.support.message.TscMessageByLocale;
 import com.style24.core.support.session.TscSession;
 import com.style24.front.biz.service.TsfCartService;
 import com.style24.front.support.controller.TsfBaseController;
 import com.style24.persistence.domain.Cart;
+import com.style24.persistence.domain.Order;
+
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Controller;
 import org.springframework.web.bind.annotation.*;
 import org.springframework.web.servlet.ModelAndView;
 
+import java.util.ArrayList;
 import java.util.Collection;
+import java.util.List;
 
 /**
  * 장바구니 Controller
@@ -79,10 +84,10 @@ public class TsfCartController extends TsfBaseController {
 
 	@ResponseBody
 	@PostMapping("/goods/list")
-	public GagaMap freeGoodsPromotionSave(@RequestBody Collection<Cart> params) {
+	public GagaMap selecCartGoodsList() {
 		GagaMap result = new GagaMap();
 
-
+		result.putAll(cartService.selecCartGoodsList());
 
 		return result;
 	}

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

@@ -246,4 +246,113 @@
 		FROM   TB_CART_DETAIL CD
 		WHERE  CD.CART_DTL_SQ = #{cartDtlSq}
 	</insert>
+
+	<!-- 다다익선 기본 상품 조회 -->
+	<select id="selectMoreBetterBaseCartList" parameterType="Order" resultType="Order">
+		/* TsfCart.selectMoreBetterBaseCartList : 다다익선 기본 상품 조회 */
+		SELECT C.CART_SQ
+			 , T.TMTB_SQ
+			 , T.APPLY_GB
+		     , TAG.GOODS_CD
+			 , T.TMTB_NM
+		FROM   TB_CART C
+		INNER  JOIN TB_TMTB_APPLY_GOODS TAG
+		ON	   C.GOODS_CD = TAG.GOODS_CD
+		AND	   TAG.DEL_YN = 'N'
+		INNER  JOIN TB_TMTB T
+		ON	   T.TMTB_SQ = TAG.TMTB_SQ
+		AND	   T.TMTB_STAT = 'G232_11' /*진행*/
+		INNER  JOIN TB_GOODS G
+		ON	   C.GOODS_CD = G.GOODS_CD
+		LEFT   OUTER JOIN TB_TMTB_APPLY_GOODS NOT_APPLY
+		ON     T.TMTB_SQ = NOT_APPLY.TMTB_SQ
+		AND    C.GOODS_CD = NOT_APPLY.GOODS_CD
+		AND    NOT_APPLY.GOODS_GB = 'G800_30'   /* 제외상품 */
+		WHERE  1=1
+		AND    NOT_APPLY.TMTB_SQ IS NULL
+		AND    T.TMTB_ST_DT <![CDATA[<=]]> NOW()
+		AND    T.TMTB_ED_DT >= NOW()
+		AND    C.JSESSION_ID = 'aaec62cc-5f91-47bb-ba65-ebc9a61385cf'
+		AND    C.CART_GB = 'G026_BC'
+		AND    G.GOODS_STAT = 'G008_90'
+		AND    G.SELF_MALL_YN = 'Y'
+	</select>
+
+	<!-- 다다익선 적용 상품 SUM DATA 조회 -->
+	<select id="selectApplyMoreBetterCartInfoList" parameterType="int" resultType="Order">
+		/* TsfCart.selectApplyMoreBetterCartInfoList : 다다익선 적용 상품 SUM DATA 조회 */
+		SELECT TAG.TMTB_SQ
+			 , SUM(G.CURR_PRICE * C.GOODS_QTY) AS TMTB_SUM_AMT
+			 , SUM(C.GOODS_QTY) AS TMTB_SUM_QTY
+		FROM   TB_TMTB_APPLY_GOODS TAG
+		INNER  JOIN TB_CART C
+		ON     TAG.GOODS_CD = C.GOODS_CD
+		INNER  JOIN TB_GOODS G
+		ON     C.GOODS_CD = G.GOODS_CD
+		LEFT   OUTER JOIN TB_TMTB_APPLY_GOODS NOT_APPLY
+		ON     TAG.GOODS_CD = NOT_APPLY.GOODS_CD
+		AND    NOT_APPLY.GOODS_GB = 'G800_30'   /* 제외상품 */
+		WHERE  1=1
+		AND    NOT_APPLY.TMTB_SQ IS NULL
+		AND    TAG.DEL_YN = 'N'
+		AND    C.JSESSION_ID = 'aaec62cc-5f91-47bb-ba65-ebc9a61385cf'
+		AND    C.CART_GB = 'G026_BC'
+		AND    G.GOODS_STAT = 'G008_90'
+		AND    G.SELF_MALL_YN = 'Y'
+		<if test="list != null and list.size() > 0">
+		AND    TAG.TMTB_SQ IN
+			<foreach collection="list" item="item" index="index"  open="(" close=")" separator=",">
+				#{item}
+			</foreach>
+		</if>
+		GROUP BY TAG.TMTB_SQ
+	</select>
+
+	<!-- 다다익선 적용 상품 조회 -->
+	<select id="selectApplyMoreBetterCartInfoList" parameterType="int" resultType="Order">
+		/* TsfCart.selectApplyMoreBetterCartInfoList : 다다익선 적용 상품 SUM DATA 조회 */
+		SELECT TAG.TMTB_SQ
+		, SUM(G.CURR_PRICE * C.GOODS_QTY) AS TMTB_SUM_AMT
+		, SUM(C.GOODS_QTY) AS TMTB_SUM_QTY
+		FROM   TB_TMTB_APPLY_GOODS TAG
+		INNER  JOIN TB_CART C
+		ON     TAG.GOODS_CD = C.GOODS_CD
+		INNER  JOIN TB_GOODS G
+		ON     C.GOODS_CD = G.GOODS_CD
+		LEFT   OUTER JOIN TB_TMTB_APPLY_GOODS NOT_APPLY
+		ON     TAG.GOODS_CD = NOT_APPLY.GOODS_CD
+		AND    NOT_APPLY.GOODS_GB = 'G800_30'   /* 제외상품 */
+		WHERE  1=1
+		AND    NOT_APPLY.TMTB_SQ IS NULL
+		AND    TAG.DEL_YN = 'N'
+		AND    C.JSESSION_ID = 'aaec62cc-5f91-47bb-ba65-ebc9a61385cf'
+		AND    C.CART_GB = 'G026_BC'
+		AND    G.GOODS_STAT = 'G008_90'
+		AND    G.SELF_MALL_YN = 'Y'
+		<if test="list != null and list.size() > 0">
+			AND    TAG.TMTB_SQ IN
+			<foreach collection="list" item="item" index="index"  open="(" close=")" separator=",">
+				#{item}
+			</foreach>
+		</if>
+		GROUP BY TAG.TMTB_SQ
+	</select>
+
+	<!-- 다다익선 SECTION 적용 조건 조회 -->
+	<select id="selectTmtbSectionValList" parameterType="int" resultType="Order">
+		/* TsfCart.selectTmtbSectionValList : 다다익선 SECTION 적용 조건 조회 */
+		SELECT TC.SECTION_GB
+			 , TC.SECTION_VAL
+			 , TC.TMTB_SQ
+		FROM   TB_TMTB_SECTION TC
+		WHERE  1=1
+		AND    TC.DEL_YN = 'N'
+		<if test="list != null and list.size() > 0">
+		AND    TC.TMTB_SQ IN
+			<foreach collection="list" item="item" index="index"  open="(" close=")" separator=",">
+				#{item}
+			</foreach>
+		</if>
+		ORDER  BY TMTB_SQ, SECTION_VAL
+	</select>
 </mapper>

+ 3 - 3
src/main/webapp/WEB-INF/views/web/cart/cartListFormWeb.html

@@ -1205,16 +1205,16 @@
 
         $(document).ready(function() {
             // 장바구니 상품 정보 select
-
+            getCartList();
         });
 
-        function selectCartList() {
+        function getCartList() {
             $.ajax( {
                 type: "POST",
                 url : '/cart/goods/list',
                 dataType : 'json',
                 success : function(result) {
-                    alert(1);
+
                 }
             });
         }