⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 jokehumorservice.java

📁 手机业务程序例子
💻 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 + -