com.puzzle.module.send.excutor.MessageSendExcutor.java Source code

Java tutorial

Introduction

Here is the source code for com.puzzle.module.send.excutor.MessageSendExcutor.java

Source

/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package com.puzzle.module.send.excutor;

import com.puzzle.module.send.checkXml.XmlCheckResult;
import com.puzzle.module.send.checkXml.xmlCheck;
import com.puzzle.module.send.kafka10.KafkaProducerClient;
import com.puzzle.module.send.sign.SignXml;
import com.puzzle.module.send.spliteXml.SpliteXml;
import com.puzzle.util.DateUtil;
import com.puzzle.util.FileDto;
import com.puzzle.util.JtableMessageDto;
import com.puzzle.util.QueueUtils;
import java.io.File;
import java.util.Date;
import org.apache.commons.io.FileUtils;
import org.apache.log4j.Logger;

/**
 * 1. 2.?? 3.???
 * 4.????(???)
 *
 * ?MQ??
 *
 * @author Administrator
 */
public class MessageSendExcutor {

    private static Logger log = Logger.getLogger(MessageSendExcutor.class);

    public void excute(File xml) {
        KafkaProducerClient client = null;

        try {
            String content = FileUtils.readFileToString(xml, "UTF-8");

            XmlCheckResult checkResult = xmlCheck.isValid(content);
            if (!checkResult.isValid) {//

                FileUtils.copyFileToDirectory(xml, new File(FileDto.getSingleInstance().errorPath), true);

                log.error(xml.getAbsolutePath() + "");
                return;
            }

            boolean tr = true;
            if (content.indexOf("<CEB625Message") != -1 || content.indexOf("<CEB623Message") != -1
                    || content.indexOf("<CEB711Message") != -1 || content.indexOf("<CEB513Message") != -1) {//?

                String signedXml = SignXml.sign2(content);
                if (signedXml == null || signedXml.equals("")) {
                    return;
                }

                File signFile = new File(FileDto.getSingleInstance().fileSignPath,
                        "???-" + DateUtil.getCurrDateMM2() + xml.getName());
                FileUtils.writeStringToFile(signFile, signedXml, "UTF-8");
                if (FileDto.getSingleInstance().sendCusisSelected) {
                    client = KafkaProducerClient.getSingletonInstance();
                    client.send(FileDto.getSingleInstance().cusSendTopic, signedXml);
                    QueueUtils.sendSignTable.offer(new JtableMessageDto(signFile.getAbsolutePath(),
                            DateUtil.getFormatDateTime(new Date())));

                    log.info(xml.getName() + "???");
                }

            } else {

                String splitXml = SpliteXml.splite(content);

                if (splitXml == null) {
                    return;
                }
                log.info(xml.getName() + "");

                splitXml = SignXml.sign(splitXml);// ????

                if (splitXml == null) {
                    log.info("?>>>>??");
                    return;
                }

                File signFile = new File(FileDto.getSingleInstance().fileSignPath,
                        "???-" + DateUtil.getCurrDateMM2() + xml.getName());
                FileUtils.writeStringToFile(signFile, splitXml, "UTF-8");

                //          

                if (FileDto.getSingleInstance().sendCusisSelected) {
                    client = KafkaProducerClient.getSingletonInstance();
                    client.send(FileDto.getSingleInstance().cusSendTopic, splitXml);
                    QueueUtils.sendSignTable.offer(new JtableMessageDto(signFile.getAbsolutePath(),
                            DateUtil.getFormatDateTime(new Date())));

                    log.info(xml.getName() + "???");
                }

                if (FileDto.getSingleInstance().sendCiqisSelected) {
                    client = KafkaProducerClient.getSingletonInstance();
                    client.send(FileDto.getSingleInstance().sendTpoic, content);//??? 
                    QueueUtils.sendTable1.offer(
                            new JtableMessageDto(xml.getAbsolutePath(), DateUtil.getFormatDateTime(new Date())));

                    log.info(xml.getName() + "???");
                }

            }

        } catch (Exception e) {
            e.printStackTrace();
            if (client != null) {
                client.close();
            }
        }

    }

}