📄 getuser.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 GetUser extends Engine { public static DBConnection db = null;//new DBConnection(); public GetUser(DBConnection d) { super("GetUser"); setDaemon(true); this.db = d; } public void run(){ String getUser = "select * from sms_deliver where TO_DAYS(NOW())-TO_DAYS(arrive_time) <= 3 and deal_result = 0 and redeal > 0 and (LOWER(msg_content) like "+ "'"+Config.order_text+"%' or LOWER(msg_content) = '0000')" ; while(true){ Vector v = new Vector(); v = (Vector)db.execute(getUser); System.out.println(v+getUser); for(int i = 0;i<v.size() ;i++){ Order oneOrder = new Order((String)((Vector)v.get(i)).get(0), (String)((Vector)v.get(i)).get(1), (String)((Vector)v.get(i)).get(2), (String)((Vector)v.get(i)).get(3), (String)((Vector)v.get(i)).get(4), (String)((Vector)v.get(i)).get(5), (String)((Vector)v.get(i)).get(6)); //0000000000000000000 if(oneOrder.msg_content.equals("0000")){ DisableUser(oneOrder.src_terminal_id,oneOrder.msg_id ); SendDisableIsOk(oneOrder); continue; } //0000000000000000000 StringTokenizer st = new StringTokenizer(oneOrder.msg_content," " ); String mainOrderText = ""; String period = ""; String b = "0",e = "1"; String cityCode = ""; String forWho = ""; if(st.hasMoreElements() ){ mainOrderText = ((String)st.nextElement()).trim() ; }//yb24 //确定预报时段 if(mainOrderText.indexOf("024") != -1 || mainOrderText.indexOf("24") != -1){ period = "24"; }else if(mainOrderText.indexOf("048") != -1 || mainOrderText.indexOf("48") != -1){ period = "48"; b = "1"; e = "2"; }else{ period = "24"; b = "0"; e = "1"; } if(st.hasMoreElements() ){ cityCode = ((String)st.nextElement()).trim() ; }// 54511 or 010 or 北京 if(st.hasMoreElements() ){ forWho = ((String)st.nextElement()).trim() ; System.out.println("forWho : "+forWho); } if(forWho.startsWith("13") && forWho.length() == 11){ }else{ forWho = oneOrder.src_terminal_id ; } String cityName = getCityName(cityCode); if(FindUser(forWho,period,cityName)){ SendAbleIsOk(oneOrder,forWho,period,cityName); WriteUserWhenError(oneOrder.msg_id); }else{ boolean writeUserOk = WriteUser(oneOrder.msg_id , oneOrder.src_terminal_id , forWho, cityName,period); } } try{ sleep(1000*5); }catch(Exception e){ System.out.println("Exception In GetUser.run() : "+e.toString() ); } } } public String getCityName(String cityCode){ String result = "北京"; String getCityNameSql = "select name from stn where sta_id = '"+cityCode+"' or tel = '"+cityCode+"' or name = '"+cityCode+"'"; Vector v = new Vector(); v = (Vector)db.execute(getCityNameSql) ; if(v.size() >0){ result = (String)((Vector)v.get(0)).get(0); } return result; } public boolean WriteUser(String deliver_msg_id,String fee_terminal_id,String dest_terminal_id, String city_name,String period){ boolean result = false; Calendar cld = Calendar.getInstance() ; cld.add(Calendar.DATE ,-1); String lastDay = Utility.getDateString(cld); String insertSql = "insert into sms_forecast_time (fee_terminal_id,dest_terminal_id,"+ "create_time,city_name,period,done_time_24,done_time_48)values('"+fee_terminal_id+"','"+dest_terminal_id+ "','"+Utility.getDateString() +" "+Utility.getTimeString() +"','"+city_name+ "','"+period+"','"+lastDay+"','"+lastDay+"')"; int insertOk = Integer.parseInt(String.valueOf(db.executeUpdate(insertSql))); if(insertOk == 1){ String updateSql = "update sms_deliver set deal_result = 1 ,redeal = redeal-1 where msg_id = "+deliver_msg_id; int i = Integer.parseInt(String.valueOf(db.executeUpdate(updateSql))); if(i == 1){ result = true; } } return result ; }public boolean WriteUserWhenError(String deliver_msg_id){ boolean result = false; String updateSql = "update sms_deliver set deal_result = 1 ,redeal = redeal-1 where msg_id = "+deliver_msg_id; int i = Integer.parseInt(String.valueOf(db.executeUpdate(updateSql))); if(i == 1){ result = true; } return result ;} 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 void DisableUser(String fee_terminal_id,String deliver_msg_id){ String Sql1 = "update sms_forecast_time set status = 0 where fee_terminal_id ='"+fee_terminal_id+"'"; String Sql2 = "update sms_deliver set deal_result = 1 ,redeal = redeal-1 where msg_id = "+deliver_msg_id; String Sql3 = "update mms_forecast_time set status = 0 where fee_terminal_id ='"+fee_terminal_id+"'"; db.executeUpdate(Sql1) ; db.executeUpdate(Sql2) ; db.executeUpdate(Sql3) ; System.out.println("%%%%%%%%%%%%%"+Sql1+"\r\n"+Sql2); } public void SendDisableIsOk(Order oneOrder){ String service_code = Config.free_service_code ; Fee fee = getFee(service_code); String service_id = fee.service_id; String fee_type = fee.fee_type; String fee_code = fee.fee_code ; String fee_user_type = "3"; String fee_terminal_id = oneOrder.src_terminal_id ; String msg_fmt = "15"; String src_terminal_id = Config.sp_id ; String dest_terminal_id = oneOrder.src_terminal_id ; String msg_content = ""; Vector findUserV = new Vector(); String findSql = "select * from sms_forecast_time where fee_terminal_id ='"+oneOrder.src_terminal_id+"'"; findUserV = (Vector)db.execute(findSql) ; try{ if(findUserV.size() >0){ msg_content = "您已经取消了所有订阅!"; }else{ msg_content = "您还没有定制,所以不能取消!"; } }catch(Exception e){ msg_content = "您还没有定制,所以不能取消!"; } 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, "", ""); boolean dealOk = Config.SubmitV.push(submitPackage); if(dealOk){ System.out.println("下发取消定制确认段信"); //setDealing(timeUser.id); } }public boolean SendAbleIsOk(Order oneOrder,String forWho,String period,String cityName){ boolean result = false; String service_code = Config.free_service_code ; Fee fee = getFee(service_code); String service_id = fee.service_id; String fee_type = fee.fee_type; String fee_code = fee.fee_code ; String fee_user_type = "3"; String fee_terminal_id = oneOrder.src_terminal_id ; String msg_fmt = "15"; String src_terminal_id = Config.sp_id ; String dest_terminal_id = oneOrder.src_terminal_id ; String msg_content = ""; if(FindUser(forWho,period,cityName)){ msg_content = "重复订阅:您已经为"+forWho+"定制了"+period+"预报服务!"; }else{ msg_content = "成功订阅:您为"+forWho+"成功定制"+period+"预报服务!"; } 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, "", ""); boolean dealOk = Config.SubmitV.push(submitPackage); if(dealOk){ System.out.println("下发成功定制确认段信"); //setDealing(timeUser.id); } return result;}public boolean FindUser(String dest_terminal_id,String period,String cityName){ boolean result = false; String sql = "select * from sms_forecast_time where status = 1 and city_name = '"+cityName+"' and dest_terminal_id='"+dest_terminal_id+"' and period ="+period; Vector v = new Vector(); v = (Vector)db.execute(sql) ; System.out.println(sql); try{ if(v.size() > 0){ result = true; }else{ } }catch(Exception e){ e.printStackTrace() ; } return result;} public static void main(String[] args) { //GetUser getUser1 = new GetUser(); }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -