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;
///
/// 流程实例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;
}
///
/// 分页查询通用返回值(所有分页查询接口共用,泛型适配不同数据列表)
///
/// 数据列表的泛型类型(如: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