📄 sendmanager.java
字号:
package smstimer;/** * <p>Title: </p> * <p>Description: </p> * <p>Copyright: Copyright (c) 2004</p> * <p>Company: </p> * @author unascribed * @version 1.0 */import java.util.*;public class SendManager extends Engine { public static DBConnection db = null;//new DBConnection(); public SendManager(DBConnection d) { super("SendManager"); setDaemon(true); this.db = d; } public void run(){ String getUndoTimeUserSql24 = "select * from sms_forecast_time where TO_DAYS(done_time_24)<TO_DAYS(NOW()) "+ "and (period = 24 or period = 48) and status = 1 and deal_result = 0"; String getUndoTimeUserSql48 = "select * from sms_forecast_time where TO_DAYS(done_time_48)<TO_DAYS(NOW()) "+ " and period = 48 and status = 1 and deal_result = 0"; while(true){ Vector v24 = new Vector(); //24用户 发送一个24时预报的数据 包括48小时用户 v24 = (Vector)db.execute(getUndoTimeUserSql24); System.out.println("24 : "+v24); for(int i = 0;i<v24.size() ;i++){ String period = "24"; String b = "0",e = "1"; String cityName = ""; String forWho = ""; TimeUser timeUser = new TimeUser((String)((Vector)v24.get(i)).get(0), (String)((Vector)v24.get(i)).get(1), (String)((Vector)v24.get(i)).get(2), (String)((Vector)v24.get(i)).get(3), (String)((Vector)v24.get(i)).get(4), (String)((Vector)v24.get(i)).get(5), (String)((Vector)v24.get(i)).get(6), (String)((Vector)v24.get(i)).get(7), (String)((Vector)v24.get(i)).get(8)); cityName = timeUser.city_name ; forWho = timeUser.dest_terminal_id ; FcstContent fcstContent = getFcstContent(cityName,b,e); if(fcstContent != null && !fcstContent.weather_content.equals("") && fcstContent.weather_content != null && fcstContent.weather_content.length() != 0){//邦定submit包 String service_id = "",fee_user_type="",fee_terminal_id="", msg_fmt = "",fee_type ="",fee_code = "",src_terminal_id ="", dest_terminal_id="",msg_content = ""; String service_code = Config.order_text+period ; Fee fee = getFee(service_code); //获取tq24 的fee service_id = fee.service_id; fee_user_type = "3";//对fee_terminal_id收费 fee_terminal_id = timeUser.fee_terminal_id ; msg_fmt = "15"; fee_type = fee.fee_type; fee_code = fee.fee_code; src_terminal_id = Config.sp_id ; msg_content = fcstContent.weather_content ; System.out.println("定制 : "+msg_content); dest_terminal_id = timeUser.dest_terminal_id ; System.out.println(fee.fee_code+fee.service_code ); //邦定 SubmitPackage submitPackage = new SubmitPackage(service_id, fee_user_type, fee_terminal_id, msg_fmt, fee_type, fee_code, src_terminal_id, dest_terminal_id, msg_content, timeUser.id, period); boolean dealOk = Config.SubmitV.push(submitPackage); if(dealOk){ System.out.println("____________________send 24"+submitPackage.forecast_weather_time_id); setDealing(timeUser.id); } }else{ //没有气象数据 System.out.println("现在没有数据24"); }//邦定submit包 } //48 的用户发送48小时的1个预报数据 Vector v48 = new Vector(); //24用户 发送一个24时预报的数据 包括48小时用户 v48 = (Vector)db.execute(getUndoTimeUserSql48); System.out.println("v48 : "+v48); for(int i = 0;i<v48.size() ;i++){ String period = "48"; String b = "1",e = "2"; String cityName = ""; String forWho = ""; TimeUser timeUser = new TimeUser((String)((Vector)v48.get(i)).get(0), (String)((Vector)v48.get(i)).get(1), (String)((Vector)v48.get(i)).get(2), (String)((Vector)v48.get(i)).get(3), (String)((Vector)v48.get(i)).get(4), (String)((Vector)v48.get(i)).get(5), (String)((Vector)v48.get(i)).get(6), (String)((Vector)v48.get(i)).get(7), (String)((Vector)v48.get(i)).get(8)); cityName = timeUser.city_name ; forWho = timeUser.dest_terminal_id ; FcstContent fcstContent = getFcstContent(cityName,b,e); if(fcstContent != null && !fcstContent.weather_content.equals("") && fcstContent.weather_content != null && fcstContent.weather_content.length() != 0){//邦定submit包 String service_id = "",fee_user_type="",fee_terminal_id="", msg_fmt = "",fee_type ="",fee_code = "",src_terminal_id ="", dest_terminal_id="",msg_content = ""; String service_code = Config.order_text+period ; Fee fee = getFee(service_code); //获取tq24 的fee service_id = fee.service_id; fee_user_type = "3";//对fee_terminal_id收费 fee_terminal_id = timeUser.fee_terminal_id ; msg_fmt = "15"; fee_type = fee.fee_type; fee_code = fee.fee_code; src_terminal_id = Config.sp_id ; msg_content = fcstContent.weather_content ; System.out.println("定制 : "+msg_content); dest_terminal_id = timeUser.dest_terminal_id ; System.out.println(fee.fee_code+fee.service_code ); //邦定 SubmitPackage submitPackage = new SubmitPackage(service_id, fee_user_type, fee_terminal_id, msg_fmt, fee_type, fee_code, src_terminal_id, dest_terminal_id, msg_content, timeUser.id, period); boolean dealOk = Config.SubmitV.push(submitPackage); if(dealOk){ System.out.println("____________________send 48"); setDealing(timeUser.id); } }else{ //没有气象数据 System.out.println("现在没有数据48"); }//邦定submit包 } try{ sleep(1000*10); }catch(Exception e){ System.out.println("Exception In SendManager.run() : "+e.toString() ); } } } public Fee getFee(String service_code){ Fee fee = null; for(int i = 0;i<Config.service_list.size() ;i++){ if(((String)((Vector)Config.service_list.get(i)).get(0)).equals(service_code) ){ fee = new Fee((String)((Vector)Config.service_list.get(i)).get(1), (String)((Vector)Config.service_list.get(i)).get(0), (String)((Vector)Config.service_list.get(i)).get(2), (String)((Vector)Config.service_list.get(i)).get(3)); break; } } return fee; } public FcstContent getFcstContent(String cityCode,String b,String e){ FcstContent fcstContent = null; String getWeatherData = "select * from weather_data where create_time = '"+Utility.getDateString()+"' and content_type = 1 and "+ "(city_name = '"+cityCode+"' or city_sta = '"+cityCode+"' or city_tel = '"+cityCode+"') "+ " and TO_DAYS(weather_date_b)=TO_DAYS(sysdate() + INTERVAL "+b+" DAY) and "+ "TO_DAYS(weather_date_e) = TO_DAYS(sysdate() + INTERVAL " +e+ " DAY) order by hour_b_e desc";//逆序找到最近一个时次 System.out.println(getWeatherData); Vector contentV = new Vector(); contentV = (Vector)db.execute(getWeatherData); System.out.println("get the weather data : "+contentV); if(contentV.size() >0){ //发送MT Vector content = new Vector(); content = (Vector)contentV.get(0); fcstContent = new FcstContent((String)content.get(7), (String)content.get(1), (String)content.get(2), (String)content.get(3), (String)content.get(4), (String)content.get(6), (String)content.get(5), (String)content.get(7), (String)content.get(8) ); } return fcstContent; } public void setDealing(String id){ String updateSql = "update sms_forecast_time set deal_result = 2 where id = "+id; db.executeUpdate(updateSql); } public static void main(String[] args) { Config.ConnectDb() ; SendManager sendManager1 = new SendManager(Config.db); sendManager1.startup(); while(true){} }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -