package itn.let.uat.uia.web;

import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.servlet.ModelAndView;

import itn.com.cmm.EgovMessageSource;
import itn.let.kakao.kakaoComm.KakaoVO;
import itn.let.utl.user.service.CheckNoServiceCommon;

/**
 * 사용자 체크 사항을 처리하는 컨트롤러 클래스
 * 
 * @author 공통서비스 개발팀 박지욱
 * @since 2009.03.06
 * @version 1.0
 * @see
 *
 *      <pre>
 * << 개정이력(Modification Information) >>
 *
 *   수정일      수정자          수정내용
 *  -------    --------    ---------------------------
 *  2009.03.06  박지욱          최초 생성
 *  2011.08.31  JJY            경량환경 템플릿 커스터마이징버전 생성
 *
 *      </pre>
 */
@Controller
public class UserCheckController {

	/** EgovMessageSource */
    @Resource(name="egovMessageSource")
    EgovMessageSource egovMessageSource;
    
    //@Autowired
    //CheckNoServiceCommon checkNoServiceCommon;

	/** EgovMessageSource */
    @Resource(name="checkNoServiceCommon")
    CheckNoServiceCommon checkNoServiceCommon;
    
    /**
     * @param kakaoVO
     * @param request
     * @param modelAndView
     * @return 사업자 등록번호를 받아서 국세청API를 통해서 진위 여부를 확인한다.
     * @throws Exception
     * 	            	
	            	 *  -1:알수없는 오류
	            	 *  0:국세청에 등록되지 않은 사업자등록번호입니다.
	            	 *  01: 계속사업자,
	            	 *  02: 휴업자,
	            	 *  03: 폐업자
     */
    @RequestMapping(value= {"/web/mjon/user/checkBizNoTestAjax.do"})
	public ModelAndView checkBizNoTestAjax(KakaoVO kakaoVO
			, HttpServletRequest request
		, ModelAndView modelAndView
		) throws Exception {
		//json 알림
		modelAndView.setViewName("jsonView");
		
		System.out.println("bizId " );
		System.out.println("Kakao " );
		//System.out.println(request.getParameter("b_no") );
		
		
		try {
			//String s_b_no	=	request.getParameter("b_no");
			String s_b_no	=	request.getParameter("b_no").replaceAll("-", "");	//사업자등록번호
			//String s_b_nm	=	request.getParameter("b_nm");	//업체명
			//String s_p_nm	=	request.getParameter("p_nm");	//대표자명

			
			//KakaoVO kakaoInfo =  checkNoServiceCommon.BizNoCheckApi(kakaoVO);
			KakaoVO kakaoInfo =  checkNoServiceCommon.BizNoAPICheckStep1(
					kakaoVO
					, s_b_no
					);
			
			modelAndView.addObject("kakaoInfo", kakaoInfo);
			modelAndView.addObject("result", kakaoInfo.getBizReturnCode());
			
		}catch(Exception ex){
			ex.printStackTrace();
			
			modelAndView.addObject("message", egovMessageSource.getMessage("fail.common.update"));
			modelAndView.addObject("result", "fail");
		}
		
		return modelAndView;
    }
    
    /**
     * @param kakaoVO
     * @param request
     * @param modelAndView
     * @return 사업자등록번호, 회사명, 설립일, 대표자명을 국세청API를 통해서 진위 확인을 한다.
     * @throws Exception
     * 
     * STEP1. valid : 
     * 					01 	-	확인 가능
     * 					02	-	확인할 수 없습니다.
     * 
     * STEP2. 사업자등록번호 확인 :  	
     * 	            	 *  -1:알수없는 오류
	            	 *  0:국세청에 등록되지 않은 사업자등록번호입니다.
	            	 *  01: 계속사업자,
	            	 *  02: 휴업자,
	            	 *  03: 폐업자
     */
    @RequestMapping(value= {"/uss/umt/user/checkBizNoTaxAjax.do"})
	public ModelAndView checkBizNoTaxAjax(KakaoVO kakaoVO
			, HttpServletRequest request
		, ModelAndView modelAndView
		) throws Exception {
		//json 알림
		modelAndView.setViewName("jsonView");
		
		System.out.println("bizId " );
		System.out.println("Kakao " );
		//System.out.println(request.getParameter("b_no") );
		
		
		try {
			//String s_b_no	=	request.getParameter("b_no");
			String s_b_no		=	request.getParameter("b_no").replaceAll("-", "");	//사업자등록번호
			String s_b_nm		=	request.getParameter("b_nm");	//업체명
			String s_p_nm		=	request.getParameter("p_nm");	//대표자명
			String s_start_dt	=	request.getParameter("start_dt").replaceAll("-", "");	//설립일자

			System.out.println("s_start_dt");
			System.out.println(s_start_dt);
			System.out.println(s_start_dt);
			
			//KakaoVO kakaoInfo =  checkNoServiceCommon.BizNoCheckApi(kakaoVO);
			KakaoVO kakaoInfo =  checkNoServiceCommon.BizNoAPICheckStep3(
					kakaoVO
					, s_b_no
					, s_b_nm
					, s_p_nm
					, s_start_dt
					);
			
			modelAndView.addObject("msg", kakaoInfo.getBizReturnMsg());
			modelAndView.addObject("result", kakaoInfo.getBizReturnCode());
			
		}catch(Exception ex){
			ex.printStackTrace();
			
			modelAndView.addObject("message", egovMessageSource.getMessage("fail.common.update"));
			modelAndView.addObject("result", "fail");
		}
		
		return modelAndView;
    }
}
