5

请教大佬一个问题,我们现在对接了多个渠道的供应商,但是每家供应商的地址库都不一样...

 7 months ago
source link: https://www.v2ex.com/t/1013282
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

V2EX  ›  Java

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

  lxbuuilx · 8 小时 8 分钟前 · 1254 次点击

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

17 条回复    2024-02-01 17:39:03 +08:00
lifei6671

lifei6671      8 小时 0 分钟前

内部程序要有标准,对接外部统一加一个适配层来转接。这样你将来的产品理论上可以通过适配层对接无数个第三方,而第三方变动你只需要修改适配层就行。
lxbuuilx

lxbuuilx      7 小时 26 分钟前

@lifei6671 但是第三方的地址是怎么和内部的标准库做关联关系呢
lifei6671

lifei6671      6 小时 49 分钟前

@lxbuuilx 适配器层啊。就是充电器转接头一样。将第三方的接口输入输出转换为你内部标准库的输入输出啊。
twing37

twing37      6 小时 43 分钟前

自己做一套数据结构,即领域模型,通过适配器、转换器请求第三方,转成你的,也就是防腐层。一句话:把第三方接口数据转成自己的再去服务。
kneo

kneo      6 小时 40 分钟前 via Android

这种简单的业务有啥好问的,你是 ifelse 不会写还是数据库不会连?
rabbbit

rabbbit      6 小时 37 分钟前

“京东能下载,天猫不能下载的情况”
下载还是下单?
mmx12138

mmx12138      6 小时 37 分钟前

没有什么是一个中间层解决不了的 如果有 那就再加一个
rabbbit

rabbbit      6 小时 23 分钟前

一开始的想法是下单的话就自己维护一套地址库,然后转换成淘宝和京东的。
https://refactoringguru.cn/design-patterns/adapter

不过一想咋转是个问题, 淘宝和京东都需要选到街道或镇,人工维护差别?
zhengwenk

zhengwenk      6 小时 9 分钟前

地址还是有共性的,省市区,街道,门牌号。 无非每家的命名或者结构不一致。需要有一个中间层来做第三方和你们自己地址库的映射规则。
lxbuuilx

lxbuuilx      5 小时 40 分钟前

@rabbbit 都需要维护到街道层,主要纠结点就是不知道怎么转
lxbuuilx

lxbuuilx      5 小时 28 分钟前

抱歉,我没说清楚,是下单不是下载。并且主要纠结的问题点是每家在相同地址的名称都不一样,省、市这两级的地址名称基本上一样,很好处理。但是到了区的时候,基本上每家地址都有对不上的地方,这个时候只能人工去关系匹配。想问一下区的映射能做成系统来匹配吗,少用人工去匹配。比如京东上有一个地址是“甘肃省(省级)嘉峪关市(市级)嘉峪关市(区级)雄关街道(街道级)广汇花园” ,京东把嘉峪关市当作了区级地址。天猫上这个地址就是‘甘肃省(省级)嘉峪关市(市级)雄关街道(区级)+详细地址’,这种情况怎么去匹配。
cnhongwei

cnhongwei      3 小时 25 分钟前

直接做映射就行了,比如你的模型是 省-市-区-街道,影射到京东就成了 省-市-市-街道,到天猫还是 省-市-区-街道就行了,就是繁琐一些,但处理一次就好了。
lxbuuilx

lxbuuilx      2 小时 32 分钟前

@cnhongwei 我的疑问点是怎么将嘉峪关市(京东)和雄关街道(天猫)认定是同一个地方,想知道除了人工去对,用程序能否去处理?
cnhongwei

cnhongwei      2 小时 10 分钟前

如果有标准,比如都按国家行政区划编码来处理的,你程序就可以处理,不然只能人工处理。
Eiden

Eiden      1 小时 57 分钟前

把淘宝的地址库遍历一遍, 再去逆向一下手机京东里面的根据经纬坐标选地址的接口, 用淘宝的坐标离线跑一遍不就能建立对应关系了, 做一遍就行
IXTqQPB.png
lxbuuilx

lxbuuilx      7 分钟前

@cnhongwei 没法按照国家码,京东和淘宝给的地址码都不是国家标准码
lxbuuilx

lxbuuilx      6 分钟前

@Eiden 这个想法可以,我试试,感谢大佬

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK