94 lines
2.8 KiB
PHP
Executable File
94 lines
2.8 KiB
PHP
Executable File
<?php
|
|
|
|
namespace App\Admin\Controllers;
|
|
|
|
use App\Admin\Forms\ShopBalanceForm;
|
|
use App\Admin\Model\ReportShopOrder;
|
|
use App\Enums\LottState;
|
|
use App\Enums\PayState;
|
|
use App\Enums\SellerLevel;
|
|
use App\Model\Config;
|
|
use App\Model\Lottery;
|
|
use App\Model\Order;
|
|
use App\Model\Seller\Seller;
|
|
use Dcat\Admin\Grid;
|
|
use Dcat\Admin\Form;
|
|
use App\Model\Seller\Shop;
|
|
use App\Model\ShopAgent;
|
|
|
|
use App\Admin\Forms\ShopAgentForm;
|
|
|
|
use Dcat\Admin\Http\Controllers\AdminController;
|
|
use Illuminate\Http\Request;
|
|
use Illuminate\Pagination\LengthAwarePaginator;
|
|
use Illuminate\Support\Facades\DB;
|
|
|
|
|
|
class ReportShopOrderController extends AdminController
|
|
{
|
|
protected $title='店铺订单总额';
|
|
/**
|
|
* Make a grid builder.
|
|
*
|
|
* @return Grid
|
|
*/
|
|
protected function grid()
|
|
{
|
|
$perPage = request('per_page', 10);
|
|
$page = request('page', 1);
|
|
|
|
$dateStart = request('date_start', date('Y-m-d'));
|
|
$dateEnd = request('date_end', date('Y-m-d'));
|
|
|
|
$orders = Order::select([
|
|
'shop_id',
|
|
DB::raw('SUM(IF(type = 3, union_money, money)) AS money')
|
|
])
|
|
->where('pay_state', PayState::SUCCESS)
|
|
->whereIn('lottery_state', [LottState::WIN, LottState::LOSS, LottState::WAIT, LottState::SEND])
|
|
->where('created_date', '>=', date('Ymd', strtotime($dateStart)))
|
|
->where('created_date', '<=', date('Ymd', strtotime($dateEnd)))
|
|
->groupBy('shop_id')
|
|
->get();
|
|
|
|
$shops = collect();
|
|
$sellers = collect();
|
|
if (count($orders) > 0) {
|
|
$shops = Shop::select([
|
|
'id',
|
|
'name',
|
|
'shop_sn',
|
|
])
|
|
->whereIn('id', collect($orders)->pluck('shop_id')->toArray())
|
|
->get();
|
|
|
|
$sellers = Seller::select([
|
|
'id',
|
|
'name',
|
|
'phone',
|
|
'shop_id',
|
|
])->whereIn('shop_id', collect($orders)->pluck('shop_id')->toArray())
|
|
->where('level', SellerLevel::MASTER)
|
|
->get();
|
|
|
|
}
|
|
foreach ($orders as $order) {
|
|
$shop = collect($shops)->where('id', $order->shop_id)->first();
|
|
$seller = collect($sellers)->where('shop_id', $order->shop_id)->first();
|
|
|
|
$order->seller_id = $seller ? $seller->id : 0;
|
|
$order->seller_name = $seller ? $seller->name : '';
|
|
$order->seller_phone = $seller ? $seller->phone : '';
|
|
$order->shop_id = $shop ? $shop->id : 0;
|
|
$order->shop_sn = $shop ? $shop->shop_sn : '';
|
|
$order->shop_name = $shop ? $shop->name : '';
|
|
}
|
|
|
|
return view('admin.report_shop_order', [
|
|
'orders' => $orders,
|
|
'dateStart' => $dateStart,
|
|
'dateEnd' => $dateEnd,
|
|
]);
|
|
}
|
|
}
|