登陆注册后端接口

Change-Id: Ida548e4f32a505259dd180a5ae1ff8989ccfc076
diff --git a/src/main/java/database/DataManagerInterface.java b/src/main/java/database/DataManagerInterface.java
index 1f4b510..c1df413 100644
--- a/src/main/java/database/DataManagerInterface.java
+++ b/src/main/java/database/DataManagerInterface.java
@@ -50,6 +50,7 @@
     public int SubmitSeed(String begid,Seed seed);//提交种子,返回状态:0 success,1 重复,2其他原因
     public void SettleBeg();//结算所有求种信息,求种信息中需要增加Beg截止日期,默认14天,期间投票>的则Beg成功,否则Beg失败,并发放对应奖励
 
+    public Post[] GetPostList();//获取用户的帖子列表
     public int AddPost(Post post);//添加一个新的帖子,返回状态:0 success,1 重复,2其他原因
     public int UpdatePost(Post post);//更新一个帖子,返回状态:0 success,1 不存在,2其他原因
     public int DeletePost(String postid);//删除一个帖子,返回状态:0 success,1 不存在,2其他原因
diff --git a/src/main/java/database/Database1.java b/src/main/java/database/Database1.java
index e67dcb0..030abdd 100644
--- a/src/main/java/database/Database1.java
+++ b/src/main/java/database/Database1.java
@@ -20,6 +20,7 @@
 import entity.QUserPT;
 import entity.QUserStar;
 import entity.QUserInvite;
+import entity.QPost;
 import entity.Seed;
 import entity.User;
 import entity.UserPT;
@@ -47,12 +48,10 @@
                 return null;
             }
             
-            // 用户名和邮箱应该有且仅有一个不为空
-            boolean hasUsername = userinfo.username != null && !userinfo.username.isEmpty();
             boolean hasEmail = userinfo.email != null && !userinfo.email.isEmpty();
             
             // 如果两个都为空或两个都不为空,返回null
-            if ((!hasUsername && !hasEmail) || (hasUsername && hasEmail)) {
+            if (!hasEmail) {
                 return null;
             }
             
@@ -60,21 +59,13 @@
             QUser u = QUser.user;
             User foundUser = null;
             
-            if (hasUsername) {
-                // 通过用户名和密码查找
-                foundUser = query.select(u)
-                    .from(u)
-                    .where(u.username.eq(userinfo.username)
-                        .and(u.password.eq(userinfo.password)))
-                    .fetchOne();
-            } else {
-                // 通过邮箱和密码查找
-                foundUser = query.select(u)
-                    .from(u)
-                    .where(u.email.eq(userinfo.email)
-                        .and(u.password.eq(userinfo.password)))
-                    .fetchOne();
-            }
+            
+            // 通过邮箱和密码查找
+            foundUser = query.select(u)
+                .from(u)
+                .where(u.email.eq(userinfo.email)
+                    .and(u.password.eq(userinfo.password)))
+                .fetchOne();
             
             // 如果找到匹配的用户则返回用户ID,否则返回null
             return foundUser != null ? foundUser.userid : null;
@@ -108,13 +99,18 @@
                 return 1; // 邮箱重复
             }
 
-             entitymanager.persist(userinfo);
-             return 0; // 注册成功
+            entitymanager.getTransaction().begin();
+            entitymanager.persist(userinfo);
+            entitymanager.getTransaction().commit();
+            return 0; // 注册成功
 
-         }catch(Exception e){
-             e.printStackTrace();
-            return 3;
-         }
+        }catch(Exception e){
+            e.printStackTrace();
+            if (entitymanager.getTransaction().isActive()) {
+                entitymanager.getTransaction().rollback();
+            }   
+            return 4;
+        }
          
     }
 
@@ -199,16 +195,24 @@
     @Override
     public int RegisterUserPT(UserPT userinfo){
         try {
+            entitymanager.getTransaction().begin();
+            
             JPAQuery<UserPT> query = new JPAQuery<>(entitymanager);
             QUserPT u = QUserPT.userPT;
             UserPT checkUserPT = query.select(u).from(u).where(u.userid.eq(userinfo.userid)).fetchOne();
             if (checkUserPT != null) {
+                entitymanager.getTransaction().rollback();
                 return 1;
             }
+            
             entitymanager.persist(userinfo);
+            entitymanager.getTransaction().commit();
             return 0;
         } catch (Exception e) {
             e.printStackTrace();
+            if (entitymanager.getTransaction().isActive()) {
+                entitymanager.getTransaction().rollback();
+            }
             return 2;
         }
     }
@@ -596,5 +600,13 @@
     }
     //获取所有迁移信息
 
+    @Override
+    public Post[] GetPostList() {
+        JPAQuery<Post> query = new JPAQuery<>(entitymanager);
+        QPost p = QPost.post;
+        List<Post> posts = query.select(p).from(p).fetch();
+        return posts.toArray(new Post[0]);
+    }
+
 }
 
diff --git a/src/main/java/database/Database2.java b/src/main/java/database/Database2.java
index 0e6dadf..7a58953 100644
--- a/src/main/java/database/Database2.java
+++ b/src/main/java/database/Database2.java
@@ -1101,4 +1101,9 @@
             }
         }
     }
+
+    @Override
+    public Post[] GetPostList(){
+        return null;
+    }
 }
\ No newline at end of file