From 92559012ef4b63b129425faa41f61f0d6d8789a1 Mon Sep 17 00:00:00 2001 From: Yen Date: Wed, 25 Oct 2023 15:02:22 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BA=BA=E5=91=98=E6=95=B0=E6=8D=AE=E5=88=86?= =?UTF-8?q?=E7=BB=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/BizUserGroupController.java | 46 +--------- .../BizUserGroupItemController.java | 16 +++- .../biz/entity/bo/BizUserGroupBatchBo.java | 2 + .../entity/bo/BizUserGroupItemBatchBo.java | 18 ++++ .../impl/BizUserGroupApplicationService.java | 92 +++++++++++++++++++ 5 files changed, 128 insertions(+), 46 deletions(-) create mode 100644 src/main/java/com/qs/serve/modules/biz/entity/bo/BizUserGroupItemBatchBo.java create mode 100644 src/main/java/com/qs/serve/modules/biz/service/impl/BizUserGroupApplicationService.java diff --git a/src/main/java/com/qs/serve/modules/biz/controller/BizUserGroupController.java b/src/main/java/com/qs/serve/modules/biz/controller/BizUserGroupController.java index 83b3505a..0cba5678 100644 --- a/src/main/java/com/qs/serve/modules/biz/controller/BizUserGroupController.java +++ b/src/main/java/com/qs/serve/modules/biz/controller/BizUserGroupController.java @@ -14,6 +14,7 @@ import com.qs.serve.modules.biz.consts.GroupDataType; import com.qs.serve.modules.biz.entity.BizUserGroupItem; import com.qs.serve.modules.biz.entity.bo.BizUserGroupBatchBo; import com.qs.serve.modules.biz.service.BizUserGroupItemService; +import com.qs.serve.modules.biz.service.impl.BizUserGroupApplicationService; import com.qs.serve.modules.sys.entity.SysDept; import com.qs.serve.modules.sys.entity.SysUser; import com.qs.serve.modules.sys.service.SysDeptService; @@ -41,10 +42,10 @@ import java.util.List; @RequestMapping("biz/dataGroup") public class BizUserGroupController { + private final BizUserGroupApplicationService bizUserGroupApplicationService; private BizUserGroupService bizUserGroupService; private BizUserGroupItemService bizUserGroupItemService; private SysUserService sysUserService; - private SysDeptService sysDeptService; /** * 列表 @@ -129,47 +130,8 @@ public class BizUserGroupController { */ @PostMapping("/editWithItem") public R editWithItem(@RequestBody @Valid BizUserGroupBatchBo param){ - SysUser sysUser = sysUserService.getById(AuthContextUtils.getSysUserId()); - BizUserGroup bizUserGroup = new BizUserGroup(); - if(param.getId()!=null){ - bizUserGroup = bizUserGroupService.getById(param.getId()); - if(!bizUserGroup.getUserId().equals(AuthContextUtils.getSysUserId())){ - return R.error("无相关数据"); - } - } - bizUserGroup.setGroupName(param.getGroupName()); - bizUserGroup.setUserId(sysUser.getId()); - bizUserGroup.setUserCode(sysUser.getCode()); - bizUserGroup.setUserName(sysUser.getName()); - bizUserGroup.setScene(param.getScene()); - bizUserGroup.setRemark(param.getRemark()); - bizUserGroupService.saveOrUpdate(bizUserGroup); - Long groupId = bizUserGroup.getId(); - //移除历史ITEM - LambdaQueryWrapper itemLqw = new LambdaQueryWrapper<>(); - itemLqw.eq(BizUserGroupItem::getGroupId,groupId); - bizUserGroupItemService.remove(itemLqw); - //保存item - List groupItemList = new ArrayList<>(); - for (BizUserGroupBatchBo.Item item : param.getItems()) { - BizUserGroupItem groupItem = new BizUserGroupItem(); - groupItem.setGroupId(groupId); - groupItem.setTargetType(item.getTargetType()); - groupItem.setTargetId(item.getTargetId()); - if(item.getTargetType().equals(GroupDataType.USER)){ - SysUser user = sysUserService.getById(item.getTargetId()); - groupItem.setTargetName(user.getName()); - groupItem.setTargetCode(user.getCode()); - }else if (item.getTargetType().equals(GroupDataType.DEPT)){ - SysDept dept = sysDeptService.getById(item.getTargetId()); - groupItem.setTargetName(dept.getName()); - groupItem.setTargetCode(dept.getCode()); - }else { - continue; - } - groupItemList.add(groupItem); - } - bizUserGroupItemService.saveBatch(groupItemList); + param.setEditGroupFlag(1); + bizUserGroupApplicationService.editWithItem(param); return R.ok(); } diff --git a/src/main/java/com/qs/serve/modules/biz/controller/BizUserGroupItemController.java b/src/main/java/com/qs/serve/modules/biz/controller/BizUserGroupItemController.java index e4edfebd..6435c9cb 100644 --- a/src/main/java/com/qs/serve/modules/biz/controller/BizUserGroupItemController.java +++ b/src/main/java/com/qs/serve/modules/biz/controller/BizUserGroupItemController.java @@ -9,6 +9,9 @@ import com.qs.serve.common.model.enums.SystemModule; import com.qs.serve.common.util.PageUtil; import com.qs.serve.common.util.CopierUtil; import com.qs.serve.common.util.StringUtils; +import com.qs.serve.modules.biz.entity.bo.BizUserGroupBatchBo; +import com.qs.serve.modules.biz.entity.bo.BizUserGroupItemBatchBo; +import com.qs.serve.modules.biz.service.impl.BizUserGroupApplicationService; import lombok.AllArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springframework.security.access.prepost.PreAuthorize; @@ -31,7 +34,8 @@ import java.util.List; @RequestMapping("biz/dataItem") public class BizUserGroupItemController { - private BizUserGroupItemService bizUserGroupItemService; + private final BizUserGroupItemService bizUserGroupItemService; + private final BizUserGroupApplicationService bizUserGroupApplicationService; /** * 列表 @@ -65,9 +69,13 @@ public class BizUserGroupItemController { * @return */ @PostMapping("/save") - public R save(@RequestBody @Valid BizUserGroupItem param){ - boolean result = bizUserGroupItemService.save(param); - return R.isTrue(result); + public R save(@RequestBody @Valid BizUserGroupItemBatchBo param){ + BizUserGroupBatchBo groupBatchBo = new BizUserGroupBatchBo(); + groupBatchBo.setEditGroupFlag(0); + groupBatchBo.setId(param.getGroupId()); + groupBatchBo.setItems(param.getItems()); + bizUserGroupApplicationService.editWithItem(groupBatchBo); + return R.ok(); } /** diff --git a/src/main/java/com/qs/serve/modules/biz/entity/bo/BizUserGroupBatchBo.java b/src/main/java/com/qs/serve/modules/biz/entity/bo/BizUserGroupBatchBo.java index a68aa2d7..ee0ad1ca 100644 --- a/src/main/java/com/qs/serve/modules/biz/entity/bo/BizUserGroupBatchBo.java +++ b/src/main/java/com/qs/serve/modules/biz/entity/bo/BizUserGroupBatchBo.java @@ -27,6 +27,8 @@ public class BizUserGroupBatchBo { private List items; + private Integer editGroupFlag; + @Data public static class Item{ diff --git a/src/main/java/com/qs/serve/modules/biz/entity/bo/BizUserGroupItemBatchBo.java b/src/main/java/com/qs/serve/modules/biz/entity/bo/BizUserGroupItemBatchBo.java new file mode 100644 index 00000000..f000d782 --- /dev/null +++ b/src/main/java/com/qs/serve/modules/biz/entity/bo/BizUserGroupItemBatchBo.java @@ -0,0 +1,18 @@ +package com.qs.serve.modules.biz.entity.bo; + +import lombok.Data; + +import java.util.List; + +/** + * @author YenHex + * @since 2023/10/25 + */ +@Data +public class BizUserGroupItemBatchBo { + + private Long groupId; + + private List items; + +} diff --git a/src/main/java/com/qs/serve/modules/biz/service/impl/BizUserGroupApplicationService.java b/src/main/java/com/qs/serve/modules/biz/service/impl/BizUserGroupApplicationService.java new file mode 100644 index 00000000..de7f8983 --- /dev/null +++ b/src/main/java/com/qs/serve/modules/biz/service/impl/BizUserGroupApplicationService.java @@ -0,0 +1,92 @@ +package com.qs.serve.modules.biz.service.impl; + +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.qs.serve.common.model.dto.R; +import com.qs.serve.common.util.Assert; +import com.qs.serve.common.util.AuthContextUtils; +import com.qs.serve.modules.biz.consts.GroupDataType; +import com.qs.serve.modules.biz.entity.BizUserGroup; +import com.qs.serve.modules.biz.entity.BizUserGroupItem; +import com.qs.serve.modules.biz.entity.bo.BizUserGroupBatchBo; +import com.qs.serve.modules.biz.service.BizUserGroupItemService; +import com.qs.serve.modules.biz.service.BizUserGroupService; +import com.qs.serve.modules.sys.entity.SysDept; +import com.qs.serve.modules.sys.entity.SysUser; +import com.qs.serve.modules.sys.service.SysDeptService; +import com.qs.serve.modules.sys.service.SysUserService; +import lombok.AllArgsConstructor; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; + +import javax.validation.Valid; +import java.util.ArrayList; +import java.util.List; + +/** + * @author YenHex + * @since 2023/10/25 + */ +@Service +@AllArgsConstructor +public class BizUserGroupApplicationService { + + private BizUserGroupService bizUserGroupService; + private BizUserGroupItemService bizUserGroupItemService; + private SysUserService sysUserService; + private SysDeptService sysDeptService; + + + /** + * 编辑 (场景:同时编辑分组数据) + * @param param + * @return*/ + @Transactional(rollbackFor = Exception.class) + public void editWithItem(BizUserGroupBatchBo param){ + SysUser sysUser = sysUserService.getById(AuthContextUtils.getSysUserId()); + BizUserGroup bizUserGroup = new BizUserGroup(); + if(param.getId()!=null){ + bizUserGroup = bizUserGroupService.getById(param.getId()); + if(!bizUserGroup.getUserId().equals(AuthContextUtils.getSysUserId())){ + Assert.throwEx("无相关数据"); + } + } + if(param.getEditGroupFlag().equals(1)){ + bizUserGroup.setGroupName(param.getGroupName()); + bizUserGroup.setUserId(sysUser.getId()); + bizUserGroup.setUserCode(sysUser.getCode()); + bizUserGroup.setUserName(sysUser.getName()); + bizUserGroup.setScene(param.getScene()); + bizUserGroup.setRemark(param.getRemark()); + bizUserGroupService.saveOrUpdate(bizUserGroup); + } + Long groupId = bizUserGroup.getId(); + //移除历史ITEM + LambdaQueryWrapper itemLqw = new LambdaQueryWrapper<>(); + itemLqw.eq(BizUserGroupItem::getGroupId,groupId); + bizUserGroupItemService.remove(itemLqw); + //保存item + List groupItemList = new ArrayList<>(); + for (BizUserGroupBatchBo.Item item : param.getItems()) { + BizUserGroupItem groupItem = new BizUserGroupItem(); + groupItem.setGroupId(groupId); + groupItem.setTargetType(item.getTargetType()); + groupItem.setTargetId(item.getTargetId()); + if(item.getTargetType().equals(GroupDataType.USER)){ + SysUser user = sysUserService.getById(item.getTargetId()); + groupItem.setTargetName(user.getName()); + groupItem.setTargetCode(user.getCode()); + }else if (item.getTargetType().equals(GroupDataType.DEPT)){ + SysDept dept = sysDeptService.getById(item.getTargetId()); + groupItem.setTargetName(dept.getName()); + groupItem.setTargetCode(dept.getCode()); + }else { + continue; + } + groupItemList.add(groupItem); + } + bizUserGroupItemService.saveBatch(groupItemList); + } + +}