From 3ec909b27b3eba956aa9d00cc7a94c179bd04bbf Mon Sep 17 00:00:00 2001
From: 龚焕茏 <2842157468@qq.com>
Date: 星期三, 03 七月 2024 18:29:31 +0800
Subject: [PATCH] feat:新增随机时间题目配置

---
 src/main/java/com/mindskip/xzs/service/impl/DepartmentServiceImpl.java |   52 ++++++++++++++++++++++++++++++++++++++++++----------
 1 files changed, 42 insertions(+), 10 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..503fd0b 100644
--- a/src/main/java/com/mindskip/xzs/service/impl/DepartmentServiceImpl.java
+++ b/src/main/java/com/mindskip/xzs/service/impl/DepartmentServiceImpl.java
@@ -1,24 +1,26 @@
 package com.mindskip.xzs.service.impl;
 
-import com.baomidou.mybatisplus.extension.conditions.query.LambdaQueryChainWrapper;
 import com.github.pagehelper.PageHelper;
 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 +29,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 +58,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 +89,8 @@
     }
 
     @Override
-    public List<Department> gets() {
-        return departmentMapper.gets();
+    public List<Department> gets(List<Integer> deptId) {
+        return departmentMapper.gets(deptId);
     }
 
     @Override
@@ -90,12 +109,25 @@
     }
 
     @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());
+        }
+        // 淇敼琚�夋嫨鐨勭敤鎴蜂负閮ㄩ棬绠$悊鍛�
+        userMapper.updateUserDeptAdmin(form);
+        // 淇敼娌¤閫夋嫨鐨勭敤鎴峰苟涓斾笉鏄埆鐨勯儴闂ㄧ鐞嗗憳鐨勭敤鎴疯鑹蹭负1
+        userMapper.cancelUserDeptAdmin(form);
     }
 }

--
Gitblit v1.8.0