📄 weatherreportservice.java
字号:
/*
* WeatherReportService.java
*
* Created on 2003年8月5日, 上午10:00
*/
package mobile.smsservice;
import gnu.getopt.*;
import java.util.*;
import java.util.regex.*;
import java.sql.*;
import java.io.*;
import java.util.Date;
import mobile.smsserver.*;
/**
*
* @author Steven Liang
*/
public class WeatherReportService extends Service {
public static final String defaultPropertyFile = "/opt/smsserver/conf/mobile/smsservice/weatherreport.properties";
private ServletAPI client;
private Vector operatorno;
private Vector desterms;
private Vector areano;
/** Creates a new instance of WeatherReportService */
public WeatherReportService(String fileName) throws ServiceException {
super(fileName);
initLogger("EntertainmentService");
// initService();
try {
client= ServletAPI.getInstance();
}catch(Exception e) {
throw new ServiceException(e.getMessage());
}
log.info("WeatherReportService ready");
}
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
String propertyFileName = null;
Getopt g= new Getopt( "WeatherReportService", args, "p:s:h");
int c;
while((c=g.getopt()) != -1) {
switch (c) {
case 'p':
propertyFileName= g.getOptarg();
break;
case '?':
case 'h':
WeatherReportService.printHelpMessage();
System.exit(0);
break;
}
}
WeatherReportService service = null;
try {
// System.out.println(defaultPropertyFile);
if( propertyFileName == null)
service = new WeatherReportService(defaultPropertyFile);
else
service = new WeatherReportService(propertyFileName);
service.connectDatabase();
System.out.println("Excuting WeatherReportService");
service.execute();
service.disconnectDatabase();
} catch(ServiceException e) {
e.printStackTrace();
System.err.println("Service init error: " + e.getMessage());
System.exit(-1);
}
}
/**
* 获得用户号码
* @param service 用户的类型
* @param operator 号码段类型
*/
private Vector getUser(String service, String operator, String area) {
desterms = new Vector();
String sql = "SELECT * FROM smsgateway.smsservice WHERE enabled = 1 AND UPPER(service) = ? AND operator = ? AND content =?";
try {
PreparedStatement pst = conn.prepareStatement(sql);
pst.setString(1, service.toUpperCase());
pst.setString(2, operator);
pst.setString(3, area);
ResultSet rs = pst.executeQuery();
while(rs.next()) {
desterms.addElement(setSmsservice(rs));
}
} 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();
}
}
/**
*取得用户查寻天气消息的地区种类
*/
private void getArea(){
if(conn==null){
log.warn("No database connection");
return;
}
try{
areano = new Vector();
String sql = "select content from smsservice where service = 'tqdz' group by content";
Statement st= conn.createStatement();
ResultSet rs=st.executeQuery(sql);
while (rs.next()){
areano.addElement(rs.getString("content"));
}
rs.close();
st.close();
}catch(Exception e){
e.printStackTrace();
}
}
/**
* 取得相应的信息
*/
public String getMessage(String area){
if(conn==null){
log.warn("Error occure, No DB connection");
return null;
}
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.weatherreport where dayinyear = ? and dayandtime > ? and areano = ?";
String sContent = null;
PreparedStatement pst = conn.prepareStatement(sql);
pst.setInt(1, amount);
pst.setString(2, dayandtime);
pst.setString(3, area);
rs = pst.executeQuery();
if(rs.next()) {
sContent= rs.getString("content").trim();
}
log.debug("the message is"+ sContent);
return sContent;
}
catch (Exception e) {
e.printStackTrace();
log.error(e);
return null;
}
}
public void execute() throws ServiceException {
getGroup();
getArea();
String message = "";
for (int kk = 0; kk < operatorno.size(); kk++) {// this loop for operator no
for (int kkk = 0; kkk < areano.size();kkk++) { // this loop for area no
getUser(serviceProperty.getProperty("tq.service.tqdz"),(String)operatorno.get(kk),(String)areano.get(kkk));
message = getMessage((String)areano.get(kkk));
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 {
// client.sendGBText(null, ArrayofDesterms, message,serviceProperty.getProperty("tq.tqdz") ,null,(String)operatorno.get(kk),-1);
client.sendGBTextMultiple(null,null, ArrayofDesterms,message,"free",(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"));
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 + -