diff --git a/src/ORM/client-statistics/client-statistics.service.ts b/src/ORM/client-statistics/client-statistics.service.ts index 18d67c0..d954f15 100644 --- a/src/ORM/client-statistics/client-statistics.service.ts +++ b/src/ORM/client-statistics/client-statistics.service.ts @@ -18,20 +18,16 @@ export class ClientStatisticsService { } - public async save(clientStatistic: Partial) { - // // Attempt to update the existing record - const result = await this.clientStatisticsRepository.update({ clientId: clientStatistic.clientId, time: clientStatistic.time }, + public async update(clientStatistic: Partial) { + + await this.clientStatisticsRepository.update({ clientId: clientStatistic.clientId, time: clientStatistic.time }, { shares: clientStatistic.shares, acceptedCount: clientStatistic.acceptedCount }) - - // Check if the update affected any rows - if (result.affected === 0) { - // If no rows were updated, insert a new record - await this.clientStatisticsRepository.insert(clientStatistic); - } - + } + public async insert(clientStatistic: Partial) { + await this.clientStatisticsRepository.insert(clientStatistic); } public async deleteOldStatistics() { diff --git a/src/models/StratumV1ClientStatistics.ts b/src/models/StratumV1ClientStatistics.ts index f6b66a9..43ad8e3 100644 --- a/src/models/StratumV1ClientStatistics.ts +++ b/src/models/StratumV1ClientStatistics.ts @@ -22,25 +22,6 @@ export class StratumV1ClientStatistics { } - public async saveShares(client: ClientEntity) { - - // if (client == null || client.address == null || client.clientName == null || client.sessionId == null) { - // return; - // } - - await this.clientStatisticsService.save({ - time: this.currentTimeSlot, - clientId: client.id, - shares: this.shares, - acceptedCount: this.acceptedCount, - address: client.address, - clientName: client.clientName, - sessionId: client.sessionId - }); - - - - } // We don't want to save them here because it can be DB intensive, instead do it every once in // awhile with saveShares() @@ -66,12 +47,28 @@ export class StratumV1ClientStatistics { } if (this.currentTimeSlot != timeSlot) { - await this.saveShares(client); + await this.clientStatisticsService.insert({ + time: this.currentTimeSlot, + clientId: client.id, + shares: this.shares, + acceptedCount: this.acceptedCount, + address: client.address, + clientName: client.clientName, + sessionId: client.sessionId + }); this.shares = 0; this.acceptedCount = 0; this.currentTimeSlot = timeSlot; } else if ((date.getTime() - 60 * 1000) > this.lastSave) { - await this.saveShares(client); + await this.clientStatisticsService.update({ + time: this.currentTimeSlot, + clientId: client.id, + shares: this.shares, + acceptedCount: this.acceptedCount, + address: client.address, + clientName: client.clientName, + sessionId: client.sessionId + }); this.lastSave = new Date().getTime(); }