コード例 #1
0
 /// <summary>
 /// 根据活动ID,与PID集合查询对应的活动信息与产品信息
 /// </summary>
 /// <param name="activityID"></param>
 /// <param name="pids"></param>
 /// <returns></returns>
 public async Task <OperationResult <List <FlashSaleModel> > > SelectFlashSaleDataByActivityIdsAsync(List <FlashSaleDataByActivityRequest> flashSaleDataByActivityRequests)
 {
     if (flashSaleDataByActivityRequests.Count > 50)
     {
         return(OperationResult.FromError <List <FlashSaleModel> >(ErrorCode.ParameterError, "最多支持50个活动ID集合查询"));
     }
     return(OperationResult.FromResult(await FlashSaleManager.SelectFlashSaleDataByActivityIdsAsync(flashSaleDataByActivityRequests)));
 }
コード例 #2
0
        /// <summary>
        /// 新活动页查询活动信息接口
        /// </summary>
        /// <param name="flashSaleActivityPageRequest"></param>
        /// <returns></returns>
        public async Task <OperationResult <List <FlashSaleActivityPageModel> > > GetFlashSaleDataActivityPageByIdsAsync(List <FlashSaleActivityPageRequest> flashSaleActivityPageRequest)
        {
            if (flashSaleActivityPageRequest.Count > 20)
            {
                return(OperationResult.FromError <List <FlashSaleActivityPageModel> >(ErrorCode.ParameterError, "最多支持20个活动ID集合查询"));
            }

            return(OperationResult.FromResult(await FlashSaleManager.GetFlashSaleDataActivityPageByIdsAsync(flashSaleActivityPageRequest)));
        }
コード例 #3
0
        /// <summary>
        /// 查询限时抢购详情
        /// </summary>
        /// <param name="productId"></param>
        /// <param name="variantId"></param>
        /// <param name="activityId"></param>
        /// <param name="channel"></param>
        /// <param name="userId"></param>
        /// <param name="productGroupId"></param>
        ///  <param name="btyQty"></param>
        /// <returns></returns>
        public async Task <OperationResult <FlashSaleProductDetailModel> > FetchProductDetailForFlashSaleAsync(string productId, string variantId, string activityId, string channel, string userId, string productGroupId = null, int btyQty = 1)
        {
            Guid result;

            if (!Guid.TryParse(activityId, out result))
            {
                return(OperationResult.FromError <FlashSaleProductDetailModel>(ErrorCode.ParameterError, "参数无效"));
            }
            return(OperationResult.FromResult(await FlashSaleManager.FetchProductDetailForFlashSaleAsync(productId, variantId, activityId, channel, productGroupId, userId)));
        }
コード例 #4
0
 /// <summary>
 /// 天天秒杀数据列表缓存刷新
 /// </summary>
 /// <param name="activityId">活动ID</param>
 /// <returns></returns>
 public async Task <OperationResult <bool> > SpikeListRefreshAsync(Guid activityId)
 {
     if (activityId == null)
     {
         return(OperationResult.FromError <bool>("-1", "活动ID不可为空"));
     }
     else
     {
         return(OperationResult.FromResult(await FlashSaleManager.SpikeListRefreshAsync(activityId)));
     }
 }
コード例 #5
0
 public async Task <OperationResult <FlashSaleProductCanBuyCountModel> > GetUserCanBuyFlashSaleItemCountAsync(Guid userId, Guid activityId, string pid)
 {
     if (userId == Guid.Empty || activityId == Guid.Empty || string.IsNullOrWhiteSpace(pid))
     {
         return(OperationResult.FromError <FlashSaleProductCanBuyCountModel>("-1", "参数错误"));
     }
     else
     {
         return(OperationResult.FromResult(await FlashSaleManager.GetUserCanBuyFlashSaleItemCountAsync(userId, activityId, pid)));
     }
 }
コード例 #6
0
 /// <summary>
 /// 根据时间范围查询秒杀场次信息
 /// </summary>
 /// <param name="activityType"></param>
 /// <param name="startDate"></param>
 /// <param name="endDate"></param>
 /// <returns></returns>
 public async Task <OperationResult <IEnumerable <FlashSaleModel> > > GetSecondsBoysAsync(int activityType, DateTime?startDate = null, DateTime?endDate = null)
 {
     if (startDate == null || endDate == null)
     {
         return(OperationResult.FromError <IEnumerable <FlashSaleModel> >("-1", "参数错误"));
     }
     else
     {
         return(OperationResult.FromResult(await FlashSaleManager.GetSecondsBoysAsync(activityType, startDate, endDate)));
     }
 }
コード例 #7
0
 /// <summary>
 /// 活动页秒杀查询最新有效场次
 /// </summary>
 /// <param name="topNumber">场次返回条数</param>
 /// <param name="isProducts">是否查询活动下的产品信息,默认为true</param>
 /// <returns></returns>
 public async Task <OperationResult <IEnumerable <FlashSaleModel> > > GetActivePageSecondKillAsync(int topNumber, bool isProducts = true)
 {
     if (topNumber <= 0)
     {
         return(OperationResult.FromError <IEnumerable <FlashSaleModel> >("-1", "topNumber必须大于0"));
     }
     else
     {
         return(OperationResult.FromResult(await FlashSaleManager.GetActivePageSecondKillManager(topNumber, isProducts)));
     }
 }
コード例 #8
0
 public async Task <OperationResult <FlashSaleOrderResponse> > CheckCanBuyFlashSaleOrderAsync(FlashSaleOrderRequest request)
 {
     if (request == null ||
         request.UserId == Guid.Empty ||
         string.IsNullOrWhiteSpace(request.UseTel) ||
         request.Products == null ||
         !request.Products.Any())
     {
         return(OperationResult.FromError <FlashSaleOrderResponse>("-1", "参数错误"));
     }
     else
     {
         return(OperationResult.FromResult(await FlashSaleManager.CheckCanBuyFlashSaleOrderAsync(request)));
     }
 }
コード例 #9
0
 public async Task <OperationResult <UserReminderInfo> > GetUserReminderInfoAsync(EveryDaySeckillUserInfo model)
 {
     return(await OperationResult.FromResultAsync(FlashSaleManager.GetUserReminderInfoAsync(model)));
 }
コード例 #10
0
 /// <inheritdoc />
 /// <summary>
 /// 根据场次Id获取天天秒杀产品数据
 /// </summary>
 /// <param name="request">场次活动Id</param>
 /// <returns></returns>
 public async Task <OperationResult <List <FlashSaleProductModel> > > SelectSeckillDataByActivityIdAsync(SelectSecKillByIdRequest request)
 {
     return(await OperationResult.FromResultAsync(FlashSaleManager.SelectSeckillDataByActivityIdAsync(request)));
 }
コード例 #11
0
        public Task <OperationResult <bool> > OrderCancerMaintenanceFlashSaleDataAsync(int orderId)

        => OperationResult.FromResultAsync <bool>(FlashSaleManager.OrderCancerMaintenanceFlashSaleData(orderId));
コード例 #12
0
 public Task <OperationResult <IEnumerable <FlashSaleProductBuyLimitModel> > > CheckFlashSaleProductBuyLimitAsync(CheckFlashSaleProductRequest request)
 => OperationResult.FromResultAsync(FlashSaleManager.CheckFlashSaleProductBuyLimitAsync(request));
コード例 #13
0
 public Task <OperationResult <List <FlashSaleModel> > > GetFlashSaleListAsync(Guid[] activityIDs)
 => OperationResult.FromResultAsync(FlashSaleManager.GetFlashSaleListAsync(activityIDs));
コード例 #14
0
 public async Task <OperationResult <FlashSaleModel> > SelectFlashSaleDataByActivityIDAsync(Guid activityID)
 => OperationResult.FromResult(await FlashSaleManager.SelectFlashSaleDataByActivityIDAsync(activityID));
コード例 #15
0
 public async Task <OperationResult <bool> > UpdateConfigSaleoutQuantityFromLogAsync(UpdateConfigSaleoutQuantityRequest request)
 {
     return(OperationResult.FromResult(await FlashSaleManager.UpdateConfigSaleoutQuantityFromLogAsync(request)));
 }
コード例 #16
0
 public async Task <OperationResult <bool> > OrderCreateMaintenanceFlashSaleDbDataAsync(FlashSaleOrderRequest flashSale)
 {
     return(OperationResult.FromResult(await FlashSaleManager.OrderCreateMaintenanceFlashSaleDbDataAsync(flashSale)));
 }
コード例 #17
0
 public async Task <OperationResult <List <FlashSaleWrongCacheResponse> > > SelectFlashSaleWrongCacheAsync()
 {
     return(OperationResult.FromResult(await FlashSaleManager.SelectFlashSaleWrongCacheAsync()));
 }
コード例 #18
0
 public async Task <OperationResult <OrderCountResponse> > SetUserCreateFlashOrderCountCacheAsync(OrderCountCacheRequest request)
 {
     return(OperationResult.FromResult(await FlashSaleManager.SetUserCreateFlashOrderCountCacheAsync(request)));
 }
コード例 #19
0
 public async Task <OperationResult <List <FlashSaleModel> > > GetFlashSaleWithoutProductsListAsync(List <Guid> activityids)
 {
     return(OperationResult.FromResult(await FlashSaleManager.GetFlashSaleWithoutProductsListAsync(activityids)));
 }
コード例 #20
0
 public async Task <OperationResult <bool> > RefreshFlashSaleHashCountAsync(List <string> activtyids, bool isAllRefresh)
 {
     return(OperationResult.FromResult <bool>(await FlashSaleManager.RefreshFlashSaleHashCountAsync(activtyids, isAllRefresh)));
 }
コード例 #21
0
        private static async Task <CheckFlashSaleResponseModel> CheckFlashSaleByPidAsync(OrderItems item, Guid userId, string deviceId, string userTel)
        {
            var    hasMaxLimit     = false;
            var    hasPlaceLimit   = false;
            string allPlaceLimitId = null;

            try
            {
                if (!item.ActivityId.HasValue)
                {
                    return new CheckFlashSaleResponseModel()
                           {
                               Code = CheckFlashSaleStatus.NoExist,
                           }
                }
                ;

                var flashSale = await DalFlashSale.FetchFlashSaleProductModel(item);

                if (flashSale == null)
                {
                    return(new CheckFlashSaleResponseModel()
                    {
                        Code = CheckFlashSaleStatus.NoExist,
                    });
                }

                var model = await FlashSaleCounter.RedisHashRecord(item.PID, item);

                if (model.Code == CheckFlashSaleStatus.CreateOrderFailed)
                {
                    return new CheckFlashSaleResponseModel()
                           {
                               Code = CheckFlashSaleStatus.CreateOrderFailed,
                           }
                }
                ;

                var record = model.Record;

                var remainQuantity = flashSale.TotalQuantity - record;
                if (remainQuantity < 0)
                {
                    return new CheckFlashSaleResponseModel()
                           {
                               Code = CheckFlashSaleStatus.NoEnough,
                           }
                }
                ;
                var request = new GenerateKeyRequest
                {
                    DeviceId   = deviceId,
                    UserId     = userId.ToString(),
                    UserTel    = userTel,
                    ActivityId = item.ActivityId.ToString(),
                    Pid        = item.PID
                };
                var countKey = new GenerateFlashSaleKey(request);
                if (flashSale.MaxQuantity.HasValue)
                {
                    var personLimit1 = await FlashSaleCounter.RedisCounterRecord(countKey.PersonalkeyUserId,
                                                                                 LimitType.PersonalLimit, CounterKeyType.UserIdKey, item, userId, deviceId, userTel, null, -1);

                    if (personLimit1.Code < 0)
                    {
                        return new CheckFlashSaleResponseModel()
                               {
                                   Code = CheckFlashSaleStatus.CreateOrderFailed,
                               }
                    }
                    ;
                    var personLimit2 = await FlashSaleCounter.RedisCounterRecord(countKey.PersonalkeyDeviceId,
                                                                                 LimitType.PersonalLimit, CounterKeyType.DeviceIdKey, item, userId, deviceId, userTel, null,
                                                                                 personLimit1.DeviceCount);

                    if (personLimit2.Code < 0)
                    {
                        var orderItem = new CheckFlashSaleResponseModel
                        {
                            Num = item.Num
                        };

                        await FlashSaleCounter.DecrementCountCount(orderItem, countKey.PersonalkeyUserId);

                        return(new CheckFlashSaleResponseModel()
                        {
                            Code = CheckFlashSaleStatus.CreateOrderFailed,
                        });
                    }
                    var personLimit3 = await FlashSaleCounter.RedisCounterRecord(countKey.PersonalkeyUseTel,
                                                                                 LimitType.PersonalLimit, CounterKeyType.UserTelKey, item, userId, deviceId, userTel, null,
                                                                                 personLimit1.TelCount);

                    if (personLimit3.Code < 0)
                    {
                        var orderItem = new CheckFlashSaleResponseModel
                        {
                            Num = item.Num
                        };
                        await FlashSaleCounter.DecrementCountCount(orderItem, countKey.PersonalkeyUserId);

                        await FlashSaleCounter.DecrementCountCount(orderItem, countKey.PersonalkeyDeviceId);

                        return(new CheckFlashSaleResponseModel()
                        {
                            Code = CheckFlashSaleStatus.CreateOrderFailed,
                        });
                    }
                    if (personLimit1.Code < 0 || personLimit2.Code < 0 || personLimit3.Code < 0)
                    {
                        return(new CheckFlashSaleResponseModel()
                        {
                            Code = CheckFlashSaleStatus.CreateOrderFailed,
                        });
                    }
                    var maxLimit = Math.Max(Math.Max(personLimit1.Record, personLimit2.Record), personLimit3.Record);
                    hasMaxLimit = true;
                    if (maxLimit > flashSale.MaxQuantity)
                    {
                        return(new CheckFlashSaleResponseModel()
                        {
                            Code = CheckFlashSaleStatus.MaxQuantityLimit,
                            HasQuantityLimit = true
                        });
                    }
                }
                if (flashSale.PlaceQuantity.HasValue && flashSale.PlaceQuantity.Value > 0)
                {
                    var saleProducts = (await DalFlashSale.SelectFlashSaleProductsAsync(item.ActivityId.Value)).ToList();
                    var salePids     = saleProducts.Where(r => r.IsJoinPlace).Select(r => r.PID).ToList();
                    if (salePids.Contains(item.PID))
                    {
                        var placeLimit1 = await FlashSaleCounter.RedisCounterRecord(countKey.PlacekeyUserId,
                                                                                    LimitType.PlaceLimit, CounterKeyType.UserIdKey, item, userId, deviceId, userTel, salePids,
                                                                                    -1);

                        if (placeLimit1.Code < 0)
                        {
                            return new CheckFlashSaleResponseModel()
                                   {
                                       Code = CheckFlashSaleStatus.CreateOrderFailed,
                                   }
                        }
                        ;
                        var placeLimit2 = await FlashSaleCounter.RedisCounterRecord(countKey.PlacekeyDeviceId,
                                                                                    LimitType.PlaceLimit, CounterKeyType.DeviceIdKey, item, userId, deviceId, userTel, salePids,
                                                                                    placeLimit1.DeviceCount);

                        if (placeLimit2.Code < 0)
                        {
                            var orderItem = new CheckFlashSaleResponseModel
                            {
                                Num = item.Num
                            };

                            await FlashSaleCounter.DecrementCountCount(orderItem, countKey.PlacekeyUserId);

                            return(new CheckFlashSaleResponseModel()
                            {
                                Code = CheckFlashSaleStatus.CreateOrderFailed,
                            });
                        }
                        var placeLimit3 = await FlashSaleCounter.RedisCounterRecord(countKey.PlacekeyUseTel,
                                                                                    LimitType.PlaceLimit, CounterKeyType.UserTelKey, item, userId, deviceId, userTel, salePids,
                                                                                    placeLimit1.TelCount);

                        if (placeLimit3.Code < 0)
                        {
                            var orderItem = new CheckFlashSaleResponseModel
                            {
                                Num = item.Num
                            };
                            await FlashSaleCounter.DecrementCountCount(orderItem, countKey.PlacekeyUserId);

                            await FlashSaleCounter.DecrementCountCount(orderItem, countKey.PlacekeyDeviceId);

                            return(new CheckFlashSaleResponseModel()
                            {
                                Code = CheckFlashSaleStatus.CreateOrderFailed,
                            });
                        }
                        if (placeLimit1.Code < 0 || placeLimit2.Code < 0 || placeLimit3.Code < 0)
                        {
                            return(new CheckFlashSaleResponseModel()
                            {
                                Code = CheckFlashSaleStatus.CreateOrderFailed,
                            });
                        }
                        hasPlaceLimit = true;
                        var placeLimit = Math.Max(Math.Max(placeLimit1.Record, placeLimit2.Record), placeLimit3.Record);
                        if (placeLimit > flashSale.PlaceQuantity.Value)
                        {
                            return(new CheckFlashSaleResponseModel()
                            {
                                Code = CheckFlashSaleStatus.PlaceQuantityLimit,
                                HasQuantityLimit = hasMaxLimit,
                                HasPlaceLimit = true
                            });
                        }
                    }
                }

                #region 针对618增加一个全局会场限购

                if (flashSale.ActiveType == 3 && FlashSaleManager.CheckAllPlaceLimitStatrtDate())
                {
                    var allPLimitId = GlobalConstant.AllPlaceLimitId;
                    item.AllPlaceLimitId = allPLimitId;
                    var request1 = new GenerateKeyRequest
                    {
                        DeviceId        = deviceId,
                        UserId          = userId.ToString(),
                        UserTel         = userTel,
                        ActivityId      = item.AllPlaceLimitId,
                        Pid             = item.PID,
                        IsAllPlaceLimit = true
                    };
                    var countKeyAllLimit = new GenerateFlashSaleKey(request1);
                    var config           = await FlashSaleManager.SelectFlashSaleDataByActivityIDAsync(new Guid(allPLimitId));

                    if (config.PlaceQuantity.HasValue)
                    {
                        var saleProducts = config.Products.ToList();
                        var salePids     = saleProducts.Where(r => r.IsJoinPlace).Select(r => r.PID).ToList();
                        if (salePids.Contains(item.PID))
                        {
                            var placeLimit1 = await FlashSaleCounter.RedisCounterRecord(
                                countKeyAllLimit.PlacekeyUserId, LimitType.AllPlaceLimit, CounterKeyType.UserIdKey, item,
                                userId, deviceId, userTel, salePids, -1);

                            if (placeLimit1.Code < 0)
                            {
                                return new CheckFlashSaleResponseModel()
                                       {
                                           Code = CheckFlashSaleStatus.CreateOrderFailed,
                                       }
                            }
                            ;
                            var placeLimit2 = await FlashSaleCounter.RedisCounterRecord(countKeyAllLimit.PlacekeyDeviceId,
                                                                                        LimitType.AllPlaceLimit, CounterKeyType.DeviceIdKey, item, userId, deviceId, userTel,
                                                                                        salePids, placeLimit1.DeviceCount);

                            if (placeLimit2.Code < 0)
                            {
                                var orderItem = new CheckFlashSaleResponseModel
                                {
                                    Num = item.Num
                                };

                                await FlashSaleCounter.DecrementCountCount(orderItem, countKeyAllLimit.PlacekeyUserId);

                                return(new CheckFlashSaleResponseModel()
                                {
                                    Code = CheckFlashSaleStatus.CreateOrderFailed,
                                });
                            }
                            var placeLimit3 = await FlashSaleCounter.RedisCounterRecord(countKeyAllLimit.PlacekeyUseTel,
                                                                                        LimitType.AllPlaceLimit, CounterKeyType.UserTelKey, item, userId, deviceId, userTel,
                                                                                        salePids, placeLimit1.TelCount);

                            if (placeLimit3.Code < 0)
                            {
                                var orderItem = new CheckFlashSaleResponseModel
                                {
                                    Num = item.Num
                                };
                                await FlashSaleCounter.DecrementCountCount(orderItem, countKeyAllLimit.PlacekeyUserId);

                                await FlashSaleCounter.DecrementCountCount(orderItem, countKeyAllLimit.PlacekeyDeviceId);

                                return(new CheckFlashSaleResponseModel()
                                {
                                    Code = CheckFlashSaleStatus.CreateOrderFailed,
                                });
                            }
                            if (placeLimit1.Code < 0 || placeLimit2.Code < 0 || placeLimit3.Code < 0)
                            {
                                return(new CheckFlashSaleResponseModel()
                                {
                                    Code = CheckFlashSaleStatus.CreateOrderFailed,
                                });
                            }
                            var allplaceLimit = Math.Max(Math.Max(placeLimit1.Record, placeLimit2.Record),
                                                         placeLimit3.Record);
                            allPlaceLimitId = allPLimitId;
                            if (allplaceLimit > config.PlaceQuantity.Value)
                            {
                                return(new CheckFlashSaleResponseModel()
                                {
                                    Code = CheckFlashSaleStatus.PlaceQuantityLimit,
                                    AllPlaceLimitId = allPlaceLimitId
                                });
                            }
                        }

                        #region 错误代码

                        //var hashRecord618 = await FlashSaleCounter.RedisAllPlaceLimitHashRecord(item.PID, item);
                        //if (hashRecord618 != null)
                        //{
                        //    if (hashRecord618.Code == CheckFlashSaleStatus.CreateOrderFailed)
                        //        return new CheckFlashSaleResponseModel()
                        //        {
                        //            Code = CheckFlashSaleStatus.CreateOrderFailed,
                        //        };

                        //    var saledAll = model.Record;
                        //    var config =
                        //        await FlashSaleManager.SelectFlashSaleDataByActivityIDAsync(
                        //            new Guid(allPLimitId));
                        //    var configQty = config.Products.Where(r => r.PID == item.PID).Select(r => r.TotalQuantity).FirstOrDefault();
                        //    allPlaceLimitId = allPLimitId;
                        //    if (configQty - saledAll < 0)
                        //        return new CheckFlashSaleResponseModel()
                        //        {
                        //            Code = CheckFlashSaleStatus.NoEnough,
                        //            AllPlaceLimitId = allPlaceLimitId
                        //        };
                        //}

                        #endregion
                    }
                }

                #endregion

                return(new CheckFlashSaleResponseModel()
                {
                    Code = CheckFlashSaleStatus.Succeed,
                    HasPlaceLimit = hasPlaceLimit,
                    HasQuantityLimit = hasMaxLimit,
                    AllPlaceLimitId = allPlaceLimitId
                });

                #endregion
            }
            catch (Exception ex)
            {
                Logger.Info(ex);
                return(new CheckFlashSaleResponseModel()
                {
                    Code = CheckFlashSaleStatus.CreateOrderFailed,
                    HasPlaceLimit = hasPlaceLimit,
                    HasQuantityLimit = hasMaxLimit
                });
            }
        }
コード例 #22
0
 public async Task <OperationResult <InsertEveryDaySeckillUserInfoResponse> > InsertEveryDaySeckillUserInfoAsync(EveryDaySeckillUserInfo model)
 {
     return(await OperationResult.FromResultAsync(FlashSaleManager.InsertEveryDaySeckillUserInfo(model)));
 }
コード例 #23
0
 public async Task <OperationResult <bool> > UpdateFlashSaleDataToCouchBaseByActivityIDAsync(Guid activityID)
 => OperationResult.FromResult(await FlashSaleManager.UpdateFlashSaleCacheAsync(activityID));
コード例 #24
0
 public async Task <OperationResult <bool> > RefreshSeckillDefaultDataByScheduleAsync(string schedule)
 {
     return(await OperationResult.FromResultAsync(FlashSaleManager.RefreshSeckillDefaultDataByScheduleAsync(schedule)));
 }
コード例 #25
0
 public async Task <OperationResult <IEnumerable <FlashSaleModel> > > SelectSecondKillTodayDataAsync(int activityType, DateTime?scheduleDate = null, bool needProducts = true, bool excludeProductTags = false)
 => OperationResult.FromResult(await FlashSaleManager.SelectSecondKillTodayDataAsync(activityType, scheduleDate, needProducts, excludeProductTags));
コード例 #26
0
 public async Task <OperationResult <Dictionary <string, List <SeckilScheduleInfoRespnose> > > > GetSeckillScheduleInfoAsync(List <string> pids, DateTime sSchedule, DateTime eSchedule)
 {
     return(await OperationResult.FromResultAsync(FlashSaleManager.GetSeckillScheduleInfoAsync(pids, sSchedule, eSchedule)));
 }
コード例 #27
0
 /// <summary>
 /// 获取保养活动状态
 /// </summary>
 /// <param name="activityId"></param>
 /// <param name="userId"></param>
 /// <param name="regionId"></param>
 /// <returns></returns>
 public Task <OperationResult <FixedPriceActivityStatusResult> > GetFixedPriceActivityStatusAsync(Guid activityId, Guid userId, int regionId)
 => OperationResult.FromResultAsync(FlashSaleManager.GetFixedPriceActivityStatus(activityId, userId, regionId));
コード例 #28
0
 /// <inheritdoc />
 /// <summary>
 /// 查询首页天天秒杀数据
 /// </summary>
 /// <param name="request">查询个数</param>
 /// <returns></returns>
 public async Task <OperationResult <List <FlashSaleModel> > > SelectHomeSeckillDataAsync(SelectHomeSecKillRequest request)
 {
     return(await OperationResult.FromResultAsync(FlashSaleManager.SelectHomeSeckillDataWithMemoryAsync(request)));
 }
コード例 #29
0
 public async Task <OperationResult <List <SeckillAvailableStockInfoResponse> > > GetSeckillAvailableStockResponseAsync(List <SeckillAvailableStockInfoRequest> request)
 {
     return(await OperationResult.FromResultAsync(FlashSaleManager.GetSeckillAvailableStockResponseAsync(request)));
 }
コード例 #30
0
 /// <summary>
 /// 减少计数器
 /// </summary>
 /// <param name="activityId">活动ID</param>
 /// <returns></returns>
 public Task <OperationResult <bool> > DecrementCounterAsync(int orderId)
 => OperationResult.FromResultAsync(FlashSaleManager.DecrementCounter(orderId));