|
|
'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
|
|
|
}; |
...
|
...
|
|