恢复余额功能 & 管理员修改余额功能

This commit is contained in:
2026-03-30 14:59:35 +08:00
parent 22cb2d50d3
commit 4481c581e9
27 changed files with 1246 additions and 204 deletions

View File

@@ -26,21 +26,10 @@ func (s *resourceService) CreateResourceByBalance(user *m.User, data *CreateReso
return core.NewServErr("获取产品支付信息失败", err)
}
newBalance := user.Balance.Sub(detail.Actual)
if newBalance.IsNegative() {
return ErrBalanceNotEnough
}
return q.Q.Transaction(func(q *q.Query) error {
// 更新用户余额
_, err = q.User.
Where(
q.User.ID.Eq(user.ID),
q.User.Balance.Eq(user.Balance),
).
UpdateSimple(q.User.Balance.Value(newBalance))
if err != nil {
if err := User.UpdateBalance(q, user, detail.Actual.Neg(), "余额购买产品", nil); err != nil {
return core.NewServErr("更新用户余额失败", err)
}
@@ -273,13 +262,21 @@ func (data *CreateResourceData) TradeDetail(user *m.User) (*TradeDetail, error)
return nil, err
}
var discountId *int32 = nil
if discount != nil {
discountId = &discount.ID
}
var couponId *int32 = nil
if coupon != nil {
couponId = &coupon.ID
}
return &TradeDetail{
data,
m.TradeTypePurchase,
sku.Name,
amount, actual,
&discount.ID, discount,
&coupon.ID, coupon,
discountId, discount,
couponId, coupon,
}, nil
}