项目背景: 智慧水务平台是为水务公司提供的一整套业务解决方案,包含了水务公司由上至下所有的业务,打造完善的水务平台系统。 总共分为12个子系统的微服务架构,负责其中最主要的营收系统模块,次等重要的报装系统,设备系统以及次要的客服管理系统。
1.营收系统
1.1 工程环境: springcloud-alibaba+rocketMq+mysql+redis+xxljob+minio+rancher2.0
1.2 技术使用: 使用springcloud-alibaba作为微服务框架,redis作为缓存服务,xxl-job作为定时任务中心,minio作为文件服务器,部署于rancher管理docker容器镜像。
1.3 技术难点:
1.3.1 营收系统主要功能即为远程收费,后台同时负责web端与微信公众号端的api接口开发,对接了微信native扫码支付、微信JsApi公众号支付、支付宝支付、银联支付等多个主流支付接口,设计采取工厂模式+模板策略模式实现了统一接口不同策略的选择。完整实现了低耦合高扩展的架构目标。
1.3.2 针对水务系统设计了账单明细→账单→父子订单的相关数据结构,满足了缴费充值同时进行,并且对充值缴费各种情况(例如:充值到父子账户,充值到物联网水表,充值到IC卡等不同的情况)进行整合处理,采取枚举策略的方式智能选择不同的充值、缴费策略进行整合。保证了复杂关系的整体架构清晰,可读性、扩展性、安全性俊得到保障。
1.3.3 针对水务公司的自定义票据模板需求,采取word预定义站位标识→转换PDF的方式,实现了页面动态票据模板编辑功能。调研并研究了一整套word填充工具,word转换pdf保证字体行距等属性不丢失的第三方工具部分改写等。
1.3.4 针对水务公司不同表类型需求,设计并实现根据不同类型的表采取不同计费模块的收费结构。例如,机械表采取月结后付费模式,每月生成账单,用户后交费。而智能表采取上报即结算,实时更新价格余额方式。需要在当前账单体系下,将两者同时兼容。同时考虑与智能表通信时所可能发生的异常情况及事务一致性,补偿机制等等因素。