|
@@ -27,7 +27,7 @@ import com.style24.persistence.domain.ShoplinkerGoods;
|
|
|
import com.style24.persistence.domain.ShoplinkerInvoice;
|
|
import com.style24.persistence.domain.ShoplinkerInvoice;
|
|
|
import com.style24.persistence.domain.ShoplinkerOrder;
|
|
import com.style24.persistence.domain.ShoplinkerOrder;
|
|
|
import com.style24.persistence.domain.ShoplinkerSearch;
|
|
import com.style24.persistence.domain.ShoplinkerSearch;
|
|
|
-
|
|
|
|
|
|
|
+import com.fasterxml.jackson.databind.ObjectMapper;
|
|
|
import lombok.extern.slf4j.Slf4j;
|
|
import lombok.extern.slf4j.Slf4j;
|
|
|
|
|
|
|
|
/**
|
|
/**
|
|
@@ -56,6 +56,9 @@ public class TsaShoplinkerService {
|
|
|
@Autowired
|
|
@Autowired
|
|
|
private TsaOcmDao ocmDao;
|
|
private TsaOcmDao ocmDao;
|
|
|
|
|
|
|
|
|
|
+ @Autowired
|
|
|
|
|
+ private ObjectMapper mapper;
|
|
|
|
|
+
|
|
|
private String fileAddNm; // 유저번호_년월일시분초
|
|
private String fileAddNm; // 유저번호_년월일시분초
|
|
|
|
|
|
|
|
|
|
|
|
@@ -866,15 +869,11 @@ public class TsaShoplinkerService {
|
|
|
shoplinkerUtil.makeRequestXmlFile(sbRequest.toString(), xmlPath);
|
|
shoplinkerUtil.makeRequestXmlFile(sbRequest.toString(), xmlPath);
|
|
|
String xmlUrl = GagaFileUtil.getConcatenationPath(map.getDomainUrl(), xmlFileName.toString());
|
|
String xmlUrl = GagaFileUtil.getConcatenationPath(map.getDomainUrl(), xmlFileName.toString());
|
|
|
|
|
|
|
|
- // API 호출
|
|
|
|
|
|
|
+ // API 호출 URL
|
|
|
String apiUrl = GagaShoplinkerConstants.API_DOMAIN + map.getApiSubUrl() + URLEncoder.encode(xmlUrl);
|
|
String apiUrl = GagaShoplinkerConstants.API_DOMAIN + map.getApiSubUrl() + URLEncoder.encode(xmlUrl);
|
|
|
- // 테스트 URL
|
|
|
|
|
- //apiUrl = GagaShoplinkerConstants.API_DOMAIN+"/Product/attribute_prod_insert.php?iteminfo_url="+"http://ts5000.ipdisk.co.kr:8999/shoplinker/goods_reg/option_1.xml";
|
|
|
|
|
- String responseXmlData = shoplinkerUtil.callShoplinkerApiByGet(apiUrl, "");
|
|
|
|
|
|
|
|
|
|
- log.info(map.getApiType()+" ####xmlUrl "+xmlUrl);
|
|
|
|
|
- log.info(map.getApiType()+" ####apiUrl "+apiUrl);
|
|
|
|
|
- //log.error(map.getApiType()+" ####responseXmlData n"+responseXmlData);
|
|
|
|
|
|
|
+ // API 호출결과
|
|
|
|
|
+ String responseXmlData = shoplinkerUtil.callShoplinkerApiByGet(apiUrl, "");
|
|
|
|
|
|
|
|
// response 결과
|
|
// response 결과
|
|
|
shoplinkerResult = (com.gagaframework.shoplinker.domain.goods.result.Shoplinker)shoplinkerUtil.unmarshal(com.gagaframework.shoplinker.domain.goods.result.Shoplinker.class, responseXmlData);
|
|
shoplinkerResult = (com.gagaframework.shoplinker.domain.goods.result.Shoplinker)shoplinkerUtil.unmarshal(com.gagaframework.shoplinker.domain.goods.result.Shoplinker.class, responseXmlData);
|
|
@@ -886,10 +885,15 @@ public class TsaShoplinkerService {
|
|
|
|
|
|
|
|
if( "true".equals(resultMsg.getResult())){
|
|
if( "true".equals(resultMsg.getResult())){
|
|
|
succCnt = 1;
|
|
succCnt = 1;
|
|
|
|
|
+
|
|
|
|
|
+ // 재고 단품 생성
|
|
|
|
|
+ if( "OPTION".equals(map.getApiType())) {
|
|
|
|
|
+ shoplinkerDao.insertStockOption(map);
|
|
|
|
|
+ }
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
// 생성 파일삭제
|
|
// 생성 파일삭제
|
|
|
- //GagaFileUtil.deleteFile(GagaFileUtil.getConcatenationPath(map.getXmlPath(), xmlFileName.toString()));
|
|
|
|
|
|
|
+ GagaFileUtil.deleteFile(GagaFileUtil.getConcatenationPath(map.getXmlPath(), xmlFileName.toString()));
|
|
|
|
|
|
|
|
} catch (Exception e) {
|
|
} catch (Exception e) {
|
|
|
log.error("error", e);
|
|
log.error("error", e);
|
|
@@ -1087,16 +1091,15 @@ public class TsaShoplinkerService {
|
|
|
rHeader = shoplinkerResult.getHeader();
|
|
rHeader = shoplinkerResult.getHeader();
|
|
|
rOrdList = shoplinkerResult.getOrder();
|
|
rOrdList = shoplinkerResult.getOrder();
|
|
|
|
|
|
|
|
- // 수집정보 없음
|
|
|
|
|
|
|
+ // 수집정보 존재
|
|
|
if( null != rHeader ) {
|
|
if( null != rHeader ) {
|
|
|
totalCount = rHeader.getTotalCount();
|
|
totalCount = rHeader.getTotalCount();
|
|
|
totalPage = rHeader.getTotalPage();
|
|
totalPage = rHeader.getTotalPage();
|
|
|
currentlyPage = rHeader.getCurrentlyPage();
|
|
currentlyPage = rHeader.getCurrentlyPage();
|
|
|
- ShoplinkerOrder slOrder = null;
|
|
|
|
|
|
|
+ ShoplinkerOrder slOrder;
|
|
|
|
|
|
|
|
for(Order ord : rOrdList) {
|
|
for(Order ord : rOrdList) {
|
|
|
- slOrder = new ShoplinkerOrder();
|
|
|
|
|
- slOrder.setAllParams(ord);
|
|
|
|
|
|
|
+ slOrder = mapper.convertValue(ord, ShoplinkerOrder.class);
|
|
|
slOrder.setOrderIfIdx(commonService.getNextSequence("SEQ_SHHOPLINKER_ORD"));
|
|
slOrder.setOrderIfIdx(commonService.getNextSequence("SEQ_SHHOPLINKER_ORD"));
|
|
|
currListCount ++;
|
|
currListCount ++;
|
|
|
|
|
|
|
@@ -1127,12 +1130,17 @@ public class TsaShoplinkerService {
|
|
|
log.debug("Shoplinker API Call: success");
|
|
log.debug("Shoplinker API Call: success");
|
|
|
log.debug("responseXmlData {}", responseXmlData);
|
|
log.debug("responseXmlData {}", responseXmlData);
|
|
|
}else {
|
|
}else {
|
|
|
|
|
+ // 수집정보 존재안함.
|
|
|
|
|
+ com.gagaframework.shoplinker.domain.goods.result.Shoplinker orderFailResult;
|
|
|
|
|
+ com.gagaframework.shoplinker.domain.goods.result.ResultMessage orderFailResultMsg;
|
|
|
|
|
+ orderFailResult = (com.gagaframework.shoplinker.domain.goods.result.Shoplinker)shoplinkerUtil.unmarshal(com.gagaframework.shoplinker.domain.goods.result.Shoplinker.class, responseXmlData);
|
|
|
|
|
+ orderFailResultMsg = orderFailResult.getResultMessage();
|
|
|
|
|
|
|
|
ShoplinkerGoods map = new ShoplinkerGoods();
|
|
ShoplinkerGoods map = new ShoplinkerGoods();
|
|
|
map.setApiType("ORDER");
|
|
map.setApiType("ORDER");
|
|
|
map.setXmlTxt(responseXmlData);
|
|
map.setXmlTxt(responseXmlData);
|
|
|
- map.setApiResult("false");
|
|
|
|
|
- map.setApiMessage(shoplinkerOrder.getApiStDate() + " => 처리건 없음");
|
|
|
|
|
|
|
+ map.setApiResult(orderFailResultMsg.getResult());
|
|
|
|
|
+ map.setApiMessage(shoplinkerOrder.getApiStDate() + " => "+orderFailResultMsg.getMessage());
|
|
|
shoplinkerDao.insertShoplinerApiHst(map);
|
|
shoplinkerDao.insertShoplinerApiHst(map);
|
|
|
}
|
|
}
|
|
|
|
|
|
|
@@ -1149,10 +1157,11 @@ public class TsaShoplinkerService {
|
|
|
}else {
|
|
}else {
|
|
|
// 테스트용
|
|
// 테스트용
|
|
|
xmlUrl = "http://ts5000.ipdisk.co.kr:8999/shoplinker/order/0409/order_real_"+shoplinkerOrder.getOrderPageNo()+".xml";
|
|
xmlUrl = "http://ts5000.ipdisk.co.kr:8999/shoplinker/order/0409/order_real_"+shoplinkerOrder.getOrderPageNo()+".xml";
|
|
|
|
|
+ xmlUrl = "http://ts5000.ipdisk.co.kr:8999/shoplinker/order/order_time.xml";
|
|
|
|
|
|
|
|
try {
|
|
try {
|
|
|
// API 호출
|
|
// API 호출
|
|
|
- responseXmlData = shoplinkerUtil.callShoplinkerApiByGet(GagaShoplinkerConstants.API_DOMAIN+regMap.getApiSubUrl()+URLEncoder.encode(xmlUrl), "");
|
|
|
|
|
|
|
+ responseXmlData = testOrderStr(); // shoplinkerUtil.callShoplinkerApiByGet(GagaShoplinkerConstants.API_DOMAIN+regMap.getApiSubUrl()+URLEncoder.encode(xmlUrl), "");
|
|
|
// shoplinkerUtil.callShoplinkerApiByGet(GagaShoplinkerConstants.API_DOMAIN+regMap.getApiSubUrl()+URLEncoder.encode(xmlUrl), "");
|
|
// shoplinkerUtil.callShoplinkerApiByGet(GagaShoplinkerConstants.API_DOMAIN+regMap.getApiSubUrl()+URLEncoder.encode(xmlUrl), "");
|
|
|
//testOrderStr();
|
|
//testOrderStr();
|
|
|
|
|
|
|
@@ -1161,16 +1170,15 @@ public class TsaShoplinkerService {
|
|
|
rHeader = shoplinkerResult.getHeader();
|
|
rHeader = shoplinkerResult.getHeader();
|
|
|
rOrdList = shoplinkerResult.getOrder();
|
|
rOrdList = shoplinkerResult.getOrder();
|
|
|
|
|
|
|
|
- // 수집정보 없음
|
|
|
|
|
|
|
+ // 수집정보 존재
|
|
|
if( null != rHeader ) {
|
|
if( null != rHeader ) {
|
|
|
totalCount = rHeader.getTotalCount();
|
|
totalCount = rHeader.getTotalCount();
|
|
|
totalPage = rHeader.getTotalPage();
|
|
totalPage = rHeader.getTotalPage();
|
|
|
currentlyPage = rHeader.getCurrentlyPage();
|
|
currentlyPage = rHeader.getCurrentlyPage();
|
|
|
- ShoplinkerOrder slOrder = null;
|
|
|
|
|
|
|
+ ShoplinkerOrder slOrder;
|
|
|
|
|
|
|
|
for(Order ord : rOrdList) {
|
|
for(Order ord : rOrdList) {
|
|
|
- slOrder = new ShoplinkerOrder();
|
|
|
|
|
- slOrder.setAllParams(ord);
|
|
|
|
|
|
|
+ slOrder = mapper.convertValue(ord, ShoplinkerOrder.class);
|
|
|
slOrder.setOrderIfIdx(commonService.getNextSequence("SEQ_SHHOPLINKER_ORD"));
|
|
slOrder.setOrderIfIdx(commonService.getNextSequence("SEQ_SHHOPLINKER_ORD"));
|
|
|
currListCount ++;
|
|
currListCount ++;
|
|
|
|
|
|
|
@@ -1201,12 +1209,17 @@ public class TsaShoplinkerService {
|
|
|
log.debug("Shoplinker API Call: success");
|
|
log.debug("Shoplinker API Call: success");
|
|
|
log.debug("responseXmlData {}", responseXmlData);
|
|
log.debug("responseXmlData {}", responseXmlData);
|
|
|
}else {
|
|
}else {
|
|
|
|
|
+ // 수집정보 존재안함.
|
|
|
|
|
+ com.gagaframework.shoplinker.domain.goods.result.Shoplinker orderFailResult;
|
|
|
|
|
+ com.gagaframework.shoplinker.domain.goods.result.ResultMessage orderFailResultMsg;
|
|
|
|
|
+ orderFailResult = (com.gagaframework.shoplinker.domain.goods.result.Shoplinker)shoplinkerUtil.unmarshal(com.gagaframework.shoplinker.domain.goods.result.Shoplinker.class, responseXmlData);
|
|
|
|
|
+ orderFailResultMsg = orderFailResult.getResultMessage();
|
|
|
|
|
|
|
|
ShoplinkerGoods map = new ShoplinkerGoods();
|
|
ShoplinkerGoods map = new ShoplinkerGoods();
|
|
|
map.setApiType("ORDER");
|
|
map.setApiType("ORDER");
|
|
|
map.setXmlTxt(responseXmlData);
|
|
map.setXmlTxt(responseXmlData);
|
|
|
- map.setApiResult("false");
|
|
|
|
|
- map.setApiMessage(shoplinkerOrder.getApiStDate() + " => 처리건 없음");
|
|
|
|
|
|
|
+ map.setApiResult(orderFailResultMsg.getResult());
|
|
|
|
|
+ map.setApiMessage(shoplinkerOrder.getApiStDate() + " => "+orderFailResultMsg.getMessage());
|
|
|
shoplinkerDao.insertShoplinerApiHst(map);
|
|
shoplinkerDao.insertShoplinerApiHst(map);
|
|
|
}
|
|
}
|
|
|
|
|
|
|
@@ -1224,7 +1237,7 @@ public class TsaShoplinkerService {
|
|
|
returnMap.setString("RESULT_TYPE", "TRUE");
|
|
returnMap.setString("RESULT_TYPE", "TRUE");
|
|
|
|
|
|
|
|
// 생성 파일삭제
|
|
// 생성 파일삭제
|
|
|
- // GagaFileUtil.deleteFile(GagaFileUtil.getConcatenationPath(shoplinkerOrder.getXmlPath(), xmlFileName.toString()));
|
|
|
|
|
|
|
+ GagaFileUtil.deleteFile(GagaFileUtil.getConcatenationPath(shoplinkerOrder.getXmlPath(), xmlFileName.toString()));
|
|
|
|
|
|
|
|
}catch(Exception e) {
|
|
}catch(Exception e) {
|
|
|
log.error("xml 생성오류 ", e);
|
|
log.error("xml 생성오류 ", e);
|
|
@@ -1310,6 +1323,18 @@ public class TsaShoplinkerService {
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
+ /**
|
|
|
|
|
+ * 샵링커주문수집-제휴몰 대기상태건들 실패로 업데이트(오류로인해 성공/실패 처리가 안된건이 있을경우 대비용)
|
|
|
|
|
+ *
|
|
|
|
|
+ * @param
|
|
|
|
|
+ * @return
|
|
|
|
|
+ * @author jmh
|
|
|
|
|
+ * @since 2021. 5. 20
|
|
|
|
|
+ */
|
|
|
|
|
+ public void updateShoplinkerExtmallWaitList() throws IOException {
|
|
|
|
|
+ shoplinkerDao.updateShoplinkerExtmallWaitList();
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
/**
|
|
/**
|
|
|
* 샵링커주문수집-validation 체크
|
|
* 샵링커주문수집-validation 체크
|
|
|
*
|
|
*
|
|
@@ -1324,9 +1349,10 @@ public class TsaShoplinkerService {
|
|
|
rMap.setString("RESULT_MSG", "FAIL");
|
|
rMap.setString("RESULT_MSG", "FAIL");
|
|
|
rMap.setString("UploadStat", TsaConstants.ExtmallUploadStat.FAIL.value());
|
|
rMap.setString("UploadStat", TsaConstants.ExtmallUploadStat.FAIL.value());
|
|
|
|
|
|
|
|
- /*if( null != slOrder.getDeliveryInvoice() && !slOrder.getDeliveryInvoice().isEmpty()) {
|
|
|
|
|
- rMap.setString("UploadFailCd", "G022_70");
|
|
|
|
|
- rMap.setString("UploadFailReason", "송장번호가 존재하는 주문건입니다. 제휴몰 주문업로드 불가");
|
|
|
|
|
|
|
+ // 테스트기간은 송장완료된 목록으로 가져옴
|
|
|
|
|
+ /*if( !"000".equals(slOrder.getOrderFlag()) && !"007".equals(slOrder.getOrderFlag()) ) {
|
|
|
|
|
+ rMap.setString("UploadFailCd", TsaConstants.ExtmallUploadFailStat.ETC.value());
|
|
|
|
|
+ rMap.setString("UploadFailReason", "주문타입 실패. 주문타입:"+slOrder.getOrderFlag()+"(정산확정:002/송장등록:003/송장전송완료:004)");
|
|
|
return rMap;
|
|
return rMap;
|
|
|
}*/
|
|
}*/
|
|
|
|
|
|
|
@@ -1675,8 +1701,8 @@ public class TsaShoplinkerService {
|
|
|
+ "</header>\r\n"
|
|
+ "</header>\r\n"
|
|
|
|
|
|
|
|
+ "<order>\r\n"
|
|
+ "<order>\r\n"
|
|
|
- + "<shoplinker_order_id>1234-6</shoplinker_order_id>\r\n"
|
|
|
|
|
- + "<mall_order_id><![CDATA[1234-6]]></mall_order_id>\r\n"
|
|
|
|
|
|
|
+ + "<shoplinker_order_id>1234-7</shoplinker_order_id>\r\n"
|
|
|
|
|
+ + "<mall_order_id><![CDATA[1234-7]]></mall_order_id>\r\n"
|
|
|
+ "<mall_name><![CDATA[(주)현대홈쇼핑]]></mall_name>\r\n"
|
|
+ "<mall_name><![CDATA[(주)현대홈쇼핑]]></mall_name>\r\n"
|
|
|
+ "<baesong_status><![CDATA[송장전송완료]]></baesong_status>\r\n"
|
|
+ "<baesong_status><![CDATA[송장전송완료]]></baesong_status>\r\n"
|
|
|
+ "<order_name><![CDATA[조민혜]]></order_name>\r\n"
|
|
+ "<order_name><![CDATA[조민혜]]></order_name>\r\n"
|
|
@@ -1700,8 +1726,8 @@ public class TsaShoplinkerService {
|
|
|
+ "<sale_price>47600</sale_price>\r\n"
|
|
+ "<sale_price>47600</sale_price>\r\n"
|
|
|
+ "<supply_price>36176</supply_price>\r\n"
|
|
+ "<supply_price>36176</supply_price>\r\n"
|
|
|
+ "<sku><![CDATA[NA/160]]></sku>\r\n"
|
|
+ "<sku><![CDATA[NA/160]]></sku>\r\n"
|
|
|
- + "<orderdate>20210622132721</orderdate>\r\n"
|
|
|
|
|
- + "<order_reg_date>20210622132721</order_reg_date>\r\n"
|
|
|
|
|
|
|
+ + "<orderdate>20210623132721</orderdate>\r\n"
|
|
|
|
|
+ + "<order_reg_date>20210623132721</order_reg_date>\r\n"
|
|
|
+ "<delivery_invoice>339382561300</delivery_invoice>\r\n"
|
|
+ "<delivery_invoice>339382561300</delivery_invoice>\r\n"
|
|
|
+ "<order_flag>004</order_flag>\r\n"
|
|
+ "<order_flag>004</order_flag>\r\n"
|
|
|
+ "<seller_id>hs009583</seller_id>\r\n"
|
|
+ "<seller_id>hs009583</seller_id>\r\n"
|