package com.mossle.cms.export;
import java.io.File;
import java.io.FileOutputStream;
import java.io.OutputStreamWriter;
import java.io.PrintWriter;
import java.util.List;
import java.util.Map;
import org.springframework.jdbc.core.JdbcTemplate;
public class CatalogExporter {
public void doExport(File baseDir, JdbcTemplate jdbcTemplate,
String catalogId) throws Exception {
File dir = this.exportCatalog(baseDir, jdbcTemplate, catalogId);
this.exportArticles(dir, jdbcTemplate, catalogId);
}
public File exportCatalog(File baseDir, JdbcTemplate jdbcTemplate,
String catalogId) throws Exception {
String sql = "select id, code, name from CMS_CATALOG where id=?";
Map<String, Object> map = jdbcTemplate.queryForMap(sql, catalogId);
String code = (String) map.get("code");
String name = (String) map.get("name");
File dir = new File(baseDir, code);
dir.mkdirs();
File file = new File(baseDir, code + ".properties");
PrintWriter writer = new PrintWriter(new OutputStreamWriter(
new FileOutputStream(file), "UTF-8"));
writer.println("code=" + code);
writer.println("name=" + name);
writer.flush();
writer.close();
return dir;
}
public void exportArticles(File dir, JdbcTemplate jdbcTemplate,
String catalogId) throws Exception {
String sql = "select id from CMS_ARTICLE where CATALOG_ID=?";
List<Map<String, Object>> list = jdbcTemplate.queryForList(sql,
catalogId);
for (Map<String, Object> map : list) {
String articleId = map.get("id").toString();
new ArticleExporter().doExport(dir, jdbcTemplate, articleId);
}
}
}