From b762193c62d57a695f3e824cc10c5e698277f225 Mon Sep 17 00:00:00 2001 From: Fu Diwei Date: Tue, 25 Oct 2022 19:12:17 +0800 Subject: [PATCH] =?UTF-8?q?feat(work):=20=E9=9A=8F=E5=AE=98=E6=96=B9?= =?UTF-8?q?=E6=9B=B4=E6=96=B0=20OA=20=E6=B1=87=E6=8A=A5=E7=9B=B8=E5=85=B3?= =?UTF-8?q?=E6=8E=A5=E5=8F=A3=E6=A8=A1=E5=9E=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../CgibinOAJournalGetRecordDetailResponse.cs | 363 +++++++++++++++++- ...gibinOAJournalGetRecordDetailResponse.json | 30 +- 2 files changed, 389 insertions(+), 4 deletions(-) diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinOA/Journal/CgibinOAJournalGetRecordDetailResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinOA/Journal/CgibinOAJournalGetRecordDetailResponse.cs index ee535e8d..08ca4d94 100644 --- a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinOA/Journal/CgibinOAJournalGetRecordDetailResponse.cs +++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinOA/Journal/CgibinOAJournalGetRecordDetailResponse.cs @@ -1,4 +1,4 @@ -namespace SKIT.FlurlHttpClient.Wechat.Work.Models +namespace SKIT.FlurlHttpClient.Wechat.Work.Models { /// /// 表示 [POST] /cgi-bin/oa/journal/get_record_detail 接口的响应。 @@ -21,10 +21,369 @@ public string UserId { get; set; } = default!; } - public class ApplyData : CgibinOAGetApprovalDetailResponse.Types.Approval.Types.ApplyData + public class MultiLangText : CgibinOAGetApprovalDetailResponse.Types.Approval.Types.MultiLangText { } + public class ApplyData + { + public static class Types + { + public class ApplyContent + { + public static class Types + { + public class Value + { + /// + /// 获取或设置 Text 控件文本值。 + /// + [Newtonsoft.Json.JsonProperty("text")] + [System.Text.Json.Serialization.JsonPropertyName("text")] + public string? Text { get; set; } + + /// + /// 获取或设置 Number 控件数值的字符串形式。 + /// + [Newtonsoft.Json.JsonProperty("new_number")] + [System.Text.Json.Serialization.JsonPropertyName("new_number")] + public string? Number { get; set; } + + /// + /// 获取或设置 Money 控件金额的字符串形式。 + /// + [Newtonsoft.Json.JsonProperty("new_money")] + [System.Text.Json.Serialization.JsonPropertyName("new_money")] + public string? Money { get; set; } + + /// + /// 获取或设置 Date 控件值。 + /// + [Newtonsoft.Json.JsonProperty("date")] + [System.Text.Json.Serialization.JsonPropertyName("date")] + public DateControlValue? Date { get; set; } + + /// + /// 获取或设置 Selector 控件值。 + /// + [Newtonsoft.Json.JsonProperty("selector")] + [System.Text.Json.Serialization.JsonPropertyName("selector")] + public SelectorControlValue? Selector { get; set; } + + /// + /// 获取或设置 Contact 控件成员值。 + /// + [Newtonsoft.Json.JsonProperty("members")] + [System.Text.Json.Serialization.JsonPropertyName("members")] + public ContactControlValueForUser[]? ContactMembers { get; set; } + + /// + /// 获取或设置 Contact 控件部门值。 + /// + [Newtonsoft.Json.JsonProperty("departments")] + [System.Text.Json.Serialization.JsonPropertyName("departments")] + public ContactControlValueForDepartment[]? ContactDepartments { get; set; } + + /// + /// 获取或设置 File 控件值。 + /// + [Newtonsoft.Json.JsonProperty("files")] + [System.Text.Json.Serialization.JsonPropertyName("files")] + public FileControlValue[]? Files { get; set; } + + /// + /// 获取或设置 Table 控件值。 + /// + [Newtonsoft.Json.JsonProperty("children")] + [System.Text.Json.Serialization.JsonPropertyName("children")] + public TableControlValue[]? TableChildren { get; set; } + + /// + /// 获取或设置 Attendance 控件值。 + /// + [Newtonsoft.Json.JsonProperty("attendance")] + [System.Text.Json.Serialization.JsonPropertyName("attendance")] + public AttendanceControlValue? Attendance { get; set; } + + /// + /// 获取或设置 Vacation 控件值。 + /// + [Newtonsoft.Json.JsonProperty("vacation")] + [System.Text.Json.Serialization.JsonPropertyName("vacation")] + public VacationControlValue? Vacation { get; set; } + + /// + /// 获取或设置 Location 控件值。 + /// + [Newtonsoft.Json.JsonProperty("location")] + [System.Text.Json.Serialization.JsonPropertyName("location")] + public LocationControlValue? Location { get; set; } + + /// + /// 获取或设置 RelatedApproval 控件值。 + /// + [Newtonsoft.Json.JsonProperty("related_approval")] + [System.Text.Json.Serialization.JsonPropertyName("related_approval")] + public RelatedApprovalControlValue[]? RelatedApprovals { get; set; } + + /// + /// 获取或设置 Formula 控件值。 + /// + [Newtonsoft.Json.JsonProperty("formula")] + [System.Text.Json.Serialization.JsonPropertyName("formula")] + public FormulaControlValue? Formula { get; set; } + + /// + /// 获取或设置 DateRange 控件值。 + /// + [Newtonsoft.Json.JsonProperty("date_range")] + [System.Text.Json.Serialization.JsonPropertyName("date_range")] + public DateRangeControlValue? DateRange { get; set; } + + /// + /// 获取或设置 PunchCorrection 控件值。 + /// + [Newtonsoft.Json.JsonProperty("punch_correction")] + [System.Text.Json.Serialization.JsonPropertyName("punch_correction")] + public CheckinControlValue? Checkin { get; set; } + + /// + /// 获取或设置 SchoolContact 控件值。 + /// + [Newtonsoft.Json.JsonProperty("students")] + [System.Text.Json.Serialization.JsonPropertyName("students")] + public SchoolContactControlValue[]? Students { get; set; } + + /// + /// 获取或设置 SchoolContact 控件值。 + /// + [Newtonsoft.Json.JsonProperty("classes")] + [System.Text.Json.Serialization.JsonPropertyName("classes")] + public SchoolContactControlValue[]? Classes { get; set; } + + /// + /// 获取或设置 Doc 控件值。 + /// + [Newtonsoft.Json.JsonProperty("docs")] + [System.Text.Json.Serialization.JsonPropertyName("docs")] + public DocumentControlValue[]? Documents { get; set; } + + /// + /// 获取或设置 WedriveFile 控件值。 + /// + [Newtonsoft.Json.JsonProperty("wedrive_files")] + [System.Text.Json.Serialization.JsonPropertyName("wedrive_files")] + public WedriveFileControlValue[]? WedriveFiles { get; set; } + } + + public class DateControlValue : CgibinOAGetApprovalDetailResponse.Types.Approval.Types.ApplyData.Types.ApplyContent.Types.DateControlValue + { + } + + public class SelectorControlValue : CgibinOAGetApprovalDetailResponse.Types.Approval.Types.ApplyData.Types.ApplyContent.Types.SelectorControlValue + { + public new static class Types + { + public class Option : CgibinOAGetApprovalDetailResponse.Types.Approval.Types.ApplyData.Types.ApplyContent.Types.SelectorControlValue.Types.Option + { + } + } + + /// + /// 获取或设置选项列表。 + /// + [Newtonsoft.Json.JsonProperty("options")] + [System.Text.Json.Serialization.JsonPropertyName("options")] + public new Types.Option[] OptionList { get; set; } = default!; + } + + public class ContactControlValueForUser : CgibinOAGetApprovalDetailResponse.Types.Approval.Types.ApplyData.Types.ApplyContent.Types.ContactControlValueForUser + { + } + + public class ContactControlValueForDepartment : CgibinOAGetApprovalDetailResponse.Types.Approval.Types.ApplyData.Types.ApplyContent.Types.ContactControlValueForDepartment + { + } + + public class FileControlValue : CgibinOAGetApprovalDetailResponse.Types.Approval.Types.ApplyData.Types.ApplyContent.Types.FileControlValue + { + } + + public class TableControlValue : CgibinOAGetApprovalDetailResponse.Types.Approval.Types.ApplyData.Types.ApplyContent.Types.TableControlValue + { + public new static class Types + { + public class TableDetail : CgibinOAGetApprovalDetailResponse.Types.Approval.Types.ApplyData.Types.ApplyContent.Types.TableControlValue.Types.TableDetail + { + } + } + + /// + /// 获取或设置子明细列表。 + /// + [Newtonsoft.Json.JsonProperty("list")] + [System.Text.Json.Serialization.JsonPropertyName("list")] + public new Types.TableDetail[] TableDetailList { get; set; } = default!; + } + + public class AttendanceControlValue : CgibinOAGetApprovalDetailResponse.Types.Approval.Types.ApplyData.Types.ApplyContent.Types.AttendanceControlValue + { + public new static class Types + { + public class DateRange : CgibinOAGetApprovalDetailResponse.Types.Approval.Types.ApplyData.Types.ApplyContent.Types.AttendanceControlValue.Types.DateRange + { + } + + public class Slice : CgibinOAGetApprovalDetailResponse.Types.Approval.Types.ApplyData.Types.ApplyContent.Types.AttendanceControlValue.Types.Slice + { + public new static class Types + { + public class DayItem : CgibinOAGetApprovalDetailResponse.Types.Approval.Types.ApplyData.Types.ApplyContent.Types.AttendanceControlValue.Types.Slice.Types.DayItem + { + } + } + + /// + /// 获取或设置每一天的分片时长列表。 + /// + [Newtonsoft.Json.JsonProperty("day_items")] + [System.Text.Json.Serialization.JsonPropertyName("day_items")] + public new Types.DayItem[] DayItems { get; set; } = default!; + } + } + + /// + /// 获取或设置时间选择范围。 + /// + [Newtonsoft.Json.JsonProperty("date_range")] + [System.Text.Json.Serialization.JsonPropertyName("date_range")] + public new Types.DateRange DateRange { get; set; } = default!; + + /// + /// 获取或设置时长按天分片信息。 + /// + [Newtonsoft.Json.JsonProperty("slice_info")] + [System.Text.Json.Serialization.JsonPropertyName("slice_info")] + public new Types.Slice? Slice { get; set; } + } + + public class VacationControlValue : CgibinOAGetApprovalDetailResponse.Types.Approval.Types.ApplyData.Types.ApplyContent.Types.VacationControlValue + { + public new static class Types + { + public class Selector : CgibinOAGetApprovalDetailResponse.Types.Approval.Types.ApplyData.Types.ApplyContent.Types.VacationControlValue.Types.Selector + { + } + + public class Attendance : CgibinOAGetApprovalDetailResponse.Types.Approval.Types.ApplyData.Types.ApplyContent.Types.VacationControlValue.Types.Attendance + { + } + } + + /// + /// 获取或设置请假类型选择信息。 + /// + [Newtonsoft.Json.JsonProperty("selector")] + [System.Text.Json.Serialization.JsonPropertyName("selector")] + public new Types.Selector Selector { get; set; } = default!; + + /// + /// 获取或设置假勤内容填写信息。 + /// + [Newtonsoft.Json.JsonProperty("attendance")] + [System.Text.Json.Serialization.JsonPropertyName("attendance")] + public new Types.Attendance Attendance { get; set; } = default!; + } + + public class LocationControlValue : CgibinOAGetApprovalDetailResponse.Types.Approval.Types.ApplyData.Types.ApplyContent.Types.LocationControlValue + { + } + + public class RelatedApprovalControlValue : CgibinOAGetApprovalDetailResponse.Types.Approval.Types.ApplyData.Types.ApplyContent.Types.RelatedApprovalControlValue + { + } + + public class FormulaControlValue : CgibinOAGetApprovalDetailResponse.Types.Approval.Types.ApplyData.Types.ApplyContent.Types.FormulaControlValue + { + } + + public class DateRangeControlValue : CgibinOAGetApprovalDetailResponse.Types.Approval.Types.ApplyData.Types.ApplyContent.Types.DateRangeControlValue + { + } + + public class CheckinControlValue : CgibinOAGetApprovalDetailResponse.Types.Approval.Types.ApplyData.Types.ApplyContent.Types.CheckinControlValue + { + } + + public class SchoolContactControlValue + { + /// + /// 获取或设置学生名。 + /// + [Newtonsoft.Json.JsonProperty("name")] + [System.Text.Json.Serialization.JsonPropertyName("name")] + public string Name { get; set; } = default!; + } + + public class DocumentControlValue + { + /// + /// 获取或设置文档 ID。 + /// + [Newtonsoft.Json.JsonProperty("docid")] + [System.Text.Json.Serialization.JsonPropertyName("docid")] + public string DocumentId { get; set; } = default!; + } + + public class WedriveFileControlValue + { + /// + /// 获取或设置微盘文件 ID。 + /// + [Newtonsoft.Json.JsonProperty("fileid")] + [System.Text.Json.Serialization.JsonPropertyName("fileid")] + public string FileId { get; set; } = default!; + } + } + + /// + /// 获取或设置控件类型。 + /// + [Newtonsoft.Json.JsonProperty("control")] + [System.Text.Json.Serialization.JsonPropertyName("control")] + public string Control { get; set; } = default!; + + /// + /// 获取或设置控件 ID。 + /// + [Newtonsoft.Json.JsonProperty("id")] + [System.Text.Json.Serialization.JsonPropertyName("id")] + public string ControlId { get; set; } = default!; + + /// + /// 获取或设置控件名称。 + /// + [Newtonsoft.Json.JsonProperty("title")] + [System.Text.Json.Serialization.JsonPropertyName("title")] + public MultiLangText[] Title { get; set; } = default!; + + /// + /// 获取或设置控件值。 + /// + [Newtonsoft.Json.JsonProperty("value")] + [System.Text.Json.Serialization.JsonPropertyName("value")] + public Types.Value Value { get; set; } = default!; + } + } + + /// + /// 获取或设置审批申请内容列表。 + /// + [Newtonsoft.Json.JsonProperty("contents")] + [System.Text.Json.Serialization.JsonPropertyName("contents")] + public Types.ApplyContent[] ApplyContentList { get; set; } = default!; + } + public class Comment { public static class Types diff --git a/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinOA/Journal/CgibinOAJournalGetRecordDetailResponse.json b/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinOA/Journal/CgibinOAJournalGetRecordDetailResponse.json index 03050c1a..efdf17e5 100644 --- a/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinOA/Journal/CgibinOAJournalGetRecordDetailResponse.json +++ b/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinOA/Journal/CgibinOAJournalGetRecordDetailResponse.json @@ -1,4 +1,4 @@ -{ +{ "errcode": 0, "errmsg": "ok", "info": { @@ -35,7 +35,33 @@ "departments": [], "files": [], "children": [], - "related_approval": [] + "related_approval": [], + "students": [ + { + "name": "Jackie" + }, + { + "name": "Tom" + } + ], + "classes": [ + { + "name": "1班" + }, + { + "name": "2班" + } + ], + "docs": [ + { + "docid": "xxx_j" + } + ], + "wedrive_files": [ + { + "fileid": "xxxx" + } + ] } } ]