package com.ck.soft.sp;
import com.ck.base.BaseObject;
import com.ck.base.Data;
//import com.ck.soft.sp.prog.chat.MsnProxy;
//import com.ck.soft.sp.prog.chat.UserTools;
import com.ck.soft.sp.prog.comm.SmsCommMenu;
import com.ck.soft.sp.proxy.ISMGProxy;
import com.ck.soft.sp.task.DefaultTask;
import com.ck.soft.sp.task.InvalidTaskCommandLineException;
import com.ck.soft.sp.task.SpTask;
import com.ck.soft.sp.task.TaskNotExistException;
import com.ck.soft.sp.task.TaskReSendSmc;
import com.ck.soft.sp.task.TaskReSendSms;
import com.ck.soft.sp.task.TaskSimulateUserIOD;
import com.ck.soft.sp.task.TaskSmcBatchSend;
import com.ck.soft.sp.task.TaskSmsBatchSend;
import com.ck.util.Context;
import com.ck.util.DataBaseResourceBundle;
import com.ck.util.LostNecessaryParameterException;
import com.ck.util.ResourceBoundleUtil;
import com.ck.util.StringUtils;
import com.ck.util.ThreadPool;
import com.ck.util._Properties;
import com.ck.util.consumer.Consumer;
import com.ck.util.db.DBConnectionManager;
import com.ck.util.logger.Logger;
import com.ck.util.queue.TimeoutHashtable;
import java.io.UnsupportedEncodingException;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.sql.Timestamp;
import java.util.ArrayList;
import java.util.Enumeration;
import java.util.Hashtable;
import java.util.MissingResourceException;
import java.util.Vector;
public class SmsDispatch extends BaseObject
{
protected static ISMGProxy proxy = null;
protected static DBConnectionManager dbConnectionManager = null;
private static ThreadPool threadPool = null;
protected static String appDbConn = null;
protected static String sysDbConn = null;
public static boolean needForwardReport = false;
private static String consoleRealm = null;
private static int recommandMatchMOde = 0;
private static int pageSize;
public static String msgContentDelimit = "";
public static String msgCrtSign = "";
public static String msgFlashSign = "";
private static Vector progList = new Vector();
private static Hashtable allResourceList = new Hashtable();
private static Hashtable allServiceidList = new Hashtable();
private static Hashtable allPushServiceList = new Hashtable();
private static Hashtable filterKeyList = new Hashtable();
private static Hashtable freeNumberList = new Hashtable();
private static Hashtable testTermidList = new Hashtable();
private static Hashtable allRecommand = new Hashtable();
private static Hashtable allForwardResourceList = new Hashtable();
private static Hashtable allDefaultResourceList = new Hashtable();
private static Hashtable spinfoList = new Hashtable();
private static Hashtable reportDeliverUrlList = new Hashtable();
private static SmsProcQueue mobileMoQueue = null;
private static SmsProcQueue mobileMtQueue = null;
private static SmsProcQueue orderMoQueue = null;
private static SmsProcQueue orderMtQueue = null;
private static SmsProcQueue spProxyMoQueue = null;
private static SmsProcQueue spProxyMtQueue = null;
private static SmsProcQueue rptQueue = null;
private static SmsProcQueue doLogQueue = null;
private static Hashtable taskList = new Hashtable();
private static TimeoutHashtable timeoutHash = new TimeoutHashtable();
public static boolean sendSmcAtOnce = false;
private static boolean userOderService = false;
public static String spcodeKey = "gatewayip";
private static boolean doFilter = false;
public static final String STD_TASK_SEND_SMC = "send_smc";
public static final String STD_TASK_SEND_MESSAGE = "send_sms";
public static final String STD_TASK_ORDER_TRIGGER = "order_trigger";
public static final String STD_TASK_RESEND = "resendsmc";
public static final String _STD_TASK_RESEND = "resendsms";
public static final String STD_DEFAULT_TASK = "default";
private static final String SP_KEY_WITH_SPNUM = "spnumber";
private static final String SP_KEY_WITH_GATEWAY_IP = "gatewayip";
private static final String SP_KEY_WITH_GATEWAY_IP_PORT = "gatewary_ip_port";
private static final Runtime s_runtime;
public static Hashtable getTestTermList()
{
return testTermidList;
}
private static Vector SmsPretreatment(SmsMT smsmt)
{
Vector vector = new Vector();
makeCrt(smsmt);
makeFlash(smsmt);
makeNoPress(smsmt);
String s = smsmt.getMsgContent();
String as[] = messageSlipt(s, msgContentDelimit);
//label0:
for (int i = 0; i < as.length; i++)
{
SmsMT smsmt1 = new SmsMT(smsmt);
smsmt1.setMsgContent(as[i], as[i].matches("[\\x00-\\xff]{0,}") ? 0 : 15);
smsmt1.setMsglen(as[i].length());
if (smsmt1.isTextMessage())
{
String as1[] = messageSlipt(as[i], smsmt1.getMsgFormat(), pageSize);
int j = 0;
do
{
if (j >= as1.length)
return vector;
SmsMT smsmt2 = new SmsMT(smsmt);
smsmt2.setMsgContent(as1[j], smsmt1.getMsgFormat());
smsmt2.setMsglen(as1[j].length());
if (!StringUtils.nullOrBlank(smsmt2.getMsgContent())){
vector.add(smsmt2);
}else{
return vector;
}
j++;
} while (true);
}
if (!StringUtils.nullOrBlank(smsmt1.getMsgContent()))
vector.add(smsmt1);
}
return vector;
}
private static String[] messageSlipt(String paramString1, String paramString2)
{
return paramString1.split(paramString2);
}
private static boolean isValidSpcode(String paramString)
{
SpInfo localSpInfo = (SpInfo)spinfoList.get(paramString);
if (localSpInfo != null)
return (!(StringUtils.nullOrBlank(localSpInfo.spcode)));
return false;
}
private static String[] messageSlipt(String s, int i, int j)
{
byte abyte0[] = s.getBytes();
String as[] = null;
int k = i != 15 ? j * 2 + 10 : j;
try
{
String s1 = new String(abyte0, Data.LOCAL_CHAR_SET);
byte byte0 = 5;
String s2 = new String("".getBytes(), Data.LOCAL_CHAR_SET);
String s3 = new String("".getBytes(), Data.LOCAL_CHAR_SET);
if (s1.length() > k)
{
k = k - byte0 - s2.length();
int l = s1.length() % k != 0 ? s1.length() / k + 1 : s1.length() / k;
as = new String[l];
int i1 = 0;
int j1 = k;
for (int k1 = 0; k1 < l; k1++)
{
if (k1 == l - 1)
as[k1] = "[" + (k1 + 1) + "/" + l + "]" + new String((s1.substring(i1) + s3).getBytes(Data.LOCAL_CHAR_SET));
else
if (l > 1)
as[k1] = "[" + (k1 + 1) + "/" + l + "]" + new String((s1.substring(i1, j1) + s2).getBytes(Data.LOCAL_CHAR_SET));
i1 += k;
j1 += k;
}
} else
{
as = new String[1];
as[0] = s;
}
}
catch (UnsupportedEncodingException unsupportedencodingexception)
{
logger.error(unsupportedencodingexception, "not suport this charset:" + i);
}
return as;
}
private static void makeCrt(SmsMT paramSmsMT)
{
if (paramSmsMT.isTextMessage())
paramSmsMT.setMsgContent(paramSmsMT.getMsgContent().replaceAll(msgCrtSign, "\n"));
}
private static void makeFlash(SmsMT paramSmsMT)
{
if (paramSmsMT.isTextMessage())
paramSmsMT.setMsgContent(paramSmsMT.getMsgContent().replaceAll(msgCrtSign, "\1"));
}
private static void makeNoPress(SmsMT paramSmsMT)
{
}
private static void registerTask(String paramString, SpTask paramSpTask)
{
taskList.put(paramString, paramSpTask);
}
private static SpTask getTask(String paramString)
{
if (taskList.containsKey(paramString))
return ((SpTask)taskList.get(paramString));
throw new Error("not found your specifyed task");
}
private static long usedMemory()
{
return (s_runtime.totalMemory() - s_runtime.freeMemory());
}
private static long freeMemory()
{
return s_runtime.freeMemory();
}
private static long totalMemory()
{
r
- 1
- 2
- 3
- 4
- 5
- 6
前往页