@ -7,7 +7,7 @@ use App\Models\v3\Store as Model;
use Dcat\Admin\Grid\Model as GridModel ;
use Dcat\Admin\Repositories\EloquentRepository ;
use Illuminate\Support\Facades\DB ;
use App\Models\ImsCjdcOrderMain as o rderMainModel;
use App\Models\ImsCjdcOrderMain as O rderMainModel;
use App\Models\FinancialRecord as FinancialRecordModel ;
use App\Models\StoreAccount as StoreAccountModel ;
use App\Models\v3\Store as StoreModel ;
@ -35,7 +35,8 @@ class OrderReport extends EloquentRepository
$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 ]);
$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 " ));
// 新商户流水 获取所有模型
@ -53,7 +54,8 @@ class OrderReport extends EloquentRepository
$newUser = UserModel :: select ( DB :: raw ( 'count(id) AS total' ));
if ( $marketId ){
$orderMain -> where ( 'market_id' , $marketId );
$orderMainOnline -> where ( 'market_id' , $marketId );
$orderMainOffline -> where ( 'market_id' , $marketId );
// 查询这个市场下的店铺id
$storeIds = StoreModel :: where ( 'market_id' , $marketId ) -> pluck ( 'user_id' , 'id' ) -> toArray ();
@ -69,31 +71,40 @@ class OrderReport extends EloquentRepository
}
if ( $startTime ){
$startTime = $startTime . ' 00:00:00' ;
$orderMain -> where ([[ 'created_at' , '>=' , strtotime ( $startTime )]]);
$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 )]]);
// $newUser->where([['created_at','>=',strtotime($startTime)]]);
}
if ( $endTime ){
$endTime = $endTime . ' 23:59:59' ;
$orderMain -> where ([[ 'created_at' , '<=' , strtotime ( $endTime )]]);
$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 )]]);
// $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 )]]);
$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 )]]);
@ -101,7 +112,9 @@ class OrderReport extends EloquentRepository
$storeNewUserNewThree -> where ([[ 'created_at' , '>=' , strtotime ( $todayStart )]]);
$storeNewUserNewFour -> where ([[ 'created_at' , '>=' , strtotime ( $todayStart )]]);
$orderMain -> where ([[ 'created_at' , '<=' , strtotime ( $todayEnd )]]);
$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 )]]);
@ -110,7 +123,8 @@ class OrderReport extends EloquentRepository
$storeNewUserNewFour -> where ([[ 'created_at' , '<=' , strtotime ( $todayEnd )]]);
}
// 订单总额
$orderReport = $orderMain -> get () -> toArray ();
$orderReportOnline = $orderMainOnline -> get () -> toArray ();
$orderReportOffline = $orderMainOffline -> get () -> toArray ();
// 补贴金额
$storeNewUsers = $storeNewUser -> get () -> toArray ();
$storeNewUserNewsZero = $storeNewUserNewZero -> get () -> toArray ();
@ -122,8 +136,11 @@ class OrderReport extends EloquentRepository
$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 ,
'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 ,
@ -161,9 +178,24 @@ class OrderReport extends EloquentRepository
'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' ,
'name' => '订单总额(元)' ,
'value' => $query [ 'order_total_num' ]
'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' ,