价格监控流程图
2025-04-30 17:24:58 0 举报
流程图
作者其他创作
大纲/内容
写入onecode_base3.task_execute
onecode-price-protal
CommodityPoolModelController.addcommodityPoolModel
CommodityPoolModelController.importTreeData
页面功能调用
更新saas_onecode_price.monitor_commodity_price_model更新爬取状态为爬取结束,并将采集价格补充到该表中
推送数据至商品池:动作是持续性的,推送过来的商品会进行定时监测、更新指导价格、生成报表等操作
读取saas_onecode_price.icommodity_pool_model
写入saas_onecode_price.internet_match_pool_model
springboot定时任务
onecode-data-handle
TaskExecuteConsumer.execute->TaskExecuteConsumer.executeInternal,读取onecode_base3.task_execute表->任务插入defaultExecutor队列尾部
任务执行
CategoryRecognitionForModelService.doPost
针对标品,会先调用模型能力进行类目识别,如果识别出结果,类目识别结果审核通过之后才会建立爬虫任务;否则也会直接建立爬虫任务
针对非标品,会直接创建爬虫任务
价格推送任务写入onecode_base3.task_execute
onecode-data-receive
写入saas_onecode_price.icommodity_pool__model
更新saas_onecode_price.monitor_commodity_price_model更新爬取状态为爬取中
AuditConsume.execute
读取onecode_compare_price.task_table_modelonecode_compare_price.commodity_list_table_model
是,非标品
更新onecode_compare_price.search_table_model爬虫商品数据同款商品识别结果
指导价格写入saas_onecode_price.commodity_guide_price_model1.market_var_min市场价格非折扣最低价2.market_var_avg市场价格非折扣平均价3.market_max最后一次采集的最大市场价4.market_min最后一次采集的最小市场价5.market_avg最后一次采集的市场平均价6.market_jd最后一次采集的京东自营商品最低价7.purchase_method_min、purchase_min市场价格折扣最低价8.purchase_method_avg、purchase_avg市场价格折扣平均价9.purchase_max市场价格折扣最高价saas_onecode_price.commodity_guide_price_detail_model最后一次采集的供应商商品的市场价历史表:saas_onecode_price.his_commodity_guide_price_modelsaas_onecode_price.his_commodity_guide_price_detail_model
写入onecode3.commodity_pool_model
GoodSync.process
提供外部接口调用
查询策略涉及到的全量商品数据
需要治理的商品重置商品治理状态
读取onecode3.icommodity_pool__modelonecode_compare_price.commodity_list_table_model
读取saas_onecode_price.commodity_pool_model待监控商品saas_onecode_price.filter_shop_confsaas_onecode_price.monitor_source_relation_conf监控源配置
根据saas_onecode_price.monitor_commodity_price_model数据同步方式判断会否立即计算指导价格或者等待价格计算定时任务计算指导价格
价格计算
读取saas_onecode_price.commodity_pool_relation_model该表在价格计算任务中会将待监控商品的同款应用商商品写入,价格持续采集只需要采集该表的商品价格即可
供应商商品爬取未完成或同款商品判定未全部完成
爬虫回调
MonitorCommodityApply.process
CrawlerCallBackController.query
xxljob定时任务执行
SaasXXlJobManage.commodityPoolPushJob
写入爬虫商品数据onecode_compare_price.search_table_model更新任务状态onecode_compare_price.task_table_model
该接口为每个监控商品根据采集的供应商商品列表,计算出不同类型的指导价格,比如接口传入市场价格及采购价格,会给监控商品生成两个类型的指导价格指导价格包含非折扣价格和折扣价格,都会有最小值和平均值两个指导价格,因此监控商品针对每个类型会有指导价格生成
读取onecode_compare_price.search_table_model爬虫商品数据onecode_audit.audit_similarity_rule同款商品评定规则
非新增商品
类目识别(按顺序执行):1.查询历史识别记录,如果有匹配成功记录,直接返回2.调用模型能力进行识别,如果识别出类目,直接返回3.根据商品名称查询es存量标品数据,取标品数据所属类目进行返回
写入onecode_compare_price.task_table_model爬虫任务写入onecode_compare_price.commodity_list_table_model商品监控整流程记录
更新onecode3.commodity_pool_model
写入saas_compare_price.task_table_tmp
写入saas_onecode_price.commodity_pool_relation_modelsaas_onecode_price.monitor_commodity_price_modelsaas_onecode_price.monitor_commodity_price_last_change_model
商品录入
爬虫任务
MatchInternetGoods.process
SaasXXlJobManage.batchSendCrawlJob
同款商品信息查询
写入onecode3.commodity_price_model
SaasXXlJobManage.aggregationSaasJob
价格持续采集
PriceMonitorConsume
price-guide
CountGuideContrller.getActivity
更新saas_onecode_price.monitor_commodity_price_last_change_model该表存储供应商商品最后一次采集到的价格数据,先删除再写入
CategoryRecognitionForModelService.process
查询商品信息,根据预置规则处理商品名称,得到规范化后的商品名称
新计算逻辑:对价格列表直接取最小值和平均值进行返回
互联网商品匹配:接口方式接收商品,动作是一次性的,推送过来的商品最终会算出一个指导价格,不会再有后续动作
周期更新
CommodityApply.process
根据商品名称查询es索引,获取相关性比较高的爬取商品数据
读取onecode_compare_price.search_table_model爬虫商品数据,将同款商品返回
调用爬虫接口,爬取互联网商品
不间断巡检
原计算逻辑:1.首先计算出供应商价格的最小值、最大值、平均值然后对价格列表进行方差和平均值过滤:①求总和②求平均值③求方差=(价格-平均值)²总和/总个数④求标准差⑤平均值±方差范围内的价格被保留如果过滤后价格列表为空,进行以下处理:最低价和平均价均取过滤前价格的中位数,对于价格列表偶数个时,取低位中数。如果过滤后价格列表不为空,进行以下处理:2.计算最低价格:通过中位数确定合理价格区间(以中位数为中心±50%波动区间),取在此期间的供应商商品价格的最低值作为指导价格3.计算平均价格:先取中位数,价格列表有偶数个时,如果(高中位数-低中位数)/ 低中位数 >5,会将最高值删除,并将低位中数作为最终使用中位数,否则将(高位中数+低位中数)/2作为最终使用中位数;如果价格列表有奇数个,直接取中位数使用。通过中位数确定合理价格区间(以中位数为中心±50%波动区间),取在此期间的供应商商品价格的平均值作为指导价格
调用爬虫接口进行价格爬取,该爬虫任务会直接指定供应商商品的编码和链接,以便爬虫精准爬取
同款商品结果查询
AggregationSaasCommodity.process
同款商品识别
双一识别:根据同款商品评定规则判定是否是同款商品。1.同名商品直接判定为同款商品2.规则下针对分类配置比对属性及其权重,比对指定属性后计算出综合得分,综合得分>=1判定为同款商品最终将源商品和爬虫商品的属性比对结果写入onecode_compare_price.t_search_spec_mate表
模型识别:1.查询历史识别记录,如果存在,取历史识别结果2.如果不存在历史识别结果,请求大模型进行识别,针对识别非同款商品数据,会根据配置判断是否走千问模型再次识别,获取最终识别结果
双一+模型识别:先进行双一识别,双一识别非同款商品时再进行模型识别
GovernanceConsumeexecute
对采集到的供应商商品进行属性清洗治理,将属性值规范化,便于同款商品识别进行判定
SaasXXlJobManage.commodityPriceMonitorJob
供应商商品的市场价及采购价
商品信息录入智慧识物表
CommoditySaasApply.process
写入saas_onecode_price.monitor_commodity_price_model该表记录供应商商品价格采集信息,本次写入时爬取状态为未爬取
1.判断策略是否配置巡检比例(重点商品爬取应用上商品采集完成数量占全量商品比重超过一定数时才执行),如果未配置比例,查询策略涉及到的全量商品2.如果配置巡检比例,从saas_onecode_price.key_commodity_model查询重点商品,如果未配置重点商品,本次任务结束3.将重点商品查询出来后,计算非重点商品查询数量=(1-巡检比例)*重点商品数量,然后查询非重点商品,补充到待采集商品集合中,和重点商品一起做价格采集
推送数据至商品池:中煤旧逻辑,接口方式接收商品,动作是持续性的,推送过来的商品会进行定时监测、更新指导价格、生成报表等操作
读取saas_onecode_price.price_monitor_policy_conf商品池价格采集策略(采集周期)
返回处理中
commodity_list_table_model是否有该商品数据
智慧识物调用成功后写入saas_onecode_price.monitor_commodity_pool_model
根据匹配到的同款商品,计算指导价格,并更新onecode_compare_price.commodity_list_table_model表该原商品的指导价格计算方式:通过中位数确定合理价格区间(以中位数为中心±50%波动区间),取在此期间的供应商商品价格的最低值作为指导价格
写入1.onecode.commodity_pool_model2.onecode_price.commodity_collection_info
类目识别
CreateCrawlerTask.createTask
1.查询商品池关联的采集供应商2.规范化的商品名称请求模型识别关键属性,如果识别失败,直接用规范化的商品名称创建爬虫任务3.供应商会配置搜索词拼接规则,将关键属性按照规则进行拼接,得到新的商品名称,创建爬虫任务
新增商品
消费队列
AbstractTaskExecutor.start->TaskRunner.consume->TaskRunner.runTask
读取saas_onecode_price.monitor_commodity_price_model查询未爬取价格供应商数据
0 条评论
下一页