You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
124 lines
4.6 KiB
124 lines
4.6 KiB
<?php
|
|
|
|
|
|
namespace App\Admin\Extensions;
|
|
|
|
use App\Admin\Common\LinkUrl;
|
|
use Dcat\Admin\Admin;
|
|
use Dcat\Admin\Support\LazyRenderable;
|
|
use Illuminate\Support\Facades\DB;
|
|
use App\Models\ImsCjdcOrder as orderModel;
|
|
use App\Models\ImsCjdcOrderMain as orderMainModel;
|
|
use App\Models\v3\Market as MarketModel;
|
|
use App\Models\StoreAccount as StoreAccountModel;
|
|
use App\Models\v3\Store as StoreModel;
|
|
use App\Models\v3\User as UserModel;
|
|
|
|
class OrderReportPage extends LazyRenderable
|
|
{
|
|
|
|
protected static $js = [LinkUrl::VUE_JS, LinkUrl::ELEMENT_UI_JS];
|
|
protected static $css = [LinkUrl::DETAIL_CSS, LinkUrl::ELEMENT_UI_CSS];
|
|
|
|
public function render()
|
|
{
|
|
$marketId = request()->input('market_id');
|
|
$startTime = request()->input('start_time');
|
|
$endTime = request()->input('end_time');
|
|
$orderMain = orderMainModel::select(DB::raw('COUNT(id) AS total_num, SUM(money) AS total_money'))->whereIn('state',[4,5,10]);
|
|
|
|
$storeNewUser = StoreAccountModel::select(DB::raw("SUM( CASE WHEN note = '新用户下单成功,平台奖励' THEN 1 ELSE 0 END ) AS new_add_total, SUM( CASE WHEN note = '新用户下单成功,平台奖励' THEN money ELSE 0 END ) AS new_user_total,SUM( CASE WHEN note = '用户下单成功,平台奖励' THEN money ELSE 0 END ) AS store_total"));
|
|
|
|
$newUser = UserModel::select(DB::raw('count(id) AS total'));
|
|
|
|
if($marketId){
|
|
$orderMain->where('market_id',$marketId);
|
|
|
|
// 查询这个市场下的店铺id
|
|
$storeIds = StoreModel::where('market_id',$marketId)->pluck('id');
|
|
$storeNewUser->whereIn('store_id',$storeIds);
|
|
}
|
|
if($startTime){
|
|
$orderMain->where([['created_at','>=',strtotime($startTime)]]);
|
|
$storeNewUser->where([['time','>=',$startTime]]);
|
|
$newUser->where([['created_at','>=',strtotime($startTime)]]);
|
|
}
|
|
if($endTime){
|
|
$orderMain->where([['created_at','<=',strtotime($endTime)]]);
|
|
$storeNewUser->where([['time','<=',$endTime]]);
|
|
$newUser->where([['created_at','<=',strtotime($endTime)]]);
|
|
}
|
|
if(empty($startTime) && empty($endTime)){
|
|
$time = date('Y-m-d',time());
|
|
$todayStart = $time.'00:00:00';
|
|
$todayEnd = $time.'23:59:59';
|
|
$orderMain->where([['created_at','>=',strtotime($todayStart)]]);
|
|
$storeNewUser->where([['time','>=',$todayStart]]);
|
|
$newUser->where([['created_at','>=',strtotime($todayStart)]]);
|
|
|
|
$orderMain->where([['created_at','<=',strtotime($todayEnd)]]);
|
|
$storeNewUser->where([['time','<=',$todayEnd]]);
|
|
$newUser->where([['created_at','<=',strtotime($todayEnd)]]);
|
|
}
|
|
// 订单总额
|
|
$orderReport = $orderMain->get()->toArray();
|
|
// 总补贴金额
|
|
$storeNewUser = $storeNewUser->get();
|
|
// 总用户
|
|
$userTotal = $newUser->get();
|
|
|
|
$query = [
|
|
'order_total_num' => $orderReport['total_num'],
|
|
'order_total_money' => $orderReport['total_money'],
|
|
|
|
'new_user_total_money' => $storeNewUser['new_user_total'],
|
|
'store_user_total_money' => $storeNewUser['store_total'],
|
|
'new_add_user' => $userTotal['new_add_total'],
|
|
|
|
'user_total' => $newUser['total'],
|
|
];
|
|
|
|
if ($query) {
|
|
// $marketList = MarketModel::getMarket();
|
|
$result = [];
|
|
$orderReport = json_encode($orderReport);
|
|
$showRefund = json_encode($result);
|
|
|
|
Admin::script(
|
|
<<<JS
|
|
var order_report = JSON.stringify($orderReport)
|
|
var show_refund = JSON.stringify($showRefund)
|
|
var app = new Vue({
|
|
el:"#order_report",
|
|
data:{
|
|
|
|
show_refund: JSON.parse(show_refund),
|
|
|
|
order_total_num:$orderReport.total_num,
|
|
order_total_money:$orderReport.total_money,
|
|
dialogFormVisible: false,
|
|
// order_total_money:123,
|
|
|
|
refund_2:"退款",
|
|
refund_3:"已同意退款",
|
|
refund_goods_name:"",
|
|
|
|
order_goods_id:null,
|
|
order_child_id:null,
|
|
show_refund_2:true,
|
|
show_refund_3:false,
|
|
|
|
},
|
|
methods: {
|
|
|
|
}
|
|
});
|
|
JS
|
|
);
|
|
|
|
}
|
|
return view('order_report');
|
|
}
|
|
|
|
|
|
}
|