package com.allinpay.generator; import java.io.CharArrayWriter; import java.io.File; import java.io.FileOutputStream; import java.io.FileWriter; import java.io.IOException; import java.io.OutputStream; import java.io.Writer; import java.util.ArrayList; import java.util.Date; import java.util.HashMap; import java.util.List; import java.util.Locale; import java.util.Map; import com.allinpay.util.DateUtil; import com.allinpay.util.FileUtil; import freemarker.template.Configuration; import freemarker.template.Template; /** * @author nilomiao * */ public class AgentPaymentBatchFileGenerator { public File createEmptyGeneratedFile(String fileName) { File file = new File("E:/RPT_ORG_SUMMARY" + DateUtil.formatCurrDateTime(DateUtil.DF_YMDHMS) + ".csv"); return file; } public static void main(String[] args) { String templateFile = "ccb-c.ftl"; String fileName = "E:/template/RPT_ORG_SUMMARY" + DateUtil.formatCurrDateTime(DateUtil.DF_YMDHMS) + ".txt"; Map model = new HashMap(); String date = DateUtil.formatCurrDateTime(DateUtil.DF_YYYY_MM_DD); model.put("tlAccountNo", "100010001000"); model.put("today", DateUtil.date2string(new Date())); List resultList = new ArrayList(); AgentPaymentDetail paymentBatchDetail = new AgentPaymentDetail(); paymentBatchDetail.setMerchantId("1000200912180001"); paymentBatchDetail.setAccountName("name"); paymentBatchDetail.setAccountNo("no"); paymentBatchDetail.setAmount(10000L); paymentBatchDetail.setFee(888l); resultList.add(paymentBatchDetail); AgentPaymentDetail paymentBatchDetail1 = new AgentPaymentDetail(); paymentBatchDetail.setMerchantId("1000200912180002"); paymentBatchDetail1.setAccountName("name2"); paymentBatchDetail1.setAccountNo("no2"); paymentBatchDetail1.setAmount(8898l); paymentBatchDetail1.setFee(888l); resultList.add(paymentBatchDetail1); model.put("resultList", resultList); Writer writer = null; FileWriter fw = null; try { writer = new CharArrayWriter(); Template template = getTemplate(templateFile); template.process(model, writer); writer.flush(); File file = new File(fileName); file.delete(); OutputStream os = new FileOutputStream(file); FileUtil.save(os, writer.toString().getBytes("utf-8")); os.close(); } catch (Exception e) { e.printStackTrace(); } finally { if (null != writer) { try { writer.close(); } catch (IOException e) { e.printStackTrace(); } } if (null != fw) { try { fw.close(); } catch (IOException e) { e.printStackTrace(); } } } } /** * Read template. * @param templateFilePath * @return * @throws IOException */ protected static Template getTemplate(String templateFile) throws IOException { Configuration conf = Configuration.getDefaultConfiguration(); conf.setDirectoryForTemplateLoading(new File("E:\\dev-workspace\\ets\\CodeGenerator\\test\\src\\main\\java\\com\\allinpay\\generator")); conf.setEncoding(Locale.CHINA, "utf-8"); conf.setOutputEncoding("gb2312"); return conf.getTemplate(templateFile); } }