结算模块设计

简介: 支付系统和结算系统关系很密切,在钱收到自己的账户里面,不可能就放在那里不管了,在用户用完产品之后,大家要对对账,看看用户用了我们的什么服务,有哪些要收费的项目,用户需要付那些钱,钱有没有付清楚,钱有没有算错,等用户觉得这些收费没错,确认账单了。

支付系统和结算系统关系很密切,在钱收到自己的账户里面,不可能就放在那里不管了,在用户用完产品之后,大家要对对账,看看用户用了我们的什么服务,有哪些要收费的项目,用户需要付那些钱,钱有没有付清楚,钱有没有算错,等用户觉得这些收费没错,确认账单了。

大家进行结算,这些结算的数据,后面可供财务制作报表,当然财务有另外一套逻辑,但是起码要提供结算的数据。

这里给出一个结算模块关键部分的参考设计

设计

需要保存的内容

账单
账单历史
账单细节
结算单
结算单历史
发票
除了正常的收费之外还有其他的结算项目,那么再增加一些其他的收费信息表

详细的数据

账单:

  • 订单id
  • 应收
  • 实收
  • 价格类型(有时候由于不同的规则,计算应收的方式不同)
  • 会员id
  • 是否确认(账单要展示给用户看,需要用户确认,或者自己人工确认,定时任务确认)
  • 账单确认时间
  • 确认账单来源
  • 结算单id(有账单,一般最终都会进行结算)
  • 结算类型(收费种类不一样,有时候一些结算的方式也进行归类)

账单明细:

  • 收费项目,收费项目的编码,收费项目的名称
  • 订单id
  • 会员id
  • 结算类型
  • 账单id(因为是账单的细节,所以这些细节都会对应到某一个账单上)
  • 结算单id(冗余字段,为了找到对应的结算单)
  • 单价(因为是明细,总有一些收费的基本信息)
  • 数量
  • 减免金额(有的时候,想少收点钱,可以减掉一些钱)
  • 减免类型
  • 应收
  • 实收
  • 排序号
  • 关联id(有时候因为某些收费种类,需要有关联的信息)
  • 关联时间
  • 来源id(有时候要发现账单弄错了,或者需要进行调账,记录上一笔账单的来源)

结算单:

  • 结算单id
  • 结算单号
  • 订单id
  • 结算次数
  • 会员id
  • 结算类型
  • 应收
  • 实收
  • 欠款
  • 退款
  • 各种收款方式的收费金额(微信支付,支付宝支付,银行卡支付,余额支付,押金抵扣,优惠券抵扣),真正收到我们的账户里面的钱
  • 返现积分
  • 一些基本费用类型应收(产品使用费,服务费)
  • 是否冻结(结算单冻结之后不能再操作)
  • 冻结时间
  • 结算时间

开票信息:

  • 订单id
  • 产品可开票金额
  • 服务费可开票金额
  • 产品已开票金额
  • 服务费已开票金额
  • 是否确认

一些注意点

账单什么时候结算?

  1. 确认账单24h之后,定时任务
  2. 订单状态变成完成之后
  3. 后台手动,生成结算单按钮

结算单什么时候冻结?

  1. 首次结算立刻冻结
  2. 定时任务15天进行冻结(二次结算单,非首次结算都叫做二次结算)
  3. 手工冻结

如果已经冻结的结算单,我们再次进行调账的时候,会生成新的结算单,二次结算单一般不会直接冻结,再二次结算单冻结之前,每次进行账单的调整直接更新数据库数据即可,但是最好有个历史数据表,记录每一次数据的更改。

账单在超过一定的时间之后不能进行调整,时间可通过配置中心控制。

最后

本设计仅供参考

相关文章
|
自然语言处理 Java Go
Fury:一个基于JIT动态编译的高性能多语言原生序列化框架
Fury是一个基于JIT动态编译的多语言原生序列化框架,支持Java/Python/Golang/C++等语言,提供全自动的对象多语言/跨语言序列化能力,以及相比于别的框架最高20~200倍的性能。
Fury:一个基于JIT动态编译的高性能多语言原生序列化框架
|
Linux 网络安全 开发工具
【freeSwitch】——centos 7 安装教程及常见问题
【freeSwitch】——centos 7 安装教程及常见问题
1714 0
【freeSwitch】——centos 7 安装教程及常见问题
|
监控 JavaScript 前端开发
|
9月前
|
JavaScript Linux 开发者
Node.js 快速上手:核心特点 + 安装指南
Node.js是Claude Code、OpenAI Codex等AI编程工具的必备运行环境。本文详解其JavaScript全栈、非阻塞I/O、跨平台等核心特性,覆盖Windows/macOS/Linux三端LTS版一键安装方法及常见问题排查,助开发者快速配置本地开发环境。(239字)
2062 9
|
7月前
|
机器学习/深度学习 存储 自然语言处理
大模型应用:Drools+Qwen大模型:企业级智能决策的“规则+底线”双引擎.88
本文介绍Drools规则引擎与大模型融合的“双引擎智能决策”架构:规则引擎严守合规底线,确保刚性风控;大模型负责柔性处理,优化文本、解释原因、识别长尾风险。二者分层协同,实现“合规不失温度、体验不越红线”,为企业数字化转型提供务实高效的智能决策方案。
886 4
|
缓存 JavaScript PHP
斩获开发者口碑!SnowAdmin:基于 Vue3 的高颜值后台管理系统,3 步极速上手!
SnowAdmin 是一款基于 Vue3/TypeScript/Arco Design 的开源后台管理框架,以“清新优雅、开箱即用”为核心设计理念。提供角色权限精细化管理、多主题与暗黑模式切换、动态路由与页面缓存等功能,支持代码规范自动化校验及丰富组件库。通过模块化设计与前沿技术栈(Vite5/Pinia),显著提升开发效率,适合团队协作与长期维护。项目地址:[GitHub](https://github.com/WANG-Fan0912/SnowAdmin)。
1645 5
|
弹性计算
阿里云域名备案流程(图文教程)2025年最新
2025年最新阿里云ICP备案流程图文教程,共5个步骤,最快2天完成备案。首先提交备案材料,阿里云初审(1个工作日内),通过后提交管局,接着进行工信部短信核验,最后等待管局审核(1-20天)。前4步最快1天完成,整体约2-21天。个人或企业均可操作,材料齐全更高效。需搭配阿里云中国大陆地域服务器备案。
9353 18
|
JSON 算法 数据库
使用 BAML 模糊解析改进 LangChain 知识图谱提取:成功率从25%提升到99%
在构建基于知识图谱的检索增强生成(RAG)系统时,从非结构化数据中准确提取节点和关系是一大挑战,尤其在使用小型本地量化模型时表现更差。本文对比了传统 LangChain 提取框架的严格 JSON 解析限制,提出采用 BAML 的模糊解析策略,显著提升知识图谱提取成功率。实验表明,在相同条件下,BAML 将成功率从约 25% 提升至 99% 以上,为构建高效、稳定的 RAG 系统提供了有效解决方案。
558 0
使用 BAML 模糊解析改进 LangChain 知识图谱提取:成功率从25%提升到99%
|
机器学习/深度学习 人工智能 搜索推荐
AI与体育训练:运动表现分析
【10月更文挑战第31天】本文探讨了AI在体育训练中的应用,特别是在运动表现分析方面。通过数据收集与处理、深度分析与挖掘、实时反馈与调整三个环节,AI为运动员和教练提供了高效、个性化的训练计划和比赛策略,显著提升了训练效率和比赛成绩。未来,AI将在数据隐私、情感理解及跨学科合作等方面继续发展,为体育事业带来更多可能性。
1709 1
|
自然语言处理 前端开发 Java
API管理平台:你用的到底是哪个?
本文介绍了多个API管理和文档工具,包括Apifox、Swagger及其增强版Knife4j和RapiDoc、阿里RAP、去哪儿YApi以及Redoc。这些工具各有特色,适用于不同的开发场景。Apifox提供一体化协作平台,支持API文档、调试、Mock和测试;Swagger结合Knife4j适合Java与前端团队,界面美观且功能丰富;YApi则适用于跨语言开发,支持多种API形式的管理;阿里RAP专注于接口文档管理和Mock服务;Redoc则是开源的现代化API文档浏览器。总结而言,选择工具应根据团队需求和技术栈来决定。
5784 16

热门文章

最新文章