调整交易和账单模型,完善支付与用户余额基础处理逻辑

This commit is contained in:
2025-04-09 16:34:41 +08:00
parent 4c47a71f30
commit 02897db890
10 changed files with 203 additions and 85 deletions

View File

@@ -13,6 +13,7 @@ import (
// region CreateTrade
type CreateTradeReq struct {
Type int `json:"type" validate:"required"` // 交易类型1.充值2.购买
Subject string `json:"subject" validate:"required"`
Remark string `json:"remark"`
Amount int `json:"amount" validate:"required"`
@@ -32,7 +33,9 @@ func CreateTrade(c *fiber.Ctx) error {
return err
}
// 创建交易订单
// 调用外部接口
// 保存交易订单
num, err := services.ID.GenSerial(c.Context())
if err != nil {
return err
@@ -45,15 +48,37 @@ func CreateTrade(c *fiber.Ctx) error {
Amount: float64(req.Amount) / 100,
Method: int32(req.Method),
}
// 调用外部接口
// 保存交易订单
err = q.Trade.Create(&trade)
if err != nil {
return err
}
// 保存用户帐单
var info string
var t int32
switch req.Type {
case 1:
info = "充值余额"
t = 0
case 2:
info = "购买产品"
t = 1
}
bill := m.Bill{
UserID: authContext.Payload.Id,
TradeID: trade.ID,
BillNo: services.ID.GenReadable("bil"),
Info: info,
Type: t,
Status: 0,
}
err = q.Bill.
Omit(q.Bill.ResourceID, q.Bill.RefundID).
Create(&bill)
if err != nil {
return err
}
// 返回结果,外部支付链接
return nil
}