Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 1 addition & 5 deletions backend/biz/team/handler/http/v1/user.go
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
66 changes: 32 additions & 34 deletions backend/biz/team/repo/user.go
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ import (

// TeamGroupUserRepo 团队分组成员数据访问层
type TeamGroupUserRepo struct {
client *db.Client
db *db.Client
redis *redis.Client
config *config.Config
logger *slog.Logger
Expand All @@ -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"),
Expand All @@ -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) {
Expand All @@ -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)
Expand All @@ -74,18 +74,18 @@ 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)
if err == nil {
continue // 用户已在团队中
}
// 添加到团队
_, err = r.client.TeamMember.Create().
_, err = r.db.TeamMember.Create().
SetTeamID(teamID).
SetUserID(existingUser.ID).
SetRole(consts.TeamMemberRoleUser).
Expand All @@ -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("").
Expand All @@ -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).
Expand All @@ -128,18 +128,18 @@ 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)
if err == nil {
return nil, errcode.ErrUserAlreadyExists
}
// 添加到团队
_, err = r.client.TeamMember.Create().
_, err = r.db.TeamMember.Create().
SetTeamID(teamID).
SetUserID(existingUser.ID).
SetRole(consts.TeamMemberRoleAdmin).
Expand All @@ -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("").
Expand All @@ -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).
Expand All @@ -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)
Expand All @@ -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),
Expand All @@ -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)
Expand All @@ -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),
Expand All @@ -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)
Expand All @@ -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()

Expand All @@ -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
}
Expand All @@ -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)
}
Expand All @@ -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...),
Expand All @@ -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),
Expand Down
Loading