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
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
|
||
|
}
|