diff --git a/yudao-module-system/yudao-module-system-api/src/main/java/cn/iocoder/yudao/module/system/api/position/PositionApi.java b/yudao-module-system/yudao-module-system-api/src/main/java/cn/iocoder/yudao/module/system/api/position/PositionApi.java new file mode 100644 index 00000000..97472d10 --- /dev/null +++ b/yudao-module-system/yudao-module-system-api/src/main/java/cn/iocoder/yudao/module/system/api/position/PositionApi.java @@ -0,0 +1,23 @@ +package cn.iocoder.yudao.module.system.api.position; + +import cn.iocoder.yudao.framework.common.pojo.CommonResult; +import cn.iocoder.yudao.module.system.api.position.dto.PositionDTO; +import cn.iocoder.yudao.module.system.enums.ApiConstants; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.Parameter; +import io.swagger.v3.oas.annotations.tags.Tag; +import org.springframework.cloud.openfeign.FeignClient; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestParam; + +@FeignClient(name = ApiConstants.NAME) // TODO 芋艿:fallbackFactory = +@Tag(name = "RPC 服务 - 岗位") +public interface PositionApi { + + String PREFIX = ApiConstants.PREFIX + "/position"; + + @GetMapping(PREFIX + "/get") + @Operation(summary = "获得部门信息") + @Parameter(name = "id", description = "岗位编号", example = "1024", required = true) + CommonResult getPosition(@RequestParam("id") Long id); +} diff --git a/yudao-module-system/yudao-module-system-api/src/main/java/cn/iocoder/yudao/module/system/api/position/dto/PositionDTO.java b/yudao-module-system/yudao-module-system-api/src/main/java/cn/iocoder/yudao/module/system/api/position/dto/PositionDTO.java new file mode 100644 index 00000000..4db84719 --- /dev/null +++ b/yudao-module-system/yudao-module-system-api/src/main/java/cn/iocoder/yudao/module/system/api/position/dto/PositionDTO.java @@ -0,0 +1,26 @@ +package cn.iocoder.yudao.module.system.api.position.dto; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +import java.time.LocalDateTime; + +@Schema(description = "RPC 服务 - 岗位 Response DTO") +@Data +public class PositionDTO { + + @Schema(description = "岗位ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") + private Long id; + + @Schema(description = "岗位名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "JAVA开发") + private String name; + + @Schema(description = "状态(0正常 1停用)", requiredMode = Schema.RequiredMode.REQUIRED, example = "0") + private Integer status; + + @Schema(description = "备注", example = "你说的对") + private String remark; + + @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED) + private LocalDateTime createTime; +} diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/api/position/PositionApiImpl.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/api/position/PositionApiImpl.java new file mode 100644 index 00000000..01d218e6 --- /dev/null +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/api/position/PositionApiImpl.java @@ -0,0 +1,27 @@ +package cn.iocoder.yudao.module.system.api.position; + +import cn.iocoder.yudao.framework.common.pojo.CommonResult; +import cn.iocoder.yudao.framework.common.util.object.BeanUtils; +import cn.iocoder.yudao.module.system.api.position.dto.PositionDTO; +import cn.iocoder.yudao.module.system.dal.dataobject.position.PositionDO; +import cn.iocoder.yudao.module.system.service.position.PositionService; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.RestController; + +import javax.annotation.Resource; + +import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success; + +@RestController // 提供 RESTful API 接口,给 Feign 调用 +@Validated +public class PositionApiImpl implements PositionApi { + + @Resource + private PositionService positionService; + + @Override + public CommonResult getPosition(Long id) { + PositionDO positionDO = positionService.getPosition(id); + return success(BeanUtils.toBean(positionDO, PositionDTO.class)); + } +}