📄 sendmonthmessage.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 SendMonthMessage {
/*内部类启动多线程,对相应网关用户收费*/
class SendEachGateway
extends Thread {
int gateway = 0;
String strSQL = "";
public SendEachGateway(int gateway) { //构造函数
this.gateway = gateway;
/*每月初对有效订阅统一收费,条件:
1) 有效订阅
2) FEEDATE<sysdate.
3) 一些免费代码.
*/
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 PRODUCTID!=226 And Subscription.Status=1 And FEEDATE<sysdate And PRODUCT.PAYWAY='03' "
// + " and (Subscription.PHONENO not in(select phoneno from FREENUMBER Where status =1))"
+ " and SMSUser.GATEWAYID=" + gateway
+ " Order by PRODUCTID,Subscription.PHONENO";
System.out.println("strSQL:" + strSQL);
}
public void run() {
String content = "";
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(20);
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;
// sendEachGateway = new SendEachGateway(7);
// sendEachGateway.start();
// sendEachGateway = new SendEachGateway(1);
// sendEachGateway.start();
/*
sendEachGateway = new SendEachGateway(4);
sendEachGateway.start();
sendEachGateway = new SendEachGateway(5);
sendEachGateway.start();
*/
for (int i = 1; i <=7 ; i++) {
//if (i != 3 && i != 6)
{
sendEachGateway = new SendEachGateway(i);
sendEachGateway.start();
}
}
}
public static void main(String[] args) {
SendMonthMessage sendMonthMessage = new SendMonthMessage();
sendMonthMessage.sendMain();
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -