调整交易和账单模型,完善支付与用户余额基础处理逻辑
This commit is contained in:
@@ -44,12 +44,21 @@ func CreateResourceByBalance(c *fiber.Ctx) error {
|
||||
}
|
||||
|
||||
// 计算价格
|
||||
var amount = 0
|
||||
var payment = 0
|
||||
var amount = 100
|
||||
var payment = 100
|
||||
|
||||
// 检查余额
|
||||
if user.Balance < float64(req.Quota)/100 {
|
||||
return errors.New("余额不足")
|
||||
if user.Balance < float64(amount)/100 {
|
||||
return fiber.NewError(fiber.StatusBadRequest, "余额不足")
|
||||
}
|
||||
|
||||
// 更新用户余额
|
||||
user.Balance -= float64(payment)
|
||||
_, err = q.User.
|
||||
Where(q.User.ID.Eq(authContext.Payload.Id)).
|
||||
Update(q.User.Balance, user.Balance)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
// 创建资源
|
||||
@@ -73,26 +82,18 @@ func CreateResourceByBalance(c *fiber.Ctx) error {
|
||||
return err
|
||||
}
|
||||
|
||||
// 更新用户余额
|
||||
user.Balance -= float64(payment)
|
||||
_, err = q.User.
|
||||
Where(q.User.ID.Eq(authContext.Payload.Id)).
|
||||
Update(q.User.Balance, user.Balance)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
// 生成账单
|
||||
bill := m.Bill{
|
||||
UserID: authContext.Payload.Id,
|
||||
ResourceID: resource.ID,
|
||||
BillNo: services.ID.GenReadable("bil"),
|
||||
Type: 1,
|
||||
Info: "购买套餐",
|
||||
Amount: float64(amount),
|
||||
Payment: float64(payment),
|
||||
Type: 1,
|
||||
Status: 1,
|
||||
}
|
||||
err = q.Bill.Save(&bill)
|
||||
err = q.Bill.
|
||||
Omit(q.Bill.TradeID, q.Bill.RefundID).
|
||||
Create(&bill)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
@@ -103,7 +104,7 @@ func CreateResourceByBalance(c *fiber.Ctx) error {
|
||||
return err
|
||||
}
|
||||
|
||||
return errors.New("not implemented")
|
||||
return nil
|
||||
}
|
||||
|
||||
// endregion
|
||||
|
||||
Reference in New Issue
Block a user