修改pom.xml文件,新增各子系统接口文件

Change-Id: I24a0654e38c108a3931c95f0b28c4fd766f9e73c
diff --git a/pom.xml b/pom.xml
index b97228e..5e052ae 100644
--- a/pom.xml
+++ b/pom.xml
@@ -11,13 +11,36 @@
 
   <!-- 指定 Java 版本 -->
   <properties>
-    <maven.compiler.source>1.8</maven.compiler.source>
-    <maven.compiler.target>1.8</maven.compiler.target>
+    <!-- 使用 Java 9,以支持接口中的 private 方法 -->
+    <maven.compiler.source>9</maven.compiler.source>
+    <maven.compiler.target>9</maven.compiler.target>
+    <!-- 推荐使用 release 模式,自动设置 source/target -->
+    <maven.compiler.release>9</maven.compiler.release>
   </properties>
 
-  <!-- 可选:添加执行插件,方便 mvn exec:java 直接运行 -->
+  <!-- 添加依赖 -->
+  <dependencies>
+    <!-- Apache Commons Lang3,用于 Pair 等工具类 -->
+    <dependency>
+      <groupId>org.apache.commons</groupId>
+      <artifactId>commons-lang3</artifactId>
+      <version>3.12.0</version>
+    </dependency>
+  </dependencies>
+
+  <!-- 构建配置 -->
   <build>
     <plugins>
+      <!-- 编译插件,设定 Java 9 编译 -->
+      <plugin>
+        <groupId>org.apache.maven.plugins</groupId>
+        <artifactId>maven-compiler-plugin</artifactId>
+        <version>3.8.1</version>
+        <configuration>
+          <release>9</release>
+        </configuration>
+      </plugin>
+      <!-- 执行插件,方便 mvn exec:java 直接运行 -->
       <plugin>
         <groupId>org.codehaus.mojo</groupId>
         <artifactId>exec-maven-plugin</artifactId>
@@ -29,4 +52,4 @@
     </plugins>
   </build>
 
-</project>
+</project>
\ No newline at end of file
diff --git a/src/main/java/api/ApiInterface.java b/src/main/java/api/ApiInterface.java
new file mode 100644
index 0000000..495226d
--- /dev/null
+++ b/src/main/java/api/ApiInterface.java
@@ -0,0 +1,5 @@
+package api;
+
+public interface ApiInterface {
+    
+}
\ No newline at end of file
diff --git a/src/main/java/api/ApiMain.java b/src/main/java/api/ApiMain.java
deleted file mode 100644
index 5bd40fd..0000000
--- a/src/main/java/api/ApiMain.java
+++ /dev/null
@@ -1,8 +0,0 @@
-package api;
-public class ApiMain{
-    public static void main(String args[])
-    {
-        System.out.println("Hello World"); 
-        System.out.println("Hello World by Rae");
-    }
-}
\ No newline at end of file
diff --git a/src/main/java/cheat/CheatInterfnterface.java b/src/main/java/cheat/CheatInterfnterface.java
new file mode 100644
index 0000000..95ef6bb
--- /dev/null
+++ b/src/main/java/cheat/CheatInterfnterface.java
@@ -0,0 +1,20 @@
+package cheat;
+import org.apache.commons.lang3.tuple.Pair;
+import object.Appeal;
+public interface CheatInterfnterface{
+    public Pair<String,String>[] GetFeakSeed();//返回做假种的列表,<seedid,userid>
+    public void DetectFeakSeed();//检测所有种子是否为假种,并将检测结果写入数据表
+    public void DetectTrans();//检测所有种子是存在伪造上传量下载量
+    public boolean DetectTransSeed(String seedid);//检测单个种子是否存在伪造上传量下载量
+    public boolean DetectFeakSeed(String seedid);//检测单个用户是否存在假种
+    public void PunishUser();//扫描数据库中的可疑表,标记可疑用户
+    public boolean DetectUser(String userid);//检测单个用户是否存在可疑行为,每次登录的时候进行检查
+    public String[] GetPunishedUserList();//获取所有可疑用户的列表
+
+    public boolean AddAppeal(Appeal appeal);//数据库中写入一个申诉请求
+    public Appeal GetAppeal(String appealid);//获取某个申诉
+    public Appeal[] GetAppealList();//获取所有申诉列表
+
+    public boolean RevokePunish(String userid);//撤销某个用户的惩罚
+
+}
diff --git a/src/main/java/cheat/CheatMain.java b/src/main/java/cheat/CheatMain.java
deleted file mode 100644
index d423f65..0000000
--- a/src/main/java/cheat/CheatMain.java
+++ /dev/null
@@ -1,5 +0,0 @@
-package cheat;
-
-public class CheatMain {
-    
-}
diff --git a/src/main/java/database/DataManagerInterface.java b/src/main/java/database/DataManagerInterface.java
new file mode 100644
index 0000000..fd3792d
--- /dev/null
+++ b/src/main/java/database/DataManagerInterface.java
@@ -0,0 +1,58 @@
+package database;
+
+import object.Seed;
+import object.User;
+import object.UserPT;
+import object.Notice;
+import object.BegInfo;
+import object.Post;
+import object.Profile;
+public interface DataManagerInterface{
+    public int RegisterUser(User userinfo);// 返回状态:0 success,1 邮箱重复,2其他原因
+    public int UpdateInformation(User userinfo);// 返回状态:0 success,1 不存在,2其他原因
+    public User GetInformation(String userid);// 返回用户的全部基本信息
+
+    public UserPT GetInformationPT(String userid);//返回用户的全部pt站信息
+    public int UpdateInformationPT(UserPT userinfo);//返回状态:0 success,1 邮箱重复,2其他原因
+    public int RegisterUserPT(UserPT userinfo);//返回状态:0 success,1 邮箱重复,2其他原因
+
+    public Seed GetSeedInformation(String seedid);//返回种子的全部信息;
+    public int RegisterSeed(Seed seedinfo);//添加一个新的种子,0成功,其他失败信息待定;
+    public int UpdateSeed(Seed seedinfo);//接收新的种子然后更新其全部属性;
+
+    public Seed[] SearchSeed(String userQ);//传入搜索的关键词或句子,返回搜索到的种子信息(按照公共字符数量排序)
+    
+    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其他原因
+
+    public int GetUserAvailableInviteTimes(String userid);//获取用户的剩余邀请次数
+    public int InviteUser(String inviterid,String inviteemail);//邀请用户,返回状态:0 success,1 重复,2其他原因
+
+    public boolean AddBegSeed(BegInfo info);//添加一个新的求种信息,返回状态:0 success,1 重复,2其他原因
+    public boolean UpdateBegSeed(BegInfo info);//更新一个求种信息,返回状态:0 success,1 重复,2其他原因
+    public boolean DeleteBegSeed(String begid);//删除一个求种信息,返回状态:0 success,1 重复,2其他原因
+    public boolean VoteSeed(String begid,String userid,boolean vote);//投票,返回状态:0 success,1 重复,2其他原因,vote=true表示赞成,vote=false表示反对
+    public int SubmitSeed(String begid,Seed seed);//提交种子,返回状态:0 success,1 重复,2其他原因
+    public void SettleBeg();//结算所有求种信息,求种信息中需要增加Beg截止日期,默认14天,期间投票>的则Beg成功,否则Beg失败,并发放对应奖励
+
+    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其他原因
+
+    public int AddComment(String postid,String comment);//添加一个评论,返回状态:0 success,1 不存在,2其他原因
+    public int DeleteComment(String postid,String commentid);//删除一个评论,返回状态:0 success,1 不存在,2其他原因
+
+    public boolean AddCollect(String userid,String postid);//添加一个收藏,返回状态:0 success,1 不存在,2其他原因
+    public boolean DeleteCollect(String userid,String postid);//删除一个收藏,返回状态:0 success,1 不存在,2其他原因
+
+    public boolean ExchangeMagicToUpload(String userid,int magic);//将魔力值兑换为上传量,返回状态:0 success,1 不存在,2其他原因
+    public boolean ExchangeMagicToDownload(String userid,int magic);//将魔力值兑换为下载量,返回状态:0 success,1 不存在,2其他原因
+    public boolean ExchangeMagicToVip(String userid,int magic);//将魔力值兑换为VIP次数,返回状态:0 success,1 不存在,2其他原因
+
+    public boolean UploadTransmitProfile(Profile profile);
+    public Profile GetTransmitProfile(String profileid);//获取迁移信息
+    public boolean ExamTransmitProfile(String profileid,boolean result);//审核迁移信息,0成功,1失败
+    public Profile[] GetTransmitProfileList();//获取所有迁移信息
+
+}   
\ No newline at end of file
diff --git a/src/main/java/database/DatabaseMain.java b/src/main/java/database/DatabaseMain.java
deleted file mode 100644
index 78dda90..0000000
--- a/src/main/java/database/DatabaseMain.java
+++ /dev/null
@@ -1,8 +0,0 @@
-package database;
-
-public class DatabaseMain{
-    public static void main(String args[])
-    {
-        System.out.println("Hello Database"); 
-    }
-}
\ No newline at end of file
diff --git a/src/main/java/object/Appeal.java b/src/main/java/object/Appeal.java
new file mode 100644
index 0000000..66c8822
--- /dev/null
+++ b/src/main/java/object/Appeal.java
@@ -0,0 +1,5 @@
+package object;
+
+public class Appeal {
+    
+}
diff --git a/src/main/java/object/BegInfo.java b/src/main/java/object/BegInfo.java
new file mode 100644
index 0000000..ab7c296
--- /dev/null
+++ b/src/main/java/object/BegInfo.java
@@ -0,0 +1,5 @@
+package object;
+
+public class BegInfo {
+    
+}
diff --git a/src/main/java/object/Notice.java b/src/main/java/object/Notice.java
new file mode 100644
index 0000000..8bc9feb
--- /dev/null
+++ b/src/main/java/object/Notice.java
@@ -0,0 +1,5 @@
+package object;
+
+public class Notice {
+    
+}
diff --git a/src/main/java/object/Post.java b/src/main/java/object/Post.java
new file mode 100644
index 0000000..a61bc3e
--- /dev/null
+++ b/src/main/java/object/Post.java
@@ -0,0 +1,5 @@
+package object;
+
+public class Post {
+    
+}
diff --git a/src/main/java/object/Profile.java b/src/main/java/object/Profile.java
new file mode 100644
index 0000000..7293a47
--- /dev/null
+++ b/src/main/java/object/Profile.java
@@ -0,0 +1,5 @@
+package object;
+
+public class Profile {
+    
+}
diff --git a/src/main/java/object/Seed.java b/src/main/java/object/Seed.java
new file mode 100644
index 0000000..dbee2b6
--- /dev/null
+++ b/src/main/java/object/Seed.java
@@ -0,0 +1,5 @@
+package object;
+
+public class Seed {
+    
+}
diff --git a/src/main/java/object/TTorent.java b/src/main/java/object/TTorent.java
new file mode 100644
index 0000000..be9051d
--- /dev/null
+++ b/src/main/java/object/TTorent.java
@@ -0,0 +1,5 @@
+package object;
+
+public class TTorent{
+    
+}
\ No newline at end of file
diff --git a/src/main/java/object/TransRecord.java b/src/main/java/object/TransRecord.java
new file mode 100644
index 0000000..d78572d
--- /dev/null
+++ b/src/main/java/object/TransRecord.java
@@ -0,0 +1,8 @@
+package object;
+
+public class TransRecord{
+    String day;
+    String hour;
+    String minute;
+    String second;
+}
\ No newline at end of file
diff --git a/src/main/java/object/User.java b/src/main/java/object/User.java
new file mode 100644
index 0000000..5dd9054
--- /dev/null
+++ b/src/main/java/object/User.java
@@ -0,0 +1,5 @@
+package object;
+
+public class User {
+    private String userid;
+}
diff --git a/src/main/java/object/UserPT.java b/src/main/java/object/UserPT.java
new file mode 100644
index 0000000..b69089a
--- /dev/null
+++ b/src/main/java/object/UserPT.java
@@ -0,0 +1,5 @@
+package object;
+
+public class UserPT {
+    
+}
diff --git a/src/main/java/tracker/TrackerInterface.java b/src/main/java/tracker/TrackerInterface.java
new file mode 100644
index 0000000..872d9ad
--- /dev/null
+++ b/src/main/java/tracker/TrackerInterface.java
@@ -0,0 +1,19 @@
+package tracker;
+import java.io.File;
+
+import object.TTorent;
+import object.TransRecord;
+public interface TrackerInterface{
+    public boolean AddUpLoad(String userid,int upload);//给用户新增上传量,返回0成功,返回1失败;
+    public boolean ReduceUpLoad(String userid,int upload);//给用户减上传量,返回0成功,返回1失败;
+    public boolean AddDownload(String userid,int download);//给用户增加下载量,返回0成功,返回1失败;
+    public boolean ReduceDownload(String userid,int download);//给用户减少下载量,返回0成功,返回1失败;
+    public boolean AddMagic(String userid,int magic);//给用户增加魔力值,返回0成功,返回1失败;
+    public boolean ReduceMagic(String userid,int magic);//给用户减少魔力值,返回0成功,返回1失败;
+
+    public TTorent ReadTorrent(File torrent);//传入torrent文件,解析后返回TTorent类
+    public int SaveTorrent(TTorent seed,String seedid);//保存seedid对应的ttorent信息
+    public File GetTTorent(String seedid,String userid);//根据种子id获得ttorent信息然后构建Ttorent文件并返回,同时记录用户的下载行为
+
+    public int AddRecord(String seedid,TransRecord rd);//新增一个seedid对应的种子的传输任务记录
+}
\ No newline at end of file
diff --git a/src/main/java/vip/VipInterface.java b/src/main/java/vip/VipInterface.java
new file mode 100644
index 0000000..0ad764f
--- /dev/null
+++ b/src/main/java/vip/VipInterface.java
@@ -0,0 +1,18 @@
+package vip;
+import object.TTorent;
+import object.Seed;
+import org.apache.commons.lang3.tuple.Pair;
+import java.io.File;
+public interface VipInterface{
+    
+    public Pair<File,Integer>  GetTTorent(String seedid,String userid);//获取专线下载的文件,并记录用户的下载行为
+    //如果用户权限足够,文件存在,integer为0,如果用户权限足够,文件不存在,integer为1,file为null 如果用户权限不足,file为null,integer为2;
+
+    public int AddFarmerNumber(int number,String seedid);//种子增加了新的保种人数,返回值:0,写入成功,1写入失败,其他待定
+    public int ReduceFarmerNumber(int number,String seedid);//种子降低的保种人数,返回值:0,写入成功,1:写入失败,其他待定
+    public int KeepSeed(TTorent seed,String seedid);//将种子加入保种列表
+    public int RemoveSeed(String seedid);//将种子移除保种列表
+
+    public void CheckSeed();//由外部触发,调用类内函数更新保种列表
+    public Seed[] GetSeedToPlant();//获取当前需要保种的所有种子信息
+}
\ No newline at end of file