Example #1
0
        private void GivePrize(List <GameRankInfoModel> rankList)
        {
            //1.遍历排行榜 调用接口发放奖品
            using (var client = new GameClient())
            {
                foreach (var item in rankList)
                {
                    try
                    {
                        var lootRequest = new GameUserLootRequest()
                        {
                            UserId      = item.UserID,
                            PrizeId     = item.Rank,
                            GameVersion = GameVersionEnum.BUMBLEBEE,
                        };
                        var userLootResult = client.GameUserLoot(lootRequest);
                        if (!userLootResult.Success)
                        {
                            Logger.Warn($"GameGivePrizeJob => GameUserLoot失败,:{JsonConvert.SerializeObject(item)},ErrorMessage:{userLootResult.ErrorMessage} ");
                        }

                        //等待
                        Thread.Sleep(50);
                    }
                    catch (Exception ex)
                    {
                        Logger.Error($"GameGivePrizeJob => GameUserLoot异常,:{JsonConvert.SerializeObject(item)}, ", ex);
                    }
                }
            }
        }
Example #2
0
        /// <summary>
        ///     用户领取奖品
        /// </summary>
        /// <param name="request"></param>
        /// <returns></returns>
        public static async Task <OperationResult <GameUserLootResponse> > GameUserLootAsync(GameUserLootRequest request)
        {
            try
            {
                var manager = GameManagerFactory.GetGameManager(request.GameVersion);
                if (manager == null)
                {
                    // 未实现
                    return(OperationResult.FromError <GameUserLootResponse>("-3", Resource.Invalid_Game_NotImpl));
                }

                var result = await manager.GameUserLootAsync(request);

                if (string.IsNullOrWhiteSpace(result.errCode) && result.response != null)
                {
                    return(OperationResult.FromResult(result.response));
                }

                return(OperationResult.FromError <GameUserLootResponse>(result.errCode, result.errMsg));
            }
            catch (NotImplementedException e)
            {
                // 未实现
                return(OperationResult.FromError <GameUserLootResponse>("-3", Resource.Invalid_Game_NotImpl));
            }
        }
 /// <summary>
 ///     用户兑换奖品
 /// </summary>
 /// <param name="request"></param>
 /// <returns></returns>
 public abstract Task <(string errCode, string errMsg, GameUserLootResponse response)> GameUserLootAsync(
     GameUserLootRequest request);
Example #4
0
 /// <summary>
 ///     用户领取奖品
 ///     -1 -2  程序异常
 ///     -9     非法提交
 ///     -10    没有奖品了
 ///     -15    奖品异常
 ///     -20    不足以兑换奖品
 ///     -30    配置异常
 ///     -40    用户信息异常
 ///     -45    您的积分不足
 ///     -50    发放奖品失败
 ///     -60    已领取过
 ///     -90    活动尚未开始或者活动已经结束
 /// </summary>
 /// <param name="request"></param>
 /// <returns></returns>
 public async Task <OperationResult <GameUserLootResponse> > GameUserLootAsync(GameUserLootRequest request)
 {
     return(await GameManager.GameUserLootAsync(request));
 }