xiangpei
2024-07-16 a820ec5dc1682ac0a31fcbdba3eb4d2c0fe74b64
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())) {
            // 查出完整的父级ID
            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