Răsfoiți Sursa

[智价云] 统计报表时间区间查询规则更新

tangyuanwang 2 luni în urmă
părinte
comite
faea1384e3
1 a modificat fișierele cu 96 adăugiri și 32 ștergeri
  1. 96 32
      app/Http/Controllers/Manager/Statistics/OverviewPanel.php

+ 96 - 32
app/Http/Controllers/Manager/Statistics/OverviewPanel.php

@@ -36,12 +36,20 @@ class OverviewPanel extends Controller
     {
     {
         $request->scene('getViolationLinkCount')->validate();
         $request->scene('getViolationLinkCount')->validate();
         $limit = request('limit', config('page_num', 10));
         $limit = request('limit', config('page_num', 10));
-        $start_time = request('start_time', '');
-        $end_time = request('end_time', '');
+        $yesterdayStart = Carbon::yesterday()->startOfDay()->getTimestamp(); // 昨天开始时间 00:00:00
+        $yesterdayEnd = Carbon::yesterday()->endOfDay()->getTimestamp(); // 昨天结束时间 23:59:59
+        $start_time_string = request('start_time','');
+        $end_time_string = request('end_time','');
+        $start_time = $start_time_string? strtotime($start_time_string.' 00:00:00') : $yesterdayStart;
+        $end_time = $end_time_string? strtotime($end_time_string.' 23:59:59') : $yesterdayEnd;
+        $todayStart = Carbon::today()->startOfDay()->getTimestamp(); // 今天开始时间 00:00:00
+        if($start_time > $todayStart || $end_time > $todayStart) return  json_send(['code' => 'error', 'msg' => '不支持查询今天及以后时间', 'data' => '']);
+        //校验开始时间结束时间是否在同一天
+        if(date('Y-m-d', $start_time)!= date('Y-m-d', $end_time)) return  json_send(['code' => 'error', 'msg' => '开始时间和结束时间必须在同一天', 'data' => '']);
         // 时间条件
         // 时间条件
         $map  = [];
         $map  = [];
-        if ($start_time) $map[] = ['insert_time', '>=', strtotime($start_time)];
-        if ($end_time) $map[]   = ['insert_time', '<=', strtotime($end_time)];
+        if ($start_time) $map[] = ['insert_time', '>=', $start_time];
+        if ($end_time) $map[]   = ['insert_time', '<=', $end_time];
         $result = $violationProductModel->where($map)->where('status', 0)
         $result = $violationProductModel->where($map)->where('status', 0)
             ->select(['company_name', DB::raw('count(link_url) as count')])->distinct('link_url')->orderby('count', 'desc')
             ->select(['company_name', DB::raw('count(link_url) as count')])->distinct('link_url')->orderby('count', 'desc')
             ->groupby('company_name')->paginate($limit);
             ->groupby('company_name')->paginate($limit);
@@ -57,12 +65,20 @@ class OverviewPanel extends Controller
      */
      */
     public function Violation_export(request $request, ViolationProductModel $violationProductModel)
     public function Violation_export(request $request, ViolationProductModel $violationProductModel)
     {
     {
-        $start_time = request('start_time', '');
-        $end_time = request('end_time', '');
+        $yesterdayStart = Carbon::yesterday()->startOfDay()->getTimestamp(); // 昨天开始时间 00:00:00
+        $yesterdayEnd = Carbon::yesterday()->endOfDay()->getTimestamp(); // 昨天结束时间 23:59:59
+        $start_time_string = request('start_time','');
+        $end_time_string = request('end_time','');
+        $start_time = $start_time_string? strtotime($start_time_string.' 00:00:00') : $yesterdayStart;
+        $end_time = $end_time_string? strtotime($end_time_string.' 23:59:59') : $yesterdayEnd;
+        $todayStart = Carbon::today()->startOfDay()->getTimestamp(); // 今天开始时间 00:00:00
+        if($start_time > $todayStart || $end_time > $todayStart) return  json_send(['code' => 'error', 'msg' => '不支持查询今天及以后时间', 'data' => '']);
+        //校验开始时间结束时间是否在同一天
+        if(date('Y-m-d', $start_time)!= date('Y-m-d', $end_time)) return  json_send(['code' => 'error', 'msg' => '开始时间和结束时间必须在同一天', 'data' => '']);
         // 时间条件
         // 时间条件
         $map  = [];
         $map  = [];
-        if ($start_time) $map[] = ['insert_time', '>=', strtotime($start_time)];
-        if ($end_time) $map[]   = ['insert_time', '<=', strtotime($end_time)];
+        if ($start_time) $map[] = ['insert_time', '>=', $start_time];
+        if ($end_time) $map[]   = ['insert_time', '<=', $end_time];
         $result = $violationProductModel->where($map)->where('status', 0)
         $result = $violationProductModel->where($map)->where('status', 0)
             ->select(['company_name', DB::raw('count(link_url) as count')])->distinct('link_url')->orderby('count', 'desc')
             ->select(['company_name', DB::raw('count(link_url) as count')])->distinct('link_url')->orderby('count', 'desc')
             ->groupby('company_name')->get()->toarray();
             ->groupby('company_name')->get()->toarray();
@@ -135,12 +151,20 @@ class OverviewPanel extends Controller
     {
     {
         $request->scene('get_violation_company_count')->validate();
         $request->scene('get_violation_company_count')->validate();
         $limit = request('limit', config('page_num', 10));
         $limit = request('limit', config('page_num', 10));
-        $start_time = request('start_time', '');
-        $end_time = request('end_time', '');
+        $yesterdayStart = Carbon::now()->startOfMonth()->getTimestamp(); // 本月第一天 00:00:00
+        $yesterdayEnd = Carbon::yesterday()->endOfDay()->getTimestamp(); // 昨天结束时间 23:59:59
+        $start_time_string = request('start_time','');
+        $end_time_string = request('end_time','');
+        $start_time = $start_time_string? strtotime($start_time_string.' 00:00:00') : $yesterdayStart;
+        $end_time = $end_time_string? strtotime($end_time_string.' 23:59:59') : $yesterdayEnd;
+        $todayStart = Carbon::today()->startOfDay()->getTimestamp(); // 今天开始时间 00:00:00
+        if($start_time > $todayStart || $end_time > $todayStart) return  json_send(['code' => 'error', 'msg' => '不支持查询今天及以后时间', 'data' => '']);
+        //校验开始时间结束时间是否在同一个月
+        if(date('Y-m', $start_time)!= date('Y-m', $end_time)) return  json_send(['code' => 'error', 'msg' => '开始时间和结束时间必须在同一个月', 'data' => '']);
         // 时间条件
         // 时间条件
         $map  = [];
         $map  = [];
-        if ($start_time) $map[] = ['insert_time', '>=', strtotime($start_time)];
-        if ($end_time) $map[]   = ['insert_time', '<=', strtotime($end_time)];
+        if ($start_time) $map[] = ['insert_time', '>=', $start_time];
+        if ($end_time) $map[]   = ['insert_time', '<=', $end_time];
         $result = $violationProductModel->where($map)->where('status', 0)
         $result = $violationProductModel->where($map)->where('status', 0)
             ->select(['company_name', DB::raw('count(company_name) as count')])->distinct('company_name')->orderby('count', 'desc')
             ->select(['company_name', DB::raw('count(company_name) as count')])->distinct('company_name')->orderby('count', 'desc')
             ->groupby('company_name')->paginate($limit);
             ->groupby('company_name')->paginate($limit);
@@ -156,12 +180,20 @@ class OverviewPanel extends Controller
      */
      */
     public function violation_company_export(request $request, ViolationProductModel $violationProductModel)
     public function violation_company_export(request $request, ViolationProductModel $violationProductModel)
     {
     {
-        $start_time = request('start_time', '');
-        $end_time = request('end_time', '');
+        $yesterdayStart = Carbon::now()->startOfMonth()->getTimestamp(); // 本月第一天 00:00:00
+        $yesterdayEnd = Carbon::yesterday()->endOfDay()->getTimestamp(); // 昨天结束时间 23:59:59
+        $start_time_string = request('start_time','');
+        $end_time_string = request('end_time','');
+        $start_time = $start_time_string? strtotime($start_time_string.' 00:00:00') : $yesterdayStart;
+        $end_time = $end_time_string? strtotime($end_time_string.' 23:59:59') : $yesterdayEnd;
+        $todayStart = Carbon::today()->startOfDay()->getTimestamp(); // 今天开始时间 00:00:00
+        if($start_time > $todayStart || $end_time > $todayStart) return  json_send(['code' => 'error', 'msg' => '不支持查询今天及以后时间', 'data' => '']);
+        //校验开始时间结束时间是否在同一个月
+        if(date('Y-m', $start_time)!= date('Y-m', $end_time)) return  json_send(['code' => 'error', 'msg' => '开始时间和结束时间必须在同一个月', 'data' => '']);
         // 时间条件
         // 时间条件
         $map  = [];
         $map  = [];
-        if ($start_time) $map[] = ['insert_time', '>=', strtotime($start_time)];
-        if ($end_time) $map[]   = ['insert_time', '<=', strtotime($end_time)];
+        if ($start_time) $map[] = ['insert_time', '>=', $start_time];
+        if ($end_time) $map[]   = ['insert_time', '<=', $end_time];
         $result = $violationProductModel->where($map)->where('status', 0)
         $result = $violationProductModel->where($map)->where('status', 0)
             ->select(['company_name', DB::raw('count(company_name) as count')])->distinct('company_name')->orderby('count', 'desc')
             ->select(['company_name', DB::raw('count(company_name) as count')])->distinct('company_name')->orderby('count', 'desc')
             ->groupby('company_name')->get()->toarray();
             ->groupby('company_name')->get()->toarray();
@@ -235,12 +267,20 @@ class OverviewPanel extends Controller
     {
     {
         $request->scene('getLowPriceLinkCount')->validate();
         $request->scene('getLowPriceLinkCount')->validate();
         $limit = request('limit', config('page_num', 10));
         $limit = request('limit', config('page_num', 10));
-        $start_time = request('start_time', '');
-        $end_time = request('end_time', '');
+        $yesterdayStart = Carbon::yesterday()->startOfDay()->getTimestamp(); // 昨天开始时间 00:00:00
+        $yesterdayEnd = Carbon::yesterday()->endOfDay()->getTimestamp(); // 昨天结束时间 23:59:59
+        $start_time_string = request('start_time','');
+        $end_time_string = request('end_time','');
+        $start_time = $start_time_string? strtotime($start_time_string.' 00:00:00') : $yesterdayStart;
+        $end_time = $end_time_string? strtotime($end_time_string.' 23:59:59') : $yesterdayEnd;
+        $todayStart = Carbon::today()->startOfDay()->getTimestamp(); // 今天开始时间 00:00:00
+        if($start_time > $todayStart || $end_time > $todayStart) return  json_send(['code' => 'error', 'msg' => '不支持查询今天及以后时间', 'data' => '']);
+        //校验开始时间结束时间是否在同一天
+        if(date('Y-m-d', $start_time)!= date('Y-m-d', $end_time)) return  json_send(['code' => 'error', 'msg' => '开始时间和结束时间必须在同一天', 'data' => '']);
         // 时间条件
         // 时间条件
         $map  = [];
         $map  = [];
-        if ($start_time) $map[] = ['insert_time', '>=', strtotime($start_time)];
-        if ($end_time) $map[]   = ['insert_time', '<=', strtotime($end_time)];
+        if ($start_time) $map[] = ['insert_time', '>=', $start_time];
+        if ($end_time) $map[]   = ['insert_time', '<=', $end_time];
         $result = $LowPriceGoodsModel->where($map)->where('status', 0)
         $result = $LowPriceGoodsModel->where($map)->where('status', 0)
             ->select(['company_name', DB::raw('count(link_url) as count')])->distinct('link_url')->orderby('count', 'desc')
             ->select(['company_name', DB::raw('count(link_url) as count')])->distinct('link_url')->orderby('count', 'desc')
             ->groupby('company_name')->paginate($limit);
             ->groupby('company_name')->paginate($limit);
@@ -256,12 +296,20 @@ class OverviewPanel extends Controller
      */
      */
     public function low_price_export(request $request, LowPriceGoodsModel $LowPriceGoodsModel)
     public function low_price_export(request $request, LowPriceGoodsModel $LowPriceGoodsModel)
     {
     {
-        $start_time = request('start_time', '');
-        $end_time = request('end_time', '');
+        $yesterdayStart = Carbon::yesterday()->startOfDay()->getTimestamp(); // 昨天开始时间 00:00:00
+        $yesterdayEnd = Carbon::yesterday()->endOfDay()->getTimestamp(); // 昨天结束时间 23:59:59
+        $start_time_string = request('start_time','');
+        $end_time_string = request('end_time','');
+        $start_time = $start_time_string? strtotime($start_time_string.' 00:00:00') : $yesterdayStart;
+        $end_time = $end_time_string? strtotime($end_time_string.' 23:59:59') : $yesterdayEnd;
+        $todayStart = Carbon::today()->startOfDay()->getTimestamp(); // 今天开始时间 00:00:00
+        if($start_time > $todayStart || $end_time > $todayStart) return  json_send(['code' => 'error', 'msg' => '不支持查询今天及以后时间', 'data' => '']);
+        //校验开始时间结束时间是否在同一天
+        if(date('Y-m-d', $start_time)!= date('Y-m-d', $end_time)) return  json_send(['code' => 'error', 'msg' => '开始时间和结束时间必须在同一天', 'data' => '']);
         // 时间条件
         // 时间条件
         $map  = [];
         $map  = [];
-        if ($start_time) $map[] = ['insert_time', '>=', strtotime($start_time)];
-        if ($end_time) $map[]   = ['insert_time', '<=', strtotime($end_time)];
+        if ($start_time) $map[] = ['insert_time', '>=', $start_time];
+        if ($end_time) $map[]   = ['insert_time', '<=', $end_time];
         $result = $LowPriceGoodsModel->where($map)->where('status', 0)
         $result = $LowPriceGoodsModel->where($map)->where('status', 0)
             ->select(['company_name', DB::raw('count(link_url) as count')])->distinct('link_url')->orderby('count', 'desc')
             ->select(['company_name', DB::raw('count(link_url) as count')])->distinct('link_url')->orderby('count', 'desc')
             ->groupby('company_name')->get()->toarray();
             ->groupby('company_name')->get()->toarray();
@@ -334,12 +382,20 @@ class OverviewPanel extends Controller
     {
     {
         $request->scene('getLowPriceCompanyCount')->validate();
         $request->scene('getLowPriceCompanyCount')->validate();
         $limit = request('limit', config('page_num', 10));
         $limit = request('limit', config('page_num', 10));
-        $start_time = request('start_time', '');
-        $end_time = request('end_time', '');
+        $yesterdayStart = Carbon::now()->startOfMonth()->getTimestamp(); // 本月第一天 00:00:00
+        $yesterdayEnd = Carbon::yesterday()->endOfDay()->getTimestamp(); // 昨天结束时间 23:59:59
+        $start_time_string = request('start_time','');
+        $end_time_string = request('end_time','');
+        $start_time = $start_time_string? strtotime($start_time_string.' 00:00:00') : $yesterdayStart;
+        $end_time = $end_time_string? strtotime($end_time_string.' 23:59:59') : $yesterdayEnd;
+        $todayStart = Carbon::today()->startOfDay()->getTimestamp(); // 今天开始时间 00:00:00
+        if($start_time > $todayStart || $end_time > $todayStart) return  json_send(['code' => 'error', 'msg' => '不支持查询今天及以后时间', 'data' => '']);
+        //校验开始时间结束时间是否在同一个月
+        if(date('Y-m', $start_time)!= date('Y-m', $end_time)) return  json_send(['code' => 'error', 'msg' => '开始时间和结束时间必须在同一个月', 'data' => '']);
         // 时间条件
         // 时间条件
         $map  = [];
         $map  = [];
-        if ($start_time) $map[] = ['insert_time', '>=', strtotime($start_time)];
-        if ($end_time) $map[]   = ['insert_time', '<=', strtotime($end_time)];
+        if ($start_time) $map[] = ['insert_time', '>=', $start_time];
+        if ($end_time) $map[]   = ['insert_time', '<=', $end_time];
         $result = $LowPriceGoodsModel->where($map)->where('status', 0)
         $result = $LowPriceGoodsModel->where($map)->where('status', 0)
             ->select(['company_name', DB::raw('count(company_name) as count')])->distinct('company_name')->orderby('count', 'desc')
             ->select(['company_name', DB::raw('count(company_name) as count')])->distinct('company_name')->orderby('count', 'desc')
             ->groupby('company_name')->paginate($limit);
             ->groupby('company_name')->paginate($limit);
@@ -355,12 +411,20 @@ class OverviewPanel extends Controller
      */
      */
     public function low_price_company_export(request $request, LowPriceGoodsModel $LowPriceGoodsModel)
     public function low_price_company_export(request $request, LowPriceGoodsModel $LowPriceGoodsModel)
     {
     {
-        $start_time = request('start_time', '');
-        $end_time = request('end_time', '');
+        $yesterdayStart = Carbon::now()->startOfMonth()->getTimestamp(); // 本月第一天 00:00:00
+        $yesterdayEnd = Carbon::yesterday()->endOfDay()->getTimestamp(); // 昨天结束时间 23:59:59
+        $start_time_string = request('start_time','');
+        $end_time_string = request('end_time','');
+        $start_time = $start_time_string? strtotime($start_time_string.' 00:00:00') : $yesterdayStart;
+        $end_time = $end_time_string? strtotime($end_time_string.' 23:59:59') : $yesterdayEnd;
+        $todayStart = Carbon::today()->startOfDay()->getTimestamp(); // 今天开始时间 00:00:00
+        if($start_time > $todayStart || $end_time > $todayStart) return  json_send(['code' => 'error', 'msg' => '不支持查询今天及以后时间', 'data' => '']);
+        //校验开始时间结束时间是否在同一个月
+        if(date('Y-m', $start_time)!= date('Y-m', $end_time)) return  json_send(['code' => 'error', 'msg' => '开始时间和结束时间必须在同一个月', 'data' => '']);
         // 时间条件
         // 时间条件
         $map  = [];
         $map  = [];
-        if ($start_time) $map[] = ['insert_time', '>=', strtotime($start_time)];
-        if ($end_time) $map[]   = ['insert_time', '<=', strtotime($end_time)];
+        if ($start_time) $map[] = ['insert_time', '>=', $start_time];
+        if ($end_time) $map[]   = ['insert_time', '<=', $end_time];
         $result = $LowPriceGoodsModel->where($map)->where('status', 0)
         $result = $LowPriceGoodsModel->where($map)->where('status', 0)
             ->select(['company_name', DB::raw('count(company_name) as count')])->distinct('company_name')->orderby('count', 'desc')
             ->select(['company_name', DB::raw('count(company_name) as count')])->distinct('company_name')->orderby('count', 'desc')
             ->groupby('company_name')->get()->toarray();
             ->groupby('company_name')->get()->toarray();