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

📄 recethread.java

📁 中国移动MM7 彩信客户端java源码文档和数据库设计
💻 JAVA
字号:
package cn.netjava.mmsclient;

import com.cmcc.mm7.vasp.service.*;
import com.cmcc.mm7.vasp.message.*;
import com.cmcc.mm7.vasp.conf.*;
import com.cmcc.mm7.vasp.common.*;
import java.util.logging.Level;
import java.io.*;
import java.util.*;

import cn.netjava.mmsclient.util.*;

/**
 * <p>Title:中国移动mm7协议客户端 V0.1</p>
 * <p>Description: </p>
 * <p>Company:蓝杰实训 </p>
 * @author NetJava.cn 
 * @version 0.1
 */

public class ReceThread extends MM7Receiver {
    private static String receReport = "100";
    private static String readReport = "200";

    private static String basePath = "c:\\mms"; //默认MMS保存路径
    public ReceThread() {
        Object tmpPath = SysConfig.getInstance().hashmap.get("receDir");
        if (tmpPath != null) {
            basePath = tmpPath.toString();
        }
    }

    public MM7VASPRes doDeliver(MM7DeliverReq mm7DeliverReq) {
        //System.out.println("mm7DeliverReq = " + mm7DeliverReq);
        String msg_id = mm7DeliverReq.getTransactionID(); //注此msg_id,实为TransactionID 为了定位文件路径
        String mobile = mm7DeliverReq.getSender();
        String dest_sp = SysConfig.getInstance().hashmap.get("spId").toString(); ;
        String subject = mm7DeliverReq.getSubject();
        String path = null;
        String link_id = mm7DeliverReq.getLinkedID();


        LogManage.ins().logger.logp(Level.INFO, " |Deliver| ", " ",
                                            "  " + mobile +
                                    " : " + subject);
        if (mm7DeliverReq.isContentExist()) {
            MMContent parentContent = mm7DeliverReq.getContent();
            if (parentContent.isMultipart()) {
                System.out.println("multipart");
                List contentList = parentContent.getSubContents();
                System.out.println("i=" + contentList.size());
                for (int i = 0; i < contentList.size(); i++) {
                    MMContent mmContent = (MMContent) contentList.get(i);
                    String contentID = mmContent.getContentID();
                    contentID = "zxme" + i;
                    MMContentType mmContentType = mmContent.getContentType();
                    System.out.println("contenttype=" +
                                       mmContentType.getPrimaryType() + "/" +
                                       mmContentType.getSubType());
                    if (mmContentType.getSubType().trim().equalsIgnoreCase(
                            "jpeg")) {
                        contentID = contentID + ".jpg";
                    } else if (mmContentType.getSubType().trim().
                               equalsIgnoreCase("gif")) {
                        contentID = contentID + ".gif";
                    } else if (mmContentType.getSubType().trim().
                               equalsIgnoreCase("midi")) {
                        contentID = contentID + ".mid";
                    } else if (mmContentType.getSubType().trim().
                               equalsIgnoreCase("png")) {
                        contentID = contentID + ".png";
                    } else if (mmContentType.getPrimaryType().trim().
                               equalsIgnoreCase("text")) {
                        contentID = contentID + ".txt";
                    }
                    System.out.println("contentID=" + contentID);
                    byte content[] = mmContent.getContent();
                    System.out.println("content.length = " + content.length);
                    if (content.length > 0) {
                        try {
                            path = basePath + File.separator + this.getYear() +
                                   File.separator + this.getMonth() +
                                   File.separator +
                                   this.getDay() + File.separator + msg_id;
                            File file = new File(path);
                            if (!file.exists()) {
                                file.mkdirs();
                            }

                            FileOutputStream fileStream = new
                                    FileOutputStream(path + File.separator +
                                    contentID);
                            fileStream.write(content);
                            fileStream.close();
                        } catch (IOException e) {
                            System.err.println(e);
                        }
                    } else {
                        System.out.println("content is NULL ");
                    }
                }
            } else {
                System.out.println("singlepart");
                String contentID = parentContent.getContentID();
                System.out.println("contentID=" + contentID);
                if (contentID == null || contentID.length() == 0) {
                    contentID = "zxme.";
                }
                MMContentType mmContentType = parentContent.getContentType();
                if (mmContentType.getSubType().equalsIgnoreCase("jpeg")) {
                    contentID = contentID + "jpg";
                } else if (mmContentType.getSubType().equalsIgnoreCase("gif")) {
                    contentID = contentID + "gif";
                } else if (mmContentType.getSubType().equalsIgnoreCase("mid")) {
                    contentID = contentID + "mid";
                } else if (mmContentType.getSubType().equalsIgnoreCase("png")) {
                    contentID = contentID + "png";
                } else if (mmContentType.getPrimaryType().equalsIgnoreCase(
                        "txt")) {
                    contentID = contentID + "txt";
                }

                byte content[] = parentContent.getContent();
                System.out.println("content.length = " + content.length);
                if (content.length > 0) {
                    try {
                        path = basePath + File.separator + this.getYear() +
                               File.separator + this.getMonth() +
                               File.separator +
                               this.getDay() + File.separator + msg_id;
                        File file = new File(path);
                        if (!file.exists()) {
                            file.mkdirs();
                        }

                        FileOutputStream fileStream = new FileOutputStream(
                                path + File.separator + contentID);
                        fileStream.write(content);
                        fileStream.close();
                    } catch (IOException e) {
                        System.err.println(e);
                    }
                } else {
                    System.out.println("content is NULL ");
                }
            }

        }

        saveDeliver(msg_id, mobile, dest_sp, subject, path, link_id);

        MM7DeliverRes res = new MM7DeliverRes();
        res.setTransactionID(mm7DeliverReq.getTransactionID());
        res.setStatusCode(1000);
        return res;
    }

    public MM7VASPRes doDeliveryReport(MM7DeliveryReportReq
                                       mm7DeliveryReportReq) {
//        System.out.println("transactionid=" +
//                           mm7DeliveryReportReq.getTransactionID());
//        System.out.println("mm7DeliveryReportReq = " + mm7DeliveryReportReq);
        MM7DeliveryReportRes res = new MM7DeliveryReportRes();
        res.setTransactionID(mm7DeliveryReportReq.getTransactionID());
        res.setStatusCode(1000);

        String report_stat = mm7DeliveryReportReq.getStatusText();
        byte b = mm7DeliveryReportReq.getMMStatus();
        if (b == 1 || mm7DeliveryReportReq.getStatusText().endsWith("OK")) {
            report_stat = receReport;
        }

        this.saveReport(mm7DeliveryReportReq.getSender(), report_stat,
                        mm7DeliveryReportReq.getMessageID());
        // LogManage.ins().logger.info(mm7DeliveryReportReq.getSender() +" );
        LogManage.ins().logger.logp(Level.INFO, " |Report| ", " ",
                                    "  " + mm7DeliveryReportReq.getSender() +
                                    " : " + report_stat);

        return res;
    }

    public MM7VASPRes doReadReply(MM7ReadReplyReq mm7ReadReplyReq) {
//        System.out.println("transactionid=" + mm7ReadReplyReq);
        MM7ReadReplyRes res = new MM7ReadReplyRes();
        res.setTransactionID(mm7ReadReplyReq.getTransactionID());
        res.setStatusCode(1000);
        String report_stat = mm7ReadReplyReq.getStatusText();
        byte b = mm7ReadReplyReq.getMMStatus();
        if (b == 1 || mm7ReadReplyReq.getStatusText().endsWith("OK")) {
            report_stat = readReport;
        }

        this.saveReport(mm7ReadReplyReq.getSender(), report_stat,
                        mm7ReadReplyReq.getMessageID());

        LogManage.ins().logger.logp(Level.INFO, " |Report_Read| ", " ",
                                    "  " + mm7ReadReplyReq.getSender() +
                                    " : " + report_stat);

        return res;
    }

    public void start() {
        super.start();
        while (true) {
            try {
                Thread.sleep(1000);
            } catch (Exception ex) {
                ex.printStackTrace();
            }

        }
    }

    private void saveReport(String mobie, String report_stat, String msg_id) {
        try {
            String sql =
                    "insert into t_mms_report_tem(msg_id,report_stat,mobile,dest_sp) values('" +
                    msg_id + "','" + report_stat + "','" + mobie + "','" +
                    SysConfig.getInstance().hashmap.get("spId") + "')";
            DataBase.getInstance().exeSql(sql);
        } catch (Exception ex) {
            LogManage.ins().logger.severe("saveReport : " + ex.getMessage());
        }
    }

    private void saveDeliver(String msg_id, String mobile, String dest_sp,
                             String subject, String fileDir, String link_id) {
        try {
            String sql;
            if (fileDir == null) {
                sql = "insert into t_mms_interface_deliver(msg_id,mobile,dest_sp,subject,link_id) values('" +
                      msg_id + "','" + mobile + "','" + dest_sp + "','" +
                      subject + "','" + link_id + "')";
                DataBase.getInstance().exeSql(sql);

                sql =
                        "insert into t_mms_deliver(msg_id,mobile,dest_sp,subject,link_id) values('" +
                        msg_id + "','" + mobile + "','" + dest_sp + "','" +
                        subject + "','" + link_id + "')";
                DataBase.getInstance().exeSql(sql);
            } else {
                sql = "insert into t_mms_interface_deliver(msg_id,mobile,dest_sp,subject,fileDir,link_id) values('" +
                      msg_id + "','" + mobile + "','" + dest_sp + "','" +
                      subject + "','" + fileDir + "','" + link_id + "')";
                DataBase.getInstance().exeSql(sql);

                sql = "insert into t_mms_deliver(msg_id,mobile,dest_sp,subject,fileDir,link_id) values('" +
                      msg_id + "','" + mobile + "','" + dest_sp + "','" +
                      subject + "','" + fileDir + "','" + link_id + "')";
                DataBase.getInstance().exeSql(sql);
            }
        } catch (Exception ex) {
            LogManage.ins().logger.severe("saveDeliver : " + ex.getMessage());
        }
    }


    public String getYear() {
        Calendar now = Calendar.getInstance();
        String yyyy = String.valueOf(now.get(java.util.Calendar.YEAR));
        return yyyy;
    }

    public String getMonth() {
        Calendar now = Calendar.getInstance();
        String mm = totwo(String.valueOf(now.get(Calendar.MONTH) + 1));
        return mm;
    }

    public String getDay() {
        Calendar now = Calendar.getInstance();
        String dd = totwo(String.valueOf(now.get(Calendar.DAY_OF_MONTH)));
        return dd;
    }


    public String totwo(String s) {
        if (s.length() < 2) {
            s = "0" + s;
            return s;
        }
        return s;
    }


}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -