Explorar o código

[智价云] 统计更新

tangyuanwang hai 1 mes
pai
achega
db0e2b73a4
Modificáronse 1 ficheiros con 109 adicións e 9 borrados
  1. 109 9
      app/Http/Controllers/Manager/Statistics/BasicPanel.php

+ 109 - 9
app/Http/Controllers/Manager/Statistics/BasicPanel.php

@@ -34,6 +34,7 @@ class BasicPanel extends Controller
         $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=否
+        $product_name = request('product_name', ''); //商品名称
         $yesterdayStart = Carbon::yesterday()->startOfDay()->getTimestamp(); // 昨天开始时间 00:00:00
         $yesterdayEnd = Carbon::yesterday()->endOfDay()->getTimestamp(); // 昨天结束时间 23:59:59
         $start_time_string = request('start_time', '');
@@ -47,6 +48,7 @@ class BasicPanel extends Controller
         $map  = [];
         if ($start_time) $map[] = ['insert_time', '>=', $start_time];
         if ($end_time) $map[]   = ['insert_time', '<=', $end_time];
+        if ($product_name) $map[] = ['product_name', 'like', '%' . $product_name . '%'];
 
         // 统计挂网商品数量=低价挂网商品数量(去重)+ 禁止挂网商品数量(去重)
         $lowPriceGoodsModel = $lowPriceGoodsModel->query();
@@ -111,9 +113,11 @@ class BasicPanel extends Controller
     {
         $request->scene('get_violation_product_count')->validate();
         $admin_company_id = request('admin_company_id', '0');
+        $company_id = request('access_token.company_id', '0');
+
         //终端类型B端、C端、OTO
         $terminal_type = request('terminal_type', '');
-        $company_id = request('access_token.company_id', '0');
+        $product_name = request('product_name', ''); //商品名称
         $is_admin = request('access_token.is_admin', '0'); //是否管理员操作 0=是1=否
         $limit = request('limit', config('page_num', 10));
         $yesterdayStart = Carbon::yesterday()->startOfDay()->getTimestamp(); // 昨天开始时间 00:00:00
@@ -134,6 +138,7 @@ class BasicPanel extends Controller
         } else {
             $map[] = ['company_id', '=', $admin_company_id];
         }
+        if ($product_name) $map[] = ['product_name', 'like', '%' . $product_name . '%'];
         $violationProductModel = $violationProductModel->query();
         if ($terminal_type) {
             $platform = [];
@@ -172,6 +177,9 @@ class BasicPanel extends Controller
         $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=否
+        //终端类型B端、C端、OTO
+        $terminal_type = request('terminal_type', '');
+        $product_name = request('product_name', ''); //商品名称
         $yesterdayStart = Carbon::yesterday()->startOfDay()->getTimestamp(); // 昨天开始时间 00:00:00
         $yesterdayEnd = Carbon::yesterday()->endOfDay()->getTimestamp(); // 昨天结束时间 23:59:59
         $start_time_string = request('start_time', '');
@@ -190,12 +198,31 @@ class BasicPanel extends Controller
         } else {
             $map[] = ['company_id', '=', $admin_company_id];
         }
+        if ($product_name) $map[] = ['product_name', 'like', '%' . $product_name . '%'];
         // 禁止挂网省份统计
-        // 获取省份字段并按数量分组统计
+        $violationProductModel = $violationProductModel->query();
+        if ($terminal_type) {
+            $platform = [];
+            switch ($terminal_type) {
+                case '1': //B端:药师帮、1药城、药久久、药易购、药帮忙、熊猫药药
+                    $platform = ['5', '6', '7', '8', '9', '10']; //平台0=全部,1=淘宝,2=京东,3=拼多多,4=美团,5=药师帮,6=1药城,7=药久久,8=药易购,9=药帮忙,10=熊猫药药
+                    break;
+                case '2': //C端:美团、拼多多、天猫、京东
+                    $platform = ['1', '2', '3', '4']; //平台0=全部,1=淘宝,2=京东,3=拼多多,4=美团,5=药师帮,6=1药城,7=药久久,8=药易购,9=药帮忙,10=熊猫药药
+                    break;
+                case '3': //OTO:美团买药、淘宝闪送、京东秒送
+                    $platform = [];
+                    break;
+                default:
+                    # code...
+                    break;
+            }
+            $violationProductModel = $violationProductModel->whereIn('platform_id', $platform);
+        }
         try {
             // 假设 ViolationProductModel 中有 province 字段,表示省份信息
             // 查询指定时间范围内的数据,并按 province 分组统计数量
-            $result = ViolationProductModel::where($map)->where('status', 0)
+            $result = $violationProductModel->where($map)->where('status', 0)
                 ->select(['province_name', DB::raw('count(province_name) as count')])
                 ->groupby('province_name')
                 ->orderby('count', 'desc')
@@ -219,6 +246,9 @@ class BasicPanel extends Controller
         $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=否
+        //终端类型B端、C端、OTO
+        $terminal_type = request('terminal_type', '');
+        $product_name = request('product_name', ''); //商品名称
         $yesterdayStart = Carbon::yesterday()->startOfDay()->getTimestamp(); // 昨天开始时间 00:00:00
         $yesterdayEnd = Carbon::yesterday()->endOfDay()->getTimestamp(); // 昨天结束时间 23:59:59
         $start_time_string = request('start_time', '');
@@ -237,12 +267,31 @@ class BasicPanel extends Controller
         } else {
             $map[] = ['company_id', '=', $admin_company_id];
         }
+        if ($product_name) $map[] = ['product_name', 'like', '%' . $product_name . '%'];
         // 禁止挂网城市统计
-        // 获取城市字段并按数量分组统计
+        $violationProductModel = $violationProductModel->query();
+        if ($terminal_type) {
+            $platform = [];
+            switch ($terminal_type) {
+                case '1': //B端:药师帮、1药城、药久久、药易购、药帮忙、熊猫药药
+                    $platform = ['5', '6', '7', '8', '9', '10']; //平台0=全部,1=淘宝,2=京东,3=拼多多,4=美团,5=药师帮,6=1药城,7=药久久,8=药易购,9=药帮忙,10=熊猫药药
+                    break;
+                case '2': //C端:美团、拼多多、天猫、京东
+                    $platform = ['1', '2', '3', '4']; //平台0=全部,1=淘宝,2=京东,3=拼多多,4=美团,5=药师帮,6=1药城,7=药久久,8=药易购,9=药帮忙,10=熊猫药药
+                    break;
+                case '3': //OTO:美团买药、淘宝闪送、京东秒送
+                    $platform = [];
+                    break;
+                default:
+                    # code...
+                    break;
+            }
+            $violationProductModel = $violationProductModel->whereIn('platform_id', $platform);
+        }
         try {
             // 假设 ViolationProductModel 中有 city 字段,表示城市信息
             // 查询指定时间范围内的数据,并按 city 分组统计数量
-            $result = ViolationProductModel::where($map)->where('status', 0)
+            $result = $violationProductModel->where($map)->where('status', 0)
                 ->select(['city_name', DB::raw('count(city_name) as count')])
                 ->groupby('city_name')
                 ->orderby('count', 'desc')
@@ -271,6 +320,7 @@ class BasicPanel extends Controller
         $company_id = request('access_token.company_id', '0');
         $is_admin = request('access_token.is_admin', '0'); //是否管理员操作 0=是1=否
         $limit = request('limit', config('page_num', 10));
+        $product_name = request('product_name', ''); //商品名称
         $yesterdayStart = Carbon::yesterday()->startOfDay()->getTimestamp(); // 昨天开始时间 00:00:00
         $yesterdayEnd = Carbon::yesterday()->endOfDay()->getTimestamp(); // 昨天结束时间 23:59:59
         $start_time_string = request('start_time', '');
@@ -283,6 +333,7 @@ class BasicPanel extends Controller
         $map  = [];
         if ($start_time) $map[] = ['insert_time', '>=', $start_time];
         if ($end_time) $map[]   = ['insert_time', '<=', $end_time];
+        if ($product_name) $map[] = ['product_name', 'like', '%' . $product_name . '%'];
         // 权限判断
         if ($is_admin != 1 && $company_id != 0) {
             $map[] = ['company_id', '=', $company_id];
@@ -311,6 +362,7 @@ class BasicPanel extends Controller
         $company_id = request('access_token.company_id', '0');
         $is_admin = request('access_token.is_admin', '0'); //是否管理员操作 0=是1=否
         $limit = request('limit', config('page_num', 10));
+        $product_name = request('product_name', ''); //商品名称
         $yesterdayStart = Carbon::yesterday()->startOfDay()->getTimestamp(); // 昨天开始时间 00:00:00
         $yesterdayEnd = Carbon::yesterday()->endOfDay()->getTimestamp(); // 昨天结束时间 23:59:59
         $start_time_string = request('start_time', '');
@@ -329,6 +381,7 @@ class BasicPanel extends Controller
         } else {
             $map[] = ['company_id', '=', $admin_company_id];
         }
+        if ($product_name) $map[] = ['product_name', 'like', '%' . $product_name . '%'];
         $result = $LowPriceGoodsModel->where($map)->where('status', 0)
             ->select(['product_name', DB::raw('count(product_name) as count')])->distinct('product_name')->orderby('count', 'desc')
             ->groupby('product_name')->paginate($limit);
@@ -349,6 +402,7 @@ class BasicPanel extends Controller
         $company_id = request('access_token.company_id', '0');
         $is_admin = request('access_token.is_admin', '0'); //是否管理员操作 0=是1=否
         $limit = request('limit', config('page_num', 10));
+        $product_name = request('product_name', ''); //商品名称
         $yesterdayStart = Carbon::yesterday()->startOfDay()->getTimestamp(); // 昨天开始时间 00:00:00
         $yesterdayEnd = Carbon::yesterday()->endOfDay()->getTimestamp(); // 昨天结束时间 23:59:59
         $start_time_string = request('start_time', '');
@@ -367,6 +421,7 @@ class BasicPanel extends Controller
         } else {
             $map[] = ['company_id', '=', $admin_company_id];
         }
+        if ($product_name) $map[] = ['product_name', 'like', '%' . $product_name . '%'];
         $result = $LowPriceGoodsModel->where($map)->where('status', 0)
             ->select(['company_name', DB::raw('count(company_name) as count')])->groupby('company_name')->orderby('count', 'desc')
             ->paginate($limit);
@@ -386,6 +441,9 @@ class BasicPanel extends Controller
         $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=否
+        //终端类型B端、C端、OTO
+        $terminal_type = request('terminal_type', '');
+        $product_name = request('product_name', ''); //商品名称
         $yesterdayStart = Carbon::yesterday()->startOfDay()->getTimestamp(); // 昨天开始时间 00:00:00
         $yesterdayEnd = Carbon::yesterday()->endOfDay()->getTimestamp(); // 昨天结束时间 23:59:59
         $start_time_string = request('start_time', '');
@@ -404,12 +462,31 @@ class BasicPanel extends Controller
         } else {
             $map[] = ['company_id', '=', $admin_company_id];
         }
+        if ($product_name) $map[] = ['product_name', 'like', '%' . $product_name . '%'];
         // 禁止挂网省份统计
-        // 获取省份字段并按数量分组统计
+        $LowPriceGoodsModel = $LowPriceGoodsModel->query();
+        if ($terminal_type) {
+            $platform = [];
+            switch ($terminal_type) {
+                case '1': //B端:药师帮、1药城、药久久、药易购、药帮忙、熊猫药药
+                    $platform = ['5', '6', '7', '8', '9', '10']; //平台0=全部,1=淘宝,2=京东,3=拼多多,4=美团,5=药师帮,6=1药城,7=药久久,8=药易购,9=药帮忙,10=熊猫药药
+                    break;
+                case '2': //C端:美团、拼多多、天猫、京东
+                    $platform = ['1', '2', '3', '4']; //平台0=全部,1=淘宝,2=京东,3=拼多多,4=美团,5=药师帮,6=1药城,7=药久久,8=药易购,9=药帮忙,10=熊猫药药
+                    break;
+                case '3': //OTO:美团买药、淘宝闪送、京东秒送
+                    $platform = [];
+                    break;
+                default:
+                    # code...
+                    break;
+            }
+            $LowPriceGoodsModel = $LowPriceGoodsModel->whereIn('platform_id', $platform);
+        }
         try {
             // 假设 LowPriceGoodsModel 中有 province 字段,表示省份信息
             // 查询指定时间范围内的数据,并按 province 分组统计数量
-            $result = LowPriceGoodsModel::where($map)->where('status', 0)
+            $result = $LowPriceGoodsModel->where($map)->where('status', 0)
                 ->select(['province_name', DB::raw('count(province_name) as count')])
                 ->groupby('province_name')
                 ->orderby('count', 'desc')
@@ -433,6 +510,10 @@ class BasicPanel extends Controller
         $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=否
+
+        //终端类型B端、C端、OTO
+        $terminal_type = request('terminal_type', '');
+        $product_name = request('product_name', ''); //商品名称
         $yesterdayStart = Carbon::yesterday()->startOfDay()->getTimestamp(); // 昨天开始时间 00:00:00
         $yesterdayEnd = Carbon::yesterday()->endOfDay()->getTimestamp(); // 昨天结束时间 23:59:59
         $start_time_string = request('start_time', '');
@@ -451,12 +532,31 @@ class BasicPanel extends Controller
         } else {
             $map[] = ['company_id', '=', $admin_company_id];
         }
+        if ($product_name) $map[] = ['product_name', 'like', '%' . $product_name . '%'];
         // 禁止挂网城市统计
-        // 获取城市字段并按数量分组统计
+        $LowPriceGoodsModel = $LowPriceGoodsModel->query();
+        if ($terminal_type) {
+            $platform = [];
+            switch ($terminal_type) {
+                case '1': //B端:药师帮、1药城、药久久、药易购、药帮忙、熊猫药药
+                    $platform = ['5', '6', '7', '8', '9', '10']; //平台0=全部,1=淘宝,2=京东,3=拼多多,4=美团,5=药师帮,6=1药城,7=药久久,8=药易购,9=药帮忙,10=熊猫药药
+                    break;
+                case '2': //C端:美团、拼多多、天猫、京东
+                    $platform = ['1', '2', '3', '4']; //平台0=全部,1=淘宝,2=京东,3=拼多多,4=美团,5=药师帮,6=1药城,7=药久久,8=药易购,9=药帮忙,10=熊猫药药
+                    break;
+                case '3': //OTO:美团买药、淘宝闪送、京东秒送
+                    $platform = [];
+                    break;
+                default:
+                    # code...
+                    break;
+            }
+            $LowPriceGoodsModel = $LowPriceGoodsModel->whereIn('platform_id', $platform);
+        }
         try {
             // 假设 LowPriceGoodsModel 中有 city 字段,表示城市信息
             // 查询指定时间范围内的数据,并按 city 分组统计数量
-            $result = LowPriceGoodsModel::where($map)->where('status', 0)
+            $result = $LowPriceGoodsModel->where($map)->where('status', 0)
                 ->select(['city_name', DB::raw('count(city_name) as count')])
                 ->groupby('city_name')
                 ->orderby('count', 'desc')