/// <summary>
        ///     小游戏 - 删除游戏的人员数据 - 内部用
        /// </summary>
        /// <param name="request"></param>
        /// <returns></returns>
        public virtual async Task <bool> DeleteGameUserDataAsync(DeleteGameUserDataRequest request)
        {
            try
            {
                var gameVersion = GameVersion;
                var userId      = request.UserId;
                // 删除用户相关数据
                using (var dbHelper = DbHelper.CreateDbHelper())
                {
                    await Task.WhenAll(
                        DalGameUserInfo.DeleteGameUserInfoAsync(dbHelper, gameVersion, userId),
                        DalGameUserPointDetail.DeleteGameUserPointDetailAsync(dbHelper, gameVersion, userId),
                        DalGameUserPrize.DeleteGameUserPrizeAsync(dbHelper, gameVersion, userId),
                        DalGameUserShare.DeleteGameUserShareAsync(dbHelper, gameVersion, userId)
                        );
                }

                return(true);
            }
            catch (Exception e)
            {
                Logger.Error(
                    $"{ManagerName} -> DeleteGameUserDataAsync -> {JsonConvert.SerializeObject(request)} ",
                    e.InnerException ?? e);
                throw;
            }
        }
        /// <summary>
        ///     获取 用户信息
        /// </summary>
        /// <param name="request"></param>
        /// <returns></returns>
        public virtual async Task <GetGameUserInfoResponse> GetGameUserInfoAsync(GetGameUserInfoRequest request)
        {
            try
            {
                var gameVersion = GameVersion;

                // 获取用户信息
                var taskUserInfo = DalGameUserInfo.GetGameUserInfoAsync(true, gameVersion, request.UserId);

                // 获取用户已领取奖品
                var taskUserPrizeList = DalGameUserPrize.GetGameUserPrizeAsync(true, gameVersion, request.UserId);

                await Task.WhenAll(taskUserInfo, taskUserPrizeList);

                var result = new GetGameUserInfoResponse();

                result.Point = taskUserInfo.Result?.Point ?? 0;

                result.PrizeItems = taskUserPrizeList
                                    .Result?
                                    .Select(p => new GetGameUserInfoResponsePrizeItems
                {
                    PrizeName      = p.PrizeName,
                    PrizePic       = p.PrizePicUrl,
                    PrizeDesc      = p.PrizeDesc,
                    PrizeTitle     = p.PrizeTitle,
                    PrizeStartTime = p.PrizeStartTime,
                    PrizeEndTime   = p.PrizeEndTime
                })
                                    .ToList();


                return(result);
            }
            catch (Exception e)
            {
                Logger.Error($"{ManagerName} -> GetGameUserInfoAsync -> {JsonConvert.SerializeObject(request)} ",
                             e.InnerException ?? e);
                throw;
            }
        }