package xin.glue.ui.Z; import com.posdata.glue.biz.activity.PosActivity; import com.posdata.glue.biz.constants.PosBizControlConstants; import com.posdata.glue.context.PosContext; import com.posdata.glue.dao.PosGenericDao; import com.posdata.glue.dao.vo.PosParameter; import com.posdata.glue.dao.vo.PosRow; import com.posdata.glue.dao.vo.PosRowSet; import com.posdata.glue.util.PosFileResourceUtil; import java.io.File; import java.net.URL; import java.util.Map; import xin.glue.ui.common.component.PosSiteConfig; public class PosUIFileManager extends PosActivity { private PosGenericDao getDao() { String testdao = getProperty("dao"); if (testdao == null) testdao = "mesdao"; else testdao = testdao.trim(); return getDao(testdao); } public String runActivity(PosContext ctx) { if (!PosSiteConfig.isDebug()) return PosBizControlConstants.SUCCESS; URL url = PosFileResourceUtil.getResource("/"); // xgmes3/WEB-INF/classes/ => xgmes3 String dir = url.getPath(); //System.out.println(dir); String xrwFiles = getListOfFiles((new File(dir)).getParentFile().getParentFile()); //System.out.println(xrwFiles); if ("".equals(xrwFiles)) return PosBizControlConstants.SUCCESS; PosGenericDao dao = getDao(); PosParameter param = new PosParameter(); param.setWhereClauseParameter(0, xrwFiles); PosRowSet rowset = dao.find("FileManager.select", param); while (rowset.hasNext()) { PosRow row = rowset.next(); Map rowData = row.getAttributes(); searchMNSCR((String)rowData.get("MNSCR_ID"), dao); } if (PosSiteConfig.isBeta()) { // ²âÊÔ½×¶Î dao.delete("FileManager.SCRFN.delete", param); dao.delete("FileManager.MNSCR.delete", param); } return PosBizControlConstants.SUCCESS; } private String getListOfFiles(File file) { String xrwFiles = ""; File afile[] = file.isFile()? (new File[] {file}) : file.listFiles(); if(afile == null || afile.length == 0) return xrwFiles; for(int i = 0; i < afile.length; i++) { if(afile[i].isDirectory()) { if (";css;images;js;META-INF;WEB-INF;".indexOf(";"+afile[i].getName()+";") == -1) xrwFiles += "," + getListOfFiles(afile[i]); } else if(afile[i].isFile()) { String fileName = afile[i].getName(); if (fileName.startsWith("UI") && fileName.endsWith(".xrw") && fileName.length() == 13) xrwFiles += "," + fileName.substring(0, 9); } } if (!"".equals(xrwFiles)) { xrwFiles = xrwFiles.replaceAll("[,]+", ","); xrwFiles = xrwFiles.replaceAll("^[,]+", ""); xrwFiles = xrwFiles.replaceAll("[,]+$", ""); } return xrwFiles; } private void searchMNSCR(String MNSCR_ID, PosGenericDao dao) { int len = MNSCR_ID.length(); if (len == 9) searchMNSCR(MNSCR_ID.substring(2, 5), dao); else { PosParameter param = new PosParameter(); param.setWhereClauseParameter(0, MNSCR_ID); PosRowSet rowset = dao.find("FileManager.select.single", param); if (rowset.hasNext()) return; if (len == 3) searchMNSCR(MNSCR_ID.substring(0, 1), dao); } PosParameter param = new PosParameter(); param.setValueParamter(0, MNSCR_ID); param.setValueParamter(1, MNSCR_ID); if (len == 9) { param.setValueParamter(2, MNSCR_ID.substring(2, 5)); param.setValueParamter(3, "S"); param.setValueParamter(4, MNSCR_ID.substring(5, 9)); } else if (len == 3) { param.setValueParamter(2, MNSCR_ID.substring(0, 1)); param.setValueParamter(3, "M"); param.setValueParamter(4, MNSCR_ID.substring(1, 3)); } else { param.setValueParamter(2, "*"); param.setValueParamter(3, "M"); param.setValueParamter(4, "100"); } dao.insert("FileManager.insert", param); } }