From 2630a16ae60dfaed6a3f0fbe54dcbb162ad1dd6b Mon Sep 17 00:00:00 2001 From: luchenqun Date: Thu, 23 Mar 2017 20:18:42 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E6=8F=92=E5=85=A5=E4=B9=A6?= =?UTF-8?q?=E7=AD=BE=E6=9C=89=E5=8D=95=E5=BC=95=E5=8F=B7=E7=9A=84=E9=97=AE?= =?UTF-8?q?=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- database/db.js | 29 ++++++++++++------- public/scripts/controllers/edit-controller.js | 1 + routes/api.js | 18 ++++++++++-- 3 files changed, 34 insertions(+), 14 deletions(-) diff --git a/database/db.js b/database/db.js index 18fa73c..9597235 100644 --- a/database/db.js +++ b/database/db.js @@ -62,30 +62,37 @@ var db = { // } // }); -db.addBookmark = function(user_id, bookmark) { - var insertSql = "INSERT INTO `bookmarks` (`user_id`, `title`, `description`, `url`, `public`, `click_count`) VALUES ('" + user_id + "', '" + bookmark.title + "', " + client.escape(bookmark.description) + ", '" + bookmark.url + "', '" + bookmark.public + "', '1')"; - var selectSql = "SELECT * FROM `bookmarks` WHERE `user_id` = '" + user_id + "' AND `url` = '" + bookmark.url + "'" +db.getBookmarkbyUrl = function(user_id, url) { + var sql = "SELECT * FROM `bookmarks` WHERE `user_id` = '" + user_id + "' AND `url` = '" + url + "'" return new Promise(function(resolve, reject) { - client.query(selectSql, (err, result) => { + client.query(sql, (err, result) => { if (err) { reject(err); } else { if (result.length >= 1) { resolve(result[0].id); } else { - client.query(insertSql, (err, result) => { - if (err) { - reject(err); - } else { - resolve(result.insertId); - } - }); + resolve(null); } } }); }); }; +db.addBookmark = function(user_id, bookmark) { + var sql = "INSERT INTO `bookmarks` (`user_id`, `title`, `description`, `url`, `public`, `click_count`) VALUES ('" + user_id + "', " + client.escape(bookmark.title) + ", " + client.escape(bookmark.description) + ", " + client.escape(bookmark.url) + ", '" + bookmark.public + "', '1')"; + console.log(sql); + return new Promise(function(resolve, reject) { + client.query(sql, (err, result) => { + if (err) { + reject(err); + } else { + resolve(result.insertId); + } + }); + }); +}; + db.delBookmark = function(id) { var sql = "DELETE FROM `bookmarks` WHERE (`id`='" + id + "')"; return new Promise(function(resolve, reject) { diff --git a/public/scripts/controllers/edit-controller.js b/public/scripts/controllers/edit-controller.js index 0ee8b69..0b15e04 100644 --- a/public/scripts/controllers/edit-controller.js +++ b/public/scripts/controllers/edit-controller.js @@ -107,6 +107,7 @@ app.controller('editCtr', ['$scope', '$state', '$timeout', '$document', 'bookmar toastr.error('书签标题不能为空!', "错误"); return; } + console.log("add bookmark", params); if ($scope.add) { bookmarkService.addBookmark(params) .then((data) => { diff --git a/routes/api.js b/routes/api.js index ebb6cba..c86485b 100644 --- a/routes/api.js +++ b/routes/api.js @@ -694,7 +694,11 @@ api.post('/uploadBookmarkFile', upload.single('bookmark'), function(req, res) { }) }) // 插入书签 - db.addBookmark(userId, bookmark) // 插入书签 + db.getBookmarkbyUrl(userId, bookmark.url) + .then((bookmarkId) => { + // 如果这个url的书签存在了,那么直接返回书签,否则返回插入的书签 + return bookmarkId ? Promise.resolve(bookmarkId) : db.addBookmark(userId, bookmark); + }) .then((bookmark_id) => { db.delBookmarkTags(bookmark_id); // 不管3721,先删掉旧的分类 return bookmark_id; @@ -727,7 +731,11 @@ api.post('/addBookmark', function(req, res) { var tags = bookmark.tags; var bookmarkId = -1; var ret = {}; - db.addBookmark(userId, bookmark) // 插入书签 + db.getBookmarkbyUrl(userId, bookmark.url) + .then((bookmarkId) => { + // 如果这个url的书签存在了,那么直接返回书签,否则返回插入的书签 + return bookmarkId ? Promise.resolve(bookmarkId) : db.addBookmark(userId, bookmark); + }) .then((bookmark_id) => { db.delBookmarkTags(bookmark_id); // 不管3721,先删掉旧的分类 bookmarkId = bookmark_id; @@ -758,7 +766,11 @@ api.post('/favoriteBookmark', function(req, res) { var bookmarkId = -1; var ret = {}; - db.addBookmark(userId, bookmark) // 插入书签 + db.getBookmarkbyUrl(userId, bookmark.url) + .then((bookmarkId) => { + // 如果这个url的书签存在了,那么直接返回书签,否则返回插入的书签 + return bookmarkId ? Promise.resolve(bookmarkId) : db.addBookmark(userId, bookmark); + }) .then((bookmark_id) => { db.delBookmarkTags(bookmark_id); // 不管3721,先删掉旧的分类 bookmarkId = bookmark_id;