admin
2023-10-18 e80a22d84d2e1321843b4e18d99d9a9fc29d315e
RiskControl.NewService/Service/TianYanChaService.cs
@@ -20,6 +20,7 @@
    {
        private TianYanChaApi _api = new TianYanChaApi();
        private int _expiredDays;
        private int _expiredDays2;
        private int _expiredDaysSeniorExecutive = 30;//天眼查获取董监高默认30天
        private int _expiredDaysSlow = 180;//天眼查获取其他信息180天
@@ -28,6 +29,7 @@
            //if (!int.TryParse(ConfigurationManager.AppSettings["TianyanchaExpiredDays"], out _expiredDays))
            //    _expiredDays = 10;
            int.TryParse(ConfigurationManager.AppSettings["TianyanchaExpiredDays"], out _expiredDays);
            int.TryParse(ConfigurationManager.AppSettings["TianyanchaExpiredDays2"], out _expiredDays2);
        }
        /// <summary>
@@ -514,7 +516,7 @@
                    .FirstAsync();
                if (createTime.AddDays(_expiredDaysSlow) >= DateTime.Now)
                {
                    var dbmodel = await RiskControlRRDb.Queryable<TycShareStructure>().Where(a => a.CompanyName == name).OrderBy(a=>a.PubDate).ToListAsync();
                    var dbmodel = await RiskControlRRDb.Queryable<TycShareStructure>().Where(a => a.CompanyName == name).OrderBy(a=>a.PubDate, OrderByType.Desc).ToListAsync();
                    result.Data = dbmodel;
                    return result;
                }
@@ -552,7 +554,7 @@
                if (_expiredDaysSlow > 0) await RiskControlRRDb.Insertable(addList).ExecuteCommandAsync();
                result.Data = addList;
                result.Data = addList.OrderByDescending(a => a.PubDate).ToList(); ;
                return result;
            }
            else
@@ -3060,12 +3062,12 @@
        public async Task<QccMsgData> GetActualControl(string name)
        {
            var result = new QccMsgData();
            if (_expiredDays > 0)
            if (_expiredDays2 > 0)
            {
                // 1.数据库是存在
                var createTime = await RiskControlRRDb.Queryable<TycActualControlReturn>().Where(a => a.CompanyName == name).OrderBy(a => a.CreateTime, OrderByType.Desc).Select(a => a.CreateTime)
                    .FirstAsync();
                if (createTime.AddDays(_expiredDays) >= DateTime.Now)
                if (createTime.AddDays(_expiredDays2) >= DateTime.Now)
                {
                    var dbmodel = await RiskControlRRDb.Queryable<TycActualControlReturn>().Where(a => a.CompanyName == name).ToListAsync();
                    result.Data = dbmodel;
@@ -3080,7 +3082,7 @@
                var r = qccResult;
                r.CreateTime = DateTime.Now;
                r.CompanyName = name;
                if (_expiredDays > 0) await RiskControlRRDb.Insertable((TycActualControlReturn)r).ExecuteCommandAsync();
                if (_expiredDays2 > 0) await RiskControlRRDb.Insertable((TycActualControlReturn)r).ExecuteCommandAsync();
                result.Data = r;
                return result;
            }
@@ -3420,5 +3422,527 @@
            }
        }
        public async Task<QccMsgData> GetSecurity(string name)
        {
            var result = new QccMsgData();
            if (_expiredDays > 0)
            {
                var createTime = await RiskControlRRDb.Queryable<TycSecurityReturn>().Where(a => a.CompanyName == name).OrderBy(a => a.CreateTime, OrderByType.Desc).Select(a => a.CreateTime)
                    .FirstAsync();
                if (createTime.AddDays(_expiredDays) >= DateTime.Now)
                {
                    var dbmodel = await RiskControlRRDb.Queryable<TycSecurityReturn>().Where(a => a.CompanyName == name).FirstAsync();
                    result.Data = dbmodel;
                    return result;
                }
                await RiskControlRRDb.Deleteable<TycSecurityReturn>().Where(a => a.CompanyName == name).ExecuteCommandAsync();
            }
            var qccResult = _api.GetSecurity(new TycSecurityQuery() { keyword = name });
            if (qccResult.Error_code == "0")
            {
                var dblist = qccResult.Result;
                dblist.CreateTime = DateTime.Now;
                if (_expiredDays > 0) await RiskControlRRDb.Insertable(dblist).ExecuteCommandAsync();
                result.Data = dblist;
                return result;
            }
            else
            {
                result.Message = qccResult.Reason;
                return result;
            }
        }
        public async Task<QccMsgData> GetGuarantees(string name, int pageIndex = 1, int pageSize = 10)
        {
            var result = new QccMsgData();
            var resultPage = new Page<TycGuaranteesReturnItem>();
            if (_expiredDays > 0)
            {
                var createTime = await RiskControlRRDb.Queryable<TycGuaranteesReturnItem>().Where(a => a.CompanyName == name).OrderBy(a => a.CreateTime, OrderByType.Desc).Select(a => a.CreateTime).FirstAsync();
                if (createTime.AddDays(_expiredDays) >= DateTime.Now)
                {
                    var query = RiskControlRRDb.Queryable<TycGuaranteesReturnItem>().Where(a => a.CompanyName == name).Where(a => a.ItemIndex > (pageIndex - 1) * pageSize && a.ItemIndex <= pageIndex * pageSize);
                    var dbcount = await query.CountAsync();
                    var totalcount = await RiskControlRRDb.Queryable<TycGuaranteesReturnItem>().Where(a => a.CompanyName == name).OrderBy(a => a.CreateTime, OrderByType.Desc).Select(a => a.TotalItems).FirstAsync();
                    if (dbcount == pageSize || dbcount == totalcount || dbcount == totalcount - pageSize * (pageIndex - 1))
                    {
                        var dbList = await RiskControlRRDb.Queryable<TycGuaranteesReturnItem>().Where(a => a.CompanyName == name).Where(a => a.ItemIndex > (pageIndex - 1) * pageSize && a.ItemIndex <= pageIndex * pageSize).OrderBy(a => a.ItemIndex).ToListAsync();
                        resultPage.CurrentPage = pageIndex;
                        resultPage.PageSize = pageSize;
                        resultPage.TotalItems = totalcount;
                        resultPage.Items = dbList;
                        result.Data = resultPage;
                        return result;
                    }
                    var dbTotalPages = totalcount != 0
                    ? (totalcount % pageSize) == 0 ? (totalcount / pageSize) : (totalcount / pageSize) + 1
                    : 0;
                    if (dbTotalPages < pageIndex)
                    {
                        result.Message = "查询无结果";
                        return result;
                    }
                }
                await RiskControlRRDb.Deleteable<TycGuaranteesReturnItem>().Where(a => a.CompanyName == name).ExecuteCommandAsync();
            }
            var qccResult = _api.GetGuarantees(new TycGuaranteesQuery() { keyword = name, pageNum = pageIndex, pageSize = pageSize });
            if (qccResult.Error_code == "0")
            {
                var addList = new List<TycGuaranteesReturnItem>();
                for (var i = 0; i < qccResult.Result.items.Count; i++)
                {
                    var item = qccResult.Result.items[i];
                    item.CreateTime = DateTime.Now;
                    item.CompanyName = name;
                    item.ItemIndex = (pageIndex - 1) * pageSize + i + 1;
                    item.TotalItems = qccResult.Result.total;
                    addList.Add(item);
                }
                if (_expiredDays > 0) await RiskControlRRDb.Insertable(addList).ExecuteCommandAsync();
                resultPage.CurrentPage = pageIndex;
                resultPage.PageSize = pageSize;
                resultPage.TotalItems = qccResult.Result.total;
                resultPage.Items = addList;
                result.Data = resultPage;
                return result;
            }
            else
            {
                result.Message = qccResult.Reason;
                return result;
            }
        }
        public async Task<QccMsgData> GetStockIllegal(string name, int pageIndex = 1, int pageSize = 10)
        {
            var result = new QccMsgData();
            var resultPage = new Page<TycStockIllegalReturnItem>();
            if (_expiredDays > 0)
            {
                var createTime = await RiskControlRRDb.Queryable<TycStockIllegalReturnItem>().Where(a => a.CompanyName == name).OrderBy(a => a.CreateTime, OrderByType.Desc).Select(a => a.CreateTime).FirstAsync();
                if (createTime.AddDays(_expiredDays) >= DateTime.Now)
                {
                    var query = RiskControlRRDb.Queryable<TycStockIllegalReturnItem>().Where(a => a.CompanyName == name).Where(a => a.ItemIndex > (pageIndex - 1) * pageSize && a.ItemIndex <= pageIndex * pageSize);
                    var dbcount = await query.CountAsync();
                    var totalcount = await RiskControlRRDb.Queryable<TycStockIllegalReturnItem>().Where(a => a.CompanyName == name).OrderBy(a => a.CreateTime, OrderByType.Desc).Select(a => a.TotalItems).FirstAsync();
                    if (dbcount == pageSize || dbcount == totalcount || dbcount == totalcount - pageSize * (pageIndex - 1))
                    {
                        var dbList = await RiskControlRRDb.Queryable<TycStockIllegalReturnItem>().Where(a => a.CompanyName == name).Where(a => a.ItemIndex > (pageIndex - 1) * pageSize && a.ItemIndex <= pageIndex * pageSize).OrderBy(a => a.ItemIndex).ToListAsync();
                        resultPage.CurrentPage = pageIndex;
                        resultPage.PageSize = pageSize;
                        resultPage.TotalItems = totalcount;
                        resultPage.Items = dbList;
                        result.Data = resultPage;
                        return result;
                    }
                    var dbTotalPages = totalcount != 0
                    ? (totalcount % pageSize) == 0 ? (totalcount / pageSize) : (totalcount / pageSize) + 1
                    : 0;
                    if (dbTotalPages < pageIndex)
                    {
                        result.Message = "查询无结果";
                        return result;
                    }
                }
                await RiskControlRRDb.Deleteable<TycStockIllegalReturnItem>().Where(a => a.CompanyName == name).ExecuteCommandAsync();
            }
            var qccResult = _api.GetStockIllegal(new TycStockIllegalQuery() { keyword = name, pageNum = pageIndex, pageSize = pageSize });
            if (qccResult.Error_code == "0")
            {
                var addList = new List<TycStockIllegalReturnItem>();
                for (var i = 0; i < qccResult.Result.items.Count; i++)
                {
                    var item = qccResult.Result.items[i];
                    item.CreateTime = DateTime.Now;
                    item.CompanyName = name;
                    item.ItemIndex = (pageIndex - 1) * pageSize + i + 1;
                    item.TotalItems = qccResult.Result.total;
                    addList.Add(item);
                }
                if (_expiredDays > 0) await RiskControlRRDb.Insertable(addList).ExecuteCommandAsync();
                resultPage.CurrentPage = pageIndex;
                resultPage.PageSize = pageSize;
                resultPage.TotalItems = qccResult.Result.total;
                resultPage.Items = addList;
                result.Data = resultPage;
                return result;
            }
            else
            {
                result.Message = qccResult.Reason;
                return result;
            }
        }
        public async Task<QccMsgData> GetJudicialSale(string name, int pageIndex = 1, int pageSize = 10)
        {
            var result = new QccMsgData();
            var resultPage = new Page<TycJudicialSaleReturnItem>();
            if (_expiredDays > 0)
            {
                var createTime = await RiskControlRRDb.Queryable<TycJudicialSaleReturnItem>().Where(a => a.CompanyName == name).OrderBy(a => a.CreateTime, OrderByType.Desc).Select(a => a.CreateTime).FirstAsync();
                if (createTime.AddDays(_expiredDays) >= DateTime.Now)
                {
                    var query = RiskControlRRDb.Queryable<TycJudicialSaleReturnItem>().Where(a => a.CompanyName == name).Where(a => a.ItemIndex > (pageIndex - 1) * pageSize && a.ItemIndex <= pageIndex * pageSize);
                    var dbcount = await query.CountAsync();
                    var totalcount = await RiskControlRRDb.Queryable<TycJudicialSaleReturnItem>().Where(a => a.CompanyName == name).OrderBy(a => a.CreateTime, OrderByType.Desc).Select(a => a.TotalItems).FirstAsync();
                    if (dbcount == pageSize || dbcount == totalcount || dbcount == totalcount - pageSize * (pageIndex - 1))
                    {
                        var dbList = await RiskControlRRDb.Queryable<TycJudicialSaleReturnItem>().Where(a => a.CompanyName == name).Where(a => a.ItemIndex > (pageIndex - 1) * pageSize && a.ItemIndex <= pageIndex * pageSize).OrderBy(a => a.ItemIndex).ToListAsync();
                        resultPage.CurrentPage = pageIndex;
                        resultPage.PageSize = pageSize;
                        resultPage.TotalItems = totalcount;
                        resultPage.Items = dbList;
                        result.Data = resultPage;
                        return result;
                    }
                    var dbTotalPages = totalcount != 0
                    ? (totalcount % pageSize) == 0 ? (totalcount / pageSize) : (totalcount / pageSize) + 1
                    : 0;
                    if (dbTotalPages < pageIndex)
                    {
                        result.Message = "查询无结果";
                        return result;
                    }
                }
                await RiskControlRRDb.Deleteable<TycJudicialSaleReturnItem>().Where(a => a.CompanyName == name).ExecuteCommandAsync();
            }
            var qccResult = _api.GetJudicialSale(new TycJudicialSaleQuery() { keyword = name, pageNum = pageIndex, pageSize = pageSize });
            if (qccResult.Error_code == "0")
            {
                var addList = new List<TycJudicialSaleReturnItem>();
                for (var i = 0; i < qccResult.Result.items.Count; i++)
                {
                    var item = qccResult.Result.items[i];
                    item.CreateTime = DateTime.Now;
                    item.CompanyName = name;
                    item.ItemIndex = (pageIndex - 1) * pageSize + i + 1;
                    item.TotalItems = qccResult.Result.total;
                    addList.Add(item);
                }
                if (_expiredDays > 0) await RiskControlRRDb.Insertable(addList).ExecuteCommandAsync();
                resultPage.CurrentPage = pageIndex;
                resultPage.PageSize = pageSize;
                resultPage.TotalItems = qccResult.Result.total;
                resultPage.Items = addList;
                result.Data = resultPage;
                return result;
            }
            else
            {
                result.Message = qccResult.Reason;
                return result;
            }
        }
        public async Task<QccMsgData> GetInquiryEvaluation(string name, int pageIndex = 1, int pageSize = 10)
        {
            var result = new QccMsgData();
            var resultPage = new Page<TycInquiryEvaluationReturnItem>();
            if (_expiredDays > 0)
            {
                var createTime = await RiskControlRRDb.Queryable<TycInquiryEvaluationReturnItem>().Where(a => a.CompanyName == name).OrderBy(a => a.CreateTime, OrderByType.Desc).Select(a => a.CreateTime).FirstAsync();
                if (createTime.AddDays(_expiredDays) >= DateTime.Now)
                {
                    var query = RiskControlRRDb.Queryable<TycInquiryEvaluationReturnItem>().Where(a => a.CompanyName == name).Where(a => a.ItemIndex > (pageIndex - 1) * pageSize && a.ItemIndex <= pageIndex * pageSize);
                    var dbcount = await query.CountAsync();
                    var totalcount = await RiskControlRRDb.Queryable<TycInquiryEvaluationReturnItem>().Where(a => a.CompanyName == name).OrderBy(a => a.CreateTime, OrderByType.Desc).Select(a => a.TotalItems).FirstAsync();
                    if (dbcount == pageSize || dbcount == totalcount || dbcount == totalcount - pageSize * (pageIndex - 1))
                    {
                        var dbList = await RiskControlRRDb.Queryable<TycInquiryEvaluationReturnItem>().Where(a => a.CompanyName == name).Where(a => a.ItemIndex > (pageIndex - 1) * pageSize && a.ItemIndex <= pageIndex * pageSize).OrderBy(a => a.ItemIndex).ToListAsync();
                        resultPage.CurrentPage = pageIndex;
                        resultPage.PageSize = pageSize;
                        resultPage.TotalItems = totalcount;
                        resultPage.Items = dbList;
                        result.Data = resultPage;
                        return result;
                    }
                    var dbTotalPages = totalcount != 0
                    ? (totalcount % pageSize) == 0 ? (totalcount / pageSize) : (totalcount / pageSize) + 1
                    : 0;
                    if (dbTotalPages < pageIndex)
                    {
                        result.Message = "查询无结果";
                        return result;
                    }
                }
                await RiskControlRRDb.Deleteable<TycInquiryEvaluationReturnItem>().Where(a => a.CompanyName == name).ExecuteCommandAsync();
            }
            var qccResult = _api.GetInquiryEvaluation(new TycInquiryEvaluationQuery() { keyword = name, pageNum = pageIndex, pageSize = pageSize });
            if (qccResult.Error_code == "0")
            {
                var addList = new List<TycInquiryEvaluationReturnItem>();
                for (var i = 0; i < qccResult.Result.items.Count; i++)
                {
                    var item = qccResult.Result.items[i];
                    item.CreateTime = DateTime.Now;
                    item.CompanyName = name;
                    item.ItemIndex = (pageIndex - 1) * pageSize + i + 1;
                    item.TotalItems = qccResult.Result.total;
                    addList.Add(item);
                }
                if (_expiredDays > 0) await RiskControlRRDb.Insertable(addList).ExecuteCommandAsync();
                resultPage.CurrentPage = pageIndex;
                resultPage.PageSize = pageSize;
                resultPage.TotalItems = qccResult.Result.total;
                resultPage.Items = addList;
                result.Data = resultPage;
                return result;
            }
            else
            {
                result.Message = qccResult.Reason;
                return result;
            }
        }
        public async Task<QccMsgData> GetImportAndExport(string name)
        {
            var result = new QccMsgData();
            if (_expiredDays > 0)
            {
                var createTime = await RiskControlRRDb.Queryable<TycImportAndExportReturn>().Where(a => a.CompanyName == name).OrderBy(a => a.CreateTime, OrderByType.Desc).Select(a => a.CreateTime)
                    .FirstAsync();
                if (createTime.AddDays(_expiredDays) >= DateTime.Now)
                {
                    var dbmodel = await RiskControlRRDb.Queryable<TycImportAndExportReturn>().Where(a => a.CompanyName == name).FirstAsync();
                    result.Data = dbmodel;
                    return result;
                }
                await RiskControlRRDb.Deleteable<TycImportAndExportReturn>().Where(a => a.CompanyName == name).ExecuteCommandAsync();
            }
            var qccResult = _api.GetImportAndExport(new TycImportAndExportQuery() { keyword = name });
            if (qccResult.Error_code == "0")
            {
                var dblist = qccResult.Result;
                dblist.CompanyName = name;
                dblist.CreateTime = DateTime.Now;
                if (_expiredDays > 0) await RiskControlRRDb.Insertable(dblist).ExecuteCommandAsync();
                result.Data = dblist;
                return result;
            }
            else
            {
                result.Message = qccResult.Reason;
                return result;
            }
        }
        public async Task<QccMsgData> GetPatents(string name, int pageIndex = 1, int pageSize = 10)
        {
            var result = new QccMsgData();
            var resultPage = new Page<TycPatentsReturnItem>();
            if (_expiredDays > 0)
            {
                var createTime = await RiskControlRRDb.Queryable<TycPatentsReturnItem>().Where(a => a.CompanyName == name).OrderBy(a => a.DbCreateTime, OrderByType.Desc).Select(a => a.DbCreateTime).FirstAsync();
                if (createTime.AddDays(_expiredDays) >= DateTime.Now)
                {
                    var query = RiskControlRRDb.Queryable<TycPatentsReturnItem>().Where(a => a.CompanyName == name).Where(a => a.ItemIndex > (pageIndex - 1) * pageSize && a.ItemIndex <= pageIndex * pageSize);
                    var dbcount = await query.CountAsync();
                    var totalcount = await RiskControlRRDb.Queryable<TycPatentsReturnItem>().Where(a => a.CompanyName == name).OrderBy(a => a.DbCreateTime, OrderByType.Desc).Select(a => a.TotalItems).FirstAsync();
                    if (dbcount == pageSize || dbcount == totalcount || dbcount == totalcount - pageSize * (pageIndex - 1))
                    {
                        var dbList = await RiskControlRRDb.Queryable<TycPatentsReturnItem>().Where(a => a.CompanyName == name).Where(a => a.ItemIndex > (pageIndex - 1) * pageSize && a.ItemIndex <= pageIndex * pageSize).OrderBy(a => a.ItemIndex).ToListAsync();
                        resultPage.CurrentPage = pageIndex;
                        resultPage.PageSize = pageSize;
                        resultPage.TotalItems = totalcount;
                        resultPage.Items = dbList;
                        result.Data = resultPage;
                        return result;
                    }
                    var dbTotalPages = totalcount != 0
                    ? (totalcount % pageSize) == 0 ? (totalcount / pageSize) : (totalcount / pageSize) + 1
                    : 0;
                    if (dbTotalPages < pageIndex)
                    {
                        result.Message = "查询无结果";
                        return result;
                    }
                }
                await RiskControlRRDb.Deleteable<TycPatentsReturnItem>().Where(a => a.CompanyName == name).ExecuteCommandAsync();
            }
            var qccResult = _api.GetPatents(new TycPatentsQuery() { keyword = name, pageNum = pageIndex, pageSize = pageSize });
            if (qccResult.Error_code == "0")
            {
                var addList = new List<TycPatentsReturnItem>();
                for (var i = 0; i < qccResult.Result.items.Count; i++)
                {
                    var item = qccResult.Result.items[i];
                    item.DbCreateTime = DateTime.Now;
                    item.CompanyName = name;
                    item.ItemIndex = (pageIndex - 1) * pageSize + i + 1;
                    item.TotalItems = qccResult.Result.total;
                    addList.Add(item);
                }
                if (_expiredDays > 0) await RiskControlRRDb.Insertable(addList).ExecuteCommandAsync();
                resultPage.CurrentPage = pageIndex;
                resultPage.PageSize = pageSize;
                resultPage.TotalItems = qccResult.Result.total;
                resultPage.Items = addList;
                result.Data = resultPage;
                return result;
            }
            else
            {
                result.Message = qccResult.Reason;
                return result;
            }
        }
        public async Task<QccMsgData> GetIprTm(string name, int pageIndex = 1, int pageSize = 10)
        {
            var result = new QccMsgData();
            var resultPage = new Page<TycIprTmReturnItem>();
            if (_expiredDays > 0)
            {
                var createTime = await RiskControlRRDb.Queryable<TycIprTmReturnItem>().Where(a => a.CompanyName == name).OrderBy(a => a.CreateTime, OrderByType.Desc).Select(a => a.CreateTime).FirstAsync();
                if (createTime.AddDays(_expiredDays) >= DateTime.Now)
                {
                    var query = RiskControlRRDb.Queryable<TycIprTmReturnItem>().Where(a => a.CompanyName == name).Where(a => a.ItemIndex > (pageIndex - 1) * pageSize && a.ItemIndex <= pageIndex * pageSize);
                    var dbcount = await query.CountAsync();
                    var totalcount = await RiskControlRRDb.Queryable<TycIprTmReturnItem>().Where(a => a.CompanyName == name).OrderBy(a => a.CreateTime, OrderByType.Desc).Select(a => a.TotalItems).FirstAsync();
                    if (dbcount == pageSize || dbcount == totalcount || dbcount == totalcount - pageSize * (pageIndex - 1))
                    {
                        var dbList = await RiskControlRRDb.Queryable<TycIprTmReturnItem>().Where(a => a.CompanyName == name).Where(a => a.ItemIndex > (pageIndex - 1) * pageSize && a.ItemIndex <= pageIndex * pageSize).OrderBy(a => a.ItemIndex).ToListAsync();
                        resultPage.CurrentPage = pageIndex;
                        resultPage.PageSize = pageSize;
                        resultPage.TotalItems = totalcount;
                        resultPage.Items = dbList;
                        result.Data = resultPage;
                        return result;
                    }
                    var dbTotalPages = totalcount != 0
                    ? (totalcount % pageSize) == 0 ? (totalcount / pageSize) : (totalcount / pageSize) + 1
                    : 0;
                    if (dbTotalPages < pageIndex)
                    {
                        result.Message = "查询无结果";
                        return result;
                    }
                }
                await RiskControlRRDb.Deleteable<TycIprTmReturnItem>().Where(a => a.CompanyName == name).ExecuteCommandAsync();
            }
            var qccResult = _api.GetIprTm(new TycIprTmQuery() { keyword = name, pageNum = pageIndex, pageSize = pageSize });
            if (qccResult.Error_code == "0")
            {
                var addList = new List<TycIprTmReturnItem>();
                for (var i = 0; i < qccResult.Result.items.Count; i++)
                {
                    var item = qccResult.Result.items[i];
                    item.CreateTime = DateTime.Now;
                    item.CompanyName = name;
                    item.ItemIndex = (pageIndex - 1) * pageSize + i + 1;
                    item.TotalItems = qccResult.Result.total;
                    addList.Add(item);
                }
                if (_expiredDays > 0) await RiskControlRRDb.Insertable(addList).ExecuteCommandAsync();
                resultPage.CurrentPage = pageIndex;
                resultPage.PageSize = pageSize;
                resultPage.TotalItems = qccResult.Result.total;
                resultPage.Items = addList;
                result.Data = resultPage;
                return result;
            }
            else
            {
                result.Message = qccResult.Reason;
                return result;
            }
        }
        public async Task<QccMsgData> GetIprTmDetail(string regNo,string intCls)
        {
            var result = new QccMsgData();
            if (_expiredDays > 0)
            {
                var createTime = await RiskControlRRDb.Queryable<TycIprTmDetailReturn>().Where(a => a.RegNo == regNo && a.IntCls == intCls).OrderBy(a => a.CreateTime, OrderByType.Desc).Select(a => a.CreateTime)
                    .FirstAsync();
                if (createTime.AddDays(_expiredDays) >= DateTime.Now)
                {
                    var dbmodel = await RiskControlRRDb.Queryable<TycIprTmDetailReturn>().Where(a => a.RegNo == regNo && a.IntCls == intCls).FirstAsync();
                    result.Data = dbmodel;
                    return result;
                }
                await RiskControlRRDb.Deleteable<TycIprTmDetailReturn>().Where(a => a.RegNo == regNo && a.IntCls == intCls).ExecuteCommandAsync();
            }
            var qccResult = _api.GetIprTmDetail(new TycIprTmDetailQuery() { regNo = regNo,intCls = intCls });
            if (qccResult.Error_code == "0")
            {
                var dblist = qccResult.Result;
                dblist.CreateTime = DateTime.Now;
                dblist.RegNo = regNo;
                dblist.IntCls = intCls;
                if (_expiredDays > 0) await RiskControlRRDb.Insertable(dblist).ExecuteCommandAsync();
                result.Data = dblist;
                return result;
            }
            else
            {
                result.Message = qccResult.Reason;
                return result;
            }
        }
        public async Task<QccMsgData> GetEmployments(string name, int pageIndex = 1, int pageSize = 10)
        {
            var result = new QccMsgData();
            var resultPage = new Page<TycEmploymentsReturnItem>();
            if (_expiredDays > 0)
            {
                var createTime = await RiskControlRRDb.Queryable<TycEmploymentsReturnItem>().Where(a => a.CompanyName == name).OrderBy(a => a.CreateTime, OrderByType.Desc).Select(a => a.CreateTime).FirstAsync();
                if (createTime.AddDays(_expiredDays) >= DateTime.Now)
                {
                    var query = RiskControlRRDb.Queryable<TycEmploymentsReturnItem>().Where(a => a.CompanyName == name).Where(a => a.ItemIndex > (pageIndex - 1) * pageSize && a.ItemIndex <= pageIndex * pageSize);
                    var dbcount = await query.CountAsync();
                    var totalcount = await RiskControlRRDb.Queryable<TycEmploymentsReturnItem>().Where(a => a.CompanyName == name).OrderBy(a => a.CreateTime, OrderByType.Desc).Select(a => a.TotalItems).FirstAsync();
                    if (dbcount == pageSize || dbcount == totalcount || dbcount == totalcount - pageSize * (pageIndex - 1))
                    {
                        var dbList = await RiskControlRRDb.Queryable<TycEmploymentsReturnItem>().Where(a => a.CompanyName == name).Where(a => a.ItemIndex > (pageIndex - 1) * pageSize && a.ItemIndex <= pageIndex * pageSize).OrderBy(a => a.ItemIndex).ToListAsync();
                        resultPage.CurrentPage = pageIndex;
                        resultPage.PageSize = pageSize;
                        resultPage.TotalItems = totalcount;
                        resultPage.Items = dbList;
                        result.Data = resultPage;
                        return result;
                    }
                    var dbTotalPages = totalcount != 0
                    ? (totalcount % pageSize) == 0 ? (totalcount / pageSize) : (totalcount / pageSize) + 1
                    : 0;
                    if (dbTotalPages < pageIndex)
                    {
                        result.Message = "查询无结果";
                        return result;
                    }
                }
                await RiskControlRRDb.Deleteable<TycEmploymentsReturnItem>().Where(a => a.CompanyName == name).ExecuteCommandAsync();
            }
            var qccResult = _api.GetEmployments(new TycEmploymentsQuery() { keyword = name, pageNum = pageIndex, pageSize = pageSize });
            if (qccResult.Error_code == "0")
            {
                var addList = new List<TycEmploymentsReturnItem>();
                for (var i = 0; i < qccResult.Result.items.Count; i++)
                {
                    var item = qccResult.Result.items[i];
                    item.CreateTime = DateTime.Now;
                    item.CompanyName = name;
                    item.ItemIndex = (pageIndex - 1) * pageSize + i + 1;
                    item.TotalItems = qccResult.Result.total;
                    addList.Add(item);
                }
                if (_expiredDays > 0) await RiskControlRRDb.Insertable(addList).ExecuteCommandAsync();
                resultPage.CurrentPage = pageIndex;
                resultPage.PageSize = pageSize;
                resultPage.TotalItems = qccResult.Result.total;
                resultPage.Items = addList;
                result.Data = resultPage;
                return result;
            }
            else
            {
                result.Message = qccResult.Reason;
                return result;
            }
        }
    }
}