📄 sendmonthcharge.java
字号:
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;
/** 功能:包月用户收费,每天执行一次.*/
public class SendMonthCharge {
/*内部类启动多线程,对相应网关用户收费*/
class SendEachGateway
extends Thread {
int gateway = 0;
String strSQL = "";
public SendEachGateway(int gateway) { //构造函数
this.gateway = gateway;
/*每天执行收费,条件:
1) FEEDATE=sysdate.
2) 一些免费代码.
*/
strSQL = "Select Subscription.ID As SUBID,Subscription.PRODUCTID,"
+ "Subscription.PHONENO,SMSUser.GATEWAYID"
+ " From Product, Subscription,SMSUser "
+ " Where Subscription.PHONENO = SMSUSER.PHONENO"
+ " And Subscription.PRODUCTID=Product.ID"
+ " And TO_CHAR(Subscription.FEEDATE,'YYYY-MM-DD')=TO_CHAR(SYSDATE,'YYYY-MM-DD')"
+" And Subscription.Status=1 And PRODUCT.PAYWAY='03' "
+ " and SMSUser.GATEWAYID=" + gateway
+ " Order by PRODUCTID,Subscription.PHONENO";
// System.out.println("strSQL:" + strSQL);
}
public void run() {
try {
RowSet rs = DBManager.executeQuery(strSQL);
int gatewayID = 0;
while (rs.next()) {
gatewayID = rs.getInt("GATEWAYID");
MTInfo mtInfo = new MTInfo();
mtInfo.destPhone.add(rs.getString("phoneno"));
mtInfo.srcPhone = "";
mtInfo.gateway = gatewayID;
mtInfo.productID = rs.getInt("PRODUCTID");
mtInfo.content = "SMCSMC";
mtInfo.registededDelivery = 2;
Thread.sleep(2);
MTAck mtack = (MTAck) MySocket.sendMsg(mtInfo, 0);
System.out.println(gatewayID + "\t" + rs.getInt("PRODUCTID") + "\t"
+ rs.getInt("SUBID") + "\t" +
rs.getString("phoneno") + '\t'
//);
+ mtack.getStatus());
}
System.out.println("网关收费总数:\t" + gatewayID + "\t" + rs.getRow());
rs.close();
}
catch (Exception e) {
e.printStackTrace();
}
}
}
/**依次对各网关启动线程*/
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) {
System.out.println( "\nBegin:\t"+(new java.util.Date()) ) ;
SendMonthCharge sendMonthMessage = new SendMonthCharge();
sendMonthMessage.sendMain();
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -