Browse Source

Merge branch 'order_statistics'

master
liangyuyan 5 years ago
parent
commit
a45e74bfcf
  1. 77
      app/Admin/Repositories/v3/OrderReport.php

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

Loading…
Cancel
Save