@ -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 ' ]
]
];