package services import ( q "platform/web/queries" ) var User = &userService{} type userService struct{} func (s *userService) RechargeConfirm(tradeNo string, verified *TransactionVerifyResult) error { err := q.Q.Transaction(func(tx *q.Query) error { // 更新交易状态 result, err := Transaction.CompleteTransaction(tx, &TransactionCompleteData{ TradeNo: tradeNo, TransactionVerifyResult: *verified, }) if err != nil { return err } // 更新用户余额 user, err := tx.User. Where(tx.User.ID.Eq(result.Trade.UserID)).Take() if err != nil { return err } _, err = tx.User. Where(tx.User.ID.Eq(user.ID)). UpdateSimple(tx.User.Balance.Value(user.Balance.Add(result.Trade.Amount))) if err != nil { return err } return nil }) if err != nil { return err } return nil }