Browse Source

项目批量删除

gushoubang 2 months ago
parent
commit
238f5bd38a

+ 9 - 5
siwei-modules/siwei-apply/src/main/java/com/siwei/apply/controller/ProjectController.java

@@ -1,6 +1,7 @@
 package com.siwei.apply.controller;
 
 import com.siwei.apply.domain.Project;
+import com.siwei.apply.domain.vo.IdsVo;
 import com.siwei.apply.domain.vo.ProjectFilterVo;
 import com.siwei.apply.domain.vo.ProjectUpdateVo;
 import com.siwei.apply.domain.vo.ProjectVo;
@@ -88,15 +89,18 @@ public class ProjectController extends BaseController {
     }
 
     /**
-     * 删除项目
+     * 批量删除项目
      *
-     * @param id
+     * @param idsVo 包含要删除的项目ID列表
      * @return
      */
-    @DeleteMapping("/{id}")
-    public R<Void> Delete(@PathVariable String id) {
+    @DeleteMapping("")
+    public R<Void> Delete(@RequestBody IdsVo idsVo) {
         try {
-            projectService.delete(id);
+            if (idsVo == null || idsVo.getIds() == null || idsVo.getIds().isEmpty()) {
+                return R.fail("删除的项目ID列表不能为空");
+            }
+            projectService.batchDelete(idsVo.getIds());
             return R.ok();
         } catch (Exception e) {
             return R.fail(e.getMessage());

+ 16 - 0
siwei-modules/siwei-apply/src/main/java/com/siwei/apply/domain/vo/IdsVo.java

@@ -0,0 +1,16 @@
+package com.siwei.apply.domain.vo;
+
+import lombok.Data;
+
+import java.util.List;
+
+/**
+ * 批量操作ID集合
+ */
+@Data
+public class IdsVo {
+    /**
+     * ID列表,用于批量操作
+     */
+    private List<String> ids;
+}

+ 4 - 3
siwei-modules/siwei-apply/src/main/java/com/siwei/apply/mapper/ProjectMapper.java

@@ -4,6 +4,7 @@ import com.siwei.apply.domain.Project;
 import com.siwei.apply.domain.vo.ProjectFilterVo;
 import com.siwei.apply.domain.vo.ProjectUpdateVo;
 import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
 
 import java.util.List;
 
@@ -42,9 +43,9 @@ public interface ProjectMapper {
     void update(ProjectUpdateVo projectUpdateVo);
 
     /**
-     * 删除项目
+     * 批量删除项目
      *
-     * @param projectId
+     * @param ids 项目ID列表
      */
-    void delete(String projectId);
+    void batchDelete(@Param("ids") List<String> ids);
 }

+ 4 - 4
siwei-modules/siwei-apply/src/main/java/com/siwei/apply/service/ProjectService.java

@@ -5,6 +5,7 @@ import com.siwei.apply.domain.vo.ProjectFilterVo;
 import com.siwei.apply.domain.vo.ProjectUpdateVo;
 import com.siwei.apply.domain.vo.ProjectVo;
 
+import java.util.List;
 import java.util.Map;
 
 /**
@@ -45,10 +46,9 @@ public interface ProjectService {
     void update(ProjectUpdateVo projectUpdateVo);
 
     /**
-     * 删除项目
+     * 批量删除项目
      *
-     * @param projectId
-     * @return
+     * @param ids 项目ID列表
      */
-    void delete(String projectId);
+    void batchDelete(List<String> ids);
 }

+ 14 - 4
siwei-modules/siwei-apply/src/main/java/com/siwei/apply/service/impl/ProjectImpl.java

@@ -8,6 +8,7 @@ import com.siwei.apply.mapper.ProjectMapper;
 import com.siwei.apply.service.ProjectService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
 
 import java.util.HashMap;
 import java.util.List;
@@ -60,10 +61,19 @@ public class ProjectImpl implements ProjectService {
     }
 
     @Override
-    public void delete(String projectId) {
-        if (projectId == null || projectId.isEmpty()) {
-            throw new IllegalArgumentException("Project ID cannot be null or empty");
+    @Transactional(rollbackFor = Exception.class)
+    public void batchDelete(List<String> ids) {
+        if (ids == null || ids.isEmpty()) {
+            throw new IllegalArgumentException("IDs list cannot be null or empty");
         }
-        projectMapper.delete(projectId);
+
+        // 验证每个ID都不为空
+        for (String id : ids) {
+            if (id == null || id.trim().isEmpty()) {
+                throw new IllegalArgumentException("ID cannot be null or empty");
+            }
+        }
+
+        projectMapper.batchDelete(ids);
     }
 }

+ 5 - 2
siwei-modules/siwei-apply/src/main/resources/mapper/ProjectMapper.xml

@@ -71,8 +71,11 @@
         WHERE id = #{id}
     </update>
 
-    <delete id="delete" parameterType="String">
+    <delete id="batchDelete">
         DELETE FROM t_project
-        WHERE id = #{projectId}
+        WHERE id IN
+        <foreach collection="ids" item="id" open="(" separator="," close=")">
+            #{id}
+        </foreach>
     </delete>
 </mapper>