提交代码
This commit is contained in:
parent
58ed076b13
commit
d3a0c9024e
|
|
@ -4,6 +4,7 @@ using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
using System.Text;
|
using System.Text;
|
||||||
|
using System.Threading.Channels;
|
||||||
using System.Threading.Tasks;
|
using System.Threading.Tasks;
|
||||||
|
|
||||||
namespace CloudGaming.Code.AppExtend
|
namespace CloudGaming.Code.AppExtend
|
||||||
|
|
@ -25,12 +26,12 @@ namespace CloudGaming.Code.AppExtend
|
||||||
{
|
{
|
||||||
if (!(httpRequest?.Headers?.TryGetValue("Channel", out var _channel) ?? false))
|
if (!(httpRequest?.Headers?.TryGetValue("Channel", out var _channel) ?? false))
|
||||||
{
|
{
|
||||||
_channel = "27001";
|
_channel = "ps_001";
|
||||||
}
|
}
|
||||||
channel = _channel;
|
channel = _channel;
|
||||||
if (string.IsNullOrEmpty(channel))
|
if (string.IsNullOrEmpty(channel))
|
||||||
{
|
{
|
||||||
channel = "27001";
|
channel = "ps_001";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return channel;
|
return channel;
|
||||||
|
|
@ -48,9 +49,30 @@ namespace CloudGaming.Code.AppExtend
|
||||||
{
|
{
|
||||||
if (string.IsNullOrEmpty(platform))
|
if (string.IsNullOrEmpty(platform))
|
||||||
{
|
{
|
||||||
|
|
||||||
if (!(httpRequest?.Headers.TryGetValue("Platform", out var _platform) ?? false))
|
if (!(httpRequest?.Headers.TryGetValue("Platform", out var _platform) ?? false))
|
||||||
{
|
{
|
||||||
_platform = "android";
|
_platform = "";
|
||||||
|
}
|
||||||
|
if (string.IsNullOrEmpty(_platform))
|
||||||
|
{
|
||||||
|
|
||||||
|
if (Channel.StartsWith("ps_"))
|
||||||
|
{
|
||||||
|
_platform = AppPlatform.android.ToString();
|
||||||
|
}
|
||||||
|
else if (Channel.StartsWith("ios_"))
|
||||||
|
{
|
||||||
|
_platform = AppPlatform.ios.ToString();
|
||||||
|
}
|
||||||
|
else if (Channel.StartsWith("cs_"))
|
||||||
|
{
|
||||||
|
_platform = AppPlatform.car.ToString();
|
||||||
|
}
|
||||||
|
else if (Channel.StartsWith("ts_"))
|
||||||
|
{
|
||||||
|
_platform = AppPlatform.tv.ToString();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
platform = _platform;
|
platform = _platform;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -100,7 +100,7 @@ public class CloudGamingCache
|
||||||
{
|
{
|
||||||
if (gameEntityCache == null)
|
if (gameEntityCache == null)
|
||||||
{
|
{
|
||||||
gameEntityCache = new GameEntityCache(_gamingBase.Dao, _gamingBase.RedisCache, _gamingBase.Mapper, _gamingBase.AppConfig, _gamingBase.AppRequestInfo.Language);
|
gameEntityCache = new GameEntityCache(_gamingBase.Dao, _gamingBase.RedisCache, _gamingBase.Mapper, _gamingBase.AppConfig, _gamingBase.AppRequestInfo.Language, _gamingBase.AppRequestInfo.Platform);
|
||||||
}
|
}
|
||||||
return gameEntityCache;
|
return gameEntityCache;
|
||||||
}
|
}
|
||||||
|
|
@ -329,9 +329,13 @@ public static class CloudGamingCacheExtend
|
||||||
cloudGamingBase.Cache.AppConfigCache.ClearLocalData();
|
cloudGamingBase.Cache.AppConfigCache.ClearLocalData();
|
||||||
cloudGamingBase.Cache.ProductCacheEntityCache.ClearLocalData();
|
cloudGamingBase.Cache.ProductCacheEntityCache.ClearLocalData();
|
||||||
cloudGamingBase.Cache.AppImageCache.ClearLocalData();
|
cloudGamingBase.Cache.AppImageCache.ClearLocalData();
|
||||||
cloudGamingBase.Cache.GameEntityCache.ClearLocalData();
|
//cloudGamingBase.Cache.GameEntityCache.ClearLocalData();
|
||||||
cloudGamingBase.Cache.RedemptionCodeEntityCache.ClearLocalData();
|
cloudGamingBase.Cache.RedemptionCodeEntityCache.ClearLocalData();
|
||||||
cloudGamingBase.Cache.SevenDayEntityCache.ClearLocalData();
|
cloudGamingBase.Cache.SevenDayEntityCache.ClearLocalData();
|
||||||
|
var gameEntityCache = new GameEntityCache(cloudGamingBase.Dao, cloudGamingBase.RedisCache, cloudGamingBase.Mapper, cloudGamingBase.AppConfig, cloudGamingBase.AppRequestInfo.Language, AppPlatform.android.ToString());
|
||||||
|
gameEntityCache.ClearData();
|
||||||
|
var gameEntityCache1 = new GameEntityCache(cloudGamingBase.Dao, cloudGamingBase.RedisCache, cloudGamingBase.Mapper, cloudGamingBase.AppConfig, cloudGamingBase.AppRequestInfo.Language, AppPlatform.car.ToString());
|
||||||
|
gameEntityCache1.ClearData();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -19,18 +19,23 @@ namespace CloudGaming.Code.Cache.Special
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 游戏缓存表
|
/// 游戏缓存表
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public class GameEntityCache(DAO dao, IDatabase database, IMapper mapper, AppConfig appConfig, string language) : CommonDataEntityCache<GameInfo>(GameEntityCache.GameEntityCacheLock, 60 * 60 * 24 * 7), ICacheClearLocalData
|
public class GameEntityCache(DAO dao, IDatabase database, IMapper mapper, AppConfig appConfig, string language, string platform) : CommonDataEntityCache<GameInfo>(GameEntityCache.GameEntityCacheLock, 60 * 60 * 24 * 7), ICacheClearLocalData
|
||||||
{
|
{
|
||||||
public static object GameEntityCacheLock;
|
public static object GameEntityCacheLock;
|
||||||
|
|
||||||
public override string key => $"{appConfig.Identifier}:game:gameInfo:{language}";
|
/// <summary>
|
||||||
|
///
|
||||||
|
/// </summary>
|
||||||
|
public override string key => $"{appConfig.Identifier}:game:gameInfo:{platform}:{language}";
|
||||||
|
|
||||||
public string locaKey => $"lock:gameInfo:{language}";
|
public string locaKey => $"lock:gameInfo:{platform}:{language}";
|
||||||
public string RedisKey => $"cache:game:gameInfo:{language}";
|
public string RedisKey => $"cache:game:gameInfo:{platform}:{language}";
|
||||||
|
|
||||||
public override List<GameInfo> GetDataList()
|
public override List<GameInfo> GetDataList()
|
||||||
{
|
{
|
||||||
|
//dao.DaoPhone.Context.T_GameCBT.AsNoTracking().Where(it => it.IsOnline&&it.OnlinePlatform==)
|
||||||
var gameCbtList = dao.DaoPhone.Context.T_GameCBT.AsNoTracking().Where(it => it.IsOnline).ToList() ?? new List<T_GameCBT>();
|
var gameCbtList = dao.DaoPhone.Context.T_GameCBT.AsNoTracking().Where(it => it.IsOnline).ToList() ?? new List<T_GameCBT>();
|
||||||
|
|
||||||
var gameListDict = dao.DaoGame.Context.T_Game_List.AsNoTracking().ToDictionary(g => g.GameId);
|
var gameListDict = dao.DaoGame.Context.T_Game_List.AsNoTracking().ToDictionary(g => g.GameId);
|
||||||
var gameChildList = dao.DaoGame.Context.T_Game_ChildList.AsNoTracking().ToList();
|
var gameChildList = dao.DaoGame.Context.T_Game_ChildList.AsNoTracking().ToList();
|
||||||
var gameTypesDict = dao.DaoGame.Context.T_Game_Types.AsNoTracking().ToDictionary(type => type.TypeId) ?? new Dictionary<int, T_Game_Types>();
|
var gameTypesDict = dao.DaoGame.Context.T_Game_Types.AsNoTracking().ToDictionary(type => type.TypeId) ?? new Dictionary<int, T_Game_Types>();
|
||||||
|
|
@ -72,48 +77,96 @@ namespace CloudGaming.Code.Cache.Special
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
var gameLanguageDic = AppLanguage.GetAppLanguageGame(appConfig, language);
|
var gameLanguageDic = AppLanguage.GetAppLanguageGame(appConfig, language);
|
||||||
|
|
||||||
var faker = new Faker("zh_CN");
|
var faker = new Faker("zh_CN");
|
||||||
var gameInfos = gameCbtList
|
List<GameInfo> gameInfos = new List<GameInfo>();
|
||||||
.Where(gameCbt => gameListDict.ContainsKey(gameCbt.GameId))
|
foreach (var gameId in gameListDict.Keys)
|
||||||
.Select(gameCbt =>
|
{
|
||||||
|
var gameCbt = gameCbtList.FirstOrDefault(it => it.GameId == gameId && it.OnlinePlatform == platform);
|
||||||
|
if (gameCbt == null)
|
||||||
{
|
{
|
||||||
var game = gameListDict[gameCbt.GameId];
|
gameCbt = gameCbtList.FirstOrDefault(it => it.GameId == gameId && string.IsNullOrEmpty(it.OnlinePlatform));
|
||||||
var gameInfo = mapper.Map<GameInfo>(gameCbt);
|
}
|
||||||
game.ToGameInfo(gameInfo);
|
if (gameCbt == null)
|
||||||
//game.GameName
|
{
|
||||||
gameInfo.GameType = GetGameExtendedAttributes(gameChildList, gameCbt.GameId, 1, gameTypesDict);
|
continue;
|
||||||
gameInfo.GameTags = GetGameExtendedAttributes(gameChildList, gameCbt.GameId, 2, gameTagsDict);
|
}
|
||||||
if (!gameUserShare.TryGetValue(gameCbt.GameId, out string NickName))
|
var game = gameListDict[gameCbt.GameId];
|
||||||
{
|
var gameInfo = mapper.Map<GameInfo>(gameCbt);
|
||||||
string chineseName = faker.Internet.UserName();
|
game.ToGameInfo(gameInfo);
|
||||||
NickName = chineseName;
|
//game.GameName
|
||||||
}
|
gameInfo.GameType = GetGameExtendedAttributes(gameChildList, gameCbt.GameId, 1, gameTypesDict);
|
||||||
gameInfo.GameShare = $"{NickName}";
|
gameInfo.GameTags = GetGameExtendedAttributes(gameChildList, gameCbt.GameId, 2, gameTagsDict);
|
||||||
var gameLanguageInfo = gameLanguageDic.GetAppGameLanguage(gameInfo);
|
if (!gameUserShare.TryGetValue(gameCbt.GameId, out string NickName))
|
||||||
if (gameLanguageInfo != null)
|
{
|
||||||
{
|
string chineseName = faker.Internet.UserName();
|
||||||
gameInfo.GameName = gameLanguageInfo.GameName;
|
NickName = chineseName;
|
||||||
gameInfo.GameIntroduce = gameLanguageInfo.GameIntroduce;
|
}
|
||||||
gameInfo.GameShare = gameLanguageInfo.GameShare;
|
gameInfo.GameShare = $"{NickName}";
|
||||||
}
|
var gameLanguageInfo = gameLanguageDic.GetAppGameLanguage(gameInfo);
|
||||||
gameInfo.GameIntroduce = $"<div style=\"color:#ffffff !important;\">{gameInfo.GameIntroduce}</div>";
|
if (gameLanguageInfo != null)
|
||||||
gameInfo.GameShareUserIcon = 90001;
|
{
|
||||||
if (gameInfo.ConsumeDiamondNumHour == 0)
|
gameInfo.GameName = gameLanguageInfo.GameName;
|
||||||
{
|
gameInfo.GameIntroduce = gameLanguageInfo.GameIntroduce;
|
||||||
gameInfo.ConsumeDiamondNumHour = defaultConsumeDiamondNumHour;
|
gameInfo.GameShare = gameLanguageInfo.GameShare;
|
||||||
}
|
}
|
||||||
if (gameInfo.ConsumeDiamondNumHour > 0)
|
gameInfo.GameIntroduce = $"<div style=\"color:#ffffff !important;\">{gameInfo.GameIntroduce}</div>";
|
||||||
{
|
gameInfo.GameShareUserIcon = 90001;
|
||||||
gameInfo.GameDetailsofCharges = $"游戏资费:游玩按分钟计费,{gameInfo.ConsumeDiamondNumHour}钻石/小时。";
|
if (gameInfo.ConsumeDiamondNumHour == 0)
|
||||||
}
|
{
|
||||||
else
|
gameInfo.ConsumeDiamondNumHour = defaultConsumeDiamondNumHour;
|
||||||
{
|
}
|
||||||
gameInfo.GameDetailsofCharges = $"游戏免费";
|
if (gameInfo.ConsumeDiamondNumHour > 0)
|
||||||
}
|
{
|
||||||
//gameInfo.GameIntroduce
|
gameInfo.GameDetailsofCharges = $"游戏资费:游玩按分钟计费,{gameInfo.ConsumeDiamondNumHour}钻石/小时。";
|
||||||
return gameInfo;
|
}
|
||||||
})
|
else
|
||||||
.ToList();
|
{
|
||||||
|
gameInfo.GameDetailsofCharges = $"游戏免费";
|
||||||
|
}
|
||||||
|
gameInfos.Add(gameInfo);
|
||||||
|
}
|
||||||
|
//var gameInfos = gameCbtList
|
||||||
|
// .Where(gameCbt => gameListDict.ContainsKey(gameCbt.GameId))
|
||||||
|
// .Select(gameCbt =>
|
||||||
|
// {
|
||||||
|
// var game = gameListDict[gameCbt.GameId];
|
||||||
|
// var gameInfo = mapper.Map<GameInfo>(gameCbt);
|
||||||
|
// game.ToGameInfo(gameInfo);
|
||||||
|
// //game.GameName
|
||||||
|
// gameInfo.GameType = GetGameExtendedAttributes(gameChildList, gameCbt.GameId, 1, gameTypesDict);
|
||||||
|
// gameInfo.GameTags = GetGameExtendedAttributes(gameChildList, gameCbt.GameId, 2, gameTagsDict);
|
||||||
|
// if (!gameUserShare.TryGetValue(gameCbt.GameId, out string NickName))
|
||||||
|
// {
|
||||||
|
// string chineseName = faker.Internet.UserName();
|
||||||
|
// NickName = chineseName;
|
||||||
|
// }
|
||||||
|
// gameInfo.GameShare = $"{NickName}";
|
||||||
|
// var gameLanguageInfo = gameLanguageDic.GetAppGameLanguage(gameInfo);
|
||||||
|
// if (gameLanguageInfo != null)
|
||||||
|
// {
|
||||||
|
// gameInfo.GameName = gameLanguageInfo.GameName;
|
||||||
|
// gameInfo.GameIntroduce = gameLanguageInfo.GameIntroduce;
|
||||||
|
// gameInfo.GameShare = gameLanguageInfo.GameShare;
|
||||||
|
// }
|
||||||
|
// gameInfo.GameIntroduce = $"<div style=\"color:#ffffff !important;\">{gameInfo.GameIntroduce}</div>";
|
||||||
|
// gameInfo.GameShareUserIcon = 90001;
|
||||||
|
// if (gameInfo.ConsumeDiamondNumHour == 0)
|
||||||
|
// {
|
||||||
|
// gameInfo.ConsumeDiamondNumHour = defaultConsumeDiamondNumHour;
|
||||||
|
// }
|
||||||
|
// if (gameInfo.ConsumeDiamondNumHour > 0)
|
||||||
|
// {
|
||||||
|
// gameInfo.GameDetailsofCharges = $"游戏资费:游玩按分钟计费,{gameInfo.ConsumeDiamondNumHour}钻石/小时。";
|
||||||
|
// }
|
||||||
|
// else
|
||||||
|
// {
|
||||||
|
// gameInfo.GameDetailsofCharges = $"游戏免费";
|
||||||
|
// }
|
||||||
|
// //gameInfo.GameIntroduce
|
||||||
|
// return gameInfo;
|
||||||
|
// })
|
||||||
|
// .ToList();
|
||||||
|
|
||||||
return gameInfos;
|
return gameInfos;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -25,7 +25,13 @@ namespace CloudGaming.Code.Epg
|
||||||
/// <returns></returns>
|
/// <returns></returns>
|
||||||
public async Task<List<EpgCategoryDto>> GetHomeInfo()
|
public async Task<List<EpgCategoryDto>> GetHomeInfo()
|
||||||
{
|
{
|
||||||
var listQueryable = GetEpgCategory(EpgEnum.EpgCatIdName.大厅首页).AsQueryable();
|
var home = Cache.EpgCategoryCfg.Where(it => it.IdName.Contains(EpgEnum.EpgCatIdName.大厅首页) && it.Platform == AppRequestInfo.Platform).FirstOrDefault();
|
||||||
|
if (home == null)
|
||||||
|
{
|
||||||
|
home = Cache.EpgCategoryCfg.Where(it => it.IdName.Contains(EpgEnum.EpgCatIdName.大厅首页) && string.IsNullOrEmpty(it.Platform)).FirstOrDefault();
|
||||||
|
}
|
||||||
|
string homeStr = home?.IdName ?? "Home";
|
||||||
|
var listQueryable = GetEpgCategory(homeStr).AsQueryable();
|
||||||
if (IsChecking)
|
if (IsChecking)
|
||||||
{
|
{
|
||||||
listQueryable = listQueryable.Where(it => it.ShowStatus == 0 || it.ShowStatus == 2).AsQueryable();
|
listQueryable = listQueryable.Where(it => it.ShowStatus == 0 || it.ShowStatus == 2).AsQueryable();
|
||||||
|
|
@ -51,8 +57,8 @@ namespace CloudGaming.Code.Epg
|
||||||
{
|
{
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
var epgInfo = item.ToEpgInfo(Cache.GameEntityCache,it.DefaultImageStyle);
|
var epgInfo = item.ToEpgInfo(Cache.GameEntityCache, it.DefaultImageStyle);
|
||||||
if (epgInfo != null)
|
if (epgInfo != null)
|
||||||
{
|
{
|
||||||
list.Add(epgInfo);
|
list.Add(epgInfo);
|
||||||
|
|
|
||||||
|
|
@ -146,5 +146,15 @@ namespace CloudGaming.AppConfigModel
|
||||||
/// </summary>
|
/// </summary>
|
||||||
App
|
App
|
||||||
}
|
}
|
||||||
|
/// <summary>
|
||||||
|
/// 手机平台
|
||||||
|
/// </summary>
|
||||||
|
public enum AppPlatform
|
||||||
|
{
|
||||||
|
android,
|
||||||
|
ios,
|
||||||
|
tv,
|
||||||
|
car,
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue
Block a user