Преглед на файлове

이태영 - 20210208 장바구니 화면 생성 중

xodud1202 преди 5 години
родител
ревизия
1b1525c059

+ 8 - 0
src/main/java/com/style24/core/biz/dao/TscCouponDao.java

@@ -351,4 +351,12 @@ public interface TscCouponDao {
      */
     Collection<Coupon> getCouponRetrieveList(Coupon coupon);
 
+    /**
+     * 랜덤 쿠폰 지급
+     * @param coupon - 쿠폰 정보
+     * @return
+     * @author gagamel
+     * @since 2021. 1. 8
+     */
+    void updateGiveRandomCoupon(CustCoupon coupon);
 }

+ 9 - 0
src/main/java/com/style24/core/biz/service/TscCouponService.java

@@ -486,4 +486,13 @@ public class TscCouponService {
         couponDao.saveCouponCustPub(coupon);
     }
 
+    /**
+     * 랜덤 쿠폰 지급
+     * @param coupon - 쿠폰정보
+     * @author jsshin
+     * @since 2021. 1. 29
+     */
+    public void updateGiveRandomCoupon(CustCoupon coupon) {
+        couponDao.updateGiveRandomCoupon(coupon);
+    }
 }

+ 10 - 0
src/main/java/com/style24/core/biz/service/TscOrderService.java

@@ -1004,4 +1004,14 @@ public class TscOrderService {
 	 */
 	public Order getOrderDeliveryAddrInfo(Order order) { return orderDao.getOrderDeliveryAddrInfo(order); }
 
+	/**
+	 * 장바구니 쿠폰 적용 상품 리스트 조회
+	 * @param Order
+	 * @return Order
+	 * @author xodud1202
+	 * @since 2021. 02. 17
+	 */
+	public Collection<Order> getSerialCpnApplyGoodsList(Order order) {
+		return orderDao.getGoodsCartCpnApplyGoodsList(order);
+	}
 }

+ 2 - 1
src/main/java/com/style24/persistence/domain/CustCoupon.java

@@ -11,9 +11,10 @@ import lombok.Data;
 @SuppressWarnings("serial")
 @Data
 public class CustCoupon extends TscBaseDomain {
+    private int     cpnId;                  // 쿠폰아이디
+    private int     rdCpnId;                // 랜덤쿠폰번호
     private Integer custCpnSq;              // 고객쿠폰일련번호
     private Integer custNo;                 // 고객번호
-    private int     cpnId;                  // 쿠폰아이디
     private String  availStdt;              // 유효시작일시
     private String  availEddt;              // 유효종료일시
     private String  pubReason;              // 발행사유(공통코드G250)

+ 2 - 0
src/main/java/com/style24/persistence/domain/Order.java

@@ -444,6 +444,8 @@ public class Order extends TscBaseDomain {
 	private int qtySumCurrPrice;	// 
 	private int totDelvFee;			// 배송비 총합
 	private int totCartCnt;			// 장바구니 상품 수량
+	private int maxDcAmt;			// 쿠폰 최대 할인 금액
+	private int buyLimitAmt;		// 쿠폰 적용 최소 구매 금액
 
 	// 다다익선
 	@JsonFormat(with = JsonFormat.Feature.ACCEPT_SINGLE_VALUE_AS_ARRAY)

+ 9 - 0
src/main/java/com/style24/persistence/mybatis/shop/TscCoupon.xml

@@ -949,4 +949,13 @@
         </if>
     </select>
 
+    <!-- 랜덤쿠폰 지급 -->
+    <update id="updateGiveRandomCoupon" parameterType="CustCoupon">
+        /* TscCoupon.updateGiveRandomCoupon : 랜덤쿠폰 지급 */
+        UPDATE TB_RANDOM_COUPON SET
+              CUST_NO = #{custNo}
+            , UPD_NO = #{updNo}
+            , UPD_DT = NOW()
+        WHERE RD_CPN_ID = #{rdCpnId}
+    </update>
 </mapper>

+ 49 - 11
src/main/java/com/style24/persistence/mybatis/shop/TscOrder.xml

@@ -1846,12 +1846,24 @@
 		WITH GOODS_DATA AS (
 			SELECT CA.GOODS_CD
 			     , G.SUPPLY_COMP_CD
-			     , G.BRAND_CD 
+			     , G.BRAND_CD
+				 , CA.CART_SQ
+				 , (FN_GET_APPLY_CPN1_PRICE(CA.GOODS_CD, #{frontGb}) + IFNULL(OP.ADD_PRICE, 0)) * CA.GOODS_QTY AS CURR_PRICE
 			FROM   TB_CART CA
 			INNER  JOIN TB_CART_DETAIL CD
 			ON     CA.CART_SQ = CD.CART_SQ
 			INNER  JOIN TB_GOODS G
 			ON     CA.GOODS_CD = G.GOODS_CD
+			LEFT   OUTER JOIN ( SELECT OP.ADD_PRICE
+									 , C.CART_SQ
+								FROM   TB_CART C
+								INNER  JOIN TB_CART_DETAIL CD
+								ON     C.CART_SQ = CD.CART_SQ
+								INNER  JOIN TB_OPTION OP
+								ON     C.GOODS_CD = OP.GOODS_CD
+								AND    CD.OPT_CD = OP.OPT_CD
+				   ) OP
+			ON     CA.CART_SQ = OP.CART_SQ
 			WHERE  1=1
 			<if test="custNo == 0">
 			AND    CA.CUST_NO = 0
@@ -1866,27 +1878,35 @@
 			</foreach>
 		)
 		SELECT Z.GOODS_CD
+		     , Z.CART_SQ
+		     , Z.CURR_PRICE
 		     , CP.CPN_ID
 		     , CP.CPN_NM
 		     , CP.CPN_TYPE
 		     , CP.DC_WAY
-		     , CP.DC_PVAL
-		     , CP.DC_MVAL
-		     , CP.DC_AVAL
+		     , CASE WHEN #{frontGb} = 'P' THEN CP.DC_PVAL
+		            WHEN #{frontGb} = 'M' THEN CP.DC_MVAL
+		            ELSE CP.DC_AVAL END AS DC_VAL
 		     , CP.MAX_DC_AMT
 		     , CP.BUY_LIMIT_AMT
 		FROM   TB_COUPON CP
-		INNER  JOIN TB_COUPON_CUST_GBN CGB
-		ON     CP.CPN_ID = CGB.CPN_ID
-		AND    CGB.USABLE_CUST_GB IN ('G100_10')
 		INNER  JOIN TB_COUPON_CUST_GRADE CGR
 		ON     CP.CPN_ID = CGR.CPN_ID
-		AND    CGR.USABLE_CUST_GRADE IN ('G110_40', 'G110_50')
+		INNER  JOIN TB_CUST_COUPON CCP
+		ON     CP.CPN_ID = CCP.CPN_ID
+		INNER  JOIN TB_CUSTOMER CT
+		ON     CT.CUST_NO = CT.CUST_NO
+		AND    CGR.USABLE_CUST_GRADE = CT.CUST_GRADE
+		INNER  JOIN TB_COUPON_CUST_GBN CGB
+		ON     CP.CPN_ID = CGB.CPN_ID
+		AND    CGB.USABLE_CUST_GB = CT.CUST_GB
 		INNER  JOIN (
 				SELECT X.*
 				FROM (
 					SELECT CR.CPN_ID
 					     , GD.GOODS_CD
+						 , GD.CART_SQ
+						 , GD.CURR_PRICE
 					FROM   TB_COUPON_REFVAL CR
 					INNER  JOIN GOODS_DATA GD
 					ON     CR.REF_VAL = GD.GOODS_CD
@@ -1896,6 +1916,8 @@
 					UNION
 					SELECT CR.CPN_ID
 					     , GD.GOODS_CD
+						 , GD.CART_SQ
+						 , GD.CURR_PRICE
 					FROM   (
 						SELECT C4.LEAF_CATE_NO
 						     , CASE WHEN X = 1 THEN 'CATE1_NO' 
@@ -1941,6 +1963,8 @@
 					UNION
 					SELECT CR1.CPN_ID
 					     , GD.GOODS_CD
+						 , GD.CART_SQ
+						 , GD.CURR_PRICE
 					FROM   GOODS_DATA GD
 					INNER  JOIN TB_COUPON_REFVAL CR1 
 					ON     GD.SUPPLY_COMP_CD = CR1.REF_VAL
@@ -1958,13 +1982,27 @@
 				AND   CR.DEL_YN = 'N'
 		) Z
 		ON     Z.CPN_ID = CP.CPN_ID
-		INNER  JOIN TB_CUST_COUPON CCP
-		ON     CP.CPN_ID = CCP.CPN_ID
 		WHERE  1=1
-		AND    CP.SITE_CD = '10'
+		<if test="cpnId != null and cpnId != 0">
+		AND    CP.CPN_ID = #{cpnId}
+		</if>
+		AND    CP.SITE_CD = 'G000_10'
+		AND    CP.CPN_STAT = 'G232_11'				 -- 진행쿠폰
 		AND    CP.CPN_TYPE IN ('G230_11', 'G230_20') -- 상품쿠폰, 장바구니쿠폰
 		AND    CP.AVAIL_STDT <![CDATA[<]]> CURRENT_TIMESTAMP 
 		AND    CP.AVAIL_EDDT > CURRENT_TIMESTAMP
+		GROUP  BY Z.GOODS_CD
+		     , Z.CART_SQ
+		     , Z.CURR_PRICE
+			 , CP.CPN_ID
+			 , CP.CPN_NM
+			 , CP.CPN_TYPE
+			 , CP.DC_WAY
+			 , CP.DC_PVAL
+			 , CP.DC_MVAL
+			 , CP.DC_AVAL
+			 , CP.MAX_DC_AMT
+			 , CP.BUY_LIMIT_AMT
 		ORDER  BY Z.GOODS_CD
 		        , CP.CPN_ID
 	</select>