jmh 4 лет назад
Родитель
Сommit
e815055d7d

+ 10 - 3
pom.xml

@@ -11,7 +11,7 @@
 	<packaging>war</packaging>
 	<name>style24.batch</name>
 	<description>STYLE24 Batch</description>
-	
+
 	<dependencies>
 		<!-- Maven module core -->
 		<dependency>
@@ -20,7 +20,7 @@
 			<version>0.0.1</version>
 		</dependency>
 		<!--// Maven module core -->
-		
+
 		<dependency>
 			<groupId>org.springframework.boot</groupId>
 			<artifactId>spring-boot-starter-batch</artifactId>
@@ -164,9 +164,16 @@
 			<scope>system</scope>
 			<systemPath>${basedir}/src/main/webapp/WEB-INF/lib/xalan.jar</systemPath>
 		</dependency>
+		<dependency>
+			<groupId>com.gagaframework</groupId>
+			<artifactId>gagaframework-shoplinker</artifactId>
+			<version>1.7-RELEASE</version>
+			<scope>system</scope>
+			<systemPath>${basedir}/src/main/webapp/WEB-INF/lib/gagaframework-shoplinker-1.7.2-RELEASE.jar</systemPath>
+		</dependency>
 		<!-- \\\ WEB-INF lib -->
 	</dependencies>
-	
+
 	<build>
 		<plugins>
 			<plugin>

+ 60 - 0
src/main/java/com/style24/batch/biz/dao/TsbShoplinkerDao.java

@@ -0,0 +1,60 @@
+package com.style24.batch.biz.dao;
+
+import java.util.Collection;
+
+import org.springframework.stereotype.Repository;
+
+import com.style24.core.support.annotation.ShopDs;
+import com.style24.persistence.domain.ShoplinkerGoods;
+
+/**
+ * 샵링커 Dao
+ *
+ * @author jmh
+ * @since 2021. 06. 22
+ */
+@ShopDs
+@Repository
+public interface TsbShoplinkerDao {
+
+	/**
+	 * 샵링커 전송 이력
+	 *
+	 * @param shoplinkerSearch
+	 * @return
+	 * @author jmh
+	 * @since 2021. 06. 22
+	 */
+	void insertShoplinerApiHst(ShoplinkerGoods shoplinkerGoods);
+
+	/**
+	 * 재고수정
+	 *
+	 * @return
+	 * @author jmh
+	 * @since  2021. 06. 22
+	 */
+	void updateStockInfo(ShoplinkerGoods shoplinkerGoods);
+
+	/**
+	 * 재고 전체 동기화
+	 *
+	 * @return
+	 * @author jmh
+	 * @since  2021. 06. 22
+	 */
+	void updateSyncStock();
+
+	/**
+	 * 재고 변경 목록
+	 *
+	 * @return
+	 * @author jmh
+	 * @since  2021. 06. 22
+	 */
+	Collection<ShoplinkerGoods> getSyncStockList();
+
+
+
+
+}

+ 54 - 0
src/main/java/com/style24/batch/biz/job/shoplinker/TsbShoplinkerInvoiceJob.java

@@ -0,0 +1,54 @@
+package com.style24.batch.biz.job.shoplinker;
+
+import java.util.Collection;
+
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.core.env.Environment;
+import org.springframework.stereotype.Component;
+
+import com.style24.batch.biz.job.TsbAbstractJob;
+import com.style24.batch.biz.service.TsbShoplinkerService;
+import com.style24.persistence.domain.ShoplinkerGoods;
+
+import lombok.extern.slf4j.Slf4j;
+
+
+/**
+ * 샵링커 송장전송
+ *
+ * @author jmh
+ * @since 2021.06.22
+*/
+@Component
+@Slf4j
+public class TsbShoplinkerInvoiceJob extends TsbAbstractJob<Collection<ShoplinkerGoods>, Collection<ShoplinkerGoods>, String>{
+
+	@Autowired
+	private TsbShoplinkerService shoplinkerService;
+
+	@Autowired
+	private Environment env;
+
+
+	@Override
+	public Collection<ShoplinkerGoods> read() throws Exception {
+		System.out.println(" #### 샵링커 Invoice ");
+		return null;
+	}
+
+	@Override
+	public Collection<ShoplinkerGoods> process(Collection<ShoplinkerGoods> list) throws Exception {
+		return list;
+	}
+
+	@Override
+	public String write(Collection<ShoplinkerGoods> list) throws Exception {
+
+		return "OK";
+	}
+
+	@Override
+	public void notify(String result) throws Exception {
+		// Do nothing
+	}
+}

+ 54 - 0
src/main/java/com/style24/batch/biz/job/shoplinker/TsbShoplinkerOrderJob.java

@@ -0,0 +1,54 @@
+package com.style24.batch.biz.job.shoplinker;
+
+import java.util.Collection;
+
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.core.env.Environment;
+import org.springframework.stereotype.Component;
+
+import com.style24.batch.biz.job.TsbAbstractJob;
+import com.style24.batch.biz.service.TsbShoplinkerService;
+import com.style24.persistence.domain.ShoplinkerGoods;
+
+import lombok.extern.slf4j.Slf4j;
+
+
+/**
+ * 샵링커 주문수집
+ *
+ * @author jmh
+ * @since 2021.06.22
+*/
+@Component
+@Slf4j
+public class TsbShoplinkerOrderJob extends TsbAbstractJob<Collection<ShoplinkerGoods>, Collection<ShoplinkerGoods>, String>{
+
+	@Autowired
+	private TsbShoplinkerService shoplinkerService;
+
+	@Autowired
+	private Environment env;
+
+
+	@Override
+	public Collection<ShoplinkerGoods> read() throws Exception {
+		System.out.println(" #### 샵링커 Order ");
+		return null;
+	}
+
+	@Override
+	public Collection<ShoplinkerGoods> process(Collection<ShoplinkerGoods> list) throws Exception {
+		return list;
+	}
+
+	@Override
+	public String write(Collection<ShoplinkerGoods> list) throws Exception {
+
+		return "OK";
+	}
+
+	@Override
+	public void notify(String result) throws Exception {
+		// Do nothing
+	}
+}

+ 190 - 0
src/main/java/com/style24/batch/biz/job/shoplinker/TsbShoplinkerStockJob.java

@@ -0,0 +1,190 @@
+package com.style24.batch.biz.job.shoplinker;
+
+import java.io.File;
+import java.io.IOException;
+import java.net.URLEncoder;
+import java.util.Collection;
+
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.core.env.Environment;
+import org.springframework.stereotype.Component;
+
+import com.gagaframework.shoplinker.GagaShoplinkertUtil;
+import com.gagaframework.shoplinker.env.GagaShoplinkerConstants;
+import com.gagaframework.web.util.GagaDateUtil;
+import com.gagaframework.web.util.GagaFileUtil;
+import com.style24.batch.biz.job.TsbAbstractJob;
+import com.style24.batch.biz.service.TsbShoplinkerService;
+import com.style24.persistence.domain.ShoplinkerGoods;
+
+import lombok.extern.slf4j.Slf4j;
+
+
+/**
+ * 샵링커 재고전송
+ *
+ * @author jmh
+ * @since 2021.06.22
+*/
+@Component
+@Slf4j
+public class TsbShoplinkerStockJob extends TsbAbstractJob<Collection<ShoplinkerGoods>, Collection<ShoplinkerGoods>, String>{
+
+	@Autowired
+	private TsbShoplinkerService shoplinkerService;
+
+	@Autowired
+	private Environment env;
+
+	@Override
+	public Collection<ShoplinkerGoods> read() throws Exception {
+
+		// 재고 변경정보 수정
+		shoplinkerService.updateSyncStock();
+
+		// 재고 변경 목록
+		return shoplinkerService.getSyncStockList();
+	}
+
+	@Override
+	public Collection<ShoplinkerGoods> process(Collection<ShoplinkerGoods> stockList) throws Exception {
+		return stockList;
+	}
+
+	@Override
+	public String write(Collection<ShoplinkerGoods> stockList) throws Exception {
+		ShoplinkerGoods regMap = new ShoplinkerGoods();
+
+		// xml 생성경로
+		String xmlPath = env.getProperty("shoplinker.xml.path");
+
+		// 샵링커 기본폴더 존재여부 확인
+		String slFolder = GagaFileUtil.getConcatenationPath(xmlPath);
+		File slPath = new File(slFolder);
+		if (!slPath.exists()) {
+			slPath.mkdir();
+		}
+		//하위폴더존재확인(상품등록)
+		slFolder = GagaFileUtil.getConcatenationPath(xmlPath+"/stock");
+		slPath = new File(slFolder);
+		if (!slPath.exists()) {
+			slPath.mkdir();
+		}
+
+		if (stockList != null && !stockList.isEmpty()) {
+
+			// 1. 재고 마스터 테이블 전송여부 Y로 일괄 변경(실패건이 거의 없으므로 실패건만 개별로 업데이트 시킨다.)
+			regMap.setSendYn("Y");
+			regMap.setAllUpdYn("Y");
+			shoplinkerService.updateStockInfo(regMap);
+
+			// 2. xml 파일 정보세팅
+			String toDtTime = GagaDateUtil.getTodayDateTime();
+			String customerId = env.getProperty("shoplinker.customer_id");
+			regMap.setSendYn("N");													// 성공이 아닐경우만 개별업데이트
+			regMap.setAllUpdYn("N");												// 성공이 아닐경우만 개별업데이트
+			regMap.setApiType("STOCK");
+			regMap.setApiSubUrl(env.getProperty("shoplinker.url.stock"));
+			regMap.setXmlPath(env.getProperty("shoplinker.xml.path")+"/stock");		// xml 생성경로
+			regMap.setDomainUrl(env.getProperty("shoplinker.xml.view")+"/stock");	// xml 확인domain url
+
+			try {
+				StringBuilder sbRequest;
+				int opCnt = 0;
+				for (ShoplinkerGoods map : stockList) {
+					opCnt ++;
+
+					// xml 데이터 세팅
+					sbRequest = new StringBuilder();
+					sbRequest.append("<?xml version=\"1.0\" encoding=\"euc-kr\"?>\n");
+					sbRequest.append("<shoplinker>\n");
+					sbRequest.append("	<product>\n");
+
+					sbRequest.append("		<customer_id>").append(customerId).append("</customer_id>\n");
+					sbRequest.append("		<mall_update_yn>N</mall_update_yn>\n");
+					sbRequest.append("		<partner_product_id><![CDATA[").append(map.getOptCd()).append("]]></partner_product_id>\n");
+					sbRequest.append("		<quantity>").append(map.getQuantity()).append("</quantity>\n");
+
+					sbRequest.append("	</product>\n");
+					sbRequest.append("</shoplinker>\n");
+
+					regMap.setGoodsCd(map.getGoodsCd());
+					regMap.setOptCd(map.getOptCd());
+					regMap.setQuantity(map.getQuantity());
+
+					// 3. api 호출 및 결과 history 저장
+					callGoodsRegApi(regMap , sbRequest, map.getOptCd());
+					//callGoodsRegApi(regMap , sbRequest, map.getOptCd()+"_"+toDtTime);
+				}
+
+			}catch(Exception e) {
+				log.error("xml 생성오류 ", e);
+				regMap.setApiResult("error");
+				regMap.setApiMessage("xml 생성오류");
+				shoplinkerService.insertShoplinerApiHst(regMap);
+			}
+		}
+
+		return "OK";
+	}
+
+	@Override
+	public void notify(String result) throws Exception {
+		// Do nothing
+	}
+
+	private int callGoodsRegApi(ShoplinkerGoods map, StringBuilder sbRequest, String fileNm) throws IOException {
+
+		int succCnt = 0;
+		com.gagaframework.shoplinker.domain.goods.result.Shoplinker shoplinkerResult;
+		com.gagaframework.shoplinker.domain.goods.result.ResultMessage resultMsg;
+
+		try {
+			GagaShoplinkertUtil shoplinkerUtil = new GagaShoplinkertUtil("MS949");
+
+			// XML 파일 생성
+			StringBuilder xmlFileName = new StringBuilder();
+			xmlFileName.append("stock_"+fileNm).append(".xml");
+			String xmlPath = GagaFileUtil.getConcatenationPath(map.getXmlPath(), xmlFileName.toString());
+			shoplinkerUtil.makeRequestXmlFile(sbRequest.toString(), xmlPath);
+			String xmlUrl = GagaFileUtil.getConcatenationPath(map.getDomainUrl(), xmlFileName.toString());
+
+			// API 호출URL
+			String apiUrl = GagaShoplinkerConstants.API_DOMAIN + map.getApiSubUrl() + URLEncoder.encode(xmlUrl);
+
+			// API 호출결과
+			String responseXmlData = shoplinkerUtil.callShoplinkerApiByGet(apiUrl, "");
+
+			// response 결과
+			shoplinkerResult = (com.gagaframework.shoplinker.domain.goods.result.Shoplinker)shoplinkerUtil.unmarshal(com.gagaframework.shoplinker.domain.goods.result.Shoplinker.class, responseXmlData);
+			resultMsg = shoplinkerResult.getResultMessage();
+			map.setXmlTxt(sbRequest.toString());
+			map.setApiProductId(resultMsg.getProductId());
+			map.setApiResult(resultMsg.getResult());
+			map.setApiMessage(resultMsg.getMessage());
+
+			if( "true".equals(resultMsg.getResult())){
+				succCnt = 1;
+			}else {
+				// 실패 전송이력 N으로 수정
+				shoplinkerService.updateStockInfo(map);
+			}
+
+			// 생성 파일삭제
+			// GagaFileUtil.deleteFile(GagaFileUtil.getConcatenationPath(map.getXmlPath(), xmlFileName.toString()));
+
+		} catch (Exception e) {
+			log.error("error", e);
+			map.setXmlTxt(sbRequest.toString());
+			map.setApiResult("error");
+			map.setApiMessage("API 통신오류");
+
+			shoplinkerService.updateStockInfo(map);
+		}
+
+		// 전송이력 저장
+		shoplinkerService.insertShoplinerApiHst(map);
+
+		return succCnt;
+	}
+}

+ 75 - 0
src/main/java/com/style24/batch/biz/service/TsbShoplinkerService.java

@@ -0,0 +1,75 @@
+package com.style24.batch.biz.service;
+
+import java.util.Collection;
+
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import com.style24.batch.biz.dao.TsbShoplinkerDao;
+import com.style24.persistence.domain.ShoplinkerGoods;
+
+import lombok.extern.slf4j.Slf4j;
+
+/**
+ * 샵링커 Service
+ *
+ * @author jmh
+ * @since 2021. 06. 22
+ */
+@Service
+@Slf4j
+public class TsbShoplinkerService {
+
+	@Autowired
+	private TsbShoplinkerDao shoplinkerDao;
+
+
+	/**
+	 * 샵링커 전송 이력
+	 *
+	 * @param ShoplinkerGoods
+	 * @return
+	 * @author jmh
+	 * @since 2021. 6. 22
+	 */
+	public void	insertShoplinerApiHst(ShoplinkerGoods shoplinkerGoods) {
+		shoplinkerDao.insertShoplinerApiHst(shoplinkerGoods);
+	}
+
+	/**
+	 * 재고수정
+	 *
+	 * @return
+	 * @author jmh
+	 * @since  2021. 06. 22
+	 */
+	public void updateStockInfo(ShoplinkerGoods shoplinkerGoods) {
+		shoplinkerDao.updateStockInfo(shoplinkerGoods);
+	}
+
+	/**
+	 * 재고 전체 동기화
+	 *
+	 * @return
+	 * @author jmh
+	 * @since  2021. 06. 22
+	 */
+	public void updateSyncStock() {
+		shoplinkerDao.updateSyncStock();
+	}
+
+	/**
+	 * 재고 변경 목록
+	 *
+	 * @return
+	 * @author jmh
+	 * @since  2021. 06. 22
+	 */
+	public Collection<ShoplinkerGoods> getSyncStockList() {
+		return shoplinkerDao.getSyncStockList();
+	}
+
+
+
+
+}

+ 72 - 0
src/main/java/com/style24/batch/biz/task/TsbShoplinkerTask.java

@@ -0,0 +1,72 @@
+package com.style24.batch.biz.task;
+
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.scheduling.annotation.Async;
+import org.springframework.scheduling.annotation.Scheduled;
+import org.springframework.stereotype.Component;
+
+import com.style24.batch.biz.job.shoplinker.TsbShoplinkerInvoiceJob;
+import com.style24.batch.biz.job.shoplinker.TsbShoplinkerOrderJob;
+import com.style24.batch.biz.job.shoplinker.TsbShoplinkerStockJob;
+
+import lombok.extern.slf4j.Slf4j;
+
+/**
+ * 샵링커 Task
+ * @author jmh
+ * @since 2021. 06. 22
+ */
+@Component
+@Slf4j
+public class TsbShoplinkerTask {
+
+	@Autowired
+	private TsbShoplinkerStockJob shoplinkerStockJob;
+
+	@Autowired
+	private TsbShoplinkerOrderJob shoplinkerOrderJob;
+
+	@Autowired
+	private TsbShoplinkerInvoiceJob shoplinkerInvoiceJob;
+
+
+	/**
+	 * 재고전송
+	 * @throws Exception
+	 * @author jmh
+	 * @since 2021. 06. 22
+	 */
+	@Scheduled(cron = "${cron.shoplinker.stock.send}")
+	//@Scheduled(fixedDelay = 3500000)
+	@Async
+	public void stockSendJob() throws Exception {
+		shoplinkerStockJob.runById("cron.shoplinker.stock.send");
+	}
+
+	/**
+	 * 주문수집
+	 * @throws Exception
+	 * @author jmh
+	 * @since 2021. 06. 22
+	 */
+	@Scheduled(cron = "${cron.shoplinker.order.receive}")
+	//@Scheduled(fixedDelay = 3500000)
+	@Async
+	public void orderReceiveJob() throws Exception {
+		shoplinkerOrderJob.runById("cron.shoplinker.order.receive");
+	}
+
+	/**
+	 * 송장전송
+	 * @throws Exception
+	 * @author jmh
+	 * @since 2021. 06. 22
+	 */
+	@Scheduled(cron = "${cron.shoplinker.invoice.send}")
+	//@Scheduled(fixedDelay = 3500000)
+	@Async
+	public void invoiceSendJob() throws Exception {
+		shoplinkerInvoiceJob.runById("cron.shoplinker.invoice.send");
+	}
+
+}

+ 79 - 0
src/main/java/com/style24/batch/biz/web/TsbShoplinkerController.java

@@ -0,0 +1,79 @@
+package com.style24.batch.biz.web;
+
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Controller;
+import org.springframework.web.bind.annotation.CrossOrigin;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.ResponseBody;
+
+import com.style24.batch.biz.job.shoplinker.TsbShoplinkerInvoiceJob;
+import com.style24.batch.biz.job.shoplinker.TsbShoplinkerOrderJob;
+import com.style24.batch.biz.job.shoplinker.TsbShoplinkerStockJob;
+import com.style24.core.support.controller.TscBaseController;
+
+import lombok.extern.slf4j.Slf4j;
+
+/**
+ * 샵링커 Controller
+ *
+ * @author jmh
+ * @since 2021. 6. 21
+ */
+@Controller
+@RequestMapping("/shoplinker")
+@CrossOrigin(origins = "${domain.admin}")
+@Slf4j
+public class TsbShoplinkerController extends TscBaseController {
+
+	@Autowired
+	private TsbShoplinkerStockJob shoplinkerStockJob;
+
+	@Autowired
+	private TsbShoplinkerOrderJob shoplinkerOrderJob;
+
+	@Autowired
+	private TsbShoplinkerInvoiceJob shoplinkerInvoiceJob;
+
+
+
+	/**
+	 * 재고전송
+	 * @throws Exception - 예외처리
+	 * @author jmh
+	 * @since 2021. 06. 22
+	 */
+	@GetMapping("/stock/send")
+	@ResponseBody
+	public String sendStock() throws Exception {
+		shoplinkerStockJob.runById("cron.shoplinker.stock.send");
+		return "OK";
+	}
+
+	/**
+	 * 주문수집
+	 * @throws Exception - 예외처리
+	 * @author jmh
+	 * @since 2021. 06. 22
+	 */
+	@GetMapping("/order/receive")
+	@ResponseBody
+	public String receiveOrder() throws Exception {
+		shoplinkerOrderJob.runById("cron.shoplinker.order.receive");
+		return "OK";
+	}
+
+	/**
+	 * 송장전송
+	 * @throws Exception - 예외처리
+	 * @author jmh
+	 * @since 2021. 06. 22
+	 */
+	@GetMapping("/invoice/send")
+	@ResponseBody
+	public String sendInvoice() throws Exception {
+		shoplinkerInvoiceJob.runById("cron.shoplinker.invoice.send");
+		return "OK";
+	}
+
+}

+ 90 - 0
src/main/java/com/style24/persistence/mybatis/shop/TsbShoplinker.xml

@@ -0,0 +1,90 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.style24.batch.biz.dao.TsbShoplinkerDao">
+
+	<!-- 샵링커 전송 이력 -->
+	<insert id="insertShoplinerApiHst" parameterType="ShoplinkerGoods">
+		/* TsaShoplinkerDao.insertShoplinerApiHst */
+		INSERT INTO SHOPLINKER_SYNC_HST (
+		      LOG_SQ
+			, API_TYPE
+			, API_RESULT
+			, API_MESSAGE
+			, API_PRODUCT_ID
+			, GOODS_CD
+			, OPT_CD
+			, QTY
+			, ORD_DTL_NO
+			, XML_TXT
+			, REG_NO
+			, REG_DT
+		)
+		VALUES (
+		      null
+		    , #{apiType}
+			, #{apiResult}
+			, #{apiMessage}
+			, #{apiProductId}
+			, #{goodsCd}
+			, #{optCd}
+			, #{quantity}
+			, #{ordDtlNo}
+			, #{xmlTxt}
+			, #{regNo}
+		    , NOW()
+		)
+	</insert>
+
+	<!-- 재고 전송예정 목록-->
+	<select id="getSyncStockList" parameterType="ShoplinkerGoods" resultType="ShoplinkerGoods">
+		/*TsbCustomerDao.getSyncStockList*/
+		SELECT
+			TG.ITEMKIND_CD
+			, A.GOODS_CD
+			, A.OPT_CD
+			, A.STOCK_QTY AS QUANTITY
+		FROM   SHOPLINKER_STOCK A
+		 INNER JOIN TB_GOODS TG ON A.GOODS_CD = TG.GOODS_CD
+		WHERE  A.SEND_YN = 'N'
+
+	</select>
+
+	<!-- 재고 전체 동기화 -->
+	<update id="updateSyncStock" timeout="600">
+		UPDATE SHOPLINKER_STOCK A
+		SET UPD_DT = now()
+			, SEND_YN = 'N'
+			, STOCK_QTY = ( SELECT VW.CURR_STOCK_QTY  FROM VW_STOCK VW
+							WHERE VW.GOODS_CD = A.GOODS_CD  AND VW.OPT_CD = A.OPT_CD)
+		WHERE 1=1
+		AND EXISTS ( SELECT VW.OPT_CD
+		            FROM VW_STOCK VW
+		            WHERE VW.GOODS_CD = A.GOODS_CD
+		            AND VW.OPT_CD = A.OPT_CD
+		            AND VW.CURR_STOCK_QTY != A.STOCK_QTY
+		       )
+	</update>
+
+	<!-- 재고 정보 수정 -->
+	<update id="updateStockInfo" parameterType="ShoplinkerGoods">
+		UPDATE SHOPLINKER_STOCK A
+		SET SEND_DT = NOW()
+			, SEND_YN = #{sendYn}
+		WHERE 1=1
+		<if test='allUpdYn != null and allUpdYn == "Y"'>
+			AND SEND_YN = 'N'
+		</if>
+		<if test="goodsCd != null and goodsCd != ''">
+			AND GOODS_CD = #{goodsCd}
+		</if>
+		<if test="optCd != null and optCd != ''">
+			AND OPT_CD = #{optCd}
+		</if>
+	</update>
+
+
+
+
+
+
+</mapper>

+ 13 - 0
src/main/resources/config/application-locd.yml

@@ -75,3 +75,16 @@ ep:
     file:
         path: /WIDE/workspace/files/data/style24/ep
         url: http://ldimage.style24.com/ep/
+
+
+# 샵링커 API(개발계정)
+shoplinker:
+    customer_id : a0024007
+    shoplinker_id : istyle1
+    xml:
+        path: /WIDE/workspace/files/data/style24/shoplinker
+        view: //ldimage.style24.com/shoplinker
+    url:
+        stock : /Product/attribute_modify.php?iteminfo_url=
+        order : /Order/orderlist.php?iteminfo_url=
+        invoice : /Order/delivery.php?iteminfo_url=

+ 12 - 0
src/main/resources/config/application-locp.yml

@@ -51,3 +51,15 @@ ep:
     file:
         path: /WIDE/workspace/files/data/style24/ep
         url: http://ldimage.style24.com/ep/
+
+# 샵링커 API(개발계정)
+shoplinker:
+    customer_id : a0024007
+    shoplinker_id : istyle1
+    xml:
+        path: /WIDE/workspace/files/data/style24/shoplinker
+        view: //ldimage.style24.com/shoplinker
+    url:
+        stock : /Product/attribute_modify.php?iteminfo_url=
+        order : /Order/orderlist.php?iteminfo_url=
+        invoice : /Order/delivery.php?iteminfo_url=

+ 12 - 0
src/main/resources/config/application-run.yml

@@ -68,3 +68,15 @@ ep:
     file:
         path: /files/data/ep
         url: http://archive.style24.com/ep/
+
+# 샵링커 API(개발계정)
+shoplinker:
+    customer_id : a0024007
+    shoplinker_id : istyle1
+    xml:
+        path: /files/data/shoplinker
+        view: http://archive.style24.com/shoplinker
+    url:
+        stock : /Product/attribute_modify.php?iteminfo_url=
+        order : /Order/orderlist.php?iteminfo_url=
+        invoice : /Order/delivery.php?iteminfo_url=

+ 13 - 0
src/main/resources/config/application-style.yml

@@ -85,3 +85,16 @@ ep:
     file:
         path: /files/data/ep
         url: http://archive.style24.com/ep/
+
+
+# 샵링커 API(개발계정)
+shoplinker:
+    customer_id : a0024007
+    shoplinker_id : istyle1
+    xml:
+        path: /files/data/shoplinker
+        view: http://archive.style24.com/shoplinker
+    url:
+        stock : /Product/attribute_modify.php?iteminfo_url=
+        order : /Order/orderlist.php?iteminfo_url=
+        invoice : /Order/delivery.php?iteminfo_url=

+ 9 - 0
src/main/resources/config/application.yml

@@ -117,3 +117,12 @@ cron:
     monitoring:
         dayJob: 2 22 2 29 2 ?   #일별 모니터링
         hourJob: 2 22 2 29 2 ?  #시간별 모니터링
+
+    # 샵링커
+    shoplinker:
+        stock.send: 2 22 2 29 2 ?        				#재고
+        order.receive: 2 22 2 29 2 ?       				#주문
+        invoice.send: 2 22 2 29 2 ?        				#송장
+
+
+

BIN
src/main/webapp/WEB-INF/lib/gagaframework-shoplinker-1.7.2-RELEASE.jar