Browse Source

1. 마이페이지 임시 커밋

card007 5 năm trước cách đây
mục cha
commit
df183041bf

+ 9 - 0
src/main/java/com/style24/core/biz/dao/TscOrderDao.java

@@ -395,6 +395,15 @@ public interface TscOrderDao {
 	 * @since 2021. 02. 02
 	 */	
 	int getGiftcardInfo(Order order);
+
+	/**
+	 * 쿠폰정보 조회
+	 *
+	 * @param Order
+	 * @author card007
+	 * @since 2021. 02. 09
+	 */
+	int getCouponInfo(Order order);
 	
 	/**
 	 * 상품쿠폰, 장바구니쿠폰 적용 상품 조회

+ 69 - 12
src/main/java/com/style24/core/biz/service/TscOrderService.java

@@ -624,6 +624,17 @@ public class TscOrderService {
 	public int getGiftcardInfo(Order order) {
 		return orderDao.getGiftcardInfo(order);
 	}
+
+	/**
+	 * 쿠폰정보 조회
+	 *
+	 * @param Order
+	 * @author card007
+	 * @since 2021. 02. 09
+	 */
+	public int getCouponInfo(Order order) {
+		return orderDao.getCouponInfo(order);
+	}
 	
 	/**
 	 * 상품쿠폰, 장바구니쿠폰 적용 상품 조회
@@ -754,26 +765,31 @@ public class TscOrderService {
 		String selfGoodsYn = "";
 		String shipCompNm = "";
 		String invoiceNo = "";
+		String giftPackYn = "";
 		int reviewSq = 0;
 		int index = 0;
 		int ordDtlStatCnt = 0;
+		int rowspan = 0;
 
 		for (Order tmpOrder : orderDao.getOrderListForMypage(order)) {
+			// 주문번호, 배송구분(총알배송, 일반배송, 업체직배송), 배송정책 변경
 			if (ordNo != tmpOrder.getOrdNo() || !selfGoodsYn.equals(tmpOrder.getSelfGoodsYn()) || ("N".equals(tmpOrder.getSelfGoodsYn()) && !delvFeeCd.equals(tmpOrder.getDelvFeeCd())) || !shotDelvYn.equals(tmpOrder.getShotDelvYn())) {
+				// 데이터 설정
 				if (index > 0) {
 					GagaMap map = new GagaMap();
-					map.set("ordDt", ordDt);
-					map.set("shotDelvYn", shotDelvYn);
-					map.set("selfGoodsYn", selfGoodsYn);
-					map.set("ordDtlStat", ordDtlStat);
-					map.set("shipCompNm", shipCompNm);
-					map.set("invoiceNo", invoiceNo);
-					map.set("reviewSq", reviewSq);
-					orderList.get(orderList.size() - 1).setOrdDtlStatBanner("Y");
-					map.set("orderList", orderList);
+					map.set("ordDt", ordDt);					// 주문일시
+					map.set("shotDelvYn", shotDelvYn);			// 총알배송여부
+					map.set("selfGoodsYn", selfGoodsYn);		// 자사여부
+					map.set("ordDtlStat", ordDtlStat);			// 주문상태코드
+					map.set("shipCompNm", shipCompNm);			// 배송업체명
+					map.set("invoiceNo", invoiceNo);			// 송장번호
+					map.set("giftPackYn", giftPackYn);			// 선물하기여부
+					map.set("reviewSq", reviewSq);				// 리뷰일련번호
+					map.set("orderList", setOrderListParameter(orderList, rowspan, ordDtlStatCnt, "Y"));			// 주문내역
 					mapList.add(map);
 				}
 				
+				// 데이터 설정 후 초기화 진행
 				ordNo = tmpOrder.getOrdNo();
 				ordDt = tmpOrder.getOrdDt();
 				delvFeeCd = tmpOrder.getDelvFeeCd();
@@ -783,18 +799,29 @@ public class TscOrderService {
 				shipCompNm = tmpOrder.getShipCompNm();
 				invoiceNo = tmpOrder.getInvoiceNo();
 				reviewSq = tmpOrder.getReviewSq();
+				giftPackYn = tmpOrder.getGiftPackYn();
 				orderList = new ArrayList<>();
 				ordDtlStatCnt = 0;
+				rowspan = 0;
 			} else if (index > 0 && !ordDtlStat.equals(tmpOrder.getOrdDtlStat())) {
-				orderList.get(ordDtlStatCnt).setOrdDtlStatBanner("Y");
+				// 주문내역 데이터 추가
+				orderList = setOrderListParameter(orderList, rowspan, ordDtlStatCnt, "N");
+				
+				// 상태 별 배너 설정 후 초기화 진행
+				ordDtlStat = tmpOrder.getOrdDtlStat();
+				rowspan = 0;
 			}
 
+			// 주문내역 설정
 			orderList.add(tmpOrder);
 
+			// 인덱스 처리
 			index++;
 			ordDtlStatCnt++;
+			rowspan++;
 		}
 
+		// 마지막 데이터 설정
 		GagaMap map = new GagaMap();
 		map.set("ordDt", ordDt);
 		map.set("shotDelvYn", shotDelvYn);
@@ -802,14 +829,44 @@ public class TscOrderService {
 		map.set("ordDtlStat", ordDtlStat);
 		map.set("shipCompNm", shipCompNm);
 		map.set("invoiceNo", invoiceNo);
+		map.set("giftPackYn", giftPackYn);
 		map.set("reviewSq", reviewSq);
-		orderList.get(orderList.size() - 1).setOrdDtlStatBanner("Y");
-		map.set("orderList", orderList);
+		map.set("orderList", setOrderListParameter(orderList, rowspan, ordDtlStatCnt, "Y"));
 		mapList.add(map);
 
 		return mapList; 
 	}
 
+	/**
+	 * 마이페이지 주문내역 데이터 추가
+	 *
+	 * @param List<Order>
+	 * @return List<Order>
+	 * @author card007
+	 * @since 2021. 02. 08
+	 */
+	private List<Order> setOrderListParameter(List<Order> orderList, int rowspan, int ordDtlStatCnt, String setLastBanner) {
+		// rowspan 설정
+		for (int i = 0;i <= rowspan;i++) {
+			if (i == rowspan) {
+				orderList.get(ordDtlStatCnt - rowspan).setRowspan(rowspan);
+			} else if (rowspan == 1){
+				orderList.get(ordDtlStatCnt - rowspan).setRowspan(1);
+			} else {
+				orderList.get(ordDtlStatCnt - rowspan).setRowspan(0);
+			}
+		}
+		
+		// 주문상세상태값 별 배너 설정
+		if ("Y".equals(setLastBanner)) {
+			orderList.get(orderList.size() - 1).setOrdDtlStatBanner("Y");
+		} else {
+			orderList.get(ordDtlStatCnt - 1).setOrdDtlStatBanner("Y");
+		}
+		
+		return orderList;
+	}
+
 	/**
 	 * 마이페이지 주문상태 별 주문수량 조회
 	 *

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

@@ -444,4 +444,9 @@ public class Order extends TscBaseDomain {
 	private String selfGoodsYn;
 	private String brandNm;
 	private String ordDtlStatBanner;
+	private String expiredSoon;
+	private int purchaseConfirmDay;
+	private String giftLimitDt;
+	private int giftLimitDay;
+	private int rowspan;
 }

+ 29 - 7
src/main/java/com/style24/persistence/mybatis/shop/TscOrder.xml

@@ -1723,8 +1723,7 @@
 		  FROM TB_CUST_POINT CP
 		 WHERE 1=1
 		   AND CP.CUST_NO = #{custNo}
-		   AND CP.EXP_BE_DT <![CDATA[<]]> CURRENT_TIMESTAMP
-		   AND CP.EXP_CMP_DT > CURRENT_TIMESTAMP
+		   AND CP.EXP_BE_DT <![CDATA[>]]> NOW()
 	</select>
 	
 	<!-- 상품권정보 조회 -->
@@ -1734,8 +1733,19 @@
 		  FROM TB_CUST_GIFTCARD CG
 		 WHERE 1=1
 		   AND CG.CUST_NO = #{custNo}
-		   AND CG.USE_ST_DATE <![CDATA[<]]> CURRENT_TIMESTAMP
-		   AND CG.USE_EXP_DATE > CURRENT_TIMESTAMP
+		   AND NOW() BETWEEN DATE_FORMAT(CG.USE_ST_DATE, '%Y%m%d') AND DATE_FORMAT(CG.USE_EXP_DATE, '%Y%m%d')
+	</select>
+	
+	<!-- 쿠폰정보 조회 -->
+	<select id="getCouponInfo" parameterType="Order" resultType="int">
+		/* order.getCouponInfo */
+		SELECT COUNT(CUST_CPN_SQ) AS CNT
+		  FROM TB_CUST_COUPON
+		 WHERE CUST_NO = #{custNo}
+		   AND NOW() BETWEEN AVAIL_STDT AND AVAIL_EDDT
+		<if test='expiredSoon == "Y"'>
+		   AND TIMESTAMPDIFF(SECOND, CURRENT_DATE, AVAIL_EDDT) BETWEEN 0 AND 604800
+		</if>
 	</select>
 
 	<!-- 총알배송 가능시간 조회 -->
@@ -1887,9 +1897,15 @@
 		/* TscOrder.getOrderListForMypage */
 		SELECT O.ORD_NO
 			 , DATE_FORMAT(O.ORD_DT, '%Y.%m.%d') AS ORD_DT
+			 , CASE OD.GIFT_PACK_YN WHEN 'Y' THEN DATE_FORMAT(O.ORD_DT + INTERVAL 3 DAY, '%Y.%m.%d')
+				END															AS GIFT_LIMIT_DT
+			 , CASE OD.GIFT_PACK_YN WHEN 'Y' THEN TIMESTAMPDIFF(DAY, NOW(), O.ORD_DT + INTERVAL 3 DAY)
+				END															AS GIFT_LIMIT_DAY
+			 , DATE_FORMAT(OD.DELV_EDDT, '%m/%d')							AS DELV_EDDT
 			 , OD.ORD_DTL_NO
 			 , OD.ORD_EXCH_GB
 			 , OD.GOODS_CD
+			 , G.GOODS_NM
 			 , ODI.OPT_CD
 			 , ODI.OPT_CD1
 			 , ODI.OPT_CD2
@@ -1898,18 +1914,23 @@
 			 , OD.ORD_AMT
 			 , OD.SAVE_PNT_AMT
 			 , OD.SHIP_COMP_CD
+		     , OD.GIFT_PACK_YN
+			 , (SELECT SHIP_COMP_NM
+				  FROM TB_SHIP_COMPANY Z
+				 WHERE Z.SHIP_COMP_CD = OD.SHIP_COMP_CD)					AS SHIP_COMP_NM
 			 , OD.INVOICE_NO
 			 , OD.SUPPLY_COMP_CD
 			 , OD.DELV_FEE_CD
 			 , OD.SHOT_DELV_YN
 			 , G.SELF_GOODS_YN
-			 , CONCAT(B.BRAND_ENM, ' ', B.BRAND_KNM) AS BRAND_NM
-			 , FN_GET_CODE_NM('G013', OD.ORD_DTL_STAT) AS ORD_DTL_STAT_NM
+			 , CONCAT(B.BRAND_ENM, ' ', B.BRAND_KNM)						AS BRAND_NM
+			 , FN_GET_CODE_NM('G013', OD.ORD_DTL_STAT)						AS ORD_DTL_STAT_NM
 			 , R.REVIEW_SQ
+			 , TIMESTAMPDIFF(DAY, NOW(), OD.DELV_EDDT + INTERVAL 2 WEEK)	AS PURCHASE_CONFIRM_DAY
 		  FROM TB_ORDER O
 		 INNER JOIN TB_ORDER_DETAIL OD
 		    ON O.ORD_NO = OD.ORD_NO
-		   AND OD.ORD_DTL_STAT <![CDATA[<>]]> 'G013_97'
+		   AND OD.ORD_DTL_STAT NOT IN ('G013_11', 'G013_25', 'G013_97')
 		 INNER JOIN TB_ORDER_DETAIL_ITEM ODI
 		    ON OD.ORD_NO = ODI.ORD_NO
 		   AND OD.ORD_DTL_NO = ODI.ORD_DTL_NO
@@ -1944,6 +1965,7 @@
 				, OD.ORD_NO DESC
 				, G.SELF_GOODS_YN DESC
 				, OD.SHOT_DELV_YN DESC
+				, OD.ORD_DTL_STAT
 	</select>
 	
 	<!-- 마이페이지 주문상태 별 주문수량 조회 -->