package com.style24.core.biz.service;

import com.gagaframework.web.parameter.GagaMap;
import com.style24.core.support.env.TscConstants;
import com.style24.persistence.domain.Erp;
import lombok.extern.slf4j.Slf4j;
import java.util.Collection;
import java.net.URI;
import java.util.List;
import java.util.Map;
import java.util.ArrayList;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.core.env.Environment;
import org.springframework.web.client.RestTemplate;
import org.springframework.http.ResponseEntity;
import org.springframework.http.HttpStatus;


import com.google.gson.Gson;
import com.google.gson.GsonBuilder;
import com.google.gson.reflect.TypeToken;

/**
 * ERP Service
 * 
 * @author moon
 * @since 2021. 03. 29
 */
@Service
@Slf4j
public class TscErpService {

//	@Autowired
//	private Environment env;
//
//	@Autowired
//	private RestTemplate restTemplate;
//	
//	/**
//	 * 매장(ERP) 실재고 조회 
//	 * @param productNo,skuCode
//	 * @return Collection<ErpStock>  매장(StockLoc),재고수량(LocQty)
//	 * @author moon
//	 * @since 2021. 03. 29
//	 */
//	public Collection<ErpStock> getErpRealStock(String styleCd, String colorCd, String sizeCd) {
//		
//		Collection<ErpStock> list = new ArrayList();
//		GagaMap resultMap = new GagaMap();
//		
//		String erpurl = env.getProperty("erp.api.goods.url");
//		erpurl = erpurl+"/StockCheck?CD_STYLE="+styleCd+"&CD_COLOR="+colorCd+"&CD_SIZE="+sizeCd+"";
//		
//		URI url = URI.create(erpurl);
//
//		try {
//			ResponseEntity<String> responseEntity = restTemplate.getForEntity(url, String.class);
//			HttpStatus status = responseEntity.getStatusCode();
//			
//			log.info("erpurl 호출결과: "+status.name());
//			
//			if("OK".equals(status.name())) {
//				String jsonResult = responseEntity.getBody();
//				Gson gson = new GsonBuilder().create();
//				
//				resultMap = gson.fromJson(jsonResult, GagaMap.class); 
//				
//				log.info("list {} "+list);
//				
//			
//				String StockInfo = resultMap.get("StockCheck").toString();
//				
//				List<Map<String, Object>> List = null;
//				List = gson.fromJson(StockInfo, new TypeToken<List<Map<String, Object>>>() {}.getType());
//				
//				for(int i=0; i<List.size(); i++) {
//					Map data = List.get(i);
//					ErpStock stock = new ErpStock();
//
//					stock.setStockLoc(data.get("CD_SHOP").toString());
//					stock.setLocQty((int)Double.parseDouble(data.get("QT_STOCK").toString()));
//					list.add(stock);
//				}
//				
//			}			
//		}catch(Exception e) {
//			log.info("호출 Exception: "+e.getMessage().toString());
//			list = null;
//		}
//		
//		return list;
//	}

}
