?? resendmonthmessage.java
字號(hào):
package com.sungoal.charge;
import java.sql.*;
import javax.sql.RowSet;
import com.sungoal.database.*;
import com.sungoal.sms.message.MTInfo;
import com.sungoal.sms.util.MySocket;
import com.sungoal.sms.message.MTAck;
import com.sungoal.sms.common.*;
/** 功能:包月用戶收費(fèi),不定期執(zhí)行,對包月收費(fèi)失敗的訂閱重試扣費(fèi).*/
public class ReSendMonthMessage {
/*內(nèi)部類啟動(dòng)多線程,對相應(yīng)網(wǎng)關(guān)用戶收費(fèi)*/
class SendEachGateway
extends Thread {
int gateway = 0;
String strSQL = "";
public SendEachGateway(int gateway) { //構(gòu)造函數(shù)
this.gateway = gateway;
/*不定期執(zhí)行收費(fèi),條件:
1) 本月收費(fèi)沒返回狀態(tài)報(bào)告及錯(cuò)誤狀態(tài)報(bào)告的訂閱.
2) 一些免費(fèi)代碼.
*/
/*CMPP(中國移動(dòng))協(xié)議的字段值.*/
int isSMT=2;
String rightReport ="DELIVRD";
if(gateway==7 )
{
/*SGIP(中國聯(lián)通)協(xié)議的字段值.*/
isSMT = 3;
rightReport = "0";
}
strSQL =
"select Distinct PRODUCTID,RECNUM as phoneno,GATEWAY,REPORT from mtrecord_stat"
+ " where issmt="+isSMT
+ " And ENDTIME>=to_date(to_char(SYSDATE,'yyyy-mm'),'yyyy-mm')"
// + " And PRODUCTID!=226 And ENDTIME>=to_date('2004-03-01','yyyy-mm-dd')"
+ " and report!='"+rightReport+"'"
+ " And STATUS!=-1"
+ " and GATEWAY='" + gateway+"'";
System.out.println("strSQL:" + strSQL);
}
public void run() {
try {
RowSet rs = DBManager.executeQuery(strSQL);
while (rs.next()) {
MTInfo mtInfo = new MTInfo();
//MTMethods.sendSMC(gateway,rs.getString("phoneno"),rs.getInt("PRODUCTID"));
mtInfo.destPhone.add(rs.getString("phoneno"));
mtInfo.srcPhone = "";
mtInfo.gateway = gateway;
mtInfo.productID = rs.getInt("PRODUCTID");
mtInfo.content = "SMC";
mtInfo.registededDelivery = 2;
Thread.sleep(2);
MTAck mtack = (MTAck) MySocket.sendMsg(mtInfo, 0);
System.out.println(gateway + "\t" + rs.getInt("PRODUCTID") + "\t"+
rs.getString("phoneno") + '\t'
//);
+ mtack.getStatus());
}
System.out.println("網(wǎng)關(guān)收費(fèi)總數(shù):\t" + gateway + "\t" + rs.getRow());
rs.close();
}
catch (Exception e) {
e.printStackTrace();
}
}
}
/**依次對各網(wǎng)關(guān)啟動(dòng)線程*/
public void sendMain() {
SendEachGateway sendEachGateway = null;
for (int i = 1; i <= 7; i++) {
//if (i != 3 && i != 6)
{
sendEachGateway = new SendEachGateway(i);
sendEachGateway.start();
}
}
}
public static void main(String[] args) {
ReSendMonthMessage sendMonthMessage = new ReSendMonthMessage();
sendMonthMessage.sendMain();
}
}
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -