📄 jokehumorservice.java
字号:
/*
* HumorService.java
*
* Created on 2003年4月7日, 下午3:36
*/
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 Liang
*/
public class JokeHumorService extends Service {
/** Creates a new instance of HumorService */
public static final String defaultPropertyFile = "/opt/smsserver/conf/mobile/smsservice/humor.properties";
public static final String chargeNumber="000000000000000000000";
// send server object
private ServletAPI client;
private Vector operatorno;
private Vector desterms;
public JokeHumorService(String fileName) throws ServiceException {
super(fileName);
initLogger("HumorService");
initService();
try {
client= ServletAPI.getInstance();
}catch(Exception e) {
throw new ServiceException(e.getMessage());
}
log.info("HumorService ready");
}
public static void main(String[] args) {
String propertyFileName = null;
Getopt g= new Getopt( "HumorService", args, "p:s:h");
int c;
while((c=g.getopt()) != -1) {
switch (c) {
case 'p':
propertyFileName= g.getOptarg();
break;
case '?':
case 'h':
JokeHumorService.printHelpMessage();
System.exit(0);
break;
}
}
JokeHumorService service = null;
try {
// System.out.println(defaultPropertyFile);
if( propertyFileName == null)
service = new JokeHumorService(defaultPropertyFile);
else
service = new JokeHumorService(propertyFileName);
service.connectDatabase();
System.out.println("executing humorservice...");
service.execute();
service.disconnectDatabase();
} catch(ServiceException e) {
e.printStackTrace();
System.err.println("Service init error: " + e.getMessage());
System.exit(-1);
}
}
public void execute() throws ServiceException {
//client.setServlet("unicomservlet");
getGroup();
// processing random number
int nRow = 1772;
Random r = new Random();
int seed = r.nextInt(nRow);
//log.debug(String.valueOf(seed));
String message = getMessage(seed);
String[] ArrayofDesterms = null;
int count = 0;//组数
int gg = 0;
for (int kk = 0; kk < operatorno.size(); kk++) {
// Getting FreeCard Users first
getUser(serviceProperty.getProperty("humor.service.ymxh"),(String)operatorno.get(kk));
ArrayofDesterms = new String[10];// 10 个一组用来发送
count = desterms.size() / 10 + 1;
for(int k =0; k < count; k++){
for (gg = 0; gg < 10; gg++){
if ( k*10+gg < desterms.size()) {
Smsservice temprs = (Smsservice)desterms.get(k*10+gg);
ArrayofDesterms[gg] = temprs.getSrcterm();
}
}
try{
client.sendGBTextMultiple(null,chargeNumber, ArrayofDesterms, message, serviceProperty.getProperty("humor.ymxh"),(String)operatorno.get(kk));
log.info("send for freecard user successfully");
}catch(Exception e) {
e.printStackTrace();
}
}
//Getting Subscribed User and Sending Message for them
getUser(serviceProperty.getProperty("humor.service.ymdz"),(String)operatorno.get(kk));
ArrayofDesterms = new String[10];// binding 10 user as a sending group
count = desterms.size() / 10 + 1;
for(int k =0; k < count; k++){
for (gg = 0; gg < 10; gg++){
if ( k*10+gg < desterms.size()) {
Smsservice temprs = (Smsservice)desterms.get(k*10+gg);
ArrayofDesterms[gg] = temprs.getSrcterm();
}
}
try{
client.sendGBTextMultiple(null,null, ArrayofDesterms, message, serviceProperty.getProperty("humor.ymdz"),(String)operatorno.get(kk));
log.info("send for subscribed user successfully");
}catch(Exception e) {
e.printStackTrace();
}
}
}
}
/**
* 获得用户号码
* @param service 用户的类型
*/
private Vector getUser(String service, String operator) {
desterms = new Vector();
String sql = "SELECT * FROM smsgateway.smsservice WHERE enabled = 1 AND UPPER(service) = ? AND operator = ?";
try {
PreparedStatement pst = conn.prepareStatement(sql);
pst.setString(1, service.toUpperCase());
pst.setString(2, operator);
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();
}
}
/**
* 随机抽取笑话内容
* @param nOrder 随机数作为搜索序列号
*/
private String getMessage(int nOrder){
if(conn==null){
log.warn("Error occure, No DB connection");
return null;
}
try{
ResultSet rs = null;
String sql = "select * from smsgateway.humor where humorid = ?";
String sContent = null;
PreparedStatement pst = conn.prepareStatement(sql);
pst.setInt(1, nOrder);
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;
}
}
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 + -