📄 smsclient.java
字号:
package com.khan.sms;
import java.util.List;
import java.util.ArrayList;
import com.khan.db.DBConPool;
import com.khan.db.DBPoolCon;
import java.io.*;
import com.khan.file.LoadResourceIni;
/**
* <p>Title: 收发短信 </p>
* <p>Description: </p>
* <p>Copyright: Copyright (c) 2006</p>
* <p>Company: </p>
* @author not attributable
* @version 1.0
*/
public class SmsClient {
private String DBDriver= DBConPool.MYSQL_DRIVER;
private String DBURL="jdbc:mysql://192.168.13.10:3306/cmgw?useUnicode=true&characterEncoding=GBK";//"jdbc:postgresql://127.0.0.1:9055/smscgw";
private String DBUser ="liukun";
private String DBPassword="liukun";//"52play2*0*0*5";
private int MaxConnection = 3;
private int ConnectionTimeOut = 60;
private boolean isjndi =false;
private String JndiName = "";
private String Enerprise_code = "999999";
DBConPool dbp = null;//new DBConPool(DBDriver, DBURL, DBUser,DBPassword , MaxConnection, ConnectionTimeOut);
String SP_Port = "86138";
/**
* 构造器
* @param sp_port String 主端口号
*/
public SmsClient(String sp_port) {
this.SP_Port = sp_port;
dbp = new DBConPool(DBDriver, DBURL, DBUser,DBPassword , MaxConnection, ConnectionTimeOut);
}
public SmsClient(){
com.khan.file.LoadResourceIni li = new com.khan.file.LoadResourceIni("dbpool.properties");
try {
DBDriver=li.readINI("DBDriver");
DBURL=li.readINI("DBURL");
DBUser=li.readINI("DBUser");
DBPassword=li.readINI("DBPassword");
MaxConnection=Integer.parseInt( li.readINI("MaxConnection") );
ConnectionTimeOut =Integer.parseInt( li.readINI("ConnectionTimeOut") );
SP_Port = li.readINI("SP_Port");
isjndi =Boolean.parseBoolean(li.readINI("is_jndi"));
JndiName = li.readINI("jndi_name");
Enerprise_code= li.readINI("Enerprise_code");
System.out.println("out.loadResourceIni sucess! isJndi = " + isjndi);
//System.out.println(isjndi);
} catch (IOException ex) {
return;
} catch (Exception ex) {
return;
}
if(!isjndi)
dbp = new DBConPool(DBDriver, DBURL, DBUser,DBPassword , MaxConnection, ConnectionTimeOut);
}
/**
*
* @param sp_port String
* @param strjndi_name String
public SmsControl(String sp_port, String strjndi_name) {
this.SP_Port = sp_port;
this.isjndi =true;
}
*/
public SmsClient(String sp_port,String db_Driver, String db_Url, String db_User, String db_Password, int max_Connection, int connection_TimeOut) {
this.DBDriver = db_Driver;
this.DBURL = db_Url;
this.DBUser = db_User;
this.DBPassword = db_Password;
this.MaxConnection = max_Connection;
this.ConnectionTimeOut = connection_TimeOut;
this.SP_Port = sp_port;
dbp = new DBConPool(DBDriver, DBURL, DBUser,DBPassword , MaxConnection, ConnectionTimeOut);
}
public String getFeeCode(String ServiceID){
String sqlstr="Select FeeCode, ServiceName From ServiceID Where ServiceID='"+ServiceID+"'";
String strs[][]= null;
if(this.isjndi)
strs = com.khan.util.common.getRecord(sqlstr, JndiName);
else {
DBPoolCon dpc = dbp.get();
strs = com.khan.util.common.poolGetRecord(dpc, sqlstr);
dbp.release(dpc);
}
if (strs.length < 1)
return "";
return strs[0][0];
}
/**
* 发送短信
* @param Src_Port String 发送源号码
* @param Dest_NO String 目标接收号码
* @param ServiceID String 服务代码
* @param Msg_Fmt int 消息格式 见Msg_Fmt类
* @param Msg_Content String 消息内容
* @param Fee_UserType int 计费用户类型 见Fee_UserType类
* @param FeeCode String 费用
* @param FeeType String 资费类别 见FeeType类
* @param FeeAddr String 计费手机号码 Fee_UserType =INVALID 时 不填
* @param Registered_Delivery int 是否需要状态报告,见Registered_Delivery类
* @param MsgLevel int 消息发送优先级
* @return int
*/
public int SendSMS(String Src_Port,
List Dest_NO,
String ServiceID,
int Msg_Fmt,
String Msg_Content,
int Fee_UserType,
String FeeCode,
String FeeType,
String FeeAddr,
int Registered_Delivery,
int MsgLevel){
if (Fee_UserType == com.khan.sms.Fee_UserType.INVALID){
FeeAddr="";
}
int Len = 140;
if (Msg_Fmt == com.khan.sms.Msg_Fmt.ASCII_STYLE){
Len = 160;
}
String sqlstr="";
int result =0;
for(int i=0; i<Dest_NO.size(); i++){
sqlstr = "INSERT INTO `mt` ( `LocalMsgID`, "
+ "`RespMsgID`, `SendStatus`,"
+ "`SendResult`, `SendCount`, "
+ "`OrgAddr`, `DestAddr_Count`, "
+ "`DestAddr`, `FeeAddr`, "
+ "`ServiceID`, `FeeCode`, "
+ "`FeeType`, `NeedReport`,"
+ "`FeeUserType`, `UserData_Len`, "
+ "`UserData`, `BuildeTime`, "
+ "`SendTime`, `MsgFmt`, "
+ "`ReportStatus`, `MsgLevel`, "
+ "`At_Time`, `ValID_Time`, "
+ "`PID`, `UDHI`, "
+ "`PK_Total`, `PK_Number`, "
+ "`SPID`, `SendLevel`, "
+ "`Reserve`) "
+ "VALUES ('',"
+ "'',0,"
+ "-1,0,"
+ "'" + SP_Port + Src_Port + "',1,"
+ "'" + (String)Dest_NO.get(i) + "','" + FeeAddr + "',"
+ "'" + ServiceID + "','" + FeeCode + "',"
+ "'" + FeeType + "'," + Registered_Delivery + ","
+ "" + Fee_UserType + "," + Len + ","
+ "'" + Msg_Content + "',NOW(),"
+ "NULL," + Msg_Fmt + ","
+ "1,1,"
+ "'','',"
+ "0,0,"
+ "1,1,"
+ "'" + this.Enerprise_code + "'," + MsgLevel + ""
+ ",'')";
//System.out.println(sqlstr);
if(this.isjndi){
result = com.khan.util.common.excuteSql(sqlstr, JndiName);
}else{
DBPoolCon dpc = dbp.get();
result = com.khan.util.common.PoolExcuteSql(dpc, sqlstr);
dbp.release(dpc);
}
}
return result;
}
/**
* 发送短信
* @param Src_Port String
* @param Dest_NO List
* @param ServiceID String
* @param Msg_Fmt int
* @param Msg_Content String
* @param Fee_UserType int
* @param FeeType String
* @param FeeAddr String
* @param Registered_Delivery int
* @param MsgLevel int
* @return int
*/
public int SendSMS(String Src_Port,
List Dest_NO,
String ServiceID,
int Msg_Fmt,
String Msg_Content,
int Fee_UserType,
String FeeType,
String FeeAddr,
int Registered_Delivery,
int MsgLevel){
String FeeCode = this.getFeeCode(ServiceID);
if (null == FeeCode){
System.out.println("ServiceID:"+ServiceID +"在 Service表中查不到对应资费!");
return -1;
}
return SendSMS( Src_Port, Dest_NO, ServiceID, Msg_Fmt,
Msg_Content, Fee_UserType, FeeCode, FeeType,
FeeAddr, Registered_Delivery, MsgLevel);
}
/**
* 发送短消息
* @param Dest_NO List
* @param ServiceID String
* @param Msg_Fmt int
* @param Msg_Content String
* @param Fee_UserType int
* @param FeeCode String
* @param FeeType String
* @param FeeAddr String
* @param Registered_Delivery int
* @param MsgLevel int
* @return int
*/
public int SendSMS(List Dest_NO,
String ServiceID,
int Msg_Fmt,
String Msg_Content,
int Fee_UserType,
String FeeCode,
String FeeType,
String FeeAddr,
int Registered_Delivery,
int MsgLevel){
return SendSMS( "", Dest_NO, ServiceID, Msg_Fmt,
Msg_Content, Fee_UserType, FeeCode, FeeType,
FeeAddr, Registered_Delivery, MsgLevel);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -