接口调用返回包含子对象示例

json对象:

 public class AttendanceDataRequest
    {
        public PageData page { get; set; } = new PageData();
        public List<SearchData> filters { get; set; } = new List<SearchData>();
    }

 public class PageData
    {
        public int index { get; set; } = 100;

        public int size { get; set; } = 1;
    }
    public class SearchData
    {
        public string field { get; set; }
        public string value { get; set; }
    }
    public class GetPageData
    {
        public int index { get; set; }//页码

        public int size { get; set; }//每页显示记录条数
        public int count { get; set; }//共多少页
    }

返回对象类:

    public class AttendanceDataResponse
    {
        public int code { get; set; }
        public string msg { get; set; }
        public int recordCount { get; set; }//总记录数
        public GetPageData page { get; set; }
        public List<AttendanceDataDetailResponse> data { get; set; }
    }

  public class AttendanceDataDetailResponse
    {
        public string empCode { get; set; }//人员编号
        public string empId { get; set; }//人员id
        public string checkTime { get; set; }//打卡时间
        public string checkAddr { get; set; }//打卡地址
    }

调用接口方法:

 public static string DSKQDataSync(AttendanceDataRequest model)
        {
            string msg = "";
            int totalCount = 0;
            int total = 0;
            string dataJson = string.Empty;
            try
            {
                model.page.size = 2000;
                totalCount = model.page.size;
                do
                {
                    dataJson = Newtonsoft.Json.JsonConvert.SerializeObject(model);
                    string url = HttpApiRequest.GetDataByCode("DaShiSyncDomain");
                    var res = HttpApiRequest.Post<AttendanceDataResponse>(url+DaShiDataApi.CheckRecordsSearch, dataJson);
                    if (res.code == 0)
                    {
                        totalCount = res.data.Count;//总条数
                        Dictionary<string, int> dicUser = GetUserInfo();
                        int i = 0;
                        foreach (var item in res.data)
                        {
                            string empId = item.empCode;
                            int userId = dicUser.ContainsKey(empId) ? dicUser[empId].Parse<int>() : 0;
                            if (userId == 0) continue;
                            DateTime wkTime = item.checkTime.Parse<DateTime>();
                            int ex = provider.Query<HR_KQ_T_Origin>().Where(o => o.FK_UserID == userId && o.dWKTime == wkTime).Count();
                            if (ex > 0) continue;
                            HR_KQ_T_Origin origin = new HR_KQ_T_Origin();
                            origin.FK_MachineID = "-1";
                            origin.FK_WorkNo = empId;
                            origin.dWKTime = wkTime;
                            origin.sUserHostAddress = item.checkAddr;
                            origin.FK_UserID = userId;
                            origin.bNeedAnalysis = false;
                            provider.Query<HR_KQ_T_Origin>().Insert(origin);
                            i++;
                        }
                        total += i;
                    }
                    else
                    {
                        msg = string.Format("考勤数据同步失败参数:{0};错误消息:{1}", dataJson, res.msg);
                        addLog(msg, 0);
                    }
                    model.page.index++;
                } while (model.page.size <= totalCount);
                if (total > 0)
                {
                    addLog(string.Format("考勤数据同步成功:同步考勤记录{0}条。", total), 0);
                }
                msg = "考勤数据同步成功。";
            }
            catch (Exception ex)
            {
                msg = "考勤数据同步异常,参数:"+dataJson+"错误信息:" + ex.Message;
                addLog(msg, 0);
            }
            return msg;
        }

接口调用处理:

AttendanceDataRequest data = new AttendanceDataRequest();
                data.page.index = 1;
                data.page.size = 2000;
                List<SearchData> filters = new List<SearchData>();
                SearchData searchData = new SearchData();
                searchData.field = "minCheckTime";
                searchData.value = FormatDate(dFDate.ToString("yyyy-MM-dd HH:mm:ss"));
                filters.Add(searchData);
                searchData = new SearchData();
                searchData.field = "maxCheckTime";
                searchData.value = FormatDate(dTDate.ToString("yyyy-MM-dd HH:mm:ss"));
                filters.Add(searchData);
                data.filters = filters;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

luohuajiexiejuan

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值