|
@@ -19,6 +19,7 @@ use App\DistrictRoi15;
|
19
|
19
|
use App\DistrictRoi45;
|
20
|
20
|
use App\DistrictRoi60;
|
21
|
21
|
use App\SalerTargets;
|
|
22
|
+use App\RedisModel as Redis;
|
22
|
23
|
use Illuminate\Http\Request;
|
23
|
24
|
use Illuminate\Support\Facades\DB;
|
24
|
25
|
|
|
@@ -3959,6 +3960,7 @@ class StatisticsController extends Controller
|
3959
|
3960
|
*/
|
3960
|
3961
|
public function districtRoiAllTotal(Request $request){
|
3961
|
3962
|
$only_roi = (int)$request->input('only_roi');
|
|
3963
|
+ $sort = (int)$request->input('sort'); //排序 0:7日降序 1:15日降序 2:30日降序 3:45日降序 4:60日降序
|
3962
|
3964
|
$page = (int)$request->input('page');
|
3963
|
3965
|
$pageSize = 20;
|
3964
|
3966
|
if($page<=0){
|
|
@@ -3969,25 +3971,61 @@ class StatisticsController extends Controller
|
3969
|
3971
|
$city = $request->input('city');
|
3970
|
3972
|
|
3971
|
3973
|
if($city !== null){
|
3972
|
|
- $city = str_replace('市', '', $city);
|
3973
|
|
- }
|
3974
|
|
-
|
3975
|
|
- $count = DistrictRoi7::where(function($query) use($city){
|
3976
|
|
- if($city) $query->where('city', 'like', '%'.$city.'%');
|
3977
|
|
- })->groupBy('city')->get();
|
3978
|
|
-
|
3979
|
|
- $count = count($count);
|
3980
|
|
- if ($count > 1) {
|
3981
|
|
- // 总页数
|
3982
|
|
- $pages = ceil($count/$pageSize);
|
|
3974
|
+ $city = str_replace('市', '', $city); //单独搜城市不走redis 不用排序
|
3983
|
3975
|
}else{
|
3984
|
|
- // 总页数
|
3985
|
|
- $pages = 1;
|
|
3976
|
+ //从redis取数据
|
|
3977
|
+ $redis_key = 'seafood.districtRoiAllTotal';
|
|
3978
|
+ $redisData = Redis::get($redis_key);
|
|
3979
|
+ if(!empty($redisData)){
|
|
3980
|
+ $result = json_decode($redisData, true);
|
|
3981
|
+ switch ($sort) {
|
|
3982
|
+ case '0':
|
|
3983
|
+ $sort_c = 'total_roi';
|
|
3984
|
+ break;
|
|
3985
|
+ case '1':
|
|
3986
|
+ $sort_c = 'total_roi15';
|
|
3987
|
+ break;
|
|
3988
|
+ case '2':
|
|
3989
|
+ $sort_c = 'total_roi30';
|
|
3990
|
+ break;
|
|
3991
|
+ case '3':
|
|
3992
|
+ $sort_c = 'total_roi45';
|
|
3993
|
+ break;
|
|
3994
|
+ case '4':
|
|
3995
|
+ $sort_c = 'total_roi60';
|
|
3996
|
+ break;
|
|
3997
|
+ default:
|
|
3998
|
+ $sort_c = 'total_roi';
|
|
3999
|
+ break;
|
|
4000
|
+ }
|
|
4001
|
+ if($sort>0){
|
|
4002
|
+ $sortArr=array_column($result, $sort_c);
|
|
4003
|
+ array_multisort($sortArr, SORT_DESC, $result);
|
|
4004
|
+ }
|
|
4005
|
+ $count = count($result);
|
|
4006
|
+ $result = array_slice($result, $offset, $pageSize);
|
|
4007
|
+ if ($count > 1) {
|
|
4008
|
+ // 总页数
|
|
4009
|
+ $pages = ceil($count/$pageSize);
|
|
4010
|
+ }else{
|
|
4011
|
+ // 总页数
|
|
4012
|
+ $pages = 1;
|
|
4013
|
+ }
|
|
4014
|
+ return view('statistics/districtRoiAllTotal', ['result' =>$result,
|
|
4015
|
+ 'page' =>$page,
|
|
4016
|
+ 'count' =>$count,
|
|
4017
|
+ 'pages' =>$pages,
|
|
4018
|
+ 'city' =>$city,
|
|
4019
|
+ 'only_roi' =>$only_roi,
|
|
4020
|
+ 'sort' =>$sort,
|
|
4021
|
+ ]);
|
|
4022
|
+
|
|
4023
|
+ }
|
3986
|
4024
|
}
|
3987
|
4025
|
|
3988
|
4026
|
$result = DistrictRoi7::select(DB::raw('city,sum(cost) as cost,sum(gzh_count) as gzh_count,sum(fan_count) as fan_count,sum(new_fan_order_count) as new_fan_order_count,sum(new_fan_order_amount) as new_fan_order_amount,sum(order_count) as order_count,sum(order_amount) as sum_order_amount, sum(order_amount)/sum(cost) as roi'))->where(function($query) use($city){
|
3989
|
|
- if($city) $query->where('city', 'like', '%'.$city.'%');
|
3990
|
|
- })->groupBy('city')->orderBy('roi', 'desc')->offset($offset)->limit($pageSize)->get();
|
|
4027
|
+ if($city) $query->where('city', 'like', $city.'%');
|
|
4028
|
+ })->groupBy('city')->orderBy('roi', 'desc')->get();
|
3991
|
4029
|
|
3992
|
4030
|
$result = json_decode(json_encode($result), true);
|
3993
|
4031
|
foreach($result as $k=>&$v){
|
|
@@ -4056,12 +4094,53 @@ class StatisticsController extends Controller
|
4056
|
4094
|
|
4057
|
4095
|
}
|
4058
|
4096
|
|
|
4097
|
+ $count = count($result);
|
|
4098
|
+ if($city == null){
|
|
4099
|
+ Redis::set($redis_key, json_encode($result));
|
|
4100
|
+ //计算今日剩余时间
|
|
4101
|
+ $_time = strtotime(date('Y-m-d'). '23:59:59') - time();
|
|
4102
|
+ Redis::expire($redis_key, $_time);
|
|
4103
|
+ switch ($sort) {
|
|
4104
|
+ case '0':
|
|
4105
|
+ $sort_c = 'total_roi';
|
|
4106
|
+ break;
|
|
4107
|
+ case '1':
|
|
4108
|
+ $sort_c = 'total_roi15';
|
|
4109
|
+ break;
|
|
4110
|
+ case '2':
|
|
4111
|
+ $sort_c = 'total_roi30';
|
|
4112
|
+ break;
|
|
4113
|
+ case '3':
|
|
4114
|
+ $sort_c = 'total_roi45';
|
|
4115
|
+ break;
|
|
4116
|
+ case '4':
|
|
4117
|
+ $sort_c = 'total_roi60';
|
|
4118
|
+ break;
|
|
4119
|
+ default:
|
|
4120
|
+ $sort_c = 'total_roi';
|
|
4121
|
+ break;
|
|
4122
|
+ }
|
|
4123
|
+ if($sort>0){
|
|
4124
|
+ $sortArr=array_column($result, $sort_c);
|
|
4125
|
+ array_multisort($sortArr, SORT_DESC, $result);
|
|
4126
|
+ }
|
|
4127
|
+ $result = array_slice($result, $offset, $pageSize);
|
|
4128
|
+ }
|
|
4129
|
+
|
|
4130
|
+ if ($count > 1) {
|
|
4131
|
+ // 总页数
|
|
4132
|
+ $pages = ceil($count/$pageSize);
|
|
4133
|
+ }else{
|
|
4134
|
+ // 总页数
|
|
4135
|
+ $pages = 1;
|
|
4136
|
+ }
|
4059
|
4137
|
return view('statistics/districtRoiAllTotal', ['result' =>$result,
|
4060
|
4138
|
'page' =>$page,
|
4061
|
4139
|
'count' =>$count,
|
4062
|
4140
|
'pages' =>$pages,
|
4063
|
4141
|
'city' =>$city,
|
4064
|
4142
|
'only_roi' =>$only_roi,
|
|
4143
|
+ 'sort' =>$sort,
|
4065
|
4144
|
]);
|
4066
|
4145
|
|
4067
|
4146
|
}
|