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

📄 sendmonthcharge.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 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 + -