diff --git a/muyu-quest-server/src/main/java/com/muyu/quest/controller/NodeDispositionController.java b/muyu-quest-server/src/main/java/com/muyu/quest/controller/NodeDispositionController.java index b62c1ee..9b9afcc 100644 --- a/muyu-quest-server/src/main/java/com/muyu/quest/controller/NodeDispositionController.java +++ b/muyu-quest-server/src/main/java/com/muyu/quest/controller/NodeDispositionController.java @@ -1,9 +1,14 @@ package com.muyu.quest.controller; +import java.util.ArrayList; import java.util.Arrays; import java.util.List; + +import com.muyu.quest.domain.Node; import jakarta.servlet.http.HttpServletResponse; import javax.annotation.Resource; + +import org.springframework.transaction.annotation.Transactional; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.PutMapping; @@ -116,4 +121,34 @@ public class NodeDispositionController extends BaseController nodeDispositionService.removeBatchByIds(Arrays.asList(ids)); return success(); } + + /** + * 批量新增或修改 + */ + /** + * 节点批量删除再批量新增 + */ + @PostMapping("/batch") + @Transactional + public Result batch(@Validated @RequestBody ArrayList dispList){ + ArrayList addList = new ArrayList<>(); + ArrayList updList = new ArrayList<>(); + dispList.forEach(disp -> { + // 查询是否已存在 + if (nodeDispositionService.checkDispUnique(disp)) { + updList.add(disp); + }else{ + addList.add(disp); + } + }); + // 批量新增 + if (!addList.isEmpty()) { + nodeDispositionService.saveBatch(addList); + } + // 批量修改 + if (!updList.isEmpty()) { + nodeDispositionService.updateBatchById(updList); + } + return success(); + } } diff --git a/muyu-quest-server/src/main/java/com/muyu/quest/service/INodeDispositionService.java b/muyu-quest-server/src/main/java/com/muyu/quest/service/INodeDispositionService.java index 111fbbb..55cc0c9 100644 --- a/muyu-quest-server/src/main/java/com/muyu/quest/service/INodeDispositionService.java +++ b/muyu-quest-server/src/main/java/com/muyu/quest/service/INodeDispositionService.java @@ -35,4 +35,6 @@ public interface INodeDispositionService extends IService { Boolean checkIdUnique(NodeDisposition nodeDisposition); public NodeDisposition selectNodeDispositionByNodeCode(String nodeCode); + + Boolean checkDispUnique(NodeDisposition disp); } diff --git a/muyu-quest-server/src/main/java/com/muyu/quest/service/impl/NodeDispositionServiceImpl.java b/muyu-quest-server/src/main/java/com/muyu/quest/service/impl/NodeDispositionServiceImpl.java index 7bad765..7a2a7e0 100644 --- a/muyu-quest-server/src/main/java/com/muyu/quest/service/impl/NodeDispositionServiceImpl.java +++ b/muyu-quest-server/src/main/java/com/muyu/quest/service/impl/NodeDispositionServiceImpl.java @@ -82,4 +82,12 @@ public class NodeDispositionServiceImpl return this.getOne(queryWrapper); } + @Override + public Boolean checkDispUnique(NodeDisposition disp) { + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); + queryWrapper.eq(NodeDisposition::getId, disp.getId()); + queryWrapper.eq(NodeDisposition::getNodeCode, disp.getNodeCode()); + return this.exists(queryWrapper); + } + }