Beispiel #1
0
 public function doTask($taskId)
 {
     $task = $this->getTaskById($taskId);
     if (!isset($task)) {
         return false;
     }
     $userTask = new UserTask();
     $userTask->setIsDone(true);
     $userTask->setTaskId($task->getTaskId());
     $userTask->setUserId(App::getUserId());
     $userTask->setCreateDate(date(Defines::SQL_DATE_TIME_FORMAT));
     $this->db->insert('users_tasks', $userTask->toArray());
     $givenAmount = $task->getPrice();
     $commission = $task->getCommission();
     $takenAmount = $givenAmount + $commission;
     $query = "UPDATE users SET\n                  users.balance = users.balance - :takenAmount,\n                  users.rating = users.rating + 2\n                  WHERE partnerId = :partnerId AND users.vkId = :ownerId;\n                  UPDATE users SET\n                  users.balance = users.balance + :givenAmount,\n                  users.rating = users.rating + 1\n                  WHERE partnerId = :partnerId AND users.vkId = :userId;\n                  UPDATE tasks SET\n                  tasks.doneCount = tasks.doneCount + 1,\n                  tasks.givenAmount = :givenAmount,\n                  tasks.takenAmount = :takenAmount,\n                  tasks.commission  = :commission\n                  WHERE partnerId = :partnerId AND taskId = :taskId;";
     $bind = ['partnerId' => App::getPartnerId(), 'ownerId' => $task->getOwnerId(), 'userId' => App::getUserId(), 'givenAmount' => $givenAmount, 'takenAmount' => $takenAmount, 'commission' => $commission, 'taskId' => $task->getTaskId()];
     return $this->db->run($query, $bind);
 }