feat: add IM admin management

This commit is contained in:
richjohnrambo
2026-08-21 01:06:19 +08:00
parent 331a55751d
commit a2abaef3a6
290 changed files with 19917 additions and 337 deletions
+25
View File
@@ -25,6 +25,7 @@ import (
"hotgo/internal/library/hgorm"
"hotgo/internal/library/hgorm/handler"
"hotgo/internal/library/hgorm/hook"
"hotgo/internal/library/imtenant"
"hotgo/internal/model/entity"
"hotgo/internal/model/input/adminin"
"hotgo/internal/model/input/sysin"
@@ -467,6 +468,30 @@ func (s *sAdminMember) Edit(ctx context.Context, in *adminin.MemberEditInp) (err
return
}
if service.AdminMember().VerifySuperId(ctx, opMemberId) {
if in.TenantId > 0 {
count, queryErr := imtenant.RegistryDB(ctx).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,