Esempio n. 1
0
        public void Initialize()
        {
            KeyStoreConfig  keystoreConfig = new();
            NetworkConfig   networkConfig  = new();
            JsonRpcConfig   jsonRpcConfig  = new();
            StatsParameters statsConfig    = StatsParameters.Instance;

            _configProvider = new JsonConfigProvider("SampleJson/SampleJsonConfig.cfg");
        }
Esempio n. 2
0
        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);
        }
Esempio n. 3
0
        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);
        }