⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 sendmonthmessage.java

📁 SP最新短信计费系统
💻 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 + -