举报相关上传
Change-Id: I3c13243a1442cc4ed00844d1a554f24f7313d8bb
diff --git a/src/main/java/com/pt5/pthouduan/controller/ComplainController.java b/src/main/java/com/pt5/pthouduan/controller/ComplainController.java
new file mode 100644
index 0000000..45ef0e2
--- /dev/null
+++ b/src/main/java/com/pt5/pthouduan/controller/ComplainController.java
@@ -0,0 +1,78 @@
+package com.pt5.pthouduan.controller;
+
+import com.pt5.pthouduan.entity.Complain;
+import com.pt5.pthouduan.service.ComplainService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+import org.springframework.stereotype.Controller;
+
+import java.util.List;
+
+/**
+ * <p>
+ * 投诉前端控制器
+ * </p>
+ *
+ * 功能:增、删、改、查(按被投诉用户ID)
+ *
+ * @author ym
+ * @since 2025-04-14
+ */
+@CrossOrigin(origins = {"http://localhost:5173", "http://localhost:3000"})
+@Controller
+@RequestMapping("/complain")
+public class ComplainController {
+
+ @Autowired
+ private ComplainService complainService;
+
+ // 创建投诉
+ @PostMapping("/create")
+ @ResponseBody
+ public Complain createComplain(@RequestBody Complain complain) {
+ System.out.println("Received complain: " + complain); // 输出接收到的投诉数据
+ return complainService.createComplain(complain);
+ }
+
+ // 删除投诉(根据complainid)
+ @DeleteMapping("/delete/{complainid}")
+ @ResponseBody
+ public boolean deleteComplain(@PathVariable Integer complainid) {
+ return complainService.deleteComplain(complainid);
+ }
+
+ // 更新投诉内容
+ @PutMapping("/update")
+ @ResponseBody
+ public boolean updateComplain(@RequestBody Complain complain) {
+ return complainService.updateComplain(complain);
+ }
+
+ // 获取某个用户被投诉的所有记录(根据duser)
+ @GetMapping("/target/{duser}")
+ @ResponseBody
+ public List<Complain> getComplainsByTargetUser(@PathVariable Long duser) {
+ return complainService.getComplainsByTargetUser(duser);
+ }
+
+ // 获取某个用户提交的所有投诉记录(根据puse)
+ @GetMapping("/from/{puse}")
+ @ResponseBody
+ public List<Complain> getComplainsByPostingUser(@PathVariable Long puse) {
+ return complainService.getComplainsByPostingUser(puse);
+ }
+
+ // 获取所有投诉记录(管理员查看用)
+ @GetMapping("/all")
+ @ResponseBody
+ public List<Complain> getAllComplains() {
+ return complainService.getAllComplains();
+ }
+
+ // 根据投诉号获取对应的投诉人、被投诉人和种子号
+ @GetMapping("/info/{complainid}")
+ @ResponseBody
+ public Complain getComplainInfo(@PathVariable Integer complainid) {
+ return complainService.getComplainById(complainid);
+ }
+}
diff --git a/src/main/java/com/pt5/pthouduan/entity/Complain.java b/src/main/java/com/pt5/pthouduan/entity/Complain.java
new file mode 100644
index 0000000..6a57648
--- /dev/null
+++ b/src/main/java/com/pt5/pthouduan/entity/Complain.java
@@ -0,0 +1,82 @@
+package com.pt5.pthouduan.entity;
+
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+
+import java.io.Serializable;
+
+/**
+ * <p>
+ * 投诉记录实体类
+ * </p>
+ *
+ * @author ym
+ * @since 2025-04-14
+ */
+@TableName("complain")
+public class Complain implements Serializable {
+
+ private static final long serialVersionUID = 1L;
+
+ @TableId("complainid")
+ private Integer complainid;
+
+ private Long puse;
+
+ private Long duser;
+
+ private String content;
+
+ private Long torrentid;
+
+ public Integer getComplainid() {
+ return complainid;
+ }
+
+ public void setComplainid(Integer complainid) {
+ this.complainid = complainid;
+ }
+
+ public Long getPuse() {
+ return puse;
+ }
+
+ public void setPuse(Long puse) {
+ this.puse = puse;
+ }
+
+ public Long getDuser() {
+ return duser;
+ }
+
+ public void setDuser(Long duser) {
+ this.duser = duser;
+ }
+
+ public String getContent() {
+ return content;
+ }
+
+ public void setContent(String content) {
+ this.content = content;
+ }
+
+ public Long getTorrentid() {
+ return torrentid;
+ }
+
+ public void setTorrentid(Long torrentid) {
+ this.torrentid = torrentid;
+ }
+
+ @Override
+ public String toString() {
+ return "Complain{" +
+ "complainid=" + complainid +
+ ", puse=" + puse +
+ ", duser=" + duser +
+ ", content='" + content + '\'' +
+ ", torrentid=" + torrentid +
+ '}';
+ }
+}
diff --git a/src/main/java/com/pt5/pthouduan/mapper/ComplainMapper.java b/src/main/java/com/pt5/pthouduan/mapper/ComplainMapper.java
new file mode 100644
index 0000000..c39557d
--- /dev/null
+++ b/src/main/java/com/pt5/pthouduan/mapper/ComplainMapper.java
@@ -0,0 +1,45 @@
+package com.pt5.pthouduan.mapper;
+
+import com.pt5.pthouduan.entity.Complain;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+/**
+ * <p>
+ * 投诉 Mapper 接口
+ * </p>
+ *
+ * 功能:增、删、改、查(按被投诉用户ID和投诉发起人ID)
+ *
+ * @author ym
+ * @since 2025-04-14
+ */
+@Mapper
+public interface ComplainMapper extends BaseMapper<Complain> {
+
+ // 创建投诉
+ void save(Complain complain);
+
+ // 根据投诉ID删除
+ int deleteByComplainid(@Param("complainid") Integer complainid);
+
+ // 更新投诉
+ int updateComplain(Complain complain);
+
+ // 根据被投诉用户ID查询投诉列表
+ List<Complain> selectByDuser(@Param("duser") Long duser);
+
+ // 根据投诉发起人ID查询投诉列表
+ List<Complain> selectByPuse(@Param("puse") Long puse);
+
+ // 根据投诉ID查询投诉记录
+ Complain selectByComplainId(@Param("complainid") Integer complainid);
+
+ // 获取所有投诉记录
+ List<Complain> selectAllComplains();
+
+
+}
diff --git a/src/main/java/com/pt5/pthouduan/service/ComplainService.java b/src/main/java/com/pt5/pthouduan/service/ComplainService.java
new file mode 100644
index 0000000..896f748
--- /dev/null
+++ b/src/main/java/com/pt5/pthouduan/service/ComplainService.java
@@ -0,0 +1,38 @@
+package com.pt5.pthouduan.service;
+
+import com.pt5.pthouduan.entity.Complain;
+
+import java.util.List;
+
+/**
+ * <p>
+ * 投诉服务接口
+ * </p>
+ *
+ * 功能:增、删、改、查(按被投诉用户ID、投诉发起人ID)
+ *
+ * @author ym
+ * @since 2025-04-14
+ */
+public interface ComplainService {
+
+ // 创建投诉
+ Complain createComplain(Complain complain);
+
+ // 删除投诉
+ boolean deleteComplain(Integer complainid);
+
+ // 更新投诉
+ boolean updateComplain(Complain complain);
+
+ // 根据被投诉用户ID查询投诉
+ List<Complain> getComplainsByTargetUser(Long duser);
+
+ // 根据投诉发起人ID查询投诉
+ List<Complain> getComplainsByPostingUser(Long puse);
+
+ List<Complain> getAllComplains();
+
+ Complain getComplainById(Integer complainid);
+
+}
diff --git a/src/main/java/com/pt5/pthouduan/service/impl/ComplainServiceImpl.java b/src/main/java/com/pt5/pthouduan/service/impl/ComplainServiceImpl.java
new file mode 100644
index 0000000..84b0be2
--- /dev/null
+++ b/src/main/java/com/pt5/pthouduan/service/impl/ComplainServiceImpl.java
@@ -0,0 +1,64 @@
+package com.pt5.pthouduan.service.impl;
+
+import com.pt5.pthouduan.entity.Complain;
+import com.pt5.pthouduan.mapper.ComplainMapper;
+import com.pt5.pthouduan.service.ComplainService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+
+/**
+ * <p>
+ * 投诉服务实现类
+ * </p>
+ *
+ * 实现了投诉的增删改查逻辑
+ *
+ * @author ym
+ * @since 2025-04-14
+ */
+@Service
+public class ComplainServiceImpl implements ComplainService {
+
+ @Autowired
+ private ComplainMapper complainMapper;
+
+ @Override
+ public Complain createComplain(Complain complain) {
+ complainMapper.save(complain);
+ return complain;
+ }
+
+ @Override
+ public boolean deleteComplain(Integer complainid) {
+ return complainMapper.deleteByComplainid(complainid) > 0;
+ }
+
+ @Override
+ public boolean updateComplain(Complain complain) {
+ return complainMapper.updateComplain(complain) > 0;
+ }
+
+ @Override
+ public List<Complain> getComplainsByTargetUser(Long duser) {
+ return complainMapper.selectByDuser(duser);
+ }
+
+ @Override
+ public List<Complain> getComplainsByPostingUser(Long puse) {
+ return complainMapper.selectByPuse(puse);
+ }
+
+ @Override
+ public List<Complain> getAllComplains() {
+ return complainMapper.selectList(null); // 查询全部记录
+ }
+
+ @Override
+ public Complain getComplainById(Integer complainid) {
+ return complainMapper.selectById(complainid); // 根据主键查记录
+ }
+
+
+}