Jak zrobić saldo oczekujące na wypłatę?

0

Mam tabelka transakcje w której jest tam info dla jakiego usera ta transakcja, czy jest to transakcja przychodzaca czy wychodzaca, rodzaj transakcji, kwota ktora np powinna byc wypłacona użytkownikowi. Kolejna transakcja może być taka że uzytkownik jest winny jakąś kwotę itd. Nawet nie wiem jak mam o to zapytac heh. Chodzi o to że teraz jak wejdziemy sobie na nasze konto to chce pokazac kwote do wyplaty: 130 PLN ale nie chce zeby ta kwota byla liczona z transakcji po kazdym wejsciu na podstrone z ta informacja tylko po kazdej transakcji albo dodaje albo odejmuje kwote i aktualizuje tabelke z naleznym saldem. Ma to sens chyba jak do tej pory. Teraz jezeli system o 6 rano robi zestawienie czyli z tabelki tej nalezne saldo bierze wszystkich uzytkownikow ktorzy maja kwote wieksza lub rowna 100 PLN i robi zestawienie do wyplaty calej kwoty dla usera.

Moja wizja jest taka:

  1. Pobierz uzytkownikow ktorym nalezy sie kasa
  2. Dla kazdego z nich pobierz transakcje jakie do tej pory mial
  3. oznacz te transakcje jako status 2 ze oczekuja na wyplate
  4. pokaz zestawienie czyli ile ma dostac uzytkoniwk i ewentualnie pokaz szczegoly (taka faktura jakby ze za jakie pozycje dostal te kase)
  5. zaktualizuj nalezne saldo na 0

problem 1: Teraz jesli w punkcie 2 dojdzie jakas transakcja dla uzytkownika ktory widzial ze mu sie nalezy 130 PLN system mi pokaze ze mam wyplacic 135 PLN bo doszla transakcja to nie ma nic w tym zlego bo limit minimalny byl osiagniety tak?

Problem2: Jezeli transakcja nowa doszla w pkt 3 a nie zostala zlapana w pnkt 2 to pnkt 5 pokaze 0 mimo iz uzytkownikowi nalezy sie juz np te 5 PLN

Problem 3: Jezeli nowa transakcja dojdzie po pkt 5 to pokaze sie uzytkownikowi 5 PLN czyli ok ?

Problem 4: Jak pokazac ile kasy jest w trakcie przelewu dla niego ?

Transakcje powinienem od pkt 1 do pkt 5 zrobic chyba w ATOMIE (BEGIN COMMIT) na bazie ale i tak jak wyzeruje saldo to moze byc ze wyzeruje a tam powinno byc widoczne jednak 5 pln. jednakze tabelka z naleznym saldem sie wyzeruje. to jak pokazac kwote ktora oczekuja na wyplate ?
Czy mam w tabelce nalezne saldo robic insert z uzytkownikiem i kwota salda 0 jako kolejny rekord a poprzedni zaznaczyc np status 2 ze oczekuje na wyplate i potem status 3 ze wyplacono ?

Nie wiem jak to prawidlowo rozegrac

0

Wydaje mi się, że w tym wypadku pomoże Ci event sourcing.

1 użytkowników online, w tym zalogowanych: 0, gości: 1