package egovframework.com.mtdata.comtsrcdata.service.impl;

import egovframework.com.mtdata.comtsrcdata.dto.ComtsrcdataDTO;
import egovframework.com.mtdata.comtsrcdata.mapper.ComtsrcdataMapper;
import egovframework.com.mtdata.comtsrcdata.service.ComtsrcdataService;
import egovframework.com.mtdata.comtsrcdata.vo.ComtColVO;
import egovframework.com.mtdata.comtsrcdata.vo.ComtExtrtVO;
import egovframework.com.mtdata.comtsrcdata.vo.ComtTableVO;
import egovframework.com.mtdata.comtsrcdata.vo.ComtsrcdataVO;
import org.egovframe.rte.fdl.cmmn.EgovAbstractServiceImpl;
import org.json.simple.parser.JSONParser;
import org.springframework.stereotype.Service;

import javax.annotation.Resource;
import javax.json.stream.JsonParser;
import java.util.List;

@Service("ComtsrcdataService")
public class ComtsrcdataServiceImpl extends EgovAbstractServiceImpl implements ComtsrcdataService {

	@Resource(name = "ComtsrcdataMapper")
	private ComtsrcdataMapper comtsrcdataMapper;


	/**
	 * [comtsrcdatameta_new]테이블 조회
	 *
	 * @param vo
	 * @return
	 * @throws Exception
	 */
	public ComtTableVO selectSrcMetaData(ComtTableVO vo) throws Exception{
		return comtsrcdataMapper.selectSrcMetaData(vo);
	}

	@Override
	public int insertComtExtrtInfo(ComtExtrtVO vo) throws Exception {
		return comtsrcdataMapper.insertComtExtrtInfo(vo);
	}

	@Override
	public int insertComtSrcdata(ComtsrcdataVO vo) throws Exception {
		return comtsrcdataMapper.insertComtSrcdata(vo);
	}
	@Override
	public int insertComtTabledataInfo(ComtTableVO vo) throws Exception {
		return comtsrcdataMapper.insertComtTabledataInfo(vo);
	}

	@Override
	public int insertComtSrcCol(ComtColVO vo) throws Exception {
		return comtsrcdataMapper.insertComtSrcCol(vo);
	}


	@Override
	public int updateDatasrc(ComtsrcdataVO vo) throws Exception {
		return comtsrcdataMapper.updateDatasrc(vo);
	}

	@Override
	public ComtsrcdataDTO selectComtSrcData(ComtsrcdataVO vo) throws Exception {
		ComtsrcdataVO resultVO = comtsrcdataMapper.selectSrcData(vo);

		JSONParser jsonParser = new JSONParser();
		Object data = jsonParser.parse(resultVO.getSrcDataVl());

		return ComtsrcdataDTO.builder()
				.vo(resultVO)
				.data(data)
				.build();
	}
}
