"仙居链"由仙桃市城市发展投资集团控股,覆盖仙桃及周边2000+建材供应商与施工总包,年交易额35亿元。原交易依赖线下合同、QQ对账、行情Excel群发,效率低、风险高。本项目旨在打造建材供应链交易一体化平台,实现挂牌、竞价、合同、支付、物流、结算全线上闭环,并作为仙桃市数字化改革标杆工程。
核心功能包括:基于状态机的交易全流程数字化(挂牌→竞价→成单→电子合同→在线支付→结算);自研爬虫集群实时采集中国水泥网、钢联数据等8大行情源,归一化生成"仙居链价格指数";以及对接法大大电子签章与工商银行银企直付保障交易安全。系统上线4个月,累计电子合同1.2万份,线上支付流水9.8亿元,平台交易渗透率58%,平均交易周期由4天缩短至8小时。
1. 整体架构
采用Spring Boot 2.7 + Nacos微服务架构,按交易、合同、支付、行情、物流等域拆分服务;前端采用Vue2 + ElementUI(管理端)与H5(交易端);数据层使用MySQL 8 + MyBatis-Plus + Redis;通过RocketMQ实现服务间异步解耦与分布式事务;Docker + Jenkins实现CI/CD。
2. 核心难点一:高对抗性异构数据源抓取与反爬破解
平台需每日8轮抓取中国水泥网、钢联数据等8大行情源,涵盖水泥、钢材、砂石、粉煤灰等品类,但各源反爬策略差异极大:IP限频(单IP<5次/分钟)、JS混淆动态Token、Canvas/WebGL指纹检测、行为验证码等。
我主导设计自适应反爬引擎:基于WebMagic内核,构建分层代理池(住宅代理+机房代理动态轮换,集成健康检查与自动剔除);针对高风控站点,引入指纹浏览器(Playwright)深度伪装,动态篡改Canvas指纹、WebGL渲染器、字体列表、时区等12项浏览器特征,绕过bot检测;针对JS混淆站点,通过逆向工程提取Token生成算法,回退到纯HTTP高效采集模式。最终实现日新增3.2万条,抓取成功率97%。
3. 核心难点二:异构行情数据归一化与价格指数建模
8家行情源字段命名、报价单位、税费模式(含税/不含税、现款/承兑)各不相同,直接入库会导致价格偏差与决策失误。我设计归一化管道引擎:定义统一Schema,通过正则+NLP提取价格数值与单位;建立品类映射字典(如"PO42.5"映射标准水泥标号);设计按交易量与供应商等级加权的动态平均算法,生成"仙居链价格指数"。经与现货价格回归验证,相关性达0.91,已被仙桃市政府造价站采纳为参考依据。
4. 核心难点三:大额支付与库存强一致性保障
集成工商银行银企直付,支持单笔5000万大额对公转账。支付成功与库存扣减跨服务协作,任何不一致都将导致资金风险。