mirror of
https://gitee.com/zoujingli/ThinkAdmin.git
synced 2026-06-08 04:48:10 +08:00
将多处基于浮点的数值计算替换为 BC Math 字符串运算以避免浮点精度问题,涉及支付、退款、转账、比较与统计逻辑的重构。主要改动包括: - 将比较与判断替换为 bccomp,累加与合并使用 bcadd,乘以 100 等使用 bcmul; - 将部分初始数值与统计结果从数值类型改为字符串形式(如 '0.00'),并调整相关返回类型(如 Payment::paidAmount 改为返回 string); - 修正订单/退款金额计算与超额校验逻辑以使用高精度算术; - 更新微信支付相关 SDK 调用中金额乘 100 的计算以避免精度误差; - 在若干插件中用高精度运算替换 floatval/int 转换(包括 SystemQueue、Wemall、Wuma 等); - 更新文档(readme)添加 BC Math/高精度计算等说明并统一版权年份至 2014-2026; - 新增 .copilot-commit-message-instructions.md(提交信息规范)。 此改动旨在增强金融/金额相关业务的计算正确性与一致性,避免因浮点运算导致的金额误差。
120 lines
8.1 KiB
Markdown
120 lines
8.1 KiB
Markdown
# ThinkAdminDeveloper for ThinkAdmin
|
||
|
||
**ThinkAdminDeveloper** 是基于 **ThinkAdmin** 插件机制开发的微商城系统及其他扩展插件。
|
||
该仓库包含 `ThinkAdmin` 的同步组件及插件,如:**多端账号插件**、**插件中心管理**、**多端支付插件**、**多端微商系统**、**一物一码系统** 等,此库仅用于开发并自动分发代码,后期会以插件生态方式发布。
|
||
|
||
**注意:** 此库包含部分 **ThinkAdmin** 会员授权插件,其中 **ThinkPlugsWuma** 为收费授权插件,未获得授权仅可用于本地测试体验使用,不得刻意传播或 **fork** 此仓库保存代码。
|
||
|
||
## 关于项目
|
||
|
||
**ThinkAdmin** 是一款遵循 MIT 协议的开源快速开发框架,基于 **ThinkPHP6**(兼容 **ThinkPHP8**)构建。在使用前,请务必阅读《免责声明》并同意相关条款。
|
||
|
||
我们致力于构建高效的底层框架,简化项目开发流程,提供完整的基础组件和 API 支持,助力快速开发各类 WEB 应用。框架免费提供系统权限管理、存储配置、微信授权等基础功能,成为外包开发团队的得力助手,目前已有超过 5 万个项目基于此框架运行。
|
||
|
||
**ThinkAdmin** v6 是对 v1 至 v5 的重构之作,结合 **ThinkPHP** 6 和 8 的设计思路,彻底改造系统,保留原生生态支持。我们精简了非必需组件,构建了自定义存储层、服务层和高效队列机制,并新增用户友好的指令,提升操作体验。经过严格测试,v6.1 版本展现出卓越的稳定性,系统和微信模块已达到高稳定水平。
|
||
|
||
### 核心组件与插件体系
|
||
|
||
**ThinkLibrary 核心组件**
|
||
- **标准控制器基类**: 提供完整的 CRUD 操作封装,包括分页、表单、验证、队列等通用功能
|
||
- **基础模型类**: 实现魔术方法和静态助手调用,支持操作日志记录和数据一致性保障
|
||
- **自定义服务基类**: 提供依赖注入和实例化机制,支持服务的统一管理和扩展
|
||
- **全局函数库**: 包含数据处理、系统配置、HTTP 请求、JWT 认证等实用函数
|
||
- **PSR-12 标准**: 严格遵循 PHP-FIG 编码规范,确保代码质量和可维护性
|
||
- **高精度计算支持**: 集成 BC Math 高精度数学函数,确保金融计算的准确性
|
||
|
||
**ThinkPlugsAccount 多端账号插件**
|
||
- **三层账号模型**: 临时用户(usid) ↔ 绑定手机(bind) ↔ 正式用户(unid) 的完整账号生命周期
|
||
- **多端统一账号**: 支持微信服务号、微信小程序、APP、网页等多终端统一账号体系
|
||
- **JWT无状态认证**: 基于 JWT Token 的无状态认证机制,支持跨域和分布式部署
|
||
- **动态通道注册**: 支持运行时动态注册新的登录通道类型,灵活扩展登录方式
|
||
- **高并发安全**: 支持高并发场景下的账号创建和绑定操作,确保数据一致性
|
||
|
||
**ThinkPlugsPayment 多端支付插件**
|
||
- **多端支付支持**: 支持微信服务号、微信小程序、APP、网页等多终端支付场景
|
||
- **混合支付模式**: 支持余额、积分、微信、支付宝等多种支付方式组合使用
|
||
- **高精度金融计算**: 使用 BC Math 高精度数学函数,确保金融计算的准确性
|
||
- **支付事件驱动**: 通过支付事件(审核、完成、取消、确认)实现业务逻辑解耦
|
||
- **退款管理**: 支持部分退款和全额退款,自动处理余额、积分的退回操作
|
||
- **数据库约束优化**: 添加金额非负约束、状态枚举约束,确保数据完整性
|
||
|
||
**ThinkPlugsWemall 微商城插件**
|
||
- **多级分销体系**: 支持三级分销模式,可配置不同等级的代理返佣规则
|
||
- **灵活返佣机制**: 支持下单奖励、首购奖励、复购奖励、升级奖励、平推返佣等多种返佣类型
|
||
- **会员等级管理**: 基于订单金额和数量的自动等级升级,支持自定义等级规则
|
||
- **代理等级管理**: 团队业绩统计,支持多维度的代理等级升级条件
|
||
- **商品管理系统**: 完整的商品分类、规格、库存、价格管理
|
||
- **订单全流程管理**: 从下单、支付、发货到售后的完整订单生命周期管理
|
||
- **高精度计算保障**: 全面采用 BC Math 高精度计算,避免浮点数精度丢失问题
|
||
|
||
**其他插件**
|
||
- **ThinkPlugsCenter**: 插件服务管理中心,提供插件注册、配置和管理功能
|
||
- **ThinkPlugsHelper**: 系统辅助工具,包含数据库备份、索引优化等功能
|
||
- **ThinkPlugsStatic**: 静态资源管理,支持 CDN 加速和资源版本控制
|
||
- **ThinkPlugsWechat**: 微信生态集成,支持公众号、小程序、支付等微信功能
|
||
- **ThinkPlugsWorker**: 异步任务处理,支持延时执行和循环任务
|
||
- **ThinkPlugsWuma**: 一物一码系统,支持商品溯源和防伪验证(收费插件)
|
||
|
||
### 技术特性
|
||
|
||
**高性能架构**
|
||
- **异步任务处理**: 内置高效队列机制,响应延时低于 0.5 秒
|
||
- **缓存优化**: 集成 Redis 缓存,提升系统性能和响应速度
|
||
- **数据库约束**: 添加完整的外键约束、检查约束和索引优化
|
||
- **并发安全控制**: 支持高并发场景下的余额、积分、库存操作
|
||
|
||
**安全特性**
|
||
- **CSRF 令牌验证**: 内置表单安全验证,防止跨站请求伪造攻击
|
||
- **数据完整性保障**: 通过数据库约束确保业务数据的一致性和有效性
|
||
- **异常处理完善**: 完善的异常捕获和日志记录机制,便于问题排查
|
||
- **权限控制**: 完整的系统权限管理,确保数据安全
|
||
|
||
**开发体验**
|
||
- **模块化设计**: 各功能模块独立封装,便于扩展和维护
|
||
- **向后兼容**: 保持 API 稳定性,确保平滑升级
|
||
- **文档完善**: 提供完整的接口文档和技术文档
|
||
- **调试友好**: 内置调试工具和日志记录,便于开发和问题排查
|
||
|
||
我们持续推出新模块和辅助功能,期待后续更新!使用 **ThinkAdmin** 需要具备一定开发技能,包括 ThinkPHP、jQuery、LayUI 和 RequireJs。后台 UI 基于最新 LayUI 前端框架,支持插件加载和管理。
|
||
|
||
请勿修改 app/admin 和 app/wechat 目录,以确保未来功能和安全更新通过 Composer 管理。ThinkLibrary 作为核心组件,封装了常用操作,兼容原有 ThinkPHP 生态,降低编码复杂性。
|
||
|
||
开发者可灵活集成 WechatDeveloper 组件,支持微信公众号、小程序及支付接口,并集成二维码生成工具。系统提供多种存储选项,包括本地、自建 Alist 及主流云服务,支持 CDN 加速,确保高效传输。
|
||
|
||
内置的异步任务处理机制可并行处理多个任务,响应延时低于 0.5 秒,确保在 Windows 和 Linux 平台上的兼容性。遇到问题请随时联系我们的支持团队。感谢您选择 ThinkAdmin,我们将持续改进框架功能,更好服务开发者社区。
|
||
|
||
### 安装系统
|
||
|
||
直接使用 **composer** 安装,可提前配置好数据库参数,安装脚本会自动完成安装!
|
||
|
||
```shell
|
||
# 安装依赖组件及插件
|
||
composer update --optimize-autoloader
|
||
|
||
# 运行本地测试环境,启用 8088 商品
|
||
php think run --host 127.0.0.1 --port 8088
|
||
|
||
# 打开浏览器访问网站 ( Windows )
|
||
start http://127.0.0.1:8088
|
||
```
|
||
|
||
### 开发文档
|
||
|
||
* 官方技术文档:[thinkadmin.top](http://thinkadmin.top)
|
||
* 前端接口文档:[ThinkAdminMobile](https://thinkadmin.apifox.cn)
|
||
|
||
### 加入我们
|
||
|
||
我们的代码仓库已移至 **Github**,而 **Gitee** 则仅作为国内镜像仓库,方便广大开发者获取和使用。若想提交 **PR** 或 **ISSUE** 请在 [ThinkAdminDeveloper](https://github.com/zoujingli/ThinkAdminDeveloper) 仓库进行操作,如果在其他仓库操作或提交问题将无法处理!。
|
||
|
||
### 版权说明
|
||
|
||
除免费开源部分外的功能,需要参照下列方式获取授权。
|
||
项目的 `./plugin/` 为插件目录,每个插件都有独立声明授权方式,使用前请认证阅读。
|
||
|
||
* 会员授权: [《会员尊享介绍》](https://thinkadmin.top/vip-introduce)
|
||
* 收费授权:请通过文档中微信二维码联系作者。
|
||
|
||
版权所有 Copyright © 2014-2026 by ThinkAdmin (https://thinkadmin.top) All rights reserved。
|
||
|
||
<img alt="" src="https://thinkadmin.top/static/img/wx.png" width="250"> |