From ab38de5dc36b5b89fbdbff2b2ebaa5441e85fef7 Mon Sep 17 00:00:00 2001
From: pelick <369447122@qq.com>
Date: Tue, 7 May 2013 22:45:05 +0800
Subject: [PATCH] save with Date
---
AcademicSearchEngine/WebContent/js/index.js | 4 +--
.../src/dcd/academic/DAO/SaveDAO.java | 4 +--
.../src/dcd/academic/DAO/UserDAO.java | 6 ++--
.../dcd/academic/DAO/impl/SaveDaoImlp.java | 10 ++++---
.../dcd/academic/DAO/impl/UserDaoImpl.java | 29 +++++++++++++-----
.../dcd/academic/action/SaveAuthorAction.java | 8 +++--
.../dcd/academic/action/SavePaperAction.java | 7 ++++-
.../dcd/academic/action/UserAuthorAction.java | 9 +++---
.../dcd/academic/action/UserPaperAction.java | 9 ++++--
.../dcd/academic/model/PublicationModel.java | 7 +++++
.../dcd/academic/model/ResearcherModel.java | 8 ++++-
.../src/dcd/academic/solrj/SolrjHelper.java | 30 +++++++++++++++++++
.../src/dcd/academic/util/StringUtil.java | 10 +++++--
13 files changed, 110 insertions(+), 31 deletions(-)
diff --git a/AcademicSearchEngine/WebContent/js/index.js b/AcademicSearchEngine/WebContent/js/index.js
index 337dd1e..1139cb1 100644
--- a/AcademicSearchEngine/WebContent/js/index.js
+++ b/AcademicSearchEngine/WebContent/js/index.js
@@ -167,7 +167,7 @@ function getUserAuthor(name) {
success : function(data) {
var list = data.list;
for (var i = 0; i < list.length; i ++) {
- $('#user_author').append('
'+list[i]+'
');
+ $('#user_author').append(''+list[i].name+' '+list[i].field+''+list[i].date+'
');
}
},
error : function(XmlHttpRequest, textStatus, errorThrown) {
@@ -184,7 +184,7 @@ function getUserPaper(name) {
success : function(data) {
var list = data.list;
for (var i = 0; i < list.length; i ++) {
- $('#user_paper').append(''+list[i]+'
');
+ $('#user_paper').append(''+list[i].title+' '+list[i].author+' '+list[i].date+'
');
}
},
error : function(XmlHttpRequest, textStatus, errorThrown) {
diff --git a/AcademicSearchEngine/src/dcd/academic/DAO/SaveDAO.java b/AcademicSearchEngine/src/dcd/academic/DAO/SaveDAO.java
index f8cd531..501aa6b 100644
--- a/AcademicSearchEngine/src/dcd/academic/DAO/SaveDAO.java
+++ b/AcademicSearchEngine/src/dcd/academic/DAO/SaveDAO.java
@@ -1,8 +1,8 @@
package dcd.academic.DAO;
public interface SaveDAO {
- public void saveAuthor(String username, String author);
- public void savePaper(String username, String title);
+ public void saveAuthor(String username, String author, String date);
+ public void savePaper(String username, String title, String date);
public boolean existAuthor(String username, String author);
public boolean existPaper(String username, String title);
diff --git a/AcademicSearchEngine/src/dcd/academic/DAO/UserDAO.java b/AcademicSearchEngine/src/dcd/academic/DAO/UserDAO.java
index bba9b49..9c00c6a 100644
--- a/AcademicSearchEngine/src/dcd/academic/DAO/UserDAO.java
+++ b/AcademicSearchEngine/src/dcd/academic/DAO/UserDAO.java
@@ -2,12 +2,14 @@ package dcd.academic.DAO;
import java.util.ArrayList;
+import dcd.academic.model.PublicationModel;
+import dcd.academic.model.ResearcherModel;
import dcd.academic.model.User;
public interface UserDAO {
public void addUser(User instance);
- public ArrayList getUserAuthor(String name);
- public ArrayList getUserPaper(String name);
+ public ArrayList getUserAuthor(String name);
+ public ArrayList getUserPaper(String name);
public boolean existUser(String username, String pwd);
}
diff --git a/AcademicSearchEngine/src/dcd/academic/DAO/impl/SaveDaoImlp.java b/AcademicSearchEngine/src/dcd/academic/DAO/impl/SaveDaoImlp.java
index c9460b5..ba5b4bd 100644
--- a/AcademicSearchEngine/src/dcd/academic/DAO/impl/SaveDaoImlp.java
+++ b/AcademicSearchEngine/src/dcd/academic/DAO/impl/SaveDaoImlp.java
@@ -40,8 +40,8 @@ public class SaveDaoImlp implements SaveDAO {
}
@Override
- public void saveAuthor(String username, String author) {
- String query = "insert into UserAuthor(username, author) values(?, ?);";
+ public void saveAuthor(String username, String author, String date) {
+ String query = "insert into UserAuthor(username, author, date) values(?, ?, ?);";
Connection con = null;
PreparedStatement pst = null;
@@ -52,6 +52,7 @@ public class SaveDaoImlp implements SaveDAO {
pst.setString(1, username);
pst.setString(2, author);
+ pst.setString(3, date);
pst.executeUpdate();
} catch (Exception e) {
System.out.println("#######saveAuthor Exception#######");
@@ -65,8 +66,8 @@ public class SaveDaoImlp implements SaveDAO {
}
@Override
- public void savePaper(String username, String title) {
- String query = "insert into UserPaper(username, title) values(?, ?);";
+ public void savePaper(String username, String title, String date) {
+ String query = "insert into UserPaper(username, title, date) values(?, ?, ?);";
Connection con = null;
PreparedStatement pst = null;
@@ -77,6 +78,7 @@ public class SaveDaoImlp implements SaveDAO {
pst.setString(1, username);
pst.setString(2, title);
+ pst.setString(3, date);
pst.executeUpdate();
} catch (Exception e) {
System.out.println("#######savePaper Exception#######");
diff --git a/AcademicSearchEngine/src/dcd/academic/DAO/impl/UserDaoImpl.java b/AcademicSearchEngine/src/dcd/academic/DAO/impl/UserDaoImpl.java
index 14b261c..48e382f 100644
--- a/AcademicSearchEngine/src/dcd/academic/DAO/impl/UserDaoImpl.java
+++ b/AcademicSearchEngine/src/dcd/academic/DAO/impl/UserDaoImpl.java
@@ -7,8 +7,11 @@ import com.mysql.jdbc.Connection;
import com.mysql.jdbc.PreparedStatement;
import dcd.academic.DAO.UserDAO;
+import dcd.academic.model.PublicationModel;
+import dcd.academic.model.ResearcherModel;
import dcd.academic.model.User;
import dcd.academic.mysql.dbpool.DBConnectionManage;
+import dcd.academic.solrj.SolrjHelper;
public class UserDaoImpl implements UserDAO {
@@ -45,20 +48,25 @@ public class UserDaoImpl implements UserDAO {
@Override
- public ArrayList getUserAuthor(String name) {
- ArrayList authorlist = new ArrayList();
- String query = "select author from UserAuthor where username=?;";
+ public ArrayList getUserAuthor(String name) {
+ ArrayList authorlist = new ArrayList();
+ String query = "select * from UserAuthor where username=?;";
Connection con = null;
PreparedStatement pst = null;
ResultSet rs = null;
DBConnectionManage dbmanage = DBConnectionManage.getInstance();
+
+ SolrjHelper helper = new SolrjHelper(0);
try {
con = dbmanage.getFreeConnection();
pst = (PreparedStatement) con.prepareStatement(query);
pst.setString(1, name);
rs = pst.executeQuery();
while (rs.next()) {
- authorlist.add(rs.getString("author").toString());
+ String tmp = rs.getString("author").toString();
+ ResearcherModel model = helper.getAuthorInfo(tmp);
+ model.setDate(rs.getString("date").toString());
+ authorlist.add(model);
}
} catch (Exception e) {
e.printStackTrace();
@@ -75,20 +83,25 @@ public class UserDaoImpl implements UserDAO {
@Override
- public ArrayList getUserPaper(String name) {
- ArrayList paperlist = new ArrayList();
- String query = "select title from UserPaper where username=?;";
+ public ArrayList getUserPaper(String name) {
+ ArrayList paperlist = new ArrayList();
+ String query = "select * from UserPaper where username=?;";
Connection con = null;
PreparedStatement pst = null;
ResultSet rs = null;
DBConnectionManage dbmanage = DBConnectionManage.getInstance();
+
+ SolrjHelper helper = new SolrjHelper(1);
try {
con = dbmanage.getFreeConnection();
pst = (PreparedStatement) con.prepareStatement(query);
pst.setString(1, name);
rs = pst.executeQuery();
while (rs.next()) {
- paperlist.add(rs.getString("title").toString());
+ String tmp = rs.getString("title").toString();
+ PublicationModel model = helper.getPaperInfo(tmp);
+ model.setDate(rs.getString("date").toString());
+ paperlist.add(model);
}
} catch (Exception e) {
e.printStackTrace();
diff --git a/AcademicSearchEngine/src/dcd/academic/action/SaveAuthorAction.java b/AcademicSearchEngine/src/dcd/academic/action/SaveAuthorAction.java
index fc8a79e..9db5697 100644
--- a/AcademicSearchEngine/src/dcd/academic/action/SaveAuthorAction.java
+++ b/AcademicSearchEngine/src/dcd/academic/action/SaveAuthorAction.java
@@ -1,10 +1,12 @@
package dcd.academic.action;
+import java.util.Calendar;
+import java.util.Date;
+
import com.opensymphony.xwork2.ActionSupport;
import dcd.academic.DAO.DAOfactory;
import dcd.academic.DAO.SaveDAO;
-import dcd.academic.util.StdOutUtil;
public class SaveAuthorAction extends ActionSupport {
@@ -18,7 +20,9 @@ public class SaveAuthorAction extends ActionSupport {
DAOfactory factory = new DAOfactory();
SaveDAO dao = factory.getSaveDAO();
if (!dao.existAuthor(user, author)) {
- dao.saveAuthor(user, author);
+ Calendar cal = Calendar.getInstance();
+ Date date = cal.getTime();
+ dao.saveAuthor(user, author, date.toLocaleString());
type = 1;
} else {
type = 0;
diff --git a/AcademicSearchEngine/src/dcd/academic/action/SavePaperAction.java b/AcademicSearchEngine/src/dcd/academic/action/SavePaperAction.java
index be22dcc..6f55b71 100644
--- a/AcademicSearchEngine/src/dcd/academic/action/SavePaperAction.java
+++ b/AcademicSearchEngine/src/dcd/academic/action/SavePaperAction.java
@@ -1,5 +1,8 @@
package dcd.academic.action;
+import java.util.Calendar;
+import java.util.Date;
+
import com.opensymphony.xwork2.ActionSupport;
import dcd.academic.DAO.DAOfactory;
@@ -18,7 +21,9 @@ public class SavePaperAction extends ActionSupport {
DAOfactory factory = new DAOfactory();
SaveDAO dao = factory.getSaveDAO();
if (!dao.existPaper(user, title)) {
- dao.savePaper(user, title);
+ Calendar cal = Calendar.getInstance();
+ Date date = cal.getTime();
+ dao.savePaper(user, title, date.toLocaleString());
type = 1;
} else {
type = 0;
diff --git a/AcademicSearchEngine/src/dcd/academic/action/UserAuthorAction.java b/AcademicSearchEngine/src/dcd/academic/action/UserAuthorAction.java
index 3ce1a16..eb3ca1e 100644
--- a/AcademicSearchEngine/src/dcd/academic/action/UserAuthorAction.java
+++ b/AcademicSearchEngine/src/dcd/academic/action/UserAuthorAction.java
@@ -6,11 +6,12 @@ import com.opensymphony.xwork2.ActionSupport;
import dcd.academic.DAO.UserDAO;
import dcd.academic.DAO.impl.UserDaoImpl;
+import dcd.academic.model.ResearcherModel;
public class UserAuthorAction extends ActionSupport {
private String user;
- public ArrayList list = new ArrayList();
+ public ArrayList list = new ArrayList();
@Override
public String execute() throws Exception {
@@ -27,13 +28,13 @@ public class UserAuthorAction extends ActionSupport {
this.user = user;
}
- public ArrayList getList() {
+ public ArrayList getList() {
return list;
}
- public void setList(ArrayList list) {
+ public void setList(ArrayList list) {
this.list = list;
}
-
+
}
diff --git a/AcademicSearchEngine/src/dcd/academic/action/UserPaperAction.java b/AcademicSearchEngine/src/dcd/academic/action/UserPaperAction.java
index 7ce123a..02a0920 100644
--- a/AcademicSearchEngine/src/dcd/academic/action/UserPaperAction.java
+++ b/AcademicSearchEngine/src/dcd/academic/action/UserPaperAction.java
@@ -6,11 +6,12 @@ import com.opensymphony.xwork2.ActionSupport;
import dcd.academic.DAO.UserDAO;
import dcd.academic.DAO.impl.UserDaoImpl;
+import dcd.academic.model.PublicationModel;
public class UserPaperAction extends ActionSupport {
private String user;
- public ArrayList list = new ArrayList();
+ public ArrayList list = new ArrayList();
@Override
public String execute() throws Exception {
@@ -27,11 +28,13 @@ public class UserPaperAction extends ActionSupport {
this.user = user;
}
- public ArrayList getList() {
+ public ArrayList getList() {
return list;
}
- public void setList(ArrayList list) {
+ public void setList(ArrayList list) {
this.list = list;
}
+
+
}
diff --git a/AcademicSearchEngine/src/dcd/academic/model/PublicationModel.java b/AcademicSearchEngine/src/dcd/academic/model/PublicationModel.java
index 7b7d996..6136cfb 100644
--- a/AcademicSearchEngine/src/dcd/academic/model/PublicationModel.java
+++ b/AcademicSearchEngine/src/dcd/academic/model/PublicationModel.java
@@ -8,8 +8,15 @@ public class PublicationModel {
private String pub_abstract = "";
private String conference = "";
private String view_url = "";
+ private String date = "";
private ArrayList authors = new ArrayList();
+ public String getDate() {
+ return date;
+ }
+ public void setDate(String date) {
+ this.date = date;
+ }
public ArrayList getAuthors() {
return authors;
}
diff --git a/AcademicSearchEngine/src/dcd/academic/model/ResearcherModel.java b/AcademicSearchEngine/src/dcd/academic/model/ResearcherModel.java
index bbe6f5a..5baaa4d 100644
--- a/AcademicSearchEngine/src/dcd/academic/model/ResearcherModel.java
+++ b/AcademicSearchEngine/src/dcd/academic/model/ResearcherModel.java
@@ -11,9 +11,15 @@ public class ResearcherModel {
private String citations_url = "";
private String picurl = "";
private String moretags = "";
+ private String date = "";
-
+ public String getDate() {
+ return date;
+ }
+ public void setDate(String date) {
+ this.date = date;
+ }
public String getMoretags() {
return moretags;
}
diff --git a/AcademicSearchEngine/src/dcd/academic/solrj/SolrjHelper.java b/AcademicSearchEngine/src/dcd/academic/solrj/SolrjHelper.java
index 678ec03..f408cd8 100644
--- a/AcademicSearchEngine/src/dcd/academic/solrj/SolrjHelper.java
+++ b/AcademicSearchEngine/src/dcd/academic/solrj/SolrjHelper.java
@@ -177,6 +177,7 @@ public class SolrjHelper {
SolrjClient newclient = new SolrjClient(0);
SolrServer server = newclient.getSolrServer();
SolrQuery query = new SolrQuery();
+
query.setQuery(StringUtil.transformQuery("name", name));
query.setStart(0);
query.setRows(1);
@@ -193,6 +194,7 @@ public class SolrjHelper {
author.setHomepage((String)resultDoc.getFieldValue("homepage"));
author.setField((String)resultDoc.getFieldValue("field"));
author.setPicurl((String)resultDoc.getFieldValue("picurl"));
+ author.setMoretags((String)resultDoc.getFieldValue("moretags"));
break;
}
@@ -201,6 +203,34 @@ public class SolrjHelper {
}
return author;
}
+
+
+ public PublicationModel getPaperInfo(String title) {
+ PublicationModel paper = null;
+ SolrServer server = client.getSolrServer();
+ SolrQuery query = new SolrQuery();
+ query.setQuery(StringUtil.transformQuery("title", title));
+ query.setStart(0);
+ query.setRows(1);
+ QueryResponse rsp;
+ try {
+ rsp = server.query(query);
+ SolrDocumentList docs = rsp.getResults();
+ Iterator it = docs.iterator();
+ while (it.hasNext()) {
+ SolrDocument resultDoc = it.next();
+ paper = new PublicationModel();
+ paper.setAuthor((String)resultDoc.getFieldValue("author"));
+ paper.setConference((String)resultDoc.getFieldValue("conference"));
+ paper.setPub_abstract((String)resultDoc.getFieldValue("pub_abstract"));
+ break;
+ }
+
+ } catch (SolrServerException e) {
+ e.printStackTrace();
+ }
+ return paper;
+ }
public List getAuthorAbstraction(String name, int start, int rows) throws IOException {
String s = "";
diff --git a/AcademicSearchEngine/src/dcd/academic/util/StringUtil.java b/AcademicSearchEngine/src/dcd/academic/util/StringUtil.java
index ca60813..a72f134 100644
--- a/AcademicSearchEngine/src/dcd/academic/util/StringUtil.java
+++ b/AcademicSearchEngine/src/dcd/academic/util/StringUtil.java
@@ -6,6 +6,8 @@ import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.util.ArrayList;
+import java.util.Calendar;
+import java.util.Date;
import java.util.HashSet;
import java.util.List;
@@ -69,6 +71,9 @@ public class StringUtil {
}
public static String transformQuery(String field, String target) {
+ if (target.contains("(")) {
+ target = target.substring(0, target.indexOf("(")-1);
+ }
String[] qs = target.split(" ");
String qq = "";
for (int i = 0; i < qs.length; i ++) {
@@ -80,7 +85,7 @@ public class StringUtil {
}
}
}
- //StdOutUtil.out(qq);
+
return qq;
}
@@ -135,6 +140,7 @@ public class StringUtil {
}
public static void main(String[] args) throws IOException {
- StdOutUtil.out(getTokens("is into aaaaa").toString());
+ transformQuery("name", "Deng Cai (蔡登)");
+
}
}