瀏覽代碼

[智价云] 清洗规则调整、清洗时计算单盒价格并统计出低价挂网数据

tangyuanwang 15 小時之前
父節點
當前提交
d671e2dd8b

+ 9 - 4
app/Jobs/Manager/Process/LowPriceGoodsDataJobs.php

@@ -91,10 +91,12 @@ class LowPriceGoodsDataJobs implements ShouldQueue
         $item_now_page = $message_data['item_now_page']; //清洗商品当前页
 
         $where = [];
-        if ($platform != '0') {
+        if ($platform != '0' && !empty($platform)) {
             $platform = explode(',', $platform);
             $ScrapeDataModel = $ScrapeDataModel->whereIn('platform_id', $platform);
         }
+        $ScrapeDataModel= $ScrapeDataModel->where([['min_price','>=','0.01'],['number','>=','1']]);
+
         $yesterdayStart = Carbon::today()->subDays(6)->startOfDay()->getTimestamp(); // 最近7天开始时间 00:00:00
         // $yesterdayStart = Carbon::yesterday()->startOfDay()->getTimestamp(); // 昨天开始时间 00:00:00
         $yesterdayEnd = Carbon::yesterday()->endOfDay()->getTimestamp(); // 昨天结束时间 23:59:59
@@ -104,7 +106,9 @@ class LowPriceGoodsDataJobs implements ShouldQueue
         $where[] = ['scrape_date', '<=', $yesterdayEnd];
         $where[] = ['product_name', 'like', '%' . $product_name . '%'];
         $where[] = ['product_specs', 'like', '%' . $product_specs . '%'];
-        $where[] = ['one_box_price', '<', $suggested_price];
+        // $where[] = ['one_box_price', '<', $suggested_price];
+
+        $ScrapeDataModel= $ScrapeDataModel->whereRaw('(min_price / NULLIF(number, 0)) < '. floatval($suggested_price));//计算单盒价格
         
         if ($product_brand) $where[] = ['product_name', 'like', '%' . $product_brand . '%'];
         if (!empty($product_keyword)) {
@@ -116,8 +120,9 @@ class LowPriceGoodsDataJobs implements ShouldQueue
         if ($company_scope == 2 && $social_credit_code != '') {
             $ScrapeDataModel->whereIn('qualification_number', $social_credit_code);
         }
-        $product_data_info = $ScrapeDataModel->where($where)->paginate($limit, ['*'], 'page', $page)->toarray();
+        $product_data_info = $ScrapeDataModel->select('*', DB::raw('ROUND(min_price / NULLIF(number, 0), 2) as unit_price'))->where($where)->paginate($limit, ['*'], 'page', $page)->toarray();
         $product_datas = $product_data_info['data'];
+
         if (empty($product_datas)) {
             if ($executeLog_id && $item_now_page >= $item_totle_page) {
                 (new ExecuteLogModel())->where('id', $executeLog_id)->update(['status' => 0, 'update_time' => time()]);
@@ -173,7 +178,7 @@ class LowPriceGoodsDataJobs implements ShouldQueue
                 'sales'    => $product_data['sales'] ? $product_data['sales'] : '',
                 'snapshot_url' => $product_data['snapshot_url'] ? $product_data['snapshot_url'] : '',
                 'suggested_price'    => $suggested_price,
-                'online_posting_price'    => $product_data['one_box_price'],
+                'online_posting_price'    => $product_data['unit_price'],
                 'online_posting_count'    => $product_data['online_posting_count'],
                 'continuous_listing_count'    => $product_data['continuous_listing_count'],
                 'link_url'    => $product_data['link_url'],

+ 1 - 1
app/Jobs/Manager/Process/ViolationProductDataJobs.php

@@ -90,7 +90,7 @@ class ViolationProductDataJobs implements ShouldQueue
         $item_now_page = $message_data['item_now_page']; //清洗商品当前页
 
         $where = [];
-        if ($platform != '0') {
+        if ($platform != '0' && !empty($platform)) {
             $platform = explode(',', $platform);
             $ScrapeDataModel = $ScrapeDataModel->whereIn('platform_id', $platform);
         }

+ 2 - 1
app/Jobs/Manager/Process/ViolationStoreDataJobs.php

@@ -91,7 +91,8 @@ class ViolationStoreDataJobs implements ShouldQueue
         $yesterdayEnd = date('Y-m-d', $yesterdayEnd);
         $where_map[] = ['scrape_date', '>=', $yesterdayStart];
         $where_map[] = ['scrape_date', '<=', $yesterdayEnd];
-        if ($platform != '0') {
+        
+        if ($platform != '0' && !empty($platform)) {
             $platform = explode(',', $platform);
             $ScrapeDataModel = $ScrapeDataModel->where('qualification_number', $social_credit_code)->where($where_map)->whereIn('platform_id', $platform);
         } else {