Prechádzať zdrojové kódy

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

xodud1202 5 rokov pred
rodič
commit
9f583afd6c

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

@@ -427,8 +427,29 @@ public interface TscOrderDao {
 	 * 마이페이지 주문 정보 조회
 	 *
 	 * @param Order
+	 * @return Collection<Order>
 	 * @author card007
 	 * @since 2021. 02. 04
 	 */
 	Collection<Order> getOrderListForMypage(Order order);
+
+	/**
+	 * 마이페이지 주문상태 별 주문수량 조회
+	 *
+	 * @param Order
+	 * @return int
+	 * @author card007
+	 * @since 2021. 02. 08
+	 */
+	int getOrderStatCount(Order order);
+
+	/**
+	 * 마이페이지 주문변경상태 별 주문수량 조회
+	 *
+	 * @param Order
+	 * @return int
+	 * @author card007
+	 * @since 2021. 02. 08
+	 */
+	int getOrderChangeStatCount(Order order);
 }

+ 81 - 1
src/main/java/com/style24/core/biz/service/TscOrderService.java

@@ -12,6 +12,7 @@ import org.springframework.transaction.annotation.Transactional;
 import com.fasterxml.jackson.databind.ObjectMapper;
 import com.gagaframework.excel.env.GagaExcelConstants;
 import com.gagaframework.excel.xssf.GagaExcelResultHandler;
+import com.gagaframework.web.parameter.GagaMap;
 import com.style24.core.biz.dao.TscOrderDao;
 import com.style24.core.support.message.TscMessageByLocale;
 import com.style24.persistence.domain.Order;
@@ -741,6 +742,85 @@ public class TscOrderService {
 	 * @author card007
 	 * @since 2021. 02. 04
 	 */
-	public Collection<Order> getOrderListForMypage(Order order) { return orderDao.getOrderListForMypage(order); }
+	public Collection<GagaMap> getOrderListForMypage(Order order) {
+		Collection<GagaMap> mapList = new ArrayList<>();
+		Collection<Order> orderList = new ArrayList<>();
+		int ordNo = 0;
+		String ordDt = "";
+		String delvFeeCd = "";
+		String ordDtlStat = "";
+		String shotDelvYn = "";
+		String selfGoodsYn = "";
+		String shipCompNm = "";
+		String invoiceNo = "";
+		int reviewSq = 0;
+		int index = 0;
+
+		for (Order tmpOrder : orderDao.getOrderListForMypage(order)) {
+			
+			if (ordNo != tmpOrder.getOrdNo() || !delvFeeCd.equals(tmpOrder.getDelvFeeCd()) || !ordDtlStat.equals(tmpOrder.getOrdDtlStat()) || !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);
+					map.set("orderList", orderList);
+					mapList.add(map);
+				}
+				
+				ordNo = tmpOrder.getOrdNo();
+				ordDt = tmpOrder.getOrdDt();
+				delvFeeCd = tmpOrder.getDelvFeeCd();
+				ordDtlStat = tmpOrder.getOrdDtlStat();
+				shotDelvYn = tmpOrder.getShotDelvYn();
+				selfGoodsYn = tmpOrder.getSelfGoodsYn();
+				shipCompNm = tmpOrder.getShipCompNm();
+				invoiceNo = tmpOrder.getInvoiceNo();
+				reviewSq = tmpOrder.getReviewSq();
+				orderList = new ArrayList<>();
+			}
+
+			orderList.add(tmpOrder);
+
+			index++;
+		}
+
+		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);
+		map.set("orderList", orderList);
+		mapList.add(map);
+
+		return mapList; 
+	}
+
+	/**
+	 * 마이페이지 주문상태 별 주문수량 조회
+	 *
+	 * @param Order
+	 * @return int
+	 * @author card007
+	 * @since 2021. 02. 08
+	 */
+	public int getOrderStatCount(Order order) { return orderDao.getOrderStatCount(order); }
+
+	/**
+	 * 마이페이지 주문변경상태 별 주문수량 조회
+	 *
+	 * @param Order
+	 * @return int
+	 * @author card007
+	 * @since 2021. 02. 08
+	 */
+	public int getOrderChangeStatCount(Order order) { return orderDao.getOrderChangeStatCount(order); }
 
 }

+ 1 - 0
src/main/java/com/style24/core/support/env/TscConstants.java

@@ -89,6 +89,7 @@ public class TscConstants {
 
 	// 주문상세상태
 	public enum OrderDetailStat {
+		ORDER_RECEIPT("G013_00"),			// 주문접수
 		DEPOSIT_WAIT("G013_10"),			// 입금대기
 		PAYMENT_WAIT("G013_11"),			// 추가결제대기
 		REFUND_CONFIRM_WAIT("G013_17"),		// 발주대기-환불컨펌

+ 1 - 0
src/main/java/com/style24/persistence/domain/Customer.java

@@ -49,6 +49,7 @@ public class Customer extends TscBaseDomain {
 	private String afLinkCd;			// 제휴링크코드
 	private String custGb;				// 회원구분(공통코드G100)
 	private String custGrade;			// 회원등급(공통코드G110)
+	private String custGradeNm;			// 회원등급명
 	private String joinDt;				// 가입일시
 	private String foreignerYn;			// 외국인여부(외국인:Y)
 	private String custStat;			// 고객상태(공통코드G104)

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

@@ -440,4 +440,12 @@ public class Order extends TscBaseDomain {
 	private String applyGb;							// 다다익선 할인 기준
 	private String applyQtySectionYn;				// 다다익선 적용 여부
 	private String applyAmtSectionYn;				// 다다익선 적용 여부
+	
+	// 마이페이지
+	private int itemCnt;
+	private int ordDtlStatCnt;
+	private String delvDesc;
+	private int reviewSq;
+	private String selfGoodsYn;
+	private String brandNm;
 }

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

@@ -28,6 +28,7 @@
 		     , AF_LINK_CD
 		     , CUST_GB
 		     , CUST_GRADE
+		     , FN_GET_CODE_NM('G110', CUST_GRADE) AS CUST_GRADE_NM
 		     , DATE_FORMAT(JOIN_DT, '%Y%m%d%H%i%S') AS JOIN_DT
 		     , FOREIGNER_YN
 		     , CUST_STAT

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

@@ -1931,7 +1931,9 @@
 
 	<!-- 마이페이지 주문 목록 조회 -->
 	<select id="getOrderListForMypage" parameterType="Order" resultType="Order">
+		/* TscOrder.getOrderListForMypage */
 		SELECT O.ORD_NO
+			 , DATE_FORMAT(O.ORD_DT, '%Y.%m.%d') AS ORD_DT
 			 , OD.ORD_DTL_NO
 			 , OD.ORD_EXCH_GB
 			 , OD.GOODS_CD
@@ -1946,6 +1948,10 @@
 			 , OD.INVOICE_NO
 			 , OD.SUPPLY_COMP_CD
 			 , OD.DELV_FEE_CD
+			 , 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
+			 , R.REVIEW_SQ
 		  FROM TB_ORDER O
 		 INNER JOIN TB_ORDER_DETAIL OD
 		    ON O.ORD_NO = OD.ORD_NO
@@ -1953,10 +1959,91 @@
 		 INNER JOIN TB_ORDER_DETAIL_ITEM ODI
 		    ON OD.ORD_NO = ODI.ORD_NO
 		   AND OD.ORD_DTL_NO = ODI.ORD_DTL_NO
-		 WHERE O.CUST_NO = #{custNo}
+		 INNER JOIN TB_GOODS G
+		    ON OD.GOODS_CD = G.GOODS_CD
+		 INNER JOIN TB_BRAND B
+		    ON B.BRAND_CD = G.BRAND_CD
+		  LEFT OUTER JOIN TB_REVIEW R
+		    ON R.ORD_NO = OD.ORD_NO
+		   AND R.ORD_DTL_NO = OD.ORD_DTL_NO
+		<where>
+			<choose>
+				<when test='custNo != null and custNo != ""'>
+		   AND O.CUST_NO  =  #{custNo}
+				</when>
+				<otherwise>
+		   AND O.ORD_NO = #{ordNo}
+		   AND O.ORD_NM = #{orderNm}
+				</otherwise>
+			</choose>
+		</where>
+		<choose>
+			<when test="stDate != null and stDate != '' and edDate != null and edDate != ''">
+		   AND O.ORD_DT BETWEEN DATE_FORMAT(CONCAT(#{stDate}, ' 000000'), '%Y-%m-%d %H%i%S') AND DATE_FORMAT(CONCAT(#{edDate}, ' 235959'), '%Y-%m-%d %H%i%S')
+			</when>
+			<otherwise>
+		   AND O.ORD_DT >= DATE_FORMAT(LAST_DAY(NOW() - INTERVAL 3 MONTH) + INTERVAL 1 DAY, '%Y-%m-%d')
+			</otherwise>
+		</choose>
 		 ORDER BY OD.SUPPLY_COMP_CD
 				, OD.DELV_FEE_CD
 				, OD.ORD_NO DESC
+				, G.SELF_GOODS_YN DESC
+				, OD.SHOT_DELV_YN DESC
+	</select>
+	
+	<!-- 마이페이지 주문상태 별 주문수량 조회 -->
+	<select id="getOrderStatCount" parameterType="Order" resultType="int">
+		/* TscOrder.getOrderStatCount */
+		SELECT COUNT(*) CNT
+		  FROM TB_ORDER O
+		 INNER JOIN TB_ORDER_DETAIL OD
+		    ON O.ORD_NO = OD.ORD_NO
+		<where>
+			<choose>
+				<when test='custNo != null and custNo != ""'>
+		   AND O.CUST_NO  =  #{custNo}
+				</when>
+				<otherwise>
+		   AND O.ORD_NO = #{ordNo}
+		   AND O.ORD_NM = #{orderNm}
+				</otherwise>
+			</choose>
+		</where>
+		   AND OD.ORD_DTL_STAT = #{ordDtlStat}
+		<if test="ordDtlStat == 'G013_60'">
+		   AND O.ORD_DT >= DATE_FORMAT(CURRENT_DATE - INTERVAL 1 WEEK, '%Y-%m-%d')
+		</if>
+	</select>
+
+	<!-- 마이페이지 주문변경상태 별 주문수량 조회 -->
+	<select id="getOrderChangeStatCount" parameterType="Order" resultType="int">
+		/* TscOrder.getOrderChangeStatCount */
+		SELECT COUNT(*) CNT
+		  FROM TB_ORDER_CHANGE_DETAIL OCD
+		 INNER JOIN TB_ORDER_DETAIL OD
+		    ON OCD.ORD_DTL_NO = OD.ORD_DTL_NO
+		 INNER JOIN TB_ORDER O
+		    ON O.ORD_NO = OD.ORD_NO
+		<where>
+			<choose>
+				<when test='custNo != null and custNo != ""'>
+					AND O.CUST_NO  =  #{custNo}
+				</when>
+				<otherwise>
+					AND O.ORD_NO = #{ordNo}
+					AND O.ORD_NM = #{orderNm}
+				</otherwise>
+			</choose>
+		</where>
+		<choose>
+			<when test="chgStat == 'G685_30'">
+		   AND OCD.CHG_STAT IN (#{chgStat}, 'G685_33')
+			</when>
+			<otherwise>
+		   AND OCD.CHG_STAT = #{chgStat}
+			</otherwise>
+		</choose>
 	</select>
 </mapper>