|
@@ -22,6 +22,10 @@ use App\DistrictRoi60;
|
22
|
22
|
use App\SalerTargets;
|
23
|
23
|
use App\TemplatesLog;
|
24
|
24
|
use App\OrderGoodsSkus;
|
|
25
|
+use App\CustomerInfo;
|
|
26
|
+use App\CustomerDeposit;
|
|
27
|
+use App\CustomerConsum;
|
|
28
|
+use App\Admin;
|
25
|
29
|
use App\Goods;
|
26
|
30
|
use App\GoodsSkus;
|
27
|
31
|
use App\RedisModel as Redis;
|
|
@@ -3470,7 +3474,7 @@ class StatisticsController extends Controller
|
3470
|
3474
|
/**
|
3471
|
3475
|
* 团队财务汇总时间格式处理
|
3472
|
3476
|
*/
|
3473
|
|
- public function teamCtimePage($stime, $etime, $team_id, $offset, $pageSize){
|
|
3477
|
+ public function teamCtimePage($stime, $etime, $team_id, $offset, $pageSize, $sdate=''){
|
3474
|
3478
|
$result = array();
|
3475
|
3479
|
if( empty($sdate) ) $sdate = '2019-09-04';
|
3476
|
3480
|
$edate = date('Y-m-d');
|
|
@@ -3480,7 +3484,7 @@ class StatisticsController extends Controller
|
3480
|
3484
|
if($etime && $etime<$edate){
|
3481
|
3485
|
$edate = $etime;
|
3482
|
3486
|
}
|
3483
|
|
- $teams = [1,3,5];
|
|
3487
|
+ $teams = Admin::getTeams();
|
3484
|
3488
|
if($team_id>0){
|
3485
|
3489
|
$teams = [$team_id];
|
3486
|
3490
|
}
|
|
@@ -3502,7 +3506,7 @@ class StatisticsController extends Controller
|
3502
|
3506
|
/**
|
3503
|
3507
|
* 团队财务汇总时间格式处理
|
3504
|
3508
|
*/
|
3505
|
|
- public function teamCtimePage_export($stime, $etime, $team_id){
|
|
3509
|
+ public function teamCtimePage_export($stime, $etime, $team_id, $sdate=''){
|
3506
|
3510
|
$result = array();
|
3507
|
3511
|
if( empty($sdate) ) $sdate = '2019-09-04';
|
3508
|
3512
|
$edate = date('Y-m-d');
|
|
@@ -5061,9 +5065,314 @@ class StatisticsController extends Controller
|
5061
|
5065
|
$filename = 'salerRoi_'.date('Y-m-d_H').'.xlsx';
|
5062
|
5066
|
return Order::export_excel($result, $filename, $indexKey, $title);
|
5063
|
5067
|
}
|
5064
|
|
-
|
5065
|
|
-}
|
5066
|
|
-
|
5067
|
|
-
|
5068
|
5068
|
|
|
5069
|
+ /**
|
|
5070
|
+ * 充值日报表
|
|
5071
|
+ */
|
|
5072
|
+ public function depositDayReport(Request $request){
|
|
5073
|
+ $team_id = (int)$request->input('team_id');
|
|
5074
|
+ $stime = $request->input('stime');
|
|
5075
|
+ $etime = $request->input('etime');
|
|
5076
|
+ $page = (int)$request->input('page');
|
|
5077
|
+ $pageSize = 20;
|
|
5078
|
+ if($page<=0){
|
|
5079
|
+ $page = 1;
|
|
5080
|
+ }
|
|
5081
|
+
|
|
5082
|
+ $offset = ($page-1) * $pageSize;
|
|
5083
|
+ //获取团队及销售
|
|
5084
|
+ $team_ids = Admin::getTeams();
|
|
5085
|
+ $team_name_arr = Admin::getTeamsName();
|
|
5086
|
+ $saler_ids_arr = Admin::getTeamSalers($team_ids);
|
|
5087
|
+
|
|
5088
|
+ $_data = $this->teamCtimePage($stime, $etime, $team_id, $offset, $pageSize, '2019-10-30');
|
|
5089
|
+ $result = $_data['data'];
|
|
5090
|
+ foreach($result as $k=>&$v){
|
|
5091
|
+ #团队销售
|
|
5092
|
+ $saler_ids = $saler_ids_arr[$v['team_id']];
|
|
5093
|
+ $today_deposit = CustomerDeposit::select(DB::raw('sum(pay_amount) as pay_amount, sum(discount) as discount, sum(deposit_amount) as deposit_amount'))->where('is_del', 0)->whereRaw('left(pay_time,10)="'.$v['date'].'"')->whereIn('admin_id', $saler_ids)->first();
|
|
5094
|
+ $v['pay_amount'] = $today_deposit->pay_amount;
|
|
5095
|
+ $v['discount'] = $today_deposit->discount;
|
|
5096
|
+ $v['deposit_amount'] = $today_deposit->deposit_amount;
|
|
5097
|
+
|
|
5098
|
+ //团队名称
|
|
5099
|
+ $v['team_name'] = $team_name_arr[$v['team_id']];
|
|
5100
|
+ //累计充值金额
|
|
5101
|
+ $total_info = CustomerDeposit::select(DB::raw('sum(pay_amount) as pay_amount_total, sum(discount) as discount_total, sum(deposit_amount) as deposit_amount_total'))->whereIn('admin_id', $saler_ids)->where('pay_time', '<=', $v['date'] . ' 23:59:59')->where('is_del', 0)->first();
|
|
5102
|
+ $v['pay_amount_total'] = $total_info->pay_amount_total;
|
|
5103
|
+ $v['discount_total'] = $total_info->discount_total;
|
|
5104
|
+ $v['deposit_amount_total'] = $total_info->deposit_amount_total;
|
|
5105
|
+ //当日消费,订单数
|
|
5106
|
+ $consum = Order::select(DB::raw('count(1) as order_count, sum(receivedAmount) as order_amount'))->where('team_id', $v['team_id'])->where('payment_type', 4)->where('is_del', 0)->where('createTime', '>=', $v['date'])->where('createTime', '<=', $v['date'] . ' 23:59:59')->first();
|
|
5107
|
+ $v['order_count'] = $consum->order_count;
|
|
5108
|
+ $v['order_amount'] = $consum->order_amount;
|
|
5109
|
+ //剩余是的金额
|
|
5110
|
+ $v['day_amount'] = $v['deposit_amount'] - $v['order_amount'];
|
|
5111
|
+
|
|
5112
|
+ }
|
|
5113
|
+
|
|
5114
|
+ $count = $_data['count'];
|
|
5115
|
+ if ($count > 1) {
|
|
5116
|
+ // 总页数
|
|
5117
|
+ $pages = ceil($count/20);
|
|
5118
|
+ }else{
|
|
5119
|
+ // 总页数
|
|
5120
|
+ $pages = 1;
|
|
5121
|
+ }
|
|
5122
|
+
|
|
5123
|
+ $teamList = DB::table('teams')->select('id', 'name')->where('type', 1)->get();
|
|
5124
|
+ $teamList = json_decode(json_encode($teamList), true);
|
|
5125
|
+
|
|
5126
|
+ return view('statistics/depositDayReport', ['result' =>$result,
|
|
5127
|
+ 'page' =>$page,
|
|
5128
|
+ 'count' =>$count,
|
|
5129
|
+ 'pages' =>$pages,
|
|
5130
|
+ 'teamlist' =>$teamList,
|
|
5131
|
+ 'team_id' =>$team_id,
|
|
5132
|
+ 'stime' =>$stime,
|
|
5133
|
+ 'etime' =>$etime,
|
|
5134
|
+ ]);
|
|
5135
|
+
|
|
5136
|
+ }
|
|
5137
|
+
|
|
5138
|
+ /**
|
|
5139
|
+ * 充值日报表
|
|
5140
|
+ */
|
|
5141
|
+ public function depositDayReport_export(Request $request){
|
|
5142
|
+ $team_id = (int)$request->input('team_id');
|
|
5143
|
+ $stime = $request->input('stime');
|
|
5144
|
+ $etime = $request->input('etime');
|
|
5145
|
+
|
|
5146
|
+ //获取团队及销售
|
|
5147
|
+ $team_ids = Admin::getTeams();
|
|
5148
|
+ $team_name_arr = Admin::getTeamsName();
|
|
5149
|
+ $saler_ids_arr = Admin::getTeamSalers($team_ids);
|
|
5150
|
+
|
|
5151
|
+ $_data = $this->teamCtimePage_export($stime, $etime, $team_id, '2019-10-30');
|
|
5152
|
+ $result = $_data;
|
|
5153
|
+ foreach($result as $k=>&$v){
|
|
5154
|
+ #团队销售
|
|
5155
|
+ $saler_ids = $saler_ids_arr[$v['team_id']];
|
|
5156
|
+ $today_deposit = CustomerDeposit::select(DB::raw('sum(pay_amount) as pay_amount, sum(discount) as discount, sum(deposit_amount) as deposit_amount'))->where('is_del', 0)->whereRaw('left(pay_time,10)="'.$v['date'].'"')->whereIn('admin_id', $saler_ids)->first();
|
|
5157
|
+ $v['pay_amount'] = $today_deposit->pay_amount;
|
|
5158
|
+ $v['discount'] = $today_deposit->discount;
|
|
5159
|
+ $v['deposit_amount'] = $today_deposit->deposit_amount;
|
|
5160
|
+
|
|
5161
|
+ //团队名称
|
|
5162
|
+ $v['team_name'] = $team_name_arr[$v['team_id']];
|
|
5163
|
+ //累计充值金额
|
|
5164
|
+ $total_info = CustomerDeposit::select(DB::raw('sum(pay_amount) as pay_amount_total, sum(discount) as discount_total, sum(deposit_amount) as deposit_amount_total'))->whereIn('admin_id', $saler_ids)->where('pay_time', '<=', $v['date'] . ' 23:59:59')->where('is_del', 0)->first();
|
|
5165
|
+ $v['pay_amount_total'] = $total_info->pay_amount_total;
|
|
5166
|
+ $v['discount_total'] = $total_info->discount_total;
|
|
5167
|
+ $v['deposit_amount_total'] = $total_info->deposit_amount_total;
|
|
5168
|
+ //当日消费,订单数
|
|
5169
|
+ $consum = Order::select(DB::raw('count(1) as order_count, sum(receivedAmount) as order_amount'))->where('team_id', $v['team_id'])->where('payment_type', 4)->where('is_del', 0)->where('createTime', '>=', $v['date'])->where('createTime', '<=', $v['date'] . ' 23:59:59')->first();
|
|
5170
|
+ $v['order_count'] = $consum->order_count;
|
|
5171
|
+ $v['order_amount'] = $consum->order_amount;
|
|
5172
|
+ //剩余是的金额
|
|
5173
|
+ $v['day_amount'] = $v['deposit_amount'] - $v['order_amount'];
|
|
5174
|
+
|
|
5175
|
+ }
|
|
5176
|
+
|
|
5177
|
+ $indexKey = ['team_name','date','pay_amount','discount','deposit_amount','pay_amount_total','discount_total','deposit_amount_total','order_amount','order_count','day_amount'];
|
|
5178
|
+ $title = ['团队', '日期', '当日充值金额', '当日赠送金额', '当日实得金额', '累计充值金额', '累计赠送金额', '累计实得总金额', '当日消费金额', '当日订单数', '剩余实得金额'];
|
|
5179
|
+ $filename = 'chongzhihuizong_'.date('Y-m-d_H').'.xlsx';
|
|
5180
|
+ return Order::export_excel($result, $filename, $indexKey, $title);
|
|
5181
|
+ }
|
|
5182
|
+
|
|
5183
|
+ /**
|
|
5184
|
+ * 充值卡充值明细
|
|
5185
|
+ */
|
|
5186
|
+ public function depositDetail(Request $request){
|
|
5187
|
+ $team_id = (int)$request->input('team_id');
|
|
5188
|
+ $stime = $request->input('stime');
|
|
5189
|
+ $etime = $request->input('etime');
|
|
5190
|
+
|
|
5191
|
+ $page = (int)$request->input('page');
|
|
5192
|
+ $pageSize = 20;
|
|
5193
|
+ if($page<=0){
|
|
5194
|
+ $page = 1;
|
|
5195
|
+ }
|
|
5196
|
+
|
|
5197
|
+ $offset = ($page-1) * $pageSize;
|
|
5198
|
+
|
|
5199
|
+ $saler_ids = null;
|
|
5200
|
+ if($team_id>0){
|
|
5201
|
+ $saler_ids_arr = Admin::getTeamSalers([$team_id]);
|
|
5202
|
+ $saler_ids = $saler_ids_arr[$team_id];
|
|
5203
|
+ }
|
|
5204
|
+ $count = CustomerDeposit::where('is_del', 0)->where(function($query) use($saler_ids, $stime, $etime){
|
|
5205
|
+ if($saler_ids !==null) $query->whereIn('admin_id', $saler_ids);
|
|
5206
|
+ if($stime) $query->where('pay_time', '>=', $stime);
|
|
5207
|
+ if($etime) $query->where('pay_time', '<=', $etime. ' 23:59:59');
|
|
5208
|
+ })->count();
|
|
5209
|
+ if ($count > 1) {
|
|
5210
|
+ // 总页数
|
|
5211
|
+ $pages = ceil($count/20);
|
|
5212
|
+ }else{
|
|
5213
|
+ // 总页数
|
|
5214
|
+ $pages = 1;
|
|
5215
|
+ }
|
|
5216
|
+
|
|
5217
|
+ $team_name_arr = Admin::getTeamsName();
|
|
5218
|
+ $result = CustomerDeposit::where('is_del', 0)->where(function($query) use($saler_ids, $stime, $etime){
|
|
5219
|
+ if($saler_ids !==null) $query->whereIn('admin_id', $saler_ids);
|
|
5220
|
+ if($stime) $query->where('pay_time', '>=', $stime);
|
|
5221
|
+ if($etime) $query->where('pay_time', '<=', $etime. ' 23:59:59');
|
|
5222
|
+ })->orderBy('pay_time', 'desc')->offset($offset)->limit($pageSize)->get();
|
|
5223
|
+ foreach($result as $k=>&$v){
|
|
5224
|
+ //团队
|
|
5225
|
+ $admin = Admin::where('id', $v['admin_id'])->first();
|
|
5226
|
+ $v['admin_name'] = $admin->realname;
|
|
5227
|
+ $v['team_name'] = $team_name_arr[$admin->team_id];
|
|
5228
|
+ //客户名
|
|
5229
|
+ $v['cust_name'] = CustomerInfo::where('phone', $v['phone'])->pluck('name');
|
|
5230
|
+ $v['payment_type'] = $v['payment_type'] == 3 ? '个体户' : '微信';
|
|
5231
|
+ }
|
5069
|
5232
|
|
|
5233
|
+ $teamList = DB::table('teams')->select('id', 'name')->where('type', 1)->get();
|
|
5234
|
+ $teamList = json_decode(json_encode($teamList), true);
|
|
5235
|
+
|
|
5236
|
+ return view('statistics/depositDetail', ['result' =>$result,
|
|
5237
|
+ 'page' =>$page,
|
|
5238
|
+ 'count' =>$count,
|
|
5239
|
+ 'pages' =>$pages,
|
|
5240
|
+ 'teamlist' =>$teamList,
|
|
5241
|
+ 'team_id' =>$team_id,
|
|
5242
|
+ 'stime' =>$stime,
|
|
5243
|
+ 'etime' =>$etime,
|
|
5244
|
+ ]);
|
|
5245
|
+
|
|
5246
|
+ }
|
|
5247
|
+
|
|
5248
|
+ /**
|
|
5249
|
+ * 充值卡充值明细
|
|
5250
|
+ */
|
|
5251
|
+ public function depositDetail_export(Request $request){
|
|
5252
|
+ $team_id = (int)$request->input('team_id');
|
|
5253
|
+ $stime = $request->input('stime');
|
|
5254
|
+ $etime = $request->input('etime');
|
|
5255
|
+
|
|
5256
|
+ $saler_ids = null;
|
|
5257
|
+ if($team_id>0){
|
|
5258
|
+ $saler_ids_arr = Admin::getTeamSalers([$team_id]);
|
|
5259
|
+ $saler_ids = $saler_ids_arr[$team_id];
|
|
5260
|
+ }
|
|
5261
|
+
|
|
5262
|
+ $team_name_arr = Admin::getTeamsName();
|
|
5263
|
+ $result = CustomerDeposit::where('is_del', 0)->where(function($query) use($saler_ids, $stime, $etime){
|
|
5264
|
+ if($saler_ids !==null) $query->whereIn('admin_id', $saler_ids);
|
|
5265
|
+ if($stime) $query->where('pay_time', '>=', $stime);
|
|
5266
|
+ if($etime) $query->where('pay_time', '<=', $etime. ' 23:59:59');
|
|
5267
|
+ })->orderBy('pay_time', 'desc')->get();
|
|
5268
|
+ foreach($result as $k=>&$v){
|
|
5269
|
+ //团队
|
|
5270
|
+ $admin = Admin::where('id', $v['admin_id'])->first();
|
|
5271
|
+ $v['admin_name'] = $admin->realname;
|
|
5272
|
+ $v['team_name'] = $team_name_arr[$admin->team_id];
|
|
5273
|
+ //客户名
|
|
5274
|
+ $v['cust_name'] = CustomerInfo::where('phone', $v['phone'])->pluck('name');
|
|
5275
|
+ $v['payment_type'] = $v['payment_type'] == 3 ? '个体户' : '微信';
|
|
5276
|
+ }
|
|
5277
|
+
|
|
5278
|
+ $indexKey = ['team_name','pay_time','cust_name','admin_name','pay_amount','discount','deposit_amount','payment_type'];
|
|
5279
|
+ $title = ['团队', '充值时间', '客户名称', '销售名称', '充值金额', '赠送金额', '实得金额', '充值方式'];
|
|
5280
|
+ $filename = 'chongzhimingxi_'.date('Y-m-d_H').'.xlsx';
|
|
5281
|
+ return Order::export_excel($result, $filename, $indexKey, $title);
|
|
5282
|
+ }
|
|
5283
|
+
|
|
5284
|
+ /**
|
|
5285
|
+ * 充值卡消费明细
|
|
5286
|
+ */
|
|
5287
|
+ public function consumDetail(Request $request){
|
|
5288
|
+ $team_id = (int)$request->input('team_id');
|
|
5289
|
+ $stime = $request->input('stime');
|
|
5290
|
+ $etime = $request->input('etime');
|
|
5291
|
+
|
|
5292
|
+ $page = (int)$request->input('page');
|
|
5293
|
+ $pageSize = 20;
|
|
5294
|
+ if($page<=0){
|
|
5295
|
+ $page = 1;
|
|
5296
|
+ }
|
|
5297
|
+ $offset = ($page-1) * $pageSize;
|
|
5298
|
+
|
|
5299
|
+ $count = Order::where('payment_type', 4)->where(function($query) use($stime, $etime, $team_id){
|
|
5300
|
+ if($team_id>0) $query->where('team_id', $team_id);
|
|
5301
|
+ if($stime) $query->where('createTime', '>=', $stime);
|
|
5302
|
+ if($etime) $query->where('createTime', '<=', $etime. ' 23:59:59');
|
|
5303
|
+ })->where('is_del', 0)->count();
|
|
5304
|
+ if ($count > 1) {
|
|
5305
|
+ // 总页数
|
|
5306
|
+ $pages = ceil($count/20);
|
|
5307
|
+ }else{
|
|
5308
|
+ // 总页数
|
|
5309
|
+ $pages = 1;
|
|
5310
|
+ }
|
|
5311
|
+
|
|
5312
|
+ $result = Order::select('id', 'team_id', 'createTime', 'admin_name', 'receivedAmount')->where('payment_type', 4)->where(function($query) use($stime, $etime, $team_id){
|
|
5313
|
+ if($team_id>0) $query->where('team_id', $team_id);
|
|
5314
|
+ if($stime) $query->where('createTime', '>=', $stime);
|
|
5315
|
+ if($etime) $query->where('createTime', '<=', $etime. ' 23:59:59');
|
|
5316
|
+ })->where('is_del', 0)->orderBy('createTime', 'desc')->offset($offset)->limit($pageSize)->get();
|
|
5317
|
+ $result = json_decode(json_encode($result), true);
|
|
5318
|
+
|
|
5319
|
+ $team_name_arr = Admin::getTeamsName();
|
|
5320
|
+ foreach($result as $k=>&$v){
|
|
5321
|
+ $v['team_name'] = $team_name_arr[$v['team_id']];
|
|
5322
|
+ //消费记录
|
|
5323
|
+ $consum = CustomerConsum::where('order_id', $v['id'])->first();
|
|
5324
|
+ $v['money'] = $consum->money;
|
|
5325
|
+ $v['phone'] = $consum->phone;
|
|
5326
|
+ //客户名
|
|
5327
|
+ $v['cust_name'] = CustomerInfo::where('phone', $v['phone'])->pluck('name');
|
|
5328
|
+ }
|
|
5329
|
+
|
|
5330
|
+ $teamList = DB::table('teams')->select('id', 'name')->where('type', 1)->get();
|
|
5331
|
+ $teamList = json_decode(json_encode($teamList), true);
|
|
5332
|
+
|
|
5333
|
+ return view('statistics/consumDetail', ['result' =>$result,
|
|
5334
|
+ 'page' =>$page,
|
|
5335
|
+ 'count' =>$count,
|
|
5336
|
+ 'pages' =>$pages,
|
|
5337
|
+ 'teamlist' =>$teamList,
|
|
5338
|
+ 'team_id' =>$team_id,
|
|
5339
|
+ 'stime' =>$stime,
|
|
5340
|
+ 'etime' =>$etime,
|
|
5341
|
+ ]);
|
|
5342
|
+
|
|
5343
|
+ }
|
|
5344
|
+
|
|
5345
|
+ /**
|
|
5346
|
+ * 充值卡消费明细
|
|
5347
|
+ */
|
|
5348
|
+ public function consumDetail_export(Request $request){
|
|
5349
|
+ $team_id = (int)$request->input('team_id');
|
|
5350
|
+ $stime = $request->input('stime');
|
|
5351
|
+ $etime = $request->input('etime');
|
|
5352
|
+
|
|
5353
|
+ $result = Order::select('id', 'team_id', 'createTime', 'admin_name', 'receivedAmount')->where('payment_type', 4)->where(function($query) use($stime, $etime, $team_id){
|
|
5354
|
+ if($team_id>0) $query->where('team_id', $team_id);
|
|
5355
|
+ if($stime) $query->where('createTime', '>=', $stime);
|
|
5356
|
+ if($etime) $query->where('createTime', '<=', $etime. ' 23:59:59');
|
|
5357
|
+ })->where('is_del', 0)->orderBy('createTime', 'desc')->get();
|
|
5358
|
+ $result = json_decode(json_encode($result), true);
|
|
5359
|
+
|
|
5360
|
+ $team_name_arr = Admin::getTeamsName();
|
|
5361
|
+ foreach($result as $k=>&$v){
|
|
5362
|
+ $v['team_name'] = $team_name_arr[$v['team_id']];
|
|
5363
|
+ //消费记录
|
|
5364
|
+ $consum = CustomerConsum::where('order_id', $v['id'])->first();
|
|
5365
|
+ $v['money'] = $consum->money;
|
|
5366
|
+ $v['phone'] = $consum->phone;
|
|
5367
|
+ //客户名
|
|
5368
|
+ $v['cust_name'] = CustomerInfo::where('phone', $v['phone'])->pluck('name');
|
|
5369
|
+ }
|
|
5370
|
+
|
|
5371
|
+ $indexKey = ['team_name','createTime','cust_name','money','admin_name'];
|
|
5372
|
+ $title = ['团队', '下单时间', '客户名称', '消费金额', '销售名称'];
|
|
5373
|
+ $filename = 'xiaofeimingxi_'.date('Y-m-d_H').'.xlsx';
|
|
5374
|
+ return Order::export_excel($result, $filename, $indexKey, $title);
|
|
5375
|
+
|
|
5376
|
+ }
|
|
5377
|
+
|
|
5378
|
+}
|