将全库资金金额从 float64 迁移到 shopspring/decimal,落定边界架构: 入口 NewFromFloat → 内部多步运算全程 decimal → 出口 InexactFloat64; DB NUMERIC(20,10) 走 driver.Valuer 精确直传,Redis 钱包用整数 micro-USD, CNY→USD 换汇仅在 payment.FulfillOrder recharge 分支。 - money.go 重写为 decimal 原生(运算/收敛/比较/边界/micro 工具) - billing/tenant/admin/payment/open/task 各层金额运算 decimal 化 - entity/do 资金列重生成为 decimal.Decimal(可空列 *decimal.Decimal) - 000013 迁移:非金额 NUMERIC 列 → double precision(5 表 13 列) - Res 出口 .InexactFloat64() 收敛,JSONB 快照缝隙显式转 float64 - CLAUDE.md 新增 decimal 强约束;补充迁移基线/完成总结文档
26 lines
1.1 KiB
Go
26 lines
1.1 KiB
Go
// =================================================================================
|
|
// Code generated and maintained by GoFrame CLI tool. DO NOT EDIT.
|
|
// =================================================================================
|
|
|
|
package do
|
|
|
|
import (
|
|
"github.com/gogf/gf/v2/frame/g"
|
|
"github.com/gogf/gf/v2/os/gtime"
|
|
"github.com/shopspring/decimal"
|
|
)
|
|
|
|
// TntProjects is the golang structure of table tnt_projects for DAO operations like Where/Data.
|
|
type TntProjects struct {
|
|
g.Meta `orm:"table:tnt_projects, do:true"`
|
|
Id any // 主键ID
|
|
TenantId any // 所属租户ID
|
|
Name any // 项目名称
|
|
Description any // 项目描述
|
|
Status any // 状态:active(活跃)/ archived(归档)/ budget_exhausted(预算耗尽)
|
|
Budget *decimal.Decimal // 项目预算上限(NUMERIC(20,10) 金额,NULL 表示不限制)
|
|
CreatedBy any // 创建者用户ID
|
|
CreatedAt *gtime.Time // 创建时间
|
|
UpdatedAt *gtime.Time // 更新时间
|
|
}
|