|
@@ -318,9 +318,28 @@ class ViolationProduct extends Model
|
|
|
*/
|
|
*/
|
|
|
public function handleCountData($product_data_info)
|
|
public function handleCountData($product_data_info)
|
|
|
{
|
|
{
|
|
|
|
|
+ //查询当前商品上次连续挂网次数
|
|
|
|
|
+ if (in_array($product_data_info['platform'], ['3', '4'])) {
|
|
|
|
|
+ $source_last_time_where[] = ['company_id', '=', $product_data_info['company_id']]; //品牌方公司ID
|
|
|
|
|
+ $source_last_time_where[] = ['platform', '=', $product_data_info['platform']]; //挂网平台ID
|
|
|
|
|
+ $source_last_time_where[] = ['company_name', '=', $product_data_info['company_name']]; //店铺公司名称
|
|
|
|
|
+ $source_last_time_where[] = ['store_name', '=', $product_data_info['store_name']]; //店铺名称
|
|
|
|
|
+ $source_last_time_where[] = ['product_brand', '=', $product_data_info['product_brand']]; //品牌名称
|
|
|
|
|
+ $source_last_time_where[] = ['product_name', '=', $product_data_info['product_name']]; //商品名称
|
|
|
|
|
+ $source_last_time_where[] = ['product_specs', '=', $product_data_info['product_specs']]; //规格
|
|
|
|
|
+ $source_last_time_where[] = ['scrape_date', '<', $product_data_info['scrape_date']]; //采集日期
|
|
|
|
|
+ } else {
|
|
|
|
|
+ $source_last_time_where[] = ['company_id', '=', $product_data_info['company_id']]; //品牌方公司ID
|
|
|
|
|
+ $source_last_time_where[] = ['link_url', '=', $product_data_info['link_url']]; //链接地址
|
|
|
|
|
+ $source_last_time_where[] = ['scrape_date', '<', $product_data_info['scrape_date']]; //采集日期
|
|
|
|
|
+ }
|
|
|
|
|
+ $online_posting_count = $this->where($source_last_time_where)->count();
|
|
|
|
|
+ $product_data_info['online_posting_count'] = $online_posting_count + 1; //累计挂网次数+1
|
|
|
|
|
+ //连续挂网默认值为1
|
|
|
|
|
+ $product_data_info['continuous_listing_count'] = 1;
|
|
|
$collect_config_info = isset($product_data_info['collect_config_info']) ? $product_data_info['collect_config_info'] : ''; //采集配置信息
|
|
$collect_config_info = isset($product_data_info['collect_config_info']) ? $product_data_info['collect_config_info'] : ''; //采集配置信息
|
|
|
if (trim($collect_config_info) == '') return $product_data_info;
|
|
if (trim($collect_config_info) == '') return $product_data_info;
|
|
|
- $collect_config_info = json_decode($collect_config_info, true); //{"sampling_cycle": "", "sampling_start_time": "", "sampling_end_time": ""}
|
|
|
|
|
|
|
+ $collect_config_info = json_decode($collect_config_info, true);
|
|
|
//采集周期
|
|
//采集周期
|
|
|
$sampling_cycle = isset($collect_config_info['sampling_cycle']) ? explode(',', $collect_config_info['sampling_cycle']) : '';
|
|
$sampling_cycle = isset($collect_config_info['sampling_cycle']) ? explode(',', $collect_config_info['sampling_cycle']) : '';
|
|
|
//采集开始时间
|
|
//采集开始时间
|
|
@@ -328,12 +347,11 @@ class ViolationProduct extends Model
|
|
|
//采集结束时间
|
|
//采集结束时间
|
|
|
$sampling_end_time = isset($collect_config_info['sampling_end_time']) ? $collect_config_info['sampling_end_time'] : '';
|
|
$sampling_end_time = isset($collect_config_info['sampling_end_time']) ? $collect_config_info['sampling_end_time'] : '';
|
|
|
if (!is_array($sampling_cycle)) return $product_data_info;
|
|
if (!is_array($sampling_cycle)) return $product_data_info;
|
|
|
- $current_time = time();
|
|
|
|
|
|
|
+ $current_time = $product_data_info['collection_time'];
|
|
|
//如果当前时间在采集开始时间结束时间范围内,则进行连续挂网和累计挂网统计
|
|
//如果当前时间在采集开始时间结束时间范围内,则进行连续挂网和累计挂网统计
|
|
|
if ($sampling_start_time != '' && $sampling_end_time != '' && $current_time >= $sampling_start_time && $current_time <= $sampling_end_time) {
|
|
if ($sampling_start_time != '' && $sampling_end_time != '' && $current_time >= $sampling_start_time && $current_time <= $sampling_end_time) {
|
|
|
// 获取采集时间是星期几
|
|
// 获取采集时间是星期几
|
|
|
- $collection_time = strtotime($product_data_info['collection_time']);
|
|
|
|
|
- $now_week = date('w', $collection_time);
|
|
|
|
|
|
|
+ $now_week = date('w', $current_time);
|
|
|
if ($now_week == 0) {
|
|
if ($now_week == 0) {
|
|
|
$now_week = 7;
|
|
$now_week = 7;
|
|
|
}
|
|
}
|
|
@@ -345,34 +363,28 @@ class ViolationProduct extends Model
|
|
|
// 使用
|
|
// 使用
|
|
|
$result = $this->getLastSamplingInfo($now_week, $sampling_cycle);
|
|
$result = $this->getLastSamplingInfo($now_week, $sampling_cycle);
|
|
|
$days_to_subtract = isset($result['days_to_subtract']) ? $result['days_to_subtract'] : 0;
|
|
$days_to_subtract = isset($result['days_to_subtract']) ? $result['days_to_subtract'] : 0;
|
|
|
|
|
+ // echo "往前推 {$result['days_to_subtract']} 天";
|
|
|
//查询当前商品是否在上一个周期采集中过
|
|
//查询当前商品是否在上一个周期采集中过
|
|
|
- $up_scrape_date_time = $collection_time - $days_to_subtract * 24 * 3600; //查询上周这个时间点
|
|
|
|
|
|
|
+ $up_scrape_date_time = $current_time - $days_to_subtract * 24 * 3600; //查询上周这个时间点
|
|
|
$up_scrape_date = date('Y-m-d', $up_scrape_date_time);
|
|
$up_scrape_date = date('Y-m-d', $up_scrape_date_time);
|
|
|
- $source_last_week_where[] = ['company_id', '=', $product_data_info['company_id']]; //品牌方公司ID
|
|
|
|
|
- $source_last_week_where[] = ['platform', '=', $product_data_info['platform']]; //挂网平台ID
|
|
|
|
|
- $source_last_week_where[] = ['company_name', '=', $product_data_info['company_name']]; //店铺公司名称
|
|
|
|
|
- $source_last_week_where[] = ['store_name', '=', $product_data_info['store_name']]; //店铺名称
|
|
|
|
|
- $source_last_week_where[] = ['product_brand', '=', $product_data_info['product_brand']]; //品牌名称
|
|
|
|
|
- $source_last_week_where[] = ['product_name', '=', $product_data_info['product_name']]; //商品名称
|
|
|
|
|
- $source_last_week_where[] = ['product_specs', '=', $product_data_info['product_specs']]; //规格
|
|
|
|
|
- $source_last_week_where[] = ['scrape_date', '=', $up_scrape_date]; //上个周期采集日期
|
|
|
|
|
|
|
+ if (in_array($product_data_info['platform'], ['3', '4'])) {
|
|
|
|
|
+ $source_last_week_where[] = ['company_id', '=', $product_data_info['company_id']]; //品牌方公司ID
|
|
|
|
|
+ $source_last_week_where[] = ['platform', '=', $product_data_info['platform']]; //挂网平台ID
|
|
|
|
|
+ $source_last_week_where[] = ['company_name', '=', $product_data_info['company_name']]; //店铺公司名称
|
|
|
|
|
+ $source_last_week_where[] = ['store_name', '=', $product_data_info['store_name']]; //店铺名称
|
|
|
|
|
+ $source_last_week_where[] = ['product_brand', '=', $product_data_info['product_brand']]; //品牌名称
|
|
|
|
|
+ $source_last_week_where[] = ['product_name', '=', $product_data_info['product_name']]; //商品名称
|
|
|
|
|
+ $source_last_week_where[] = ['product_specs', '=', $product_data_info['product_specs']]; //规格
|
|
|
|
|
+ $source_last_week_where[] = ['scrape_date', '=', $up_scrape_date]; //上个周期采集日期
|
|
|
|
|
+ } else {
|
|
|
|
|
+ $source_last_week_where[] = ['link_url', '=', $product_data_info['link_url']]; //链接地址
|
|
|
|
|
+ $source_last_week_where[] = ['scrape_date', '=', $up_scrape_date]; //上个周期采集日期
|
|
|
|
|
+ }
|
|
|
$source_last_week_log = $this->where($source_last_week_where)->count();
|
|
$source_last_week_log = $this->where($source_last_week_where)->count();
|
|
|
if ($source_last_week_log > 0) {
|
|
if ($source_last_week_log > 0) {
|
|
|
$product_data_info['continuous_listing_count'] = $product_data_info['continuous_listing_count'] + 1; //连续挂网次数+1
|
|
$product_data_info['continuous_listing_count'] = $product_data_info['continuous_listing_count'] + 1; //连续挂网次数+1
|
|
|
}
|
|
}
|
|
|
- //查询当前商品上次连续挂网次数
|
|
|
|
|
- $source_last_time_where[] = ['company_id', '=', $product_data_info['company_id']]; //品牌方公司ID
|
|
|
|
|
- $source_last_time_where[] = ['platform', '=', $product_data_info['platform']]; //挂网平台ID
|
|
|
|
|
- $source_last_time_where[] = ['company_name', '=', $product_data_info['company_name']]; //店铺公司名称
|
|
|
|
|
- $source_last_time_where[] = ['store_name', '=', $product_data_info['store_name']]; //店铺名称
|
|
|
|
|
- $source_last_time_where[] = ['product_brand', '=', $product_data_info['product_brand']]; //品牌名称
|
|
|
|
|
- $source_last_time_where[] = ['product_name', '=', $product_data_info['product_name']]; //商品名称
|
|
|
|
|
- $source_last_time_where[] = ['product_specs', '=', $product_data_info['product_specs']]; //规格
|
|
|
|
|
- $source_last_time_log = $this->where($source_last_time_where)->orderbyDesc('scrape_date')->first();
|
|
|
|
|
- if (!empty($source_last_time_log)) {
|
|
|
|
|
- $product_data_info['online_posting_count'] = $source_last_time_log->online_posting_count + 1; //累计挂网次数+1
|
|
|
|
|
- }
|
|
|
|
|
- } else if ($sampling_start_time != '' && $sampling_end_time == '' && $current_time >= $sampling_start_time) {
|
|
|
|
|
|
|
+ } else if ($sampling_start_time != '' && $sampling_end_time == '0' && $current_time >= $sampling_start_time) {
|
|
|
//如果当前时间在采集开始时间结束时间未设置,则进行连续挂网和累计挂网统计
|
|
//如果当前时间在采集开始时间结束时间未设置,则进行连续挂网和累计挂网统计
|
|
|
// 获取采集时间是星期几
|
|
// 获取采集时间是星期几
|
|
|
$collection_time = strtotime($product_data_info['collection_time']);
|
|
$collection_time = strtotime($product_data_info['collection_time']);
|
|
@@ -383,38 +395,37 @@ class ViolationProduct extends Model
|
|
|
if (!in_array($now_week, $sampling_cycle)) {
|
|
if (!in_array($now_week, $sampling_cycle)) {
|
|
|
return $product_data_info;
|
|
return $product_data_info;
|
|
|
}
|
|
}
|
|
|
- //查询当前商品是否在上一个周期采集中过
|
|
|
|
|
- $up_scrape_date_time = $collection_time - 7 * 24 * 3600; //查询上周这个时间点
|
|
|
|
|
|
|
+ //排序$sampling_cycle从小到大
|
|
|
|
|
+ sort($sampling_cycle);
|
|
|
|
|
+ // 使用
|
|
|
|
|
+ $result = $this->getLastSamplingInfo($now_week, $sampling_cycle);
|
|
|
|
|
+ $days_to_subtract = isset($result['days_to_subtract']) ? $result['days_to_subtract'] : 0;
|
|
|
|
|
+
|
|
|
|
|
+ $up_scrape_date_time = $collection_time - $days_to_subtract * 24 * 3600; //查询上周这个时间点
|
|
|
//查询当前商品上次采集记录
|
|
//查询当前商品上次采集记录
|
|
|
$up_scrape_date = date('Y-m-d', $up_scrape_date_time);
|
|
$up_scrape_date = date('Y-m-d', $up_scrape_date_time);
|
|
|
- $source_last_week_where[] = ['company_id', '=', $product_data_info['company_id']]; //品牌方公司ID
|
|
|
|
|
- $source_last_week_where[] = ['platform', '=', $product_data_info['platform']]; //挂网平台ID
|
|
|
|
|
- $source_last_week_where[] = ['company_name', '=', $product_data_info['company_name']]; //店铺公司名称
|
|
|
|
|
- $source_last_week_where[] = ['store_name', '=', $product_data_info['store_name']]; //店铺名称
|
|
|
|
|
- $source_last_week_where[] = ['product_brand', '=', $product_data_info['product_brand']]; //品牌名称
|
|
|
|
|
- $source_last_week_where[] = ['product_name', '=', $product_data_info['product_name']]; //商品名称
|
|
|
|
|
- $source_last_week_where[] = ['product_specs', '=', $product_data_info['product_specs']]; //规格
|
|
|
|
|
- $source_last_week_where[] = ['scrape_date', '=', $up_scrape_date]; //上个周期采集日期
|
|
|
|
|
|
|
+ if (in_array($product_data_info['platform'], ['3', '4'])) {
|
|
|
|
|
+ $source_last_week_where[] = ['company_id', '=', $product_data_info['company_id']]; //品牌方公司ID
|
|
|
|
|
+ $source_last_week_where[] = ['platform', '=', $product_data_info['platform']]; //挂网平台ID
|
|
|
|
|
+ $source_last_week_where[] = ['company_name', '=', $product_data_info['company_name']]; //店铺公司名称
|
|
|
|
|
+ $source_last_week_where[] = ['store_name', '=', $product_data_info['store_name']]; //店铺名称
|
|
|
|
|
+ $source_last_week_where[] = ['product_brand', '=', $product_data_info['product_brand']]; //品牌名称
|
|
|
|
|
+ $source_last_week_where[] = ['product_name', '=', $product_data_info['product_name']]; //商品名称
|
|
|
|
|
+ $source_last_week_where[] = ['product_specs', '=', $product_data_info['product_specs']]; //规格
|
|
|
|
|
+ $source_last_week_where[] = ['scrape_date', '=', $up_scrape_date]; //上个周期采集日期
|
|
|
|
|
+ }else{
|
|
|
|
|
+ $source_last_week_where[] = ['link_url', '=', $product_data_info['link_url']]; //链接地址
|
|
|
|
|
+ $source_last_week_where[] = ['scrape_date', '=', $up_scrape_date]; //上个周期采集日期
|
|
|
|
|
+ }
|
|
|
$source_last_week_log = $this->where($source_last_week_where)->count();
|
|
$source_last_week_log = $this->where($source_last_week_where)->count();
|
|
|
if ($source_last_week_log > 0) {
|
|
if ($source_last_week_log > 0) {
|
|
|
$product_data_info['continuous_listing_count'] = $product_data_info['continuous_listing_count'] + 1; //连续挂网次数+1
|
|
$product_data_info['continuous_listing_count'] = $product_data_info['continuous_listing_count'] + 1; //连续挂网次数+1
|
|
|
}
|
|
}
|
|
|
- //查询当前商品上次连续挂网次数
|
|
|
|
|
- $source_last_time_where[] = ['company_id', '=', $product_data_info['company_id']]; //品牌方公司ID
|
|
|
|
|
- $source_last_time_where[] = ['platform', '=', $product_data_info['platform']]; //挂网平台ID
|
|
|
|
|
- $source_last_time_where[] = ['company_name', '=', $product_data_info['company_name']]; //店铺公司名称
|
|
|
|
|
- $source_last_time_where[] = ['store_name', '=', $product_data_info['store_name']]; //店铺名称
|
|
|
|
|
- $source_last_time_where[] = ['product_brand', '=', $product_data_info['product_brand']]; //品牌名称
|
|
|
|
|
- $source_last_time_where[] = ['product_name', '=', $product_data_info['product_name']]; //商品名称
|
|
|
|
|
- $source_last_time_where[] = ['product_specs', '=', $product_data_info['product_specs']]; //规格
|
|
|
|
|
- $source_last_time_log = $this->where($source_last_time_where)->orderbyDesc('scrape_date')->first();
|
|
|
|
|
- if (!empty($source_last_time_log)) {
|
|
|
|
|
- $product_data_info['online_posting_count'] = $source_last_time_log->online_posting_count + 1; //累计挂网次数+1
|
|
|
|
|
- }
|
|
|
|
|
}
|
|
}
|
|
|
return $product_data_info;
|
|
return $product_data_info;
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
+
|
|
|
/**
|
|
/**
|
|
|
* 处理通知消息
|
|
* 处理通知消息
|
|
|
* @author 唐远望
|
|
* @author 唐远望
|