From 662ced27d009a35ffb77312942953ab424ae2dda Mon Sep 17 00:00:00 2001
From: zhubaomin <zhubaomin>
Date: 星期五, 01 十一月 2024 16:27:39 +0800
Subject: [PATCH] 优化农户问题上报接口,删除前判断要删除的上报是否存在

---
 pipIrr-platform/pipIrr-global/src/main/resources/mapper/SeIssueReportMapper.xml                              |    5 ++
 pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoSe/SeIssueReportMapper.java               |    9 ++++
 pipIrr-platform/pipIrr-web/pipIrr-web-wechat/src/main/java/com/dy/pipIrrWechat/issue/IssueSv.java            |   10 +++++
 pipIrr-platform/pipIrr-web/pipIrr-web-wechat/src/main/java/com/dy/pipIrrWechat/issue/dto/DtoDeleteParam.java |   28 ++++++++++++++
 pipIrr-platform/pipIrr-web/pipIrr-web-wechat/src/main/java/com/dy/pipIrrWechat/issue/IssueCtrl.java          |   20 +++++++---
 5 files changed, 66 insertions(+), 6 deletions(-)

diff --git a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoSe/SeIssueReportMapper.java b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoSe/SeIssueReportMapper.java
index cc4e746..14a4c51 100644
--- a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoSe/SeIssueReportMapper.java
+++ b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoSe/SeIssueReportMapper.java
@@ -4,6 +4,7 @@
 import com.dy.pipIrrGlobal.pojoSe.SeIssueReport;
 import com.dy.pipIrrGlobal.voSe.VoIssueReport;
 import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
 
 import java.util.List;
 import java.util.Map;
@@ -44,6 +45,14 @@
     List<VoIssueReport> getIssueReports(Map<?, ?> params);
 
     /**
+     * 鏍规嵁涓婃姤ID鍙婂啘鎴稩D鑾峰彇鏈垹闄ょ殑涓婃姤锛屽垹闄や笂鎶ュ垽鏂娇鐢�
+     * @param issueReportId
+     * @param clientId
+     * @return
+     */
+    SeIssueReport getReport(@Param("issueReportId")Long issueReportId, @Param("clientId")Long clientId);
+
+    /**
      * 閫昏緫鍒犻櫎涓�涓啘鎴烽棶棰樹笂鎶�
      * @param issueReportId
      * @return
diff --git a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/SeIssueReportMapper.xml b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/SeIssueReportMapper.xml
index 3183e50..31bcb79 100644
--- a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/SeIssueReportMapper.xml
+++ b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/SeIssueReportMapper.xml
@@ -252,6 +252,11 @@
     </trim>
   </select>
 
+  <!--鏍规嵁涓婃姤ID鍙婂啘鎴稩D鑾峰彇鏈垹闄ょ殑涓婃姤锛屽垹闄や笂鎶ュ垽鏂娇鐢�-->
+  <select id="getReport" resultType="com.dy.pipIrrGlobal.pojoSe.SeIssueReport">
+    SELECT * FROM se_issue_report WHERE state != 3 AND id = #{issueReportId} AND client_id = #{clientId}
+  </select>
+
   <!--閫昏緫鍒犻櫎涓�涓啘鎴烽棶棰樹笂鎶�-->
   <update id="deleteIssueReport">
     UPDATE se_issue_report SET state = 3 WHERE id = #{issueReportId}
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-wechat/src/main/java/com/dy/pipIrrWechat/issue/IssueCtrl.java b/pipIrr-platform/pipIrr-web/pipIrr-web-wechat/src/main/java/com/dy/pipIrrWechat/issue/IssueCtrl.java
index 8091d44..925dad6 100644
--- a/pipIrr-platform/pipIrr-web/pipIrr-web-wechat/src/main/java/com/dy/pipIrrWechat/issue/IssueCtrl.java
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-wechat/src/main/java/com/dy/pipIrrWechat/issue/IssueCtrl.java
@@ -8,6 +8,7 @@
 import com.dy.pipIrrGlobal.pojoSe.SeReportReply;
 import com.dy.pipIrrGlobal.voSe.VoIssueReport;
 import com.dy.pipIrrGlobal.voSe.VoIssueReportReply;
+import com.dy.pipIrrWechat.issue.dto.DtoDeleteParam;
 import com.dy.pipIrrWechat.issue.dto.DtoIssueReport;
 import com.dy.pipIrrWechat.issue.dto.DtoReportReply;
 import com.dy.pipIrrWechat.issue.qo.QoIssueReport;
@@ -96,18 +97,25 @@
     }
 
     /**
-     * 閫昏緫鍒犻櫎鍐滄埛闂涓婃姤
-     * @param issueReportId
+     * 閫昏緫鍒犻櫎鍐滄埛闂涓婃姤锛屽垹闄ゅ墠鍏堝垽鏂鍒犻櫎鐨勪笂鎶ユ槸鍚﹀瓨鍦�
+     * @param po
+     * @param bindingResult
      * @return
      */
     @PostMapping(path = "deleteIssueReport")
-    public BaseResponse<Boolean> deleteIssueReport(@RequestParam("issueReportId") Long issueReportId) {
-        if (issueReportId == null) {
-            return BaseResponseUtils.buildErrorMsg("鏈�夋嫨瑕佸垹闄ょ殑鍐滄埛闂涓婃姤");
+    public BaseResponse<Boolean> deleteIssueReport(@RequestBody @Valid DtoDeleteParam po, BindingResult bindingResult) {
+        if(bindingResult != null && bindingResult.hasErrors()){
+            return BaseResponseUtils.buildFail(Objects.requireNonNull(bindingResult.getFieldError()).getDefaultMessage());
+        }
+
+        // 鏍规嵁涓婃姤ID鍙婂啘鎴稩D鑾峰彇鏈垹闄ょ殑涓婃姤锛屽垹闄や笂鎶ュ垽鏂娇鐢�
+        SeIssueReport seIssueReport = issueSv.getReport(po.getIssueReportId(), po.getClientId());
+        if(seIssueReport == null) {
+            return BaseResponseUtils.buildErrorMsg("鎮ㄨ鍒犻櫎鐨勯棶棰樹笂鎶ヤ笉瀛樺湪");
         }
 
         try {
-            Integer recordCount = Optional.ofNullable(issueSv.deleteIssueReport(issueReportId)).orElse(0);
+            Integer recordCount = Optional.ofNullable(issueSv.deleteIssueReport(po.getIssueReportId())).orElse(0);
             if (recordCount == 0) {
                 return BaseResponseUtils.buildErrorMsg("鍐滄埛闂涓婃姤鍒犻櫎澶辫触");
             }else {
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-wechat/src/main/java/com/dy/pipIrrWechat/issue/IssueSv.java b/pipIrr-platform/pipIrr-web/pipIrr-web-wechat/src/main/java/com/dy/pipIrrWechat/issue/IssueSv.java
index dce5580..367d6b9 100644
--- a/pipIrr-platform/pipIrr-web/pipIrr-web-wechat/src/main/java/com/dy/pipIrrWechat/issue/IssueSv.java
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-wechat/src/main/java/com/dy/pipIrrWechat/issue/IssueSv.java
@@ -83,6 +83,16 @@
     }
 
     /**
+     * 鏍规嵁涓婃姤ID鍙婂啘鎴稩D鑾峰彇鏈垹闄ょ殑涓婃姤锛屽垹闄や笂鎶ュ垽鏂娇鐢�
+     * @param issueReportId
+     * @param clientId
+     * @return
+     */
+    public SeIssueReport getReport(Long issueReportId, Long clientId) {
+        return seIssueReportMapper.getReport(issueReportId, clientId);
+    }
+
+    /**
      * 鍒犻櫎鍐滄埛闂涓婃姤
      * @param issueReportId
      * @return
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-wechat/src/main/java/com/dy/pipIrrWechat/issue/dto/DtoDeleteParam.java b/pipIrr-platform/pipIrr-web/pipIrr-web-wechat/src/main/java/com/dy/pipIrrWechat/issue/dto/DtoDeleteParam.java
new file mode 100644
index 0000000..6d951c8
--- /dev/null
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-wechat/src/main/java/com/dy/pipIrrWechat/issue/dto/DtoDeleteParam.java
@@ -0,0 +1,28 @@
+package com.dy.pipIrrWechat.issue.dto;
+
+import jakarta.validation.constraints.NotNull;
+import lombok.Data;
+
+/**
+ * @author ZhuBaoMin
+ * @date 2024-11-01 15:54
+ * @LastEditTime 2024-11-01 15:54
+ * @Description 鍐滄埛闂涓婃姤鍒犻櫎鍙傛暟瀵硅薄
+ */
+
+@Data
+public class DtoDeleteParam {
+    public static final long serialVersionUID = 202411011555001L;
+
+    /**
+     * 鍐滄埛闂涓婃姤ID
+     */
+    @NotNull(message = "璇烽�夋嫨瑕佸垹闄ょ殑闂涓婃姤")
+    private Long issueReportId;
+
+    /**
+     * 鍐滄埛ID
+     */
+    @NotNull(message = "鍐滄埛缂栧彿涓嶈兘涓虹┖")
+    private Long clientId;
+}

--
Gitblit v1.8.0