Mercurial > hg > LGServices
diff src/main/java/de/mpiwg/gazetteer/utils/DataProvider.java @ 39:37840afb7b80
new: full text search
author | Zoe Hong <zhong@mpiwg-berlin.mpg.de> |
---|---|
date | Fri, 04 Dec 2015 14:28:44 +0100 |
parents | 8b7a204fa929 |
children | 35ed4e650a53 |
line wrap: on
line diff
--- a/src/main/java/de/mpiwg/gazetteer/utils/DataProvider.java Fri Nov 20 15:37:04 2015 +0100 +++ b/src/main/java/de/mpiwg/gazetteer/utils/DataProvider.java Fri Dec 04 14:28:44 2015 +0100 @@ -8,8 +8,11 @@ import org.apache.log4j.Logger; import org.hibernate.Session; +import cl.maps.duplex.DuplexKey; import de.mpiwg.gazetteer.bo.LGBranch; import de.mpiwg.gazetteer.bo.LGFile; +import de.mpiwg.gazetteer.bo.LGFullTextSearchFile; +import de.mpiwg.gazetteer.db.DBContents; import de.mpiwg.gazetteer.utils.exceptions.NoAuthorizedException; import de.mpiwg.gazetteer.utils.exceptions.VersioningException; @@ -255,4 +258,63 @@ return branch.getId(); } + + + public List<LGFullTextSearchFile> getSearchFileList4User(Long userId) { + + List<LGFullTextSearchFile> list = new ArrayList<LGFullTextSearchFile>(); + + for(LGFullTextSearchFile searchFile : getFullTextSearchFileMap().values()){ + if(searchFile.getUserId() == userId){ + list.add(searchFile); + } + } + + return list; + } + + public LGFullTextSearchFile saveLGFullTextSearchFile(List<DBContents> list, Long userId, String fileName, String searchTerms) throws Exception { + // save as csv and html file in filesystem, and records in db `FullTextSearchFile + // List<DBContents> list is the filteredList of searching result + + Date date = new Date(); + + // check if record with (userId, fileName) already existed, update it; otherwise, create one + + LGFullTextSearchFile searchFile = DBService.getExistFullTextSearchFile(userId, fileName); + if (searchFile == null) { + searchFile = new LGFullTextSearchFile(); + searchFile.setFileName(fileName); + searchFile.setUserId(userId); + } + + searchFile.setSearchTerms(searchTerms); + + //Saving into DB + //################################## + Session session = HibernateUtil.getSessionFactory().getCurrentSession(); + session.getTransaction().begin(); + + DBService.saveDBEntry0(session, searchFile, date); + + //Saving physical file in the operating system + FileManager.saveFullTextSearchFileAsCsv(searchFile, userId, list); // save csv file to LGMap's datasets folder + FileManager.saveFullTextSearchFileAsHtml(searchFile, userId, list); // save html file to ftsearch-data folder + + session.getTransaction().commit(); + //################################## + + return searchFile; + } + + public LGFullTextSearchFile getFullTextSearchFile(Long fileId) { + + LGFullTextSearchFile file = getFullTextSearchFileMap().getValuesByOwnKey(fileId); + + return file; + } + + + + }