From a820ec5dc1682ac0a31fcbdba3eb4d2c0fe74b64 Mon Sep 17 00:00:00 2001
From: xiangpei <xiangpei@timesnew.cn>
Date: 星期二, 16 七月 2024 17:11:45 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'

---
 src/main/java/com/mindskip/xzs/service/impl/DepartmentServiceImpl.java |   59 ++++++++++++++++++++++++++++++++++++++++++-----------------
 1 files changed, 42 insertions(+), 17 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 c548f23..f723447 100644
--- a/src/main/java/com/mindskip/xzs/service/impl/DepartmentServiceImpl.java
+++ b/src/main/java/com/mindskip/xzs/service/impl/DepartmentServiceImpl.java
@@ -1,11 +1,10 @@
 package com.mindskip.xzs.service.impl;
 
-import com.github.pagehelper.PageHelper;
-import com.github.pagehelper.PageInfo;
 import com.mindskip.xzs.domain.Department;
 import com.mindskip.xzs.domain.enums.DeptAdminEnum;
 import com.mindskip.xzs.domain.vo.BaseSelect;
 import com.mindskip.xzs.domain.vo.CascaderDataVO;
+import com.mindskip.xzs.domain.vo.DepartmentEditVO;
 import com.mindskip.xzs.domain.vo.UpdateDeptAdminVO;
 import com.mindskip.xzs.repository.BaseMapper;
 import com.mindskip.xzs.repository.DepartmentMapper;
@@ -13,8 +12,10 @@
 import com.mindskip.xzs.repository.UserMapper;
 import com.mindskip.xzs.service.DepartmentService;
 import com.mindskip.xzs.utility.ModelMapperSingle;
+import com.mindskip.xzs.utility.TreeUtils;
 import com.mindskip.xzs.viewmodel.admin.department.DepartmentResponseVM;
 import org.modelmapper.ModelMapper;
+import org.springframework.beans.BeanUtils;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 import org.springframework.util.CollectionUtils;
@@ -39,25 +40,20 @@
     }
 
     @Override
-    public Integer add(String name) {
-        Department department = new Department();
-        department.setDeleted("0");
-        department.setName(name);
-        return departmentMapper.add(department);
-    }
-
-    @Override
-    public Integer remove(Integer id) {
-        Department department = new Department();
-        department.setId(id);
-        department.setDeleted("1");
-        return departmentMapper.update(department);
+    public Integer add(Department model) {
+        model.setDeleted("0");
+        if (Objects.nonNull(model.getParentId())) {
+            // 鏌ュ嚭鐖剁骇鐨勫眰绾�
+            List<Integer> fatherList = departmentMapper.getFather(model.getParentId());
+            Collections.reverse(fatherList);
+            model.setLevel(fatherList.size() + 1);
+        }
+        return departmentMapper.add(model);
     }
 
     @Transactional(rollbackFor = Exception.class)
     @Override
     public Integer update(Department department) {
-//        userDepartmentMapper.removeByDepartmentId(department.getId());
         Department entity = departmentMapper.getById(department.getId());
         if (Objects.isNull(entity)) {
             throw new RuntimeException("璇ラ儴闂ㄤ笉瀛樺湪");
@@ -72,8 +68,23 @@
             // 鏍囪瘑閮ㄩ棬绠$悊鍛�
             userMapper.updateDeptAdmin(department.getAdminId(), DeptAdminEnum.YES.getValue(), entity.getId());
         }
+        if (Objects.nonNull(department.getParentId())) {
+            // 鏌ュ嚭鐖剁骇鐨勫眰绾�
+            List<Integer> fatherList = departmentMapper.getFather(department.getParentId());
+            department.setLevel(fatherList.size() + 1);
+        } else {
+            department.setLevel(1);
+        }
         Integer update = departmentMapper.update(department);
         return update;
+    }
+
+    @Override
+    public Integer remove(Integer id) {
+        Department department = new Department();
+        department.setId(id);
+        department.setDeleted("1");
+        return departmentMapper.update(department);
     }
 
     @Override
@@ -112,8 +123,22 @@
     }
 
     @Override
+    public DepartmentEditVO getByIdVO(Integer id) {
+        Department dept = departmentMapper.getById(id);
+        DepartmentEditVO vo = new DepartmentEditVO();
+        BeanUtils.copyProperties(dept, vo);
+        if (Objects.nonNull(dept.getParentId())) {
+            // 鏌ュ嚭瀹屾暣鐨勭埗绾D
+            List<Integer> fatherList = departmentMapper.getFather(dept.getParentId());
+            Collections.reverse(fatherList);
+            vo.setParentIds(fatherList);
+        }
+        return vo;
+    }
+
+    @Override
     public List<Department> gets(List<Integer> deptId) {
-        return departmentMapper.gets(deptId);
+        return TreeUtils.build(departmentMapper.gets(deptId));
     }
 
     @Override

--
Gitblit v1.8.0