package com.zt.modules.sys.service; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.zt.common.constant.Constant; import com.zt.common.db.query.QueryFilter; import com.zt.common.exception.RenException; import com.zt.common.service.BaseService; import com.zt.common.utils.TreeUtils; import com.zt.core.context.UserContext; import com.zt.modules.sys.dao.SysJobDao; import com.zt.modules.sys.model.SysJob; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import java.util.List; /** * SYS_JOB * * @author zt generator * @since 1.0.0 2020-06-04 */ @Service public class SysJobService extends BaseService { @Autowired private SysJobUserService sysJobUserService; public List tree(QueryFilter queryFilter) { List list = baseDao.getList(queryFilter.getParams()); return TreeUtils.build(list); } @Transactional(rollbackFor = Exception.class) public void update(SysJob entity) { SysJob tmp = get(entity.getId()); TreeUtils.updateValidate( baseDao.selectList(new QueryWrapper().eq(Constant.TableColumn.IS_DELETE, Constant.Bool.NO) .lambda().eq(SysJob::getTenantId, UserContext.getUser().getTenantId())), entity, tmp); baseDao.updateById(entity); } @Transactional(rollbackFor = Exception.class) public void delete(Long id) { // 判断是否有子职位 if (this.getChildPosts(id).size() > 1) { throw new RenException("请先删除下级岗位"); } // 删除职位时,删除职位用户关系表 sysJobUserService.deleteByJobId(id); // 删除 this.deleteLogic(id); } private List getChildPosts(Long id) { return baseDao.selectList(new QueryWrapper().eq(Constant.TableColumn.IS_DELETE, Constant.Bool.NO) .lambda().eq(SysJob::getPid, id)); } }