diff --git a/docs/im/images/隐私设置-添加我的方式选项.png b/docs/im/images/隐私设置-添加我的方式选项.png new file mode 100644 index 0000000..b2dbfe4 Binary files /dev/null and b/docs/im/images/隐私设置-添加我的方式选项.png differ diff --git a/docs/im/images/隐私设置.png b/docs/im/images/隐私设置.png new file mode 100644 index 0000000..d97a7e1 Binary files /dev/null and b/docs/im/images/隐私设置.png differ diff --git a/docs/im/images/青少年模式已开启(安卓).png b/docs/im/images/青少年模式已开启(安卓).png new file mode 100644 index 0000000..e4b2c09 Binary files /dev/null and b/docs/im/images/青少年模式已开启(安卓).png differ diff --git a/docs/im/images/青少年模式提示(安卓).png b/docs/im/images/青少年模式提示(安卓).png new file mode 100644 index 0000000..913652d Binary files /dev/null and b/docs/im/images/青少年模式提示(安卓).png differ diff --git a/docs/im/images/青少年模式未开启(安卓).png b/docs/im/images/青少年模式未开启(安卓).png new file mode 100644 index 0000000..c12c878 Binary files /dev/null and b/docs/im/images/青少年模式未开启(安卓).png differ diff --git a/docs/im/images/麦克风说明(安卓).png b/docs/im/images/麦克风说明(安卓).png new file mode 100644 index 0000000..162d588 Binary files /dev/null and b/docs/im/images/麦克风说明(安卓).png differ diff --git a/docs/im/images/黑名单.png b/docs/im/images/黑名单.png new file mode 100644 index 0000000..d452875 Binary files /dev/null and b/docs/im/images/黑名单.png differ diff --git a/docs/im/images/黑名单提示(1).png b/docs/im/images/黑名单提示(1).png new file mode 100644 index 0000000..865510f Binary files /dev/null and b/docs/im/images/黑名单提示(1).png differ diff --git a/docs/im/images/黑名单提示.png b/docs/im/images/黑名单提示.png new file mode 100644 index 0000000..0d0d184 Binary files /dev/null and b/docs/im/images/黑名单提示.png differ diff --git a/server/api/admin/imauditlog/im_audit_log.go b/server/api/admin/imauditlog/im_audit_log.go new file mode 100644 index 0000000..492f527 --- /dev/null +++ b/server/api/admin/imauditlog/im_audit_log.go @@ -0,0 +1,33 @@ +// ================================================================================= +// Code generated and maintained by GoFrame CLI tool. DO NOT EDIT. +// ================================================================================= + +package imauditlog + +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:"/imAuditLog/list" method:"get" tags:"IM审计日志" summary:"获取IM审计日志列表"` + sysin.ImAuditLogListInp +} + +type ListRes struct { + form.PageRes + List []*sysin.ImAuditLogListModel `json:"list" dc:"数据列表"` +} + +// ViewReq 获取IM审计日志指定信息 +type ViewReq struct { + g.Meta `path:"/imAuditLog/view" method:"get" tags:"IM审计日志" summary:"获取IM审计日志指定信息"` + sysin.ImAuditLogViewInp +} + +type ViewRes struct { + *sysin.ImAuditLogViewModel +} diff --git a/server/api/admin/imgroup/im_group.go b/server/api/admin/imgroup/im_group.go new file mode 100644 index 0000000..4ec698f --- /dev/null +++ b/server/api/admin/imgroup/im_group.go @@ -0,0 +1,110 @@ +// 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 +} + +// 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:"数据列表"` +} + +// 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:"数据列表"` +} diff --git a/server/api/admin/iminvite/im_invite.go b/server/api/admin/iminvite/im_invite.go new file mode 100644 index 0000000..13116c5 --- /dev/null +++ b/server/api/admin/iminvite/im_invite.go @@ -0,0 +1,68 @@ +package iminvite + +import ( + "hotgo/internal/model/input/form" + "hotgo/internal/model/input/sysin" + + "github.com/gogf/gf/v2/frame/g" +) + +type ListReq struct { + g.Meta `path:"/imInvite/list" method:"post" tags:"IM邀请码" summary:"获取IM注册邀请码列表"` + sysin.ImInviteListInp +} + +type ListRes struct { + form.PageRes + List []*sysin.ImInviteCodeModel `json:"list" dc:"数据列表"` +} + +type CreateReq struct { + g.Meta `path:"/imInvite/create" method:"post" tags:"IM邀请码" summary:"生成IM注册邀请码"` + sysin.ImInviteCreateInp +} + +type CreateRes struct { + *sysin.ImInviteCodeModel +} + +type BatchCreateReq struct { + g.Meta `path:"/imInvite/batchCreate" method:"post" tags:"IM邀请码" summary:"批量生成IM注册邀请码"` + sysin.ImInviteBatchCreateInp +} + +type BatchCreateRes struct { + *sysin.ImInviteBatchModel +} + +type BatchViewReq struct { + g.Meta `path:"/imInvite/batchView" method:"get" tags:"IM邀请码" summary:"查看IM注册邀请码批次"` + sysin.ImInviteBatchViewInp +} + +type BatchViewRes struct { + *sysin.ImInviteBatchDetailModel +} + +type RevokeReq struct { + g.Meta `path:"/imInvite/revoke" method:"post" tags:"IM邀请码" summary:"撤销IM注册邀请码"` + sysin.ImInviteRevokeInp +} + +type RevokeRes struct{} + +type BatchRevokeReq struct { + g.Meta `path:"/imInvite/batchRevoke" method:"post" tags:"IM邀请码" summary:"批量撤销IM注册邀请码"` + sysin.ImInviteBatchRevokeInp +} + +type BatchRevokeRes struct { + *sysin.ImInviteBatchModel +} + +type ExportReq struct { + g.Meta `path:"/imInvite/export" method:"post" tags:"IM邀请码" summary:"导出IM注册邀请码"` + sysin.ImInviteListInp +} + +type ExportRes struct{} diff --git a/server/api/admin/imrealname/im_realname.go b/server/api/admin/imrealname/im_realname.go new file mode 100644 index 0000000..23b2c95 --- /dev/null +++ b/server/api/admin/imrealname/im_realname.go @@ -0,0 +1,42 @@ +// Package imrealname +// @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 imrealname + +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:"/imRealname/list" method:"get" tags:"IM实名审核" summary:"获取IM实名审核列表"` + sysin.ImRealnameListInp +} + +type ListRes struct { + form.PageRes + List []*sysin.ImRealnameListModel `json:"list" dc:"数据列表"` +} + +// ViewReq 获取IM实名审核指定信息 +type ViewReq struct { + g.Meta `path:"/imRealname/view" method:"get" tags:"IM实名审核" summary:"获取IM实名审核指定信息"` + sysin.ImRealnameViewInp +} + +type ViewRes struct { + *sysin.ImRealnameViewModel +} + +// ReviewReq 审核IM实名 +type ReviewReq struct { + g.Meta `path:"/imRealname/review" method:"post" tags:"IM实名审核" summary:"审核IM实名"` + sysin.ImRealnameReviewInp +} + +type ReviewRes struct{} diff --git a/server/api/admin/imregistration/im_registration.go b/server/api/admin/imregistration/im_registration.go new file mode 100644 index 0000000..11cf040 --- /dev/null +++ b/server/api/admin/imregistration/im_registration.go @@ -0,0 +1,22 @@ +package imregistration + +import ( + "hotgo/internal/model/input/sysin" + + "github.com/gogf/gf/v2/frame/g" +) + +type GetReq struct { + g.Meta `path:"/imRegistration/config/get" method:"get" tags:"IM注册" summary:"获取IM注册配置"` +} + +type GetRes struct { + *sysin.ImRegistrationConfigModel +} + +type UpdateReq struct { + g.Meta `path:"/imRegistration/config/update" method:"post" tags:"IM注册" summary:"更新IM注册配置"` + sysin.ImRegistrationConfigUpdateInp +} + +type UpdateRes struct{} diff --git a/server/api/admin/imtenant/im_tenant.go b/server/api/admin/imtenant/im_tenant.go new file mode 100644 index 0000000..01af2d3 --- /dev/null +++ b/server/api/admin/imtenant/im_tenant.go @@ -0,0 +1,50 @@ +// Package imtenant +// @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 imtenant + +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:"/imTenant/list" method:"get" tags:"IM租户" summary:"获取IM租户列表"` + sysin.ImTenantListInp +} + +type ListRes struct { + form.PageRes + List []*sysin.ImTenantListModel `json:"list" dc:"数据列表"` +} + +// ViewReq 获取IM租户指定信息 +type ViewReq struct { + g.Meta `path:"/imTenant/view" method:"get" tags:"IM租户" summary:"获取IM租户指定信息"` + sysin.ImTenantViewInp +} + +type ViewRes struct { + *sysin.ImTenantViewModel +} + +// EditReq 修改/新增IM租户 +type EditReq struct { + g.Meta `path:"/imTenant/edit" method:"post" tags:"IM租户" summary:"修改/新增IM租户"` + sysin.ImTenantEditInp +} + +type EditRes struct{} + +// StatusReq 更新IM租户状态 +type StatusReq struct { + g.Meta `path:"/imTenant/status" method:"post" tags:"IM租户" summary:"更新IM租户状态"` + sysin.ImTenantStatusInp +} + +type StatusRes struct{} diff --git a/server/api/admin/imuser/im_user.go b/server/api/admin/imuser/im_user.go new file mode 100644 index 0000000..0aa8481 --- /dev/null +++ b/server/api/admin/imuser/im_user.go @@ -0,0 +1,34 @@ +// Package imuser +// @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 imuser + +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:"/imUser/list" method:"get" tags:"IM用户" summary:"获取IM用户列表"` + sysin.ImUserListInp +} + +type ListRes struct { + form.PageRes + List []*sysin.ImUserListModel `json:"list" dc:"数据列表"` +} + +// ViewReq 获取IM用户指定信息 +type ViewReq struct { + g.Meta `path:"/imUser/view" method:"get" tags:"IM用户" summary:"获取IM用户指定信息"` + sysin.ImUserViewInp +} + +type ViewRes struct { + *sysin.ImUserViewModel +} diff --git a/server/api/admin/imworkorder/im_work_order.go b/server/api/admin/imworkorder/im_work_order.go new file mode 100644 index 0000000..9a1488d --- /dev/null +++ b/server/api/admin/imworkorder/im_work_order.go @@ -0,0 +1,42 @@ +// Package imworkorder +// @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 imworkorder + +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:"/imWorkOrder/list" method:"get" tags:"IM举报反馈" summary:"获取IM举报反馈工单列表"` + sysin.ImWorkOrderListInp +} + +type ListRes struct { + form.PageRes + List []*sysin.ImWorkOrderListModel `json:"list" dc:"数据列表"` +} + +// ViewReq 获取IM举报反馈工单指定信息 +type ViewReq struct { + g.Meta `path:"/imWorkOrder/view" method:"get" tags:"IM举报反馈" summary:"获取IM举报反馈工单指定信息"` + sysin.ImWorkOrderViewInp +} + +type ViewRes struct { + *sysin.ImWorkOrderViewModel +} + +// StatusReq 更新IM举报反馈工单状态 +type StatusReq struct { + g.Meta `path:"/imWorkOrder/status" method:"post" tags:"IM举报反馈" summary:"更新IM举报反馈工单状态"` + sysin.ImWorkOrderStatusInp +} + +type StatusRes struct{} diff --git a/server/hack/config.yaml b/server/hack/config.yaml index f779bf5..d0e5c50 100644 --- a/server/hack/config.yaml +++ b/server/hack/config.yaml @@ -22,7 +22,7 @@ gfcli: gen: dao: - - link: "mysql:hotgo:hg123456.@tcp(127.0.0.1:3306)/hotgo?loc=Local&parseTime=true&charset=utf8mb4" + - link: "${HGGEN_DAO_LINK}" # - link: "pgsql:postgres:hg123456@tcp(127.0.0.1:5432)/hotgo" group: "default" # 分组 使用hotgo代码生成功能时必须填 # tables: "" # 指定当前数据库中需要执行代码生成的数据表。如果为空,表示数据库的所有表都会生成。 diff --git a/server/internal/consts/im_group.go b/server/internal/consts/im_group.go new file mode 100644 index 0000000..1649dd9 --- /dev/null +++ b/server/internal/consts/im_group.go @@ -0,0 +1,105 @@ +// Package consts +// @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 consts + +import ( + "hotgo/internal/library/dict" + "hotgo/internal/model" +) + +func init() { + dict.RegisterEnums("ImGroupStateOptions", "IM群组状态选项", ImGroupStateOptions) + dict.RegisterEnums("ImGroupStatusOptions", "IM群业务状态选项", ImGroupStatusOptions) + dict.RegisterEnums("ImGroupRoleOptions", "IM群成员角色选项", ImGroupRoleOptions) + dict.RegisterEnums("ImGroupMemberStatusOptions", "IM群成员状态选项", ImGroupMemberStatusOptions) + dict.RegisterEnums("ImGroupRequestStatusOptions", "IM入群申请状态选项", ImGroupRequestStatusOptions) + dict.RegisterEnums("ImGroupMuteStatusOptions", "IM禁言状态选项", ImGroupMuteStatusOptions) + dict.RegisterEnums("ImGroupAnnouncementStatusOptions", "IM群公告状态选项", ImGroupAnnouncementStatusOptions) + dict.RegisterEnums("ImGroupOutboxStatusOptions", "IM群事件状态选项", ImGroupOutboxStatusOptions) +} + +var ImGroupStateOptions = []*model.Option{ + dict.GenSuccessOption(ImUserStateOk, "正常"), + dict.GenErrorOption(ImUserStateSuspended, "已停用"), + dict.GenDefaultOption(ImUserStateDeleted, "已删除"), + dict.GenWarningOption(ImUserStateUndefined, "未定义"), +} + +const ( + ImGroupStatusActive = "active" + ImGroupStatusDissolved = "dissolved" + ImGroupStatusDisabled = "disabled" + + ImGroupRoleOwner = "owner" + ImGroupRoleAdmin = "admin" + ImGroupRoleMember = "member" + + ImGroupMemberStatusActive = "active" + ImGroupMemberStatusRemoved = "removed" + ImGroupMemberStatusLeft = "left" + + ImGroupRequestStatusPending = "pending" + ImGroupRequestStatusAccepted = "accepted" + ImGroupRequestStatusRejected = "rejected" + ImGroupRequestStatusExpired = "expired" + ImGroupRequestStatusCanceled = "canceled" + + ImGroupMuteStatusActive = "active" + ImGroupMuteStatusRevoked = "revoked" + ImGroupMuteStatusExpired = "expired" + + ImGroupAnnouncementStatusCurrent = "current" + ImGroupAnnouncementStatusHistory = "history" + ImGroupAnnouncementStatusDeleted = "deleted" + + ImGroupOutboxStatusPending = "pending" + ImGroupOutboxStatusDelivered = "delivered" + ImGroupOutboxStatusFailed = "failed" +) + +var ImGroupStatusOptions = []*model.Option{ + dict.GenSuccessOption(ImGroupStatusActive, "正常"), + dict.GenDefaultOption(ImGroupStatusDissolved, "已解散"), + dict.GenErrorOption(ImGroupStatusDisabled, "已停用"), +} + +var ImGroupRoleOptions = []*model.Option{ + dict.GenPrimaryOption(ImGroupRoleOwner, "群主"), + dict.GenSuccessOption(ImGroupRoleAdmin, "管理员"), + dict.GenDefaultOption(ImGroupRoleMember, "成员"), +} + +var ImGroupMemberStatusOptions = []*model.Option{ + dict.GenSuccessOption(ImGroupMemberStatusActive, "正常"), + dict.GenDefaultOption(ImGroupMemberStatusRemoved, "已移除"), + dict.GenWarningOption(ImGroupMemberStatusLeft, "已退出"), +} + +var ImGroupRequestStatusOptions = []*model.Option{ + dict.GenWarningOption(ImGroupRequestStatusPending, "待处理"), + dict.GenSuccessOption(ImGroupRequestStatusAccepted, "已同意"), + dict.GenErrorOption(ImGroupRequestStatusRejected, "已拒绝"), + dict.GenDefaultOption(ImGroupRequestStatusExpired, "已过期"), + dict.GenDefaultOption(ImGroupRequestStatusCanceled, "已取消"), +} + +var ImGroupMuteStatusOptions = []*model.Option{ + dict.GenErrorOption(ImGroupMuteStatusActive, "禁言中"), + dict.GenDefaultOption(ImGroupMuteStatusRevoked, "已解除"), + dict.GenWarningOption(ImGroupMuteStatusExpired, "已过期"), +} + +var ImGroupAnnouncementStatusOptions = []*model.Option{ + dict.GenSuccessOption(ImGroupAnnouncementStatusCurrent, "当前"), + dict.GenDefaultOption(ImGroupAnnouncementStatusHistory, "历史"), + dict.GenErrorOption(ImGroupAnnouncementStatusDeleted, "已删除"), +} + +var ImGroupOutboxStatusOptions = []*model.Option{ + dict.GenWarningOption(ImGroupOutboxStatusPending, "待投递"), + dict.GenSuccessOption(ImGroupOutboxStatusDelivered, "已投递"), + dict.GenErrorOption(ImGroupOutboxStatusFailed, "投递失败"), +} diff --git a/server/internal/consts/im_security.go b/server/internal/consts/im_security.go new file mode 100644 index 0000000..94ca8f6 --- /dev/null +++ b/server/internal/consts/im_security.go @@ -0,0 +1,44 @@ +// Package consts +// @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 consts + +import ( + "hotgo/internal/library/dict" + "hotgo/internal/model" +) + +func init() { + dict.RegisterEnums("ImRealnameStatusOptions", "IM实名状态选项", ImRealnameStatusOptions) + dict.RegisterEnums("ImWorkOrderStatusOptions", "IM工单状态选项", ImWorkOrderStatusOptions) +} + +const ( + ImRealnameStatusPending = "pending" + ImRealnameStatusVerified = "verified" + ImRealnameStatusRejected = "rejected" +) + +var ImRealnameStatusOptions = []*model.Option{ + dict.GenWarningOption(ImRealnameStatusPending, "待审核"), + dict.GenSuccessOption(ImRealnameStatusVerified, "已通过"), + dict.GenErrorOption(ImRealnameStatusRejected, "已拒绝"), +} + +const ( + ImWorkOrderStatusReceived = "received" + ImWorkOrderStatusProcessing = "processing" + ImWorkOrderStatusResolved = "resolved" + ImWorkOrderStatusRejected = "rejected" + ImWorkOrderStatusClosed = "closed" +) + +var ImWorkOrderStatusOptions = []*model.Option{ + dict.GenWarningOption(ImWorkOrderStatusReceived, "待处理"), + dict.GenPrimaryOption(ImWorkOrderStatusProcessing, "处理中"), + dict.GenSuccessOption(ImWorkOrderStatusResolved, "已解决"), + dict.GenErrorOption(ImWorkOrderStatusRejected, "已驳回"), + dict.GenDefaultOption(ImWorkOrderStatusClosed, "已关闭"), +} diff --git a/server/internal/consts/im_tenant.go b/server/internal/consts/im_tenant.go new file mode 100644 index 0000000..464182a --- /dev/null +++ b/server/internal/consts/im_tenant.go @@ -0,0 +1,31 @@ +// Package consts +// @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 consts + +import ( + "hotgo/internal/library/dict" + "hotgo/internal/model" +) + +func init() { + dict.RegisterEnums("ImTenantStateOptions", "IM租户状态选项", ImTenantStateOptions) +} + +const ( + ImTenantStateProvisioning = 0 // 初始化中 + ImTenantStateActive = 1 // 正常 + ImTenantStateSuspended = 2 // 已停用 + ImTenantStateDeleting = 3 // 删除中 + ImTenantStateDeleted = 4 // 已删除 +) + +var ImTenantStateOptions = []*model.Option{ + dict.GenWarningOption(ImTenantStateProvisioning, "初始化中"), + dict.GenSuccessOption(ImTenantStateActive, "正常"), + dict.GenErrorOption(ImTenantStateSuspended, "已停用"), + dict.GenWarningOption(ImTenantStateDeleting, "删除中"), + dict.GenDefaultOption(ImTenantStateDeleted, "已删除"), +} diff --git a/server/internal/consts/im_user.go b/server/internal/consts/im_user.go new file mode 100644 index 0000000..c6b7aa4 --- /dev/null +++ b/server/internal/consts/im_user.go @@ -0,0 +1,29 @@ +// Package consts +// @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 consts + +import ( + "hotgo/internal/library/dict" + "hotgo/internal/model" +) + +func init() { + dict.RegisterEnums("ImUserStateOptions", "IM用户状态选项", ImUserStateOptions) +} + +const ( + ImUserStateOk = 0 // 正常 + ImUserStateSuspended = 10 // 已停用 + ImUserStateDeleted = 20 // 已删除 + ImUserStateUndefined = 30 // 未定义 +) + +var ImUserStateOptions = []*model.Option{ + dict.GenSuccessOption(ImUserStateOk, "正常"), + dict.GenErrorOption(ImUserStateSuspended, "已停用"), + dict.GenDefaultOption(ImUserStateDeleted, "已删除"), + dict.GenWarningOption(ImUserStateUndefined, "未定义"), +} diff --git a/server/internal/controller/admin/common/site.go b/server/internal/controller/admin/common/site.go index 6dc1a31..25c267f 100644 --- a/server/internal/controller/admin/common/site.go +++ b/server/internal/controller/admin/common/site.go @@ -7,7 +7,6 @@ package common import ( "context" - "github.com/gogf/gf/v2/i18n/gi18n" "hotgo/api/admin/common" "hotgo/internal/consts" "hotgo/internal/library/captcha" @@ -93,7 +92,7 @@ func (c *cSite) LoginConfig(ctx context.Context, _ *common.SiteLoginConfigReq) ( res.LoginConfig = login res.I18nSwitch = g.Cfg().MustGet(ctx, "system.i18n.switch", true).Bool() res.DefaultLanguage = g.Cfg().MustGet(ctx, "system.i18n.defaultLanguage", consts.SysDefaultLanguage).String() - res.ProjectName = gi18n.T(ctx, "HotGo管理系统") + res.ProjectName = "IM办公管理系统" return }