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

修改获取荣誉头衔接口,增加设置荣誉头衔接口

parent afe04c03
......@@ -12,12 +12,15 @@ var forumShareLogService = require('../../service/forumShareLogService');
var forumCommentService = require('../../service/forumCommentService');
var forumTagService = require('../../service/forumTagService');
var forumUserService = require('../../service/forumUserService');
var forumUserHonorTimeLineService = require('../../service/forumUserHonorTimeLineService');
var httpService = require('../../service/httpService');
var userUtil = require('../../utils/user');
var async = require('async');
var _ = require('lodash');
var then = require('thenjs');
returnCode = require('../../utils/returnCode');
var request=require('request');
var env = process.env.NODE_ENV;
......@@ -185,4 +188,109 @@ router.get('/member/:uid/favors', function(req, res, next) {
err: 'params error'
});
}
});
\ No newline at end of file
});
//设置荣誉头衔
router.post('/member/:mid/setHonorTitle', function(req, res, next) {
var mid=req.params.mid;
var entity = req.body;
var ent_code = req.session.user.ent_code;
//荣誉列表
var honorList = entity.honorTitles;
//需要添加的荣誉
var addHonorList = [];
//需要移除的荣誉
var removeHonorList = [];
async.waterfall([
function(callback) {
//获取已有头衔
forumUserService.getUserById(mid, function(err, user) {
callback(err, user);
});
},
function(user, callback) {
if(user && user.honorTitles.length > 0){
var exitsHonorList = user.honorTitles;
for(var i = 0;i < exitsHonorList.length; i++){
var flag = true;
for(var j = 0; j < honorList.length; j++){
if(exitsHonorList[i]._id.toString() == honorList[j]){ //相等
flag = false;
break;
}
}
if(flag){ //获取需要删除的
removeHonorList.push(exitsHonorList[i]._id);
}
}
for(var k = 0; k < honorList.length; k++){
var add_flag = true;
for(var l = 0; l < exitsHonorList.length; l++){
if(honorList[k].toString() == exitsHonorList[l]._id.toString()){ //相等
add_flag = false;
break;
}
}
if(add_flag){ //获取需要添加的
addHonorList.push(honorList[k]);
}
}
}else{
addHonorList = honorList;
}
//设置头衔头衔
forumUserService.updateUserById(mid,entity,function(err,result){
callback(err, result);
});
},
function(list, callback) { //插入时间线
var asyncTasks = [];
_.forEach(addHonorList, function(one, i) {
asyncTasks.push(function(cont) {
var model = {
ent_code: ent_code,
user: mid,
honor: one
};
forumUserHonorTimeLineService.create(model,function(err,entity){
if (err) {
console.error(err);
cont(err, null);
} else {
cont(null, entity);
}
});
});
});
then.parallel(asyncTasks).then(function(cont, datas) {
callback(null, null);
}).fail(function(err, cont) {
callback(err, null);
});
},
function(user, callback) {
var condition = {
user:mid,
honor:{$in:removeHonorList}
}
//设置头衔头衔
forumUserHonorTimeLineService.deleteByCondition(condition,function(err,result){
callback(err, result);
});
}
], function(err, result) {
if (err) {
console.error(err);
res.json(returnCode.BUSY);
} else {
res.json(returnCode.SUCCESS);
}
});
});
......@@ -9,22 +9,47 @@ var express = require('express'),
var mongoose = require('mongoose');
var forumHonorTitleService = require('../../service/forumHonorTitleService');
var forumUserService = require('../../service/forumUserService');
var forumUserHonorTimeLineService = require('../../service/forumUserHonorTimeLineService');
module.exports = function(app) {
app.use('/v1/forum', router);
};
//查询单个头衔信息人员信息
router.get('/honorTitle/:hid/list', function(req, res, next) {
var ent_code = req.session.user.ent_code;
var honorTitleId = req.params.hid;
var user_conditions = {
ent_code: ent_code,
honorTitles: {
$in: [honorTitleId]
}
};
var fields = "nickName icon";
forumUserService.searchMembersAndFields(1, 10000, user_conditions,fields, function(err, results) {
if (err) {
console.error(err);
res.json(returnCode.BUSY);
} else {
res.json(_.assign(results, returnCode.SUCCESS));
}
});
});
//查询所有头衔信息、前4头衔人员信息
router.get('/honorTitle/list', function(req, res, next) {
var pageNo = req.query.pageNo || 1,
pageSize = req.query.pageSize || 4,
ent_code = req.session.user.ent_code;
pageSize = req.query.pageSize || 4,
ent_code = req.session.user.ent_code;
var honorTitle_condition = {
ent_code: ent_code,
status: 1
}
var fields = "nickName icon";
async.waterfall([
......@@ -34,18 +59,17 @@ router.get('/honorTitle/list', function(req, res, next) {
callback(err, list);
});
},
function(list, callback) { //更新用户消息
function(list, callback) { //获取用户
var asyncTasks = [];
_.forEach(list, function(one, i) {
asyncTasks.push(function(cont) {
var user_conditions = {
ent_code: ent_code,
honorTitles: {
honor: {
$in: [one._id]
}
};
forumUserService.searchMembersAndFields(pageNo, pageSize, user_conditions,fields, function(err, results) {
forumUserHonorTimeLineService.getAll(pageNo, pageSize, user_conditions,fields, function(err, results) {
if (err) {
console.error(err);
cont(err, null);
......@@ -53,7 +77,11 @@ router.get('/honorTitle/list', function(req, res, next) {
if (list[i].toObject) {
list[i] = list[i].toObject();
}
list[i].users = results;
var users = [];
_.forEach(results, function(one, i) {
users.push(one.user);
});
list[i].users = users;
cont(null, one);
}
});
......@@ -73,29 +101,4 @@ router.get('/honorTitle/list', function(req, res, next) {
res.json(_.assign(result, returnCode.SUCCESS));
}
});
});
//查询单个头衔信息人员信息
router.get('/honorTitle/:hid/list', function(req, res, next) {
var ent_code = req.session.user.ent_code;
var honorTitleId = req.params.hid;
var user_conditions = {
ent_code: ent_code,
honorTitles: {
$in: [honorTitleId]
}
};
var fields = "nickName icon";
forumUserService.searchMembersAndFields(1, 10000, user_conditions,fields, function(err, results) {
if (err) {
console.error(err);
res.json(returnCode.BUSY);
} else {
res.json(_.assign(results, returnCode.SUCCESS));
}
});
});
});
\ No newline at end of file
'use strict';
var mongoose = require('mongoose'),
Schema = mongoose.Schema;
//用户设置荣誉头衔时间线
var ForumUserHonorTimeLineSchema = new Schema({
ent_code: {
type: Number,
require: true,
index: true
},
user: { //用户
type: Schema.Types.ObjectId,
require: true,
index: true,
ref: 'ForumUser'
},
honor: { //荣誉
type: Schema.Types.ObjectId,
ref: 'ForumHonorTitle',
index: true
},
created: {
type: Date,
required: true,
default: Date.now
}
}, {
'collection': 'pisns_forum_user_honor_time_line'
});
module.exports = mongoose.model('ForumUserHonorTimeLine', ForumUserHonorTimeLineSchema);
'use strict';
var mongoose = require('mongoose');
var ForumUserHonorTimeLine = mongoose.model('ForumUserHonorTimeLine');
//创建
exports.create = function(entity, callback) {
var forum = new ForumUserHonorTimeLine(entity);
forum.save(function(err, doc) {
if (err) {
console.error(err);
callback(err, null);
} else {
callback(null, doc);
}
});
};
//根据ID获取
exports.getById = function(tid, callback) {
ForumUserHonorTimeLine.findById(tid, function(err, doc) {
if (err) {
console.error(err);
callback(err, null);
} else {
callback(null, doc);
}
});
};
//根据ID更新
exports.updateById = function(tid, entity, callback) {
ForumUserHonorTimeLine.update({
_id: tid
}, entity, null, function(err, result) {
if (err) {
console.error(err);
callback(err, null);
} else {
callback(null, null);
}
});
};
//根据ID删除
exports.deleteById = function(tid, callback) {
ForumUserHonorTimeLine.remove({
_id: tid
}, function(err, result) {
if (err) {
console.error(err);
callback(err, null);
} else {
callback(null, null);
}
});
};
//根据条件删除
exports.deleteByCondition = function(condition, callback) {
ForumUserHonorTimeLine.remove(condition, function(err, result) {
if (err) {
console.error(err);
callback(err, null);
} else {
callback(null, null);
}
});
};
//获取数量
function countAll(conditions, callback) {
ForumUserHonorTimeLine.count(conditions, function(err, count) {
if (err) {
console.error(err);
callback(err, null);
} else {
callback(null, count);
}
});
}
//分页查询
exports.getAll = function(pageNo, pageSize, conditions, fields, callback) {
// countAll(conditions, function(err, count) {
// if (err) {
// console.error(err);
// callback(err, null);
// } else {
// var skip = (pageNo - 1) * pageSize;
// var limit = count - skip > pageSize ? pageSize : (count - skip);
// ForumUserHonorTimeLine.find(conditions).skip(skip).limit(limit).select(fields).sort('-created').populate({
// path: 'user',
// select: fields,
// options: {
// sort: {
// created: -1
// }
// }
// }).exec(function(err, docs) {
// callback(err, count, docs);
// });
// }
// });
var skip = (pageNo - 1) * pageSize;
ForumUserHonorTimeLine.find(conditions).skip(skip).limit(pageSize).sort('-created').populate({
path: 'user',
select: fields,
options: {
sort: {
created: -1
}
}
}).exec(function(err, docs) {
callback(err, docs);
});
};
//获取列表
exports.find = function(conditions, callback) {
ForumUserHonorTimeLine.find(conditions).sort({
order_idx: -1
}).exec(function(err, docs) {
if (err) {
console.error(err);
callback(err, null);
} else {
callback(null, docs);
}
});
};
exports.getAllOrderIDX = function(conditions, callback) {
ForumUserHonorTimeLine.find(conditions).select('_id order_idx').sort({
order_idx: -1
}).exec(function(err, docs) {
if (err) {
console.error(err);
callback(err, null);
} else {
callback(null, docs);
}
});
};
//修改序号
exports.updateIdx = function(id, idx, callback) {
ForumUserHonorTimeLine.update({
_id: id
}, {
order_idx: idx
}, null,
function(err, result) {
if (err) {
console.error(err);
callback(err, null);
} else {
callback(null, true);
}
});
};
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