From ca65201b191d446e11054199932a7465a3b1955a Mon Sep 17 00:00:00 2001
From: xiangpei <xiangpei@timesnew.cn>
Date: 星期四, 09 五月 2024 15:35:33 +0800
Subject: [PATCH] 部门管理员优化
---
src/main/java/com/mindskip/xzs/service/impl/DepartmentServiceImpl.java | 49 +++++++++++++++++++++++++++++++++++++++++--------
1 files changed, 41 insertions(+), 8 deletions(-)
diff --git a/src/main/java/com/mindskip/xzs/service/impl/DepartmentServiceImpl.java b/src/main/java/com/mindskip/xzs/service/impl/DepartmentServiceImpl.java
index 0c737eb..d2d83e3 100644
--- a/src/main/java/com/mindskip/xzs/service/impl/DepartmentServiceImpl.java
+++ b/src/main/java/com/mindskip/xzs/service/impl/DepartmentServiceImpl.java
@@ -5,20 +5,24 @@
import com.github.pagehelper.PageInfo;
import com.mindskip.xzs.domain.Department;
import com.mindskip.xzs.domain.UserDepartment;
+import com.mindskip.xzs.domain.enums.DeptAdminEnum;
import com.mindskip.xzs.domain.vo.BaseSelect;
import com.mindskip.xzs.domain.vo.UpdateDeptAdminVO;
import com.mindskip.xzs.repository.BaseMapper;
import com.mindskip.xzs.repository.DepartmentMapper;
import com.mindskip.xzs.repository.UserDepartmentMapper;
+import com.mindskip.xzs.repository.UserMapper;
import com.mindskip.xzs.service.DepartmentService;
import com.mindskip.xzs.utility.ModelMapperSingle;
import com.mindskip.xzs.viewmodel.admin.department.DepartmentResponseVM;
import org.modelmapper.ModelMapper;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
+import org.springframework.util.CollectionUtils;
import java.util.List;
import java.util.Objects;
+import java.util.stream.Collectors;
@Service
public class DepartmentServiceImpl extends BaseServiceImpl<Department> implements DepartmentService {
@@ -27,11 +31,13 @@
private final DepartmentMapper departmentMapper;
private final UserDepartmentMapper userDepartmentMapper;
+ private final UserMapper userMapper;
- public DepartmentServiceImpl(BaseMapper<Department> baseMapper, DepartmentMapper departmentMapper, UserDepartmentMapper userDepartmentMapper) {
+ public DepartmentServiceImpl(BaseMapper<Department> baseMapper, DepartmentMapper departmentMapper, UserDepartmentMapper userDepartmentMapper, UserMapper userMapper) {
super(baseMapper);
this.departmentMapper = departmentMapper;
this.userDepartmentMapper = userDepartmentMapper;
+ this.userMapper = userMapper;
}
@Override
@@ -54,7 +60,22 @@
@Override
public Integer update(Department department) {
// userDepartmentMapper.removeByDepartmentId(department.getId());
- return departmentMapper.update(department);
+ Department entity = departmentMapper.getById(department.getId());
+ if (Objects.isNull(entity)) {
+ throw new RuntimeException("璇ラ儴闂ㄤ笉瀛樺湪");
+ }
+ if (! CollectionUtils.isEmpty(department.getAdminId())) {
+ List<BaseSelect> deptUserList = userDepartmentMapper.getDeptUserList(entity.getId());
+ List<Integer> userIds = deptUserList.stream().map(BaseSelect::getId).collect(Collectors.toList());
+ if (! CollectionUtils.isEmpty(userIds)) {
+ // 鍏堟竻闄や箣鍓嶇殑绠$悊鍛樻爣璇�
+ userMapper.clearDeptAdmin(userIds, entity.getId());
+ }
+ // 鏍囪瘑閮ㄩ棬绠$悊鍛�
+ userMapper.updateDeptAdmin(department.getAdminId(), DeptAdminEnum.YES.getValue(), entity.getId());
+ }
+ Integer update = departmentMapper.update(department);
+ return update;
}
@Override
@@ -70,8 +91,11 @@
}
@Override
- public List<Department> gets() {
- return departmentMapper.gets();
+ public List<Department> gets(Integer deptId) {
+ if (deptId == null || deptId == -1) {
+ deptId = null;
+ }
+ return departmentMapper.gets(deptId);
}
@Override
@@ -90,12 +114,21 @@
}
@Override
+ @Transactional(rollbackFor = Exception.class)
public void updateAdmin(UpdateDeptAdminVO form) {
- Department department = departmentMapper.getById(form.getId());
- if (Objects.isNull(department)) {
+ Department entity = departmentMapper.getById(form.getId());
+ if (Objects.isNull(entity)) {
throw new RuntimeException("璇ラ儴闂ㄤ笉瀛樺湪");
}
- department.setAdminId(form.getDeptAdmin());
- departmentMapper.update(department);
+ if (! CollectionUtils.isEmpty(form.getAdminIds())) {
+ List<BaseSelect> deptUserList = userDepartmentMapper.getDeptUserList(entity.getId());
+ List<Integer> userIds = deptUserList.stream().map(BaseSelect::getId).collect(Collectors.toList());
+ if (! CollectionUtils.isEmpty(userIds)) {
+ // 鍏堟竻闄や箣鍓嶇殑绠$悊鍛樻爣璇�
+ userMapper.clearDeptAdmin(userIds, entity.getId());
+ }
+ // 鏍囪瘑閮ㄩ棬绠$悊鍛�
+ userMapper.updateDeptAdmin(form.getAdminIds(), DeptAdminEnum.YES.getValue(), entity.getId());
+ }
}
}
--
Gitblit v1.8.0