This commit is contained in:
Putoo
2026-04-27 14:17:52 +08:00
parent 4463f9e810
commit c55a104573
16 changed files with 168 additions and 88 deletions

View File

@@ -1,7 +0,0 @@
namespace Application.Domain.Entity
{
public class Class1
{
}
}

View File

@@ -0,0 +1,7 @@
namespace Application.Domain;
public class BaseCache
{
public static string BaseCacheKey = "BaseGameCache:{0}";
public static string BaseCacheKeys = "BaseGameCache:{0}:{1}";
}

View File

@@ -1,7 +0,0 @@
namespace Application.Domain
{
public class Class1
{
}
}

View File

@@ -0,0 +1,4 @@
global using Photon.Core;
global using SqlSugar;
global using Application.Domain.Entity;
global using Photon.Core.Redis;

View File

@@ -0,0 +1,16 @@
namespace Application.Domain;
public interface IAreaService
{
/// <summary>
/// 获取所有区服
/// </summary>
/// <returns></returns>
Task<List<game_area>> GetAreaData();
/// <summary>
/// 获取区服信息
/// </summary>
/// <param name="areaId"></param>
/// <returns></returns>
Task<game_area> GetAreaInfo(int areaId);
}

View File

@@ -0,0 +1,60 @@
namespace Application.Domain;
public class AreaService : IAreaService, ITransient
{
private readonly ISqlSugarClient _dbClient;
private readonly IRedisCache _redisClient;
public AreaService(ISqlSugarClient dbClient, IRedisCache redisClient)
{
_dbClient = dbClient;
_redisClient = redisClient;
}
/// <summary>
/// 获取所有区服
/// </summary>
/// <returns></returns>
public async Task<List<game_area>> GetAreaData()
{
string key = string.Format(BaseCache.BaseCacheKey, "AreaData");
if (await _redisClient.ExistsAsync(key))
{
return await _redisClient.GetAsync<List<game_area>>(key);
}
else
{
var db = _dbClient.AsTenant().GetConnectionWithAttr<game_area>();
var data = await db.Queryable<game_area>().ToListAsync();
await _redisClient.SetAsync(key, data);
return data;
}
}
public async Task<game_area> GetAreaInfo(int areaId)
{
string key = string.Format(BaseCache.BaseCacheKeys, "AreaData", areaId);
if (await _redisClient.ExistsAsync(key))
{
return await _redisClient.GetAsync<game_area>(key);
}
else
{
var db = _dbClient.AsTenant().GetConnectionWithAttr<game_area>();
var data = await db.Queryable<game_area>().Where(it => it.areaId == areaId).SingleAsync();
await _redisClient.SetAsync(key, data);
return data;
}
}
private async Task ClearAreaCache(int areaId = 0)
{
string key = string.Format(BaseCache.BaseCacheKey, "AreaData");
await _redisClient.DelAsync(key);
if (areaId != 0)
{
key = string.Format(BaseCache.BaseCacheKeys, "AreaData", areaId);
await _redisClient.DelAsync(key);
}
}
}

View File

@@ -15,4 +15,10 @@
<Folder Include="wwwroot\" />
</ItemGroup>
<ItemGroup>
<Content Update="applicationsettings.json">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</Content>
</ItemGroup>
</Project>

View File

@@ -2,6 +2,15 @@
{
public class StateHelper
{
public static bool isOnline
{
get
{
var token = App.HttpContext.GetTokenInfo();
return token != null;
}
}
public static string userId
{
get {
@@ -14,7 +23,7 @@
get
{
var token = App.HttpContext.GetTokenInfo();
return token.Claims["sid"];
return token.Claims["token"];
}
}
}

View File

@@ -1,5 +1,6 @@
using Microsoft.OpenApi.Models;
using Photon.Core.Redis;
var builder = WebApplication.CreateBuilder(args);
@@ -9,7 +10,7 @@ builder.Services.Inject(new List<string> {
});//框架初始化
builder.Configuration.RegisterConfig();//注入配置
builder.Services.InjectMemory();
builder.Services.InjectRedis(builder.Configuration);
builder.Services.InjectSql(builder.Configuration);
#region JWT与接口配置

View File

@@ -1,19 +1,29 @@
{
"AutoProgram": 0,
"Redis": {
"connection": "127.0.0.1,password=,defaultdatabase=1"
"connection": "127.0.0.1:6379,password=,defaultdatabase=5"
},
"SqlData": [
{
"type": 0,
"name": "KgDb",
"connect": "data source=kx.iyba.cn;database=kx.petera;user id=root;password=1f5ozxRGE3Y;pooling=true;port=23306;sslmode=Required;charset=utf8mb4;"
"name": "Kg.SeaTime.Game",
"connect": "data source=192.168.0.88;database=kg.seatime.game;user id=root;password=1f5ozxRGE3Y;pooling=true;port=3306;sslmode=Required;charset=utf8mb4;"
},
{
"type": 0,
"name": "Kg.SeaTime.Resource",
"connect": "data source=192.168.0.88;database=kg.seatime.resource;user id=root;password=1f5ozxRGE3Y;pooling=true;port=3306;sslmode=Required;charset=utf8mb4;"
},
{
"type": 0,
"name": "Kg.SeaTime.Log",
"connect": "data source=192.168.0.88;database=kg.seatime.log;user id=root;password=1f5ozxRGE3Y;pooling=true;port=3306;sslmode=Required;charset=utf8mb4;"
}
],
"JwtTokenOptions": {
"Issuer": "kx.petera",
"Audience": "kx.petera",
"SecurityKey": "DAbdA9fF9MYXDCFBEb75WKWWDAbDBWQi"
"Issuer": "kx.seatime",
"Audience": "kx.seatime",
"SecurityKey": "46055HR0n7FeNHhDKAYD2i9ZsdsYn4jn"
},
"ResUrl": {
"local": "http://192.168.0.142:5298",