input('market_id'); $startTime = request()->input('start_time'); $endTime = request()->input('end_time'); $time = date('Y-m-d',time()); // 日期 // $date = request()->input('day'); // if(!empty($date)){ // $startTime = $date; // $endTime = $date; // } $orderMainOnline = OrderMainModel::select(DB::raw('COUNT(id) AS total_num, SUM(money) AS total_money'))->whereIn('state',[4,5])->where('type',OrderMainModel::ORDER_TYPE_ONLINE); $orderMainOffline = OrderMainModel::select(DB::raw('COUNT(id) AS total_num, SUM(money) AS total_money'))->whereIn('state',[4,5])->where('type',OrderMainModel::ORDER_TYPE_OFFLINE); // 旧商户流水 $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_money,SUM( CASE WHEN note = '用户下单成功,平台奖励' THEN money ELSE 0 END ) AS store_total_money")); // 新商户流水 获取所有模型 $financialRecordModelZero = FinancialRecordModel::getFinancialRecordModel(5); $financialRecordModelOne = FinancialRecordModel::getFinancialRecordModel(1); $financialRecordModelTwo = FinancialRecordModel::getFinancialRecordModel(2); $financialRecordModelThree = FinancialRecordModel::getFinancialRecordModel(3); $financialRecordModelFour = FinancialRecordModel::getFinancialRecordModel(4); $storeNewUserNewZero = $financialRecordModelZero::select(DB::raw('SUM( CASE WHEN money_type = 4 THEN 1 ELSE 0 END ) AS new_add_total, SUM( CASE WHEN money_type = 4 THEN money ELSE 0 END ) AS new_user_total_money, SUM( CASE WHEN money_type = 5 THEN money ELSE 0 END ) as store_total_money '))->where([['created_at','>',strtotime('2020-09-19 00:00:00')]]); $storeNewUserNewOne = $financialRecordModelOne::select(DB::raw('SUM( CASE WHEN money_type = 4 THEN 1 ELSE 0 END ) AS new_add_total, SUM( CASE WHEN money_type = 4 THEN money ELSE 0 END ) AS new_user_total_money, SUM( CASE WHEN money_type = 5 THEN money ELSE 0 END ) as store_total_money '))->where([['created_at','>',strtotime('2020-09-19 00:00:00')]]); $storeNewUserNewTwo = $financialRecordModelTwo::select(DB::raw('SUM( CASE WHEN money_type = 4 THEN 1 ELSE 0 END ) AS new_add_total, SUM( CASE WHEN money_type = 4 THEN money ELSE 0 END ) AS new_user_total_money, SUM( CASE WHEN money_type = 5 THEN money ELSE 0 END ) as store_total_money '))->where([['created_at','>',strtotime('2020-09-19 00:00:00')]]); $storeNewUserNewThree = $financialRecordModelThree::select(DB::raw('SUM( CASE WHEN money_type = 4 THEN 1 ELSE 0 END ) AS new_add_total, SUM( CASE WHEN money_type = 4 THEN money ELSE 0 END ) AS new_user_total_money, SUM( CASE WHEN money_type = 5 THEN money ELSE 0 END ) as store_total_money '))->where([['created_at','>',strtotime('2020-09-19 00:00:00')]]); $storeNewUserNewFour = $financialRecordModelFour::select(DB::raw('SUM( CASE WHEN money_type = 4 THEN 1 ELSE 0 END ) AS new_add_total, SUM( CASE WHEN money_type = 4 THEN money ELSE 0 END ) AS new_user_total_money, SUM( CASE WHEN money_type = 5 THEN money ELSE 0 END ) as store_total_money '))->where([['created_at','>',strtotime('2020-09-19 00:00:00')]]); $newUser = UserModel::select(DB::raw('count(id) AS total')); if($marketId){ $orderMainOnline->where('market_id',$marketId); $orderMainOffline->where('market_id',$marketId); // 查询这个市场下的店铺id $storeIds = StoreModel::where('market_id',$marketId)->pluck('user_id','id')->toArray(); $storeIdsArr = array_keys($storeIds); $userIdsArr = array_values($storeIds);//dd([$storeIdsArr,$userIdsArr]); $storeNewUser->whereIn('store_id',$storeIdsArr); $storeNewUserNewZero->whereIn('user_id',$userIdsArr)->where('user_type',5); $storeNewUserNewOne->whereIn('user_id',$userIdsArr)->where('user_type',5); $storeNewUserNewTwo->whereIn('user_id',$userIdsArr)->where('user_type',5); $storeNewUserNewThree->whereIn('user_id',$userIdsArr)->where('user_type',5); $storeNewUserNewFour->whereIn('user_id',$userIdsArr)->where('user_type',5); } if($startTime){ $date = $startTime; $startTime = $startTime.' 00:00:00'; $orderMainOnline->where([['created_at','>=',strtotime($startTime)]]); $orderMainOffline->where([['created_at','>=',strtotime($startTime)]]); $storeNewUser->where([['time','>=',$startTime]]); $storeNewUserNewZero->where([['created_at','>=',strtotime($startTime)]]); $storeNewUserNewOne->where([['created_at','>=',strtotime($startTime)]]); $storeNewUserNewTwo->where([['created_at','>=',strtotime($startTime)]]); $storeNewUserNewThree->where([['created_at','>=',strtotime($startTime)]]); $storeNewUserNewFour->where([['created_at','>=',strtotime($startTime)]]); // $newUser->where([['created_at','>=',strtotime($startTime)]]); }else{ $date = '2020-06-01'; } if($endTime){ $date = $date.' 至 '.$endTime; $endTime = $endTime.' 23:59:59'; $orderMainOnline->where([['created_at','<=',strtotime($endTime)]]); $orderMainOffline->where([['created_at','<=',strtotime($endTime)]]); $storeNewUser->where([['time','<=',$endTime]]); $storeNewUserNewZero->where([['created_at','<=',strtotime($endTime)]]); $storeNewUserNewOne->where([['created_at','<=',strtotime($endTime)]]); $storeNewUserNewTwo->where([['created_at','<=',strtotime($endTime)]]); $storeNewUserNewThree->where([['created_at','<=',strtotime($endTime)]]); $storeNewUserNewFour->where([['created_at','<=',strtotime($endTime)]]); // $newUser->where([['created_at','<=',strtotime($endTime)]]); }else{ $date .= ' 至 '.$time; } if(empty($startTime) && empty($endTime)){ $date = $time; $todayStart = $time.' 00:00:00'; $todayEnd = $time.' 23:59:59'; $orderMainOnline->where([['created_at','>=',strtotime($todayStart)]]); $orderMainOffline->where([['created_at','>=',strtotime($todayStart)]]); $storeNewUser->where([['time','>=',$todayStart]]); $storeNewUserNewZero->where([['created_at','>=',strtotime($todayStart)]]); $storeNewUserNewOne->where([['created_at','>=',strtotime($todayStart)]]); $storeNewUserNewTwo->where([['created_at','>=',strtotime($todayStart)]]); $storeNewUserNewThree->where([['created_at','>=',strtotime($todayStart)]]); $storeNewUserNewFour->where([['created_at','>=',strtotime($todayStart)]]); $orderMainOnline->where([['created_at','<=',strtotime($todayEnd)]]); $orderMainOffline->where([['created_at','<=',strtotime($todayEnd)]]); $storeNewUser->where([['time','<=',$todayEnd]]); $storeNewUserNewZero->where([['created_at','<=',strtotime($todayEnd)]]); $storeNewUserNewOne->where([['created_at','<=',strtotime($todayEnd)]]); $storeNewUserNewTwo->where([['created_at','<=',strtotime($todayEnd)]]); $storeNewUserNewThree->where([['created_at','<=',strtotime($todayEnd)]]); $storeNewUserNewFour->where([['created_at','<=',strtotime($todayEnd)]]); } // 订单总额 $orderReportOnline = $orderMainOnline->get()->toArray(); $orderReportOffline = $orderMainOffline->get()->toArray(); // 补贴金额 $storeNewUsers = $storeNewUser->get()->toArray(); $storeNewUserNewsZero = $storeNewUserNewZero->get()->toArray(); $storeNewUserNewsOne = $storeNewUserNewOne->get()->toArray(); $storeNewUserNewsTwo = $storeNewUserNewTwo->get()->toArray(); $storeNewUserNewsThree = $storeNewUserNewThree->get()->toArray(); $storeNewUserNewsFour = $storeNewUserNewFour->get()->toArray(); // 总用户 $userTotal = $newUser->get()->toArray(); $query = [ 'order_total_num_online' => !empty($orderReportOnline[0]['total_num'])?$orderReportOnline[0]['total_num']:0, 'order_total_money_online' => !empty($orderReportOnline[0]['total_money'])?$orderReportOnline[0]['total_money']:0, 'order_total_num_offline' => !empty($orderReportOffline[0]['total_num'])?$orderReportOffline[0]['total_num']:0, 'order_total_money_offline' => !empty($orderReportOffline[0]['total_money'])?$orderReportOffline[0]['total_money']:0, 'new_user_total_money' => !empty($storeNewUsers[0]['new_user_total_money'])?$storeNewUsers[0]['new_user_total_money']:0, 'new_user_total_new_money_zero' => !empty($storeNewUserNewsZero[0]['new_user_total_money'])?$storeNewUserNewsZero[0]['new_user_total_money']:0, 'new_user_total_new_money_one' => !empty($storeNewUserNewsOne[0]['new_user_total_money'])?$storeNewUserNewsOne[0]['new_user_total_money']:0, 'new_user_total_new_money_two' => !empty($storeNewUserNewsTwo[0]['new_user_total_money'])?$storeNewUserNewsTwo[0]['new_user_total_money']:0, 'new_user_total_new_money_three' => !empty($storeNewUserNewsThree[0]['new_user_total_money'])?$storeNewUserNewsThree[0]['new_user_total_money']:0, 'new_user_total_new_money_four' => !empty($storeNewUserNewsFour[0]['new_user_total_money'])?$storeNewUserNewsFour[0]['new_user_total_money']:0, 'store_user_total_money' => !empty($storeNewUsers[0]['store_total_money'])?$storeNewUsers[0]['store_total_money']:0, 'store_user_total_new_money_zero' => !empty($storeNewUserNewsZero[0]['store_total_money'])?$storeNewUserNewsZero[0]['store_total_money']:0, 'store_user_total_new_money_one' => !empty($storeNewUserNewsOne[0]['store_total_money'])?$storeNewUserNewsOne[0]['store_total_money']:0, 'store_user_total_new_money_two' => !empty($storeNewUserNewsTwo[0]['store_total_money'])?$storeNewUserNewsTwo[0]['store_total_money']:0, 'store_user_total_new_money_three' => !empty($storeNewUserNewsThree[0]['store_total_money'])?$storeNewUserNewsThree[0]['store_total_money']:0, 'store_user_total_new_money_four' => !empty($storeNewUserNewsFour[0]['store_total_money'])?$storeNewUserNewsFour[0]['store_total_money']:0, 'new_add_user' => !empty($storeNewUsers[0]['new_add_total'])?$storeNewUsers[0]['new_add_total']:0, 'new_add_user_new_zero' => !empty($storeNewUserNewsZero[0]['new_add_total'])?$storeNewUserNewsZero[0]['new_add_total']:0, 'new_add_user_new_one' => !empty($storeNewUserNewsOne[0]['new_add_total'])?$storeNewUserNewsOne[0]['new_add_total']:0, 'new_add_user_new_two' => !empty($storeNewUserNewsTwo[0]['new_add_total'])?$storeNewUserNewsTwo[0]['new_add_total']:0, 'new_add_user_new_three' => !empty($storeNewUserNewsThree[0]['new_add_total'])?$storeNewUserNewsThree[0]['new_add_total']:0, 'new_add_user_new_four' => !empty($storeNewUserNewsFour[0]['new_add_total'])?$storeNewUserNewsFour[0]['new_add_total']:0, 'user_total' => !empty($userTotal[0]['total'])?$userTotal[0]['total']:0, ]; $list = [ [ 'key' => 'user_total', 'name' => '现存用户总数(人)', 'value' => $query['user_total'] ], [ 'key' => 'new_add_user', 'name' => '新增用户数(人)', 'value' => $query['new_add_user'] + $query['new_add_user_new_zero'] + $query['new_add_user_new_one'] + $query['new_add_user_new_two'] + $query['new_add_user_new_three'] + $query['new_add_user_new_four'] ], [ 'key' => 'order_total_num_online', 'name' => '线上-订单总数(单)', 'value' => $query['order_total_num_online'] ], [ 'key' => 'order_total_money_online', 'name' => '线上-订单总额(元)', 'value' => $query['order_total_money_online'] ], [ 'key' => 'order_total_num_offline', 'name' => '线下-订单总数(单)', 'value' => $query['order_total_num_offline'] ], [ 'key' => 'order_total_money_offline', 'name' => '线下-订单总额(元)', 'value' => $query['order_total_money_offline'] ], [ 'key' => 'new_user_total_money', 'name' => '平台新用户补贴总额(元)', 'value' => $query['new_user_total_money'] + $query['new_user_total_new_money_zero'] + $query['new_user_total_new_money_one'] + $query['new_user_total_new_money_two'] + $query['new_user_total_new_money_three'] + $query['new_user_total_new_money_four'] ], [ 'key' => 'store_user_total_money', 'name' => '店铺用户每日首单补贴(元)', 'value' => $query['store_user_total_money'] + $query['store_user_total_new_money_zero'] + $query['store_user_total_new_money_one'] + $query['store_user_total_new_money_two'] + $query['store_user_total_new_money_three'] + $query['store_user_total_new_money_four'] ], [ 'key' => 'day', 'name' => '统计日期', 'value' => $date ] ]; return $model->makePaginator( count($list),$list ); } }