Browse Source

Исправил проблему с необнулением некоторых воркеров при выплате #EBT-27

GandonKur 4 years ago
parent
commit
74774f919b
1 changed files with 34 additions and 9 deletions
  1. 34 9
      EthermineBotTelegram/Program.cs

+ 34 - 9
EthermineBotTelegram/Program.cs

@@ -524,15 +524,40 @@ namespace EthermineBotTelegram
                                             else
                                             {
                                                 //no check that last balance and prev balance are the same
-                                                newWorkerRecord.worker_unpaid = lastWorkerRecord.worker_unpaid +
-                                                                                (newMinerRecord.unpaid -
-                                                                                 lastMinerRecord.unpaid) *
-                                                                                (newWorkerRecord.reported_hashrate /
-                                                                                 ((double) newMinerRecord.reported_hashrate));
-                                                if (Double.IsNaN(newWorkerRecord.worker_unpaid) ||
-                                                    Double.IsInfinity(newWorkerRecord.worker_unpaid))
-                                                    newWorkerRecord.worker_unpaid = lastWorkerRecord.worker_unpaid;
-                                                await Console.Out.WriteLineAsync($"newWorkerRecord unpaid change = {newMinerRecord.unpaid - lastMinerRecord.unpaid}");
+                                                //don't sure > or >=
+                                                if (lastWorkerRecord.time > Botdb.payouts
+                                                    .Where(p => p.wallet == lastWorkerRecord.wallet).Select(p => p.time)
+                                                    .DefaultIfEmpty(0).Max())
+                                                {
+                                                    newWorkerRecord.worker_unpaid = lastWorkerRecord.worker_unpaid +
+                                                        (newMinerRecord.unpaid -
+                                                         lastMinerRecord.unpaid) *
+                                                        (newWorkerRecord.reported_hashrate /
+                                                         ((double) newMinerRecord.reported_hashrate));
+                                                    if (Double.IsNaN(newWorkerRecord.worker_unpaid) ||
+                                                        Double.IsInfinity(newWorkerRecord.worker_unpaid))
+                                                        newWorkerRecord.worker_unpaid = lastWorkerRecord.worker_unpaid;
+                                                    await Console.Out.WriteLineAsync($"newWorkerRecord unpaid change = {newMinerRecord.unpaid - lastMinerRecord.unpaid}");
+                                                }
+                                                else
+                                                {
+                                                    newWorkerRecord.worker_unpaid = 
+                                                        (newMinerRecord.unpaid -
+                                                         lastMinerRecord.unpaid) *
+                                                        (newWorkerRecord.reported_hashrate /
+                                                         ((double) newMinerRecord.reported_hashrate));
+                                                    if (Double.IsNaN(newWorkerRecord.worker_unpaid) ||
+                                                        Double.IsInfinity(newWorkerRecord.worker_unpaid))
+                                                        newWorkerRecord.worker_unpaid = lastWorkerRecord.worker_unpaid;
+                                                    await Console.Out.WriteLineAsync($"newWorkerRecord unpaid change = {newMinerRecord.unpaid - lastMinerRecord.unpaid}");
+                                                    
+                                                    foreach (var chat_id in Botdb.users.Where(u=> u.wallet == newMinerRecord.wallet).Select(u=> u.wallet))
+                                                    {
+                                                        await botClient.SendTextMessageAsync(
+                                                            chatId: chat_id,
+                                                            text:   $"Debug info: Your worker {newWorkerRecord.worker} hasn't been zeroed on payout!\n");
+                                                    }
+                                                }
                                             }
                                         }
                                         else