Commit 0fb26aa0 authored by strong's avatar strong

Merge commit '196ded65'

parents 941423a0 196ded65
......@@ -39,4 +39,5 @@ mongoModels.forEach(function(model) {
global.mongodb = mongodb;
require('./config/express')(app, config);
require('./config/cacheConfig');
app.listen(config.port);
\ No newline at end of file
......@@ -90,9 +90,9 @@ router.get('/info/:fid/get', function(req, res, next) {
level: 1,
status: 1,
$or: [{
isEvent: 0
}, {
isEvent: null
isEvent: {
$ne:1
}
}, {
isEvent: 1,
'event.eventStartTime' : {$lte : today}
......@@ -183,9 +183,9 @@ router.get('/info/:fid/threads', function(req, res, next) {
level: 1,
status: 1,
$or: [{
isEvent: 0
}, {
isEvent: null
isEvent: {
$ne:1
}
}, {
isEvent: 1,
'event.eventStartTime' : {$lte : today}
......@@ -266,9 +266,9 @@ router.get('/info/:fid/hotThreads', function(req, res, next) {
$ne: 3
},
$or: [{
isEvent: 0
}, {
isEvent: null
isEvent: {
$ne:1
}
}, {
isEvent: 1,
'event.eventStartTime' : {$lte : today}
......@@ -331,9 +331,9 @@ router.get('/info/:fid/photoThreads', function(req, res, next) {
$ne: 3
},
$or: [{
isEvent: 0
}, {
isEvent: null
isEvent: {
$ne:1
}
}, {
isEvent: 1,
'event.eventStartTime' : {$lte : today}
......@@ -628,9 +628,9 @@ router.get('/info/:fid/serachThreads', function(req, res, next) {
status: 1,
info: fid,
$or: [{
isEvent: 0
}, {
isEvent: null
isEvent: {
$ne:1
}
}, {
isEvent: 1,
'event.eventStartTime' : {$lte : today}
......@@ -832,9 +832,9 @@ router.get('/info/list/allWithThreadCount', function(req, res, next) {
level: 1,
status: 1,
$or: [{
isEvent: 0
}, {
isEvent: null
isEvent: {
$ne:1
}
}, {
isEvent: 1,
'event.eventStartTime' : {$lte : today}
......@@ -883,9 +883,9 @@ router.get('/info/serachThreads', function(req, res, next) {
ent_code: ent_code,
status: 1,
$or: [{
isEvent: 0
}, {
isEvent: null
isEvent: {
$ne:1
}
}, {
isEvent: 1,
'event.eventStartTime' : {$lte : today}
......
......@@ -333,14 +333,14 @@ router.get('/sharev2.js', function(req, res, next) {
//type为index时的,默认link
link = config.service + '/app/forum/' + ent_code + '/mediashequn'
request.get({url:config.rest_api+'/v1.0/internal/forum/config/enter/byentcode?entCode='+ent_code,body:{},json:true}, function (e, r, result) {
if(result.data){
if(result && result.data){
link = result.data;
}
cont();
});
},function(cont){
request.get({url:config.rest_api+'/v1.0/internal/forum/config/share/byentcode?entCode='+ent_code,body:{},json:true}, function (e, r, result) {
if(result.data){
if(result && result.data){
try{
var obj = JSON.parse(result.data);
title = obj.shareTitle || '';
......@@ -381,7 +381,7 @@ router.get('/sharev2.js', function(req, res, next) {
res.json(_.assign({result:false},returnCode.WRONG_PARAM));
}else if(type === 'notice'){
Notice.findOne({_id:id},function(err,result){
if (err) {
if (err || !result) {
console.error(err);
res.json(_.assign({result:false},returnCode.BUSY));
}
......
......@@ -79,9 +79,9 @@ router.get('/tag/:tid/threads', function(req, res, next) {
status:1,
level:1,
$or: [{
isEvent: 0
}, {
isEvent: null
isEvent: {
$ne:1
}
}, {
isEvent: 1,
'event.eventStartTime' : {$lte : today}
......
......@@ -417,9 +417,9 @@ router.get('/thread/searchThread', function(req, res, next) {
status: status,
from: from,
$or: [{
isEvent: 0
}, {
isEvent: null
isEvent: {
$ne:1
}
}, {
isEvent: 1,
'event.eventStartTime' : {$lte : today},
......@@ -1932,9 +1932,9 @@ router.get('/thread/getThreadWithNotPopulateComment', function(req, res, next) {
level: 1,
status: 1,
$or: [{
isEvent: 0
}, {
isEvent: null
isEvent: {
$ne:1
}
}, {
isEvent: 1,
'event.eventStartTime' : {$lte : today}
......@@ -1987,9 +1987,9 @@ router.get('/thread/getThreadWithEssence', function(req, res, next) {
status: 1,
new_recommend: 1,
$or: [{
isEvent: 0
}, {
isEvent: null
isEvent: {
$ne:1
}
}, {
isEvent: 1,
'event.eventStartTime' : {$lte : today}
......@@ -2103,9 +2103,9 @@ router.get('/thread/getThreadWithNotPopulateComment/hot', function(req, res, nex
level: 1,
status: 1,
$or: [{
isEvent: 0
}, {
isEvent: null
isEvent: {
$ne:1
}
}, {
isEvent: 1,
'event.eventStartTime' : {$lte : today}
......
......@@ -140,7 +140,7 @@ var ForumThreadSchema = new Schema({
type: Schema.Types.ObjectId,
ref: 'ForumUser'
}],
isEvent:{//是否活动 0否 1是
isEvent:{//是否活动改为0立即发布,1活动,2定时发布(到了发布时间才在手机端显示) by lws 20160317
type: Number,
require: true,
default: 0
......@@ -155,6 +155,10 @@ var ForumThreadSchema = new Schema({
required: false
}
},
release_time:{//发布时间,如果isEvent为2就是定时发布,需要发布时间
type: Date,
required: false
},
created: {
type: Date,
required: true,
......
var cache = require('./cacheable');
var forumAboutMEService = require('../service/forumAboutMEService');
cache.cacheable(forumAboutMEService, 'me2other', { ns: 'forum.service.forumAboutMEService222', dur: 10000 });
//cache.clear(forumAboutMEService,'me2other','forum.service.forumAboutMEService222')
\ No newline at end of file
......@@ -5,36 +5,52 @@ var async=require('async');
/**=====<1.缓存实现开始==========**/
function toCache(dur, k, v) {
if(v){
var str = '';
try{
str = JSON.stringify(v);
if(str){
redis.hset(dur.ns,k,str , function(err) {
redis.expire(k, dur.dur);
});
redis.hset(dur.ns,k,1, function(err) {
if(!err){
redis.expire(dur.ns, dur.dur);
var str = '';
try{
str = JSON.stringify(v);
}catch(e){
console.log(e);
}
if(str){
redis.set(k,str,function(err){
if(!err){
redis.expire(k, dur.dur);
}
});
}
}
}catch(e){
console.log(e);
}
});
}
}
function fromCache(dur,k,cb){
redis.hget(dur.ns,k, function(err,v){
redis.hget(dur.ns,k, function(err,hit){
if(err){
return cb(err);
console.log(err);
return cb();
}
if(!hit){
return cb();
}
if(v){
redis.get(k, function(err,data){
if(err){
console.log(err);
return cb();
}
if(!data){
return cb();
}
var obj = null;
try{
obj = JSON.parse(v);
cb(null,obj);
obj = JSON.parse(data);
}catch(e){
cb(e);
console.log(err);
}
}else{
cb(null,null);
}
cb(null,obj);
});
});
}
......@@ -53,8 +69,8 @@ function loadAndCacheData(dur, key, fn, args, cb) {
}
function getKey(ns, args) {
var key = Array.prototype.join.call(arguments,',');
return ns + ':' + key;
var key = Array.prototype.join.call(arguments,'_');
return 'cacheable_'+key;
}
function withCache(dur, keyBuilder, fn) {
......@@ -130,7 +146,7 @@ module.exports = {
throw 'opts.ns 不能为空';
}
if(!opts.dur || isNaN(opts.dur)){//默认缓存一小时
opts.dur = 1000 * 60 * 60;
opts.dur = 60 * 60;
}
m[fn] = cacheable(m[fn], opts);
},
......
var _ = require('lodash');
var request = require('request');
var env = process.env.NODE_ENV;
var API_ADDRESS = 'http://localhost:8080';
if (env == 'sandbox') {
API_ADDRESS = 'http://rest.wxpai.cn';
} else if (env == 'production') {
API_ADDRESS = 'https://rest.wxpai.cn';
}
exports.loadLevelFromAPI=function(ent_code,open_id,callback){
if(!ent_code || !open_id){
return callback && callback(null,null);
}
var url = API_ADDRESS + '/v1.0/internal/member/exp/byopenid?openId='+open_id+'&entCode='+ent_code;
request.get({
url: url,
json: {}
}, function(e, r, body) {
if (e) {
console.log(e)
}
return callback && callback(null,(body && body.data) || null);
});
};
\ No newline at end of file
......@@ -53,11 +53,11 @@ function getEsenceThreads(ent_code, salt,callback){
level: 1,
status: 1,
new_recommend: 1,
$or: [{
isEvent: 0
}, {
isEvent: null
}, {
$or: [{
isEvent: {
$ne:1
}
}, {
isEvent: 1,
'event.eventStartTime' : {$lte : today}
}]
......
'use strict';
var _ = require('lodash');
var request = require('request');
var env = process.env.NODE_ENV;
var API_ADDRESS = 'http://localhost:8080';
if (env == 'sandbox') {
API_ADDRESS = 'http://rest.wxpai.cn';
} else if (env == 'production') {
API_ADDRESS = 'https://rest.wxpai.cn';
}
var loadUserLevel = require('./loadUserLevel');
var async=require('async');
exports.loadLevel=function(ent_code,items,callback){
var openIds = [];
......@@ -30,33 +24,35 @@ exports.loadLevel=function(ent_code,items,callback){
}
});
request.post({
url: API_ADDRESS + '/v1.0/internal/member/list/byopenids',
json: {
"entCode": ent_code,
"openIds": openIds
}
}, function(e, r, body) {
if (body && body.data) {
var tasks = [];
_.forEach(openIds, function(open_id) {
tasks.push(function(cont){
loadUserLevel.loadLevelFromAPI(ent_code,open_id,cont);
});
});
async.parallel(tasks,function(err,results){
if (results && results.length>0) {//results: [{'egwegweg':1},{'gergergerg':3}]
_.forEach(items, function(d, i) {
if (items[i].toObject) {
items[i] = items[i].toObject();
}
_.forEach(body.data, function(r, j) {
if(d.from && d.from.uid === r.user.openId){
items[i].from.exp = r.exp;
}
if(d.to && d.to.uid === r.user.openId){
items[i].to.exp = r.exp;
}
if(d.commentLevel1From && d.commentLevel1From.uid === r.user.openId){
items[i].commentLevel1From.exp = r.exp;
}
if(d.commentLevel2From && d.commentLevel2From.uid === r.user.openId){
items[i].commentLevel2From.exp = r.exp;
}
if(d.commentLevel2ThreadFrom && d.commentLevel2ThreadFrom.uid === r.user.openId){
items[i].commentLevel2ThreadFrom.exp = r.exp;
_.forEach(results, function(r, j) {
if(r){
if(d.from && d.from.uid && r[d.from.uid]){
items[i].from.exp = r[d.from.uid];
}
if(d.to && d.to.uid && r[d.to.uid]){
items[i].to.exp = r[d.to.uid];
}
if(d.commentLevel1From && d.commentLevel1From.uid && r[d.commentLevel1From.uid]){
items[i].commentLevel1From.exp = r[d.commentLevel1From.uid];
}
if(d.commentLevel2From && d.commentLevel2From.uid && r[d.commentLevel2From.uid]){
items[i].commentLevel2From.exp = r[d.commentLevel2From.uid];
}
if(d.commentLevel2ThreadFrom && d.commentLevel2ThreadFrom.uid && r[d.commentLevel2ThreadFrom.uid]){
items[i].commentLevel2ThreadFrom.exp = r[d.commentLevel2ThreadFrom.uid];
}
}
});
......@@ -88,22 +84,23 @@ exports.loadLevelByUser=function(ent_code,items,callback){
openIds.push(d.uid);
}
});
request.post({
url: API_ADDRESS + '/v1.0/internal/member/list/byopenids',
json: {
"entCode": ent_code,
"openIds": openIds
}
}, function(e, r, body) {
if (body && body.data) {
var tasks = [];
_.forEach(openIds, function(open_id) {
tasks.push(function(cont){
loadUserLevel.loadLevelFromAPI(ent_code,open_id,cont);
});
});
async.parallel(tasks,function(err,results){
if (results && results.length>0) {//results: [{'egwegweg':1},{'gergergerg':3}]
_.forEach(items, function(d, i) {
if (items[i].toObject) {
items[i] = items[i].toObject();
}
_.forEach(body.data, function(r, j) {
if(d.uid === r.user.openId){
items[i].exp = r.exp;
_.forEach(results, function(r) {
if(r){
if(d.uid && r[d.uid]){
items[i].exp = r[d.uid];
}
}
});
......
var cache = require('./../app/utils/cacheable');
var forumAboutMEService = require('./../app/service/forumAboutMEService');
var loadUserLevel = require('./../app/utils/loadUserLevel');
//cache.cacheable(forumAboutMEService, 'me2other', { ns: 'forum.service.forumAboutMEService.me2other', dur: 60 * 10 });
cache.cacheable(loadUserLevel, 'loadLevelFromAPI', { ns: 'forum.utils.loadUserLevel.loadLevelFromAPI', dur: 60 * 60 });
//cache.clear(service1,'method1','forum.service.service1.method1')
\ No newline at end of file
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