Преглед изворни кода

이태영 - 20210705 장바구니 신규회원 구매 가능 상품 조건 추가

xodud lee пре 4 година
родитељ
комит
30068f6b04

+ 8 - 0
src/main/java/com/style24/front/biz/dao/TsfGoodsDao.java

@@ -495,4 +495,12 @@ public interface TsfGoodsDao {
 	 */
 	Collection<Goods> getCategoryMainNewGoodsList(Cate4Srch cate);
 
+	/**
+	 * 신규고객 구매 가능 상품 여부 정보 조회
+	 * @param param
+	 * @return
+	 * @author xodud1202
+	 * @date 2021. 07. 06
+	 */
+	Goods getNewCustOrdCanYnInfo(Goods param);
 }

+ 24 - 0
src/main/java/com/style24/front/biz/service/TsfCartService.java

@@ -72,6 +72,7 @@ public class TsfCartService {
 	public GagaMap saveCartInfo(Collection<Cart> params) {
 		GagaMap result = new GagaMap();
 		List<Integer> cartSqList = new ArrayList<>();
+		String newCustCanYn = "Y";
 
 		// 로그인 유무 확인 (로그인이 되어 있지 않으면 regNo 를 0으로 장바구니에 저장한다.)
 		Login login = new Login();
@@ -114,6 +115,17 @@ public class TsfCartService {
 
 					goods = goodsService.getGoodsInfo(goods);
 
+					// 신규 고객 주문 가능 상품 체크
+					if("Y".equals(goods.getNewCustOrdYn())) {
+						Goods tmp = new Goods();
+						tmp.setCustNo(login.getCustNo());
+						tmp.setGoodsCd(param.getGoodsCd());
+						tmp = goodsDao.getNewCustOrdCanYnInfo(tmp);
+						if("N".equals(tmp.getNewCustCanYn())) {
+							newCustCanYn = "N";
+						}
+					}
+
 					if (goods == null) {
 						result.put("message", "상품 정보가 존재하지 않습니다.");
 						return result;
@@ -199,6 +211,17 @@ public class TsfCartService {
 
 				goods = goodsService.getGoodsInfo(goods);
 
+				// 신규 고객 주문 가능 상품 체크
+				if("Y".equals(goods.getNewCustOrdYn())) {
+					Goods tmp = new Goods();
+					tmp.setCustNo(login.getCustNo());
+					tmp.setGoodsCd(param.getGoodsCd());
+					tmp = goodsDao.getNewCustOrdCanYnInfo(tmp);
+					if("N".equals(tmp.getNewCustCanYn())) {
+						newCustCanYn = "N";
+					}
+				}
+
 				if (goods == null) {
 					result.put("message", "상품 정보가 존재하지 않습니다.");
 					return result;
@@ -274,6 +297,7 @@ public class TsfCartService {
 			}
 		}
 
+		result.put("newCustCanYn", newCustCanYn);
 		result.put("cartSqList", cartSqList);
 		result.put("goodsType", goodsType);
 		result.put("cartGb", cartGb);

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

@@ -69,6 +69,7 @@ public class Goods extends TscBaseDomain {
 	private String erpPriceLinkYn;		//ERP가격연계여부(자사상품만 사용. Y:연계)
 	private String erpStockLinkYn;		//ERP재고연계여부(자사상품만 사용. Y:연계)
 	private String newCustOrdYn;		//신규고객 구매가능여부(Y:신규고객만 구매가능)
+	private String newCustCanYn;		//신규고객 구매가능여부
 	private int costPrice;		//원가
 	private String adultYn;		//성인용품여부
 	private String tobeFormYn;	//상품상세신규폼사용여부

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

@@ -3687,5 +3687,16 @@
 			LIMIT #{maxRow}
 		</if>
 	</select>
-	
+
+	<!-- 신규고객 구매 가능 상품 여부 정보 조회 -->
+	<select id="getNewCustOrdCanYnInfo" parameterType="Goods" resultType="Goods">
+		/* TsfGoods.getNewCustOrdCanYnInfo : 신규고객 구매 가능 상품 여부 정보 조회 */
+		SELECT G.GOODS_CD
+		     , G.NEW_CUST_ORD_YN
+		     , CASE WHEN G.NEW_CUST_ORD_YN = 'Y' AND (SELECT JOIN_DT FROM TB_CUSTOMER WHERE CUST_NO = #{custNo}) BETWEEN G.NEW_CUST_ORD_STDT AND G.NEW_CUST_ORD_EDDT THEN 'Y'
+		            WHEN G.NEW_CUST_ORD_YN = 'N' THEN 'Y'
+		            ELSE 'N' END AS NEW_CUST_CAN_YN
+		FROM   TB_GOODS G
+		WHERE  G.GOODS_CD = #{goodsCd}
+	</select>
 </mapper>

+ 14 - 0
src/main/webapp/ux/style24_link.js

@@ -337,6 +337,13 @@ function cfnAddCart(cartList) {
 						}
 					}
 				} else if (result.cartGb == "O"){
+					// 신규 고객 판매 상품 체크
+					if(result.newCustCanYn == "N") {
+						gagajf.showProgressbar(false);
+						mcxDialog.alert("해당 상품은 신규회원만 구매 가능한 상품입니다.");
+						return;
+					}
+
 					let orderHtml = "";
 					for(let i = 0 ; i < result.cartSqList.length ; i++) {
 						orderHtml += '<input type="hidden" name="cartSqArr" value="' + result.cartSqList[i] + '" />';
@@ -359,6 +366,13 @@ function cfnAddCart(cartList) {
 						$("#directOrderForm").submit();
 					}
 				} else if (result.cartGb == "G") {
+					// 신규 고객 판매 상품 체크
+					if(result.newCustCanYn == "N") {
+						gagajf.showProgressbar(false);
+						mcxDialog.alert("해당 상품은 신규회원만 구매 가능한 상품입니다.");
+						return;
+					}
+
 					if(result.custNo != null && result.custNo != 0) {
 						let orderHtml = "";
 						for(let i = 0 ; i < result.cartSqList.length ; i++) {