コード例 #1
0
ファイル: ChatDAO.php プロジェクト: buguelos/dash2
 public function save(Chat $item)
 {
     if (empty($item)) {
         throw new \Exception('Empty item');
     }
     $db = DBConnection::getInstance();
     if ($item->getFromNickname() == '') {
         $sql = "SELECT nickname FROM numbers WHERE nickname<>'' AND target=:target ";
         $query = $db->prepare($sql);
         $query->bindParam('target', $item->getFrom());
         $query->execute();
         $row = $query->fetch();
         if (!empty($row['nickname'])) {
             $nickname = $row['nickname'];
             $item->setFromNickname($nickname);
         }
     }
     if ($item->getToNickname() == '') {
         $sql = "SELECT nickname FROM senders WHERE nickname<>'' AND username=:username ";
         $query = $db->prepare($sql);
         $query->bindParam('username', $item->getTo());
         $query->execute();
         $row = $query->fetch();
         if (!empty($row['nickname'])) {
             $nickname = $row['nickname'];
             $item->setToNickname($nickname);
         }
     }
     if ($item->getId() == 0) {
         $query = $db->prepare("SELECT * FROM chat WHERE whatsapp_id=:whatsapp_id ");
         $query->bindParam('whatsapp_id', $item->getWhatsappId());
         $query->execute();
         $row = $query->fetch();
         if (!empty($row)) {
             $item = new Chat();
             $item->setId($row['id']);
             $item->setData($row['data']);
             $item->setFrom($row['from']);
             $item->setFromNickname($row['from_nickname']);
             $item->setTo($row['to']);
             $item->setToNickname($row['to_nickname']);
             $item->setCtime($row['ctime']);
             $item->setWhatsappId($row['whatsapp_id']);
             return $item;
         }
         $query = $db->prepare("INSERT INTO chat\n\t\t\t\t\t(`from`, `to`, from_nickname, to_nickname, data, ctime, whatsapp_id)\n\t\t\t\t\tVALUES\n\t\t\t\t\t(:from, :to, :from_nickname, :to_nickname, :data, :ctime, :whatsapp_id)");
         $query->bindParam('from', $item->getFrom());
         $query->bindParam('to', $item->getTo());
         $query->bindParam('from_nickname', $item->getFromNickname());
         $query->bindParam('to_nickname', $item->getToNickname());
         $query->bindParam('data', $item->getData());
         $query->bindParam('ctime', $item->getCtime(), \PDO::PARAM_INT);
         $query->bindParam('whatsapp_id', $item->getWhatsappId());
         $query->execute();
         $item->setId($db->lastInsertId());
     } else {
         $sql = ' UPDATE chat SET ';
         $sql .= ' whatsapp_id = :whatsapp_id, ';
         $sql .= ' `from` = :from, ';
         $sql .= ' `to` = :to, ';
         $sql .= ' from_nickname = :from_nickname, ';
         $sql .= ' to_nickname= :to_nickname, ';
         $sql .= ' data = :data, ';
         $sql .= ' ctime = :ctime ';
         $sql .= ' WHERE id = :id ';
         $query = $db->prepare($sql);
         $query->bindParam('id', $item->getId(), \PDO::PARAM_INT);
         $query->bindParam('from', $item->getFrom());
         $query->bindParam('to', $item->getTo());
         $query->bindParam('from_nickname', $item->getFromNickname());
         $query->bindParam('to_nickname', $item->getToNickname());
         $query->bindParam('data', $item->getData());
         $query->bindParam('ctime', $item->getCtime());
         $query->bindParam('whatsapp_id', $item->getWhatsappId());
         $query->execute();
     }
     return $item;
 }