@@ -27,6 +27,7 @@ type TeamGroupUserUsecase struct {
2727 config * config.Config
2828 smtpClient domain.EmailSender
2929 redisClient * redis.Client
30+ teamHook domain.TeamHook
3031}
3132
3233// NewTeamGroupUserUsecase 创建团队分组成员业务逻辑层实例
@@ -42,6 +43,10 @@ func NewTeamGroupUserUsecase(i *do.Injector) (domain.TeamGroupUserUsecase, error
4243 redisClient : do.MustInvoke [* redis.Client ](i ),
4344 }
4445
46+ if hook , err := do.Invoke [domain.TeamHook ](i ); err == nil {
47+ t .teamHook = hook
48+ }
49+
4550 go t .initTeam ()
4651
4752 return t , nil
@@ -93,6 +98,13 @@ func (u *TeamGroupUserUsecase) AddUser(ctx context.Context, teamUser *domain.Tea
9398 if err != nil {
9499 return nil , err
95100 }
101+ if u .teamHook != nil {
102+ for _ , user := range users {
103+ if err := u .teamHook .OnMemberAdded (ctx , teamUser .GetTeamID (), user .ID ); err != nil {
104+ u .logger .WarnContext (ctx , "teamHook.OnMemberAdded failed" , "user_id" , user .ID , "error" , err )
105+ }
106+ }
107+ }
96108 // 发送重置密码邮件(如果没有发送成功就用户自己请求重置)
97109 for _ , user := range users {
98110 if user .Email != "" {
@@ -123,6 +135,11 @@ func (u *TeamGroupUserUsecase) AddAdmin(ctx context.Context, teamUser *domain.Te
123135 if err != nil {
124136 return nil , err
125137 }
138+ if u .teamHook != nil {
139+ if err := u .teamHook .OnMemberAdded (ctx , teamUser .GetTeamID (), user .ID ); err != nil {
140+ u .logger .WarnContext (ctx , "teamHook.OnMemberAdded failed" , "user_id" , user .ID , "error" , err )
141+ }
142+ }
126143 if user .Email != "" {
127144 token , err := u .generateResetPWDToken (ctx , user .ID )
128145 if err != nil {
0 commit comments