jingcai-php/app/Admin/Controllers/ReportShopOrderController.php

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,
]);
}
}