Ver Fonte

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

card007 há 5 anos atrás
pai
commit
7322aba9a9

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

@@ -89,4 +89,12 @@ public interface TscCustomerDao {
 	 * @since 2021. 1. 27
 	 */
 	int deleteWishList(Integer custNo);
+
+	/**
+	 * 임시비밀번호 조회
+	 * @param length - 비밀번호 자릿수
+	 * @return String
+	 * @since 2021. 02. 15
+	 */
+	String getTemporaryPassword(int length);
 }

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

@@ -414,6 +414,15 @@ public interface TscOrderDao {
 	 */	
 	Collection<Order> getGoodsCartCpnApplyGoodsList(Order order);
 	
+	/**
+	 * 배송비쿠폰 조회
+	 *
+	 * @param Order
+	 * @author jsh77b
+	 * @since 2021. 02. 02
+	 */	
+	Collection<Order> getDelvCpnList(Order order);
+	
 	/**
 	 * 총알배송 가능 시간 체크
 	 *

+ 14 - 1
src/main/java/com/style24/core/biz/service/TscCustomerService.java

@@ -68,7 +68,8 @@ public class TscCustomerService {
 	 * @since 2020. 01. 20
 	 */
 	@Transactional("shopTxnManager")
-	public void updateCustomerPassword(Customer customer) {
+	public void saveCustomerPassword(Customer customer) {
+		customerDao.createCustomerHistory(customer);
 		customerDao.updateCustomerPassword(customer);
 	}
 
@@ -141,4 +142,16 @@ public class TscCustomerService {
 	}
 
 
+	/**
+	 * 임시비밀번호 조회
+	 * @param length - 비밀번호 자릿수
+	 * @return 임시비밀번호
+	 * @author jsshin
+	 * @since 2021. 02. 15
+	 */
+	public String getTemporaryPassword(int length) {
+		return customerDao.getTemporaryPassword(length);
+	}
+
+
 }

+ 26 - 4
src/main/java/com/style24/core/biz/service/TscFreegiftService.java

@@ -7,6 +7,7 @@ import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.core.env.Environment;
 import org.springframework.stereotype.Service;
 
+import com.gagaframework.web.parameter.GagaMap;
 import com.style24.core.biz.dao.TscFreegiftDao;
 import com.style24.core.support.message.TscMessageByLocale;
 import com.style24.persistence.domain.Order;
@@ -39,9 +40,12 @@ public class TscFreegiftService {
 	 * @author jsh77b
 	 * @since 2020. 12. 16
 	 */
-	public Collection<Order> getOrderFreegift(Order order) {
+	@SuppressWarnings("null")
+	public GagaMap getOrderFreegift(Order order) {
 		
-		Collection<Order> freegiftGoodsApplyValList = null;
+		GagaMap resultMap = new GagaMap();
+		Collection<Order> freegiftGoodsList 	= null;
+		Collection<Order> freegiftList 			= null;
 		
 		// 1. 장바구니 담긴 상품으로 적용된 사은품 프로모션 정보 조회 (with 상품금액)
 		Collection<Order> fregiftGoodsApplyAmtList = freegiftDao.getFreeGiftGoodsApplyAmt(order);
@@ -51,6 +55,7 @@ public class TscFreegiftService {
 			int[] freegiftSqArr = new int[fregiftGoodsApplyAmtList.size()];
 			
 			int i = 0;
+			int tempFreegiftSq = 0;
 			
 			// 사은품시퀀스(FREEGIFT_SQ), 사은품시퀀스합계금액(FREEGIFT_AMT)
 			for (Order fregiftGoodsApplyAmt : fregiftGoodsApplyAmtList) {
@@ -93,11 +98,28 @@ public class TscFreegiftService {
 				
 				// 3. 사은품 적용구간 의 적용 사은품정보조회
 				order.setFreegiftSectionSqArr(freegiftSectionSqArr);
-				freegiftGoodsApplyValList = freegiftDao.getFreeGiftGoodsApplyVal(order);
+				Collection<Order> freegiftGoodsApplyValList = freegiftDao.getFreeGiftGoodsApplyVal(order);
+				
+				if (freegiftGoodsApplyValList.size() > 0) {
+					freegiftList 		= new ArrayList<Order>();
+					freegiftGoodsList 	= new ArrayList<Order>();
+
+					for (Order freegiftGoodsApplyVal : freegiftGoodsApplyValList) {
+						if (freegiftGoodsApplyVal.getFreegiftSq() != tempFreegiftSq) {
+							freegiftList.add(freegiftGoodsApplyVal);
+							tempFreegiftSq = freegiftGoodsApplyVal.getFreegiftSq();
+						}
+						
+						freegiftGoodsList.add(freegiftGoodsApplyVal);
+					}
+				}
 			}
 		}
 		
-		return freegiftGoodsApplyValList;
+		resultMap.set("freegiftGoodsList"	, freegiftGoodsList);
+		resultMap.set("freegiftList"		, freegiftList);
+		
+		return resultMap;
 	}
 	
 	/**

+ 79 - 13
src/main/java/com/style24/core/biz/service/TscOrderService.java

@@ -643,8 +643,74 @@ public class TscOrderService {
 	 * @author jsh77b
 	 * @since 2021. 02. 02
 	 */	
-	public Collection<Order> getGoodsCartCpnApplyGoodsList(Order order) {
-		return orderDao.getGoodsCartCpnApplyGoodsList(order);
+	public GagaMap getGoodsCartCpnApplyGoodsList(Order order) {
+		
+		GagaMap resultMap = new GagaMap();
+		
+		Collection<Order> goodsCartCpnApplyList = orderDao.getGoodsCartCpnApplyGoodsList(order);
+		
+		Collection<Order> goodsCpnList 	= new ArrayList<Order>();
+		Collection<Order> cartCpnList 	= new ArrayList<Order>();
+		
+		if (goodsCartCpnApplyList.size() > 0) {
+			for (Order goodsCartCpnApply : goodsCartCpnApplyList) {
+				// 상품쿠폰목록
+				if ("G230_11".equals(goodsCartCpnApply.getCpnType())) {
+					goodsCpnList.add(goodsCartCpnApply);
+				} 
+				// 장바구니쿠폰목록
+				else if ("G230_20".equals(goodsCartCpnApply.getCpnType())) {
+					cartCpnList.add(goodsCartCpnApply);
+				}
+			}
+		}
+		
+		resultMap.set("goodsCpnList"	, goodsCpnList);
+		resultMap.set("cartCpnList"		, cartCpnList);
+		
+		return resultMap;
+	}
+	
+	/**
+	 * 배송비쿠폰 조회
+	 *
+	 * @param Order
+	 * @author jsh77b
+	 * @since 2021. 02. 02
+	 */	
+	public Collection<Order> getDelvCpnList(Order order) {
+		return orderDao.getDelvCpnList(order);
+	}
+	
+	public Collection<Order> getGoodsCpnApplyList(Collection<Order> tmtbGoodsApplyList, Collection<Order> goodsCartCpnApplyGoodsList) {
+		
+		Collection<Order> goodsCpnApplyList = new ArrayList<Order>();
+		
+		// 쿠폰대상이 있는 상품들만 정리
+		for (Order tmtbGoods : tmtbGoodsApplyList) {
+			for (Order goodsCartCpn : goodsCartCpnApplyGoodsList) {
+				
+				// 상품코드비교후 담기
+				if (tmtbGoods.getGoodsCd().equals(goodsCartCpn.getGoodsCd())) {
+					
+					Boolean temp = false;
+					
+					// 이미 담긴 상풐은 제외
+					for (Order goodsCpnApply : goodsCpnApplyList) {
+						if (tmtbGoods.getGoodsCd().equals(goodsCpnApply.getGoodsCd())) {
+							temp = true;
+						}
+					}
+					
+					if (temp == false) {
+						goodsCpnApplyList.add(tmtbGoods);
+					}
+				}
+				
+			}
+		}
+		
+		return goodsCpnApplyList;
 	}
 	
 	/**
@@ -666,10 +732,10 @@ public class TscOrderService {
 	 * @since 2021. 02. 02
 	 */	
 	@SuppressWarnings({ "unchecked", "rawtypes" })
-	public Order getCartDelvGoodsCntList(Collection<Order> cartGoodsList) {
+	public GagaMap getCartDelvGoodsCntList(Collection<Order> cartGoodsList) {
 		
 		// 1. 장바구니 상품 배송단위별 건수 체크 로직 (자사:총알배송, 자사:일반배송, 입점업체, 예약배송)
-		Order delvOrder = new Order();
+		GagaMap resultMap = new GagaMap();
 		
 		int wmsCnt 			= 0; // 자사배송 (style 24) 건수
 		int resCnt 			= 0; // 자사예약배송 건수
@@ -728,16 +794,16 @@ public class TscOrderService {
 			delvFeeTotCnt++;
 		}
 		
-		delvOrder.setWmsCnt(wmsCnt);					// 자사몰 일반배송건수
-		delvOrder.setResCnt(resCnt);					// 자사몰 예약배송건수
-		delvOrder.setDelvCnt(delvCnt);					// 입점업체 배송건수
-		delvOrder.setDelvTotCnt(delvTotCnt);			// 배송유형건수
-		delvOrder.setDelvFeeTotCnt(delvFeeTotCnt);		// 전체배송건수
-		delvOrder.setWmsCartList(wmsCartList);			// 자사 일반상품 목록
-		delvOrder.setResCartList(resCartList);			// 자사 예약상품 목록
-		delvOrder.setDelvCartList(delvCartList);		// 입점업체 상품 목록
+		resultMap.set("wmsCnt"				, wmsCnt);				// 자사몰 일반배송건수
+		resultMap.set("resCnt"				, resCnt);				// 자사몰 예약배송건수
+		resultMap.set("delvCnt"				, delvCnt);				// 입점업체 배송건수
+		resultMap.set("delvTotCnt"			, delvTotCnt);			// 배송유형건수
+		resultMap.set("delvFeeTotCnt"		, delvFeeTotCnt);		// 전체배송건수
+		resultMap.set("wmsCartList"			, wmsCartList);			// 자사 일반상품 목록
+		resultMap.set("resCartList"			, resCartList);			// 자사 예약상품 목록
+		resultMap.set("delvCartList"		, delvCartList);		// 입점업체 상품 목록
 				
-		return delvOrder;
+		return resultMap;
 	}
 	
 	/**

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

@@ -675,6 +675,23 @@ public class TscConstants {
 		}
 	}
 
+	// 장바구니 구분
+	public enum DelvFeeCrite {
+		NORMAL("G078_10"),		// 조건부 무료
+		FREE("G078_20"),			// 무료
+		PAY("G078_30");			// 유료
+
+		private String value;
+
+		private DelvFeeCrite(String value) {
+			this.value = value;
+		}
+
+		public String value() {
+			return value;
+		}
+	}
+
 	// 회사 정보
 	public enum Style24Infomation {
 		COMPANY_NAME("아이스타일이십사(주)"),

+ 16 - 6
src/main/java/com/style24/persistence/domain/Order.java

@@ -313,6 +313,7 @@ public class Order extends TscBaseDomain {
 	private int chgGfcdAmt;
 	private int usGfcdAmt;
 	private int rmGfcdAmt;
+	private int rmPntAmt;
 	
 	// 다다익선
 	private int tmtbSq;
@@ -426,13 +427,23 @@ public class Order extends TscBaseDomain {
 	private String[] optCdArr;		// 옵션코드
 	@JsonFormat(with = JsonFormat.Feature.ACCEPT_SINGLE_VALUE_AS_ARRAY)
 	private String[] itemQtyArr;	// 구성상품번호
-	private int cartSq;				// 장바구니 일련번호
-	private int qtySumCurrPrice;		// PC 즉시할인 적용가
-	private int goodsQty;			// 장바구니 등록 수량
+	@JsonFormat(with = JsonFormat.Feature.ACCEPT_SINGLE_VALUE_AS_ARRAY)
+	private String[] itemCdArr;		// 옵션코드
 	private String jsessionId;		// SessionId
 	private String itemQtyr;		// itemQty GROUP_CONCAT
-	private List<Integer> applyMoreBetterAmtList;	// 다다익선 금액 적용상품 리스트
-	private List<Integer> applyMoreBetterQtyList;	// 다다익선 수량 적용상품 리스트
+	private String delvResDt;		// 예약배송일자
+	private String shotDelvDt;		// 총알 도착 예상 일자
+	private String firstCompYn;		// 업체 중 첫번째 상품 여부
+	private String delvFeeCrite;	// 배송비구분 (G078_10 : 조건부 무료, G078_20 : 무료, G078_30 : 유료)
+	private String shotCanYn;		// 총알배송 가능 여부
+	private String serialCpnNm;		// 시리얼쿠폰명
+	private int cartSq;				// 장바구니 일련번호
+	private int goodsQty;			// 장바구니 등록 수량
+	private int compCnt;			// 장바구니 업체 수
+	private int compSumPrice;		// 업체별 금액 합계
+	private int totDelvFee;			// 배송비 총합
+	private int totCartCnt;			// 장바구니 상품 수량
+	private int qtySumCurrPrice;	//
 
 	// 다다익선
 	@JsonFormat(with = JsonFormat.Feature.ACCEPT_SINGLE_VALUE_AS_ARRAY)
@@ -446,7 +457,6 @@ public class Order extends TscBaseDomain {
 	private int sectionVal;							// 다다익선 조건
 	private int tmtbSumQty;							// 장바구니 수량 다다익선 총계
 	private int tmtbSumAmt;							// 장바구니 금액 다다익선 총계
-	private int tmtbCurrPrice;						// 다다익선 적용 후 금액
 	private String qtyTmtbNm;						// 수량 적용 다다익선명
 	private String amtTmtbNm;						// 금액 적용 다다익선명
 	private String goodsGb;

+ 6 - 2
src/main/java/com/style24/persistence/mybatis/shop/TscCustomer.xml

@@ -221,9 +221,7 @@
 		UPDATE TB_CUSTOMER
 		SET    PASSWD = #{encodedPasswd}
 		     , PASSWD_CHG_DT = NOW()
-		<if test="tempPasswdYn == 'Y'">
 		     , TEMP_PASSWD_YN = #{tempPasswdYn}
-		</if>
 		     , UPD_NO = #{updNo}
 		     , UPD_DT = NOW()
 		WHERE  CUST_NO = #{custNo}
@@ -396,4 +394,10 @@
 	</delete>
 
 
+	<!-- 임시비밀번호 조회 -->
+	<select id="getTemporaryPassword" parameterType="int" resultType="String">
+		/* TscCustomer.getTemporaryPassword */
+		SELECT CONVERT(TRUNCATE(RAND() * CAST(CONCAT(1,LPAD(0,(#{length} - 1),'0')) AS UNSIGNED),0),CHAR) AS PASSWD FROM DUAL
+	</select>
+
 </mapper>

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

@@ -126,7 +126,7 @@
 			#{item}
 		</foreach>
 		ORDER  BY FG.FREEGIFT_SQ
-		        , FGB.FREEGIFT_SECTION_SQ
+		        , FGV.FREEGIFT_SECTION_SQ
 		        , FGV.USE_POINT
 	</select>
 	

+ 34 - 4
src/main/java/com/style24/persistence/mybatis/shop/TscOrder.xml

@@ -1616,6 +1616,7 @@
 		/* TscOrder.getCartGoodsList */
 		SELECT Z.CART_SQ
 			 , Z.BRAND_ENM
+			 , Z.BRAND_KNM
 			 , Z.GOODS_NM
 			 , Z.GOODS_CD
 			 , GROUP_CONCAT(Z.ITEM_NM ORDER BY Z.CART_DTL_SQ SEPARATOR '!@!') AS ITEM_NM
@@ -1646,11 +1647,17 @@
 		     , Z.PNT_PRATE
 		     , Z.PNT_MRATE
 			 , GI.SYS_IMG_NM
-			 , CASE WHEN #{frontGb} = 'P' THEN (Z.CURR_PRICE * Z.GOODS_QTY) * (Z.PNT_PRATE/100)
-					ELSE (Z.CURR_PRICE * Z.GOODS_QTY) * (Z.PNT_MRATE/100) END AS SAVE_PNT_AMT
+			 , CASE WHEN #{frontGb} = 'P' 
+			        THEN (Z.CURR_PRICE * Z.GOODS_QTY) * (Z.PNT_PRATE/100)
+					ELSE (Z.CURR_PRICE * Z.GOODS_QTY) * (Z.PNT_MRATE/100) 
+					 END AS SAVE_PNT_AMT
+			 , CASE WHEN #{frontGb} IN ('P')      AND Z.PRE_PPNT_USABLE_YN IN ('Y') THEN (Z.CURR_PRICE * Z.GOODS_QTY) * (Z.PNT_PRATE/100)
+			        WHEN #{frontGb} IN ('M', 'A') AND Z.PRE_MPNT_USABLE_YN IN ('Y') THEN (Z.CURR_PRICE * Z.GOODS_QTY) * (Z.PNT_MRATE/100)
+					 END AS PRE_PNT_AMT
 		FROM  ( SELECT CA.CART_SQ
 					 , CD.CART_DTL_SQ
 					 , BR.BRAND_ENM
+					 , BR.BRAND_KNM
 					 , G.GOODS_NM
 					 , CA.GOODS_CD
 					 , (SELECT GOODS_NM FROM TB_GOODS WHERE GOODS_CD = CD.ITEM_CD) AS ITEM_NM
@@ -1678,7 +1685,7 @@
 					 , CASE WHEN GRS.DELV_RES_DT IS NOT NULL THEN 'RES'
 							WHEN G.SELF_GOODS_YN = 'Y' THEN 'WMS'
 							ELSE DFP.DELV_FEE_CD END AS RES_DELV_FEE_CD
-					 , GRS.DELV_RES_DT
+		             , DATE_FORMAT(GRS.DELV_RES_DT, '%Y.%m.%d') AS DELV_RES_DT
 					 , DFP.MIN_ORD_AMT
 					 , DFP.DELV_FEE
 					 , VS.CURR_STOCK_QTY
@@ -1817,7 +1824,7 @@
 		<!-- 총알배송 가능시간 조회 -->
 	<select id="getDailyDeliveryTimeInfo" resultType="int">
 		/* order.getDailyDeliveryTimeInfo */
-		SELECT CASE WHEN TIME_FORMAT(NOW(), '%H%i%S') > 10000
+		SELECT CASE WHEN TIME_FORMAT(NOW(), '%H%i%S') > 100000
 		            THEN 0
 		            ELSE 1
 		            END  SHOT_DELV_ABLE_YN
@@ -1861,6 +1868,7 @@
 		SELECT Z.GOODS_CD
 		     , CP.CPN_ID
 		     , CP.CPN_NM
+		     , CP.CPN_TYPE
 		     , CP.DC_WAY
 		     , CP.DC_PVAL
 		     , CP.DC_MVAL
@@ -1960,6 +1968,28 @@
 		ORDER  BY Z.GOODS_CD
 		        , CP.CPN_ID
 	</select>
+	
+	<!-- 배송비쿠폰 조회 -->
+	<select id="getDelvCpnList" parameterType="Order" resultType="Order">
+		/* TscOrder.getDelvCpnList */
+		SELECT 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
+		FROM   TB_COUPON CP
+		INNER  JOIN TB_CUST_COUPON CCP
+		ON     CP.CPN_ID = CCP.CPN_ID
+		WHERE  1=1
+		AND    CP.SITE_CD = '10'
+		AND    CP.CPN_TYPE = 'G230_30'
+		AND    CCP.AVAIL_STDT <![CDATA[<]]> CURRENT_TIMESTAMP 
+		AND    CCP.AVAIL_EDDT > CURRENT_TIMESTAMP
+	</select>
 
 	<!-- 마이페이지 주문 목록 조회 -->
 	<select id="getOrderListForMypage" parameterType="Order" resultType="Order">