package cn.stylefeng.guns.sys.modular.system.service;
import cn.stylefeng.guns.base.pojo.node.LayuiTreeNode;
import cn.stylefeng.guns.base.pojo.node.TreeviewNode;
import cn.stylefeng.guns.base.pojo.node.ZTreeNode;
import cn.stylefeng.guns.base.pojo.page.LayuiPageFactory;
import cn.stylefeng.guns.sys.core.exception.enums.BizExceptionEnum;
import cn.stylefeng.guns.sys.modular.system.entity.Dept;
import cn.stylefeng.guns.sys.modular.system.mapper.DeptMapper;
import cn.stylefeng.roses.core.util.ToolUtil;
import cn.stylefeng.roses.kernel.model.exception.ServiceException;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource;
import java.util.List;
import java.util.Map;
/**
*
* 部门表 服务实现类
*
*
* @author stylefeng
* @since 2018-12-07
*/
@Service
public class DeptService extends ServiceImpl {
@Resource
private DeptMapper deptMapper;
/**
* 新增部门
*
* @author fengshuonan
* @Date 2018/12/23 5:00 PM
*/
@Transactional(rollbackFor = Exception.class)
public void addDept(Dept dept) {
if (ToolUtil.isOneEmpty(dept, dept.getSimpleName(), dept.getFullName(), dept.getPid())) {
throw new ServiceException(BizExceptionEnum.REQUEST_NULL);
}
//完善pids,根据pid拿到pid的pids
this.deptSetPids(dept);
this.save(dept);
}
/**
* 修改部门
*
* @author fengshuonan
* @Date 2018/12/23 5:00 PM
*/
@Transactional(rollbackFor = Exception.class)
public void editDept(Dept dept) {
if (ToolUtil.isOneEmpty(dept, dept.getDeptId(), dept.getSimpleName(), dept.getFullName(), dept.getPid())) {
throw new ServiceException(BizExceptionEnum.REQUEST_NULL);
}
//完善pids,根据pid拿到pid的pids
this.deptSetPids(dept);
this.updateById(dept);
}
/**
* 删除部门
*
* @author fengshuonan
* @Date 2018/12/23 5:16 PM
*/
@Transactional
public void deleteDept(Long deptId) {
Dept dept = deptMapper.selectById(deptId);
//根据like查询删除所有级联的部门
List subDepts = deptMapper.likePids(dept.getDeptId());
for (Dept temp : subDepts) {
this.removeById(temp.getDeptId());
}
this.removeById(dept.getDeptId());
}
/**
* 获取ztree的节点列表
*
* @author fengshuonan
* @Date 2018/12/23 5:16 PM
*/
public List tree() {
return this.baseMapper.tree();
}
/**
* 获取layuiTree的节点列表
*
* @author fengshuonan
* @Date 2019-8-27 15:23
*/
public List layuiTree() {
return this.baseMapper.layuiTree();
}
/**
* 获取ztree的节点列表
*
* @author fengshuonan
* @Date 2018/12/23 5:16 PM
*/
public List treeviewNodes() {
return this.baseMapper.treeviewNodes();
}
/**
* 获取所有部门列表
*
* @author fengshuonan
* @Date 2018/12/23 5:16 PM
*/
public Page