86 lines
2.3 KiB
PHP
86 lines
2.3 KiB
PHP
<?php
|
|
/**
|
|
* Created by PhpStorm.
|
|
* User: kongqi
|
|
* Date: 2019/1/6
|
|
* Time: 21:01
|
|
*/
|
|
|
|
namespace App\Services;
|
|
|
|
|
|
use App\Models\Order;
|
|
|
|
class OrderStatisServices
|
|
{
|
|
public static $where;
|
|
public $order;
|
|
|
|
public function __construct()
|
|
{
|
|
$this->order = new Order();
|
|
//本月
|
|
|
|
}
|
|
|
|
/**
|
|
* 订单数量
|
|
* @param $month
|
|
* @return mixed
|
|
*/
|
|
public function getNumber(array $data)
|
|
{
|
|
//dump($data);
|
|
|
|
$search = new SearchServices($this->order, $data);
|
|
$search->setTimeType('order');
|
|
$search->unsetAllWhere();
|
|
//dump($search->echoWhere());
|
|
return ($search->totalNumber('id'));
|
|
}
|
|
|
|
public function getSum($data, $field)
|
|
{
|
|
$search = new SearchServices($this->order, $data, 'order');
|
|
$search->unsetAllWhere();
|
|
//dump($search->echoWhere());
|
|
return money_str($search->totalSum($field));
|
|
}
|
|
|
|
public function topMerchantNumber($data, $limit = 10)
|
|
{
|
|
|
|
|
|
$search = new SearchServices($this->order, $data, 'order');
|
|
$search->unsetAllWhere();
|
|
$model = $search->getModel()->groupBy('merchant_id');
|
|
$model = $model->with('merchants:id,name')->selectRaw('merchant_id,count(*) as number,sum(pay_money) as pay_money ,sum(order_money) as order_money ,sum(total_money) as total_money,sum(final_money) as final_money')
|
|
->orderBy('order_money', 'desc');
|
|
return $model->limit($limit)->get()->toArray();
|
|
}
|
|
|
|
public function dayOrderNumber($data)
|
|
{
|
|
$search = new SearchServices($this->order, $data, 'order');
|
|
$search->unsetAllWhere();
|
|
$model = $search->getModel();
|
|
$model = $model->selectRaw('DATE_FORMAT(order_at,"%Y-%m-%d") as day,count(*) as number,sum(pay_money) as pay_money ,sum(order_money) as order_money ,sum(total_money) as total_money');
|
|
$model = $model->groupBy('day');
|
|
return $model->get()->toArray();
|
|
}
|
|
|
|
public function getSumArr($data, $filed_arr)
|
|
{
|
|
$search = new SearchServices($this->order, $data, 'order');
|
|
$search->unsetAllWhere();
|
|
$model = $search->getModel();
|
|
$raw_arr = [];
|
|
foreach ($filed_arr as $k => $v) {
|
|
$raw_arr[] = \DB::raw('SUM(' . $v . ') as ' . $v);
|
|
}
|
|
$sum_arr = $model->first($raw_arr)->toArray();
|
|
return ($sum_arr);
|
|
}
|
|
|
|
|
|
} |