Commit 134b62e3 authored by 邓军's avatar 邓军

微信分享接口

parent a04eda39
'use strict';
var express = require('express'),
router = express.Router(),
returnCode = require('../../utils/returnCode'),
_ = require('lodash');
var mongoose = require('mongoose');
var forumThreadService = require('../../service/forumThreadService');
var forumShareConfigService = require('../../service/forumShareConfigService');
var forumShareService = require('../../service/forumShareService');
var config = require('../../../config/config');
var then = require('thenjs');
//var forumInfoService = require('../../service/forumInfoService');
module.exports = function(app) {
app.use('/v1/forum', router);
};
function getWX(res, title, desc, link, imgUrl) {
link = config.service + link;
res.writeHead(200, {
'Content-Type': 'text/javascript',
'Cache-Control': 'no-cache',
'Pragma': 'no-cache'
});
// result.debug = 'true' === isDebug ? true : false;
// result.jsApiList = jsApiList;
res.write('$(function(){');
// var title = type+'类型分享',
// link = 'http://sandbox.wxpai.cn/app/aubywx/100041',
// imgUrl = 'http://dev.fs.wxpai.cn/upload/100001_2015410_1428671539587_40.jpg',
// desc = '测试描述';
// var string = '';
var string = 'wx.onMenuShareTimeline({' + '\"title\": \"' + title + '\",' + '\"link\":\"' + link + '\",' + '\"imgUrl\": \"' + imgUrl + '\", ' + 'success: function(){},' + 'cancel: function () {}' + ' });' + ' wx.onMenuShareAppMessage({' + '\"title\": \"' + title + '\", ' + '\"desc\": \"' + desc + '\", ' + '\"link\":\"' + link + '\", ' + '\"imgUrl\": \"' + imgUrl + '\", ' + '\"type\":\'\' ,' + '\"dataUrl\": \'\', ' + 'success: function(){},' + 'cancel: function () { ' + '}' + ' });'
res.write('wx.ready(function(){' + string + '});');
res.write('wx.error(function(res){console.log(res);});');
res.write('});');
res.end();
}
//微信分享接口
router.get('/:ent_code/share.js', function(req, res, next) {
var rs = {};
var type = req.query.type;
var id = req.query.id;
var ent_code = req.params.ent_code;
var link = '/app/forum/' + ent_code +'/index/';
if (type) {
//板块微信接口
if (type === 'Info') {
then(function(cont) {
forumShareConfigService.getByEntCode(ent_code, function(err, result) {
var title = '',
desc = '',
imgUrl = '';
if (result) {
for (var i = 0; i < result.length; i++) {
if (result[i].meta_key === 'share_info_title') {
title = result[i].meta_value;
} else if (result[i].meta_key === 'share_info_description') {
desc = result[i].meta_value;
} else if (result[i].meta_key === 'share_info_icon') {
imgUrl = result[i].meta_value;
}
}
link = link + 'index.html?infoId=' + id;
getWX(res, desc, title, link, imgUrl);
} else {
cont(err);
}
});
}).fail(function(cont, err) {
console.error(err);
res.json({
result: false,
code: '10002'
});
});
} else if (!id) {
console.error("ID不能为空");
res.json({
message: 'ID不能为空',
result: false,
code: '10002'
});
} else if (type === 'Thread') {
then(function(cont) {
//获得文章
forumThreadService.getById(id, function(err, result) {
if (result) {
cont(null, result);
} else {
cont(err);
}
});
}).then(function(cont, result) {
//如果没有share值则用默认值
if (!result.share) {
forumShareConfigService.getByEntCode(ent_code, function(err, sc) {
var title = '',
desc = '',
imgUrl = '';
if (sc) {
var key = '';
//1、文章 2、话题 3、照片墙
if (result.type === 1 || (result.type === 2 && result.level === 2)) {
link = link + 'main.html?infoId=' + result.info + '&ent_code=' + ent_code + '&id=' + result._id;
key = 'article';
} else if (result.type === 2 && result.level === 1) {
link = link + 'hot_topic.html?infoId=' + result.info + '&ent_code=' + ent_code + '&id=' + result._id;
key = 'topic';
} else if (result.type === 3) {
link = link + 'photo.html?infoId=' + result.info + '&ent_code=' + ent_code + '&id=' + result._id;
key = 'photo';
}
for (var i = 0; i < sc.length; i++) {
if (sc[i].meta_key === 'share_' + key + '_title') {
title = sc[i].meta_value;
} else if (sc[i].meta_key === 'share_' + key + '_description') {
desc = sc[i].meta_value;
} else if (sc[i].meta_key === 'share_' + key + '_icon') {
imgUrl = sc[i].meta_value;
}
}
getWX(res, title, desc, link, imgUrl);
} else {
cont(err);
}
});
} else {
//如果有分享设置,则返回分享设置
forumShareService.getById(result.share, function(err, forumShare) {
//1、文章 2、话题 3、照片墙
if (result.type === 1 || (result.type === 2 && result.level === 2)) {
link = link + 'main.html?infoId=' + result.info + '&ent_code=' + ent_code + '&id=' + result._id;
// key = 'article';
} else if (result.type === 2 && result.level === 1) {
link = link + 'hot_topic.html?infoId=' + result.info + '&ent_code=' + ent_code + '&id=' + result._id;
//key = 'topic';
} else if (result.type === 3) {
link = link + 'photo.html?infoId=' + result.info + '&ent_code=' + ent_code + '&id=' + result._id;
//key = 'photo';
}
getWX(res, forumShare.title, forumShare.description, link, forumShare.icon);
});
}
}).fail(function(cont, err) {
console.error(err);
res.json({
result: false,
code: '10002'
});
});
}
} else {
res.json({
result: false,
code: '10002'
});
}
});
'use strict';
var mongoose = require('mongoose'),
Schema = mongoose.Schema;
//分享内容
var ForumShareConfigSchema = new Schema({
ent_code: {
type: Number,
require: true,
index: true
},
meta_key: {
type: String,
index: true
},
meta_value: {
type: Object,
require: true
}
}, {
'collection': 'pisns_forum_share_config'
});
module.exports = mongoose.model('ForumShareConfig', ForumShareConfigSchema);
'use strict';
var mongoose = require('mongoose');
var ForumShareConfig = mongoose.model('ForumShareConfig');
var async=require('async');
//创建配置信息
exports.createForumShareConfig=function(entity,callback){
var forumShareConfig = new ForumShareConfig(entity);
forumShareConfig.save(function(err, forumShareConfig) {
if (err) {
console.error(err);
callback(err,null);
} else {
callback(null,forumShareConfig);
}
});
};
//根据ent_code获取配置信息
exports.getByEntCode = function(ent_code,callback){
ForumShareConfig.find({ ent_code: ent_code},function(err,result){
if (err) {
console.error(err);
callback(err,null);
} else {
callback(null,result);
}
});
};
\ No newline at end of file
'use strict';
var mongoose = require('mongoose');
var ForumShare = mongoose.model('ForumShare');
//根据ID获取分享设置
exports.getById = function(id, callback) {
ForumShare.findOne({
_id: id
}, function(err, result) {
if (err) {
console.error(err);
callback(err, null);
} else {
callback(null, result);
}
});
}
\ No newline at end of file
...@@ -8,457 +8,526 @@ var forumCommentService = require('./forumCommentService'); ...@@ -8,457 +8,526 @@ var forumCommentService = require('./forumCommentService');
var async = require('async'); var async = require('async');
//创建文章 //创建文章
exports.createThread=function(entity,callback){ exports.createThread = function(entity, callback) {
var forum = new ForumThread(entity); var forum = new ForumThread(entity);
forum.save(function(err, forum) { forum.save(function(err, forum) {
if (err) { if (err) {
console.error(err); console.error(err);
callback(err,null); callback(err, null);
} else { } else {
callback(null,forum); callback(null, forum);
} }
}); });
}; };
//根据ID获取文章记录,不查评论,子话题
exports.getById = function(id, callback) {
ForumThread.findOne({
_id: id
}, function(err, result) {
if (err) {
console.error(err);
callback(err, null);
} else {
callback(null, result);
}
});
}
//根据ID获取文章 //根据ID获取文章
exports.getThreadById=function(tid,callback){ exports.getThreadById = function(tid, callback) {
async.parallel([ async.parallel([
function(cb){ function(cb) {
var conditions={ var conditions = {
_id:tid _id: tid
}; };
ForumThread.find(conditions).populate('from').populate('info').exec(function(err, docs) { ForumThread.find(conditions).populate('from').populate('info').exec(function(err, docs) {
if (err) { if (err) {
console.error(err); console.error(err);
callback(err,null); callback(err, null);
} else { } else {
var thread={}; var thread = {};
if (docs && docs.length > 0) { if (docs && docs.length > 0) {
thread=docs[0]; thread = docs[0];
cb(null,thread); cb(null, thread);
}else{ } else {
cb(null,thread); cb(null, thread);
} }
} }
}); });
}, },
function(cb){ function(cb) {
var conditions={ var conditions = {
thread:tid, thread: tid,
level:'1' level: '1'
}; };
//获取最新10条评论 //获取最新10条评论
forumCommentService.getAllComment(conditions,1,10,function(err,results){ forumCommentService.getAllComment(conditions, 1, 10, function(err, results) {
if(err){ if (err) {
console.log(err); console.log(err);
cb(err,null); cb(err, null);
}else{ } else {
cb(null,results); cb(null, results);
} }
}); });
}, },
function(cb){ function(cb) {
//获取话题子文章列表 //获取话题子文章列表
var conditions={ var conditions = {
pid:tid, pid: tid,
type:2 type: 2
}; };
getAllThreadByFidHelp(conditions,1,10,null,function(err,threads){ getAllThreadByFidHelp(conditions, 1, 10, null, function(err, threads) {
if(err){ if (err) {
console.error(err); console.error(err);
cb(err,null); cb(err, null);
}else{ } else {
// console.log(threads); // console.log(threads);
cb(null,threads); cb(null, threads);
} }
}); });
}, },
function(cb){ function(cb) {
//获取照片墙最新文章列表 //获取照片墙最新文章列表
var conditions={ var conditions = {
pid:tid, pid: tid,
type:3 type: 3
}; };
getAllThreadByFidHelp(conditions,1,10,'-created',function(err,threads){ getAllThreadByFidHelp(conditions, 1, 10, '-created', function(err, threads) {
if(err){ if (err) {
console.error(err); console.error(err);
cb(err,null); cb(err, null);
}else{ } else {
cb(null,threads); cb(null, threads);
} }
}); });
}, },
function(cb){ function(cb) {
//获取照片墙最热文章列表 //获取照片墙最热文章列表
var conditions={ var conditions = {
pid:tid, pid: tid,
type:3 type: 3
}; };
getAllThreadByFidHelp(conditions,1,10,'-praise_count',function(err,threads){ getAllThreadByFidHelp(conditions, 1, 10, '-praise_count', function(err, threads) {
if(err){ if (err) {
console.error(err); console.error(err);
cb(err,null); cb(err, null);
}else{ } else {
cb(null,threads); cb(null, threads);
} }
}); });
}, },
function(cb){ function(cb) {
//获取发帖人数 //获取发帖人数
ForumThread.aggregate( ForumThread.aggregate({
{ $match: {
$match: { pid: mongoose.Types.ObjectId(tid)
pid:mongoose.Types.ObjectId(tid) }
} }, {
}, $group: {
{ _id: {
$group : { from: '$from'
_id : { },
from:'$from' count: {
}, $sum: 1
count : { $sum : 1 } }
} }
},function (err, data){ }, function(err, data) {
if (err) { if (err) {
cb(err,null); cb(err, null);
}else{ } else {
cb(null,data.length); cb(null, data.length);
} }
}); });
} }
],function(err,results){ ], function(err, results) {
if(err){ if (err) {
callback(err,null); callback(err, null);
}else{ } else {
var thread=results[0]; var thread = results[0];
var comments=results[1]; var comments = results[1];
var subThreads=results[2]||[];//话题子文章列表 var subThreads = results[2] || []; //话题子文章列表
var latestPhotos=results[3]||[];//最新照片墙列表 var latestPhotos = results[3] || []; //最新照片墙列表
var hotPhotos=results[4]||[];//最热照片墙列表 var hotPhotos = results[4] || []; //最热照片墙列表
var canyuPeopleCount=results[5]||0;//参与人数 var canyuPeopleCount = results[5] || 0; //参与人数
var threadObj=thread.toObject(); var threadObj = thread.toObject();
threadObj.comments=comments; threadObj.comments = comments;
threadObj.subThreads=subThreads; threadObj.subThreads = subThreads;
threadObj.latestPhotos=latestPhotos; threadObj.latestPhotos = latestPhotos;
threadObj.hotPhotos=hotPhotos; threadObj.hotPhotos = hotPhotos;
threadObj.canyuPeopleCount=canyuPeopleCount; threadObj.canyuPeopleCount = canyuPeopleCount;
callback(null,threadObj); callback(null, threadObj);
} }
}); });
}; };
//根据ID更新文章 //根据ID更新文章
exports.updateThreadById=function(tid,entity,callback){ exports.updateThreadById = function(tid, entity, callback) {
ForumThread.update({ _id: tid}, entity,null,function(err,result){ ForumThread.update({
if (err) { _id: tid
console.error(err); }, entity, null, function(err, result) {
callback(err,null); if (err) {
} else { console.error(err);
callback(null,null); callback(err, null);
} } else {
}); callback(null, null);
}
});
}; };
//根据ID更新文章 //根据ID更新文章
exports.deleteThreadById=function(tid,callback){ exports.deleteThreadById = function(tid, callback) {
ForumThread.remove({ _id: tid},function(err,result){ ForumThread.remove({
if (err) { _id: tid
console.error(err); }, function(err, result) {
callback(err,null); if (err) {
} else { console.error(err);
callback(null,null); callback(err, null);
} } else {
}); callback(null, null);
}
});
}; };
//一级评论 //一级评论
function populateComment(doc, callback){ function populateComment(doc, callback) {
if (doc && doc.comments.length > 0) { if (doc && doc.comments.length > 0) {
var asyncTasks = []; var asyncTasks = [];
doc.comments.forEach(function(comment){ doc.comments.forEach(function(comment) {
asyncTasks.push(function(callback) { asyncTasks.push(function(callback) {
ForumComment.populate(comment, {path:'from to', select:'uid nickName icon displayName displayIcon comments'} , function(err, c){ ForumComment.populate(comment, {
if (err) { path: 'from to',
console.error(err); select: 'uid nickName icon displayName displayIcon comments'
callback(null, null); }, function(err, c) {
} else{ if (err) {
// console.log(comment); console.error(err);
if(comment.comments){ callback(null, null);
populateSubComment(comment,function(err, results){ } else {
if(err){ // console.log(comment);
console.error(err); if (comment.comments) {
callback(null, null); populateSubComment(comment, function(err, results) {
} else { if (err) {
var newobj = comment.toObject(); console.error(err);
newobj.comments = results; callback(null, null);
callback(null,newobj); } else {
} var newobj = comment.toObject();
}); newobj.comments = results;
}else{ callback(null, newobj);
callback(null,doc); }
} });
} } else {
callback(null, doc);
}
}
}); });
}); });
}); });
async.parallel(asyncTasks, function(err, results) { async.parallel(asyncTasks, function(err, results) {
if (err) { if (err) {
console.log(err); console.log(err);
callback(null, null); callback(null, null);
} else { } else {
if(results && results.length>0){ if (results && results.length > 0) {
callback(null,results[0]); callback(null, results[0]);
}else{ } else {
callback(null,{}); callback(null, {});
} }
// callback(null, results); // callback(null, results);
} }
}); });
} else{ } else {
callback(null, doc); callback(null, doc);
} }
} }
//二级评论 //二级评论
function populateSubComment(subComments, callback){ function populateSubComment(subComments, callback) {
if (subComments.comments && subComments.comments.length > 0) { if (subComments.comments && subComments.comments.length > 0) {
var asyncTasks = []; var asyncTasks = [];
subComments.comments.forEach(function(comment){ subComments.comments.forEach(function(comment) {
asyncTasks.push(function(callback) { asyncTasks.push(function(callback) {
ForumComment.findOne({_id: comment}).populate({path:'from to', select:'uid nickName icon'}).exec(function(err, c){ ForumComment.findOne({
if (err) { _id: comment
console.error(err); }).populate({
callback(null, null); path: 'from to',
} else{ select: 'uid nickName icon'
callback(null ,c); }).exec(function(err, c) {
} if (err) {
console.error(err);
callback(null, null);
} else {
callback(null, c);
}
}); });
}); });
}); });
async.parallel(asyncTasks, function(err, results) { async.parallel(asyncTasks, function(err, results) {
if (err) { if (err) {
console.log(err); console.log(err);
callback(null, null); callback(null, null);
} else { } else {
callback(null, results); callback(null, results);
} }
}); });
} else{ } else {
callback(null, null); callback(null, null);
} }
} }
//获取数量 //获取数量
function countAllByFid(conditions,callback) { function countAllByFid(conditions, callback) {
ForumThread.count(conditions, function (err, count) { ForumThread.count(conditions, function(err, count) {
if(err){ if (err) {
console.error(err); console.error(err);
callback(err,null); callback(err, null);
}else{ } else {
callback(null,count); callback(null, count);
} }
}); });
} }
//导出获取数量函数 //导出获取数量函数
exports.getAllCountByFid=function(conditions,callback){ exports.getAllCountByFid = function(conditions, callback) {
countAllByFid(conditions,callback); countAllByFid(conditions, callback);
} }
//获取话题、照片墙子文章数据 //获取话题、照片墙子文章数据
function getSubThreads(doc,sort,callback){ function getSubThreads(doc, sort, callback) {
var conditions={ var conditions = {
pid:doc._id pid: doc._id
}; };
countAllByFid(conditions,function(err,count){ countAllByFid(conditions, function(err, count) {
if(err){ if (err) {
console.error(err); console.error(err);
callback(err,null); callback(err, null);
}else{ } else {
var sortBy='-top -created'; var sortBy = '-top -created';
if(sort){ if (sort) {
sortBy=sort; sortBy = sort;
} }
ForumThread.find(conditions).populate('from').sort(sortBy).exec(function(err, docs) { ForumThread.find(conditions).populate('from').sort(sortBy).exec(function(err, docs) {
if (err) { if (err) {
console.error(err); console.error(err);
callback(err,null); callback(err, null);
} else { } else {
var obj={}; var obj = {};
obj.total=count; obj.total = count;
obj.items=docs; obj.items = docs;
var newDoc=doc.toObject(); var newDoc = doc.toObject();
newDoc.subThreads=obj; newDoc.subThreads = obj;
callback(null,newDoc); callback(null, newDoc);
} }
}); });
} }
}); });
} }
function getAllThreadByFidHelp(conditions,pageNo,pageSize,sort,callback){ function getAllThreadByFidHelp(conditions, pageNo, pageSize, sort, callback) {
countAllByFid(conditions,function(err,count){ countAllByFid(conditions, function(err, count) {
if(err){ if (err) {
console.error(err); console.error(err);
callback(err,null); callback(err, null);
}else{ } else {
var skip = (pageNo - 1) * pageSize; var skip = (pageNo - 1) * pageSize;
var limit = count - skip > pageSize ? pageSize : (count - skip); var limit = count - skip > pageSize ? pageSize : (count - skip);
var sortBy='-topTime -created'; var sortBy = '-topTime -created';
if(sort){ if (sort) {
sortBy=sort; sortBy = sort;
} }
ForumThread.find(conditions).populate('from').populate('info').populate({path:'tag'}).populate({path:'comments',options:{limit:5,sort:'-created'}, select:'from to created content'}).limit(limit).skip(skip).sort(sortBy).exec(function(err, docs) { ForumThread.find(conditions).populate('from').populate('info').populate({
if (err) { path: 'tag'
console.error(err); }).populate({
callback(err,null); path: 'comments',
} else { options: {
var obj={}; limit: 5,
obj.total=count; sort: '-created'
obj.pageNo=pageNo; },
obj.pageSize=pageSize; select: 'from to created content'
obj.items=docs; }).limit(limit).skip(skip).sort(sortBy).exec(function(err, docs) {
if (err) {
console.error(err);
callback(err, null);
} else {
var obj = {};
obj.total = count;
obj.pageNo = pageNo;
obj.pageSize = pageSize;
obj.items = docs;
if (docs && docs.length > 0) {
var asyncTasks = [];
if (docs && docs.length > 0) { docs.forEach(function(doc) {
var asyncTasks = []; // console.log(doc);
if (doc.type === 1 || doc.level !== 1) { //非照片墙或文章时获取评论
asyncTasks.push(function(callback) {
populateComment(doc, callback);
});
} else {
asyncTasks.push(function(callback) {
getSubThreads(doc, null, callback);
});
}
docs.forEach(function(doc){ });
// console.log(doc); async.parallel(asyncTasks, function(err, results) {
if(doc.type===1 || doc.level!==1){//非照片墙或文章时获取评论 if (err) {
asyncTasks.push(function(callback) { console.error(err);
populateComment(doc, callback); callback(null, null);
}); } else {
}else{ obj.items = results;
asyncTasks.push(function(callback) { callback(null, obj);
getSubThreads(doc,null, callback); }
}); });
}
} else {
}); callback(null, obj);
async.parallel(asyncTasks, function(err, results) { }
if (err) { }
console.error(err); });
callback(null, null); }
} else { });
obj.items=results;
callback(null,obj);
}
});
}else{
callback(null,obj);
}
}
});
}
});
} }
//获取全部列表数据 //获取全部列表数据
exports.getAllThreadByFid= function(conditions,pageNo,pageSize,sort,callback) { exports.getAllThreadByFid = function(conditions, pageNo, pageSize, sort, callback) {
getAllThreadByFidHelp(conditions,pageNo,pageSize,sort,callback); getAllThreadByFidHelp(conditions, pageNo, pageSize, sort, callback);
}; };
//根据板块ID更新板块下的top为0,并把当前文章的top设为1(置顶) //根据板块ID更新板块下的top为0,并把当前文章的top设为1(置顶)
exports.updateTopByThreadId=function(infoId,threadId,callback){ exports.updateTopByThreadId = function(infoId, threadId, callback) {
// ForumThread.update({info:infoId}, {top:0},{multi:true}, function(err, doc) { // ForumThread.update({info:infoId}, {top:0},{multi:true}, function(err, doc) {
// if(err){ // if(err){
// callback(err,null); // callback(err,null);
// }else{ // }else{
// ForumThread.findOneAndUpdate({_id:threadId}, {top:1}, function(err, doc) { // ForumThread.findOneAndUpdate({_id:threadId}, {top:1}, function(err, doc) {
// if(err){ // if(err){
// callback(err,null); // callback(err,null);
// }else{ // }else{
// callback(null,null); // callback(null,null);
// } // }
// }); // });
// } // }
// }); // });
ForumThread.findOneAndUpdate({_id:threadId}, {top:1,topTime:new Date()}, function(err, doc) { ForumThread.findOneAndUpdate({
if(err){ _id: threadId
callback(err,null); }, {
}else{ top: 1,
callback(null,null); topTime: new Date()
} }, function(err, doc) {
}); if (err) {
callback(err, null);
} else {
callback(null, null);
}
});
}; };
//根据板块ID更新板块下的top为0,并把当前文章的top设为1(置顶) //根据板块ID更新板块下的top为0,并把当前文章的top设为1(置顶)
exports.updateUnTopByThreadId=function(infoId,threadId,callback){ exports.updateUnTopByThreadId = function(infoId, threadId, callback) {
ForumThread.findOneAndUpdate({_id:threadId}, {top:0,topTime:null}, function(err, doc) { ForumThread.findOneAndUpdate({
if(err){ _id: threadId
callback(err,null); }, {
}else{ top: 0,
callback(null,null); topTime: null
} }, function(err, doc) {
}); if (err) {
callback(err, null);
} else {
callback(null, null);
}
});
}; };
//更新文章点赞数 //更新文章点赞数
exports.updateThreadRaiseCount=function(threadId,callback){ exports.updateThreadRaiseCount = function(threadId, callback) {
ForumThread.update( ForumThread.update({
{_id:threadId}, _id: threadId
{$inc: { praise_count: 1 }}, }, {
{w:1,safe:true}, $inc: {
function(err,result){ praise_count: 1
if(err){ }
console.error(err); }, {
callback(err,null); w: 1,
}else{ safe: true
callback(null,null); },
} function(err, result) {
}); if (err) {
console.error(err);
callback(err, null);
} else {
callback(null, null);
}
});
}; };
//更新文章分享数 //更新文章分享数
exports.updateThreadShareCount=function(threadId,callback){ exports.updateThreadShareCount = function(threadId, callback) {
ForumThread.update( ForumThread.update({
{_id:threadId}, _id: threadId
{$inc: { share_count: 1 }}, }, {
{w:1,safe:true}, $inc: {
function(err,result){ share_count: 1
if(err){ }
console.error(err); }, {
callback(err,null); w: 1,
}else{ safe: true
callback(null,null); },
} function(err, result) {
}); if (err) {
console.error(err);
callback(err, null);
} else {
callback(null, null);
}
});
}; };
//更新文章评论数 //更新文章评论数
exports.updateThreadCommentCount=function(threadId,callback){ exports.updateThreadCommentCount = function(threadId, callback) {
ForumThread.update( ForumThread.update({
{_id:threadId}, _id: threadId
{$inc: { comment_count: 1 }}, }, {
{w:1,safe:true}, $inc: {
function(err,result){ comment_count: 1
if(err){ }
console.error(err); }, {
callback(err,null); w: 1,
}else{ safe: true
callback(null,null); },
} function(err, result) {
}); if (err) {
console.error(err);
callback(err, null);
} else {
callback(null, null);
}
});
}; };
//更新文章浏览数 //更新文章浏览数
exports.updateThreadPvCount=function(threadId,callback){ exports.updateThreadPvCount = function(threadId, callback) {
ForumThread.update( ForumThread.update({
{_id:threadId}, _id: threadId
{$inc: { pv_count: 1 }}, }, {
{w:1,safe:true}, $inc: {
function(err,result){ pv_count: 1
if(err){ }
console.error(err); }, {
callback(err,null); w: 1,
}else{ safe: true
callback(null,null); },
} function(err, result) {
}); if (err) {
console.error(err);
callback(err, null);
} else {
callback(null, 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