public static async Task <OrderCountResponse> GetUserCreateFlashOrderCountCacheAsync(
            OrderCountCacheRequest request)
        {
            var responseModel = new OrderCountResponse();
            var keyModels     = SetKeys(request);

            using (var client = CacheHelper.CreateCounterClient(ClientName))
            {
                foreach (var key in keyModels.OrderBy(r => r.Sort))
                {
                    await GetCountValue(responseModel, key.Type, key.Key, client);

                    //if(result.RedisField)
                    //    break;
                }
            }
            var flashsale = (await DalFlashSale.SelectFlashSaleFromDBAsync(new Guid(request.ActivityId)));

            if (flashsale == null)
            {
                return(responseModel);
            }
            var saleProducts = flashsale.Products.ToList();
            var salePids     = saleProducts.Where(r => r.IsJoinPlace).Select(r => r.PID).ToList();
            var saleproduct  = saleProducts.FirstOrDefault(r => r.PID == request.Pid);
            var records      = (await DalFlashSale.SelectOrderActivityProductOrderRecordsAsync(
                                    new Guid(request.UserId), request.DeviceId,
                                    new Guid(request.ActivityId), request.UserTel)).ToList();
            var personQty = records?.Where(r => r.PID == request.Pid).Sum(r => r.Quantity) ?? 0;
            var placeQty  = records.Where(r => salePids.Contains(r.PID)).Sum(r => r.Quantity);

            responseModel.UserDbPersonLimitQty = personQty;
            responseModel.UserDbPlaceLimitQty  = placeQty;
            responseModel.PersonConfigLimitQty = saleproduct?.MaxQuantity;
            responseModel.PlaceConfigLimitQty  = saleproduct?.PlaceQuantity;
            responseModel.TotalConfigQty       = saleproduct?.TotalQuantity;
            return(responseModel);
        }