package flow;

import java.text.SimpleDateFormat;
import java.util.Date;

import org.apache.log4j.Logger;
import org.codehaus.jettison.json.JSONObject;

/**
 * A basic servlet which allows a user to define their code, generate
 * any output, and to select where to transition to next.
 * Last generated by Orchestration Designer at: 2020年3月23日 上午05时27分20秒
 */
public class IsVIPServlet extends com.avaya.sce.runtime.BasicServlet {
	private static final boolean List = false;
	private static Logger log = Logger.getLogger(IsVIPServlet.class);
	//{{START:CLASS:FIELDS
	//}}END:CLASS:FIELDS

	/**
	 * Default constructor
	 * Last generated by Orchestration Designer at: 2020年3月23日 上午05时27分20秒
	 */
	public IsVIPServlet() {
		//{{START:CLASS:CONSTRUCTOR
		super();
		//}}END:CLASS:CONSTRUCTOR
	}

	/**
	 * This method allows for custom integration with other Java components.
	 * You may use Java for sophisticated logic or to integrate with custom
	 * connectors (i.e. JMS, custom web services, sockets, XML, JAXB, etc.)
	 *
	 * Any custom code added here should work as efficiently as possible to prevent delays.
	 * It's important to design your callflow so that the voice browser (Voice Portal/IR)
	 * is not waiting too long for a response as this can lead to a poor caller experience.
	 * Additionally, if the response to the client voice browser exceeds the configured
	 * timeout, the platform may throw an "error.badfetch". 
	 *
	 * Using this method, you have access to all session variables through the 
	 * SCESession object.
	 *
	 * The code generator will *** NOT *** overwrite this method in the future.
	 * Last generated by Orchestration Designer at: 2020年3月23日 上午05时27分20秒
	 */
	public void servletImplementation(com.avaya.sce.runtimecommon.SCESession mySession) {
		SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss:SSS");
		
		log.info("IsVIPServlet开始时间=======" + df.format(new Date()));
		
		String ani = mySession.getVariableField(IProjectVariables.SESSION,
				IProjectVariables.SESSION_FIELD_ANI).getStringValue();
		log.info("IsVIPServlet   来电号码=======" + ani);
		
		/*
		
		Date nowDate = new Date();
		String isTime2="0";
		long nowint=0;
		long dt1 = Integer.parseInt("080000");
		long dt2 = Integer.parseInt("200000");
		long dt3 = Integer.parseInt("170000");
		long dt4 = Integer.parseInt("203000");
		long dt5 = Integer.parseInt("210000");
		
		nowint = Integer.parseInt(df.format(nowDate).toString());
		
		if(nowint>dt1 && nowint <= dt2) {
			log.debug("打入时间是08：00---20：00");
			mySession.getVariableField(IProjectVariables.IS_TIME).setValue(1);
			isTime2="1";
		}*/
		
			
			
		try {
			PostHttp cf = new PostHttp();
			JSONObject jsonObject1 = new JSONObject();

			jsonObject1.put("sys_source", "AVAYA");
			jsonObject1.put("type", "");
			jsonObject1.put("idno", "");
			jsonObject1.put("phoneno", ani);
			
			//System.out.println(jsonObject1.get("phone").toString());
			//String post = cf.send("http://172.17.144.165:8080/EliteGeneralHttpTask/api/api_getcustinfo",jsonObject1);// (jsonObject1,
			log.info("IsVIPServlet  来电号码是:        "+ani+"       json是     :"+jsonObject1.toString());
			//String post = cf.send("https://callcenter.realmeservice.com/EliteGeneralHttpTask/api/api_getcustinfo",jsonObject1);// (jsonObject1,
			String post = HttpClientUtil.doPost("https://callcenter.realmeservice.com/EliteGeneralHttpTask/api/api_getcustinfo", jsonObject1, "utf-8");// (jsonObject1,
			log.info("IsVIPServlet  来电号码是:        "+ani+"       返回值     :"+post);
			String code = null;
			String message = null;
			Object data = null;
			JSONObject jo = new JSONObject(post);
			
			try {
				
				code = (String) jo.get("code");
				log.info("IsVIPServlet  来电号码是:        "+ani+"       返回值code是     :"+code);
				message = (String) jo.get("message");
				data = jo.get("data");
				if(code.equals("1")){
					String fhdata =data+"";
					JSONObject jodata = new JSONObject(fhdata);
					//String isvip = (String) jodata.get("custisvip");
					String isvip = (String) jodata.get("custtype");
					if(isvip.equals("1")){
						 mySession.getVariableField(IProjectVariables.IS_VIP).setValue(1);
					}
				}

			} catch (Exception e) {
				log.info("此用户 不是VIP名单中人员");
				log.debug("此用户 不是VIP名单中人员");
			}
			
		} catch (Exception e) {
			log.info("IsVIPServlet  来电号码是:        "+ani+"       接口错误     :"+e.getMessage());
		}
		// TODO: Add your code here!

	}
	/**
	 * Builds the list of branches that are defined for this servlet object.
	 * This list is built automatically by defining Goto nodes in the call flow editor.
	 * It is the programmer's responsibilty to provide at least one enabled Goto.<BR>
	 *
	 * The user should override updateBranches() to determine which Goto that the
	 * framework will activate.  If there is not at least one enabled Goto item, 
	 * the framework will throw a runtime exception.<BR>
	 *
	 * This method is generated automatically and changes to it may
	 * be overwritten next time code is generated.  To modify the list
	 * of branches for the flow item, override:
	 *     <code>updateBranches(Collection branches, SCESession mySession)</code>
	 *
	 * @return a Collection of <code>com.avaya.sce.runtime.Goto</code>
	 * objects that will be evaluated at runtime.  If there are no gotos
	 * defined in the Servlet node, then this returns null.
	 * Last generated by Orchestration Designer at: 2021年12月20日 下午09时59分54秒
	 */
	public java.util.Collection getBranches(com.avaya.sce.runtimecommon.SCESession mySession) {
		java.util.List list = null;
		com.avaya.sce.runtime.Goto aGoto = null;
		list = new java.util.ArrayList(1);

		aGoto = new com.avaya.sce.runtime.Goto("GetDATA", 0, true, "Default");
		list.add(aGoto);

		return list;
	}
}
