用户资料接口添加
Change-Id: Id55e7fef307ec1663bb7a05cfbf7f81e097ac767
diff --git a/src/main/java/database/DataManagerInterface.java b/src/main/java/database/DataManagerInterface.java
index e2fb1fb..1f4b510 100644
--- a/src/main/java/database/DataManagerInterface.java
+++ b/src/main/java/database/DataManagerInterface.java
@@ -22,9 +22,11 @@
public Seed GetSeedInformation(String seedid);//返回种子的全部信息;
public int RegisterSeed(Seed seedinfo);//添加一个新的种子,0成功,其他失败信息待定;
public int UpdateSeed(Seed seedinfo);//接收新的种子然后更新其全部属性;
+ public int DeleteSeed(String seedid);//删除一个种子,返回状态:0 success,1 不存在,2其他原因
public Seed[] SearchSeed(String userQ);//传入搜索的关键词或句子,返回搜索到的种子信息(按照公共字符数量排序)
public Seed[] GetSeedListByTag(String tag);//获取某个标签下的种子列表
+ public Seed[] GetSeedListByUser(String userid);//获取某个用户的种子列表
public int AddNotice(Notice notice);//返回状态:0 success,1 重复,2其他原因
public boolean UpdateNotice(Notice notice);//返回状态:0 success,1 重复,2其他原因
diff --git a/src/main/java/database/Database1.java b/src/main/java/database/Database1.java
index b89dc18..8c3bbb4 100644
--- a/src/main/java/database/Database1.java
+++ b/src/main/java/database/Database1.java
@@ -130,28 +130,36 @@
if (userinfo.userid == null) {
return 2; // userid为null直接返回错误
}
+
+ entitymanager.getTransaction().begin();
+
JPAQuery<User> query = new JPAQuery<>(entitymanager);
QUser u = QUser.user;
User updateUser = query.select(u).from(u).where(u.userid.eq(userinfo.userid)).fetchOne();
if(updateUser == null){
+ entitymanager.getTransaction().rollback();
return 1;
}
// 只更新需要的字段,避免破坏持久化状态和关联关系
- updateUser.email = userinfo.email;
- updateUser.username = userinfo.username;
- updateUser.password = userinfo.password;
- updateUser.sex = userinfo.sex;
- updateUser.school = userinfo.school;
- updateUser.pictureurl = userinfo.pictureurl;
- updateUser.profile = userinfo.profile;
+ if (userinfo.email != null) updateUser.email = userinfo.email;
+ if (userinfo.username != null) updateUser.username = userinfo.username;
+ if (userinfo.password != null) updateUser.password = userinfo.password;
+ if (userinfo.sex != null) updateUser.sex = userinfo.sex;
+ if (userinfo.school != null) updateUser.school = userinfo.school;
+ if (userinfo.pictureurl != null) updateUser.pictureurl = userinfo.pictureurl;
+ if (userinfo.profile != null) updateUser.profile = userinfo.profile;
updateUser.accountstate = userinfo.accountstate;
updateUser.invitetimes = userinfo.invitetimes;
// 如有其他字段也一并赋值
entitymanager.merge(updateUser);
+ entitymanager.getTransaction().commit();
return 0;
} catch (Exception e) {
e.printStackTrace();
+ if (entitymanager.getTransaction().isActive()) {
+ entitymanager.getTransaction().rollback();
+ }
return 2;
}
@@ -227,6 +235,35 @@
return seeds.toArray(new Seed[0]);
}
+ @Override
+ public Seed[] GetSeedListByUser(String userid){
+ JPAQuery<Seed> query = new JPAQuery<>(entitymanager);
+ QSeed s = QSeed.seed;
+ List<Seed> seeds = query.select(s).from(s).where(s.seeduserid.eq(userid)).fetch();
+ return seeds.toArray(new Seed[0]);
+ }
+
+ @Override
+ public int DeleteSeed(String seedid){
+ try {
+ entitymanager.getTransaction().begin();
+ Seed seed = entitymanager.find(Seed.class, seedid);
+ if (seed == null) {
+ entitymanager.getTransaction().rollback();
+ return 1; // 种子不存在
+ }
+ entitymanager.remove(seed);
+ entitymanager.getTransaction().commit();
+ return 0; // 成功删除
+ } catch (Exception e) {
+ e.printStackTrace();
+ if (entitymanager.getTransaction().isActive()) {
+ entitymanager.getTransaction().rollback();
+ }
+ return 2; // 其他错误
+ }
+ }
+
//添加一个新的种子,0成功,其他失败信息待定;
@Override
public int RegisterSeed(Seed seedinfo){
@@ -240,7 +277,7 @@
entitymanager.getTransaction().rollback();
return 2; // 用户不存在
}
- seed.user = user; // 设置种子的用户关联
+ seedinfo.user = user; // 设置种子的用户关联
if (seed != null) {
entitymanager.getTransaction().rollback();
return 1;
diff --git a/src/main/java/database/Database2.java b/src/main/java/database/Database2.java
index d2d98c7..0e6dadf 100644
--- a/src/main/java/database/Database2.java
+++ b/src/main/java/database/Database2.java
@@ -138,6 +138,16 @@
}
@Override
+ public Seed[] GetSeedListByUser(String userid) {
+ return new Seed[0];
+ }
+
+ @Override
+ public int DeleteSeed(String seedid) {
+ return 0;
+ }
+
+ @Override
public boolean AddCollect(String userid, String postid) {
return false;
}