← Вернуться к списку тем

Реализация системы баланса

Не могли бы показать пример, как можно реализовать систему баланса с использованием SQL, чтобы у каждого пользователя был свой баланс (обновляемый). И как сделать, если человек перешел по ссылке на сайте или сделал заказ на сайте, у него обновился баланс в телеграмме.
Заранее спасибо за вашу помощь)

Ответы


  • iMakeBots [13.02.2020 в 15:13 → Wrench]
    Таблицу в БД можно организовать например вот так
    CREATE TABLE IF NOT EXISTS 'account' (
      'id' int(11) NOT NULL AUTO_INCREMENT,
      'uid' bigint(20) NOT NULL,
      'sum' decimal(10,2) NOT NULL,
      PRIMARY KEY ('id')
    ) ENGINE=MyISAM DEFAULT CHARSET=utf8mb4;

    Создать методы пополнения и списания, например такие
    Class Account  {
        public static function findOne($uid) {
            return self::find()
                ->where(['=', 'uid', $uid])
                ->one();
        }
        public function plus($sum) {
            $this->sum += $sum;
            return $this->save(); 
        }
        public function minus($sum) {
            $this->sum -= $sum;
            return $this->save(); 
        }
    }

    Ну и соответственно вызывать по необходимости
    $account = Account::findOne($uid);
    $account->plus(100);
    $account->minus(100);

    На самом деле примеры очень абстрактные, так как контекст вашего вопроса не совсем получилось определить. А если приводить полный пример на мое усмотрение то это нужно чуть больше времени, которого сейчас нет ((