using System;
using System.Collections.Generic;
using Top.Api.Util;
using Top.Api;
using Top.Api.DingTalk;
namespace DingTalk.Api.Request
{
///
/// TOP API: dingtalk.oapi.dingpay.bill.batchquery
///
public class OapiDingpayBillBatchqueryRequest : BaseDingTalkRequest
{
///
/// 申请支付者userid
///
public string ApplyPayOperatorUserid { get; set; }
///
/// INCOME收入、EXPENSE支出
///
public string BillCategory { get; set; }
///
/// 业务代码
///
public string BizCode { get; set; }
///
/// 创单者userid
///
public string CreateOperatorUserid { get; set; }
///
/// 扩展属性
///
public string Extension { get; set; }
///
/// 申请付款开始时间
///
public Nullable GmtApplyPayBeginTime { get; set; }
///
/// 申请付款截止时间
///
public Nullable GmtApplyPayEndTime { get; set; }
///
/// 创单开始时间
///
public Nullable GmtCreateBeginTime { get; set; }
///
/// 创单截止时间
///
public Nullable GmtCreateEndTime { get; set; }
///
/// 完成付款开始时间
///
public Nullable GmtPayBeginTime { get; set; }
///
/// 完成付款截止时间
///
public Nullable GmtPayEndTime { get; set; }
///
/// 最大金额(单位:分)
///
public Nullable MaxAmount { get; set; }
///
/// 最小金额(单位:分)
///
public Nullable MinAmount { get; set; }
///
/// 第一次调用传空,后面翻页根据上次response的nextKey回传
///
public string NextKey { get; set; }
///
/// 页码,从1开始
///
public Nullable PageNum { get; set; }
///
/// 每页大小
///
public Nullable PageSize { get; set; }
///
/// 支付渠道列表
///
public string PayChannelList { get; set; }
///
/// 支付渠道方付款者实际出资UID
///
public string PayChannelPayerRealUid { get; set; }
///
/// 收款者corpId或者userId
///
public string PayeeId { get; set; }
///
/// 收款者类型
///
public string PayeeUserType { get; set; }
///
/// 付款者corpId或者userId
///
public string PayerId { get; set; }
///
/// 付款者类型
///
public string PayerUserType { get; set; }
///
/// 收款人账户类型
///
public string ReceiptorTypeList { get; set; }
///
/// 查询的条目数
///
public Nullable Size { get; set; }
///
/// 状态列表
///
public string StatusList { get; set; }
///
/// 中止支付原因
///
public string TerminationReason { get; set; }
///
/// 标题
///
public string Title { get; set; }
#region IDingTalkRequest Members
public override string GetApiName()
{
return "dingtalk.oapi.dingpay.bill.batchquery";
}
public override string GetApiCallType()
{
return DingTalkConstants.CALL_TYPE_OAPI;
}
public override IDictionary GetParameters()
{
TopDictionary parameters = new TopDictionary();
parameters.Add("apply_pay_operator_userid", this.ApplyPayOperatorUserid);
parameters.Add("bill_category", this.BillCategory);
parameters.Add("biz_code", this.BizCode);
parameters.Add("create_operator_userid", this.CreateOperatorUserid);
parameters.Add("extension", this.Extension);
parameters.Add("gmt_apply_pay_begin_time", this.GmtApplyPayBeginTime);
parameters.Add("gmt_apply_pay_end_time", this.GmtApplyPayEndTime);
parameters.Add("gmt_create_begin_time", this.GmtCreateBeginTime);
parameters.Add("gmt_create_end_time", this.GmtCreateEndTime);
parameters.Add("gmt_pay_begin_time", this.GmtPayBeginTime);
parameters.Add("gmt_pay_end_time", this.GmtPayEndTime);
parameters.Add("max_amount", this.MaxAmount);
parameters.Add("min_amount", this.MinAmount);
parameters.Add("next_key", this.NextKey);
parameters.Add("page_num", this.PageNum);
parameters.Add("page_size", this.PageSize);
parameters.Add("pay_channel_list", this.PayChannelList);
parameters.Add("pay_channel_payer_real_uid", this.PayChannelPayerRealUid);
parameters.Add("payee_id", this.PayeeId);
parameters.Add("payee_user_type", this.PayeeUserType);
parameters.Add("payer_id", this.PayerId);
parameters.Add("payer_user_type", this.PayerUserType);
parameters.Add("receiptor_type_list", this.ReceiptorTypeList);
parameters.Add("size", this.Size);
parameters.Add("status_list", this.StatusList);
parameters.Add("termination_reason", this.TerminationReason);
parameters.Add("title", this.Title);
if (this.otherParams != null)
{
parameters.AddAll(this.otherParams);
}
return parameters;
}
public override void Validate()
{
RequestValidator.ValidateMaxListSize("pay_channel_list", this.PayChannelList, 20);
RequestValidator.ValidateMaxListSize("receiptor_type_list", this.ReceiptorTypeList, 20);
RequestValidator.ValidateMaxListSize("status_list", this.StatusList, 20);
}
#endregion
}
}