diff --git a/tyr-api/src/main/java/cn/axzo/tyr/client/feign/DataPermissionApi.java b/tyr-api/src/main/java/cn/axzo/tyr/client/feign/DataPermissionApi.java new file mode 100644 index 00000000..d0480ba9 --- /dev/null +++ b/tyr-api/src/main/java/cn/axzo/tyr/client/feign/DataPermissionApi.java @@ -0,0 +1,21 @@ +package cn.axzo.tyr.client.feign; + +import cn.axzo.framework.domain.web.result.ApiResult; +import cn.axzo.tyr.client.model.req.GetWorkflowQueryAndUpdatePermissionReq; +import cn.axzo.tyr.client.model.res.GetWorkflowQueryAndUpdatePermissionRes; +import org.springframework.cloud.openfeign.FeignClient; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; + +/** + * 数据权限API接口 + */ +@FeignClient(name = "tyr", url = "${axzo.service.tyr:http://tyr:8080}") +public interface DataPermissionApi { + + /** 查询审批流表单查看/编辑权限 **/ + @PostMapping(value = "/api/v1/dataPermission/getWorkflowQueryAndUpdatePermission") + ApiResult getWorkflowQueryAndUpdatePermission(@RequestBody @Validated GetWorkflowQueryAndUpdatePermissionReq req); + +} diff --git a/tyr-api/src/main/java/cn/axzo/tyr/client/model/req/GetWorkflowQueryAndUpdatePermissionReq.java b/tyr-api/src/main/java/cn/axzo/tyr/client/model/req/GetWorkflowQueryAndUpdatePermissionReq.java new file mode 100644 index 00000000..d520d936 --- /dev/null +++ b/tyr-api/src/main/java/cn/axzo/tyr/client/model/req/GetWorkflowQueryAndUpdatePermissionReq.java @@ -0,0 +1,30 @@ +package cn.axzo.tyr.client.model.req; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +@Data +@AllArgsConstructor +@NoArgsConstructor +@Builder +public class GetWorkflowQueryAndUpdatePermissionReq { + + + /** + * 登录人身份id + */ + private Long identityId; + + /** + * 登录人身份类型 + */ + private Integer identityType; + + /** + * 工作流实例id + */ + private String processInstanceId; + +} diff --git a/tyr-api/src/main/java/cn/axzo/tyr/client/model/res/GetWorkflowQueryAndUpdatePermissionRes.java b/tyr-api/src/main/java/cn/axzo/tyr/client/model/res/GetWorkflowQueryAndUpdatePermissionRes.java new file mode 100644 index 00000000..42841036 --- /dev/null +++ b/tyr-api/src/main/java/cn/axzo/tyr/client/model/res/GetWorkflowQueryAndUpdatePermissionRes.java @@ -0,0 +1,24 @@ +package cn.axzo.tyr.client.model.res; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +@Data +@AllArgsConstructor +@NoArgsConstructor +@Builder +public class GetWorkflowQueryAndUpdatePermissionRes { + + /** + * 是否可读取(用户在审批流中) + */ + private Boolean isReadable; + + /** + * 是否可编辑(用户是当前审批人) + */ + private Boolean isUpdatable; + +} diff --git a/tyr-server/src/main/java/cn/axzo/tyr/server/controller/dataPermission/DataPermissionController.java b/tyr-server/src/main/java/cn/axzo/tyr/server/controller/dataPermission/DataPermissionController.java new file mode 100644 index 00000000..bba039d4 --- /dev/null +++ b/tyr-server/src/main/java/cn/axzo/tyr/server/controller/dataPermission/DataPermissionController.java @@ -0,0 +1,29 @@ +package cn.axzo.tyr.server.controller.dataPermission; + +import cn.axzo.framework.domain.web.result.ApiResult; +import cn.axzo.tyr.client.feign.DataPermissionApi; +import cn.axzo.tyr.client.model.req.GetWorkflowQueryAndUpdatePermissionReq; +import cn.axzo.tyr.client.model.res.GetWorkflowQueryAndUpdatePermissionRes; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springframework.web.bind.annotation.RestController; + +/** + * 数据权限 + */ +@Slf4j +@RestController +@RequiredArgsConstructor +public class DataPermissionController implements DataPermissionApi { + + @Override + public ApiResult getWorkflowQueryAndUpdatePermission(GetWorkflowQueryAndUpdatePermissionReq req) { + // TODO 工作流提供依赖接口 @cww @wl + // 根据流程实例id、身份id、身份类型查询是否是当前审批人 + // 根据流程实例id、身份id、身份类型查询是否是流程配置的审批人 + return ApiResult.ok(GetWorkflowQueryAndUpdatePermissionRes.builder() + .isReadable(true) + .isUpdatable(true) + .build()); + } +}