<?php
namespace app\store\model\recharge;
use app\common\model\recharge\Order as OrderModel;
class Order extends OrderModel
{
public function getList($query = [])
{
!empty($query) && $this->setQueryWhere($query);
return $this->with(['user', 'order_plan'])
->alias('order')
->field('order.*')
->join('user', 'user.user_id = order.user_id')
->order(['order.create_time' => 'desc'])
->paginate(15, false, [
'query' => request()->request()
]);
}
private function setQueryWhere($query)
{
$params = $this->setQueryDefaultValue($query, [
'user_id' => 0,
'recharge_type' => '-1',
'pay_status' => '-1',
]);
$params['user_id'] > 0 && $this->where('order.user_id', '=', $params['user_id']);
!empty($params['search']) && $this->where('order.order_no|user.nickName', 'like', "%{$params['search']}%");
$params['recharge_type'] > -1 && $this->where('order.recharge_type', '=', (int)$params['recharge_type']);
$params['pay_status'] > -1 && $this->where('order.pay_status', '=', (int)$params['pay_status']);
!empty($params['start_time']) && $this->where('order.create_time', '>=', strtotime($params['start_time']));
!empty($params['end_time']) && $this->where('order.create_time', '<', strtotime($params['end_time']) + 86400);
}
}