Files
platform/web/services/user.go

55 lines
1022 B
Go

package services
import (
q "platform/web/queries"
"time"
)
var User = &userService{}
type userService struct{}
func (s *userService) RechargeConfirm(tradeNo string, verified *TradeSuccessResult) error {
err := q.Q.Transaction(func(tx *q.Query) error {
// 更新交易状态
trade, err := Trade.OnTradeCreated(tx, &OnTradeCreateData{
TradeNo: tradeNo,
TradeSuccessResult: *verified,
})
if err != nil {
return err
}
// 更新用户余额
user, err := tx.User.
Where(tx.User.ID.Eq(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(trade.Amount)))
if err != nil {
return err
}
return nil
})
if err != nil {
return err
}
return nil
}
func (s *userService) RechargeCancel(tradeNo string, now time.Time) error {
panic("not implemented")
}
func (s *userService) RechargeRefund(tradeNo string, now time.Time) error {
panic("not implemented")
}