求助要资源帖子相关后端

Change-Id: I10e910360ed932d4d31abbfba7ee98ba6885a5dc
diff --git a/src/main/java/com/pt5/pthouduan/service/RequestResourcesService.java b/src/main/java/com/pt5/pthouduan/service/RequestResourcesService.java
new file mode 100644
index 0000000..9a8fb20
--- /dev/null
+++ b/src/main/java/com/pt5/pthouduan/service/RequestResourcesService.java
@@ -0,0 +1,44 @@
+package com.pt5.pthouduan.service;
+
+import com.pt5.pthouduan.entity.request_resources;
+
+import java.util.List;
+
+public interface RequestResourcesService {
+
+    // 创建求助帖
+    boolean createRequest(request_resources request);
+
+    // 修改求助帖金额
+    boolean updateMoney(Integer requestid, Integer money);
+
+    // 删除求助帖
+    boolean deleteRequest(Integer requestid);
+
+    // 根据名称查找求助帖
+    List<request_resources> findByName(String name);
+
+    // 计算某名称的求助帖总金额
+    Integer calculateTotalMoneyByName(String name);
+
+    // 根据发帖用户ID查找求助帖
+    List<request_resources> findByUserid(Long userid);
+
+    // 根据被协助用户ID查找求助帖
+    List<request_resources> findByLoaduser(Long loaduser);
+
+    // 根据帖子名称批量更新loaduser字段
+    boolean updateLoaduserByName(String name, Long loaduser);
+
+    // 展示所有求助帖
+    List<request_resources> getAllRequests();
+
+    // ✅ 新增:根据 requestid 更新 torrentid
+    boolean updateTorrentid(Integer requestid, Long torrentid);
+
+    // ✅ 新增:根据 requestid 查询 request 对象
+    request_resources findByRequestid(Integer requestid);
+
+    // ✅(可选)根据 userid + name + plot 查询 requestid
+    request_resources findByUseridAndNameAndPlot(Long userid, String name, String plot);
+}
diff --git a/src/main/java/com/pt5/pthouduan/service/impl/RequestResourcesServiceImpl.java b/src/main/java/com/pt5/pthouduan/service/impl/RequestResourcesServiceImpl.java
new file mode 100644
index 0000000..abc23cb
--- /dev/null
+++ b/src/main/java/com/pt5/pthouduan/service/impl/RequestResourcesServiceImpl.java
@@ -0,0 +1,114 @@
+package com.pt5.pthouduan.service.impl;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
+import com.pt5.pthouduan.entity.request_resources;
+import com.pt5.pthouduan.mapper.RequestResourcesMapper;
+import com.pt5.pthouduan.service.RequestResourcesService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+
+@Service
+public class RequestResourcesServiceImpl implements RequestResourcesService {
+
+    @Autowired
+    private RequestResourcesMapper requestResourcesMapper;
+
+    // 创建求助帖
+    @Override
+    public boolean createRequest(request_resources request) {
+        return requestResourcesMapper.insert(request) > 0;
+    }
+
+    // 修改求助帖金额
+    @Override
+    public boolean updateMoney(Integer requestid, Integer money) {
+        request_resources request = requestResourcesMapper.selectById(requestid);
+        if (request != null) {
+            request.setMoney(money);
+            return requestResourcesMapper.updateById(request) > 0;
+        }
+        return false;
+    }
+
+    // 删除求助帖
+    @Override
+    public boolean deleteRequest(Integer requestid) {
+        return requestResourcesMapper.deleteById(requestid) > 0;
+    }
+
+    // 根据名称查找求助帖
+    @Override
+    public List<request_resources> findByName(String name) {
+        QueryWrapper<request_resources> wrapper = new QueryWrapper<>();
+        wrapper.eq("name", name);
+        return requestResourcesMapper.selectList(wrapper);
+    }
+
+    // 计算某名称的求助帖总金额
+    @Override
+    public Integer calculateTotalMoneyByName(String name) {
+        QueryWrapper<request_resources> wrapper = new QueryWrapper<>();
+        wrapper.eq("name", name).select("money");
+        List<request_resources> list = requestResourcesMapper.selectList(wrapper);
+        return list.stream()
+                .map(request_resources::getMoney)
+                .reduce(0, Integer::sum);
+    }
+
+    // 根据发帖用户ID查找求助帖
+    @Override
+    public List<request_resources> findByUserid(Long userid) {
+        QueryWrapper<request_resources> wrapper = new QueryWrapper<>();
+        wrapper.eq("userid", userid);
+        return requestResourcesMapper.selectList(wrapper);
+    }
+
+    // 根据被协助用户ID查找求助帖
+    @Override
+    public List<request_resources> findByLoaduser(Long loaduser) {
+        QueryWrapper<request_resources> wrapper = new QueryWrapper<>();
+        wrapper.eq("loaduser", loaduser);
+        return requestResourcesMapper.selectList(wrapper);
+    }
+
+    // 批量更新 loaduser
+    @Override
+    public boolean updateLoaduserByName(String name, Long loaduser) {
+        UpdateWrapper<request_resources> updateWrapper = new UpdateWrapper<>();
+        updateWrapper.eq("name", name).set("loaduser", loaduser);
+        return requestResourcesMapper.update(null, updateWrapper) > 0;
+    }
+
+    // 获取所有求助帖
+    @Override
+    public List<request_resources> getAllRequests() {
+        return requestResourcesMapper.selectList(null);
+    }
+
+    // ✅ 新增:根据 requestid 更新 torrentid
+    @Override
+    public boolean updateTorrentid(Integer requestid, Long torrentid) {
+        UpdateWrapper<request_resources> updateWrapper = new UpdateWrapper<>();
+        updateWrapper.eq("requestid", requestid).set("torrentid", torrentid);
+        return requestResourcesMapper.update(null, updateWrapper) > 0;
+    }
+
+    // ✅ 新增:根据 requestid 查询对象
+    @Override
+    public request_resources findByRequestid(Integer requestid) {
+        return requestResourcesMapper.selectById(requestid);
+    }
+
+    // ✅ 新增:根据 userid + name + plot 查找唯一 request(获取 requestid 用)
+    @Override
+    public request_resources findByUseridAndNameAndPlot(Long userid, String name, String plot) {
+        QueryWrapper<request_resources> wrapper = new QueryWrapper<>();
+        wrapper.eq("userid", userid)
+                .eq("name", name)
+                .eq("plot", plot);
+        return requestResourcesMapper.selectOne(wrapper);
+    }
+}