package com.doumee.biz.system.impl; import com.doumee.biz.system.SystemDepartmentBiz; import com.doumee.core.constants.Constants; import com.doumee.core.exception.BusinessException; import com.doumee.core.constants.ResponseStatus; import com.doumee.dao.system.model.SystemDepartment; import com.doumee.dao.system.vo.SystemDepartmentListVO; import com.doumee.service.aware.DepartmentDataPermissionAware; import com.doumee.service.system.SystemDepartmentService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import org.springframework.util.CollectionUtils; import java.util.List; @Service public class SystemDepartmentBizImpl implements SystemDepartmentBiz { @Autowired private SystemDepartmentService systemDepartmentService; @Autowired private DepartmentDataPermissionAware departmentDataPermissionAware; @Override public Integer create(SystemDepartment department) { // 验证部门编码 SystemDepartment queryDto = new SystemDepartment(); queryDto.setCode(department.getCode()); queryDto.setDeleted(Constants.ZERO); SystemDepartment systemDepartment = systemDepartmentService.findOne(queryDto); if (systemDepartment != null) { throw new BusinessException(ResponseStatus.DATA_EXISTS.getCode(), "部门编码已存在"); } return systemDepartmentService.create(department); } @Override public void updateById(SystemDepartment department) { // 验证部门编码 SystemDepartment queryDto = new SystemDepartment(); queryDto.setCode(department.getCode()); queryDto.setDeleted(Constants.ZERO); SystemDepartment systemDepartment = systemDepartmentService.findOne(queryDto); if (systemDepartment != null && !systemDepartment.getId().equals(department.getId())) { throw new BusinessException(ResponseStatus.DATA_EXISTS.getCode(), "部门编码已存在"); } systemDepartmentService.updateById(department); } @Override public List findTree() { return departmentDataPermissionAware.execute(); } @Override public void deleteById(Integer id) { List ids = systemDepartmentService.findChildren(id); ids.add(id); systemDepartmentService.deleteByIdInBatch(ids); } @Override @Transactional public void deleteByIdInBatch(List ids) { if (CollectionUtils.isEmpty(ids)) { return; } for (Integer id : ids) { this.deleteById(id); } } }