55 lines
1022 B
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")
|
|
}
|