package com.iailab.module.system.service.dept; import com.iailab.framework.common.util.collection.CollectionUtils; import com.iailab.module.system.controller.admin.dept.vo.dept.DeptListReqVO; import com.iailab.module.system.controller.admin.dept.vo.dept.DeptSaveReqVO; import com.iailab.module.system.dal.dataobject.dept.DeptDO; import java.util.Collection; import java.util.List; import java.util.Map; import java.util.Set; /** * 部门 Service æŽ¥å£ * * @author iailab */ public interface DeptService { /** * 创建部门 * * @param createReqVO éƒ¨é—¨ä¿¡æ¯ * @return éƒ¨é—¨ç¼–å· */ Long createDept(DeptSaveReqVO createReqVO); /** * 更新部门 * * @param updateReqVO éƒ¨é—¨ä¿¡æ¯ */ void updateDept(DeptSaveReqVO updateReqVO); /** * åˆ é™¤éƒ¨é—¨ * * @param id éƒ¨é—¨ç¼–å· */ void deleteDept(Long id); /** * èŽ·å¾—éƒ¨é—¨ä¿¡æ¯ * * @param id éƒ¨é—¨ç¼–å· * @return éƒ¨é—¨ä¿¡æ¯ */ DeptDO getDept(Long id); /** * 获得部门信æ¯æ•°ç»„ * * @param ids 部门编å·æ•°ç»„ * @return 部门信æ¯æ•°ç»„ */ List<DeptDO> getDeptList(Collection<Long> ids); /** * ç›é€‰éƒ¨é—¨åˆ—表 * * @param reqVO ç›é€‰æ¡ä»¶è¯·æ±‚ VO * @return 部门列表 */ List<DeptDO> getDeptList(DeptListReqVO reqVO); /** * 获得指定编å·çš„部门 Map * * @param ids 部门编å·æ•°ç»„ * @return 部门 Map */ default Map<Long, DeptDO> getDeptMap(Collection<Long> ids) { List<DeptDO> list = getDeptList(ids); return CollectionUtils.convertMap(list, DeptDO::getId); } /** * 获得指定部门的所有å部门 * * @param id éƒ¨é—¨ç¼–å· * @return å部门列表 */ List<DeptDO> getChildDeptList(Long id); /** * 获得所有å部门,从缓å˜ä¸ * * @param id çˆ¶éƒ¨é—¨ç¼–å· * @return å部门列表 */ Set<Long> getChildDeptIdListFromCache(Long id); /** * æ ¡éªŒéƒ¨é—¨ä»¬æ˜¯å¦æœ‰æ•ˆã€‚å¦‚ä¸‹æƒ…å†µï¼Œè§†ä¸ºæ— æ•ˆï¼š * 1. 部门编å·ä¸å˜åœ¨ * 2. 部门被ç¦ç”¨ * * @param ids 角色编å·æ•°ç»„ */ void validateDeptList(Collection<Long> ids); }