using Microsoft.AspNetCore.Http; using OpenAuth.App.Request; namespace OpenAuth.WebApi.Controllers.ServerController; #region 一、接口入参DTO(所有请求参数,对应Controller接收的参数) /// /// 发起流程请求参数 /// public class InitiateFlowRequestDto { /// /// 流程编码(唯一标识流程模板,如:IllegalConstructionFlow_2026) /// public string FlowCode { get; set; } = string.Empty; /// /// 业务编号(唯一标识该笔业务,如:WJ20260205001、XZ20260205002) /// public string BusinessNo { get; set; } = string.Empty; /// /// 类型 耕地破坏鉴定 /// public int? Type { get; set; } /// /// 流程标题(用于展示,如:"XX区域违法建设认定申请") /// public string Title { get; set; } = string.Empty; /// /// 上传附件列表(业务相关证明材料、表单等) /// public List Attachments { get; set; } = new(); } /// /// 处理工作项请求参数 /// public class HandleWorkitemRequestDto { /// /// 工作项ID(待处理事项的唯一标识,从待办查询接口获取) /// public long WorkitemId { get; set; } /// /// 处理备注(可选,记录处理意见、流转说明等) /// public string? Comment { get; set; } /// /// 审核结果(仅会签节点必填,可选值:Pass(通过)/Reject(驳回)) /// public string? AuditResult { get; set; } } /// /// 分页查询通用请求参数(所有查询接口共用) /// public class PageQueryRequestDto : PageReq { /*/// /// 当前页码(默认1,从1开始计数) /// public int PageIndex { get; set; } = 1; /// /// 每页显示条数(默认10,可自定义,建议不超过50) /// public int PageSize { get; set; } = 10;*/ } #endregion #region 二、接口出参DTO(所有返回结果,对应Controller返回的数据) /// /// 流程查询单条结果返回值(所有查询接口的单条数据格式) /// public class FlowQuerySingleResultDto { public long workitemId { get; set; } /// /// 流程实例ID(唯一标识该流程实例,用于后续操作) /// public long InstanceId { get; set; } /// /// 业务编号(对应发起流程时的BusinessNo) /// public string BusinessNo { get; set; } = string.Empty; /// /// 流程标题(对应发起流程时的Title) /// public string Title { get; set; } = string.Empty; /// /// 当前节点名称(如:"区县提交"、"政策法规科审核"、"汇总归档") /// public string NodeName { get; set; } = string.Empty; /// /// 流程状态(枚举值:Draft(拟办)、Submitted(已提交)、Forwarded(已转发)、Auditing(审核中)、Summarized(已汇总)、Completed(已完成)、Rejected(已驳回)) /// public string Status { get; set; } = string.Empty; /// /// 流程发起时间 /// public DateTime? CreateTime { get; set; } /// /// 发起人姓名 /// public string InitiatorName { get; set; } = string.Empty; public int? Type { get; set; } public string WorkStatus { get; set; } } /// /// 分页查询通用返回值(所有分页查询接口共用,泛型适配不同数据列表) /// /// 数据列表的泛型类型(如:FlowQuerySingleResultDto) public class PageQueryResultDto { /// /// 当前页码(与请求参数的PageIndex对应) /// public int Page { get; set; } /// /// 每页显示条数(与请求参数的PageSize对应) /// public int Limit { get; set; } /// /// 总记录数(符合查询条件的所有数据条数) /// public long Total { get; set; } /// /// 总页数(自动计算:TotalCount / PageSize,向上取整) /// public int TotalPages { get; set; } /// /// 当前页的数据列表 /// public List Items { get; set; } = new List(); } /// /// 接口全局统一响应格式(所有接口返回结果的统一封装,提高前端对接效率) /// /// 响应数据的泛型类型(如:long、bool、PageQueryResultDto public class ApiResponseDto { /// /// 响应状态码(200:操作成功,500:操作失败,400:参数错误/未登录,404:资源不存在) /// public int Code { get; set; } = 200; /// /// 响应消息(成功时返回"操作成功",失败时返回具体错误信息) /// public string Message { get; set; } = "操作成功"; /// /// 响应数据(成功时返回具体业务数据,失败时可返回null或附加说明数据) /// public T? Result { get; set; } /// /// 构建成功响应(静态方法,简化Controller调用) /// /// 成功时的业务数据 /// 自定义成功消息(可选,默认"操作成功") /// 统一响应格式对象 public static ApiResponseDto Success(T? data = default, string message = "操作成功") { return new ApiResponseDto { Code = 200, Message = message, Result = data }; } /// /// 构建失败响应(静态方法,简化Controller调用) /// /// 具体错误消息 /// 失败时的附加数据(可选,默认null) /// 统一响应格式对象 public static ApiResponseDto Fail(string message = "操作失败", T? data = default) { return new ApiResponseDto { Code = 500, Message = message, Result = data }; } /// /// 构建参数错误/未登录响应(静态方法,适配400状态码场景) /// /// 具体错误消息 /// 附加数据(可选) /// 统一响应格式对象 public static ApiResponseDto BadRequest(string message = "参数错误或未登录", T? data = default) { return new ApiResponseDto { Code = 400, Message = message, Result = data }; } } #endregion