📄 zxservice.java
字号:
/*
* ZXService.java
*
* Created on 2003年4月17日, 下午4:41
*/
package mobile.smsservice;
import gnu.getopt.*;
import java.util.*;
import java.util.regex.*;
import java.io.*;
import java.sql.*;
import mobile.smsserver.*;
import java.util.Date;
/**
*
* @author Steven
*/
public class ZXService extends Service{
public static final String defaultPropertyFile = "/opt/smsserver/conf/mobile/smsservice/zxservice.properties";
public static final String chargeNumber="000000000000000000000";
private ServletAPI client;
private Hashtable htXZ;
private Vector desterms1;
private Vector desterms2;
private Vector desterms3;
private Vector desterms4;
private Vector desterms5;
private Vector desterms6;
private Vector desterms7;
private Vector desterms8;
private Vector desterms9;
private Vector desterms10;
private Vector desterms11;
private Vector desterms12;
private Vector operatorno;
/** Creates a new instance of ZXService */
public ZXService(String fileName) throws ServiceException {
super(fileName);
initLogger("ZXService");
htXZ = new Hashtable();
try {
client= ServletAPI.getInstance();
}catch(Exception e) {
throw new ServiceException(e.getMessage());
}
log.info("ZXService ready");
}
public static void main(String[] args) {
String propertyFileName = null;
Getopt g= new Getopt( "ZXService", args, "p:s:h");
int c;
while((c=g.getopt()) != -1) {
switch (c) {
case 'p':
propertyFileName= g.getOptarg();
break;
case '?':
case 'h':
ZXService.printHelpMessage();
System.exit(0);
break;
}
}
ZXService service = null;
try {
// System.out.println(defaultPropertyFile);
if( propertyFileName == null)
service = new ZXService(defaultPropertyFile);
else
service = new ZXService(propertyFileName);
service.connectDatabase();
System.out.println("Excuting ZX Service");
service.execute();
service.disconnectDatabase();
} catch(ServiceException e) {
e.printStackTrace();
System.err.println("Service init error: " + e.getMessage());
System.exit(-1);
}
}
/**
*Get user list from table of smsservice
*/
private void getUser(String service,String operatorID) {
String sql = null;
if (service.equals("xhcard")){
sql = "select * from smsgateway.smsservice where enabled =1 and UPPER(service) = ? and content like '%zxdz%' and operator=?";
}else{
sql = "SELECT * FROM smsgateway.smsservice WHERE enabled = 1 AND UPPER(service) = ? AND operator = ?";
}
int Birthday = 0;
int i = 1;
desterms1 = new Vector();
desterms2 = new Vector();
desterms3 = new Vector();
desterms4 = new Vector();
desterms5 = new Vector();
desterms6 = new Vector();
desterms7 = new Vector();
desterms8 = new Vector();
desterms9 = new Vector();
desterms10 = new Vector();
desterms11 = new Vector();
desterms12 = new Vector();
try {
PreparedStatement pst = conn.prepareStatement(sql);
pst.setString(1, service.toUpperCase());
pst.setString(2, operatorID);
ResultSet rs = pst.executeQuery();
while(rs.next()) {
if (rs.getString("content").substring(4).startsWith("0")) {
Birthday = Integer.parseInt(rs.getString("content").substring(5));
}else {
Birthday = Integer.parseInt(rs.getString("content").substring(4));
}
if (Birthday >= 321 && Birthday <= 419) {
desterms1.addElement(setSmsservice(rs));
htXZ.put(new Integer(1),desterms1);
i++;
log.debug("the size of vector1 is"+ String.valueOf(desterms1.size()));
}
if (Birthday >= 420 && Birthday <= 520) {
desterms2.addElement(setSmsservice(rs));
htXZ.put(new Integer(2),desterms2);
i++;
log.debug("the size of vector2 is"+ String.valueOf(desterms2.size()));
}
if (Birthday >= 521 && Birthday <= 621) {
desterms3.addElement(setSmsservice(rs));
htXZ.put(new Integer(3),desterms3);
i++;
log.debug("the size of vector3 is"+ String.valueOf(desterms3.size()));
}
if (Birthday >= 622 && Birthday <= 722) {
desterms4.addElement(setSmsservice(rs));
htXZ.put(new Integer(4),desterms4);
i++;
log.debug("the size of vector4 is"+ String.valueOf(desterms4.size()));
}
if (Birthday >= 723 && Birthday <= 822) {
desterms5.addElement(setSmsservice(rs));
htXZ.put(new Integer(5),desterms5);
i++;
log.debug("the size of vector5 is"+ String.valueOf(desterms5.size()));
}
if (Birthday >= 823 && Birthday <= 922) {
desterms6.addElement(setSmsservice(rs));
htXZ.put(new Integer(6),desterms6);
i++;
log.debug("the size of vector6 is"+ String.valueOf(desterms6.size()));
}
if (Birthday >= 923 && Birthday <= 1023) {
desterms7.addElement(setSmsservice(rs));
htXZ.put(new Integer(7),desterms7);
i++;
log.debug("the size of vector7 is"+ String.valueOf(desterms7.size()));
}
if (Birthday >= 1024 && Birthday <= 1121) {
desterms8.addElement(setSmsservice(rs));
htXZ.put(new Integer(8),desterms8);
i++;
log.debug("the size of vector8 is"+ String.valueOf(desterms8.size()));
}
if (Birthday >= 1122 && Birthday <= 1221) {
desterms9.addElement(setSmsservice(rs));
htXZ.put(new Integer(9),desterms9);
i++;
log.debug("the size of vector9 is"+ String.valueOf(desterms9.size()));
}
if (Birthday >= 1222 && Birthday <= 1231 || Birthday >= 101 && Birthday <= 119) {
desterms10.addElement(setSmsservice(rs));
htXZ.put(new Integer(10),desterms10);
i++;
log.debug("the size of vector10 is"+ String.valueOf(desterms10.size()));
}
if (Birthday >= 120 && Birthday <= 218) {
desterms11.addElement(setSmsservice(rs));
htXZ.put(new Integer(11),desterms11);
i++;
log.debug("the size of vector11 is"+ String.valueOf(desterms11.size()));
}
if (Birthday >= 219 && Birthday <= 320) {
desterms12.addElement(setSmsservice(rs));
htXZ.put(new Integer(12),desterms12);
i++;
log.debug("the size of vector12 is"+ String.valueOf(desterms12.size()));
}
}
//log.debug("the size of Hashtable is:"+String.valueOf(htXZ.size()));
//log.debug ("i="+i);
rs.close();
} catch(Exception e) {
e.printStackTrace();
}
}
/**
* getGroup
*/
private void getGroup() {
if(conn==null){
log.warn("No database connection");
return;
}try{
operatorno = new Vector();
String sql = "select operator from operator group by operator";
Statement st= conn.createStatement();
ResultSet rs=st.executeQuery(sql);
while (rs.next()){
operatorno.addElement(rs.getString("operator"));
}
rs.close();
st.close();
}catch(Exception e){
e.printStackTrace();
}
}
public String getMessage(int indexofxz){
Calendar rightNow = Calendar.getInstance();
int amount = rightNow.get(Calendar.DAY_OF_YEAR);
log.debug("day of year"+ amount);
String dayandtime = rightNow.get(Calendar.YEAR)+ "-"+rightNow.get(Calendar.MONDAY)+"-1";
try{
ResultSet rs = null;
String sql = "select * from smsgateway.ZXZX where xzid = ? and dayinyear = ? and dayandtime > ?";
String sContent = null;
PreparedStatement pst = conn.prepareStatement(sql);
pst.setInt(1, indexofxz);
pst.setInt(2, amount);
pst.setString(3, dayandtime);
rs = pst.executeQuery();
if(rs.next()) {
sContent= rs.getString("content1").trim();
//sContent[1] = rs.getString("content2").trim();
}
log.debug("the message is"+ sContent);
//log.debug("the message2 is"+ sContent[1]);
return sContent;
}
catch (Exception e) {
e.printStackTrace();
log.error(e);
return null;
}
}
private void sendMessage(Vector desterms, String contents, String command, String operator) throws Exception {
client.setServlet("unicomservlet");
//int sendmax = Integer.parseInt(serviceProperty.getProperty("zx.sendmax"));
String[] destermsArray = new String[desterms.size()];
//Calendar cal = Calendar.getInstance();
//cal.set(Calendar.HOUR, Integer.parseInt(serviceProperty.getProperty("zx.sendhour")));
//cal.set(Calendar.MINUTE, Integer.parseInt(serviceProperty.getProperty("zx.sendminute")));
//Date mydate = cal.getTime();
for(int i = 0; i < desterms.size(); i++) {
Smsservice tempsms = (Smsservice)desterms.get(i);
destermsArray[i] = tempsms.getSrcterm();
}
/*
for (int j = 0; j < contents.length; j++) {
log.debug("Content:"+contents[j]);
//client.sendGBTextMultiple(null, destermsArray, contents[j], command, mydate);
client.sendGBTextMultiple(null, destermsArray, contents[j], command,null,operator,-1);
}*/
client.sendGBTextMultiple(null,chargeNumber, destermsArray, contents, command,operator);
}
public void execute() throws ServiceException {
Vector sub = new Vector();// subscribe user
getGroup();
for (int kk = 0; kk < operatorno.size(); kk++) {
getUser(serviceProperty.getProperty("zx.service.zxdz"),(String)operatorno.get(kk));
log.debug("operator is"+operatorno.get(kk));
try {
for (int k =1; k < 13; k++) {
if (htXZ.get(new Integer(k)) != null) {
String message = getMessage(k);
sub = (Vector)htXZ.get(new Integer(k));
sendMessage(sub, message , serviceProperty.getProperty("zx.zxdz"),(String)operatorno.get(kk));
}
}
} catch(Exception e) {
e.printStackTrace();
}
// Sending Message for FreeCard User
getUser(serviceProperty.getProperty("zx.service.card"),(String)operatorno.get(kk));
log.debug("operator is"+operatorno.get(kk));
try {
for (int k =1; k < 13; k++) {
if (htXZ.get(new Integer(k)) != null) {
String message = getMessage(k);
sub = (Vector)htXZ.get(new Integer(k));
sendMessage(sub, message , serviceProperty.getProperty("zx.xhcard"),(String)operatorno.get(kk));
}
}
} catch(Exception e) {
e.printStackTrace();
}
}
}
private Smsservice setSmsservice(ResultSet rs) throws Exception {
Smsservice smsservice = new Smsservice();
smsservice.setID(rs.getInt("serviceid"));
smsservice.setSrcterm(rs.getString("srcterm"));
log.info(rs.getString("srcterm"));
smsservice.setService(rs.getString("service"));
smsservice.setRegistertime(rs.getString("registertime"));
smsservice.setUnsubscribetime(rs.getString("unsubscribetime"));
smsservice.setEnabled(rs.getInt("enabled"));
smsservice.setContent(rs.getString("content"));
smsservice.setOperator(rs.getString("operator"));
return smsservice;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -