更新了一下导航界面的书签的sql语句

This commit is contained in:
luchenqun 2017-02-22 22:26:29 +08:00
parent e9df59b560
commit 1eb9927f40
3 changed files with 65 additions and 29 deletions

View File

@ -52,15 +52,15 @@ Date.prototype.format = function(fmt) { //author: meizz
// update delete 返回影响的行数
var db = {
}
// var sql = "SELECT * FROM `users` WHERE `username` = 'luchenqun1'";
// client.query(sql, (err, result) => {
// if (err) {
// console.log(err);
// } else {
// console.log(result);
// }
// });
}
// var sql = "SELECT * FROM `users` WHERE `username` = 'luchenqun1'";
// client.query(sql, (err, result) => {
// if (err) {
// console.log(err);
// } else {
// console.log(result);
// }
// });
db.addBookmark = function(user_id, bookmark) {
var insertSql = "INSERT INTO `bookmarks` (`user_id`, `title`, `description`, `url`, `public`, `click_count`) VALUES ('" + user_id + "', '" + bookmark.title + "', '" + bookmark.description + "', '" + bookmark.url + "', '" + bookmark.public + "', '1')";
@ -83,7 +83,6 @@ db.addBookmark = function(user_id, bookmark) {
}
}
});
});
};
@ -300,6 +299,7 @@ db.getUser = function(username) {
db.getTags = function(user_id) {
console.log('getTags');
var sql = "SELECT t.*, tb.cnt FROM `tags` as t LEFT OUTER JOIN ( SELECT `tag_id`, COUNT(tag_id) as cnt FROM tags_bookmarks GROUP BY tag_id ) tb ON t.id = tb.tag_id WHERE t.user_id = '" + user_id + "' ORDER BY last_use DESC";
return new Promise(function(resolve, reject) {
client.query(sql, (err, result) => {
if (err) {
@ -392,9 +392,19 @@ db.addTags = function(user_id, tags_name) {
});
};
db.getBookmarksNavigate = function(user_id) {
console.log('getBookmarksNavigate');
var sql = "SELECT t.id as tag_id, t.name as tag_name, b.* FROM `tags` as t LEFT OUTER JOIN tags_bookmarks as tb ON t.id = tb.tag_id LEFT OUTER JOIN bookmarks as b ON tb.bookmark_id = b.id WHERE t.user_id='" + user_id + "' ORDER BY t.id ASC, b.click_count DESC";
db.getBookmarksNavigate = function(tags) {
// console.log('getBookmarksNavigate');
// var sql = "SELECT t.id as tag_id, t.name as tag_name, b.* FROM `tags` as t LEFT OUTER JOIN tags_bookmarks as tb ON t.id = tb.tag_id LEFT OUTER JOIN bookmarks as b ON tb.bookmark_id = b.id WHERE t.user_id='" + user_id + "' ORDER BY t.id ASC, b.click_count DESC";
var sql = "";
tags.forEach((tag, index) => {
var t = 't' + tag.id;
if (index >= 1) {
sql += " UNION "
}
sql += "(SELECT * FROM ((SELECT t.id AS tag_id, t.`name` as tag_name, b.* FROM `tags` as t, `bookmarks`as b, `tags_bookmarks` as tb WHERE t.id = tb.tag_id AND b.id = tb.bookmark_id AND t.id = " + tag.id + " ORDER BY b.click_count DESC LIMIT 0, 16) UNION (SELECT t.id AS tag_id, t.`name` as tag_name, b.* FROM `tags` as t, `bookmarks`as b, `tags_bookmarks` as tb WHERE t.id = tb.tag_id AND b.id = tb.bookmark_id AND t.id = " + tag.id + " ORDER BY b.created_at DESC LIMIT 0, 16)) as " + t + " ORDER BY " + t + ".click_count DESC, " + t + ".created_at DESC)";
})
console.log(sql);
return new Promise(function(resolve, reject) {
client.query(sql, (err, result) => {
if (err) {
@ -592,7 +602,7 @@ db.getBookmarkWaitSnap = function(today) {
db.updateBookmarkSnapState = function(id, snapState) {
console.log("updateBookmarkSnapState id = " + id + ", snapState = " + snapState);
var sql = "UPDATE `bookmarks` SET `snap_state`='"+ snapState +"' WHERE (`id`='"+ id +"')";
var sql = "UPDATE `bookmarks` SET `snap_state`='" + snapState + "' WHERE (`id`='" + id + "')";
return new Promise(function(resolve, reject) {
client.query(sql, (err, result) => {
if (err) {

View File

@ -97,15 +97,28 @@ app.controller('editCtr', ['$scope', '$state', '$timeout', 'bookmarkService', 'p
.then((data) => {
$('.ui.modal.js-add-bookmark').modal('hide');
pubSubService.publish('EditCtr.inserBookmarsSuccess', data);
console.log('addBookmark success', JSON.stringify(data));
if (data.title) {
toastr.success('[ ' + data.title + ' ] 添加成功', "提示");
} else {
toastr.error('[ ' + params.title + ' ] 添加失败', "提示");
}
})
.catch((err) => console.log('addBookmark err', err));
.catch((err) => {
console.log('addBookmark err', err);
toastr.error('[ ' + params.title + ' ] 添加失败' + JSON.stringify(err), "提示");
});
} else {
bookmarkService.updateBookmark(params)
.then((data) => {
$('.ui.modal.js-add-bookmark').modal('hide');
pubSubService.publish('EditCtr.inserBookmarsSuccess', data);
toastr.success('[ ' + params.title + ' ] 更新成功', "提示");
})
.catch((err) => console.log('updateBookmark err', err));
.catch((err) => {
console.log('updateBookmark err', err);
toastr.error('[ ' + params.title + ' ] 更新失败' + JSON.stringify(err), "提示");
});
}
}

View File

@ -226,7 +226,8 @@ api.get('/bookmarks', function(req, res) {
var userId = req.session.user.id;
var params = req.query;
if (params.showStyle === 'navigate') {
db.getBookmarksNavigate(userId)
db.getTags(userId)
.then((tags) => db.getBookmarksNavigate(tags))
.then((result) => {
var data = [];
var tag = {
@ -248,11 +249,12 @@ api.get('/bookmarks', function(req, res) {
tag.click = 0;
tag.bookmarks = [];
}
if (bookmark.id && tag.bookmarks.length < 31) {
tag.click += bookmark.click_count;
tag.bookmarks.push(bookmark);
}
// if (bookmark.id && tag.bookmarks.length < 31) {
// tag.click += bookmark.click_count;
// tag.bookmarks.push(bookmark);
// }
});
if (result && result.length > 0) {
data.push(tag);
@ -565,14 +567,25 @@ api.post('/addBookmark', function(req, res) {
var bookmark = req.body.params;
var userId = req.session.user.id;
var tags = bookmark.tags;
var bookmarkId = -1;
var ret = {};
db.addBookmark(userId, bookmark) // 插入书签
.then((bookmark_id) => {
db.delBookmarkTags(bookmark_id); // 不管3721先删掉旧的分类
bookmarkId = bookmark_id;
return bookmark_id;
}) // 将之前所有的书签分类信息删掉
.then((bookmark_id) => db.addTagsBookmarks(tags, bookmark_id)) // 插入分类
.then(() => db.updateLastUseTags(userId, tags)) // 更新最新使用的分类
.then(() => res.json({})) // 运气不错
.then(() => db.getBookmark(bookmarkId)) // 获取书签信息,返回去
.then((bookmark) => {
ret = bookmark;
return db.getBookmarkTags(bookmarkId);
})
.then((bookmarkTags) => {
ret.tags = bookmarkTags;
res.json(ret)
})
.catch((err) => console.log('addBookmark err', err)); // oops!
});