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
+180
View File
@@ -171,6 +171,90 @@ type (
// Switch 更新CURD列表开关
Switch(ctx context.Context, in *sysin.CurdDemoSwitchInp) (err error)
}
ISysImTenant interface {
// Model IM租户ORM模型
Model(ctx context.Context, option ...*handler.Option) *gdb.Model
// List 获取IM租户列表
List(ctx context.Context, in *sysin.ImTenantListInp) (list []*sysin.ImTenantListModel, totalCount int, err error)
// Edit 修改/新增IM租户
Edit(ctx context.Context, in *sysin.ImTenantEditInp) (err error)
// View 获取IM租户指定信息
View(ctx context.Context, in *sysin.ImTenantViewInp) (res *sysin.ImTenantViewModel, err error)
// Status 更新IM租户状态
Status(ctx context.Context, in *sysin.ImTenantStatusInp) (err error)
}
ISysImRegistration interface {
// GetConfig 获取IM注册配置
GetConfig(ctx context.Context) (res *sysin.ImRegistrationConfigModel, err error)
// UpdateConfig 更新IM注册配置
UpdateConfig(ctx context.Context, in *sysin.ImRegistrationConfigUpdateInp) (err error)
}
ISysImInvite interface {
// List 查询IM注册邀请码
List(ctx context.Context, in *sysin.ImInviteListInp) (list []*sysin.ImInviteCodeModel, totalCount int, err error)
// Create 单个生成IM注册邀请码
Create(ctx context.Context, in *sysin.ImInviteCreateInp) (res *sysin.ImInviteCodeModel, err error)
// BatchCreate 批量生成IM注册邀请码
BatchCreate(ctx context.Context, in *sysin.ImInviteBatchCreateInp) (res *sysin.ImInviteBatchModel, err error)
// BatchView 查看批次详情
BatchView(ctx context.Context, in *sysin.ImInviteBatchViewInp) (res *sysin.ImInviteBatchDetailModel, err error)
// Revoke 撤销邀请码
Revoke(ctx context.Context, in *sysin.ImInviteRevokeInp) (err error)
// BatchRevoke 批量撤销邀请码
BatchRevoke(ctx context.Context, in *sysin.ImInviteBatchRevokeInp) (res *sysin.ImInviteBatchModel, err error)
// Export 导出邀请码
Export(ctx context.Context, in *sysin.ImInviteListInp) (err error)
}
ISysImUser interface {
// List 获取IM用户列表
List(ctx context.Context, in *sysin.ImUserListInp) (list []*sysin.ImUserListModel, totalCount int, err error)
// View 获取IM用户指定信息
View(ctx context.Context, in *sysin.ImUserViewInp) (res *sysin.ImUserViewModel, err error)
// ResetPassword 管理员重置IM用户密码
ResetPassword(ctx context.Context, in *sysin.ImUserPasswordResetInp) (err error)
}
ISysImGroup interface {
// List 获取IM群组列表
List(ctx context.Context, in *sysin.ImGroupListInp) (list []*sysin.ImGroupListModel, totalCount int, err error)
// View 获取IM群组指定信息
View(ctx context.Context, in *sysin.ImGroupViewInp) (res *sysin.ImGroupViewModel, err error)
// MemberList 获取IM群成员列表
MemberList(ctx context.Context, in *sysin.ImGroupMemberListInp) (list []*sysin.ImGroupMemberListModel, totalCount int, err error)
// Governance 获取IM群治理配置
Governance(ctx context.Context, in *sysin.ImGroupTopicInp) (res *sysin.ImGroupGovernanceModel, err error)
// JoinRequestList 获取IM入群申请列表
JoinRequestList(ctx context.Context, in *sysin.ImGroupJoinRequestListInp) (list []*sysin.ImGroupJoinRequestListModel, totalCount int, err error)
// InvitationList 获取IM群邀请列表
InvitationList(ctx context.Context, in *sysin.ImGroupInvitationListInp) (list []*sysin.ImGroupInvitationListModel, totalCount int, err error)
// AnnouncementList 获取IM群公告列表
AnnouncementList(ctx context.Context, in *sysin.ImGroupAnnouncementListInp) (list []*sysin.ImGroupAnnouncementListModel, totalCount int, err error)
// MuteList 获取IM群禁言列表
MuteList(ctx context.Context, in *sysin.ImGroupMuteListInp) (list []*sysin.ImGroupMuteListModel, totalCount int, err error)
// AdminLogList 获取IM群管理日志列表
AdminLogList(ctx context.Context, in *sysin.ImGroupAdminLogListInp) (list []*sysin.ImGroupAdminLogListModel, totalCount int, err error)
}
ISysImRealname interface {
// List 获取IM实名审核列表
List(ctx context.Context, in *sysin.ImRealnameListInp) (list []*sysin.ImRealnameListModel, totalCount int, err error)
// View 获取IM实名审核指定信息
View(ctx context.Context, in *sysin.ImRealnameViewInp) (res *sysin.ImRealnameViewModel, err error)
// Review 审核IM实名
Review(ctx context.Context, in *sysin.ImRealnameReviewInp) (err error)
}
ISysImWorkOrder interface {
// List 获取IM举报反馈工单列表
List(ctx context.Context, in *sysin.ImWorkOrderListInp) (list []*sysin.ImWorkOrderListModel, totalCount int, err error)
// View 获取IM举报反馈工单指定信息
View(ctx context.Context, in *sysin.ImWorkOrderViewInp) (res *sysin.ImWorkOrderViewModel, err error)
// Status 更新IM举报反馈工单状态
Status(ctx context.Context, in *sysin.ImWorkOrderStatusInp) (err error)
}
ISysImAuditLog interface {
// List 获取IM审计日志列表
List(ctx context.Context, in *sysin.ImAuditLogListInp) (list []*sysin.ImAuditLogListModel, totalCount int, err error)
// View 获取IM审计日志指定信息
View(ctx context.Context, in *sysin.ImAuditLogViewInp) (res *sysin.ImAuditLogViewModel, err error)
}
ISysDictData interface {
// Delete 删除
Delete(ctx context.Context, in *sysin.DictDataDeleteInp) error
@@ -414,6 +498,14 @@ var (
localSysCron ISysCron
localSysCronGroup ISysCronGroup
localSysCurdDemo ISysCurdDemo
localSysImTenant ISysImTenant
localSysImRegistration ISysImRegistration
localSysImInvite ISysImInvite
localSysImUser ISysImUser
localSysImGroup ISysImGroup
localSysImRealname ISysImRealname
localSysImWorkOrder ISysImWorkOrder
localSysImAuditLog ISysImAuditLog
localSysDictData ISysDictData
localSysDictType ISysDictType
localSysEmsLog ISysEmsLog
@@ -517,6 +609,94 @@ func RegisterSysCurdDemo(i ISysCurdDemo) {
localSysCurdDemo = i
}
func SysImTenant() ISysImTenant {
if localSysImTenant == nil {
panic("implement not found for interface ISysImTenant, forgot register?")
}
return localSysImTenant
}
func RegisterSysImTenant(i ISysImTenant) {
localSysImTenant = i
}
func SysImRegistration() ISysImRegistration {
if localSysImRegistration == nil {
panic("implement not found for interface ISysImRegistration, forgot register?")
}
return localSysImRegistration
}
func RegisterSysImRegistration(i ISysImRegistration) {
localSysImRegistration = i
}
func SysImInvite() ISysImInvite {
if localSysImInvite == nil {
panic("implement not found for interface ISysImInvite, forgot register?")
}
return localSysImInvite
}
func RegisterSysImInvite(i ISysImInvite) {
localSysImInvite = i
}
func SysImUser() ISysImUser {
if localSysImUser == nil {
panic("implement not found for interface ISysImUser, forgot register?")
}
return localSysImUser
}
func RegisterSysImUser(i ISysImUser) {
localSysImUser = i
}
func SysImGroup() ISysImGroup {
if localSysImGroup == nil {
panic("implement not found for interface ISysImGroup, forgot register?")
}
return localSysImGroup
}
func RegisterSysImGroup(i ISysImGroup) {
localSysImGroup = i
}
func SysImRealname() ISysImRealname {
if localSysImRealname == nil {
panic("implement not found for interface ISysImRealname, forgot register?")
}
return localSysImRealname
}
func RegisterSysImRealname(i ISysImRealname) {
localSysImRealname = i
}
func SysImWorkOrder() ISysImWorkOrder {
if localSysImWorkOrder == nil {
panic("implement not found for interface ISysImWorkOrder, forgot register?")
}
return localSysImWorkOrder
}
func RegisterSysImWorkOrder(i ISysImWorkOrder) {
localSysImWorkOrder = i
}
func SysImAuditLog() ISysImAuditLog {
if localSysImAuditLog == nil {
panic("implement not found for interface ISysImAuditLog, forgot register?")
}
return localSysImAuditLog
}
func RegisterSysImAuditLog(i ISysImAuditLog) {
localSysImAuditLog = i
}
func SysDictData() ISysDictData {
if localSysDictData == nil {
panic("implement not found for interface ISysDictData, forgot register?")