jam231 / sia

Stock market server (part of stock market simulation system).
1 stars 0 forks source link

Potwierdzenia transakcji. #30

Closed marimarek closed 10 years ago

marimarek commented 11 years ago

Kiedy użytkownicy dostają potwierdzenie tranzakcji to do obu chyba jest wysyłana wiadomość o zrealizowaniu części ich zlecenia, ale przecież oni mogą mieć różne ceny zleceń, a tranzakca będzie zrealizowana po cenie pierwszego zlecenia i drugi użytkownik nie będzie miał pojęcia za ile sprzedał akcje.

marimarek commented 11 years ago

@kaiks Jak będziesz to robił to zobacz też od razu https://github.com/jam231/sia2013/issues/31

marimarek commented 11 years ago

W zasadzie mogę się bez tego obyć i będzie miało to tylko wpływ na pogorszenie wydajności.

kaiks commented 11 years ago

Będzie miał pojęcie. Wpisywana jest cena pierwszego chronologicznie zlecenia i za tyle też użytkownik je sprzedał (przecież cena kupna i sprzedaży dla danej transakcji jest ta sama).

Jeśli Cię źle zrozumiałem to daj znać.

marimarek commented 11 years ago

Tak, ale użytkownicy w potwietrdzeniu tranzakcji dostają tylko id zlecenia(+ ilość niezrealizowanego zlecenia), a każdy z nich ma osobne zlecenie - 1 sprzedaży i jak rozumiem on dostanie wiadomość SELL_TRANSACTION z id swojego zlecenai, 2 kupna i on dostanie BUY_TRANSACTION z id swojego zlecenia, a ceny tych zleceń mogą się różnić. I z kąd oni mają znać cenę po jakiej poszłą tranzakcja?

kaiks commented 11 years ago

Dobra, masz rację. Dodałem na razie funkcję SQLową:

transakcje_uz( id_uzytkownika, ilosc ) zwraca listę krotek typu zrealizowane_zlecenie, po prostu [ilosc] ostatnich transakcji uzytkownika moze to nie jest idealne ale poki co nie mam lepszego pomyslu

jesli masz jakis konkretny request/pomysl na zrobienie czegos po stronie bazy to ja to zrobie (ale juz jutro, okolo godziny 14)

jam231 commented 10 years ago

Tak dla porządku:

User scenario dla zlecenie kupna przez uzytkownika:

  1. Użytkownik wysyła request (0x15) o zleceniu kupna zawierajacy id zasobu, ilość i limit (tj. cenę).
  2. Jeżeli wszystko się zgadza - użytkonik posiada wystarczajaca ilosc srodków i istnieje taki zasob - to serwer odpowiada wiadomoscia (0x24) która zawiera id przyjetego zlecenia.
    Czas mija i w koncu ktos zleca sprzedaz w/w zasobu po cenie mieszczacej sie w w/w limicie.
  3. Serwer realizuje zlecenie i wysyla do obu uzytkownikow wiadomosc (0x17), w której zawiera informacje jakie zlecenie (częsciowo) zrealizowano (dla kazdego użytkownik rózny id), jaką ilość sprzedano/kupiono i po ile.
    Dodatkowo
  4. Jeżeli dane zlecenie zostalo zrealizowane calkowicie to serwer wysyla dodatkowo do wlasciciela zlecenia wiadomosc (0x16) zawierajaca informacje o id zlecenia ktore zostało całkowicie zrealizowane.

To chyba wyczerpuje temat, więc zamykam.