Esempio n. 1
0
 public function TaskEnd()
 {
     //обновим запись по заданию и укажем файл результата по ней
     $sql = 'UPDATE ' . Tasks::tableName() . ' SET status=:status, file_result=:file, complete_at=:complete_at WHERE id=:id';
     $query = \Yii::$app->db->createCommand($sql);
     //спишим с баланса юзера сумма за выборку
     $query->bindValues([':status' => Tasks::STATUS_COMPLETE, ':id' => $this->task->id, ':file' => $this->task->link . '.txt', ':complete_at' => time()]);
     $query->execute();
     //запишим операцию списания денег в лог фин. операций
     $financy = new Financy();
     $financy->sum_operation = \Yii::$app->params['task.cost'];
     $financy->type_operation = Financy::TYPE_OPERATION_MINUS;
     $financy->user_id = $this->task->user_id;
     $financy->balance_user_after_operation = (int) ($this->task->user->balance - \Yii::$app->params['task.cost']);
     if ($financy->validate()) {
         $financy->save();
         //обновим баланс юзера
         User::minusBalance($financy->user_id);
     } else {
         print_r($financy->errors) . PHP_EOL;
         $this->log('error');
     }
     \Yii::$app->get('mutex')->release($this->tasks_mutex_name);
 }