فهرست منبع

샵링커수정

jmh 4 سال پیش
والد
کامیت
e90d11125f

+ 96 - 93
src/main/java/com/style24/admin/biz/service/TsaShoplinkerService.java

@@ -175,72 +175,79 @@ public class TsaShoplinkerService {
 			// 상품기본정보
 			ShoplinkerGoods goodsMap = admShoplinkerDao.getGoods(shoplinkerGoods);
 
-			// 상품상세(퍼블) 세팅
-			String detailDesc = this.setDetailDesc(shoplinkerGoods, goodsMap);
-
-			// xml 데이터 세팅
-			StringBuilder sbRequest = new StringBuilder();
-			sbRequest.append("<?xml version=\"1.0\" encoding=\"euc-kr\"?>\n");
-			sbRequest.append("<shoplinker>\n");
-			sbRequest.append("	<productInfo>\n");
-			sbRequest.append("		<product>\n");
-
-			sbRequest.append("			<customer_id>").append(shoplinkerGoods.getCustomerId()).append("</customer_id>\n");
-			sbRequest.append("			<partner_product_id>").append(goodsMap.getGoodsCd()).append("</partner_product_id>\n");
-			sbRequest.append("			<attribute_title_code>").append("999999999").append("</attribute_title_code>\n");
-			sbRequest.append("			<attribute_partner_product_id>").append(goodsMap.getAttributePartnerProductId()).append("</attribute_partner_product_id>\n");
-			sbRequest.append("			<product_name>").append(goodsMap.getProductName()).append("</product_name>\n");
-			sbRequest.append("			<detail_desc>").append(detailDesc).append("</detail_desc>\n");
-
-			// 가격연계
-			if( "Y".equals(goodsMap.getSyncYn())) {
-				//sbRequest.append("			<new_desc_top>").append(goodsMap.getNewDescTop()).append("</new_desc_top>\n");
-				//sbRequest.append("			<market_price>").append(goodsMap.getMarketPrice()).append("</market_price>\n");
-				sbRequest.append("			<sale_price>").append(goodsMap.getSalePrice()).append("</sale_price>\n");
-				sbRequest.append("			<supply_price>").append(goodsMap.getSupplyPrice()).append("</supply_price>\n");
-				//sbRequest.append("			<market_price_p>").append(goodsMap.getMarketPriceP()).append("</market_price_p>\n");
-				//sbRequest.append("			<sale_price_p>").append(goodsMap.getSalePriceP()).append("</sale_price_p>\n");
-				//sbRequest.append("			<supply_price_p>").append(goodsMap.getSupplyPriceP()).append("</supply_price_p>\n");
-			}else{
-				//sbRequest.append("			<new_desc_top>").append(goodsMap.getNewDescTop()).append("</new_desc_top>\n");
-				//sbRequest.append("			<market_price>").append(goodsMap.getMarketPrice()).append("</market_price>\n");
-				sbRequest.append("			<sale_price>").append(0).append("</sale_price>\n");
-				sbRequest.append("			<supply_price>").append(0).append("</supply_price>\n");
-				//sbRequest.append("			<market_price_p>").append(goodsMap.getMarketPriceP()).append("</market_price_p>\n");
-				//sbRequest.append("			<sale_price_p>").append(goodsMap.getSalePriceP()).append("</sale_price_p>\n");
-				//sbRequest.append("			<supply_price_p>").append(goodsMap.getSupplyPriceP()).append("</supply_price_p>\n");
-			}
+			if( null != goodsMap) {
 
-			sbRequest.append("			<sale_status>").append("001").append("</sale_status>\n"); // 판매중
-			sbRequest.append("			<tax_yn>").append("001").append("</tax_yn>\n"); // 과세
-			sbRequest.append("			<salearea>전국</salearea>\n");
-			sbRequest.append("			<sex>").append(goodsMap.getSex()).append("</sex>\n");
-			sbRequest.append("			<model>").append(goodsMap.getModel()).append("</model>\n");
-			sbRequest.append("			<model_no>").append(goodsMap.getModelNo()).append("</model_no>\n");
-			sbRequest.append("			<brand>").append(goodsMap.getBrand()).append("</brand>\n");
-			sbRequest.append("			<auth_no>").append(goodsMap.getAuthNo()).append("</auth_no>\n");
-			sbRequest.append("			<expirydate>20991231</expirydate>\n");
-			sbRequest.append("			<maker>").append(goodsMap.getMaker()).append("</maker>\n");
-			sbRequest.append("			<origin>").append(goodsMap.getOrigin()).append("</origin>\n");
-			sbRequest.append("			<adult_info>").append(goodsMap.getAdultInfo()).append("</adult_info>\n");
-			sbRequest.append("			<ccategory_l>").append(goodsMap.getCcategoryL()).append("</ccategory_l>\n");
-			sbRequest.append("			<ccategory_m>").append(goodsMap.getCcategoryM()).append("</ccategory_m>\n");
-			sbRequest.append("			<ccategory_s>").append(goodsMap.getCcategoryS()).append("</ccategory_s>\n");
-			sbRequest.append("			<ccategory_d>").append(goodsMap.getCcategoryD()).append("</ccategory_d>\n");
-
-			sbRequest.append("		</product>\n");
-			sbRequest.append("	</productInfo>\n");
-			sbRequest.append("</shoplinker>\n");
-
-			if( null != goodsMap.getShoplinkerItemkindNm()) {
-				// api 호출 및 결과 history 저장
-				callGoodsRegApi(regMap , sbRequest, "product");
+				// 상품상세(퍼블) 세팅
+				String detailDesc = this.setDetailDesc(shoplinkerGoods, goodsMap);
 
+				// xml 데이터 세팅
+				StringBuilder sbRequest = new StringBuilder();
+				sbRequest.append("<?xml version=\"1.0\" encoding=\"euc-kr\"?>\n");
+				sbRequest.append("<shoplinker>\n");
+				sbRequest.append("	<productInfo>\n");
+				sbRequest.append("		<product>\n");
+
+				sbRequest.append("			<customer_id>").append(shoplinkerGoods.getCustomerId()).append("</customer_id>\n");
+				sbRequest.append("			<partner_product_id>").append(goodsMap.getGoodsCd()).append("</partner_product_id>\n");
+				sbRequest.append("			<attribute_title_code>").append("999999999").append("</attribute_title_code>\n");
+				sbRequest.append("			<attribute_partner_product_id>").append(goodsMap.getAttributePartnerProductId()).append("</attribute_partner_product_id>\n");
+				sbRequest.append("			<product_name>").append(goodsMap.getProductName()).append("</product_name>\n");
+				sbRequest.append("			<detail_desc>").append(detailDesc).append("</detail_desc>\n");
+
+				// 가격연계
+				if( "Y".equals(goodsMap.getSyncYn())) {
+					//sbRequest.append("			<new_desc_top>").append(goodsMap.getNewDescTop()).append("</new_desc_top>\n");
+					//sbRequest.append("			<market_price>").append(goodsMap.getMarketPrice()).append("</market_price>\n");
+					sbRequest.append("			<sale_price>").append(goodsMap.getSalePrice()).append("</sale_price>\n");
+					sbRequest.append("			<supply_price>").append(goodsMap.getSupplyPrice()).append("</supply_price>\n");
+					//sbRequest.append("			<market_price_p>").append(goodsMap.getMarketPriceP()).append("</market_price_p>\n");
+					//sbRequest.append("			<sale_price_p>").append(goodsMap.getSalePriceP()).append("</sale_price_p>\n");
+					//sbRequest.append("			<supply_price_p>").append(goodsMap.getSupplyPriceP()).append("</supply_price_p>\n");
+				}else{
+					//sbRequest.append("			<new_desc_top>").append(goodsMap.getNewDescTop()).append("</new_desc_top>\n");
+					//sbRequest.append("			<market_price>").append(goodsMap.getMarketPrice()).append("</market_price>\n");
+					sbRequest.append("			<sale_price>").append(0).append("</sale_price>\n");
+					sbRequest.append("			<supply_price>").append(0).append("</supply_price>\n");
+					//sbRequest.append("			<market_price_p>").append(goodsMap.getMarketPriceP()).append("</market_price_p>\n");
+					//sbRequest.append("			<sale_price_p>").append(goodsMap.getSalePriceP()).append("</sale_price_p>\n");
+					//sbRequest.append("			<supply_price_p>").append(goodsMap.getSupplyPriceP()).append("</supply_price_p>\n");
+				}
+
+				sbRequest.append("			<sale_status>").append("001").append("</sale_status>\n"); // 판매중
+				sbRequest.append("			<tax_yn>").append("001").append("</tax_yn>\n"); // 과세
+				sbRequest.append("			<salearea>전국</salearea>\n");
+				sbRequest.append("			<sex>").append(goodsMap.getSex()).append("</sex>\n");
+				sbRequest.append("			<model>").append(goodsMap.getModel()).append("</model>\n");
+				sbRequest.append("			<model_no>").append(goodsMap.getModelNo()).append("</model_no>\n");
+				sbRequest.append("			<brand>").append(goodsMap.getBrand()).append("</brand>\n");
+				sbRequest.append("			<auth_no>").append(goodsMap.getAuthNo()).append("</auth_no>\n");
+				sbRequest.append("			<expirydate>20991231</expirydate>\n");
+				sbRequest.append("			<maker>").append(goodsMap.getMaker()).append("</maker>\n");
+				sbRequest.append("			<origin>").append(goodsMap.getOrigin()).append("</origin>\n");
+				sbRequest.append("			<adult_info>").append(goodsMap.getAdultInfo()).append("</adult_info>\n");
+				sbRequest.append("			<ccategory_l>").append(goodsMap.getCcategoryL()).append("</ccategory_l>\n");
+				sbRequest.append("			<ccategory_m>").append(goodsMap.getCcategoryM()).append("</ccategory_m>\n");
+				sbRequest.append("			<ccategory_s>").append(goodsMap.getCcategoryS()).append("</ccategory_s>\n");
+				sbRequest.append("			<ccategory_d>").append(goodsMap.getCcategoryD()).append("</ccategory_d>\n");
+
+				sbRequest.append("		</product>\n");
+				sbRequest.append("	</productInfo>\n");
+				sbRequest.append("</shoplinker>\n");
+
+				if( null != goodsMap.getShoplinkerItemkindNm()) {
+					// api 호출 및 결과 history 저장
+					callGoodsRegApi(regMap , sbRequest, "product");
+
+				}else {
+					// 품목매핑정보 없음. 전송 안함
+					regMap.setXmlTxt(sbRequest.toString());
+					regMap.setApiResult("error");
+					regMap.setApiMessage("API 전송안함 : 샵링커 품목매핑정보가 없습니다. (자사품목코드: "+goodsMap.getItemkindCd()+")");
+					tscShoplinkerDao.insertShoplinerApiHst(regMap);
+				}
 			}else {
-				// 품목매핑정보 없음. 전송 안함
-				regMap.setXmlTxt(sbRequest.toString());
 				regMap.setApiResult("error");
-				regMap.setApiMessage("API 전송안함 : 샵링커 품목매핑정보가 없습니다. (자사품목코드: "+goodsMap.getItemkindCd()+")");
+				regMap.setApiMessage("상품정보가 없습니다. (자사상품만 등록가능)");
 				tscShoplinkerDao.insertShoplinerApiHst(regMap);
 			}
 
@@ -635,40 +642,36 @@ public class TsaShoplinkerService {
 
 			ShoplinkerGoods map = admShoplinkerDao.getCert(shoplinkerGoods);
 
-			if(null == map ) {
-				map = new ShoplinkerGoods();
-				map.setPartnerProductId(shoplinkerGoods.getGoodsCd());
-				map.setCertNo("");
-				map.setCertOrgan(".");
-			}
-
-			// xml 데이터 세팅
-			StringBuilder sbRequest = new StringBuilder();
-			sbRequest.append("<?xml version=\"1.0\" encoding=\"euc-kr\"?>\n");
-			sbRequest.append("<shoplinker>\n");
-			sbRequest.append("	<product>\n");
+			if(null != map ) {
 
-			sbRequest.append("		<customer_id>").append(shoplinkerGoods.getCustomerId()).append("</customer_id>\n");
-			sbRequest.append("		<partner_product_id>").append(map.getPartnerProductId()).append("</partner_product_id>\n");
-			sbRequest.append("		<certinfo>\n");
-			sbRequest.append("			<cert>\n");
+				// xml 데이터 세팅
+				StringBuilder sbRequest = new StringBuilder();
+				sbRequest.append("<?xml version=\"1.0\" encoding=\"euc-kr\"?>\n");
+				sbRequest.append("<shoplinker>\n");
+				sbRequest.append("	<product>\n");
 
-			//cert_item 의 경우 인증코드 값이 있으면 'C011', 없으면 'C010'
-			if("".equals(map.getCertNo())){
-				sbRequest.append("				<cert_item>").append("C010").append("</cert_item>\n");
-			}else {
-				sbRequest.append("				<cert_item>").append("C011").append("</cert_item>\n");
-			}
+				sbRequest.append("		<customer_id>").append(shoplinkerGoods.getCustomerId()).append("</customer_id>\n");
+				sbRequest.append("		<partner_product_id>").append(map.getPartnerProductId()).append("</partner_product_id>\n");
+				sbRequest.append("		<certinfo>\n");
+				sbRequest.append("			<cert>\n");
+
+				//cert_item 의 경우 인증코드 값이 있으면 'C011', 없으면 'C010'
+				if("".equals(map.getCertNo())){
+					sbRequest.append("				<cert_item>").append("C010").append("</cert_item>\n");
+				}else {
+					sbRequest.append("				<cert_item>").append("C011").append("</cert_item>\n");
+				}
 
-			sbRequest.append("				<cert_organ><![CDATA[").append(map.getCertOrgan()).append("]]></cert_organ>\n");
-			sbRequest.append("				<cert_no><![CDATA[").append(map.getCertNo()).append("]]></cert_no>\n");
-			sbRequest.append("			</cert>\n");
-			sbRequest.append("		</certinfo>\n");
-			sbRequest.append("	</product>\n");
-			sbRequest.append("</shoplinker>\n");
+				sbRequest.append("				<cert_organ><![CDATA[").append(map.getCertOrgan()).append("]]></cert_organ>\n");
+				sbRequest.append("				<cert_no><![CDATA[").append(map.getCertNo()).append("]]></cert_no>\n");
+				sbRequest.append("			</cert>\n");
+				sbRequest.append("		</certinfo>\n");
+				sbRequest.append("	</product>\n");
+				sbRequest.append("</shoplinker>\n");
 
-			// api 호출 및 결과 history 저장
-			callGoodsRegApi(regMap , sbRequest, "cert");
+				// api 호출 및 결과 history 저장
+				callGoodsRegApi(regMap , sbRequest, "cert");
+			}
 
 		}catch(Exception e) {
 			log.error("xml 생성오류 ", e);
@@ -702,7 +705,7 @@ public class TsaShoplinkerService {
 			shoplinkerGoods.setExtmallImgYn("Y");
 			Collection<ShoplinkerGoods> list = admShoplinkerDao.getGoodsImageList(shoplinkerGoods);
 
-			if(null != list) {
+			if(null != list && !list.isEmpty()) {
 
 				String imgUrl = "";
 				for (ShoplinkerGoods map : list) {

+ 6 - 3
src/main/java/com/style24/persistence/mybatis/shop/TsaShoplinker.xml

@@ -18,10 +18,10 @@
 			, A.SELF_GOODS_YN
 			, VS.CURR_STOCK_QTY AS QUANTITY   	-- 현재고
 			, VS.BASE_STOCK_QTY 				-- 안전재고
-		FROM VW_STOCK VS inner join tb_goods A on VS.GOODS_CD = A.GOODS_CD
-		INNER JOIN tb_option B on VS.GOODS_CD = B.GOODS_CD AND A.GOODS_CD = B.GOODS_CD and VS.OPT_CD = B.OPT_CD
+		FROM VW_STOCK VS INNER JOIN TB_GOODS A ON VS.GOODS_CD = A.GOODS_CD
+		INNER JOIN TB_OPTION B ON VS.GOODS_CD = B.GOODS_CD AND A.GOODS_CD = B.GOODS_CD AND VS.OPT_CD = B.OPT_CD
 		WHERE VS.GOODS_CD = #{goodsCd}
-
+		AND A.SELF_GOODS_YN = 'Y'
 		ORDER BY cast(REPLACE(B.OPT_CD, '-', '') as unsigned)
 	</select>
 
@@ -115,6 +115,7 @@
 		FROM   TB_GOODS A INNER JOIN TB_GOODS_IMG B ON A.GOODS_CD = B.GOODS_CD
 				LEFT OUTER JOIN TB_COLOR C ON B.COLOR_CD = C.COLOR_CD
 		WHERE A.GOODS_CD = #{goodsCd}
+		AND A.SELF_GOODS_YN = 'Y'
 		<if test='extmallImgYn != null and extmallImgYn == "Y"'>
 			AND A.MAIN_COLOR_CD = B.COLOR_CD
         	AND (B.DEFAULT_IMG_YN = 'Y' OR B.EXTMALL_IMG_YN = 'Y')
@@ -162,6 +163,7 @@
 		ON A.GOODS_CD = B.GOODS_CD
 		AND B.NI_CLSF_CD = C.NI_CLSF_CD
 		AND B.NI_ITEM_CD = C.NI_ITEM_CD
+		AND A.SELF_GOODS_YN = 'Y'
 		AND A.GOODS_CD = #{goodsCd}
 	</select>
 
@@ -191,6 +193,7 @@
 		FROM TB_GOODS A INNER JOIN TB_GOODS_SAFE_NO B
 		ON A.GOODS_CD = B.GOODS_CD
 		WHERE A.GOODS_CD = #{goodsCd}
+		AND A.SELF_GOODS_YN = 'Y'
 	</select>
 
 	<!-- 상품등록-상품 목록 건수 -->