46 lines
1.8 KiB
C#
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();
|
|
}
|
|
|
|
} |