# Conflicts: # docs/backstage/IM-Kafka接入方案.md # docs/backstage/IM-Kafka接入范围识别.md # server/api/admin/imconfiginternal/im_config.go # server/api/admin/imuser/im_user.go # server/internal/consts/im_kafka.go # server/internal/controller/admin/sys/im_user.go # server/internal/controller/internalapi/imconfig/im_config.go # server/internal/library/imadmin/client.go # server/internal/library/imadmin/client_test.go # server/internal/library/imadmin/internal.go # server/internal/library/imkafka/command.go # server/internal/library/imtenant/db.go # server/internal/library/imtenant/db_test.go # server/internal/library/queue/kafkamq.go # server/internal/library/queue/queue.go # server/internal/logic/admin/member.go # server/internal/logic/sys/im_dead_letter.go # server/internal/logic/sys/im_group.go # server/internal/logic/sys/im_invite.go # server/internal/logic/sys/im_kafka_audit.go # server/internal/logic/sys/im_kafka_command.go # server/internal/logic/sys/im_tenant.go # server/internal/logic/sys/im_user.go # server/internal/model/input/sysin/im_group.go # server/internal/model/input/sysin/im_invite.go # server/internal/model/input/sysin/im_user.go # server/internal/queues/im_admin_command_result.go # server/internal/queues/im_audit_event.go # server/internal/queues/im_dead_letter.go # server/internal/service/sys.go # server/manifest/config/config.example.yaml # server/storage/data/generate/im_group_menu.sql # server/storage/data/generate/im_user_menu.sql # server/storage/data/im_registration_invite_hotgo.sql # web/src/views/im/registrationInvite/BatchViewModal.vue # web/src/views/im/registrationInvite/index.vue # web/src/views/im/registrationInvite/model.ts # web/src/views/imDeadLetter/index.vue # web/src/views/imDeadLetter/model.ts # web/src/views/imGroup/governance.vue # web/src/views/imGroup/members.vue # web/src/views/imKafkaAudit/model.ts # web/src/views/imKafkaAudit/view.vue # web/src/views/imKafkaCommand/index.vue # web/src/views/imKafkaCommand/model.ts # web/src/views/imKafkaCommand/view.vue # web/src/views/imUser/ResetPasswordModal.vue # web/src/views/imUser/governance.vue # web/src/views/imUser/index.vue # web/src/views/imUser/model.ts # web/src/views/imUser/view.vue
346 lines
9.2 KiB
Go
346 lines
9.2 KiB
Go
// Package imgroup
|
|
// @Link https://github.com/bufanyun/hotgo
|
|
// @Copyright Copyright (c) 2026 HotGo
|
|
// @Author Ms <133814250@qq.com>
|
|
// @License https://github.com/bufanyun/hotgo/blob/master/LICENSE
|
|
package imgroup
|
|
|
|
import (
|
|
"hotgo/internal/model/input/form"
|
|
"hotgo/internal/model/input/sysin"
|
|
|
|
"github.com/gogf/gf/v2/frame/g"
|
|
)
|
|
|
|
// ListReq 查询IM群组列表
|
|
type ListReq struct {
|
|
g.Meta `path:"/imGroup/list" method:"get" tags:"IM群组" summary:"获取IM群组列表"`
|
|
sysin.ImGroupListInp
|
|
}
|
|
|
|
type ListRes struct {
|
|
form.PageRes
|
|
List []*sysin.ImGroupListModel `json:"list" dc:"数据列表"`
|
|
}
|
|
|
|
// ViewReq 获取IM群组指定信息
|
|
type ViewReq struct {
|
|
g.Meta `path:"/imGroup/view" method:"get" tags:"IM群组" summary:"获取IM群组指定信息"`
|
|
sysin.ImGroupViewInp
|
|
}
|
|
|
|
type ViewRes struct {
|
|
*sysin.ImGroupViewModel
|
|
}
|
|
|
|
// MemberListReq 查询IM群成员列表
|
|
type MemberListReq struct {
|
|
g.Meta `path:"/imGroup/memberList" method:"get" tags:"IM群组" summary:"获取IM群成员列表"`
|
|
sysin.ImGroupMemberListInp
|
|
}
|
|
|
|
type MemberListRes struct {
|
|
form.PageRes
|
|
List []*sysin.ImGroupMemberListModel `json:"list" dc:"数据列表"`
|
|
}
|
|
|
|
// GovernanceReq 获取IM群治理配置
|
|
type GovernanceReq struct {
|
|
g.Meta `path:"/imGroup/governance" method:"get" tags:"IM群组" summary:"获取IM群治理配置"`
|
|
sysin.ImGroupTopicInp
|
|
}
|
|
|
|
type GovernanceRes struct {
|
|
*sysin.ImGroupGovernanceModel
|
|
}
|
|
|
|
// GovernanceUpdateReq 更新IM群治理配置
|
|
type GovernanceUpdateReq struct {
|
|
g.Meta `path:"/imGroup/governanceUpdate" method:"post" tags:"IM群组" summary:"更新IM群治理配置"`
|
|
sysin.ImGroupGovernanceUpdateInp
|
|
}
|
|
|
|
type GovernanceUpdateRes struct {
|
|
*sysin.ImGroupCommandModel
|
|
}
|
|
|
|
// ProfileUpdateReq 修改IM群资料
|
|
type ProfileUpdateReq struct {
|
|
g.Meta `path:"/imGroup/profileUpdate" method:"post" tags:"IM群组" summary:"修改IM群资料"`
|
|
sysin.ImGroupProfileUpdateInp
|
|
}
|
|
|
|
type ProfileUpdateRes struct {
|
|
*sysin.ImGroupCommandModel
|
|
}
|
|
|
|
// DissolveReq 解散IM群
|
|
type DissolveReq struct {
|
|
g.Meta `path:"/imGroup/dissolve" method:"post" tags:"IM群组" summary:"解散IM群"`
|
|
sysin.ImGroupDissolveInp
|
|
}
|
|
|
|
type DissolveRes struct {
|
|
*sysin.ImGroupCommandModel
|
|
}
|
|
|
|
// MuteReq 禁言IM群成员
|
|
type MuteReq struct {
|
|
g.Meta `path:"/imGroup/mute" method:"post" tags:"IM群组" summary:"禁言IM群成员"`
|
|
sysin.ImGroupMuteInp
|
|
}
|
|
|
|
type MuteRes struct {
|
|
*sysin.ImGroupCommandModel
|
|
}
|
|
|
|
// MemberMuteReq Kafka禁言IM群成员
|
|
type MemberMuteReq struct {
|
|
g.Meta `path:"/imGroup/memberMute" method:"post" tags:"IM群组" summary:"Kafka禁言IM群成员"`
|
|
sysin.ImGroupMuteInp
|
|
}
|
|
|
|
type MemberMuteRes struct {
|
|
*sysin.ImGroupCommandModel
|
|
}
|
|
|
|
// UnmuteReq 解除IM群成员禁言
|
|
type UnmuteReq struct {
|
|
g.Meta `path:"/imGroup/unmute" method:"post" tags:"IM群组" summary:"解除IM群成员禁言"`
|
|
sysin.ImGroupUnmuteInp
|
|
}
|
|
|
|
type UnmuteRes struct {
|
|
*sysin.ImGroupCommandModel
|
|
}
|
|
|
|
// MemberUnmuteReq Kafka解除IM群成员禁言
|
|
type MemberUnmuteReq struct {
|
|
g.Meta `path:"/imGroup/memberUnmute" method:"post" tags:"IM群组" summary:"Kafka解除IM群成员禁言"`
|
|
sysin.ImGroupUnmuteInp
|
|
}
|
|
|
|
type MemberUnmuteRes struct {
|
|
*sysin.ImGroupCommandModel
|
|
}
|
|
|
|
// MemberRemoveReq 移出IM群成员
|
|
type MemberRemoveReq struct {
|
|
g.Meta `path:"/imGroup/memberRemove" method:"post" tags:"IM群组" summary:"移出IM群成员"`
|
|
sysin.ImGroupMemberRemoveInp
|
|
}
|
|
|
|
type MemberRemoveRes struct {
|
|
*sysin.ImGroupCommandModel
|
|
}
|
|
|
|
// JoinRequestApproveReq 通过IM入群申请
|
|
type JoinRequestApproveReq struct {
|
|
g.Meta `path:"/imGroup/joinRequestApprove" method:"post" tags:"IM群组" summary:"通过IM入群申请"`
|
|
sysin.ImGroupJoinRequestResolveInp
|
|
}
|
|
|
|
type JoinRequestApproveRes struct{}
|
|
|
|
// JoinRequestRejectReq 拒绝IM入群申请
|
|
type JoinRequestRejectReq struct {
|
|
g.Meta `path:"/imGroup/joinRequestReject" method:"post" tags:"IM群组" summary:"拒绝IM入群申请"`
|
|
sysin.ImGroupJoinRequestResolveInp
|
|
}
|
|
|
|
type JoinRequestRejectRes struct{}
|
|
|
|
// RoleUpdateReq 更新IM群成员角色
|
|
type RoleUpdateReq struct {
|
|
g.Meta `path:"/imGroup/roleUpdate" method:"post" tags:"IM群组" summary:"更新IM群成员角色"`
|
|
sysin.ImGroupRoleUpdateInp
|
|
}
|
|
|
|
type RoleUpdateRes struct {
|
|
*sysin.ImGroupCommandModel
|
|
}
|
|
|
|
// AdminSetReq 设置IM群管理员
|
|
type AdminSetReq struct {
|
|
g.Meta `path:"/imGroup/adminSet" method:"post" tags:"IM群组" summary:"设置IM群管理员"`
|
|
sysin.ImGroupRoleUpdateInp
|
|
}
|
|
|
|
type AdminSetRes struct {
|
|
*sysin.ImGroupCommandModel
|
|
}
|
|
|
|
// AdminRemoveReq 删除IM群管理员
|
|
type AdminRemoveReq struct {
|
|
g.Meta `path:"/imGroup/adminRemove" method:"post" tags:"IM群组" summary:"删除IM群管理员"`
|
|
sysin.ImGroupRoleUpdateInp
|
|
}
|
|
|
|
type AdminRemoveRes struct {
|
|
*sysin.ImGroupCommandModel
|
|
}
|
|
|
|
// OwnerTransferReq 转让IM群主
|
|
type OwnerTransferReq struct {
|
|
g.Meta `path:"/imGroup/ownerTransfer" method:"post" tags:"IM群组" summary:"转让IM群主"`
|
|
sysin.ImGroupOwnerTransferInp
|
|
}
|
|
|
|
type OwnerTransferRes struct {
|
|
*sysin.ImGroupCommandModel
|
|
}
|
|
|
|
// JoinRequestListReq 查询IM入群申请列表
|
|
type JoinRequestListReq struct {
|
|
g.Meta `path:"/imGroup/joinRequestList" method:"get" tags:"IM群组" summary:"获取IM入群申请列表"`
|
|
sysin.ImGroupJoinRequestListInp
|
|
}
|
|
|
|
type JoinRequestListRes struct {
|
|
form.PageRes
|
|
List []*sysin.ImGroupJoinRequestListModel `json:"list" dc:"数据列表"`
|
|
}
|
|
|
|
// FileListReq 查询IM群文件列表
|
|
type FileListReq struct {
|
|
g.Meta `path:"/imGroup/fileList" method:"get" tags:"IM群组" summary:"获取IM群文件列表"`
|
|
sysin.ImGroupFileListInp
|
|
}
|
|
|
|
type FileListRes struct {
|
|
form.PageRes
|
|
List []*sysin.ImGroupFileListModel `json:"list" dc:"数据列表"`
|
|
}
|
|
|
|
// FileDeleteReq 删除IM群文件
|
|
type FileDeleteReq struct {
|
|
g.Meta `path:"/imGroup/fileDelete" method:"post" tags:"IM群组" summary:"删除IM群文件"`
|
|
sysin.ImGroupFileDeleteInp
|
|
}
|
|
|
|
type FileDeleteRes struct{}
|
|
|
|
// InvitationListReq 查询IM群邀请列表
|
|
type InvitationListReq struct {
|
|
g.Meta `path:"/imGroup/invitationList" method:"get" tags:"IM群组" summary:"获取IM群邀请列表"`
|
|
sysin.ImGroupInvitationListInp
|
|
}
|
|
|
|
type InvitationListRes struct {
|
|
form.PageRes
|
|
List []*sysin.ImGroupInvitationListModel `json:"list" dc:"数据列表"`
|
|
}
|
|
|
|
// AnnouncementListReq 查询IM群公告列表
|
|
type AnnouncementListReq struct {
|
|
g.Meta `path:"/imGroup/announcementList" method:"get" tags:"IM群组" summary:"获取IM群公告列表"`
|
|
sysin.ImGroupAnnouncementListInp
|
|
}
|
|
|
|
type AnnouncementListRes struct {
|
|
form.PageRes
|
|
List []*sysin.ImGroupAnnouncementListModel `json:"list" dc:"数据列表"`
|
|
}
|
|
|
|
// MuteListReq 查询IM群禁言列表
|
|
type MuteListReq struct {
|
|
g.Meta `path:"/imGroup/muteList" method:"get" tags:"IM群组" summary:"获取IM群禁言列表"`
|
|
sysin.ImGroupMuteListInp
|
|
}
|
|
|
|
type MuteListRes struct {
|
|
form.PageRes
|
|
List []*sysin.ImGroupMuteListModel `json:"list" dc:"数据列表"`
|
|
}
|
|
|
|
// AdminLogListReq 查询IM群管理日志列表
|
|
type AdminLogListReq struct {
|
|
g.Meta `path:"/imGroup/adminLogList" method:"get" tags:"IM群组" summary:"获取IM群管理日志列表"`
|
|
sysin.ImGroupAdminLogListInp
|
|
}
|
|
|
|
type AdminLogListRes struct {
|
|
form.PageRes
|
|
List []*sysin.ImGroupAdminLogListModel `json:"list" dc:"数据列表"`
|
|
}
|
|
|
|
// ProfileUpdateReq 通过Kafka修改IM群资料
|
|
type ProfileUpdateReq struct {
|
|
g.Meta `path:"/imGroup/profileUpdate" method:"post" tags:"IM群组" summary:"Kafka修改IM群资料"`
|
|
sysin.ImGroupProfileUpdateInp
|
|
}
|
|
|
|
type ProfileUpdateRes struct {
|
|
*sysin.ImGroupCommandModel
|
|
}
|
|
|
|
// GovernanceUpdateReq 通过Kafka修改IM群治理配置
|
|
type GovernanceUpdateReq struct {
|
|
g.Meta `path:"/imGroup/governanceUpdate" method:"post" tags:"IM群组" summary:"Kafka修改IM群治理配置"`
|
|
sysin.ImGroupGovernanceUpdateInp
|
|
}
|
|
|
|
type GovernanceUpdateRes struct {
|
|
*sysin.ImGroupCommandModel
|
|
}
|
|
|
|
// AdminSetReq 通过Kafka设置IM群管理员
|
|
type AdminSetReq struct {
|
|
g.Meta `path:"/imGroup/adminSet" method:"post" tags:"IM群组" summary:"Kafka设置IM群管理员"`
|
|
sysin.ImGroupAdminSetInp
|
|
}
|
|
|
|
type AdminSetRes struct {
|
|
*sysin.ImGroupCommandModel
|
|
}
|
|
|
|
// AdminRemoveReq 通过Kafka删除IM群管理员
|
|
type AdminRemoveReq struct {
|
|
g.Meta `path:"/imGroup/adminRemove" method:"post" tags:"IM群组" summary:"Kafka删除IM群管理员"`
|
|
sysin.ImGroupAdminRemoveInp
|
|
}
|
|
|
|
type AdminRemoveRes struct {
|
|
*sysin.ImGroupCommandModel
|
|
}
|
|
|
|
// MemberMuteReq 通过Kafka禁言IM群成员
|
|
type MemberMuteReq struct {
|
|
g.Meta `path:"/imGroup/memberMute" method:"post" tags:"IM群组" summary:"Kafka禁言IM群成员"`
|
|
sysin.ImGroupMemberMuteInp
|
|
}
|
|
|
|
type MemberMuteRes struct {
|
|
*sysin.ImGroupCommandModel
|
|
}
|
|
|
|
// MemberUnmuteReq 通过Kafka解除IM群成员禁言
|
|
type MemberUnmuteReq struct {
|
|
g.Meta `path:"/imGroup/memberUnmute" method:"post" tags:"IM群组" summary:"Kafka解除IM群成员禁言"`
|
|
sysin.ImGroupMemberUnmuteInp
|
|
}
|
|
|
|
type MemberUnmuteRes struct {
|
|
*sysin.ImGroupCommandModel
|
|
}
|
|
|
|
// MemberRemoveReq 通过Kafka移出IM群成员
|
|
type MemberRemoveReq struct {
|
|
g.Meta `path:"/imGroup/memberRemove" method:"post" tags:"IM群组" summary:"Kafka移出IM群成员"`
|
|
sysin.ImGroupMemberRemoveInp
|
|
}
|
|
|
|
type MemberRemoveRes struct {
|
|
*sysin.ImGroupCommandModel
|
|
}
|
|
|
|
// OwnerTransferReq 通过Kafka转让IM群主
|
|
type OwnerTransferReq struct {
|
|
g.Meta `path:"/imGroup/ownerTransfer" method:"post" tags:"IM群组" summary:"Kafka转让IM群主"`
|
|
sysin.ImGroupOwnerTransferInp
|
|
}
|
|
|
|
type OwnerTransferRes struct {
|
|
*sysin.ImGroupCommandModel
|
|
}
|