Skip to content

Commit e4a1886

Browse files
committed
软删除
1 parent 2e7e416 commit e4a1886

9 files changed

Lines changed: 15 additions & 10 deletions

File tree

controllers/reply.js

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -92,7 +92,8 @@ exports.delete = function (req, res, next) {
9292
return;
9393
}
9494
if (reply.author_id.toString() === req.session.user._id.toString() || req.session.user.is_admin) {
95-
reply.remove();
95+
reply.deleted = true;
96+
reply.save();
9697
res.json({status: 'success'});
9798

9899
if (!reply.reply_id) {

controllers/site.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ exports.index = function (req, res, next) {
2727
proxy.fail(next);
2828

2929
// 取主题
30-
var query = {};
30+
var query = {deleted: false};
3131
if (tab && tab !== 'all') {
3232
if (tab === 'good') {
3333
query.good = true;

controllers/topic.js

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -260,15 +260,16 @@ exports.delete = function (req, res, next) {
260260
if (err) {
261261
return res.send({ success: false, message: err.message });
262262
}
263-
if (!req.session.user.is_admin && !(topic.author_id.equals(req.session.user._id))){
263+
if (!req.session.user.is_admin && !(topic.author_id.equals(req.session.user._id))) {
264264
res.status(403);
265265
return res.send({success: false, message: '无权限'});
266266
}
267267
if (!topic) {
268268
res.status(422);
269269
return res.send({ success: false, message: '此话题不存在或已被删除。' });
270270
}
271-
topic.remove(function (err) {
271+
topic.deleted = true;
272+
topic.save(function (err) {
272273
if (err) {
273274
return res.send({ success: false, message: err.message });
274275
}

controllers/user.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -370,8 +370,8 @@ exports.deleteAll = function (req, res, next) {
370370
function () {
371371
res.json({status: 'success'});
372372
});
373-
TopicModel.remove({author_id: user._id}, ep.done('del_topics'));
374-
ReplyModel.remove({author_id: user._id}, ep.done('del_replys'));
373+
TopicModel.update({author_id: user._id}, {$set: {deleted: true}}, {multi: true}, ep.done('del_topics'));
374+
ReplyModel.update({author_id: user._id}, {$set: {deleted: true}}, {multi: true}, ep.done('del_replys'));
375375
// 点赞数也全部干掉
376376
ReplyModel.update({}, {$pull: {'ups': user._id}}, {multi: true}, ep.done('del_ups'));
377377
}));

models/reply.js

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,8 @@ var ReplySchema = new Schema({
1010
create_at: { type: Date, default: Date.now },
1111
update_at: { type: Date, default: Date.now },
1212
content_is_html: { type: Boolean },
13-
ups: [Schema.Types.ObjectId]
13+
ups: [Schema.Types.ObjectId],
14+
deleted: {type: Boolean, default: false},
1415
});
1516

1617
ReplySchema.index({topic_id: 1});

models/topic.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@ var TopicSchema = new Schema({
2020
last_reply_at: { type: Date, default: Date.now },
2121
content_is_html: { type: Boolean },
2222
tab: {type: String},
23+
deleted: {type: Boolean, default: false},
2324
});
2425

2526
TopicSchema.index({create_at: -1});

proxy/reply.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -63,7 +63,7 @@ exports.getReplyById = function (id, callback) {
6363
* @param {Function} callback 回调函数
6464
*/
6565
exports.getRepliesByTopicId = function (id, cb) {
66-
Reply.find({topic_id: id}, '', {sort: 'create_at'}, function (err, replies) {
66+
Reply.find({topic_id: id, deleted: false}, '', {sort: 'create_at'}, function (err, replies) {
6767
if (err) {
6868
return cb(err);
6969
}

proxy/topic.js

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -71,6 +71,7 @@ exports.getCountByQuery = function (query, callback) {
7171
* @param {Function} callback 回调函数
7272
*/
7373
exports.getTopicsByQuery = function (query, opt, callback) {
74+
query.deleted = false;
7475
Topic.find(query, '_id', opt, function (err, docs) {
7576
if (err) {
7677
return callback(err);
@@ -108,7 +109,7 @@ exports.getTopicsByQuery = function (query, opt, callback) {
108109

109110
// for sitemap
110111
exports.getLimit5w = function (callback) {
111-
Topic.find({}, '_id', {limit: 50000, sort: '-create_at'}, callback);
112+
Topic.find({deleted: false}, '_id', {limit: 50000, sort: '-create_at'}, callback);
112113
};
113114

114115
/**

views/user/index.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -165,7 +165,7 @@
165165
var params = {
166166
_csrf: '<%- csrf %>',
167167
};
168-
if (!confirm('确定要删除吗?此操作不可逆')) {
168+
if (!confirm('确定要删除吗?(不会永久删除,只做标记位)')) {
169169
return;
170170
}
171171
$.post('/user/<%- user.loginname %>/delete_all', params, function (data) {

0 commit comments

Comments
 (0)