feat: add tenant-aware IM management console

This commit is contained in:
richjohnrambo
2026-08-19 00:31:09 +08:00
parent 642b7ec5da
commit 89ba6bcff8
126 changed files with 11941 additions and 339 deletions
+23
View File
@@ -467,6 +467,29 @@ func (s *sAdminMember) Edit(ctx context.Context, in *adminin.MemberEditInp) (err
return
}
if service.AdminMember().VerifySuperId(ctx, opMemberId) {
if in.TenantId > 0 {
count, queryErr := g.DB("imRegistry").Model(dao.ImTenant.Table()).Safe().Ctx(ctx).
Where(dao.ImTenant.Columns().Id, in.TenantId).
Where(dao.ImTenant.Columns().State, consts.ImTenantStateActive).
Count()
if queryErr != nil {
return gerror.Wrap(queryErr, "校验IM租户失败")
}
if count == 0 {
return gerror.New("IM租户不存在或未启用")
}
}
} else if deptType := contexts.GetDeptType(ctx); deptType == consts.DeptTypeTenant ||
deptType == consts.DeptTypeMerchant || deptType == consts.DeptTypeUser {
in.TenantId = contexts.GetTenantId(ctx)
if in.TenantId <= 0 {
return gerror.New("当前管理员未关联租户")
}
} else {
in.TenantId = 0
}
cols := dao.AdminMember.Columns()
err = s.VerifyUnique(ctx, &adminin.VerifyUniqueInp{
Id: in.Id,
+2
View File
@@ -228,6 +228,7 @@ func (s *sAdminSite) handleLogin(ctx context.Context, mb *entity.AdminMember) (r
user := &model.Identity{
Id: mb.Id,
TenantId: mb.TenantId,
Pid: mb.Pid,
DeptId: dept.Id,
DeptType: dept.Type,
@@ -319,6 +320,7 @@ func (s *sAdminSite) BindUserContext(ctx context.Context, claims *model.Identity
user := &model.Identity{
Id: mb.Id,
TenantId: mb.TenantId,
Pid: mb.Pid,
DeptId: dept.Id,
DeptType: dept.Type,