部门管理更细和删除接口
This commit is contained in:
@@ -3,6 +3,7 @@ package cn.iocoder.mall.admin.convert;
|
||||
import cn.iocoder.common.framework.vo.PageResult;
|
||||
import cn.iocoder.mall.admin.api.bo.deptment.DeptmentBO;
|
||||
import cn.iocoder.mall.admin.api.dto.depetment.DeptmentAddDTO;
|
||||
import cn.iocoder.mall.admin.api.dto.depetment.DeptmentUpdateDTO;
|
||||
import cn.iocoder.mall.admin.dataobject.DeptmentDO;
|
||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
import org.mapstruct.Mapper;
|
||||
@@ -35,4 +36,7 @@ public interface DeptmentConvert {
|
||||
|
||||
@Mappings({})
|
||||
List<DeptmentBO> convert(List<DeptmentDO> list);
|
||||
|
||||
@Mappings({})
|
||||
DeptmentDO convert(DeptmentUpdateDTO deptmentUpdateDTO);
|
||||
}
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
package cn.iocoder.mall.admin.dao;
|
||||
|
||||
import cn.iocoder.mall.admin.dataobject.DeptmentRoleDO;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
|
||||
/**
|
||||
@@ -12,4 +13,12 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
*/
|
||||
public interface DeptmentRoleMapper extends BaseMapper<DeptmentRoleDO> {
|
||||
|
||||
default int deleteByDeptmentId(Integer deptmentId){
|
||||
return delete(new QueryWrapper<DeptmentRoleDO>().eq("deptment_id", deptmentId));
|
||||
}
|
||||
|
||||
default int deleteByRoleId(Integer roleId){
|
||||
return delete(new QueryWrapper<DeptmentRoleDO>().eq("role_id", roleId));
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
package cn.iocoder.mall.admin.service;
|
||||
|
||||
import cn.iocoder.common.framework.util.ExceptionUtil;
|
||||
import cn.iocoder.common.framework.util.ServiceExceptionUtil;
|
||||
import cn.iocoder.common.framework.vo.PageResult;
|
||||
import cn.iocoder.mall.admin.api.DeptmentService;
|
||||
@@ -8,12 +9,17 @@ import cn.iocoder.mall.admin.api.constant.AdminErrorCodeEnum;
|
||||
import cn.iocoder.mall.admin.api.constant.DeptmentConstants;
|
||||
import cn.iocoder.mall.admin.api.dto.depetment.DeptmentAddDTO;
|
||||
import cn.iocoder.mall.admin.api.dto.depetment.DeptmentPageDTO;
|
||||
import cn.iocoder.mall.admin.api.dto.depetment.DeptmentUpdateDTO;
|
||||
import cn.iocoder.mall.admin.convert.DeptmentConvert;
|
||||
import cn.iocoder.mall.admin.dao.DeptmentMapper;
|
||||
import cn.iocoder.mall.admin.dao.DeptmentRoleMapper;
|
||||
import cn.iocoder.mall.admin.dataobject.DeptmentDO;
|
||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.boot.autoconfigure.kafka.KafkaProperties;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
import org.springframework.util.CollectionUtils;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
@@ -30,6 +36,9 @@ public class DeptmentServiceImpl implements DeptmentService {
|
||||
@Autowired
|
||||
private DeptmentMapper deptmentMapper;
|
||||
|
||||
@Autowired
|
||||
private DeptmentRoleMapper deptmentRoleMapper;
|
||||
|
||||
@Override
|
||||
public DeptmentBO addDeptment(Integer adminId, DeptmentAddDTO deptmentAddDTO) {
|
||||
if (deptmentAddDTO.getPid() != 0 &&
|
||||
@@ -45,6 +54,49 @@ public class DeptmentServiceImpl implements DeptmentService {
|
||||
return DeptmentConvert.INSTANCE.convert(deptmentDO);
|
||||
}
|
||||
|
||||
@Override
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public Boolean deleteDeptment(Integer adminId, Integer deptmentId) {
|
||||
if(deptmentMapper.selectById(deptmentId) == null){
|
||||
throw ServiceExceptionUtil.exception(AdminErrorCodeEnum.DEPT_NOT_EXITS.getCode());
|
||||
}
|
||||
|
||||
if(!CollectionUtils.isEmpty(deptmentMapper.getDeptByPid(deptmentId))){
|
||||
throw ServiceExceptionUtil.exception(AdminErrorCodeEnum.DEPT_EXITS_CHILDREN.getCode());
|
||||
}
|
||||
|
||||
deptmentMapper.deleteById(deptmentId);
|
||||
|
||||
deptmentRoleMapper.deleteByDeptmentId(deptmentId);
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
@Transactional
|
||||
public Boolean updateDeptment(Integer adminId, DeptmentUpdateDTO deptmentUpdateDTO) {
|
||||
//判断需要更新的部门是否存在
|
||||
if(deptmentMapper.selectById(deptmentUpdateDTO.getId()) == null){
|
||||
throw ServiceExceptionUtil.exception(AdminErrorCodeEnum.DEPT_NOT_EXITS.getCode());
|
||||
}
|
||||
|
||||
//不能选择当前部门作为自己的父级部门
|
||||
if(deptmentUpdateDTO.getId().equals(deptmentUpdateDTO.getPid())){
|
||||
throw ServiceExceptionUtil.exception(AdminErrorCodeEnum.DEPT_PARENT_NOT_LEGAL.getCode());
|
||||
}
|
||||
|
||||
if(deptmentUpdateDTO.getPid()!=null &&
|
||||
!DeptmentConstants.PID_ROOT.equals(deptmentUpdateDTO.getPid())
|
||||
&& deptmentMapper.selectById(deptmentUpdateDTO.getPid())==null){
|
||||
throw ServiceExceptionUtil.exception(AdminErrorCodeEnum.DEPT_PARENT_NOT_EXITS.getCode());
|
||||
}
|
||||
|
||||
DeptmentDO deptmentDO = DeptmentConvert.INSTANCE.convert(deptmentUpdateDTO);
|
||||
deptmentMapper.updateById(deptmentDO);
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public PageResult<DeptmentBO> getPageRootDeptment(DeptmentPageDTO deptmentPageDTO) {
|
||||
IPage<DeptmentDO> page = deptmentMapper.selectDeptPage(deptmentPageDTO, DeptmentConstants.PID_ROOT);
|
||||
|
||||
Reference in New Issue
Block a user