Files
Kg.SeaTime/Service/Application.Domain/Services/Service/Business/ExchangeService.cs
2026-07-08 19:13:55 +08:00

46 lines
1.8 KiB
C#

namespace Application.Domain;
public class ExchangeService(ISqlSugarClient DbClient, IRedisCache redis) : IExchangeService, ITransient
{
public async Task<List<game_exchange>> GetExchangeData(int npcId)
{
var db = DbClient.AsTenant().GetConnectionWithAttr<game_exchange>();
var data = await db.Queryable<game_exchange>().Where(it => it.npcId == npcId).ToListAsync();
return data;
}
public async Task<game_exchange> GetExchangeInfo(int exId)
{
var db = DbClient.AsTenant().GetConnectionWithAttr<game_exchange>();
return await db.Queryable<game_exchange>().Where(it => it.exId == exId).SingleAsync();
}
public async Task<int> GetExchangeCount(string userId, int exId)
{
var db = DbClient.AsTenant().GetConnectionWithAttr<game_exchange_log>();
return await db.Queryable<game_exchange_log>().Where(it => it.userId == userId && it.exId == exId)
.SumAsync(it => (int)it.count);
}
public async Task<bool> AddUserExchangeLog(string userId, int exId, int count, long endTime)
{
game_exchange_log log = new game_exchange_log();
log.ueId = StringAssist.NewGuid;
log.userId = userId;
log.exId = exId;
log.count = count;
log.addTime = TimeExtend.GetTimeStampSeconds;
log.endTime = endTime;
var db = DbClient.AsTenant().GetConnectionWithAttr<game_exchange_log>();
bool result = await db.Insertable(log).ExecuteCommandAsync() > 0;
return result;
}
public async Task HandleExchangeLogData()
{
var db = DbClient.AsTenant().GetConnectionWithAttr<game_exchange_log>();
await db.Deleteable<game_exchange_log>().Where(it => it.endTime <= TimeExtend.GetTimeStampSeconds)
.ExecuteCommandAsync();
}
}