Authored by 郭成尧

praise-data

... ... @@ -122,6 +122,8 @@ const _shareInfo = (id, getArticle) => {
*/
const index = (req, res, next) => {
let id = req.query.id || req.params[0] || req.params.id,
uid = req.user.uid,
udid = req.sessionID || require('yoho-md5')(req.ip) || 'yoho',
gender = req.query.gender ||
req.query.channel && typeLib.channels[req.query.channel] ||
req.cookies._Channel && channels[req.cookies._Channel] ||
... ... @@ -157,6 +159,12 @@ const index = (req, res, next) => {
co(function* () {
let detail = yield req.ctx(DetailModel).packageData(id, isApp, isWeixin, channel, isShare);
let commentsTotal = yield req.ctx(DetailModel).commentsTotal({article_id: id});
let praise = yield req.ctx(DetailModel).getArticlePraiseAndFavor({
uid: uid,
id: id,
udid: udid
});
let data = {
guangDetail: true,
guang: {}
... ... @@ -198,8 +206,11 @@ const index = (req, res, next) => {
id: _.get(detail, 'getArticle.id'),
title: detail.getArticle.article_title,
publishTime: detail.getArticle.publishTime,
pageView: detail.getArticle.pageViews,
content: []
pageView: _.get(praise, 'browseNum', 0),
content: [],
praise: _.get(praise, 'praiseNum', 0),
praiseHeadIco: _.get(praise, 'praiseHeadIco', []),
commentsTotal: commentsTotal
};
if (!detail.getArticleContent) {
return next();
... ... @@ -288,6 +299,8 @@ const indexRedirect = (req, res, next) => {
*/
const mini = (req, res, next) => {
let id = req.query.id,
uid = req.user.uid,
udid = req.sessionID || require('yoho-md5')(req.ip) || 'yoho',
gender = req.query.gender || req.cookies._Channel && channels[req.cookies._Channel] || 1,
isApp = req.query.app_version || req.query.appVersion || false; // 标识是不是APP访问的
... ... @@ -303,6 +316,12 @@ const mini = (req, res, next) => {
co(function* () {
let detail = yield req.ctx(DetailModel).packageData(id, isApp);
let commentsTotal = yield req.ctx(DetailModel).commentsTotal({article_id: id});
let praise = yield req.ctx(DetailModel).getArticlePraiseAndFavor({
uid: uid,
id: id,
udid: udid
});
let data = {
guangEzine: true,
guang: {}
... ... @@ -318,8 +337,11 @@ const mini = (req, res, next) => {
guang.detail = {
title: detail.getArticle.article_title,
publishTime: detail.getArticle.publishTime,
pageView: detail.getArticle.pageViews,
content: []
pageView: _.get(praise, 'browseNum', 0),
content: [],
praise: _.get(praise, 'praiseNum', 0),
praiseHeadIco: _.get(praise, 'praiseHeadIco', []),
commentsTotal: commentsTotal
};
... ...
... ... @@ -12,7 +12,7 @@ const helpers = global.yoho.helpers;
const URI_PACKAGE_ARTICLE = 'guang/service/v2/article/';
const URI_PACKAGE_AUTHOR = 'guang/service/v1/author/';
const URI_PACKAGE_COMMENTS = 'guang/api/v1/comments/';
const URI_PACKAGE_PRAISE = 'guang/api/v1/article/';
class DetailModel extends global.yoho.BaseModel {
constructor(ctx) {
... ... @@ -362,6 +362,34 @@ class DetailModel extends global.yoho.BaseModel {
return _.get(result, 'data.list', []);
});
}
/**
* 获取评论数量
* @param {*} params
*/
commentsTotal(params) {
return serviceAPI.get(`${URI_PACKAGE_COMMENTS}getList`, {
article_id: params.article_id,
page: 1,
limit: 1
}).then(result => {
return _.get(result, 'data.total', 0);
});
}
/**
* 获取点赞相关数据
* @param {*} params
*/
getArticlePraiseAndFavor(params) {
return serviceAPI.get(`${URI_PACKAGE_PRAISE}getArticlePraiseAndFavor`, {
uid: params.uid,
id: params.id,
udid: params.udid
}).then(result => {
return _.get(result, 'data', {});
});
}
}
module.exports = DetailModel;
... ...
... ... @@ -207,14 +207,14 @@
<div class="comments" id="comments">
<div class="comments-title clearfix">
<div class="avatar-list">
<img src="//img10.static.yhbimg.com/goodsimg/2015/03/17/05/01d8a11aa095c98c253e9a17a98da49e19.jpg?imageView2/2/w/140/h/140/q/60" alt="">
<img src="//img10.static.yhbimg.com/goodsimg/2015/03/17/05/01d8a11aa095c98c253e9a17a98da49e19.jpg?imageView2/2/w/140/h/140/q/60" alt="">
<img src="//img10.static.yhbimg.com/goodsimg/2015/03/17/05/01d8a11aa095c98c253e9a17a98da49e19.jpg?imageView2/2/w/140/h/140/q/60" alt="">
{{#each detail.praiseHeadIco}}
<img src="{{.}}" alt="">
{{/each}}
</div>
<div class="agree">210人点赞</div>
<div class="seenum">9213人看过</div>
<div class="agree">{{detail.praise}}人点赞</div>
<div class="seenum"><span>{{detail.pageView}}</span>人看过</div>
</div>
<div class="comments-num"><span>评论2</span></div>
<div class="comments-num"><span>评论{{detail.commentsTotal}}</span></div>
</div>
</div>
... ...
... ... @@ -24,6 +24,7 @@ function renderData(data) {
if (data && data.code === 200 && data.data) {
$('.guang-detail-page .page-view').text(data.data.browseNum || 0);
$('.guang-detail-page .comments .seenum span').text(data.data.browseNum || 0);
}
}
... ...
... ... @@ -33,7 +33,7 @@ const transHttpsUrl = (url) => {
* @return {[strng]}
*/
const getFilterUrl = (url) => {
url = url.replace('.m.yohobuy.com', global.yoho.config.subDomains.host)
url = url && url.replace('.m.yohobuy.com', global.yoho.config.subDomains.host)
.replace('www.yohobuy.com', global.yoho.config.siteUrl);
const whiteDomains = ['m.yohobuy.com', 'cdn.yoho.cn/myohobuy'];
... ... @@ -43,7 +43,7 @@ const getFilterUrl = (url) => {
'huodong.m.yohobuy.com',
'/home/orders/pay'];
if (whiteDomains.every(item => url.includes(item)) &&
if (whiteDomains.every(item => url && url.includes(item)) &&
blackDomains.every(item => !url.includes(item))) {
url = url.replace('http://', '//');
}
... ...