移动系统liao
4 天以前 0a4e5fc3bdfca328feb574f1564011abf2a35b76
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
// Admin.NET 项目的版权、商标、专利和其他相关权利均受相应法律法规的保护。使用本项目应遵守相关法律法规和许可证的要求。
//
// 本项目主要遵循 MIT 许可证和 Apache 许可证(版本 2.0)进行分发和使用。许可证位于源代码树根目录中的 LICENSE-MIT 和 LICENSE-APACHE 文件。
//
// 不得利用本项目从事危害国家安全、扰乱社会秩序、侵犯他人合法权益等法律法规禁止的活动!任何基于本项目二次开发而产生的一切法律纠纷和责任,我们不承担任何责任!
 
namespace Admin.NET.Plugin.DingTalk;
 
public class DingTalkCreateAndDeliverInput
{
    /// <summary>
    /// 卡片创建者的userId
    /// </summary>
    public string? userId { get; set; }
 
    /// <summary>
    /// 卡片内容模板ID
    /// </summary>
    [Required]
    public string cardTemplateId { get; set; }
 
    /// <summary>
    /// 外部卡片实例Id
    /// </summary>
    [Required]
    public string outTrackId { get; set; }
 
    /// <summary>
    /// 卡片回调的类型:STREAM:stream模式 HTTP:http模式
    /// </summary>
    public string? callbackType { get; set; }
 
    /// <summary>
    /// 卡片回调HTTP模式时的路由 Key,用于查询注册的 callbackUrl。
    /// </summary>
    public string? callbackRouteKey { get; set; }
 
    /// <summary>
    /// 卡片数据
    /// </summary>
    [Required]
    public DingTalk_CardData cardData { get; set; }
 
    /// <summary>
    /// 用户的私有数据
    /// </summary>
    public PrivateData? crivateData { get; set; }
 
    /// <summary>
    /// 动态数据源配置
    /// </summary>
    public OpenDynamicDataConfig? openDynamicDataConfig { get; set; }
 
    /// <summary>
    /// IM单聊酷应用场域信息
    /// </summary>
    public OpenSpaceModel? imSingleOpenSpaceModel { get; set; }
 
    /// <summary>
    /// IM群聊场域信息。
    /// </summary>
    public OpenSpaceModel? imGroupOpenSpaceModel { get; set; }
 
    /// <summary>
    /// IM机器人单聊场域信息。
    /// </summary>
    public OpenSpaceModel? imRobotOpenSpaceModel { get; set; }
 
    /// <summary>
    /// 协作场域信息
    /// </summary>
    public OpenSpaceModel? coFeedOpenSpaceModel { get; set; }
 
    /// <summary>
    /// 吊顶场域信息
    /// </summary>
    public OpenSpaceModel? topOpenSpaceModel { get; set; }
 
    /// <summary>
    /// 表示场域及其场域id
    /// </summary>
    /// <remarks>
    /// 其格式为dtv1.card//spaceType1.spaceId1;spaceType2.spaceId2_1;spaceType2.spaceId2_2;spaceType3.spaceId3
    /// </remarks>
    [Required]
    public string openSpaceId { get; set; }
 
    /// <summary>
    /// 单聊酷应用场域投放参数。
    /// </summary>
    public DingTalkOpenDeliverModel? imSingleOpenDeliverModel { get; set; }
 
    /// <summary>
    /// 群聊投放参数。
    /// </summary>
    public DingTalkOpenDeliverModel? imGroupOpenDeliverModel { get; set; }
 
    /// <summary>
    /// IM机器人单聊投放参数。
    /// </summary>
    public DingTalkOpenDeliverModel? imRobotOpenDeliverModel { get; set; }
 
    /// <summary>
    /// 吊顶投放参数。
    /// </summary>
    public DingTalkOpenDeliverModel? topOpenDeliverModel { get; set; }
 
    /// <summary>
    /// 协作投放参数。
    /// </summary>
    public DingTalkOpenDeliverModel? coFeedOpenDeliverModel { get; set; }
 
    /// <summary>
    /// 文档投放参数
    /// </summary>
    public DingTalkOpenDeliverModel? docOpenDeliverModel { get; set; }
 
    /// <summary>
    /// 用户userId类型:1(默认):userId模式 2:unionId模式
    /// </summary>
    public int UserIdType { get; set; }
}
 
public class DingTalk_CardData
{
    public DingTalk_CardParamMap cardParamMap { get; set; }
}
 
/// <summary>
/// 卡片模板内容替换参数
/// </summary>
public class DingTalk_CardParamMap
{
    /// <summary>
    /// 片模板内容替换参数
    /// </summary>
    [Newtonsoft.Json.JsonProperty("sys_full_json_obj")]
    [System.Text.Json.Serialization.JsonPropertyName("sys_full_json_obj")]
    public string sysFullJsonObj { get; set; }
}
 
public class PrivateData
{
    public Dictionary<string, DingTalk_CardParamMap> key { get; set; } = new Dictionary<string, DingTalk_CardParamMap>();
}
 
public class OpenDynamicDataConfig
{
    /// <summary>
    /// 动态数据源配置列表。
    /// </summary>
    public List<DynamicDataSourceConfig>? dynamicDataSourceConfigs { get; set; }
}
 
public class DynamicDataSourceConfig
{
    /// <summary>
    /// 数据源的唯一 ID, 调用方指定。
    /// </summary>
    public string? dynamicDataSourceId { get; set; }
 
    /// <summary>
    /// 回调数据源时回传的固定参数。 示例
    /// </summary>
    public Dictionary<string, string>? constParams { get; set; }
 
    /// <summary>
    /// 数据源拉取配置。
    /// </summary>
    public PullConfig? pullConfig { get; set; }
}
 
public class PullConfig
{
    /// <summary>
    /// 拉取策略,可选值:NONE:不拉取,无动态数据  INTERVAL:间隔拉取ONCE:只拉取一次
    /// </summary>
    public string pullStrategy { get; set; }
 
    /// <summary>
    /// 拉取的间隔时间。
    /// </summary>
    public int interval { get; set; }
 
    /// <summary>
    /// 拉取的间隔时间的单位, 可选值:SECONDS:秒 MINUTES:分钟 HOURS:小时 DAYS:天
    /// </summary>
    public string timeUnit { get; set; }
}
 
public class OpenSpaceModel
{
    /// <summary>
    /// 吊顶场域属性,通过增加spaeType使卡片支持吊顶场域。
    /// </summary>
    public string? spaceType { get; set; }
 
    /// <summary>
    /// 卡片标题。
    /// </summary>
    public string? title { get; set; }
 
    /// <summary>
    /// 酷应用编码。
    /// </summary>
    public string? coolAppCode { get; set; }
 
    /// <summary>
    /// 是否支持转发, 默认false。
    /// </summary>
    public bool? supportForward { get; set; }
 
    /// <summary>
    /// 支持国际化的LastMessage。
    /// </summary>
    public Dictionary<string, string>? lastMessageI18n { get; set; }
 
    /// <summary>
    /// 支持卡片消息可被搜索字段。
    /// </summary>
    public SearchSupport? searchSupport { get; set; }
 
    /// <summary>
    /// 通知信息。
    /// </summary>
    public Notification? notification { get; set; }
}
 
public class SearchSupport
{
    /// <summary>
    /// 类型的icon,供搜索展示使用。
    /// </summary>
    public string searchIcon { get; set; }
 
    /// <summary>
    /// 卡片类型名。
    /// </summary>
    public string searchTypeName { get; set; }
 
    /// <summary>
    /// 供消息展示与搜索的字段。
    /// </summary>
    public string searchDesc { get; set; }
}
 
public class Notification
{
    /// <summary>
    /// 供消息展示与搜索的字段。
    /// </summary>
    public string alertContent { get; set; }
 
    /// <summary>
    /// 是否关闭推送通知:true:关闭 false:不关闭
    /// </summary>
    public bool notificationOff { get; set; }
}
 
public class DingTalkOpenDeliverModel
{
    /// <summary>
    /// 用于发送卡片的机器人编码。
    /// </summary>
    public string robotCode { get; set; }
 
    /// <summary>
    /// 消息@人。格式:{"key":"value"}。key:用户的userId value:用户名
    /// </summary>
    public Dictionary<string, string> atUserIds { get; set; }
 
    /// <summary>
    /// 指定接收人的userId。
    /// </summary>
    public List<string> recipients { get; set; }
 
    /// <summary>
    /// 扩展字段,示例如下:{"key":"value"}
    /// </summary>
    public Dictionary<string, string> extension { get; set; }
 
    /// <summary>
    /// IM机器人单聊若未设置其他投放属性,需设置spaeType为IM_ROBOT。
    /// </summary>
    public string spaceType { get; set; }
 
    /// <summary>
    /// 过期时间戳。若使用topOpenDeliverModel对象,则该字段必填。
    /// </summary>
    public long expiredTimeMillis { get; set; }
 
    /// <summary>
    /// 可以查看该吊顶卡片的userId。
    /// </summary>
    public List<string> userIds { get; set; }
 
    /// <summary>
    /// 可以查看该吊顶卡片的设备:android|ios|win|mac。
    /// </summary>
    public List<string> platforms { get; set; }
 
    /// <summary>
    /// 业务标识。
    /// </summary>
    public string bizTag { get; set; }
 
    /// <summary>
    /// 协作场域下的排序时间。
    /// </summary>
    public long gmtTimeLine { get; set; }
 
    /// <summary>
    /// 员工userId信息
    /// </summary>
    public string userId { get; set; }
}