CurrencyModel.js
5.12 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
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
'use strict';
const Promise = require('bluebird');
const co = Promise.coroutine;
const path=require('path');
const helpers = global.yoho.helpers;
const api = global.yoho.API;
const _ = require('lodash');
const Image = require('../../../utils/images');
const CurrencyData=require('./CurrencyData');
const SearchData=require('./SearchData');
// 使用 product中的分页逻辑
const pagerPath = path.join(global.appRoot, '/apps/product/models/public-handler.js');
const pager = require(pagerPath).handlePagerData;
const moment = require('moment');
const convertUnitTime = (src) => {
return moment.unix(src).format('YYYY-MM-DD');
};
const currencyData=($uid, $condition)=>{
return co(function*(){
let $result={};
let $yohoCoinInfo=yield CurrencyData.yohoCoinTotal($uid);
console.log($yohoCoinInfo);
if($yohoCoinInfo.code&& $yohoCoinInfo.code == 200){
let $yohoCoinInfoData=$yohoCoinInfo.data;
$result.myCurrency = $yohoCoinInfoData.yohocoin_num ? $yohoCoinInfoData.yohocoin_num : 0;
if ($yohoCoinInfoData.nearExpCoinNum && $yohoCoinInfoData.nearExpCoinNum > 0) {
$result.tip.count =$yohoCoinInfoData.nearExpCoinNum;
$result.tip.date ='Y年12月31日';
}
}
let $currency =yield currencyList($uid, $condition);
$result.currency = $currency.list;
$result.pager = $currency.pager;
$result.coinHelperUrl = '//www.yohobuy.com/help/?category_id=87';//yoho币帮助
$result.tabs = currencyTabs($condition.queryType);
$result.options = currencyOptions($condition);
return $result;
})();
}
const currencyList=($uid,$condition)=>{
return co(function*(){
let $result={'list':[], 'pager':[]};
$condition.limit=$condition.limit||15;
let $data = yield CurrencyData.yohoCoinList($uid, $condition);
if ($data.code&& $data.code ==200 && $data.data.coinlist && !_.isEmpty($data.data.coinlist)) {
// $data.data.coinlist.forEach(function($val,$key){
for(let $key=0;$key<$data.data.coinlist.length;$key++){
let $val=$data.data.coinlist[$key];
$result.list[$key]={
date:$val['date'],
desc:$val['message'],
isIncome:true
}
//2:订单取消退还,9:下单使用,10:退货退还
if ([2,9,10].indexOf($val.type)>-1 && $val.key) {
$result.list[$key].detailUrl = helpers.urlFormat('/home/orders/detail', {orderCode:$val['key']});
}
//晒单奖励
else if ($val.type == 14 && $val.key) {
let $product = yield SearchData.searchAll({query:Number($val.key),viewNum:1});
if ($product.code && $product.code== 200 && !_.isEmpty($product.data.product_list) && !_.isEmpty($product.data.product_list[0].goods_list)) {
$productId = $product.data.product_list[0].product_id;
$goodsId = $product.data.product_list[0].goods_list[0].goods_id;
$result.list[$key].detailUrl = helpers.getUrlBySkc($productId, $goodsId, $product.data.product_list[0].cn_alphabet);
}
}
if (Number($val['num']) < 0) {
$result.list[$key].isIncome = false;
}
$result.list[$key].value = $val['num'] > 0 ? '+'+$val['num'] : $val['num'] ;
}
//分页
let total = $data.data.total;
let pagerObj = pager(total, {
page: $data['data']['page'],
limit: $condition['limit']
});
// $result['pager']={};
// $result['pager']['hasCheckAll'] = false;
// $result['pager']['count'] = $data['data']['total'];
// $result['pager']['curPage'] = $data['data']['page'];
// $result['pager']['totalPages'] = Math.ceil($data['data']['total'] / $condition['limit']);
// $result['pager']['pagerHtml'] = HelperSearch::pager($data['data']['total'], $condition['limit']);
}
return $result;
})();
}
const currencyTabs=($type)=>{
let $result=['全部明细', '全部收入', '全部支出'];
$result=$result.forEach(function($val,$key){
return {
active:$key == $type ? true : false,
url:helpers.urlFormat('/home/currency',{type:$key})
}
});
return $result;
}
const currencyOptions=($condition)=>{
let $result=[],$paramUrl={};
let $tabs={'90':'最近3个月明细','180':'最近半年明细','360':'最近一年明细'};
for(let name in $tabs){
if($condition.queryType){
$paramUrl.type = $condition.queryType;
}
$paramUrl.beginTime = convertUnitTime(new Date() / 1000 - 3600 * 24 );
$result.push({
url:helpers.urlFormat('/home/currency',$paramUrl),
name:$tabs[name],
selected:$condition.beginTime&&$paramUrl.beginTime == $condition.beginTime ? true : false
});
}
return $result;
}
module.exports = {
currencyData
};