detail-consult-service.js
1.44 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
/**
* Created by TaoHuang on 2016/6/14.
*/
'use strict';
const Promise = require('bluebird');
const _ = require('lodash');
const co = Promise.coroutine;
const Api = require('./detail-consult-api');
const detailHelper = require('./detail-helper');
module.exports = class extends global.yoho.BaseModel {
constructor(ctx) {
super(ctx);
this.api = new Api(ctx);
this.createAsync = this.api.createAsync.bind(this.api);
this.likeAsync = this.api.likeAsync.bind(this.api);
this.usefulAsync = this.api.usefulAsync.bind(this.api);
}
indexAsync(uid, pid, page, size) {
return co(function *() {
let consultList = yield this.api.indexAsync(uid, pid, page, size);
if (!consultList.code || consultList.code !== 200) {
return [];
}
return _.get(consultList, 'data.list', []).map(value => {
return {
avatar: detailHelper.DEFAULT_AVATAR_ICO,
question: value.ask,
date: value.ask_time,
answer: value.answer,
id: value.id,
isLike: value.is_like === 'Y',
like: parseInt(value.like, 10),
isUseful: value.is_useful === 'Y',
useful: parseInt(value.useful, 10),
total: value.total
};
});
}).bind(this)();
}
};