package com.fr.tx.common.util;

import java.io.FileWriter;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;

import javax.swing.JOptionPane;


public class FileWriteThread implements Runnable{

    private Object obj;
    
    private String path;
    
    private String ip;
    
    private String data;
    
    /**
     * 写入集合
     */
    private List<String> keyList = new ArrayList<String>();
    
    public FileWriteThread(Object obj, List<String> keyList,String path,String ip,String data) {
        this.path = path;
        this.obj = obj;
        this.keyList = keyList;
        this.ip = ip;
        this.data = data;
    }

    public void run() {
        synchronized (obj) {
            doWrite();
        }
    }

    /**
     * @param receiveBuf
     * @param clientAddress
     */
    private void doWrite() {
        // TODO 
        String key = data.substring(10,21);
        System.out.println(key);
        
        if (keyList.contains(key)) {
            FileWriter fw = null;
            String sysDate = DateUtil.formatDate(DateUtil.currentTimestamp(),
                DateUtil.DATE_PATTERN_0);
            
            String filePath = StringUtil.connectString(path,key,
                StringUtil.JOIN, sysDate);

            try {
                fw = new FileWriter(filePath, true);
                String sysTime = DateUtil.formatDate(DateUtil.currentTimestamp(),
                    DateUtil.DATE_PATTERN_8);
                FileUtil.append(fw, StringUtil.connectString(sysTime, StringUtil.STR_TAB, ip, StringUtil.STR_TAB, data, "\n"));
            } catch (IOException e) {
                e.printStackTrace();
                JOptionPane.showMessageDialog(null, "文件处理失败，请联系管理员。");
            }
            
        }
    }
}
