public void Initialize() { KeyStoreConfig keystoreConfig = new(); NetworkConfig networkConfig = new(); JsonRpcConfig jsonRpcConfig = new(); StatsParameters statsConfig = StatsParameters.Instance; _configProvider = new JsonConfigProvider("SampleJson/SampleJsonConfig.cfg"); }
public PersonResultData GetPersonOrder(string transactionId = "", string userId = "", DateTime?beginTime = null, DateTime?endTime = null, int?status = null, string payWay = "", int offset = 0, int limit = 10, string sortBy = "createDateTime", int order = 1) { PersonResultData resultData = new PersonResultData(); var stats = new StatsParameters(); try { Order ord = order == 1 ? Order.DESC : Order.ASC; // 检索条件 var queryOptions = new QueryOptions() { // 偏移量0 StartOrCursor = new StartOrCursor.Start(offset), // 数量10 Rows = limit, // 排序:默认为下单时间 createDateTime 倒序 OrderBy = new SortOrder[] { new SortOrder(sortBy, ord) }, // 统计 turnover 字段(包括min,max,sum...) Stats = stats.AddField("turnover") }; // 查询(个人订单:transferInKey=Check) var solrQuery = new List <ISolrQuery>() { new SolrQuery("transferInKey:Check") }; if (!string.IsNullOrEmpty(transactionId)) { solrQuery.Add(new SolrQueryByField("id", transactionId)); } if (!string.IsNullOrEmpty(userId)) { solrQuery.Add(new SolrQueryByField("userKey", userId)); } if (beginTime != null) { var fromTime = Convert.ToDateTime(beginTime); var toTime = (endTime == null ? DateTime.MaxValue : Convert.ToDateTime(endTime)); solrQuery.Add(new SolrQueryByRange <DateTime>("createDateTime", fromTime, toTime)); } if (endTime != null) { var fromTime = (beginTime == null ? DateTime.MinValue : Convert.ToDateTime(beginTime)); var toTime = Convert.ToDateTime(endTime); solrQuery.Add(new SolrQueryByRange <DateTime>("createDateTime", fromTime, toTime)); } if (status != null) { solrQuery.Add(new SolrQueryByField("status", status.ToString())); } if (!string.IsNullOrEmpty(payWay)) { solrQuery.Add(new SolrQueryByField("transferOutAccountType", payWay)); } queryOptions.FilterQueries = solrQuery; Stopwatch watch = new Stopwatch(); watch.Start(); var personOrder = solr.Query(SolrQuery.All, queryOptions); watch.Stop(); int totalCount = personOrder.NumFound; resultData = new PersonResultData { Status = 200, Message = "success", Data = new PersonData { Item = personOrder, ItemCount = personOrder.Count, TotalCount = totalCount, TotalMoney = Convert.ToDecimal(personOrder.Stats["turnover"].Sum), Empty = false } }; log.Info($"获取【{userId}】个人(TatalCount={totalCount},limt={limit}条)订单成功!查询用时{watch.ElapsedMilliseconds}ms"); } catch (Exception ex) { resultData = new PersonResultData { Status = 500, Message = ex.Message, Data = null }; log.Error($"获取【{userId}】个人({limit})条订单出错:" + ex); } return(resultData); }
public GroupResultData GetGroupOrder(string transactionId = "", string userId = "", string productId = "", int?status = null, decimal?minMoney = null, decimal?maxMoney = null, DateTime?beginTime = null, DateTime?endTime = null, int groupType = 1, int offset = 0, int limit = 10, string sortBy = "turnover", int order = 1) { GroupResultData resultData = new GroupResultData(); try { var stats = new StatsParameters(); Order ord = order == 1 ? Order.DESC : Order.ASC; // 检索条件 var queryOptions = new QueryOptions() { // 偏移量0 StartOrCursor = new StartOrCursor.Start(offset), // 数量10 Rows = limit, // 排序:默认为下单时间 createDateTime 倒序 OrderBy = new SortOrder[] { new SortOrder(sortBy, ord) }, // 统计 turnover 字段(包括min,max,sum...) Stats = stats.AddField("turnover") }; // 查询 var solrQuery = new List <ISolrQuery>(); if (!string.IsNullOrEmpty(transactionId)) { solrQuery.Add(new SolrQueryByField("id", transactionId)); } if (!string.IsNullOrEmpty(userId)) { solrQuery.Add(new SolrQueryByField("userKey", userId)); } if (string.IsNullOrEmpty(productId)) { ISolrQuery query = null; //余额账户 if (groupType == 1) { query = new SolrQuery("transferInKey:MDCheck") || new SolrQuery("transferInKey:BDCheck") || new SolrQuery("transferInKey:PACheck") || new SolrQuery("transferInKey:ALCheck") || new SolrQuery("transferInKey:HWCheck"); } else { query = new SolrQuery("transferInKey:MDCheckCount") || new SolrQuery("transferInKey:BDCheckCount") || new SolrQuery("transferInKey:PACheckCount") || new SolrQuery("transferInKey:ALCheckCount") || new SolrQuery("transferInKey:HWCheckCount"); } solrQuery.Add(query); } else { solrQuery.Add(new SolrQueryByField("transferInKey", productId)); } if (beginTime != null) { var createDateTime = Convert.ToDateTime(beginTime); solrQuery.Add(new SolrQueryByRange <DateTime>("createDateTime", createDateTime, DateTime.MaxValue)); } if (endTime != null) { var createDateTime = Convert.ToDateTime(endTime); solrQuery.Add(new SolrQueryByRange <DateTime>("createDateTime", DateTime.MinValue, createDateTime)); } if (status != null) { solrQuery.Add(new SolrQueryByField("status", status.ToString())); } if (minMoney != null) { var turnover = (decimal)minMoney; solrQuery.Add(new SolrQueryByRange <decimal>("turnover", turnover, decimal.MaxValue)); } if (maxMoney != null) { var turnover = (decimal)maxMoney; solrQuery.Add(new SolrQueryByRange <decimal>("turnover", decimal.MinValue, turnover)); } queryOptions.FilterQueries = solrQuery; Stopwatch watch = new Stopwatch(); watch.Start(); // var qs = new SolrMultipleCriteriaQuery(solrQuery, "AND"); var groupOrder = solr.Query(SolrQuery.All, queryOptions); watch.Stop(); List <GroupModel> OrderItemList = new List <GroupModel>(); if (groupOrder.Count > 0) { foreach (var item in groupOrder) { GroupModel orderItem = new GroupModel { TransactionId = item.Id, UserId = item.UserKey, CreateTime = item.CreateDateTime, ProductId = item.TransferInKey, Status = item.Status, Turnover = Convert.ToDecimal(item.Turnover), Institution = item.OrganName, GroupType = item.TransferInKey }; OrderItemList.Add(orderItem); } } int totalCount = groupOrder.NumFound; resultData = new GroupResultData { Status = 200, Message = "success", Data = new GroupData { Item = OrderItemList, ItemCount = OrderItemList.Count, TotalCount = totalCount, TotalMoney = Convert.ToDecimal(groupOrder.Stats["turnover"].Sum), Empty = false } }; log.Info($"获取【{userId}】机构(TatalCount={totalCount},limt={limit}条)订单成功!查询用时{watch.ElapsedMilliseconds}ms"); } catch (Exception ex) { resultData = new GroupResultData { Status = 500, Message = ex.Message, Data = null }; log.Error($"获取【{userId}】机构({limit})条订单出错:" + ex); } return(resultData); }