|
|
<?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(); // 总补贴金额
$storeNewUsers = $storeNewUser->get()->toArray(); // 总用户
$userTotal = $newUser->get()->toArray();
$query = [ 'order_total_num' => !empty($orderReport[0]['total_num'])?$orderReport[0]['total_num']:0, 'order_total_money' => !empty($orderReport[0]['total_money'])?$orderReport[0]['total_money']:0,
'new_user_total_money' => !empty($storeNewUsers[0]['new_user_total'])?$storeNewUsers[0]['new_user_total']:0, 'store_user_total_money' => !empty($storeNewUsers[0]['store_total'])?$storeNewUsers[0]['store_total']:0, 'new_add_user' => !empty($storeNewUsers[0]['new_add_total'])?$storeNewUsers[0]['new_add_total']:0,
'user_total' => !empty($userTotal[0]['total'])?$userTotal[0]['total']:0, ]; if ($query) { // $marketList = MarketModel::getMarket();
Admin::script( <<<JS var app = new Vue({ el:"#order_report", data:{ order_total_num:"{$query['order_total_num']}", order_total_money:"{$query['order_total_money']}", new_user_total_money:"{$query['new_user_total_money']}", store_user_total_money:"{$query['store_user_total_money']}", new_add_user:"{$query['new_add_user']}", user_total:"{$query['user_total']}", }, methods: { } });JS );
} return view('order_report'); }
}
|