diff --git a/src/main/java/com/pt/service/DownloadService.java b/src/main/java/com/pt/service/DownloadService.java
new file mode 100644
index 0000000..284be5a
--- /dev/null
+++ b/src/main/java/com/pt/service/DownloadService.java
@@ -0,0 +1,20 @@
+package com.pt.service;
+
+import com.pt.repository.DownloadRepository;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+@Service
+public class DownloadService {
+
+    @Autowired
+    private DownloadRepository downloadRepository;
+
+    public DownloadService(DownloadRepository downloadRepository) {
+        this.downloadRepository = downloadRepository;
+    }
+
+    /*
+        TODO: 添加下载需要的服务;
+     */
+}
diff --git a/src/main/java/com/pt/service/ResourceService.java b/src/main/java/com/pt/service/ResourceService.java
new file mode 100644
index 0000000..a91bc7d
--- /dev/null
+++ b/src/main/java/com/pt/service/ResourceService.java
@@ -0,0 +1,50 @@
+package com.pt.service;
+
+import com.pt.entity.Resource;
+import com.pt.repository.ResourceRepository;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.time.LocalDateTime;
+import java.util.List;
+
+@Service
+public class ResourceService {
+
+    @Autowired
+    private ResourceRepository resourceRepository;
+
+    public ResourceService(ResourceRepository resourceRepository) {
+        this.resourceRepository = resourceRepository;
+    }
+
+    public List<Resource> getAllResources() {
+        return resourceRepository.findAll();
+    }
+
+    public void publishResource(String name, String description, String publisher, double size) {
+        Resource resource = new Resource();
+        resource.setName(name);
+        resource.setSize(size);
+        resource.setDescription(description);
+        resource.setAuthor(publisher);
+        resource.setPublishTime(LocalDateTime.now());
+        resourceRepository.save(resource);
+    }
+
+    public Resource getResourceById(int resourceId) {
+        return resourceRepository.findById(resourceId).orElse(null);
+    }
+
+    public List<Resource> searchByQuery(String query) {
+        return resourceRepository.findByNameContainingIgnoreCase(query);
+    }
+
+    public List<Resource> getResourcesByAuthor(String author) {
+        return resourceRepository.findByAuthor(author);
+    }
+
+    public void deleteResource(int resourceId) {
+        resourceRepository.deleteById(resourceId);
+    }
+}
