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 OUTDataServlet extends com.avaya.sce.runtime.BasicServlet {
private static final boolean List = false;
private static Logger log = Logger.getLogger(OUTDataServlet.class);
//{{START:CLASS:FIELDS
//}}END:CLASS:FIELDS
/**
* Default constructor
* Last generated by Orchestration Designer at: 2020年3月23日 上午05时27分20秒
*/
public OUTDataServlet() {
//{{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("OUTDataServlet开始时间=======" + df.format(new Date()));
String ani = mySession.getVariableField(IProjectVariables.SESSION,
IProjectVariables.SESSION_FIELD_ANI).getStringValue();
log.info("OUTDataServlet 来电号码=======" + ani);
String zcd_menu = mySession.getVariableField(IProjectVariables.ZCD_MENU,IProjectVariables.ZCD_MENU_FIELD_VALUE).getStringValue();
String jszc_menu = mySession.getVariableField(IProjectVariables.JSZC_MENU,IProjectVariables.JSZC_MENU_FIELD_VALUE).getStringValue();
String isvip = mySession.getVariableField(IProjectVariables.IS_VIP).getStringValue();
if(jszc_menu.equals("")||jszc_menu==null){
jszc_menu="0";
}
String data=null;
if (isvip.equals("1")) {
data="key1="+0+"|key2="+0;
mySession.getVariableField(IProjectVariables.UUI).setValue(data);
mySession.getVariableField(IProjectVariables.PHONE).setValue("1068");
String phone = mySession.getVariableField(IProjectVariables.PHONE).getStringValue();
log.info("OUTDataServlet 呼出号码是=======" + phone);
}else {
data="key1="+zcd_menu+"|key2="+jszc_menu;
mySession.getVariableField(IProjectVariables.UUI).setValue(data);
if(zcd_menu.equals("1")){
mySession.getVariableField(IProjectVariables.PHONE).setValue("1002");
String phone = mySession.getVariableField(IProjectVariables.PHONE).getStringValue();
log.info("OUTDataServlet 呼出号码是=======" + phone);
}else if (zcd_menu.equals("2")) {
if (jszc_menu.equals("1")) {
mySession.getVariableField(IProjectVariables.PHONE).setValue("1004");
String phone = mySession.getVariableField(IProjectVariables.PHONE).getStringValue();
log.info("OUTDataServlet 呼出号码是=======" + phone);
}else if(jszc_menu.equals("2")){
mySession.getVariableField(IProjectVariables.PHONE).setValue("1006");
String phone = mySession.getVariableField(IProjectVariables.PHONE).getStringValue();
log.info("OUTDataServlet 呼出号码是=======" + phone);
}else {
mySession.getVariableField(IProjectVariables.PHONE).setValue("1013");
String phone = mySession.getVariableField(IProjectVariables.PHONE).getStringValue();
log.info("OUTDataServlet 呼出号码是=======" + phone);
}
}else if (zcd_menu.equals("3")) {
mySession.getVariableField(IProjectVariables.PHONE).setValue("1008");
String phone = mySession.getVariableField(IProjectVariables.PHONE).getStringValue();
log.info("OUTDataServlet 呼出号码是=======" + phone);
}else{
mySession.getVariableField(IProjectVariables.PHONE).setValue("1010");
String phone = mySession.getVariableField(IProjectVariables.PHONE).getStringValue();
log.info("OUTDataServlet 呼出号码是=======" + phone);
}
}
log.info("OUTDataServlet UCID 是 :"+mySession.getVariableField(IProjectVariables.SESSION,IProjectVariables.SESSION_FIELD_UCID).getStringValue()+" 来电号码是 :"+mySession.getVariableField(IProjectVariables.SESSION,IProjectVariables.SESSION_FIELD_ANI).getStringValue()+"传输参数======="+data);
// 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.
*
* 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.
*
* 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:
* updateBranches(Collection branches, SCESession mySession)
*
* @return a Collection of com.avaya.sce.runtime.Goto
* 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("ZxjyAnnounce", 0, true, "Default");
list.add(aGoto);
return list;
}
}