Commit eb7e5212 authored by 陈家荣's avatar 陈家荣

修改点赞和取消点赞

parent 33171aee
......@@ -98,6 +98,151 @@ function create(req, callback) {
}
}
var raiseOrcancelRaise = function(req, ent_code, tid, userId, callback) {
//判断是否已经点赞
forumPraiseLogService.queryPraiseLog(tid, null, userId, 1, function(err, doc) {
if (err) {
res.json(returnCode.BUSY);
} else {
forumThreadService.getThreadById(tid, function(err, thread) {
if (err) {
callback(returnCode.BUSY);
} else if (!doc || doc.status == 1) {
async.parallel([
function(callback) {
//3.更新文章统计数据(点赞数)
if (thread) {
forumThreadService.updateThreadRaiseCount(tid, function(err, cb) {
if (err) {
callback(err, null);
} else {
callback(null, null);
}
});
} else {
callback('cannot find thread by id', null);
}
},
function(callback) {
if (doc) { //如果已存在,更新为点赞日志
forumPraiseLogService.updatePraiseLog(doc._id, 0, function(err, result) {
if (err) {
callback(err, null);
} else {
callback(null, null);
}
});
} else { //不存在,创建点赞日志
var entity = {
ent_code: ent_code,
user: userId,
thread: tid,
ip: req.ip,
comment: null,
type: 1,
status: 0
};
//4.创建点赞日志
forumPraiseLogService.createPraiseLog(entity, function(err, result) {
if (err) {
callback(err, null);
} else {
callback(null, null);
}
});
}
}
], function(err, results) {
if (err) {
console.error(err);
// res.json(returnCode.BUSY);
callback(returnCode.BUSY);
} else {
//更新点赞redis
redisPraiseLog.get(ent_code, userId, 'thread', function(error, docs) {
var list = docs;
list.push(tid);
redisPraiseLog.set(ent_code, userId, 'thread', list, function() {});
});
forumThreadService.getThreadById(tid, function(err, doc) {
if (err) {
console.error(err);
// res.json(returnCode.BUSY);
callback(returnCode.BUSY);
} else {
var rs = {};
rs.praise_count = doc.praise_count;
// res.json(_.assign(rs, returnCode.SUCCESS));
callback(_.assign(rs, returnCode.SUCCESS));
}
});
}
});
} else if (doc && doc.status == 0) {
async.parallel([
function(callback) {
//3.更新文章统计数据(点赞数)
if (thread && thread.praise_count > 0) {
forumThreadService.updateThreadRaiseCountDec(tid, function(err, cb) {
if (err) {
callback(err, null);
} else {
callback(null, null);
}
});
} else {
callback('cannot find thread by id', null);
}
},
function(callback) {
//4.更新点赞日志
forumPraiseLogService.updatePraiseLog(doc._id, 1, function(err, result) {
if (err) {
callback(err, null);
} else {
callback(null, null);
}
});
}
], function(err, results) {
if (err) {
console.error(err);
callback(returnCode.BUSY);
} else {
//更新点赞redis
redisPraiseLog.get(ent_code, userId, 'thread', function(error, docs) {
var list = docs;
for (var i = 0; i < list.length; i++) {
if (list[i].toString() == tid) {
list.splice(i, 1);
break;
}
}
redisPraiseLog.set(ent_code, userId, 'thread', list, function() {});
});
forumThreadService.getThreadById(tid, function(err, doc) {
if (err) {
console.error(err);
callback(returnCode.BUSY);
} else {
var rs = {};
rs.praise_count = doc.praise_count;
callback(_.assign(rs, returnCode.SUCCESS));
}
});
}
});
} else {
callback(returnCode.BUSY);
}
});
}
});
}
//根据发帖者分页查询话题列表
router.get('/thread/searchThread', function(req, res, next) {
......@@ -375,6 +520,223 @@ router.post('/thread/:tid/delete', function(req, res, next) {
}
});
//文章点赞
// router.post('/thread/:tid/raise', function(req, res, next) {
// var userId = req.session.mobileForumUser.userId;
// var mid = req.session.openUser.mid;
// var tid = req.params.tid || null;
// var ent_code = req.session.user.ent_code;
// if (tid) {
// var integral = req.session.openUser.integral || 0;
// var exp = req.session.openUser.exp || 0;
// //判断是否已经点赞
// forumPraiseLogService.queryPraiseLog(tid, null, user.getMobileUser(req), 1, function(err, doc) {
// if (err) {
// res.json(returnCode.BUSY);
// } else {
// //1.检查是否有权限
// forumRolePermissionService.checkRolePermiss(ent_code, 'raise', integral, exp, function(err, result) {
// if (err) {
// res.json(returnCode.BUSY);
// } else {
// if (result) { //有操作权限
// //2.获取论坛文章
// forumThreadService.getThreadById(tid, function(err, thread) {
// if (err) {
// res.json(returnCode.BUSY);
// } else {
// async.parallel([
// function(callback) {
// //3.更新文章统计数据(点赞数)
// if (thread) {
// forumThreadService.updateThreadRaiseCount(tid, function(err, cb) {
// if (err) {
// callback(err, null);
// } else {
// callback(null, null);
// }
// });
// } else {
// callback('cannot find thread by id', null);
// }
// },
// function(callback) {
// if (doc) { //如果已存在,更新为点赞日志
// forumPraiseLogService.updatePraiseLog(doc._id, 0, function(err, result) {
// if (err) {
// callback(err, null);
// } else {
// callback(null, null);
// }
// });
// } else { //不存在,创建点赞日志
// var entity = {
// ent_code: ent_code,
// user: user.getMobileUser(req),
// thread: tid,
// ip: req.ip,
// comment: null,
// type: 1,
// status: 0
// };
// //4.创建点赞日志
// forumPraiseLogService.createPraiseLog(entity, function(err, result) {
// if (err) {
// callback(err, null);
// } else {
// callback(null, null);
// }
// });
// }
// }
// ], function(err, results) {
// if (err) {
// console.error(err);
// res.json(returnCode.BUSY);
// } else {
// // forumLimitOperationService.checkLimitOperationProhibitionAddIntegral(userId, function(err, flag){
// // if(err){
// // console.error(err);
// // }else{
// // if(!flag){
// // httpService.sendRequest(ent_code, req.session.openUser.mid, 'thread_praise');
// // }
// // }
// // });
// //更新点赞redis
// redisPraiseLog.get(ent_code, userId, 'thread', function(error, docs) {
// var list = docs;
// list.push(tid);
// redisPraiseLog.set(ent_code, userId, 'thread', list, function() {});
// });
// forumThreadService.getThreadById(tid, function(err, doc) {
// if (err) {
// console.error(err);
// res.json(returnCode.BUSY);
// } else {
// var rs = {};
// rs.praise_count = doc.praise_count;
// res.json(_.assign(rs, returnCode.SUCCESS));
// }
// });
// }
// });
// }
// });
// } else {
// res.json(returnCode.ACTION_NOT_PERMISSION);
// }
// }
// });
// }
// });
// } else {
// res.json(returnCode.WRONG_PARAM);
// }
// });
//文章取消点赞
// router.post('/thread/:tid/cancelRaise', function(req, res, next) {
// var userId = req.session.mobileForumUser.userId;
// var mid = req.session.openUser.mid;
// var tid = req.params.tid || null;
// var ent_code = req.session.user.ent_code;
// if (tid) {
// var integral = req.session.openUser.integral || 0;
// var exp = req.session.openUser.exp || 0;
// //判断是否已经点赞
// forumPraiseLogService.queryPraiseLog(tid, null, userId, 1, function(err, doc) {
// if (err) {
// res.json(returnCode.BUSY);
// } else {
// if (doc) {
// var praiseId = doc._id;
// //1.检查是否有权限
// forumRolePermissionService.checkRolePermiss(ent_code, 'raise', integral, exp, function(err, result) {
// if (err) {
// res.json(returnCode.BUSY);
// } else {
// if (result) { //有操作权限
// //2.获取论坛文章
// forumThreadService.getThreadById(tid, function(err, thread) {
// if (err) {
// res.json(returnCode.BUSY);
// } else {
// async.parallel([
// function(callback) {
// //3.更新文章统计数据(点赞数)
// if (thread && thread.praise_count > 0) {
// forumThreadService.updateThreadRaiseCountDec(tid, function(err, cb) {
// if (err) {
// callback(err, null);
// } else {
// callback(null, null);
// }
// });
// } else {
// callback('cannot find thread by id', null);
// }
// },
// function(callback) {
// //4.更新点赞日志
// forumPraiseLogService.updatePraiseLog(praiseId, 1, function(err, result) {
// if (err) {
// callback(err, null);
// } else {
// callback(null, null);
// }
// });
// }
// ], function(err, results) {
// if (err) {
// console.error(err);
// res.json(returnCode.BUSY);
// } else {
// //更新点赞redis
// redisPraiseLog.get(ent_code, userId, 'thread', function(error, docs) {
// var list = docs;
// for (var i = 0; i < list.length; i++) {
// if (list[i].toString() == tid) {
// list.splice(i, 1);
// break;
// }
// }
// redisPraiseLog.set(ent_code, userId, 'thread', list, function() {});
// });
// forumThreadService.getThreadById(tid, function(err, doc) {
// if (err) {
// console.error(err);
// res.json(returnCode.BUSY);
// } else {
// var rs = {};
// rs.praise_count = doc.praise_count;
// res.json(_.assign(rs, returnCode.SUCCESS));
// }
// });
// }
// });
// }
// });
// } else {
// res.json(returnCode.ACTION_NOT_PERMISSION);
// }
// }
// });
// }
// }
// });
// } else {
// res.json(returnCode.WRONG_PARAM);
// }
// });
//文章点赞
router.post('/thread/:tid/raise', function(req, res, next) {
var userId = req.session.mobileForumUser.userId;
......@@ -382,113 +744,9 @@ router.post('/thread/:tid/raise', function(req, res, next) {
var tid = req.params.tid || null;
var ent_code = req.session.user.ent_code;
if (tid) {
var integral = req.session.openUser.integral || 0;
var exp = req.session.openUser.exp || 0;
//判断是否已经点赞
forumPraiseLogService.queryPraiseLog(tid, null, user.getMobileUser(req), 1, function(err, doc) {
if (err) {
res.json(returnCode.BUSY);
} else {
//1.检查是否有权限
forumRolePermissionService.checkRolePermiss(ent_code, 'raise', integral, exp, function(err, result) {
if (err) {
res.json(returnCode.BUSY);
} else {
if (result) { //有操作权限
//2.获取论坛文章
forumThreadService.getThreadById(tid, function(err, thread) {
if (err) {
res.json(returnCode.BUSY);
} else {
async.parallel([
function(callback) {
//3.更新文章统计数据(点赞数)
if (thread) {
forumThreadService.updateThreadRaiseCount(tid, function(err, cb) {
if (err) {
callback(err, null);
} else {
callback(null, null);
}
});
} else {
callback('cannot find thread by id', null);
}
},
function(callback) {
if (doc) { //如果已存在,更新为点赞日志
forumPraiseLogService.updatePraiseLog(doc._id, 0, function(err, result) {
if (err) {
callback(err, null);
} else {
callback(null, null);
}
});
} else { //不存在,创建点赞日志
var entity = {
ent_code: ent_code,
user: user.getMobileUser(req),
thread: tid,
ip: req.ip,
comment: null,
type: 1,
status: 0
};
//4.创建点赞日志
forumPraiseLogService.createPraiseLog(entity, function(err, result) {
if (err) {
callback(err, null);
} else {
callback(null, null);
}
});
}
}
], function(err, results) {
if (err) {
console.error(err);
res.json(returnCode.BUSY);
} else {
// forumLimitOperationService.checkLimitOperationProhibitionAddIntegral(userId, function(err, flag){
// if(err){
// console.error(err);
// }else{
// if(!flag){
// httpService.sendRequest(ent_code, req.session.openUser.mid, 'thread_praise');
// }
// }
// });
//更新点赞redis
redisPraiseLog.get(ent_code, userId, 'thread', function(error, docs) {
var list = docs;
list.push(tid);
redisPraiseLog.set(ent_code, userId, 'thread', list, function() {});
});
forumThreadService.getThreadById(tid, function(err, doc) {
if (err) {
console.error(err);
res.json(returnCode.BUSY);
} else {
var rs = {};
rs.praise_count = doc.praise_count;
res.json(_.assign(rs, returnCode.SUCCESS));
}
});
}
});
}
});
} else {
res.json(returnCode.ACTION_NOT_PERMISSION);
}
}
});
}
raiseOrcancelRaise(req, ent_code, tid, userId,function(result){
res.json(result);
});
} else {
res.json(returnCode.WRONG_PARAM);
}
......@@ -501,97 +759,15 @@ router.post('/thread/:tid/cancelRaise', function(req, res, next) {
var tid = req.params.tid || null;
var ent_code = req.session.user.ent_code;
if (tid) {
var integral = req.session.openUser.integral || 0;
var exp = req.session.openUser.exp || 0;
//判断是否已经点赞
forumPraiseLogService.queryPraiseLog(tid, null, userId, 1, function(err, doc) {
if (err) {
res.json(returnCode.BUSY);
} else {
if (doc) {
var praiseId = doc._id;
//1.检查是否有权限
forumRolePermissionService.checkRolePermiss(ent_code, 'raise', integral, exp, function(err, result) {
if (err) {
res.json(returnCode.BUSY);
} else {
if (result) { //有操作权限
//2.获取论坛文章
forumThreadService.getThreadById(tid, function(err, thread) {
if (err) {
res.json(returnCode.BUSY);
} else {
async.parallel([
function(callback) {
//3.更新文章统计数据(点赞数)
if (thread && thread.praise_count > 0) {
forumThreadService.updateThreadRaiseCountDec(tid, function(err, cb) {
if (err) {
callback(err, null);
} else {
callback(null, null);
}
});
} else {
callback('cannot find thread by id', null);
}
},
function(callback) {
//4.更新点赞日志
forumPraiseLogService.updatePraiseLog(praiseId, 1, function(err, result) {
if (err) {
callback(err, null);
} else {
callback(null, null);
}
});
}
], function(err, results) {
if (err) {
console.error(err);
res.json(returnCode.BUSY);
} else {
//更新点赞redis
redisPraiseLog.get(ent_code, userId, 'thread', function(error, docs) {
var list = docs;
for (var i = 0; i < list.length; i++) {
if (list[i].toString() == tid) {
list.splice(i, 1);
break;
}
}
redisPraiseLog.set(ent_code, userId, 'thread', list, function() {});
});
forumThreadService.getThreadById(tid, function(err, doc) {
if (err) {
console.error(err);
res.json(returnCode.BUSY);
} else {
var rs = {};
rs.praise_count = doc.praise_count;
res.json(_.assign(rs, returnCode.SUCCESS));
}
});
}
});
}
});
} else {
res.json(returnCode.ACTION_NOT_PERMISSION);
}
}
});
}
}
raiseOrcancelRaise(req, ent_code, tid, userId,function(result){
res.json(result);
});
} else {
res.json(returnCode.WRONG_PARAM);
}
});
//文章分享
router.post('/thread/:tid/share', function(req, res, next) {
var tid = req.params.tid || null;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment