添加API接口,修改DB1文件
Change-Id: I5a493962f5a8b0c60e6944a7d630263789d3b4ee
diff --git a/src/main/java/database/DataManagerInterface.java b/src/main/java/database/DataManagerInterface.java
index b92d18d..e737daa 100644
--- a/src/main/java/database/DataManagerInterface.java
+++ b/src/main/java/database/DataManagerInterface.java
@@ -23,7 +23,8 @@
public int UpdateSeed(Seed seedinfo);//接收新的种子然后更新其全部属性;
public Seed[] SearchSeed(String userQ);//传入搜索的关键词或句子,返回搜索到的种子信息(按照公共字符数量排序)
-
+ public Seed[] GetSeedListByTag(String tag);//获取某个标签下的种子列表
+
public int AddNotice(Notice notice);//返回状态:0 success,1 重复,2其他原因
public boolean UpdateNotice(Notice notice);//返回状态:0 success,1 重复,2其他原因
public boolean DeleteNotice(String noticeid);//删除公告,返回状态:0 success,1 重复,2其他原因
diff --git a/src/main/java/database/Database1.java b/src/main/java/database/Database1.java
index f835288..ed64717 100644
--- a/src/main/java/database/Database1.java
+++ b/src/main/java/database/Database1.java
@@ -156,20 +156,40 @@
return seed;
}
+ @Override
+ public Seed[] GetSeedListByTag(String tag){
+ JPAQuery<Seed> query = new JPAQuery<>(entitymanager);
+ QSeed s = QSeed.seed;
+ List<Seed> seeds = query.select(s).from(s).where(s.seedtag.eq(tag)).fetch();
+ return seeds.toArray(new Seed[0]);
+ }
+
//添加一个新的种子,0成功,其他失败信息待定;
@Override
public int RegisterSeed(Seed seedinfo){
try {
+ entitymanager.getTransaction().begin();
JPAQuery<Seed> query = new JPAQuery<>(entitymanager);
QSeed s = QSeed.seed;
Seed seed = query.select(s).from(s).where(s.seedid.eq(seedinfo.seedid)).fetchOne();
+ User user = entitymanager.find(User.class, seedinfo.seeduserid);
+ if (user == null) {
+ entitymanager.getTransaction().rollback();
+ return 2; // 用户不存在
+ }
+ seed.user = user; // 设置种子的用户关联
if (seed != null) {
+ entitymanager.getTransaction().rollback();
return 1;
}
entitymanager.persist(seedinfo);
+ entitymanager.getTransaction().commit();
return 0;
} catch (Exception e) {
e.printStackTrace();
+ if (entitymanager.getTransaction().isActive()) {
+ entitymanager.getTransaction().rollback();
+ }
return 2;
}
}
diff --git a/src/main/java/database/Database2.java b/src/main/java/database/Database2.java
index 8ea93b0..5152e47 100644
--- a/src/main/java/database/Database2.java
+++ b/src/main/java/database/Database2.java
@@ -128,6 +128,11 @@
}
@Override
+ public Seed[] GetSeedListByTag(String tag) {
+ return new Seed[0];
+ }
+
+ @Override
public boolean AddCollect(String userid, String postid) {
return false;
}