请教大佬一个问题,我们现在对接了多个渠道的供应商,但是每家供应商的地址库都不一样,怎么设计程序兼容?

100 天前
 lxbuuilx

我们现在主要是有京东和天猫做供应商,两家的地址库不一样,用户在我们平台下单选地址经常出现京东能下载,天猫不能下载的情况。大佬们有没有经验,怎么处理好这种情况。感谢

2094 次点击
所在节点    Java
17 条回复
lifei6671
100 天前
内部程序要有标准,对接外部统一加一个适配层来转接。这样你将来的产品理论上可以通过适配层对接无数个第三方,而第三方变动你只需要修改适配层就行。
lxbuuilx
100 天前
@lifei6671 但是第三方的地址是怎么和内部的标准库做关联关系呢
lifei6671
100 天前
@lxbuuilx 适配器层啊。就是充电器转接头一样。将第三方的接口输入输出转换为你内部标准库的输入输出啊。
twing37
100 天前
自己做一套数据结构,即领域模型,通过适配器、转换器请求第三方,转成你的,也就是防腐层。一句话:把第三方接口数据转成自己的再去服务。
kneo
100 天前
这种简单的业务有啥好问的,你是 ifelse 不会写还是数据库不会连?
rabbbit
100 天前
“京东能下载,天猫不能下载的情况”
下载还是下单?
mmx12138
100 天前
没有什么是一个中间层解决不了的 如果有 那就再加一个
rabbbit
100 天前
一开始的想法是下单的话就自己维护一套地址库,然后转换成淘宝和京东的。
https://refactoringguru.cn/design-patterns/adapter

不过一想咋转是个问题, 淘宝和京东都需要选到街道或镇,人工维护差别?
zhengwenk
100 天前
地址还是有共性的,省市区,街道,门牌号。 无非每家的命名或者结构不一致。需要有一个中间层来做第三方和你们自己地址库的映射规则。
lxbuuilx
100 天前
@rabbbit 都需要维护到街道层,主要纠结点就是不知道怎么转
lxbuuilx
100 天前
抱歉,我没说清楚,是下单不是下载。并且主要纠结的问题点是每家在相同地址的名称都不一样,省、市这两级的地址名称基本上一样,很好处理。但是到了区的时候,基本上每家地址都有对不上的地方,这个时候只能人工去关系匹配。想问一下区的映射能做成系统来匹配吗,少用人工去匹配。比如京东上有一个地址是“甘肃省(省级)嘉峪关市(市级)嘉峪关市(区级)雄关街道(街道级)广汇花园” ,京东把嘉峪关市当作了区级地址。天猫上这个地址就是‘甘肃省(省级)嘉峪关市(市级)雄关街道(区级)+详细地址’,这种情况怎么去匹配。
cnhongwei
100 天前
直接做映射就行了,比如你的模型是 省-市-区-街道,影射到京东就成了 省-市-市-街道,到天猫还是 省-市-区-街道就行了,就是繁琐一些,但处理一次就好了。
lxbuuilx
100 天前
@cnhongwei 我的疑问点是怎么将嘉峪关市(京东)和雄关街道(天猫)认定是同一个地方,想知道除了人工去对,用程序能否去处理?
cnhongwei
100 天前
如果有标准,比如都按国家行政区划编码来处理的,你程序就可以处理,不然只能人工处理。
Eiden
100 天前
把淘宝的地址库遍历一遍, 再去逆向一下手机京东里面的根据经纬坐标选地址的接口, 用淘宝的坐标离线跑一遍不就能建立对应关系了, 做一遍就行
lxbuuilx
100 天前
@cnhongwei 没法按照国家码,京东和淘宝给的地址码都不是国家标准码
lxbuuilx
100 天前
@Eiden 这个想法可以,我试试,感谢大佬

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1013282

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX