diff --git a/src/CloudGaming/Api/CloudGaming.Api/Controllers/GameController.cs b/src/CloudGaming/Api/CloudGaming.Api/Controllers/GameController.cs index 798b456..4117bce 100644 --- a/src/CloudGaming/Api/CloudGaming.Api/Controllers/GameController.cs +++ b/src/CloudGaming/Api/CloudGaming.Api/Controllers/GameController.cs @@ -74,5 +74,18 @@ namespace CloudGaming.Api.Controllers GameBLL gamebll = new GameBLL(this.ServiceProvider); return gamebll.GameRecommendations(gameId); } + /// + /// 游戏搜索 + /// + /// + /// + [HttpGet] + public List GameSearch([FromQuery] string? gameId) + { + + GameBLL gamebll = new GameBLL(this.ServiceProvider); + return gamebll.GameSearch(gameId); + } + } } diff --git a/src/CloudGaming/Api/CloudGaming.Api/Dockerfile b/src/CloudGaming/Api/CloudGaming.Api/Dockerfile index 9f8f60f..d88b6b0 100644 --- a/src/CloudGaming/Api/CloudGaming.Api/Dockerfile +++ b/src/CloudGaming/Api/CloudGaming.Api/Dockerfile @@ -4,8 +4,7 @@ FROM mcr.microsoft.com/dotnet/aspnet:8.0 AS base USER app WORKDIR /app -EXPOSE 8080 -EXPOSE 8081 +EXPOSE 80 # 此阶段用于生成服务项目 diff --git a/src/CloudGaming/Code/CloudGaming.Code/Cache/Special/GameEntityCache.cs b/src/CloudGaming/Code/CloudGaming.Code/Cache/Special/GameEntityCache.cs index 53cbd72..cac4c5e 100644 --- a/src/CloudGaming/Code/CloudGaming.Code/Cache/Special/GameEntityCache.cs +++ b/src/CloudGaming/Code/CloudGaming.Code/Cache/Special/GameEntityCache.cs @@ -69,14 +69,12 @@ namespace CloudGaming.Code.Cache.Special string chineseName = faker.Internet.UserName(); NickName = chineseName; } - gameInfo.GameShare = $"此游戏由{NickName}分享。"; + gameInfo.GameShare = $"{NickName}"; gameInfo.GameShareUserIcon = 90001; if (gameInfo.ConsumeDiamondNumHour == 0) { gameInfo.ConsumeDiamondNumHour = defaultConsumeDiamondNumHour; } - - if (gameInfo.ConsumeDiamondNumHour > 0) { gameInfo.GameDetailsofCharges = $"游戏资费:游玩按分钟计费,{gameInfo.ConsumeDiamondNumHour}钻石/小时。"; diff --git a/src/CloudGaming/Code/CloudGaming.Code/Epg/EpgBLL.cs b/src/CloudGaming/Code/CloudGaming.Code/Epg/EpgBLL.cs index dcd8d67..3248ce0 100644 --- a/src/CloudGaming/Code/CloudGaming.Code/Epg/EpgBLL.cs +++ b/src/CloudGaming/Code/CloudGaming.Code/Epg/EpgBLL.cs @@ -51,7 +51,7 @@ namespace CloudGaming.Code.Epg { return; } - var epgInfo = item.ToEpgInfo(Cache.GameEntityCache); + var epgInfo = item.ToEpgInfo(Cache.GameEntityCache,it.DefaultImageStyle); if (epgInfo != null) { list.Add(epgInfo); diff --git a/src/CloudGaming/Code/CloudGaming.Code/Epg/EpgExtend.cs b/src/CloudGaming/Code/CloudGaming.Code/Epg/EpgExtend.cs index b0f5875..bbec2dc 100644 --- a/src/CloudGaming/Code/CloudGaming.Code/Epg/EpgExtend.cs +++ b/src/CloudGaming/Code/CloudGaming.Code/Epg/EpgExtend.cs @@ -1,5 +1,6 @@ using CloudGaming.Code.Cache.Special; using CloudGaming.DtoModel.Epg; +using CloudGaming.DtoModel.Game; using System; using System.Collections.Generic; @@ -20,7 +21,7 @@ namespace CloudGaming.Code.Epg /// /// /// - public static EpgInfo ToEpgInfo(this T_Epg_Cfg epgCfg, GameEntityCache gameEntityCache) + public static EpgInfo ToEpgInfo(this T_Epg_Cfg epgCfg, GameEntityCache gameEntityCache, int defaultImageStyle) { if (epgCfg.ResType == (int)EpgEnum.EpgResType.游戏 && string.IsNullOrEmpty(epgCfg.ResId)) { @@ -55,18 +56,14 @@ namespace CloudGaming.Code.Epg { epgInfo.SubTitle = gameInfo.Title2; } - - if (epgInfo.ImageUrl == 0 && !string.IsNullOrEmpty(epgCfg.ImageResStyle)) + if (epgCfg.ImageResStyle == 0) { - epgInfo.ImageUrl = epgCfg.ImageResStyle switch - { - var style when style == ((int)ImageResStyle.Game尊享推荐_312_420).ToString() => gameInfo.ImageId_ZXTJ, - var style when style == ((int)ImageResStyle.Game推荐位大图_984_520).ToString() => gameInfo.ImageId_TJ, - var style when style == ((int)ImageResStyle.Game游戏库_180_180).ToString() => gameInfo.GameImageId, - var style when style == ((int)ImageResStyle.Game最近推出_360_548).ToString() => gameInfo.ImageId_ZJTC, - var style when style == ((int)ImageResStyle.Game精选推荐_474_300).ToString() => gameInfo.ImageId_JXTJ, - _ => epgInfo.ImageUrl - }; + epgCfg.ImageResStyle = defaultImageStyle; + } + //defaultImageStyle + if (epgInfo.ImageUrl == 0 && epgCfg.ImageResStyle != 0) + { + epgInfo.ImageUrl = ((ImageResStyle)epgCfg.ImageResStyle).GetImageResStyle(gameInfo); } epgInfo.Score = gameInfo.Score ?? string.Empty; @@ -74,5 +71,7 @@ namespace CloudGaming.Code.Epg return epgInfo; } + + } } diff --git a/src/CloudGaming/Code/CloudGaming.Code/Game/GameBLL.cs b/src/CloudGaming/Code/CloudGaming.Code/Game/GameBLL.cs index 4ccb75f..643a808 100644 --- a/src/CloudGaming/Code/CloudGaming.Code/Game/GameBLL.cs +++ b/src/CloudGaming/Code/CloudGaming.Code/Game/GameBLL.cs @@ -7,6 +7,8 @@ using System.Linq; using System.Text; using System.Threading.Tasks; +using static CloudGaming.DtoModel.Epg.EpgEnum; + namespace CloudGaming.Code.Game { /// @@ -54,7 +56,7 @@ namespace CloudGaming.Code.Game { var gameList = Cache.GameEntityCache?.DataList ?? new List(); var x = gameList.Where(it => it.GameType?.Any(item => item.Id == typeId) ?? false).Select(it => new - GameListDto(it)).ToList(); + GameListDto(it, ImageResStyle.游戏库)).ToList(); return x; }); return gameListDto; @@ -102,8 +104,47 @@ namespace CloudGaming.Code.Game { gameInfos = Cache.GameInfos.OrderBy(it => Guid.NewGuid()).Take(3).ToList(); } - var gameList = gameInfos?.Select(it => new GameListDto(it)).ToList(); + var gameList = gameInfos?.Select(it => new GameListDto(it, ImageResStyle.竖形图)).ToList(); return gameList ?? new List(); } + + /// + /// 游戏搜索 + /// + /// + /// + public List GameSearch(string gameName) + { + + + var gameIdMatches = Cache.GameInfos + .Where(it => it.GameId.Contains(gameName)) + .Select(it => new GameListDto(it, ImageResStyle.中等LOGO)) + .ToList(); + + var gameNameMatches = Cache.GameInfos + .Where(it => it.GameName.Contains(gameName)) + .Select(it => new GameListDto(it, ImageResStyle.中等LOGO)) + .ToList(); + + var gameIntroduceMatches = Cache.GameInfos + .Where(it => it.GameIntroduce.Contains(gameName) ) + .Select(it => new GameListDto(it, ImageResStyle.中等LOGO)) + .ToList(); + + var otherMatches = Cache.GameInfos + .Where(it => !it.GameId.Contains(gameName) && !it.GameName.Contains(gameName) && !it.GameIntroduce.Contains(gameName) && + (it.GameTags.Any(tag => tag.Name.Contains(gameName)) || it.GameType.Any(types => types.Name.Contains(gameName)))) + .Select(it => new GameListDto(it, ImageResStyle.中等LOGO)) + .ToList(); + + var list = gameIdMatches + .Concat(gameNameMatches) + .Concat(gameIntroduceMatches) + .Concat(otherMatches) + .Distinct() + .ToList(); + return list; + } } } diff --git a/src/CloudGaming/Model/CloudGaming.DtoModel/Epg/EpgEnum.cs b/src/CloudGaming/Model/CloudGaming.DtoModel/Epg/EpgEnum.cs index 3bead89..1b09bfe 100644 --- a/src/CloudGaming/Model/CloudGaming.DtoModel/Epg/EpgEnum.cs +++ b/src/CloudGaming/Model/CloudGaming.DtoModel/Epg/EpgEnum.cs @@ -1,9 +1,13 @@ +using CloudGaming.DtoModel.Game; + using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; +using static CloudGaming.DtoModel.Epg.EpgEnum; + namespace CloudGaming.DtoModel.Epg { /// @@ -29,6 +33,8 @@ namespace CloudGaming.DtoModel.Epg public const string 一起玩 = "GameLive"; public const string 一起看 = "VideoLive"; public const string 游玩历史 = "MyHistory"; + + } @@ -37,28 +43,32 @@ namespace CloudGaming.DtoModel.Epg /// public enum ImageResStyle { - /// - /// 游戏-尊享推荐, 竖版 Image_Shu - /// - Game尊享推荐_312_420 = 1, + /// - /// 游戏-推荐位大图 Image_Block2 + /// 小LOGO,适用于首页最近推出、游玩历史、游戏详情页logo。 /// - Game推荐位大图_984_520 = 2, - /// - /// 游戏-精选推荐, 豆腐块图 Image_Block - /// - Game精选推荐_474_300 = 3, - /// - /// 游戏-最近推出, 竖版2,高一点的(最近推出) Image_Shu2 - /// - Game最近推出_360_548 = 4, + 小LOGO = 1, /// - /// 游戏-游戏库, 正方形 (GameImageId) + /// 中等LOGO,适用于首页体育竞技、搜索。 /// - Game游戏库_180_180 = 5, + 中等LOGO = 2, + /// + /// 大LOGO,适用于首页爆款热门。 + /// + 大LOGO = 3, + /// + /// 竖形图,适用于首页蘑菇必玩、首页热血格斗、游戏详情页游戏推荐。 + /// + 竖形图 = 4, + + /// + /// 游戏库,适用于游戏库。 + /// + 游戏库 = 5, + + 系类 = 6, } @@ -91,4 +101,28 @@ namespace CloudGaming.DtoModel.Epg } + + public static class EpgEnumExtend + { + + /// + /// 获取对应样式的图片 + /// + /// + /// + /// + public static int GetImageResStyle(this ImageResStyle imageResStyle, GameInfo? gameInfo) + { + return imageResStyle switch + { + var style when style == ImageResStyle.小LOGO => gameInfo?.ImageIconId, + var style when style == ImageResStyle.中等LOGO => gameInfo?.ImageId_ShouSuo, + var style when style == ImageResStyle.大LOGO => gameInfo?.ImageId_RM, + var style when style == ImageResStyle.游戏库 => gameInfo?.ImageId_YXK, + var style when style == ImageResStyle.竖形图 => gameInfo?.ImageId_TJ, + var style when style == ImageResStyle.系类 => gameInfo?.ImageId_FK, + _ => 0 + } ?? 0; + } + } } diff --git a/src/CloudGaming/Model/CloudGaming.DtoModel/Game/GameInfoDto.cs b/src/CloudGaming/Model/CloudGaming.DtoModel/Game/GameInfoDto.cs index 04076e8..6a71ed6 100644 --- a/src/CloudGaming/Model/CloudGaming.DtoModel/Game/GameInfoDto.cs +++ b/src/CloudGaming/Model/CloudGaming.DtoModel/Game/GameInfoDto.cs @@ -76,7 +76,7 @@ namespace CloudGaming.DtoModel.Game public virtual string? GameIntroduce { get; set; } /// - /// 游戏分享 + /// 游戏分享者 /// public string GameShare { get; set; } diff --git a/src/CloudGaming/Model/CloudGaming.DtoModel/Game/GameListDto.cs b/src/CloudGaming/Model/CloudGaming.DtoModel/Game/GameListDto.cs index d58e359..e83a1d7 100644 --- a/src/CloudGaming/Model/CloudGaming.DtoModel/Game/GameListDto.cs +++ b/src/CloudGaming/Model/CloudGaming.DtoModel/Game/GameListDto.cs @@ -1,3 +1,5 @@ +using CloudGaming.DtoModel.Epg; + using HuanMeng.DotNetCore.AttributeExtend; using System; @@ -6,43 +8,59 @@ using System.Linq; using System.Text; using System.Threading.Tasks; -namespace CloudGaming.DtoModel.Game +using static CloudGaming.DtoModel.Epg.EpgEnum; + +namespace CloudGaming.DtoModel.Game; + +/// +/// 游戏列表数据 +/// +public class GameListDto { + public GameListDto() { } + /// - /// 游戏列表数据 + /// /// - public class GameListDto + /// + public GameListDto(GameInfo gameInfo, ImageResStyle imageResStyle) { - public GameListDto() { } - - /// - /// - /// - /// - public GameListDto(GameInfo gameInfo) + if (gameInfo != null) { - if (gameInfo != null) - { - this.GameName = gameInfo.GameName; - this.GameId = gameInfo.GameId; - this.GameIconImage = gameInfo.GameImageId; + this.GameName = gameInfo.GameName; + this.GameId = gameInfo.GameId; + this.GameIconImage = imageResStyle.GetImageResStyle(gameInfo); + - } } - /// - /// 游戏Id - /// - public string GameId { get; set; } - /// - /// 游戏名称 - /// - public string GameName { get; set; } + } + /// + /// 游戏Id + /// + public string GameId { get; set; } + /// + /// 游戏名称 + /// + public string GameName { get; set; } - /// - /// 游戏icon - /// - [Images] - public int GameIconImage { get; set; } + /// + /// 游戏icon + /// + [Images] + public int GameIconImage { get; set; } + + public override bool Equals(object obj) + { + if (obj is GameListDto other) + { + return string.Equals(this.GameId, other.GameId, StringComparison.Ordinal); + } + return false; + } + + public override int GetHashCode() + { + return this.GameId != null ? this.GameId.GetHashCode() : 0; } } diff --git a/src/CloudGaming/Model/CloudGaming.GameModel/Db/Db_Game/T_Game_List.cs b/src/CloudGaming/Model/CloudGaming.GameModel/Db/Db_Game/T_Game_List.cs index 1bb0f28..ddfed17 100644 --- a/src/CloudGaming/Model/CloudGaming.GameModel/Db/Db_Game/T_Game_List.cs +++ b/src/CloudGaming/Model/CloudGaming.GameModel/Db/Db_Game/T_Game_List.cs @@ -1,4 +1,4 @@ -using System; +using System; namespace CloudGaming.GameModel.Db.Db_Game; @@ -94,7 +94,7 @@ public partial class T_Game_List /// /// 游戏难度 /// - public virtual string GameDifficulty { get; set; } = null!; + public virtual string? GameDifficulty { get; set; } /// /// 游戏发行方 diff --git a/src/CloudGaming/Model/CloudGaming.Model/DbSqlServer/Db_Phone/CloudGamingPhoneContext.cs b/src/CloudGaming/Model/CloudGaming.Model/DbSqlServer/Db_Phone/CloudGamingPhoneContext.cs index bb20490..59a0462 100644 --- a/src/CloudGaming/Model/CloudGaming.Model/DbSqlServer/Db_Phone/CloudGamingPhoneContext.cs +++ b/src/CloudGaming/Model/CloudGaming.Model/DbSqlServer/Db_Phone/CloudGamingPhoneContext.cs @@ -190,6 +190,7 @@ public partial class CloudGamingPhoneContext : MultiTenantDbContext//DbContext .IsUnicode(false) .HasComment("上线渠道,0不限制") .UseCollation("Chinese_PRC_CI_AS"); + entity.Property(e => e.DefaultImageStyle).HasComment("默认使用的资源图"); entity.Property(e => e.EpgParentCategory).HasComment("epg父组Id, 0无"); entity.Property(e => e.IdName) .HasMaxLength(50) @@ -213,6 +214,7 @@ public partial class CloudGamingPhoneContext : MultiTenantDbContext//DbContext entity.Property(e => e.ShowStatus) .HasDefaultValue(1) .HasComment("显示状态。0全部显示,1审核模式下不显示,2正常模式下不显示,审核显示"); + entity.Property(e => e.TenantId).HasComment("租户"); //添加全局筛选器 if (this.TenantInfo != null) { @@ -229,7 +231,6 @@ public partial class CloudGamingPhoneContext : MultiTenantDbContext//DbContext entity.Property(e => e.Id).HasComment("标识"); entity.Property(e => e.Channel) .HasMaxLength(50) - .IsUnicode(false) .HasComment("渠道") .UseCollation("Chinese_PRC_CI_AS"); entity.Property(e => e.Continent) @@ -256,15 +257,11 @@ public partial class CloudGamingPhoneContext : MultiTenantDbContext//DbContext entity.Property(e => e.ImageId).HasComment("图片"); entity.Property(e => e.ImageId2).HasComment("图片2-预留"); entity.Property(e => e.ImageId3).HasComment("图片3"); - entity.Property(e => e.ImageResStyle) - .HasMaxLength(50) - .HasComment("使用原始资源图样式n_n") - .UseCollation("Chinese_PRC_CI_AS"); + entity.Property(e => e.ImageResStyle).HasComment("使用原始资源图样式n_n"); entity.Property(e => e.IsOnline).HasComment("是否启用"); entity.Property(e => e.OrderId).HasComment("排序-正序"); entity.Property(e => e.Platform) .HasMaxLength(50) - .IsUnicode(false) .HasComment("平台,安卓还是ios") .UseCollation("Chinese_PRC_CI_AS"); entity.Property(e => e.ResId) @@ -358,19 +355,19 @@ public partial class CloudGamingPhoneContext : MultiTenantDbContext//DbContext .HasMaxLength(100) .HasComment("游戏Id") .UseCollation("Chinese_PRC_CI_AS"); - entity.Property(e => e.GameImageId).HasComment("游戏库Icon图"); entity.Property(e => e.GameLoadBgImageId).HasComment("游戏加载图"); entity.Property(e => e.GameLoadTime).HasComment("Loading时间"); entity.Property(e => e.GameName) .HasMaxLength(50) .HasComment("游戏名称") .UseCollation("Chinese_PRC_CI_AS"); - entity.Property(e => e.ImageIconId).HasComment("游戏icon"); + entity.Property(e => e.ImageIconId).HasComment("游戏详情logo"); entity.Property(e => e.ImageId_Banner).HasComment("顶部图片"); - entity.Property(e => e.ImageId_JXTJ).HasComment("精选推荐"); - entity.Property(e => e.ImageId_TJ).HasComment("推荐大图"); - entity.Property(e => e.ImageId_ZJTC).HasComment("最近推出"); - entity.Property(e => e.ImageId_ZXTJ).HasComment("尊享推荐"); + entity.Property(e => e.ImageId_FK).HasComment("(首页GTA系列)大方块"); + entity.Property(e => e.ImageId_RM).HasComment("首页爆款热门"); + entity.Property(e => e.ImageId_ShouSuo).HasComment("搜索icon"); + entity.Property(e => e.ImageId_TJ).HasComment("推荐大图(首页蘑菇必玩 = 首页热血格斗 = 游戏详情页游戏推荐)"); + entity.Property(e => e.ImageId_YXK).HasComment("游戏库Icon图"); entity.Property(e => e.IsDiscount) .HasDefaultValue(true) .HasComment("是否参与优惠套餐活动(比如包夜卡,周中卡之类的)"); diff --git a/src/CloudGaming/Model/CloudGaming.Model/DbSqlServer/Db_Phone/T_Epg_CategoryCfg.cs b/src/CloudGaming/Model/CloudGaming.Model/DbSqlServer/Db_Phone/T_Epg_CategoryCfg.cs index 8aef8b6..138d472 100644 --- a/src/CloudGaming/Model/CloudGaming.Model/DbSqlServer/Db_Phone/T_Epg_CategoryCfg.cs +++ b/src/CloudGaming/Model/CloudGaming.Model/DbSqlServer/Db_Phone/T_Epg_CategoryCfg.cs @@ -78,4 +78,9 @@ public partial class T_Epg_CategoryCfg: MultiTenantEntity /// 所属租户 /// public override Guid TenantId { get; set; } - } + + /// + /// 默认使用的资源图 + /// + public virtual int DefaultImageStyle { get; set; } +} diff --git a/src/CloudGaming/Model/CloudGaming.Model/DbSqlServer/Db_Phone/T_Epg_Cfg.cs b/src/CloudGaming/Model/CloudGaming.Model/DbSqlServer/Db_Phone/T_Epg_Cfg.cs index 818117f..4ffe186 100644 --- a/src/CloudGaming/Model/CloudGaming.Model/DbSqlServer/Db_Phone/T_Epg_Cfg.cs +++ b/src/CloudGaming/Model/CloudGaming.Model/DbSqlServer/Db_Phone/T_Epg_Cfg.cs @@ -1,11 +1,11 @@ -using System; +using System; namespace CloudGaming.Model.DbSqlServer.Db_Phone; /// /// Epg配置表 /// -public partial class T_Epg_Cfg : MultiTenantEntity +public partial class T_Epg_Cfg: MultiTenantEntity { public T_Epg_Cfg() { } @@ -57,7 +57,7 @@ public partial class T_Epg_Cfg : MultiTenantEntity /// /// 使用原始资源图样式n_n /// - public virtual string? ImageResStyle { get; set; } + public virtual int ImageResStyle { get; set; } /// /// 是否启用 @@ -124,8 +124,8 @@ public partial class T_Epg_Cfg : MultiTenantEntity /// public virtual DateTime? CreateTime { get; set; } - /// + /// /// 所属租户 /// public override Guid TenantId { get; set; } -} + } diff --git a/src/CloudGaming/Model/CloudGaming.Model/DbSqlServer/Db_Phone/T_GameCBT.cs b/src/CloudGaming/Model/CloudGaming.Model/DbSqlServer/Db_Phone/T_GameCBT.cs index f32aa1b..1d3c9e3 100644 --- a/src/CloudGaming/Model/CloudGaming.Model/DbSqlServer/Db_Phone/T_GameCBT.cs +++ b/src/CloudGaming/Model/CloudGaming.Model/DbSqlServer/Db_Phone/T_GameCBT.cs @@ -1,11 +1,11 @@ -using System; +using System; namespace CloudGaming.Model.DbSqlServer.Db_Phone; /// /// 游戏配置 /// -public partial class T_GameCBT : MultiTenantEntity +public partial class T_GameCBT: MultiTenantEntity { public T_GameCBT() { } @@ -21,11 +21,6 @@ public partial class T_GameCBT : MultiTenantEntity /// public virtual int GameBgImgId { get; set; } - /// - /// 游戏库Icon图 - /// - public virtual int GameImageId { get; set; } - /// /// 是否启用 /// @@ -62,7 +57,7 @@ public partial class T_GameCBT : MultiTenantEntity public virtual int GameLoadBgImageId { get; set; } /// - /// 游戏icon + /// 游戏详情logo /// public virtual int ImageIconId { get; set; } @@ -82,17 +77,7 @@ public partial class T_GameCBT : MultiTenantEntity public virtual int GameLoadTime { get; set; } /// - /// 尊享推荐 - /// - public virtual int ImageId_ZXTJ { get; set; } - - /// - /// 精选推荐 - /// - public virtual int ImageId_JXTJ { get; set; } - - /// - /// 推荐大图 + /// 推荐大图(首页蘑菇必玩 = 首页热血格斗 = 游戏详情页游戏推荐) /// public virtual int ImageId_TJ { get; set; } @@ -106,11 +91,6 @@ public partial class T_GameCBT : MultiTenantEntity /// public virtual string? GameName { get; set; } - /// - /// 最近推出 - /// - public virtual int ImageId_ZJTC { get; set; } - /// /// 顶部图片 /// @@ -156,8 +136,28 @@ public partial class T_GameCBT : MultiTenantEntity /// public virtual string? FriendlyTips { get; set; } - /// + /// /// 所属租户 /// public override Guid TenantId { get; set; } + + /// + /// 游戏库Icon图 + /// + public virtual int ImageId_YXK { get; set; } + + /// + /// 搜索icon + /// + public virtual int ImageId_ShouSuo { get; set; } + + /// + /// 首页爆款热门 + /// + public virtual int ImageId_RM { get; set; } + + /// + /// (首页GTA系列)大方块 + /// + public virtual int ImageId_FK { get; set; } }