You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

41 lines
778 B
Go

3 weeks ago
package user
import (
"cls-server/internal/domain/gift_log"
"errors"
)
type UserGiftLogAggregate struct {
user *User
giftLog []*gift_log.GiftLog
}
func (a *UserGiftLogAggregate) GetUser() *User {
return a.user
}
func (a *UserGiftLogAggregate) GetGiftLogs() []*gift_log.GiftLog {
return a.giftLog
}
func (a *UserGiftLogAggregate) SetGiftLogs(g []*gift_log.GiftLog) {
a.giftLog = g
}
func NewUserGiftLogAggregate(user *User) *UserGiftLogAggregate {
return &UserGiftLogAggregate{
user: user,
giftLog: make([]*gift_log.GiftLog, 0),
}
}
func (a *UserGiftLogAggregate) AddGiftToUser(l *gift_log.GiftLog) error {
if l.Num < 1 {
return errors.New("赠送次数不能少于1")
}
a.user.GiftCount += l.Num
a.giftLog = []*gift_log.GiftLog{l}
return nil
}