融合mergeself
2016-12-05 19:36:22 0 举报
AI智能生成
本项目计划旨在实现一个创新的解决方案,以满足特定的需求和目标。通过深入的市场研究和分析,我们已经明确了项目的关键要素和目标受众。我们将采用敏捷开发方法,以迭代的方式进行项目管理,确保项目按时交付,并具备高质量和可靠性。我们的核心团队将由经验丰富、技能精湛的专业人员组成,他们将在整个项目周期内提供卓越的支持和指导。为了确保项目的可持续发展,我们将制定详细的风险管理计划,并与相关利益相关者保持密切合作,以最大程度地减少潜在的风险和挑战。我们相信,通过团队的努力和合作,本项目将取得成功,并为我们的客户提供卓越的价值和成果。
作者其他创作
大纲/内容
mergeself
传入poi数目不超过10个
poiid校验:长度10,由0-9|A-Z构成
StepChain初始化(接下来组装处理链)
SetVarToContextStep:设置零件更新标记入上下文
QueryAllPartStep:查找所有零件
取poiids
查询idmapping表,得到所有poi(包括usingid/mergedid为poiids的)
queryByMerged:先按mergedid查询
mergedid在列表中,update_flag不等于d的mongo记录
按mergedid查询后,找到所有在用的usingid,加入usingPoiids列表(也就是usingPoiids中包括所有要查的poiid和通过这些poiid找到的usingid)
queryByUsing:按usingid查询
usingid在列表中,update_flag不等于d的所有mongo记录
提取所有的usingid/mergedid
allpoiids也即包括:要查询的poiids、关联的usingid、mergedid
零件传入接口超限判断:idmappingservice_bind_flag、idmappingservice_bind_flag
获取所有poiid零件
把所有poiid/part设置到context中
PartUpVersionStep:升级已有的所有零件
取所有零件,逐个处理
dateFormatCompatible:updateTime日期格式兼容
将一个part对象下curr_part取出,逐个处理
将from.update_time格式化为:yyyy/MM/dd HH:mm:ss或yyyy-MM-dd HH:mm:ss格式
cleanNullBlock:清空null块
将一个part对象下curr_part取出,逐个处理
空字段删除(目前只处理第一层,poiid/meta忽略)
rti特殊处理(因为[{}]格式),{}逐个处理null块清空,再判断[]是否空
upUpdateTime:设置meta.update_time
将一个part对象下curr_part取出,逐个处理
singlepart的meta.update_time取出,逐个处理(meta.update_time记录base/from等块的更新时间)
将meta.update_time下各块的更新时间更改为singlepart的from.update_time
extraMapInfo:抽取并设置cpname与cpid对应信息
将一个part对象下curr_part取出,逐个处理
抽取singlepart中各个from,获取src_type与src_id对照关系(cpName2IdInfo)
从base/deep/deep_comm块取from
从rti块取from(rti是[{}]的形式,所以特殊处理)
取最外围from(即singlepart的from)没做合法性校验????是因为src_id有可能为空吗????
取from块时要校验from块合法性(src_type/src_id字段均不为空)
所有from块src_id按src_type分组(src_name:cp_name;src_id:cpid)
将singlepart的src_type2ids字段值置为cpName2IdInfo
splitFrom:拆from
将一个part对象下curr_part取出,逐个处理
base/deep/deep_comm块下的from,如果为空,就赋值为singlepart.from
rti块下from,如果为空,就赋值为singlepart.from
版本号改为程序版本号:meta.ver改为程序版本号
PoiSelectStep:poi选择
取所有零件allpart,得到map:<poiid:part>
取idmapping,得到usingid、mergedid
根据allpart、usingid进行poi分组
如果只有一个part就直接选定,分组里只有这一个part
extraFullSingleParts:根据part的curr_part,获取{poiid/src_type(零件来源)/singlepart}这样的对象
getParkDeepMap:停车场
取src_type
取singlepart.from.opt_type
取singlepart.deep.tag_category
取singlepart.deep.business
去掉**停车场中的"停车场"(即去掉tag_category中的"停车场"字段)
取business为park的tag_category,记录<src_type, tag_category>
同一poi有两个不同的tag_category,记录日志
返回<src_type, tag_category>
不止一个part,排序分组
sortFullSinglePart:获取deepCategory(深度信息) 和 零件排序
抽取所有part,逐个处理
extraFullSingleParts:同上
getDeepMap:获取park/charging/company深度信息
getChargingDeepMap:充电站
取src_type
取singlepart.from.opt_type
取singlepart.deep.business
取singlepart.deep.charge_info
charge_info是个[],取第一个的plugs_info
plugs_info是个[],取第一个的brand_desc
取business为charging的brand_desc,记录<src_type, brand_desc>
同一个poiid有两个不同brand_desc记录,记录log
返回<src_type, brand_desc>
getParkDeepMap:同上
getCommonDeepMap(有参数:deep_key:"regist_no"):公司注册号
取src_type
取singlepart.from.opt_type
取singlepart.deep.$deep_key(即regist_no)
取singlepart.deep.business
取business为company的$deep_key,记录<src_type, $deep_key>
同一个poiid有两个不同的$deep_key,记录log
返回<src_type, $deep_key>
深度信息记录,如:<park, <poiid, <src_type, tag_category>>>
fullSingleParts记录extraFullSingleParts结果
fullSingleParts排序
comLockSrcType:按锁定源排序
comOldUsingPoiid:按idmapping关系排序,usingpoiid优先
clickNumType:按点击数排序
comTrustSrcType:按可信源排序
comCpHasBase:有base块的优先
comValid:优先考虑非删
comPre:可信,同级,考虑精度
comPoiid:比较poiid,小的排前面
返回排序后fullSingleParts
groupPoiid:分组poiid 》》》》需要补充
对于分组逐个处理
取每组第一个poiid
记录{$poiid: {poiids: $poiid}},如:{B036D0MIR8: {poiids: B036D0MIR8}}
idmappingservice_bind_flag????
子主题
如果传入poiid没有零件但有成品,并且成品不是d状态时,把poiid加入到group中需要重新融合得到成品d状态??需要确认
从context上下文中获取in.refpois
找到有成品没有零件的poiid
能够获取零件poiid
在零件poiid中不存在的id,就是有成品而没有零件的poiid
PoiProductStep:poi融合
每组融合,PoiProducer().produce函数
base融合:baseProducer
deep融合:DeepProducer
deep_comm融合:DeepCommonProducer
rti融合:RtiProducer
idDictionaries融合:IdDictionariesProducer
spec融合:SpecProducer
commProducer
图片融合:PicInfoProducer
热点poi的处理。。
整体处理:IntegrityProducer
meta处理:MetaProducer
子主题
ProduceSizeCheckStep:分组成品大小检查
ProductSplitStep:数据拆分
PartSaveStep:零件数据入库
ProductSaveStep:成品数据入库
FastPushStep:快速发布
stepChain执行(处理链中的步骤逐步执行)
返回执行状态status
0 条评论
下一页