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

📄 zxservice.java

📁 手机业务程序例子
💻 JAVA
字号:
/*
 * ZXService.java
 *
 * Created on 2003年4月17日, 下午4:41
 */

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 ZXService extends Service{
    public static final String defaultPropertyFile = "/opt/smsserver/conf/mobile/smsservice/zxservice.properties";
   public static final String chargeNumber="000000000000000000000";

    private ServletAPI client;
    private Hashtable htXZ;
    private Vector desterms1;
    private Vector desterms2;
    private Vector desterms3;
    private Vector desterms4;
    private Vector desterms5;
    private Vector desterms6;
    private Vector desterms7;
    private Vector desterms8;
    private Vector desterms9;
    private Vector desterms10;
    private Vector desterms11;
    private Vector desterms12;
    private Vector operatorno;
    
    /** Creates a new instance of ZXService */
    public ZXService(String fileName) throws ServiceException {
           super(fileName);
           initLogger("ZXService");
           htXZ = new Hashtable(); 
                      
           try {
              client= ServletAPI.getInstance();
           }catch(Exception e) {
              throw new ServiceException(e.getMessage());
           }
           log.info("ZXService ready");  
    }
    
    public static void main(String[] args) {
        String propertyFileName = null;
        
        Getopt g= new Getopt( "ZXService", args, "p:s:h");
        int c;
        while((c=g.getopt()) != -1) {
            switch (c) {
                case 'p':
                    propertyFileName= g.getOptarg();
                    break;
                    
                case '?':
                case 'h':
                    ZXService.printHelpMessage();
                    System.exit(0);
                    break;
            }
        }
        
        ZXService service = null;
        
        try {
            // System.out.println(defaultPropertyFile);
            if( propertyFileName == null) 
                service = new ZXService(defaultPropertyFile);
            else 
                service = new ZXService(propertyFileName);
            
            service.connectDatabase();
            System.out.println("Excuting ZX Service");
            service.execute();
            service.disconnectDatabase();
            
        } catch(ServiceException e) {
            e.printStackTrace();
            System.err.println("Service init error: " + e.getMessage());
            System.exit(-1);
        }
    }    
    /**
     *Get user list from table of smsservice
     */
    private void getUser(String service,String operatorID) {
        String sql = null;
        if (service.equals("xhcard")){
            sql = "select * from smsgateway.smsservice where enabled =1 and UPPER(service) = ? and content like '%zxdz%' and operator=?";            
        }else{
            sql = "SELECT * FROM smsgateway.smsservice WHERE enabled = 1 AND UPPER(service) = ? AND operator = ?";
        }
        int Birthday = 0;
        int i = 1;
        desterms1 = new Vector();
        desterms2 = new Vector();
        desterms3 = new Vector();
        desterms4 = new Vector();
        desterms5 = new Vector();
        desterms6 = new Vector();
        desterms7 = new Vector();
        desterms8 = new Vector();
        desterms9 = new Vector();
        desterms10 = new Vector();
        desterms11 = new Vector();
        desterms12 = new Vector();
   
        try {
            PreparedStatement pst = conn.prepareStatement(sql);
            pst.setString(1, service.toUpperCase());
            pst.setString(2, operatorID);
	    ResultSet rs = pst.executeQuery();
            while(rs.next()) {
                if (rs.getString("content").substring(4).startsWith("0")) {   
                      Birthday = Integer.parseInt(rs.getString("content").substring(5));
                }else {
                      Birthday = Integer.parseInt(rs.getString("content").substring(4));
                }
                if (Birthday >= 321 && Birthday <= 419) {          
                       desterms1.addElement(setSmsservice(rs));
                       htXZ.put(new Integer(1),desterms1);
                       i++;
                       log.debug("the size of vector1 is"+ String.valueOf(desterms1.size()));
                
                }
                if (Birthday >= 420 && Birthday <= 520) {                       
                       desterms2.addElement(setSmsservice(rs));
                       htXZ.put(new Integer(2),desterms2);
                       i++;
                       log.debug("the size of vector2 is"+ String.valueOf(desterms2.size()));
                }      
                
                if (Birthday >= 521 && Birthday <= 621) {
                       desterms3.addElement(setSmsservice(rs));
                       htXZ.put(new Integer(3),desterms3);
                       i++;
                       log.debug("the size of vector3 is"+ String.valueOf(desterms3.size()));
                }  
                
                if (Birthday >= 622 && Birthday <= 722) {
                       desterms4.addElement(setSmsservice(rs));
                       htXZ.put(new Integer(4),desterms4);
                       i++;
                       log.debug("the size of vector4 is"+ String.valueOf(desterms4.size()));
                }  
                
                if (Birthday >= 723 && Birthday <= 822) {
                       
                       desterms5.addElement(setSmsservice(rs));
                       htXZ.put(new Integer(5),desterms5);
                       i++;
                       log.debug("the size of vector5 is"+ String.valueOf(desterms5.size()));
                }  
                
                if (Birthday >= 823 && Birthday <= 922) {
                       
                       desterms6.addElement(setSmsservice(rs));
                       htXZ.put(new Integer(6),desterms6);
                       i++;
                       log.debug("the size of vector6 is"+ String.valueOf(desterms6.size()));
                }  
                
                if (Birthday >= 923 && Birthday <= 1023) {
                       
                       desterms7.addElement(setSmsservice(rs));
                       htXZ.put(new Integer(7),desterms7);
                       i++;
                       log.debug("the size of vector7 is"+ String.valueOf(desterms7.size()));
                }  
                
                if (Birthday >= 1024 && Birthday <= 1121) {
                       
                       desterms8.addElement(setSmsservice(rs));
                       htXZ.put(new Integer(8),desterms8);
                       i++;
                       log.debug("the size of vector8 is"+ String.valueOf(desterms8.size()));
                }  
                
                if (Birthday >= 1122 && Birthday <= 1221) {
                      
                       desterms9.addElement(setSmsservice(rs));
                       htXZ.put(new Integer(9),desterms9);
                       i++;
                       log.debug("the size of vector9 is"+ String.valueOf(desterms9.size()));
                }  
                
                if (Birthday >= 1222 && Birthday <= 1231 || Birthday >= 101 && Birthday <= 119) {
                       
                       desterms10.addElement(setSmsservice(rs));
                       htXZ.put(new Integer(10),desterms10);
                       i++;
                       log.debug("the size of vector10 is"+ String.valueOf(desterms10.size()));
                }  
                
                if (Birthday >= 120 && Birthday <= 218) {
                       
                       desterms11.addElement(setSmsservice(rs));
                       htXZ.put(new Integer(11),desterms11);
                       i++;
                       log.debug("the size of vector11 is"+ String.valueOf(desterms11.size()));
                }  
                
                if (Birthday >= 219 && Birthday <= 320) {
                       
                       desterms12.addElement(setSmsservice(rs));
                       htXZ.put(new Integer(12),desterms12);
                       i++;
                       log.debug("the size of vector12 is"+ String.valueOf(desterms12.size()));
                }  
            }
            //log.debug("the size of Hashtable is:"+String.valueOf(htXZ.size()));
            //log.debug ("i="+i);
            rs.close();  
        } catch(Exception e) {
          e.printStackTrace();
        }        
    }
    
    /**
     * getGroup
     */
    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 String getMessage(int indexofxz){
       
        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.ZXZX where xzid = ? and dayinyear = ? and dayandtime > ?";
            String sContent = null;
            PreparedStatement pst = conn.prepareStatement(sql);      
            pst.setInt(1, indexofxz);
            pst.setInt(2, amount);
            pst.setString(3, dayandtime);
            rs = pst.executeQuery();            
            if(rs.next()) {                
                     sContent= rs.getString("content1").trim();
                     //sContent[1] = rs.getString("content2").trim();
            }                  
            log.debug("the message is"+ sContent);   
            //log.debug("the message2 is"+ sContent[1]); 
            return sContent;
       }
         catch (Exception e) {
            e.printStackTrace();
            log.error(e);
            return null;
        }
    }
    
     private void sendMessage(Vector desterms, String contents, String command, String operator) throws Exception {
        client.setServlet("unicomservlet");
        //int sendmax = Integer.parseInt(serviceProperty.getProperty("zx.sendmax"));
        String[] destermsArray = new String[desterms.size()];
        
        //Calendar cal = Calendar.getInstance();
        //cal.set(Calendar.HOUR, Integer.parseInt(serviceProperty.getProperty("zx.sendhour")));
        //cal.set(Calendar.MINUTE, Integer.parseInt(serviceProperty.getProperty("zx.sendminute")));
        //Date mydate = cal.getTime();
	   
        for(int i = 0; i < desterms.size(); i++) {
            Smsservice tempsms = (Smsservice)desterms.get(i);
            destermsArray[i] = tempsms.getSrcterm();            
        }        
        /*
        for (int j = 0; j < contents.length; j++) {
            log.debug("Content:"+contents[j]);
            //client.sendGBTextMultiple(null, destermsArray, contents[j], command, mydate); 
            client.sendGBTextMultiple(null, destermsArray, contents[j], command,null,operator,-1);
        }*/
        client.sendGBTextMultiple(null,chargeNumber, destermsArray, contents, command,operator);
    }
          
    public void execute() throws ServiceException {
           Vector sub = new Vector();// subscribe user
           getGroup();
           for (int kk = 0; kk < operatorno.size(); kk++) {
                getUser(serviceProperty.getProperty("zx.service.zxdz"),(String)operatorno.get(kk));
                log.debug("operator is"+operatorno.get(kk));
                try {                        
                  for (int k =1; k < 13; k++) {
                      if (htXZ.get(new Integer(k)) != null) {
                          String message = getMessage(k);
                          sub = (Vector)htXZ.get(new Integer(k));
                          sendMessage(sub, message , serviceProperty.getProperty("zx.zxdz"),(String)operatorno.get(kk));
                      }              
                  }                
               } catch(Exception e) {
                 e.printStackTrace();
               }
           // Sending Message for FreeCard User
                getUser(serviceProperty.getProperty("zx.service.card"),(String)operatorno.get(kk));
                log.debug("operator is"+operatorno.get(kk));
                try {                        
                  for (int k =1; k < 13; k++) {
                      if (htXZ.get(new Integer(k)) != null) {
                          String message = getMessage(k);
                          sub = (Vector)htXZ.get(new Integer(k));
                          sendMessage(sub, message , serviceProperty.getProperty("zx.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"));
        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 + -