Як реалізувати баланс користувача і переказ коштів між користувачами

Я робив приблизно як описав adubovskoy, хоча, коли я починав робити, він мені те ж саме і порадив. Тільки у мене сутність містить поля. Можна ще полегшити варіант. Тупо поле з json зробити. Найспритніший варіант - своя таблиця, але тут взагалі повністю код, ніяких КЛІКАНІЙ. Свої UI писати і т.д.

У моєму варіанті за порадою adubovskoy, але з полями суть така, я взяв:

Потім я створив сутність "Транзакція", яка мала такі поля:

  • Тип транзакції (0 - віднімання, 1 - поповнення - селект текстовий).
  • Сума транзакції (decimal).
  • Зв'язок з користувачем (entityreference), до кого прив'язана транзакція.
  • Опис транзакції (для призначених для користувача інтерфейсів).
  • Технічний опис (для адміна і т.д. бачить тільки адмін).
  • І чекбокс "Реальний платіж". Ні на що не впливає, просто зробили, щоб відрізняти то що поповнено з адмінки, а що прийшло, припустимо, з Яндекс.Деньги.

Далі сума щита дуже просто. Робимо запит і смикаємо всі транзакції користувача. Вважаємо суму цих транзакцій і отримуємо поточний баланс.

Для оптимізації, думаю, має сенс кешувати баланс. І повісити якийсь хук на оновлення \ додавання нової транзакції і скидати кеш балансу у користувача до якого транзакція відноситься, щоб у нього вона оновилася.

Для перекладу між користувачами зробити формочку, сума і кому. І виконувати транзакцію. Загалом тут взагалі найлегша частина.

Як реалізувати баланс користувача і переказ коштів між користувачами

Схожі статті