Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
P
pisns-forum-api
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
scrmGroup
pisns-forum-api
Commits
2b31de71
Commit
2b31de71
authored
Oct 10, 2015
by
strong
Browse files
Options
Browse Files
Download
Plain Diff
Merge commit '
c296a878
' into SANDBOX
parents
f271196d
c296a878
Changes
7
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
7 changed files
with
993 additions
and
460 deletions
+993
-460
forumInfo.js
app/controllers/mobile/forumInfo.js
+38
-6
forumThread.js
app/controllers/mobile/forumThread.js
+332
-83
forumPraiseLog.js
app/models/forumPraiseLog.js
+5
-0
forumCommentService.js
app/service/forumCommentService.js
+455
-370
forumPraiseLogService.js
app/service/forumPraiseLogService.js
+27
-1
forumThreadService.js
app/service/forumThreadService.js
+22
-0
redisPraiseLog.js
app/utils/redisPraiseLog.js
+114
-0
No files found.
app/controllers/mobile/forumInfo.js
View file @
2b31de71
...
...
@@ -14,6 +14,7 @@ var forumTagService=require('../../service/forumTagService');
var
forumCommentService
=
require
(
'../../service/forumCommentService'
);
var
forumThreadAttendService
=
require
(
'../../service/forumThreadAttendService'
);
var
httpService
=
require
(
'../../service/httpService'
);
var
redisPraiseLog
=
require
(
'../../utils/redisPraiseLog'
);
var
user
=
require
(
'../../utils/user'
);
...
...
@@ -153,9 +154,10 @@ router.get('/info/:fid/threads', function(req, res, next) {
var
pageNo
=
req
.
query
.
pageNo
||
1
;
var
pageSize
=
req
.
query
.
pageSize
||
10
;
var
fid
=
req
.
params
.
fid
;
var
sort
=
'-top -topTime -created'
var
sort
=
'-top -topTime -created'
;
var
ent_code
=
req
.
session
.
user
.
ent_code
;
var
conditions
=
{
ent_code
:
req
.
session
.
user
.
ent_code
,
ent_code
:
ent_code
,
level
:
1
,
status
:
1
};
...
...
@@ -192,7 +194,22 @@ router.get('/info/:fid/threads', function(req, res, next) {
console
.
error
(
err
);
res
.
json
(
returnCode
.
BUSY
);
}
else
{
res
.
json
(
_
.
assign
(
results
,
returnCode
.
SUCCESS
));
//判断是否已经点赞
redisPraiseLog
.
get
(
ent_code
,
user
.
getMobileUser
(
req
),
'thread'
,
function
(
error
,
docs
){
_
.
forEach
(
results
.
items
,
function
(
d
,
i
)
{
if
(
results
.
items
[
i
].
toObject
){
results
.
items
[
i
]
=
results
.
items
[
i
].
toObject
();
}
results
.
items
[
i
].
isPraise
=
false
;
for
(
var
k
=
docs
.
length
-
1
;
k
>=
0
;
k
--
)
{
if
(
results
.
items
[
i
].
_id
==
docs
[
k
]){
results
.
items
[
i
].
isPraise
=
true
;
break
;
}
};
});
res
.
json
(
_
.
assign
(
results
,
returnCode
.
SUCCESS
));
});
}
});
}
...
...
@@ -545,9 +562,9 @@ router.get('/info/:fid/serachThreads', function(req, res, next) {
var
pageNo
=
req
.
query
.
pageNo
||
1
;
var
pageSize
=
req
.
query
.
pageSize
||
10
;
var
content
=
req
.
query
.
content
;
var
ent_code
=
req
.
session
.
user
.
ent_code
;
var
conditions
=
{
ent_code
:
req
.
session
.
user
.
ent_code
,
ent_code
:
ent_code
,
status
:
1
,
info
:
fid
};
...
...
@@ -591,7 +608,22 @@ router.get('/info/:fid/serachThreads', function(req, res, next) {
console
.
error
(
err
);
res
.
json
(
returnCode
.
BUSY
);
}
else
{
res
.
json
(
_
.
assign
(
results
,
returnCode
.
SUCCESS
));
//判断是否已经点赞
redisPraiseLog
.
get
(
ent_code
,
user
.
getMobileUser
(
req
),
'thread'
,
function
(
error
,
docs
){
_
.
forEach
(
results
.
items
,
function
(
d
,
i
)
{
if
(
results
.
items
[
i
].
toObject
){
results
.
items
[
i
]
=
results
.
items
[
i
].
toObject
();
}
results
.
items
[
i
].
isPraise
=
false
;
for
(
var
k
=
docs
.
length
-
1
;
k
>=
0
;
k
--
)
{
if
(
results
.
items
[
i
].
_id
==
docs
[
k
]){
results
.
items
[
i
].
isPraise
=
true
;
break
;
}
};
});
res
.
json
(
_
.
assign
(
results
,
returnCode
.
SUCCESS
));
});
}
});
}
...
...
app/controllers/mobile/forumThread.js
View file @
2b31de71
This diff is collapsed.
Click to expand it.
app/models/forumPraiseLog.js
View file @
2b31de71
...
...
@@ -35,6 +35,11 @@ var ForumPraiseLogSchema = new Schema({
type
:
String
,
require
:
true
},
status
:
{
//状态,0点赞,1取消点赞
type
:
Number
,
require
:
true
,
default
:
0
},
created
:
{
//点赞时间
type
:
Date
,
require
:
true
,
...
...
app/service/forumCommentService.js
View file @
2b31de71
This diff is collapsed.
Click to expand it.
app/service/forumPraiseLogService.js
View file @
2b31de71
...
...
@@ -24,7 +24,7 @@ exports.queryPraiseLog=function(tid,cid,user,type,callback){
if
(
cid
){
conditions
.
comment
=
cid
;
}
ForumPraiseLog
.
find
(
conditions
).
exec
(
function
(
err
,
docs
){
ForumPraiseLog
.
find
One
(
conditions
).
sort
({
created
:
-
1
}
).
exec
(
function
(
err
,
docs
){
if
(
err
){
callback
(
err
,
null
);
}
else
{
...
...
@@ -33,6 +33,21 @@ exports.queryPraiseLog=function(tid,cid,user,type,callback){
});
};
//更新
exports
.
updatePraiseLog
=
function
(
id
,
status
,
callback
){
ForumPraiseLog
.
findOneAndUpdate
({
_id
:
id
},
{
status
:
status
},
function
(
err
,
doc
)
{
if
(
err
)
{
callback
(
err
,
null
);
}
else
{
callback
(
null
,
doc
);
}
});
};
exports
.
queryPraiseLogV2
=
function
(
conditions
,
callback
){
ForumPraiseLog
.
find
(
conditions
).
populate
(
'user'
).
exec
(
function
(
err
,
docs
){
...
...
@@ -43,3 +58,14 @@ exports.queryPraiseLogV2=function(conditions,callback){
}
});
};
exports
.
queryPraiseLogV3
=
function
(
conditions
,
callback
){
ForumPraiseLog
.
find
(
conditions
).
exec
(
function
(
err
,
docs
){
if
(
err
){
callback
(
err
,
null
);
}
else
{
callback
(
null
,
docs
);
}
});
};
app/service/forumThreadService.js
View file @
2b31de71
...
...
@@ -882,6 +882,28 @@ exports.updateThreadRaiseCount = function(threadId, callback) {
});
};
//减少文章点赞数
exports
.
updateThreadRaiseCountDec
=
function
(
threadId
,
callback
)
{
ForumThread
.
update
({
_id
:
threadId
},
{
$inc
:
{
praise_count
:
-
1
}
},
{
w
:
1
,
safe
:
true
},
function
(
err
,
result
)
{
if
(
err
)
{
console
.
error
(
err
);
callback
(
err
,
null
);
}
else
{
callback
(
null
,
null
);
}
});
};
//更新文章分享数
exports
.
updateThreadShareCount
=
function
(
threadId
,
callback
)
{
ForumThread
.
update
({
...
...
app/utils/redisPraiseLog.js
0 → 100644
View file @
2b31de71
'use strict'
;
var
redis
=
global
.
redis
;
var
prefix
=
'_userPraiseLog_'
;
var
expire
=
60
*
60
*
12
;
var
_
=
require
(
'lodash'
);
var
then
=
require
(
'thenjs'
);
var
forumPraiseLogService
=
require
(
'../service/forumPraiseLogService'
);
function
getKey
(
entcode
,
userId
,
type
){
var
key
=
entcode
+
userId
+
prefix
+
type
;
return
key
;
}
function
setToRedis
(
entcode
,
userId
,
type
,
value
){
var
key
=
getKey
(
entcode
,
userId
,
type
);
if
(
!
redis
){
console
.
log
(
'redis error'
);
return
'error'
}
redis
.
set
(
key
,
value
,
function
(
error
,
res
){
redis
.
expire
(
key
,
expire
);
return
'success'
});
}
exports
.
get
=
function
(
entcode
,
userId
,
type
,
callback
){
var
key
=
getKey
(
entcode
,
userId
,
type
);
if
(
!
redis
){
console
.
log
(
'redis error'
);
return
callback
&&
callback
(
'error'
);
}
redis
.
get
(
key
,
function
(
error
,
res
){
if
(
!
res
){
//不存在,先获取再返回
getPraiseLogs
(
entcode
,
userId
,
function
(
err
){
redis
.
get
(
key
,
function
(
error
,
res
){
return
callback
&&
callback
(
error
,
res
.
split
(
","
)
||
0
);
});
});
}
else
{
return
callback
&&
callback
(
error
,
res
.
split
(
","
)
||
0
);
}
});
};
exports
.
set
=
function
(
entcode
,
userId
,
type
,
value
,
callback
){
var
key
=
getKey
(
entcode
,
userId
,
type
);
if
(
!
redis
){
console
.
log
(
'redis error'
);
return
callback
&&
callback
(
'error'
);
}
redis
.
set
(
key
,
value
,
function
(
error
,
res
){
redis
.
expire
(
key
,
expire
);
return
callback
&&
callback
(
error
,
'success'
);
});
};
exports
.
clear
=
function
(
entcode
,
userId
,
type
,
callback
){
var
key
=
getKey
(
entcode
,
userId
,
type
);
if
(
!
redis
){
console
.
log
(
'redis error'
);
return
callback
&&
callback
(
'error'
);
}
redis
.
del
(
key
,
function
(
error
,
res
){
return
callback
&&
callback
(
error
,
!!
res
);
});
};
function
getPraiseLogs
(
ent_code
,
userId
,
callback
){
if
(
userId
&&
ent_code
){
var
conditions
=
{
user
:
userId
,
ent_code
:
ent_code
,
status
:{
$ne
:
1
}
}
then
.
parallel
([
function
(
cont
)
{
//查询帖子点赞
conditions
.
type
=
1
;
forumPraiseLogService
.
queryPraiseLogV3
(
conditions
,
function
(
err
,
docs
){
var
threads
=
[];
_
.
forEach
(
docs
,
function
(
e
)
{
threads
.
push
(
e
.
thread
);
});
cont
(
err
,
threads
);
});
},
function
(
cont
)
{
//查询评论点赞
conditions
.
type
=
2
;
forumPraiseLogService
.
queryPraiseLogV3
(
conditions
,
function
(
err
,
docs
){
var
comments
=
[];
_
.
forEach
(
docs
,
function
(
d
)
{
comments
.
push
(
d
.
comment
);
});
cont
(
err
,
comments
);
});
}
]).
then
(
function
(
cont
,
results
)
{
setToRedis
(
ent_code
,
userId
,
'thread'
,
results
[
0
]);
setToRedis
(
ent_code
,
userId
,
'comment'
,
results
[
1
]);
callback
(
null
);
}).
fail
(
function
(
cont
,
err
)
{
console
.
error
(
err
);
callback
(
err
);
});
}
else
{
callback
(
'err'
);
}
}
\ No newline at end of file
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment