📄 alarmservice.java
字号:
/*
* AlarmService.java
*
* Created on 2003年6月18日, 下午2:49
*/
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;
/**
* This service is used to be an alarm which sends expired information to the freecard users
* if the deadline is approaching
* @author Steven Liang
*/
public class AlarmService extends Service{
public static final String defaultPropertyFile = "/opt/smsserver/conf/mobile/smsservice/alarmservice.properties";
private ServletAPI client;
private Vector operatorno;
private Vector desterms;
/** Creates a new instance of AlarmService */
public AlarmService(String fileName) throws ServiceException {
super(fileName);
initLogger("AlarmService");
try {
client= ServletAPI.getInstance();
}catch(Exception e) {
throw new ServiceException(e.getMessage());
}
log.info("AlarmService ready");
}
public static void main(String[] args) {
String propertyFileName = null;
Getopt g= new Getopt( "AlarmService", args, "p:s:h");
int c;
while((c=g.getopt()) != -1) {
switch (c) {
case 'p':
propertyFileName= g.getOptarg();
break;
case '?':
case 'h':
AlarmService.printHelpMessage();
System.exit(0);
break;
}
}
AlarmService service = null;
try {
// System.out.println(defaultPropertyFile);
if( propertyFileName == null)
service = new AlarmService(defaultPropertyFile);
else
service = new AlarmService(propertyFileName);
service.connectDatabase();
System.out.println("Excuting AlarmService");
service.execute();
service.disconnectDatabase();
} catch(ServiceException e) {
e.printStackTrace();
System.err.println("Service init error: " + e.getMessage());
System.exit(-1);
}
}
/**
* 获得过期免费卡用户号码并将其状态置为2 (1-valid, 2-expired, 0-invalid)
* @param service 用户的类型
* @param operator 号码段类型
*/
private Vector getUser(String service, String expiredate, String operator) {
desterms = new Vector();
String sql = "SELECT * FROM smsgateway.smsservice WHERE enabled = 1 AND UPPER(service) = ? AND unsubscribetime = ? AND operator = ?";
try {
PreparedStatement pst = conn.prepareStatement(sql);
pst.setString(1, service.toUpperCase());
pst.setString(2,expiredate);
pst.setString(3, operator);
ResultSet rs = pst.executeQuery();
while(rs.next()) {
desterms.addElement(setSmsservice(rs));
}
Statement st= conn.createStatement();
st.executeUpdate("update smsservice set enabled=2 where UPPER(service) = 'xhcard' and enabled=1 AND unsubscribetime = '"+ expiredate + "' AND operator = '" + operator + "'");
} catch(Exception e) {
e.printStackTrace();
}
return desterms;
}
/**
* 划分用户手机号码段
*
*/
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 void execute() throws ServiceException {
getGroup();
String expiredate = null;
Calendar rightNow = Calendar.getInstance();
java.util.Date ExpiredDate = rightNow.getTime();
expiredate = ExpiredDate.getYear()+1900+"-"+String.valueOf(ExpiredDate.getMonth()+1)+"-"+ExpiredDate.getDate();
String message = serviceProperty.getProperty("message1");
for (int kk = 0; kk < operatorno.size(); kk++) {
getUser(serviceProperty.getProperty("alarm.service.xhcard"),expiredate,(String)operatorno.get(kk));
String[] ArrayofDesterms = new String[desterms.size()];
for(int i = 0; i < desterms.size(); i++) {
Smsservice temprs = (Smsservice)desterms.get(i);
ArrayofDesterms[i] = temprs.getSrcterm();
}
try {
// for (int k = 0; k < desterms.size(); k++) {
// client.sendGBText(null, ArrayofDesterms[k], message,serviceProperty.getProperty("alarm.xhcard") ,null,(String)operatorno.get(kk),-1);
// }
client.sendGBTextMultiple(null,null, ArrayofDesterms,message,"free",(String)operatorno.get(kk));
log.debug("the message is"+ message);
} 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"));
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 + -