diff --git a/src/main/java/database/Database2.java b/src/main/java/database/Database2.java
index 91dc8ff..3fe0c9c 100644
--- a/src/main/java/database/Database2.java
+++ b/src/main/java/database/Database2.java
@@ -22,6 +22,8 @@
 import entity.QProfile;
 import entity.QSeed;
 import entity.Seed;
+import entity.SeedPromotion;
+import entity.SeedWithPromotionDTO;
 import entity.User;
 import entity.UserPT;
 import entity.config;
@@ -139,8 +141,8 @@
     }
 
     @Override
-    public Seed[] GetSeedListByTag(String tag) {
-        return new Seed[0];
+    public SeedWithPromotionDTO[] GetSeedListByTag(String tag) {
+        return new SeedWithPromotionDTO[0];
     }
 
     @Override
@@ -1020,7 +1022,7 @@
     }
 
     @Override
-    public boolean ExamTransmitProfile(String profileid, boolean result) {
+    public boolean ExamTransmitProfile(String profileid, boolean result, Integer grantedUpload) {
         if (profileid == null || profileid.isEmpty()) {
             logger.warn("参数无效: profileid为空");
             return false;
@@ -1144,7 +1146,7 @@
     }
 
     @Override
-    public int UploadMigration(String userid, File file){
+    public int UploadMigration(String userid, File file, String uploadtogive){
         return 0;
     }
 
@@ -1231,4 +1233,19 @@
     public int createBagSeed(BegInfo begInfo, String userid, String info) {
         return 0;
     }
+
+    @Override
+    public Seed[] getAllSeeds() {
+        return null;
+    }
+
+    @Override
+    public SeedPromotion[] getAllSeedPromotions() {
+        return null;
+    }
+
+    @Override
+    public int createSeedPromotion(String seedid, Date startTime, Date endTime, Integer discount) {
+        return 0;
+    }
 }
\ No newline at end of file
