File name
Commit message
Commit date
File name
Commit message
Commit date
File name
Commit message
Commit date
File name
Commit message
Commit date
2024-11-14
File name
Commit message
Commit date
File name
Commit message
Commit date
package itn.let.utl.user.service;
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.net.HttpURLConnection;
import java.net.URL;
import java.util.HashMap;
import org.json.simple.JSONArray;
import org.json.simple.JSONObject;
import org.json.simple.parser.JSONParser;
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
import org.jsoup.select.Elements;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;
import com.fasterxml.jackson.databind.ObjectMapper;
import itn.let.kakao.kakaoComm.KakaoVO;
@Component
public class CheckNoServiceCommon{
/** 비즈 회원 아이디 */
@Value("#{globalSettings['Globals.mjon.biz.id']}")
private String mjonBizId;
/** 비즈 회원 API 키*/
@Value("#{globalSettings['Globals.mjon.biz.kakao.apiKey']}")
private String mjonBizKakaoApiKey;
/** 비즈 JSON 파일저장 경로*/
@Value("#{globalSettings['Globals.mjon.kakao.dir']}")
private String mjonBizJsonDir;
/**
* @param kakaoVO
* @return
* 국세청 사업자등록번호 상태 조회
* I : 사업자 등록 번호 - b_no
* O : 납세자상태(코드)
* b_stt_cd string
* default: 01
* xml: OrderedMap { "name": "BSttCd" }
* 납세자상태(코드):
* 01: 계속사업자,
* 02: 휴업자,
* 03: 폐업자
* https://www.data.go.kr/data/15081808/openapi.do#/%EC%82%AC%EC%97%85%EC%9E%90%EB%93%B1%EB%A1%9D%20%EC%83%81%ED%83%9C%EC%A1%B0%ED%9A%8C%20API/status
*/
public KakaoVO BizNoCheckApiEx2(
KakaoVO kakaoVO
, String p_b_no //사업자등록번호
, String p_b_nm //업체명
, String p_p_nm //대표자명
) {
int responscCode = 0;
String s_ret = "";
try {
String sendUrl = "https://kapi.ppurio.com";
sendUrl = "https://api.odcloud.kr/api/nts-businessman/v1/status?serviceKey=R3ueuGhIUlsnCPeJKxKaxlpoEPPmkkL%2BOaDLvOyggrXtHPuxbWIUtlxAwnzhgUq1Hx%2Fc3gpbi%2BoLUq2Dt6rHBg%3D%3D";
String[] s_arr = {p_b_no};
HashMap<String, Object> resultMap = new HashMap();
resultMap.put("b_no", s_arr); //파라미터 설정
ObjectMapper mapper = new ObjectMapper();
String json = mapper.writeValueAsString(resultMap); //convert map to JSON String(JSON으로 변환)
System.out.println("json");
System.out.println(json);
System.out.println("json");
//step1.상태조회
String msgMap = statusREST(sendUrl, json);
s_ret = this.jsonParser4Status(msgMap); //"" : 오류, "01"-부가가치세 일반관세자
String[] s_arr_ret = s_ret.split("[|]");
if (s_arr_ret.length==2) {
if (!s_arr_ret[0].equals("01")) {
kakaoVO.setBizReturnCode("101");
//kakaoVO.setBizReturnCode(Integer.parseInt(s_arr_ret[0]));
kakaoVO.setBizReturnMsg(s_arr_ret[1]);
return kakaoVO;
}
}else {
kakaoVO.setBizReturnCode("102");
kakaoVO.setBizReturnMsg("알수없는오류(S1)");
return kakaoVO;
}
//step2.bizno 결과 clawling - 설립일 가져오기
sendUrl = "https://www.bizno.net/article/"+p_b_no;
//sendUrl = "https://www.bizno.net/article/6538700857";
Document doc = null;
Elements e_els = null;
try {
doc = this.bizNoCrawling(sendUrl);
e_els = this.extractElements(doc, "div.details div.titles");
s_ret = this.printElements(e_els);
}catch(Exception ex) {
s_ret = "";
}
System.out.println("s_ret");
System.out.println(s_ret);
if ("".equals(s_ret)) {
kakaoVO.setBizReturnCode("201");
kakaoVO.setBizReturnMsg("알수없는오류(B1)");
return kakaoVO;
}
e_els = this.extractElements(doc, "div.details table tbody tr");
s_ret = this.findElementsData(e_els, "설립일").replaceAll("-", "");
if ("".equals(s_ret)) {
kakaoVO.setBizReturnCode("202");
kakaoVO.setBizReturnMsg("알수없는오류(B2)");
return kakaoVO;
}
//step3.진위확인
resultMap.put("b_no", p_b_no); //파라미터 설정
resultMap.put("start_dt", s_ret); //개업일자
resultMap.put("p_nm", p_p_nm); //대표자명
resultMap.put("b_nm", p_b_nm); //회사명
sendUrl = "https://api.odcloud.kr/api/nts-businessman/v1/validate?serviceKey=R3ueuGhIUlsnCPeJKxKaxlpoEPPmkkL%2BOaDLvOyggrXtHPuxbWIUtlxAwnzhgUq1Hx%2Fc3gpbi%2BoLUq2Dt6rHBg%3D%3D";
HashMap<String, Object> resultMapVal = new HashMap();
//ObjectMapper mapper = new ObjectMapper();
json = mapper.writeValueAsString(resultMap); //convert map to JSON String(JSON으로 변환)
System.out.println("json");
Object[] s_arr_val = {resultMap};
//String[] s_arr = {"6538700858"};
System.out.println(json);
System.out.println("json");
resultMapVal.put("businesses", s_arr_val); //파라미터 설정
json = mapper.writeValueAsString(resultMapVal); //convert map to JSON String(JSON으로 변환)
System.out.println("jsonVal");
System.out.println(json);
System.out.println("jsonVal");
msgMap = this.validateREST(sendUrl, json);
s_ret = this.jsonParser4Validate(msgMap);
String[] s_arr_ret_2 = s_ret.split("[|]");
System.out.println("s_arr_ret_2[0]");
System.out.println(s_arr_ret_2[0]);
System.out.println(s_arr_ret_2[1]);
if (s_arr_ret_2.length==2) {
if (!s_arr_ret_2[0].equals("01")) {
kakaoVO.setBizReturnCode("301");
kakaoVO.setBizReturnMsg(s_arr_ret_2[1]);
return kakaoVO;
}
}else {
kakaoVO.setBizReturnCode("302");
kakaoVO.setBizReturnMsg("알수없는오류(V)");
return kakaoVO;
}
//kakaoVO.setBizReturnCode(Integer.parseInt(s_arr_ret_2[0]));
kakaoVO.setBizReturnCode(s_arr_ret_2[0]);
kakaoVO.setBizReturnMsg(s_arr_ret_2[1]);
} catch (Exception e) {
e.printStackTrace();
//kakaoVO.setBizReturnCode(-1);
kakaoVO.setBizReturnCode("-1");
}
return kakaoVO;
}
/**
* @param kakaoVO
* @return
* 국세청 사업자등록번호 상태 조회
* I : 사업자 등록 번호 - b_no
* O : 납세자상태(코드)
* b_stt_cd string
* default: 01
* xml: OrderedMap { "name": "BSttCd" }
* 납세자상태(코드):
* 01: 계속사업자,
* 02: 휴업자,
* 03: 폐업자
* https://www.data.go.kr/data/15081808/openapi.do#/%EC%82%AC%EC%97%85%EC%9E%90%EB%93%B1%EB%A1%9D%20%EC%83%81%ED%83%9C%EC%A1%B0%ED%9A%8C%20API/status
*/
public KakaoVO BizNoCheckApiEx3(
KakaoVO kakaoVO
, String p_b_no //사업자등록번호
, String p_b_nm //업체명
, String p_p_nm //대표자명
, String p_start_dt //설립일(개업일)
) {
int responscCode = 0;
String s_ret = "";
try {
String sendUrl = "https://kapi.ppurio.com";
sendUrl = "https://api.odcloud.kr/api/nts-businessman/v1/status?serviceKey=R3ueuGhIUlsnCPeJKxKaxlpoEPPmkkL%2BOaDLvOyggrXtHPuxbWIUtlxAwnzhgUq1Hx%2Fc3gpbi%2BoLUq2Dt6rHBg%3D%3D";
HashMap<String, Object> resultMap = new HashMap();
//step3.진위확인
resultMap.put("b_no", p_b_no); //파라미터 설정
resultMap.put("start_dt", p_start_dt); //개업일자
resultMap.put("p_nm", p_p_nm); //대표자명
resultMap.put("b_nm", p_b_nm); //회사명
sendUrl = "https://api.odcloud.kr/api/nts-businessman/v1/validate?serviceKey=R3ueuGhIUlsnCPeJKxKaxlpoEPPmkkL%2BOaDLvOyggrXtHPuxbWIUtlxAwnzhgUq1Hx%2Fc3gpbi%2BoLUq2Dt6rHBg%3D%3D";
HashMap<String, Object> resultMapVal = new HashMap();
ObjectMapper mapper = new ObjectMapper();
String json = mapper.writeValueAsString(resultMap); //convert map to JSON String(JSON으로 변환)
System.out.println("json");
Object[] s_arr_val = {resultMap};
//String[] s_arr = {"6538700858"};
System.out.println(json);
System.out.println("json");
resultMapVal.put("businesses", s_arr_val); //파라미터 설정
json = mapper.writeValueAsString(resultMapVal); //convert map to JSON String(JSON으로 변환)
System.out.println("jsonVal");
System.out.println(json);
System.out.println("jsonVal");
String msgMap = this.validateREST(sendUrl, json);
s_ret = this.jsonParser4Validate(msgMap);
String[] s_arr_ret_2 = s_ret.split("[|]");
System.out.println("s_arr_ret_2[0]");
System.out.println(s_arr_ret_2[0]);
System.out.println(s_arr_ret_2[1]);
if (s_arr_ret_2.length==2) {
if (!s_arr_ret_2[0].equals("01")) {
kakaoVO.setBizReturnCode("301");
kakaoVO.setBizReturnMsg(s_arr_ret_2[1]);
return kakaoVO;
}
}else {
kakaoVO.setBizReturnCode("302");
kakaoVO.setBizReturnMsg("알수없는오류(V)");
return kakaoVO;
}
//kakaoVO.setBizReturnCode(Integer.parseInt(s_arr_ret_2[0]));
kakaoVO.setBizReturnCode(s_arr_ret_2[0]);
kakaoVO.setBizReturnMsg(s_arr_ret_2[1]);
} catch (Exception e) {
e.printStackTrace();
//kakaoVO.setBizReturnCode(-1);
kakaoVO.setBizReturnCode("-1");
}
return kakaoVO;
}
/**
* @param kakaoVO
* @return
* 국세청 사업자등록번호 상태 조회
* I : 사업자 등록 번호 - b_no
* O : 납세자상태(코드)
* b_stt_cd string
* default: 01
* xml: OrderedMap { "name": "BSttCd" }
* 납세자상태(코드):
* -1:알수없는 오류
* 0:국세청에 등록되지 않은 사업자등록번호입니다.
* 01: 계속사업자,
* 02: 휴업자,
* 03: 폐업자
* https://www.data.go.kr/data/15081808/openapi.do#/%EC%82%AC%EC%97%85%EC%9E%90%EB%93%B1%EB%A1%9D%20%EC%83%81%ED%83%9C%EC%A1%B0%ED%9A%8C%20API/status
*/
public KakaoVO BizNoAPICheckStep1(
KakaoVO kakaoVO
, String p_b_no //사업자등록번호
) {
//int responscCode = 0;
String s_ret = "";
try {
String sendUrl = "https://kapi.ppurio.com";
sendUrl = "https://api.odcloud.kr/api/nts-businessman/v1/status?serviceKey=R3ueuGhIUlsnCPeJKxKaxlpoEPPmkkL%2BOaDLvOyggrXtHPuxbWIUtlxAwnzhgUq1Hx%2Fc3gpbi%2BoLUq2Dt6rHBg%3D%3D";
String[] s_arr = {p_b_no};
HashMap<String, Object> resultMap = new HashMap();
resultMap.put("b_no", s_arr); //파라미터 설정
ObjectMapper mapper = new ObjectMapper();
String json = mapper.writeValueAsString(resultMap); //convert map to JSON String(JSON으로 변환)
//System.out.println("json");
//System.out.println(json);
//System.out.println("json");
//step1.상태조회
String msgMap = statusREST(sendUrl, json);
s_ret = this.jsonParser4Status(msgMap); //"" : 오류, "01"-부가가치세 일반관세자
String[] s_arr_ret = s_ret.split("[|]");
if (s_arr_ret.length==2) {
if ("".equals(s_arr_ret[0])) {
kakaoVO.setBizReturnCode("0");
kakaoVO.setBizReturnMsg(s_arr_ret[1]);
}else {
//kakaoVO.setBizReturnCode(Integer.parseInt(s_arr_ret[0]));
kakaoVO.setBizReturnCode(s_arr_ret[0]);
kakaoVO.setBizReturnMsg(s_arr_ret[1]);
}
}else {
kakaoVO.setBizReturnCode("-2");
kakaoVO.setBizReturnMsg("알수없는오류(S2)"); //구문오류
System.out.println("알수없는오류(S2)");
//return kakaoVO;
}
} catch (Exception e) {
e.printStackTrace();
kakaoVO.setBizReturnCode("-1");
kakaoVO.setBizReturnMsg("알수없는오류(S1)"); //구문오류
System.out.println("알수없는오류(S1)");
}
return kakaoVO;
}
/**
* @param kakaoVO
* @return
* 국세청 사업자등록번호 상태 조회
* I : 사업자 등록 번호 - b_no
* O : 납세자상태(코드)
* b_stt_cd string
* default: 01
* xml: OrderedMap { "name": "BSttCd" }
* 납세자상태(코드):
* STEP1. valid :
* 01 - 확인 가능
* 02 - 확인할 수 없습니다.
* 00 - 알수없는오류(0V)
*
* STEP2. 사업자등록번호 확인 :
* * -1:알수없는 오류
* 0:국세청에 등록되지 않은 사업자등록번호입니다.
* 11: 계속사업자,
* 12: 휴업자,
* 13: 폐업자
* https://www.data.go.kr/data/15081808/openapi.do#/%EC%82%AC%EC%97%85%EC%9E%90%EB%93%B1%EB%A1%9D%20%EC%83%81%ED%83%9C%EC%A1%B0%ED%9A%8C%20API/status
*/
public KakaoVO BizNoAPICheckStep3(
KakaoVO kakaoVO
, String p_b_no //사업자등록번호
, String p_b_nm //업체명
, String p_p_nm //대표자명
, String p_start_dt //설립일(개업일)
) {
int responscCode = 0;
String s_ret = "";
try {
String sendUrl = "https://kapi.ppurio.com";
sendUrl = "https://api.odcloud.kr/api/nts-businessman/v1/status?serviceKey=R3ueuGhIUlsnCPeJKxKaxlpoEPPmkkL%2BOaDLvOyggrXtHPuxbWIUtlxAwnzhgUq1Hx%2Fc3gpbi%2BoLUq2Dt6rHBg%3D%3D";
HashMap<String, Object> resultMap = new HashMap();
//step3.진위확인
resultMap.put("b_no", p_b_no); //파라미터 설정
resultMap.put("start_dt", p_start_dt); //개업일자
resultMap.put("p_nm", p_p_nm); //대표자명
resultMap.put("b_nm", p_b_nm); //회사명
sendUrl = "https://api.odcloud.kr/api/nts-businessman/v1/validate?serviceKey=R3ueuGhIUlsnCPeJKxKaxlpoEPPmkkL%2BOaDLvOyggrXtHPuxbWIUtlxAwnzhgUq1Hx%2Fc3gpbi%2BoLUq2Dt6rHBg%3D%3D";
HashMap<String, Object> resultMapVal = new HashMap();
ObjectMapper mapper = new ObjectMapper();
String json = mapper.writeValueAsString(resultMap); //convert map to JSON String(JSON으로 변환)
System.out.println("json");
Object[] s_arr_val = {resultMap};
//String[] s_arr = {"6538700858"};
System.out.println(json);
System.out.println("json");
resultMapVal.put("businesses", s_arr_val); //파라미터 설정
json = mapper.writeValueAsString(resultMapVal); //convert map to JSON String(JSON으로 변환)
System.out.println("jsonVal");
System.out.println(json);
System.out.println("jsonVal");
String msgMap = this.validateREST(sendUrl, json);
s_ret = this.jsonParser4ValidSttCD(msgMap);
System.out.println("s_ret========");
System.out.println(s_ret);
System.out.println(s_ret);
String[] s_arr_ret_2 = s_ret.split("[|]");
System.out.println("s_arr_ret_2[0]");
System.out.println(s_arr_ret_2.length);
System.out.println(s_arr_ret_2[0]);
System.out.println(s_arr_ret_2[1]);
System.out.println(s_arr_ret_2[2]);
System.out.println("s_arr_ret_2[0]");
if (s_arr_ret_2.length==3) {
if (s_arr_ret_2[0].equals("01")) {
if (s_arr_ret_2[1].equals("01")) {
kakaoVO.setBizReturnCode("11");
kakaoVO.setBizReturnMsg(s_arr_ret_2[2]);
}else if (s_arr_ret_2[1].equals("02")) {
kakaoVO.setBizReturnCode("12");
kakaoVO.setBizReturnMsg(s_arr_ret_2[2]);
}else if (s_arr_ret_2[1].equals("03")) {
kakaoVO.setBizReturnCode("13");
kakaoVO.setBizReturnMsg(s_arr_ret_2[2]);
}else {
//kakaoVO.setBizReturnCode(Integer.parseInt(s_arr_ret_2[1]));
kakaoVO.setBizReturnCode(s_arr_ret_2[1]);
kakaoVO.setBizReturnMsg(s_arr_ret_2[2]);
}
}else {
//kakaoVO.setBizReturnCode(Integer.parseInt(s_arr_ret_2[0]));
kakaoVO.setBizReturnCode(s_arr_ret_2[0]);
kakaoVO.setBizReturnMsg(s_arr_ret_2[2]);
}
}else {
//kakaoVO.setBizReturnCode(4);
kakaoVO.setBizReturnCode("4");
kakaoVO.setBizReturnMsg("검증실패(V4)");
return kakaoVO;
}
//kakaoVO.setBizReturnCode(Integer.parseInt(s_arr_ret_2[0]));
//kakaoVO.setBizReturnMsg(s_arr_ret_2[1]);
} catch (Exception e) {
e.printStackTrace();
kakaoVO.setBizReturnCode("-1");
kakaoVO.setBizReturnMsg("검증실패(V-1)");
}
return kakaoVO;
}
/////////////////////////////////////////////////////////////////////////////
//rest api 데이터 가져오기 - 상태조회
private String statusREST(String sendUrl, String jsonValue) throws IllegalStateException {
String inputLine = null;
StringBuffer outResult = new StringBuffer();
try{
//logger.debug("REST API Start");
System.out.println("REST API Start");
URL url = new URL(sendUrl);
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
conn.setDoOutput(true);
conn.setRequestMethod("POST");
conn.setRequestProperty("Content-Type", "application/json");
conn.setRequestProperty("Accept-Charset", "UTF-8");
conn.setConnectTimeout(10000);
conn.setReadTimeout(10000);
OutputStream os = conn.getOutputStream();
os.write(jsonValue.getBytes("UTF-8"));
os.flush();
System.out.println(jsonValue.getBytes("UTF-8").toString());
// 리턴된 결과 읽기
BufferedReader in = new BufferedReader(new InputStreamReader(conn.getInputStream(), "UTF-8"));
while ((inputLine = in.readLine()) != null) {
outResult.append(inputLine);
System.out.println(inputLine);
}
conn.disconnect();
System.out.println("REST API End");
//logger.debug("REST API End");
}catch(Exception e){
// logger.error(e.getMessage(), e);
e.printStackTrace();
}
System.out.println("outResult.toString()");
System.out.println(outResult.toString());
System.out.println("outResult.toString()");
return outResult.toString();
}
//rest api 데이터 가져오기
private String jsonParser4Status(String p_parserData) throws Exception {
String s_ret = "";
try {
JSONParser jsonParser = new JSONParser();
//JSON데이터를 넣어 JSON Object 로 만들어 준다.
JSONObject jsonObject = (JSONObject) jsonParser.parse(p_parserData);
//books의 배열을 추출
JSONArray bookInfoArray = (JSONArray) jsonObject.get("data");
System.out.println("* DATAS *");
/*
for(int i=0; i<bookInfoArray.size(); i++){
System.out.println("=BOOK_"+i+" ===========================================");
//배열 안에 있는것도 JSON형식 이기 때문에 JSON Object 로 추출
JSONObject bookObject = (JSONObject) bookInfoArray.get(i);
//JSON name으로 추출
System.out.println("bookInfo: name==>"+bookObject.get("b_no"));
System.out.println("bookInfo: writer==>"+bookObject.get("b_stt"));
System.out.println("bookInfo: price==>"+bookObject.get("b_stt_cd"));
System.out.println("bookInfo: genre==>"+bookObject.get("tax_type"));
System.out.println("bookInfo: publisher==>"+bookObject.get("tax_type_cd"));
}
*/
if (bookInfoArray.size()>0) {
//배열 안에 있는것도 JSON형식 이기 때문에 JSON Object 로 추출
JSONObject bookObject = (JSONObject) bookInfoArray.get(0);
s_ret = (String)bookObject.get("b_stt_cd")+"|"+(String)bookObject.get("tax_type");
}
/*
JSONArray personInfoArray = (JSONArray) jsonObject.get("persons");
System.out.println("\r\n* PERSONS *");
for(int i=0; i<personInfoArray.size(); i++){
System.out.println("=PERSON_"+i+" ===========================================");
JSONObject personObject = (JSONObject) personInfoArray.get(i);
System.out.println("personInfo: name==>"+personObject.get("name"));
System.out.println("personInfo: age==>"+personObject.get("age"));
System.out.println("personInfo: gender==>"+personObject.get("gender"));
System.out.println("personInfo: nickname==>"+personObject.get("nickname"));
}
*/
}catch(Exception ex) {
//} catch (ParseException e) {
// TODO Auto-generated catch block
s_ret = "|알수없는오류(4S)";
ex.printStackTrace();
}
System.out.println("s_ret");
System.out.println(s_ret);
System.out.println(s_ret);
return s_ret;
}
//rest api 데이터 가져오기 - 진위확인
private String validateREST(String sendUrl, String jsonValue) throws IllegalStateException {
String inputLine = null;
StringBuffer outResult = new StringBuffer();
try{
//logger.debug("REST API Start");
System.out.println("REST API Start");
URL url = new URL(sendUrl);
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
conn.setDoOutput(true);
conn.setRequestMethod("POST");
conn.setRequestProperty("Content-Type", "application/json");
conn.setRequestProperty("Accept-Charset", "UTF-8");
conn.setConnectTimeout(10000);
conn.setReadTimeout(10000);
OutputStream os = conn.getOutputStream();
os.write(jsonValue.getBytes("UTF-8"));
os.flush();
System.out.println(jsonValue.getBytes("UTF-8").toString());
// 리턴된 결과 읽기
BufferedReader in = new BufferedReader(new InputStreamReader(conn.getInputStream(), "UTF-8"));
while ((inputLine = in.readLine()) != null) {
outResult.append(inputLine);
System.out.println(inputLine);
}
conn.disconnect();
System.out.println("REST API End");
//logger.debug("REST API End");
}catch(Exception e){
// logger.error(e.getMessage(), e);
e.printStackTrace();
}
System.out.println("outResult.toString()");
System.out.println(outResult.toString());
System.out.println("outResult.toString()");
return outResult.toString();
}
//rest api 데이터 가져오기
private String jsonParser4Validate(String p_parserData) throws Exception {
String s_ret = "";
try {
JSONParser jsonParser = new JSONParser();
//JSON데이터를 넣어 JSON Object 로 만들어 준다.
JSONObject jsonObject = (JSONObject) jsonParser.parse(p_parserData);
//books의 배열을 추출
JSONArray bookInfoArray = (JSONArray) jsonObject.get("data");
if (bookInfoArray.size()>0) {
//배열 안에 있는것도 JSON형식 이기 때문에 JSON Object 로 추출
JSONObject bookObject = (JSONObject) bookInfoArray.get(0);
//books의 배열을 추출
JSONObject bookStatusObject = (JSONObject) bookObject.get("status");
//s_ret = (String)bookStatusObject.get("b_stt_cd")+"|"+(String)bookStatusObject.get("tax_type");
s_ret = (String)bookStatusObject.get("b_stt_cd")+"|"+(String)bookStatusObject.toString();
}
}catch(Exception ex) {
//} catch (ParseException e) {
// TODO Auto-generated catch block
ex.printStackTrace();
s_ret = "|알수없는오류(4V)";
}
return s_ret;
}
//rest api 데이터 가져오기
/**
* @param p_parserData
* @return valid|stt_cd
* valid - 01 정상
* 02 오류
* stt_cd - 01 - 계속사업자
* 02 - 휴업
* 03 - 폐업
* @throws Exception
*/
private String jsonParser4ValidSttCD(String p_parserData) throws Exception {
String s_ret = "";
try {
JSONParser jsonParser = new JSONParser();
//JSON데이터를 넣어 JSON Object 로 만들어 준다.
JSONObject jsonObject = (JSONObject) jsonParser.parse(p_parserData);
//books의 배열을 추출
JSONArray bookInfoArray = (JSONArray) jsonObject.get("data");
if (bookInfoArray.size()>0) {
//배열 안에 있는것도 JSON형식 이기 때문에 JSON Object 로 추출
JSONObject bookObject = (JSONObject) bookInfoArray.get(0);
s_ret = (String)bookObject.get("valid");
if ("01".equals(s_ret)) {
//books의 배열을 추출
JSONObject bookStatusObject = (JSONObject) bookObject.get("status");
//s_ret = (String)bookStatusObject.get("b_stt_cd")+"|"+(String)bookStatusObject.get("tax_type");
s_ret = s_ret
+ "|" + (String)bookStatusObject.get("b_stt_cd")
+ "|" + (String)bookStatusObject.get("b_stt");
}else if ("02".equals(s_ret)) {
try{
//books의 배열을 추출
String s_msg = (String) bookObject.get("valid_msg");
//s_ret = (String)bookStatusObject.get("b_stt_cd")+"|"+(String)bookStatusObject.get("tax_type");
s_ret = s_ret
+ "|02"
+ "|(국세청 : 02 - " + s_msg +")";
}catch(Exception ex) {
//} catch (ParseException e) {
// TODO Auto-generated catch block
ex.printStackTrace();
s_ret = "00|02|(국세청 : 02 - valid_msg 없음)";
}
}else{
s_ret = " |"+s_ret+"| "+s_ret;
}
}
}catch(Exception ex) {
//} catch (ParseException e) {
// TODO Auto-generated catch block
ex.printStackTrace();
s_ret = "00| |국세청 검증결과 데이터 파싱실패(0V)";
}
return s_ret;
}
//rest api 데이터 가져오기 - 사이트 크롤링
private Document bizNoCrawling(String sendUrl) throws Exception {
String s_url = sendUrl;
Document doc = null; //Document에는 페이지의 전체 소스가 저장된다
try{
//2.페이지 호출
doc = Jsoup.connect(s_url).get();
}catch(Exception ex){
ex.printStackTrace();
}
return doc;
}
//rest api 데이터 가져오기 - 사이트 크롤링
private Elements extractElements(
Document p_doc
, String p_selectQuery
) throws Exception {
//3.상세 url 추출
Elements elements = p_doc.select(p_selectQuery);
return elements;
}
//rest api 데이터 가져오기 - 사이트 크롤링 글자 찾기
private String findElementsData(
Elements p_element
, String p_findData
) throws Exception {
//3.상세 data 값 찾기
String s_ret = "";
// SOLR 결과값 디크립트 부분
for (int i=0;i<p_element.size();i++) {
Element f_ele = p_element.get(i);
if (f_ele.select("th").text().indexOf(p_findData)>-1) {
if (!"".equals(f_ele.select("td").text())) {
s_ret = f_ele.select("td").text();
}
}
}
return s_ret;
}
//rest api 데이터 가져오기 - 사이트 크롤링
private String printElements(
Elements p_els
) throws Exception {
String s_ret = "";
//3.상세 url 추출
for (int i=0;i<p_els.size();i++) {
if (!"".equals(p_els.get(i).text())) {
s_ret = p_els.get(i).text();
}
}
return s_ret;
}
//rest api 데이터 가져오기
private void jsonBizNoParser(String p_parserData) throws Exception {
try {
System.out.println("p_parserData");
System.out.println(p_parserData);
System.out.println("p_parserData");
JSONParser jsonParser = new JSONParser();
//JSON데이터를 넣어 JSON Object 로 만들어 준다.
JSONObject jsonObject = (JSONObject) jsonParser.parse(p_parserData);
//books의 배열을 추출
JSONArray bookInfoArray = (JSONArray) jsonObject.get("data");
System.out.println("* DATAS *");
for(int i=0; i<bookInfoArray.size(); i++){
System.out.println("=BOOK_"+i+" ===========================================");
//배열 안에 있는것도 JSON형식 이기 때문에 JSON Object 로 추출
JSONObject bookObject = (JSONObject) bookInfoArray.get(i);
//JSON name으로 추출
System.out.println("bookInfo: name==>"+bookObject.get("b_no"));
System.out.println("bookInfo: writer==>"+bookObject.get("b_stt"));
System.out.println("bookInfo: price==>"+bookObject.get("b_stt_cd"));
System.out.println("bookInfo: genre==>"+bookObject.get("tax_type"));
System.out.println("bookInfo: publisher==>"+bookObject.get("tax_type_cd"));
}
/*
JSONArray personInfoArray = (JSONArray) jsonObject.get("persons");
System.out.println("\r\n* PERSONS *");
for(int i=0; i<personInfoArray.size(); i++){
System.out.println("=PERSON_"+i+" ===========================================");
JSONObject personObject = (JSONObject) personInfoArray.get(i);
System.out.println("personInfo: name==>"+personObject.get("name"));
System.out.println("personInfo: age==>"+personObject.get("age"));
System.out.println("personInfo: gender==>"+personObject.get("gender"));
System.out.println("personInfo: nickname==>"+personObject.get("nickname"));
}
*/
}catch(Exception ex) {
//} catch (ParseException e) {
// TODO Auto-generated catch block
ex.printStackTrace();
}
}
}