| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114 |
- 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);
- }
- }
|