Преглед изворни кода

[智价云] 省份城市更新

tangyuanwang пре 1 месец
родитељ
комит
90230c3894

+ 192 - 0
app/Http/Controllers/Manager/Statistics/BasicPanel.php

@@ -159,6 +159,104 @@ class BasicPanel extends Controller
         return  json_send(['code' => 'success', 'msg' => '获取成功', 'data' => $result]);
     }
 
+    /**
+     * 禁止挂网省份统计
+     * @author 唐远望
+     * @version   1.0
+     * @date      2026-02-10
+     * 
+     */
+    public function get_violation_province_count(request $request, ViolationProductModel $violationProductModel)
+    {
+        $request->scene('get_violation_province_count')->validate();
+        $admin_company_id = request('admin_company_id', '0');
+        $company_id = request('access_token.company_id', '0');
+        $is_admin = request('access_token.is_admin', '0'); //是否管理员操作 0=是1=否
+        $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' => '']);
+        // 时间条件
+        $map  = [];
+        if ($start_time) $map[] = ['insert_time', '>=', $start_time];
+        if ($end_time) $map[]   = ['insert_time', '<=', $end_time];
+        // 权限判断
+        if ($is_admin != 1 && $company_id != 0) {
+            $map[] = ['company_id', '=', $company_id];
+        } else {
+            $map[] = ['company_id', '=', $admin_company_id];
+        }
+        // 禁止挂网省份统计
+        // 获取省份字段并按数量分组统计
+        try {
+            // 假设 ViolationProductModel 中有 province 字段,表示省份信息
+            // 查询指定时间范围内的数据,并按 province 分组统计数量
+            $result = ViolationProductModel::where($map)->where('status', 0)
+                ->select(['province_name', DB::raw('count(province_name) as count')])
+                ->groupby('province_name')
+                ->orderby('count', 'desc')
+                ->get();
+            return json_send(['code' => 'success', 'msg' => '获取成功', 'data' => $result]);
+        } catch (\Exception $e) {
+            return json_send(['code' => 'error', 'msg' => '获取失败:' . $e->getMessage()]);
+        }
+    }
+
+    /**
+     * 禁止挂网城市统计
+     * @author 唐远望
+     * @version   1.0
+     * @date      2026-02-10
+     * 
+     */
+    public function get_violation_city_count(request $request, ViolationProductModel $violationProductModel)
+    {
+        $request->scene('get_violation_city_count')->validate();
+        $admin_company_id = request('admin_company_id', '0');
+        $company_id = request('access_token.company_id', '0');
+        $is_admin = request('access_token.is_admin', '0'); //是否管理员操作 0=是1=否
+        $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' => '']);
+        // 时间条件
+        $map  = [];
+        if ($start_time) $map[] = ['insert_time', '>=', $start_time];
+        if ($end_time) $map[]   = ['insert_time', '<=', $end_time];
+        // 权限判断
+        if ($is_admin != 1 && $company_id != 0) {
+            $map[] = ['company_id', '=', $company_id];
+        } else {
+            $map[] = ['company_id', '=', $admin_company_id];
+        }
+        // 禁止挂网城市统计
+        // 获取城市字段并按数量分组统计
+        try {
+            // 假设 ViolationProductModel 中有 city 字段,表示城市信息
+            // 查询指定时间范围内的数据,并按 city 分组统计数量
+            $result = ViolationProductModel::where($map)->where('status', 0)
+                ->select(['city_name', DB::raw('count(city_name) as count')])
+                ->groupby('city_name')
+                ->orderby('count', 'desc')
+                ->get();
+            return json_send(['code' => 'success', 'msg' => '获取成功', 'data' => $result]);
+        } catch (\Exception $e) {
+            return json_send(['code' => 'error', 'msg' => '获取失败:' . $e->getMessage()]);
+        }
+    }
+
+
+
+
+
     /**
      * 禁止挂网公司数统计
      * @author 唐远望
@@ -274,4 +372,98 @@ class BasicPanel extends Controller
             ->paginate($limit);
         return  json_send(['code' => 'success', 'msg' => '获取成功', 'data' => $result]);
     }
+
+    /**
+     * 低价挂网省份统计
+     * @author 唐远望
+     * @version   1.0
+     * @date      2026-02-10
+     * 
+     */
+    public function get_low_price_province_count(request $request, LowPriceGoodsModel $LowPriceGoodsModel)
+    {
+        $request->scene('get_low_price_province_count')->validate();
+        $admin_company_id = request('admin_company_id', '0');
+        $company_id = request('access_token.company_id', '0');
+        $is_admin = request('access_token.is_admin', '0'); //是否管理员操作 0=是1=否
+        $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' => '']);
+        // 时间条件
+        $map  = [];
+        if ($start_time) $map[] = ['insert_time', '>=', $start_time];
+        if ($end_time) $map[]   = ['insert_time', '<=', $end_time];
+        // 权限判断
+        if ($is_admin != 1 && $company_id != 0) {
+            $map[] = ['company_id', '=', $company_id];
+        } else {
+            $map[] = ['company_id', '=', $admin_company_id];
+        }
+        // 禁止挂网省份统计
+        // 获取省份字段并按数量分组统计
+        try {
+            // 假设 LowPriceGoodsModel 中有 province 字段,表示省份信息
+            // 查询指定时间范围内的数据,并按 province 分组统计数量
+            $result = LowPriceGoodsModel::where($map)->where('status', 0)
+                ->select(['province_name', DB::raw('count(province_name) as count')])
+                ->groupby('province_name')
+                ->orderby('count', 'desc')
+                ->get();
+            return json_send(['code' => 'success', 'msg' => '获取成功', 'data' => $result]);
+        } catch (\Exception $e) {
+            return json_send(['code' => 'error', 'msg' => '获取失败:' . $e->getMessage()]);
+        }
+    }
+
+    /**
+     * 低价挂网城市统计
+     * @author 唐远望
+     * @version   1.0
+     * @date      2026-02-10
+     * 
+     */
+    public function get_low_price_city_count(request $request, LowPriceGoodsModel $LowPriceGoodsModel)
+    {
+        $request->scene('get_low_price_city_count')->validate();
+        $admin_company_id = request('admin_company_id', '0');
+        $company_id = request('access_token.company_id', '0');
+        $is_admin = request('access_token.is_admin', '0'); //是否管理员操作 0=是1=否
+        $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' => '']);
+        // 时间条件
+        $map  = [];
+        if ($start_time) $map[] = ['insert_time', '>=', $start_time];
+        if ($end_time) $map[]   = ['insert_time', '<=', $end_time];
+        // 权限判断
+        if ($is_admin != 1 && $company_id != 0) {
+            $map[] = ['company_id', '=', $company_id];
+        } else {
+            $map[] = ['company_id', '=', $admin_company_id];
+        }
+        // 禁止挂网城市统计
+        // 获取城市字段并按数量分组统计
+        try {
+            // 假设 LowPriceGoodsModel 中有 city 字段,表示城市信息
+            // 查询指定时间范围内的数据,并按 city 分组统计数量
+            $result = LowPriceGoodsModel::where($map)->where('status', 0)
+                ->select(['city_name', DB::raw('count(city_name) as count')])
+                ->groupby('city_name')
+                ->orderby('count', 'desc')
+                ->get();
+            return json_send(['code' => 'success', 'msg' => '获取成功', 'data' => $result]);
+        } catch (\Exception $e) {
+            return json_send(['code' => 'error', 'msg' => '获取失败:' . $e->getMessage()]);
+        }
+    }
 }

+ 4 - 0
app/Http/Requests/Manager/Statistics/BasicPanel.php

@@ -50,6 +50,10 @@ class BasicPanel extends BaseRequest
         'get_violation_company_count' => ['page','limit'],
         'get_low_price_product_count' => ['page','limit'],
         'get_low_price_company_count' => ['page','limit'],
+        'get_violation_province_count' => [],
+        'get_violation_city_count' => [],
+        'get_low_price_province_count' => [],
+        'get_low_price_city_count' => [],
     ];
 
     /**

+ 9 - 1
routes/manager.php

@@ -334,7 +334,15 @@ Route::any('statistics/basic_panel/get_online_goods_count', [App\Http\Controller
 Route::any('statistics/basic_panel/get_violation_product_count', [App\Http\Controllers\Manager\Statistics\BasicPanel::class, 'get_violation_product_count']);
 //基础报表统计-禁止挂网公司数统计排行
 Route::any('statistics/basic_panel/get_violation_company_count', [App\Http\Controllers\Manager\Statistics\BasicPanel::class, 'get_violation_company_count']);
+//基础报表统计-禁止挂网省份统计排行
+Route::any('statistics/basic_panel/get_violation_province_count', [App\Http\Controllers\Manager\Statistics\BasicPanel::class, 'get_violation_province_count']);
+//基础报表统计-禁止挂网城市统计排行
+Route::any('statistics/basic_panel/get_violation_city_count', [App\Http\Controllers\Manager\Statistics\BasicPanel::class, 'get_violation_city_count']);
 //基础报表统计-低价违规商品数统计排行
 Route::any('statistics/basic_panel/get_low_price_product_count', [App\Http\Controllers\Manager\Statistics\BasicPanel::class, 'get_low_price_product_count']);
 //基础报表统计-低价违规公司数统计排行
-Route::any('statistics/basic_panel/get_low_price_company_count', [App\Http\Controllers\Manager\Statistics\BasicPanel::class, 'get_low_price_company_count']);
+Route::any('statistics/basic_panel/get_low_price_company_count', [App\Http\Controllers\Manager\Statistics\BasicPanel::class, 'get_low_price_company_count']);
+//基础报表统计-低价违规省份统计排行
+Route::any('statistics/basic_panel/get_low_price_province_count', [App\Http\Controllers\Manager\Statistics\BasicPanel::class, 'get_low_price_province_count']);
+//基础报表统计-低价违规城市统计排行
+Route::any('statistics/basic_panel/get_low_price_city_count', [App\Http\Controllers\Manager\Statistics\BasicPanel::class, 'get_low_price_city_count']);