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

📄 newsservice.java

📁 手机业务程序例子
💻 JAVA
字号:
/*

 * NewsService.java

 *

 * Created on 2003年8月22日, 下午1:59

 */



package mobile.smsservice;

import gnu.getopt.*;

import java.util.*;

import java.util.regex.*;

import java.io.*;

import java.sql.*;

import java.util.Date;

import mobile.smsserver.*;

/**

 *

 * @author  Steven

 */

public class NewsService  extends Service {

    

    public static final String defaultPropertyFile = "/opt/smsserver/conf/mobile/smsservice/newsservice.properties";

    private ServletAPI client;

    private Vector operatorno;

    private Vector desterms;

    private Vector category;

    /** Creates a new instance of NewsService */

    public NewsService (String fileName) throws ServiceException{

            super(fileName);

           initLogger("NewsService");

           //  initService();        

           try {

              client= ServletAPI.getInstance();

           }catch(Exception e) {

              throw new ServiceException(e.getMessage());

           }

           log.info("NewsService ready");   

    }

    

    public static void main(String[] args) {

        String propertyFileName = null;

        

        Getopt g= new Getopt( "NewsService", args, "p:s:h");

        int c;

        while((c=g.getopt()) != -1) {

            switch (c) {

                case 'p':

                    propertyFileName= g.getOptarg();

                    break;

                    

                case '?':

                case 'h':

                    EntertainmentService.printHelpMessage();

                    System.exit(0);

                    break;

            }

        }

        

        NewsService service = null;

        

        try {

            // System.out.println(defaultPropertyFile);

            if( propertyFileName == null) 

                service = new NewsService(defaultPropertyFile);

            else 

                service = new NewsService(propertyFileName);

            

            service.connectDatabase();

            System.out.println("Excuting NewsService");

            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 category) {

        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, category);

            ResultSet rs = pst.executeQuery();

            while(rs.next()) {

                desterms.addElement(setSmsservice(rs));            

            }

            log.debug("usr size is" + desterms.size());

        } 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 getCategory(){

          if(conn==null){

                 log.warn("No database connection");

                 return;

          }

          try{

             category = new Vector();

             String sql = "select  content from smsservice where service = 'xwdz' group by content";

             Statement st= conn.createStatement();

	     ResultSet rs=st.executeQuery(sql);

             while (rs.next()){

                  category.addElement(rs.getString("content"));                  

             }

             log.debug("category is"+category.get(0));

             rs.close();

	     st.close();

             }catch(Exception e){

		e.printStackTrace();

	     }

          }

    /**

     *  取得相应的信息

     */

    

    public String getMessage(String  category){

        

        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.entertainment where dayinyear = ? and generatetime > ? and category = ?";

            String sContent = null;

            PreparedStatement pst = conn.prepareStatement(sql);      

            pst.setInt(1, amount);

            pst.setString(2, dayandtime);

            pst.setString(3,category);

            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 {

            String message = "";

           getGroup();

           getCategory();

          //String message = getMessage(); 

           for (int kk = 0; kk < operatorno.size(); kk++) {// this loop for operator no

                for (int kkk = 0; kkk < category.size(); kkk++) {

                message = getMessage((String)category.get(kkk));

                getUser(serviceProperty.getProperty("xw.service.xwdz"),(String)operatorno.get(kk),(String)category.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,null,ArrayofDesterms, message,serviceProperty.getProperty("xw.xwdz") ,(String)operatorno.get(kk));                      

                              client.sendGBTextMultiple(null,null,ArrayofDesterms,message,serviceProperty.getProperty("xw.xwdz"),(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"));

        return smsservice;        

    } 

    

}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -