package cn.iocoder.yudao.module.system.api.dept; import cn.hutool.core.util.StrUtil; import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum; import cn.iocoder.yudao.framework.common.util.object.BeanUtils; import cn.iocoder.yudao.module.system.api.dept.dto.PostRespDTO; import cn.iocoder.yudao.module.system.controller.admin.dept.vo.post.PostSaveReqVO; import cn.iocoder.yudao.module.system.dal.dataobject.dept.PostDO; import cn.iocoder.yudao.module.system.service.dept.PostService; import org.springframework.stereotype.Service; import jakarta.annotation.Resource; import java.util.Collection; import java.util.List; /** * 岗位 API 实现类 * * @author 超级管理员 */ @Service public class PostApiImpl implements PostApi { @Resource private PostService postService; @Override public void validPostList(Collection ids) { postService.validatePostList(ids); } @Override public List getPostList(Collection ids) { List list = postService.getPostList(ids); return BeanUtils.toBean(list, PostRespDTO.class); } @Override public List getPostList() { List list = postService.getPostList(null, null); return BeanUtils.toBean(list, PostRespDTO.class); } @Override public Long getOrCreatePostByName(String name) { String postName = StrUtil.trim(name); if (StrUtil.isEmpty(postName)) { return null; } List posts = getPostList(); // 1. 已存在:直接复用 for (PostRespDTO post : posts) { if (postName.equals(StrUtil.trim(post.getName()))) { return post.getId(); } } // 2. 不存在:补建。code 必填且需唯一,用时间戳生成 PostSaveReqVO createReqVO = new PostSaveReqVO(); createReqVO.setName(postName); createReqVO.setCode("POST_" + System.currentTimeMillis()); createReqVO.setSort(0); createReqVO.setStatus(CommonStatusEnum.ENABLE.getStatus()); return postService.createPost(createReqVO); } }