You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
74 lines
3.5 KiB
PHP
74 lines
3.5 KiB
PHP
<?php
|
|
namespace App\Model;
|
|
/**
|
|
* 消费模型
|
|
* @author 鹿文学
|
|
*/
|
|
class SpendModel extends BaseModel {
|
|
|
|
public function get_spend_list($user_id, $p=1) {
|
|
|
|
$page = intval($p);
|
|
$page = $page ? $page : 1; //默认显示第一页数据
|
|
|
|
$row = 10;
|
|
|
|
$spend = M('Spend','tab_');
|
|
$deposit = M('Deposit','tab_');
|
|
$bind = M('BindRecharge','tab_');
|
|
|
|
|
|
$map['user_id'] = $user_id;
|
|
$bindids = $bind->field('GROUP_CONCAT(id) as ids')->where($map)->group('user_id')->select();
|
|
$map['pay_way'] = array('gt',0);
|
|
$depositids = $deposit->field('GROUP_CONCAT(id) as ids')->where($map)->group('user_id')->select();
|
|
$spendids = $spend->field('GROUP_CONCAT(id) as ids')->where($map)->group('user_id')->select();
|
|
|
|
$ids='';
|
|
if(!empty($bindids[0]['ids'])){ $bids = $bindids[0]['ids']; $ids .= ','.$bids;$bmap['b.id'] = array('in',$bids);}
|
|
if(!empty($depositids[0]['ids'])){$dids = $depositids[0]['ids']; $ids .= ','.$dids;$dmap['d.id'] = array('in',$dids);}
|
|
if(!empty($spendids[0]['ids'])){$sids = $spendids[0]['ids']; $ids .= ','.$sids;$smap['s.id'] = array('in',$sids);}
|
|
if(!empty($ids)) {
|
|
$count = count(explode(',',substr($ids,1)));
|
|
|
|
if(!empty($smap)) {
|
|
empty($bmap) || $bind_data = $bind->alias('b')->field('left(b.pay_order_number,2) as props_name,b.id,b.amount as pay_amount,FROM_UNIXTIME(b.create_time,"%Y-%m-%d %H:%i:%s") as pay_time,b.game_id,b.game_name,b.zhekou')->where($bmap)->select(false);
|
|
empty($dmap) || $deposit_data = $deposit->alias('d')->field('left(b.pay_order_number,2) as props_name,d.id,d.pay_amount,FROM_UNIXTIME(d.create_time,"%Y-%m-%d %H:%i:%s") as pay_time,if(d.user_id,0,0) as game_id,if(d.user_account,"","") as game_name,IF (d.user_id, -1, -1) as zhekou')->where($dmap)->select(false);
|
|
$sql = $spend->alias('s')->field('s.id,ifnull(s.
|
|
,"游戏消费"),s.pay_amount,FROM_UNIXTIME(s.pay_time,"%Y-%m-%d %H:%i:%s") as pay_time,s.game_id,s.game_name,IF (s.user_id, -1, -1) as zhekou')
|
|
->union($bind_data)
|
|
->union($deposit_data)
|
|
->where($smap)->select(false);
|
|
$lists = $spend->table('('.$sql.') as a')->page($page,$row)->select();
|
|
} elseif(!empty($dmap)) {
|
|
empty($bmap) || $bind_data = $bind->alias('b')->field('left(b.pay_order_number,2) as props_name,b.id,b.amount as pay_amount,FROM_UNIXTIME(b.create_time,"%Y-%m-%d %H:%i:%s") as pay_time,b.game_id,b.game_name,b.zhekou')->where($bmap)->select(false);
|
|
$sql = $deposit->alias('d')->field('left(b.pay_order_number,2) as props_name,d.id,d.pay_amount,FROM_UNIXTIME(d.create_time,"%Y-%m-%d %H:%i:%s") as pay_time,if(d.user_id,0,0) as game_id,if(d.user_account,"","") as game_name,IF (d.user_id, -1, -1) as zhekou')
|
|
->union($bind_data)
|
|
->where($dmap)->select();
|
|
$lists = $spend->table('('.$sql.') as a')->page($page,$row)->select();
|
|
} elseif(!empty($bmap)) {
|
|
$sql = $bind->alias('b')->field('left(b.pay_order_number,2) as props_name,b.id,b.amount as pay_amount,FROM_UNIXTIME(b.create_time,"%Y-%m-%d %H:%i:%s") as pay_time,b.game_id,b.game_name,b.zhekou')->where($bmap)->select();
|
|
$lists = $spend->table('('.$sql.') as a')->page($page,$row)->select();
|
|
}
|
|
|
|
}
|
|
|
|
if(is_array($lists)) {
|
|
$data['lists'] = $lists;$data['status']=1;
|
|
if($count > $row){
|
|
$data['total'] = ceil($count/$row);
|
|
} else {
|
|
$data['total']=1;
|
|
}
|
|
} else {
|
|
$data['lists']='';$data['total'] = 1;$data['status'] = 0;
|
|
}
|
|
$data['current'] = $page;
|
|
|
|
return $data;
|
|
|
|
|
|
|
|
}
|
|
|
|
} |