From 205fa57688244abcfbad717d83a4b0ed8571390a Mon Sep 17 00:00:00 2001 From: liangyuyan <1103300295@qq.com> Date: Wed, 23 Sep 2020 15:19:42 +0800 Subject: [PATCH] =?UTF-8?q?=E8=AE=A2=E5=8D=95=E7=BB=9F=E8=AE=A1=E6=A8=A1?= =?UTF-8?q?=E5=9E=8B--=E6=B7=BB=E5=8A=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/Admin/Repositories/v3/OrderReport.php | 77 ++++++++++++++++++----- 1 file changed, 61 insertions(+), 16 deletions(-) diff --git a/app/Admin/Repositories/v3/OrderReport.php b/app/Admin/Repositories/v3/OrderReport.php index 6366ce2..c68dd87 100644 --- a/app/Admin/Repositories/v3/OrderReport.php +++ b/app/Admin/Repositories/v3/OrderReport.php @@ -8,7 +8,7 @@ use Dcat\Admin\Grid\Model as GridModel; use Dcat\Admin\Repositories\EloquentRepository; use Illuminate\Support\Facades\DB; use App\Models\ImsCjdcOrderMain as orderMainModel; -use App\Models\v3\FinancialRecord as FinancialRecordModel; +use App\Models\FinancialRecord as FinancialRecordModel; use App\Models\StoreAccount as StoreAccountModel; use App\Models\v3\Store as StoreModel; use App\Models\v3\User as UserModel; @@ -38,8 +38,17 @@ class OrderReport extends EloquentRepository $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_money,SUM( CASE WHEN note = '用户下单成功,平台奖励' THEN money ELSE 0 END ) AS store_total_money")); - // 新商户流水 - $storeNewUserNew = FinancialRecordModel::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')]]); + // 新商户流水 获取所有模型 + $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')); @@ -49,23 +58,35 @@ class OrderReport extends EloquentRepository // 查询这个市场下的店铺id $storeIds = StoreModel::where('market_id',$marketId)->pluck('user_id','id')->toArray(); $storeIdsArr = array_keys($storeIds); - $userIdsArr = array_values($storeIds); + $userIdsArr = array_values($storeIds);//dd([$storeIdsArr,$userIdsArr]); $storeNewUser->whereIn('store_id',$storeIdsArr); - $storeNewUserNew->whereIn('user_id',$userIdsArr)->where('user_type',5); + $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){ $startTime = $startTime.' 00:00:00'; $orderMain->where([['created_at','>=',strtotime($startTime)]]); $storeNewUser->where([['time','>=',$startTime]]); - $storeNewUserNew->where([['created_at','>=',strtotime($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)]]); } if($endTime){ $endTime = $endTime.' 23:59:59'; $orderMain->where([['created_at','<=',strtotime($endTime)]]); $storeNewUser->where([['time','<=',$endTime]]); - $storeNewUserNew->where([['created_at','<=',strtotime($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)]]); } if(empty($startTime) && empty($endTime)){ @@ -74,17 +95,29 @@ class OrderReport extends EloquentRepository $todayEnd = $time.' 23:59:59'; $orderMain->where([['created_at','>=',strtotime($todayStart)]]); $storeNewUser->where([['time','>=',$todayStart]]); - $storeNewUserNew->where([['created_at','>=',strtotime($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)]]); $orderMain->where([['created_at','<=',strtotime($todayEnd)]]); $storeNewUser->where([['time','<=',$todayEnd]]); - $storeNewUserNew->where([['created_at','<=',strtotime($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)]]); } // 订单总额 $orderReport = $orderMain->get()->toArray(); // 补贴金额 $storeNewUsers = $storeNewUser->get()->toArray(); - $storeNewUserNews = $storeNewUserNew->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(); @@ -93,13 +126,25 @@ class OrderReport extends EloquentRepository 'order_total_money' => !empty($orderReport[0]['total_money'])?$orderReport[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' => !empty($storeNewUserNews[0]['new_user_total_money'])?$storeNewUserNews[0]['new_user_total_money']:0, + 'new_user_total_new_money_zero' => !empty($storeNewUserNews[0]['new_user_total_money'])?$storeNewUserNews[0]['new_user_total_money']:0, + 'new_user_total_new_money_one' => !empty($storeNewUserNews[0]['new_user_total_money'])?$storeNewUserNews[0]['new_user_total_money']:0, + 'new_user_total_new_money_two' => !empty($storeNewUserNews[0]['new_user_total_money'])?$storeNewUserNews[0]['new_user_total_money']:0, + 'new_user_total_new_money_three' => !empty($storeNewUserNews[0]['new_user_total_money'])?$storeNewUserNews[0]['new_user_total_money']:0, + 'new_user_total_new_money_four' => !empty($storeNewUserNews[0]['new_user_total_money'])?$storeNewUserNews[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' => !empty($storeNewUserNews[0]['store_total_money'])?$storeNewUserNews[0]['store_total_money']:0, + 'store_user_total_new_money_zero' => !empty($storeNewUserNews[0]['store_total_money'])?$storeNewUserNews[0]['store_total_money']:0, + 'store_user_total_new_money_one' => !empty($storeNewUserNews[0]['store_total_money'])?$storeNewUserNews[0]['store_total_money']:0, + 'store_user_total_new_money_two' => !empty($storeNewUserNews[0]['store_total_money'])?$storeNewUserNews[0]['store_total_money']:0, + 'store_user_total_new_money_three' => !empty($storeNewUserNews[0]['store_total_money'])?$storeNewUserNews[0]['store_total_money']:0, + 'store_user_total_new_money_four' => !empty($storeNewUserNews[0]['store_total_money'])?$storeNewUserNews[0]['store_total_money']:0, 'new_add_user' => !empty($storeNewUsers[0]['new_add_total'])?$storeNewUsers[0]['new_add_total']:0, - 'new_add_user_new' => !empty($storeNewUserNews[0]['new_add_total'])?$storeNewUserNews[0]['new_add_total']:0, + 'new_add_user_new_zero' => !empty($storeNewUserNews[0]['new_add_total'])?$storeNewUserNews[0]['new_add_total']:0, + 'new_add_user_new_one' => !empty($storeNewUserNews[0]['new_add_total'])?$storeNewUserNews[0]['new_add_total']:0, + 'new_add_user_new_two' => !empty($storeNewUserNews[0]['new_add_total'])?$storeNewUserNews[0]['new_add_total']:0, + 'new_add_user_new_three' => !empty($storeNewUserNews[0]['new_add_total'])?$storeNewUserNews[0]['new_add_total']:0, + 'new_add_user_new_four' => !empty($storeNewUserNews[0]['new_add_total'])?$storeNewUserNews[0]['new_add_total']:0, 'user_total' => !empty($userTotal[0]['total'])?$userTotal[0]['total']:0, ]; @@ -113,7 +158,7 @@ class OrderReport extends EloquentRepository [ 'key' => 'new_add_user', 'name' => '新增用户数(人)', - 'value' => $query['new_add_user'] + $query['new_add_user_new'] + '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', @@ -123,12 +168,12 @@ class OrderReport extends EloquentRepository [ 'key' => 'new_user_total_money', 'name' => '平台新用户补贴总额(元)', - 'value' => $query['new_user_total_money'] + $query['new_user_total_new_money'] + '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'] + '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'] ] ];