重构支付接口,以动态支持多种产品类型,整合长短效套餐的购买支付逻辑;引入 decimal 类型的金额计算;
This commit is contained in:
@@ -35,7 +35,7 @@ func newBill(db *gorm.DB, opts ...gen.DOOption) bill {
|
||||
_bill.BillNo = field.NewString(tableName, "bill_no")
|
||||
_bill.Info = field.NewString(tableName, "info")
|
||||
_bill.Type = field.NewInt32(tableName, "type")
|
||||
_bill.Amount = field.NewFloat64(tableName, "amount")
|
||||
_bill.Amount = field.NewField(tableName, "amount")
|
||||
_bill.CreatedAt = field.NewField(tableName, "created_at")
|
||||
_bill.UpdatedAt = field.NewField(tableName, "updated_at")
|
||||
_bill.DeletedAt = field.NewField(tableName, "deleted_at")
|
||||
@@ -76,18 +76,18 @@ type bill struct {
|
||||
billDo
|
||||
|
||||
ALL field.Asterisk
|
||||
ID field.Int32 // 账单ID
|
||||
UserID field.Int32 // 用户ID
|
||||
TradeID field.Int32 // 订单ID
|
||||
ResourceID field.Int32 // 套餐ID
|
||||
RefundID field.Int32 // 退款ID
|
||||
BillNo field.String // 易读账单号
|
||||
Info field.String // 产品可读信息
|
||||
Type field.Int32 // 账单类型:1-消费,2-退款,3-充值
|
||||
Amount field.Float64 // 账单金额
|
||||
CreatedAt field.Field // 创建时间
|
||||
UpdatedAt field.Field // 更新时间
|
||||
DeletedAt field.Field // 删除时间
|
||||
ID field.Int32 // 账单ID
|
||||
UserID field.Int32 // 用户ID
|
||||
TradeID field.Int32 // 订单ID
|
||||
ResourceID field.Int32 // 套餐ID
|
||||
RefundID field.Int32 // 退款ID
|
||||
BillNo field.String // 易读账单号
|
||||
Info field.String // 产品可读信息
|
||||
Type field.Int32 // 账单类型:1-消费,2-退款,3-充值
|
||||
Amount field.Field // 账单金额
|
||||
CreatedAt field.Field // 创建时间
|
||||
UpdatedAt field.Field // 更新时间
|
||||
DeletedAt field.Field // 删除时间
|
||||
Trade billBelongsToTrade
|
||||
|
||||
Refund billBelongsToRefund
|
||||
@@ -117,7 +117,7 @@ func (b *bill) updateTableName(table string) *bill {
|
||||
b.BillNo = field.NewString(table, "bill_no")
|
||||
b.Info = field.NewString(table, "info")
|
||||
b.Type = field.NewInt32(table, "type")
|
||||
b.Amount = field.NewFloat64(table, "amount")
|
||||
b.Amount = field.NewField(table, "amount")
|
||||
b.CreatedAt = field.NewField(table, "created_at")
|
||||
b.UpdatedAt = field.NewField(table, "updated_at")
|
||||
b.DeletedAt = field.NewField(table, "deleted_at")
|
||||
|
||||
@@ -31,8 +31,8 @@ func newCoupon(db *gorm.DB, opts ...gen.DOOption) coupon {
|
||||
_coupon.UserID = field.NewInt32(tableName, "user_id")
|
||||
_coupon.Code = field.NewString(tableName, "code")
|
||||
_coupon.Remark = field.NewString(tableName, "remark")
|
||||
_coupon.Amount = field.NewFloat64(tableName, "amount")
|
||||
_coupon.MinAmount = field.NewFloat64(tableName, "min_amount")
|
||||
_coupon.Amount = field.NewField(tableName, "amount")
|
||||
_coupon.MinAmount = field.NewField(tableName, "min_amount")
|
||||
_coupon.Status = field.NewInt32(tableName, "status")
|
||||
_coupon.ExpireAt = field.NewField(tableName, "expire_at")
|
||||
_coupon.CreatedAt = field.NewField(tableName, "created_at")
|
||||
@@ -48,17 +48,17 @@ type coupon struct {
|
||||
couponDo
|
||||
|
||||
ALL field.Asterisk
|
||||
ID field.Int32 // 优惠券ID
|
||||
UserID field.Int32 // 用户ID
|
||||
Code field.String // 优惠券代码
|
||||
Remark field.String // 优惠券备注
|
||||
Amount field.Float64 // 优惠券金额
|
||||
MinAmount field.Float64 // 最低消费金额
|
||||
Status field.Int32 // 优惠券状态:0-未使用,1-已使用,2-已过期
|
||||
ExpireAt field.Field // 过期时间
|
||||
CreatedAt field.Field // 创建时间
|
||||
UpdatedAt field.Field // 更新时间
|
||||
DeletedAt field.Field // 删除时间
|
||||
ID field.Int32 // 优惠券ID
|
||||
UserID field.Int32 // 用户ID
|
||||
Code field.String // 优惠券代码
|
||||
Remark field.String // 优惠券备注
|
||||
Amount field.Field // 优惠券金额
|
||||
MinAmount field.Field // 最低消费金额
|
||||
Status field.Int32 // 优惠券状态:0-未使用,1-已使用,2-已过期
|
||||
ExpireAt field.Field // 过期时间
|
||||
CreatedAt field.Field // 创建时间
|
||||
UpdatedAt field.Field // 更新时间
|
||||
DeletedAt field.Field // 删除时间
|
||||
|
||||
fieldMap map[string]field.Expr
|
||||
}
|
||||
@@ -79,8 +79,8 @@ func (c *coupon) updateTableName(table string) *coupon {
|
||||
c.UserID = field.NewInt32(table, "user_id")
|
||||
c.Code = field.NewString(table, "code")
|
||||
c.Remark = field.NewString(table, "remark")
|
||||
c.Amount = field.NewFloat64(table, "amount")
|
||||
c.MinAmount = field.NewFloat64(table, "min_amount")
|
||||
c.Amount = field.NewField(table, "amount")
|
||||
c.MinAmount = field.NewField(table, "min_amount")
|
||||
c.Status = field.NewInt32(table, "status")
|
||||
c.ExpireAt = field.NewField(table, "expire_at")
|
||||
c.CreatedAt = field.NewField(table, "created_at")
|
||||
|
||||
@@ -30,7 +30,7 @@ func newRefund(db *gorm.DB, opts ...gen.DOOption) refund {
|
||||
_refund.ID = field.NewInt32(tableName, "id")
|
||||
_refund.TradeID = field.NewInt32(tableName, "trade_id")
|
||||
_refund.ProductID = field.NewInt32(tableName, "product_id")
|
||||
_refund.Amount = field.NewFloat64(tableName, "amount")
|
||||
_refund.Amount = field.NewField(tableName, "amount")
|
||||
_refund.Reason = field.NewString(tableName, "reason")
|
||||
_refund.Status = field.NewInt32(tableName, "status")
|
||||
_refund.CreatedAt = field.NewField(tableName, "created_at")
|
||||
@@ -46,15 +46,15 @@ type refund struct {
|
||||
refundDo
|
||||
|
||||
ALL field.Asterisk
|
||||
ID field.Int32 // 退款ID
|
||||
TradeID field.Int32 // 订单ID
|
||||
ProductID field.Int32 // 产品ID
|
||||
Amount field.Float64 // 退款金额
|
||||
Reason field.String // 退款原因
|
||||
Status field.Int32 // 退款状态:0-待处理,1-已退款,2-已拒绝
|
||||
CreatedAt field.Field // 创建时间
|
||||
UpdatedAt field.Field // 更新时间
|
||||
DeletedAt field.Field // 删除时间
|
||||
ID field.Int32 // 退款ID
|
||||
TradeID field.Int32 // 订单ID
|
||||
ProductID field.Int32 // 产品ID
|
||||
Amount field.Field // 退款金额
|
||||
Reason field.String // 退款原因
|
||||
Status field.Int32 // 退款状态:0-待处理,1-已退款,2-已拒绝
|
||||
CreatedAt field.Field // 创建时间
|
||||
UpdatedAt field.Field // 更新时间
|
||||
DeletedAt field.Field // 删除时间
|
||||
|
||||
fieldMap map[string]field.Expr
|
||||
}
|
||||
@@ -74,7 +74,7 @@ func (r *refund) updateTableName(table string) *refund {
|
||||
r.ID = field.NewInt32(table, "id")
|
||||
r.TradeID = field.NewInt32(table, "trade_id")
|
||||
r.ProductID = field.NewInt32(table, "product_id")
|
||||
r.Amount = field.NewFloat64(table, "amount")
|
||||
r.Amount = field.NewField(table, "amount")
|
||||
r.Reason = field.NewString(table, "reason")
|
||||
r.Status = field.NewInt32(table, "status")
|
||||
r.CreatedAt = field.NewField(table, "created_at")
|
||||
|
||||
@@ -50,7 +50,7 @@ type resourceLong struct {
|
||||
ID field.Int32 // ID
|
||||
ResourceID field.Int32 // 套餐ID
|
||||
Type field.Int32 // 套餐类型:1-包时,2-包量
|
||||
Live field.Int32 // 可用时长(秒)
|
||||
Live field.Int32 // 可用时长(天)
|
||||
Expire field.Field // 过期时间
|
||||
Quota field.Int32 // 配额数量
|
||||
Used field.Int32 // 已用数量
|
||||
|
||||
@@ -34,8 +34,8 @@ func newTrade(db *gorm.DB, opts ...gen.DOOption) trade {
|
||||
_trade.Type = field.NewInt32(tableName, "type")
|
||||
_trade.Subject = field.NewString(tableName, "subject")
|
||||
_trade.Remark = field.NewString(tableName, "remark")
|
||||
_trade.Amount = field.NewFloat64(tableName, "amount")
|
||||
_trade.Payment = field.NewFloat64(tableName, "payment")
|
||||
_trade.Amount = field.NewField(tableName, "amount")
|
||||
_trade.Payment = field.NewField(tableName, "payment")
|
||||
_trade.Method = field.NewInt32(tableName, "method")
|
||||
_trade.Status = field.NewInt32(tableName, "status")
|
||||
_trade.PayURL = field.NewString(tableName, "pay_url")
|
||||
@@ -54,23 +54,23 @@ type trade struct {
|
||||
tradeDo
|
||||
|
||||
ALL field.Asterisk
|
||||
ID field.Int32 // 订单ID
|
||||
UserID field.Int32 // 用户ID
|
||||
InnerNo field.String // 内部订单号
|
||||
OuterNo field.String // 外部订单号
|
||||
Type field.Int32 // 订单类型:1-购买产品,2-充值余额
|
||||
Subject field.String // 订单主题
|
||||
Remark field.String // 订单备注
|
||||
Amount field.Float64 // 订单总金额
|
||||
Payment field.Float64 // 支付金额
|
||||
Method field.Int32 // 支付方式:1-支付宝,2-微信
|
||||
Status field.Int32 // 订单状态:0-待支付,1-已支付,2-已取消,3-已退款
|
||||
PayURL field.String // 支付链接
|
||||
PaidAt field.Field // 支付时间
|
||||
CancelAt field.Field // 取消时间
|
||||
CreatedAt field.Field // 创建时间
|
||||
UpdatedAt field.Field // 更新时间
|
||||
DeletedAt field.Field // 删除时间
|
||||
ID field.Int32 // 订单ID
|
||||
UserID field.Int32 // 用户ID
|
||||
InnerNo field.String // 内部订单号
|
||||
OuterNo field.String // 外部订单号
|
||||
Type field.Int32 // 订单类型:1-购买产品,2-充值余额
|
||||
Subject field.String // 订单主题
|
||||
Remark field.String // 订单备注
|
||||
Amount field.Field // 订单总金额
|
||||
Payment field.Field // 支付金额
|
||||
Method field.Int32 // 支付方式:1-支付宝,2-微信
|
||||
Status field.Int32 // 订单状态:0-待支付,1-已支付,2-已取消,3-已退款
|
||||
PayURL field.String // 支付链接
|
||||
PaidAt field.Field // 支付时间
|
||||
CancelAt field.Field // 取消时间
|
||||
CreatedAt field.Field // 创建时间
|
||||
UpdatedAt field.Field // 更新时间
|
||||
DeletedAt field.Field // 删除时间
|
||||
|
||||
fieldMap map[string]field.Expr
|
||||
}
|
||||
@@ -94,8 +94,8 @@ func (t *trade) updateTableName(table string) *trade {
|
||||
t.Type = field.NewInt32(table, "type")
|
||||
t.Subject = field.NewString(table, "subject")
|
||||
t.Remark = field.NewString(table, "remark")
|
||||
t.Amount = field.NewFloat64(table, "amount")
|
||||
t.Payment = field.NewFloat64(table, "payment")
|
||||
t.Amount = field.NewField(table, "amount")
|
||||
t.Payment = field.NewField(table, "payment")
|
||||
t.Method = field.NewInt32(table, "method")
|
||||
t.Status = field.NewInt32(table, "status")
|
||||
t.PayURL = field.NewString(table, "pay_url")
|
||||
|
||||
@@ -36,7 +36,7 @@ func newUser(db *gorm.DB, opts ...gen.DOOption) user {
|
||||
_user.Name = field.NewString(tableName, "name")
|
||||
_user.Avatar = field.NewString(tableName, "avatar")
|
||||
_user.Status = field.NewInt32(tableName, "status")
|
||||
_user.Balance = field.NewFloat64(tableName, "balance")
|
||||
_user.Balance = field.NewField(tableName, "balance")
|
||||
_user.IDType = field.NewInt32(tableName, "id_type")
|
||||
_user.IDNo = field.NewString(tableName, "id_no")
|
||||
_user.IDToken = field.NewString(tableName, "id_token")
|
||||
@@ -63,22 +63,22 @@ type user struct {
|
||||
Phone field.String // 手机号码
|
||||
Username field.String // 用户名
|
||||
Email field.String
|
||||
Password field.String // 用户密码
|
||||
Name field.String // 真实姓名
|
||||
Avatar field.String // 头像URL
|
||||
Status field.Int32 // 用户状态:0-禁用,1-正常
|
||||
Balance field.Float64 // 账户余额
|
||||
IDType field.Int32 // 认证类型:0-未认证,1-个人认证,2-企业认证
|
||||
IDNo field.String // 身份证号或营业执照号
|
||||
IDToken field.String // 身份验证标识
|
||||
ContactQQ field.String // QQ联系方式
|
||||
ContactWechat field.String // 微信联系方式
|
||||
LastLogin field.Field // 最后登录时间
|
||||
LastLoginHost field.String // 最后登录地址
|
||||
LastLoginAgent field.String // 最后登录代理
|
||||
CreatedAt field.Field // 创建时间
|
||||
UpdatedAt field.Field // 更新时间
|
||||
DeletedAt field.Field // 删除时间
|
||||
Password field.String // 用户密码
|
||||
Name field.String // 真实姓名
|
||||
Avatar field.String // 头像URL
|
||||
Status field.Int32 // 用户状态:0-禁用,1-正常
|
||||
Balance field.Field // 账户余额
|
||||
IDType field.Int32 // 认证类型:0-未认证,1-个人认证,2-企业认证
|
||||
IDNo field.String // 身份证号或营业执照号
|
||||
IDToken field.String // 身份验证标识
|
||||
ContactQQ field.String // QQ联系方式
|
||||
ContactWechat field.String // 微信联系方式
|
||||
LastLogin field.Field // 最后登录时间
|
||||
LastLoginHost field.String // 最后登录地址
|
||||
LastLoginAgent field.String // 最后登录代理
|
||||
CreatedAt field.Field // 创建时间
|
||||
UpdatedAt field.Field // 更新时间
|
||||
DeletedAt field.Field // 删除时间
|
||||
|
||||
fieldMap map[string]field.Expr
|
||||
}
|
||||
@@ -104,7 +104,7 @@ func (u *user) updateTableName(table string) *user {
|
||||
u.Name = field.NewString(table, "name")
|
||||
u.Avatar = field.NewString(table, "avatar")
|
||||
u.Status = field.NewInt32(table, "status")
|
||||
u.Balance = field.NewFloat64(table, "balance")
|
||||
u.Balance = field.NewField(table, "balance")
|
||||
u.IDType = field.NewInt32(table, "id_type")
|
||||
u.IDNo = field.NewString(table, "id_no")
|
||||
u.IDToken = field.NewString(table, "id_token")
|
||||
|
||||
Reference in New Issue
Block a user