Novex 项目概要设计
Novex 项目名称由 Nova(新星,一类由于核爆炸而在数月之内异常明亮的恒星)和 Ex(超越)两个概念构成,寓意在前一版本的基础上实现全方位的升级与超越。该文档旨在说明 Novex 相较于上一版本项目的主要升级内容和设计理念。
项目背景及目的
在原有系统的基础上,我们发现随着业务需求的不断增长,现有系统在架构、性能以及扩展性上存在不足。因此,新项目以“新星”的理念为出发点,借助最新的技术手段和架构优化,实现以下目标:
- 架构升级:引入最新的主流框架与设计模式,提高系统的可维护性与扩展性。
- 性能优化:通过代码优化和系统重构,解决前版本中的性能瓶颈,提升响应速度。
- 功能扩展:在保留原有业务逻辑的基础上,增加新功能模块,以满足不断上升的业务需求。
关键升级点
-
技术栈更新
- 使用最新的 SpringBoot 3.x、MyBatis-Flex 等技术对系统进行全面重构。
- 利用 Java SDK 21 的新特性,既保证系统稳定性,又进一步提升开发效率和运行性能。
-
新增脚本自动升级
- 启动项目自动建库,自动建表,自动升级数据库,无需手动操作。
- 解决以前每次上线缺脚本、漏脚本问题。
-
新增更多支付方式
- 当前仅支持园区卡和现金支付。
- 未来将新增微信、支付宝、银联等主流支付渠道,满足更广泛的支付需求。
-
新增多次支付
- 现行结算缴费仅支持一次性全额支付,不支持分次支付。
- 新增主子单设计,实现多次支付结算功能。
- 支付单和退款单表独立。
-
新增同步与异步结算
- 支持同步与异步方式发起结算,灵活适配不同业务需求。
- 实现结算单同步功能,业务可直接调用支付接口,同时将数据实时同步至结算系统。
-
新增资金模块
- 新增资金流水记录。
- 新增资金操作记录。
- 新增员工账期、系统结算日管理功能。
-
新增公共收银页面
- 各业务单独调用结算系统提供的收银台。
- 客户自行缴费等。
-
新增可视化流程编排
- 模块化与解耦 通过将复杂业务流程拆分成多个独立节点,各个节点之间相对独立,这样一来,如果需要扩展或调整某个功能,只需修改对应的节点,而整体流程不受影响,从而提高了整体系统的可扩展性。
- 灵活的流程编排 使用引擎编排各业务节点,可以在运行时根据实际需求灵活调整流程顺序、增加或删除某些步骤,不必在代码中进行硬编码的变动。这使得系统在面对业务需求变化时,可以更轻松地扩展对应功能。
- 可视化和配置化管理 编排好的图示流程即为代码真实的执行链路,以所见即所得的方式在技术和业务之间架起一道通用语言的桥梁。
-
新增业务作废审核
- 各业务发起作废操作需要审核和消息通知。
- 流程可配置。
-
取消定金转移、转抵扣
- 废弃杭水定制化的定金转移、抵扣。
- 采用其他方案支持。
-
取消组合支付
- 采用多次支付来实现。
-
取消代缴设置
- 和卡关联太紧,暂不考虑。
-
结算业务详情查看优化
- 目前在结算单列表中查看业务详情时采用嵌入式业务链接。
- 后续将根据实际需求,选择通过接口调用或独立页面方式展示业务详情。
-
结算回调业务路径优化
- 目前缴费、退款回调及票据打印 URL 均由业务系统提交给结算。
- 优化回调路径设计,确保各环节调用顺畅、稳定。
-
打印回调优化
- 现阶段结算缴费完成通知为异步方式,可能导致打印调用早于业务处理完成,从而出现打印错误。
- 后续采用同步通知机制或引入打印回调的重试策略,确保打印操作在业务处理完成后执行。
-
性能优化
- 针对所有业务集中接入结算可能带来的大数据量挑战,重点关注高并发场景下的性能瓶颈,并进行专项优化。
-
系统模块化设计
- 以业务逻辑为依据,对系统进行模块化拆分,降低模块间耦合,便于后期维护与功能扩展。
- 引入微服务架构理念,为未来分布式部署奠定坚实基础。
-
用户体验改进
- 在维持原有业务稳定性的前提下,对界面和交互体验进行深度优化,提升用户满意度。
- 加强系统的兼容性和跨平台支持,确保在多终端环境下均能流畅运行。
项目结构规范
- 主工程(Main Project)
- novex-admin // 后台管理模块
- novex-api // 对外API模块(APP、小程序)
- novex-core // 核心结算业务模块
- novex-finance // 资金模块,既负责流水(交易记录)也负责账期(账单管理)
- novex-task // 处理项目中的定时任务、异步任务以及任务调度与触发机制的模块
- novex-common // 公共模块,通用的无状态的类(javabean对象、常量、异常、枚举、错误码、工具类、序列化类等等)、通用的配置(mybatis、心跳、数据库、http、环境变量、reload、重复提交等)
- novex-code-generator // 代码生成器,用于生成特定模块的代码
模块关系图
系统架构图
后续工作计划
- 完成整体系统设计方案的评审与确认。
- 完成数据库、接口等详细设计。
- 分阶段实施系统重构与功能优化,确保每个升级环节可控。
- 通过持续集成和自动化测试保障系统质量。