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

📄 knowledgeservice.java

📁 手机业务程序例子
💻 JAVA
字号:
/*
 * KnowledgeService.java
 *
 * Created on 2003年6月9日, 上午11:05
 */

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 KnowledgeService extends Service{
    
    public static final String defaultPropertyFile = "/opt/smsserver/conf/mobile/smsservice/knowledgeservice.properties";
    public static final String chargeNumber="000000000000000000000";
    
    private ServletAPI client;
    private Vector operatorno;
    private Vector desterms;
    /** Creates a new instance of KnowledgeService */
    public KnowledgeService(String fileName) throws ServiceException {
           super(fileName);
           initLogger("KnowledgeService");
                                
           try {
              client= ServletAPI.getInstance();
           }catch(Exception e) {
              throw new ServiceException(e.getMessage());
           }
           log.info("KnowledgeService ready");  
    }
    
    public static void main(String[] args) {
        String propertyFileName = null;
        
        Getopt g= new Getopt( "KnowledgeService", args, "p:s:h");
        int c;
        while((c=g.getopt()) != -1) {
            switch (c) {
                case 'p':
                    propertyFileName= g.getOptarg();
                    break;
                    
                case '?':
                case 'h':
                    KnowledgeService.printHelpMessage();
                    System.exit(0);
                    break;
            }
        }
        
        KnowledgeService service = null;
        
        try {
            // System.out.println(defaultPropertyFile);
            if( propertyFileName == null) 
                service = new KnowledgeService(defaultPropertyFile);
            else 
                service = new KnowledgeService(propertyFileName);
            
            service.connectDatabase();
            System.out.println("Excuting KnowledgeService");
            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) {
        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 subsribeTime
     */
    
    public String getMessage(Date subscribeTime){
        
        if(conn==null){
	   log.warn("Error occure, No DB connection");	   
	   return null;
        }
        int nMonth = subscribeTime.getMonth()+1;
        Integer obj1 = new Integer(nMonth);        
        String subTime = subscribeTime.getYear()+1900+"-"+ obj1.toString()+"-"+subscribeTime.getDate();
        String sql1 = "select to_days(now()) - to_days('" + subTime + "')";
        try{
            Statement st= conn.createStatement();
	    ResultSet rs1=st.executeQuery(sql1);
            rs1.next();	
            int nOrdering = rs1.getInt(1);
            nOrdering = nOrdering +1;
            rs1.close();
            //log.debug("sequenced order for this user is "+ nOrdering);        
        try{
            ResultSet rs = null;              
            String sql = "select * from smsgateway.knowledgebase where ContentID = ?";
            String sContent = null;
            PreparedStatement pst = conn.prepareStatement(sql);      
            pst.setInt(1, nOrdering);
            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;
        }
        }
        catch (Exception e) {
            e.printStackTrace();
            log.error(e);
            return null;
        }
    }
    
     public void execute() throws ServiceException {
           getGroup();
           
           for (int kk = 0; kk < operatorno.size(); kk++) {
                getUser(serviceProperty.getProperty("sx.service.xhcard"),(String)operatorno.get(kk));
                Date[] ArrayofSubTime = new Date[desterms.size()];
                String[] ArrayofDesterms = new String[desterms.size()];
                for(int i = 0; i < desterms.size(); i++) {
                         Smsservice temprs = (Smsservice)desterms.get(i);                        
                         ArrayofSubTime[i] = temprs.getRegistertime(); 
                         ArrayofDesterms[i] = temprs.getSrcterm();
                }      
                try {         
                    for (int k = 0; k < desterms.size(); k++) {
                         String message = getMessage(ArrayofSubTime[k]); 
                         client.sendGBText(null,chargeNumber, ArrayofDesterms[k], message,serviceProperty.getProperty("sx.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"));
        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 + -