diff --git a/backend/biz/team/handler/http/v1/user.go b/backend/biz/team/handler/http/v1/user.go index 2c4f3075..621b66eb 100644 --- a/backend/biz/team/handler/http/v1/user.go +++ b/backend/biz/team/handler/http/v1/user.go @@ -103,11 +103,7 @@ func (h *TeamGroupUserHandler) Login(c *web.Context, req domain.TeamLoginReq) er } // 创建 session(内部生成 cookie 并设置到 response) - _, err = h.authMiddleware.Session.Save(c, consts.MonkeyCodeAITeamSession, user.ID, &domain.User{ - ID: user.ID, - Name: user.Name, - Email: user.Email, - }) + _, err = h.authMiddleware.Session.Save(c, consts.MonkeyCodeAITeamSession, user.ID, user) if err != nil { h.logger.ErrorContext(ctx, "save session failed", "error", err) return errcode.ErrInternalServer diff --git a/backend/biz/team/repo/user.go b/backend/biz/team/repo/user.go index 04a5c721..6eb77f2c 100644 --- a/backend/biz/team/repo/user.go +++ b/backend/biz/team/repo/user.go @@ -26,7 +26,7 @@ import ( // TeamGroupUserRepo 团队分组成员数据访问层 type TeamGroupUserRepo struct { - client *db.Client + db *db.Client redis *redis.Client config *config.Config logger *slog.Logger @@ -35,7 +35,7 @@ type TeamGroupUserRepo struct { // NewTeamGroupUserRepo 创建团队分组成员数据访问层 (samber/do 风格) func NewTeamGroupUserRepo(i *do.Injector) (domain.TeamGroupUserRepo, error) { return &TeamGroupUserRepo{ - client: do.MustInvoke[*db.Client](i), + db: do.MustInvoke[*db.Client](i), redis: do.MustInvoke[*redis.Client](i), config: do.MustInvoke[*config.Config](i), logger: do.MustInvoke[*slog.Logger](i).With("module", "repo.team_group_user"), @@ -44,7 +44,7 @@ func NewTeamGroupUserRepo(i *do.Injector) (domain.TeamGroupUserRepo, error) { // List 获取团队分组列表 func (r *TeamGroupUserRepo) List(ctx context.Context, teamID uuid.UUID) ([]*db.TeamGroup, error) { - return r.client.TeamGroup.Query(). + return r.db.TeamGroup.Query(). Where(teamgroup.TeamIDEQ(teamID)). WithMembers( func(uq *db.UserQuery) { @@ -57,12 +57,12 @@ func (r *TeamGroupUserRepo) List(ctx context.Context, teamID uuid.UUID) ([]*db.T // Get 获取团队分组 func (r *TeamGroupUserRepo) Get(ctx context.Context, groupID uuid.UUID) (*db.TeamGroup, error) { - return r.client.TeamGroup.Get(ctx, groupID) + return r.db.TeamGroup.Get(ctx, groupID) } // Create 创建团队分组 func (r *TeamGroupUserRepo) Create(ctx context.Context, teamID uuid.UUID, req *domain.AddTeamGroupReq) (*db.TeamGroup, error) { - return r.client.TeamGroup.Create(). + return r.db.TeamGroup.Create(). SetTeamID(teamID). SetName(req.Name). Save(ctx) @@ -74,10 +74,10 @@ func (r *TeamGroupUserRepo) CreateUsers(ctx context.Context, teamID uuid.UUID, r for _, emailAddr := range req.Emails { // 检查邮箱是否已注册 - existingUser, err := r.client.User.Query().Where(user.EmailEQ(emailAddr)).First(ctx) + existingUser, err := r.db.User.Query().Where(user.EmailEQ(emailAddr)).First(ctx) if err == nil && existingUser != nil { // 用户已存在,检查是否已在团队中 - _, err := r.client.TeamMember.Query().Where( + _, err := r.db.TeamMember.Query().Where( teammember.TeamIDEQ(teamID), teammember.UserIDEQ(existingUser.ID), ).First(ctx) @@ -85,7 +85,7 @@ func (r *TeamGroupUserRepo) CreateUsers(ctx context.Context, teamID uuid.UUID, r continue // 用户已在团队中 } // 添加到团队 - _, err = r.client.TeamMember.Create(). + _, err = r.db.TeamMember.Create(). SetTeamID(teamID). SetUserID(existingUser.ID). SetRole(consts.TeamMemberRoleUser). @@ -99,7 +99,7 @@ func (r *TeamGroupUserRepo) CreateUsers(ctx context.Context, teamID uuid.UUID, r } // 创建新用户 - newUser, err := r.client.User.Create(). + newUser, err := r.db.User.Create(). SetName(emailAddr). SetEmail(emailAddr). SetPassword(""). @@ -111,7 +111,7 @@ func (r *TeamGroupUserRepo) CreateUsers(ctx context.Context, teamID uuid.UUID, r } // 添加到团队 - _, err = r.client.TeamMember.Create(). + _, err = r.db.TeamMember.Create(). SetTeamID(teamID). SetUserID(newUser.ID). SetRole(consts.TeamMemberRoleUser). @@ -128,10 +128,10 @@ func (r *TeamGroupUserRepo) CreateUsers(ctx context.Context, teamID uuid.UUID, r // CreateAdmin 创建团队管理员 func (r *TeamGroupUserRepo) CreateAdmin(ctx context.Context, teamID uuid.UUID, req *domain.AddTeamAdminReq) (*db.User, error) { // 检查邮箱是否已注册 - existingUser, err := r.client.User.Query().Where(user.EmailEQ(req.Email)).First(ctx) + existingUser, err := r.db.User.Query().Where(user.EmailEQ(req.Email)).First(ctx) if err == nil && existingUser != nil { // 检查是否已在团队中 - _, err := r.client.TeamMember.Query().Where( + _, err := r.db.TeamMember.Query().Where( teammember.TeamIDEQ(teamID), teammember.UserIDEQ(existingUser.ID), ).First(ctx) @@ -139,7 +139,7 @@ func (r *TeamGroupUserRepo) CreateAdmin(ctx context.Context, teamID uuid.UUID, r return nil, errcode.ErrUserAlreadyExists } // 添加到团队 - _, err = r.client.TeamMember.Create(). + _, err = r.db.TeamMember.Create(). SetTeamID(teamID). SetUserID(existingUser.ID). SetRole(consts.TeamMemberRoleAdmin). @@ -151,7 +151,7 @@ func (r *TeamGroupUserRepo) CreateAdmin(ctx context.Context, teamID uuid.UUID, r } // 创建新用户 - newUser, err := r.client.User.Create(). + newUser, err := r.db.User.Create(). SetName(req.Name). SetEmail(req.Email). SetPassword(""). @@ -162,7 +162,7 @@ func (r *TeamGroupUserRepo) CreateAdmin(ctx context.Context, teamID uuid.UUID, r } // 添加到团队 - _, err = r.client.TeamMember.Create(). + _, err = r.db.TeamMember.Create(). SetTeamID(teamID). SetUserID(newUser.ID). SetRole(consts.TeamMemberRoleAdmin). @@ -175,20 +175,20 @@ func (r *TeamGroupUserRepo) CreateAdmin(ctx context.Context, teamID uuid.UUID, r // Update 更新团队分组 func (r *TeamGroupUserRepo) Update(ctx context.Context, req *domain.UpdateTeamGroupReq) (*db.TeamGroup, error) { - return r.client.TeamGroup.UpdateOneID(req.GroupID). + return r.db.TeamGroup.UpdateOneID(req.GroupID). SetName(req.Name). Save(ctx) } // Delete 删除团队分组 func (r *TeamGroupUserRepo) Delete(ctx context.Context, teamID, groupID uuid.UUID) error { - err := r.client.TeamGroup.DeleteOneID(groupID).Exec(ctx) + err := r.db.TeamGroup.DeleteOneID(groupID).Exec(ctx) return err } // ListGroupUsers 获取团队组成员列表 func (r *TeamGroupUserRepo) ListGroupUsers(ctx context.Context, groupID uuid.UUID) ([]*db.TeamGroupMember, error) { - return r.client.TeamGroupMember.Query(). + return r.db.TeamGroupMember.Query(). Where(teamgroupmember.GroupIDEQ(groupID)). WithUser(). All(ctx) @@ -200,7 +200,7 @@ func (r *TeamGroupUserRepo) ModifyGroupUsers(ctx context.Context, groupID uuid.U for _, userID := range userIDs { // 检查是否已在组中 - existing, err := r.client.TeamGroupMember.Query(). + existing, err := r.db.TeamGroupMember.Query(). Where( teamgroupmember.GroupIDEQ(groupID), teamgroupmember.UserIDEQ(userID), @@ -211,7 +211,7 @@ func (r *TeamGroupUserRepo) ModifyGroupUsers(ctx context.Context, groupID uuid.U } // 添加到组 - member, err := r.client.TeamGroupMember.Create(). + member, err := r.db.TeamGroupMember.Create(). SetGroupID(groupID). SetUserID(userID). Save(ctx) @@ -226,7 +226,7 @@ func (r *TeamGroupUserRepo) ModifyGroupUsers(ctx context.Context, groupID uuid.U // DeleteGroupUser 删除团队组成员 func (r *TeamGroupUserRepo) DeleteGroupUser(ctx context.Context, groupID, userID uuid.UUID) error { - _, err := r.client.TeamGroupMember.Delete(). + _, err := r.db.TeamGroupMember.Delete(). Where( teamgroupmember.GroupIDEQ(groupID), teamgroupmember.UserIDEQ(userID), @@ -236,12 +236,10 @@ func (r *TeamGroupUserRepo) DeleteGroupUser(ctx context.Context, groupID, userID // Login 团队用户登录 func (r *TeamGroupUserRepo) Login(ctx context.Context, req *domain.TeamLoginReq) (*db.User, error) { - usr, err := r.client.User.Query(). - Where(user.EmailEQ(req.Email)). - Where(user.RoleNEQ(consts.UserRoleEnterprise)). - WithTeamMembers(func(q *db.TeamMemberQuery) { - q.WithTeam() - }). + usr, err := r.db.User.Query(). + WithTeams(). + Where(user.Email(req.Email)). + Where(user.Role(consts.UserRoleEnterprise)). First(ctx) if err != nil { return nil, errcode.ErrLoginFailed.Wrap(err) @@ -257,7 +255,7 @@ func (r *TeamGroupUserRepo) Login(ctx context.Context, req *domain.TeamLoginReq) // MemberList 获取团队成员列表 func (r *TeamGroupUserRepo) MemberList(ctx context.Context, teamID uuid.UUID, role consts.TeamMemberRole) ([]*db.TeamMember, error) { - query := r.client.TeamMember.Query(). + query := r.db.TeamMember.Query(). Where(teammember.TeamIDEQ(teamID)). WithUser() @@ -270,7 +268,7 @@ func (r *TeamGroupUserRepo) MemberList(ctx context.Context, teamID uuid.UUID, ro // ChangePassword 修改密码 func (r *TeamGroupUserRepo) ChangePassword(ctx context.Context, userID uuid.UUID, currentPassword, newPassword string) error { - uu, err := r.client.User.Query().Where(user.IDEQ(userID)).First(ctx) + uu, err := r.db.User.Query().Where(user.IDEQ(userID)).First(ctx) if err != nil { return err } @@ -287,17 +285,17 @@ func (r *TeamGroupUserRepo) ChangePassword(ctx context.Context, userID uuid.UUID return errcode.ErrPasswordHashFailed } - return r.client.User.UpdateOneID(userID).SetPassword(hashedNewPassword).Exec(ctx) + return r.db.User.UpdateOneID(userID).SetPassword(hashedNewPassword).Exec(ctx) } // GetTeam 获取团队 func (r *TeamGroupUserRepo) GetTeam(ctx context.Context, teamID uuid.UUID) (*db.Team, error) { - return r.client.Team.Get(ctx, teamID) + return r.db.Team.Get(ctx, teamID) } // UpdateUser 更新团队用户信息 func (r *TeamGroupUserRepo) UpdateUser(ctx context.Context, userID uuid.UUID, req *domain.UpdateTeamUserReq) (*db.User, error) { - update := r.client.User.UpdateOneID(userID) + update := r.db.User.UpdateOneID(userID) if req.IsBlocked != nil { update = update.SetIsBlocked(*req.IsBlocked) } @@ -306,7 +304,7 @@ func (r *TeamGroupUserRepo) UpdateUser(ctx context.Context, userID uuid.UUID, re // GetMembersByIDs 根据用户ID列表获取团队成员 func (r *TeamGroupUserRepo) GetMembersByIDs(ctx context.Context, teamID uuid.UUID, userIDs []uuid.UUID) ([]*db.TeamMember, error) { - return r.client.TeamMember.Query(). + return r.db.TeamMember.Query(). Where( teammember.TeamIDEQ(teamID), teammember.UserIDIn(userIDs...), @@ -317,7 +315,7 @@ func (r *TeamGroupUserRepo) GetMembersByIDs(ctx context.Context, teamID uuid.UUI // GetMember 获取团队成员 func (r *TeamGroupUserRepo) GetMember(ctx context.Context, teamID, userID uuid.UUID) (*db.TeamMember, error) { - return r.client.TeamMember.Query(). + return r.db.TeamMember.Query(). Where( teammember.TeamIDEQ(teamID), teammember.UserIDEQ(userID),