feat: improve group owner and status display
This commit is contained in:
@@ -70,10 +70,14 @@ func (s *sSysImGroup) List(ctx context.Context, in *sysin.ImGroupListInp) (list
|
||||
func (s *sSysImGroup) groupModel(ctx context.Context, db gdb.DB) *gdb.Model {
|
||||
return db.Model("im_topics t").Safe().Ctx(ctx).
|
||||
LeftJoin("im_group_settings gs", "gs.topic = t.name").
|
||||
LeftJoin("im_users owner", "owner.id = COALESCE(gs.owner_user_id, t.owner)").
|
||||
LeftJoin("im_user_profiles owner_profile", "owner_profile.user_id = COALESCE(gs.owner_user_id, t.owner)").
|
||||
Fields(
|
||||
"t.name topic",
|
||||
"t.state",
|
||||
"COALESCE(gs.owner_user_id, t.owner) owner_id",
|
||||
"COALESCE(NULLIF(owner_profile.nickname, ''), owner.username, '') owner_nickname",
|
||||
"COALESCE(owner.username, '') owner_username",
|
||||
"t.seqid seq_id",
|
||||
"t.delid del_id",
|
||||
"t.subcnt sub_cnt",
|
||||
@@ -137,10 +141,14 @@ func (s *sSysImGroup) View(ctx context.Context, in *sysin.ImGroupViewInp) (res *
|
||||
|
||||
err = db.Model("im_topics t").Safe().Ctx(ctx).
|
||||
LeftJoin("im_group_settings gs", "gs.topic = t.name").
|
||||
LeftJoin("im_users owner", "owner.id = COALESCE(gs.owner_user_id, t.owner)").
|
||||
LeftJoin("im_user_profiles owner_profile", "owner_profile.user_id = COALESCE(gs.owner_user_id, t.owner)").
|
||||
Fields(
|
||||
"t.name topic",
|
||||
"t.state",
|
||||
"COALESCE(gs.owner_user_id, t.owner) owner_id",
|
||||
"COALESCE(NULLIF(owner_profile.nickname, ''), owner.username, '') owner_nickname",
|
||||
"COALESCE(owner.username, '') owner_username",
|
||||
"t.seqid seq_id",
|
||||
"t.delid del_id",
|
||||
"t.subcnt sub_cnt",
|
||||
|
||||
@@ -30,21 +30,23 @@ func (in *ImGroupListInp) Filter(ctx context.Context) (err error) {
|
||||
}
|
||||
|
||||
type ImGroupListModel struct {
|
||||
TenantId int64 `json:"tenantId" dc:"租户ID"`
|
||||
TenantName string `json:"tenantName" dc:"租户名称"`
|
||||
Topic string `json:"topic" dc:"Topic"`
|
||||
State int `json:"state" dc:"状态"`
|
||||
OwnerId int64 `json:"ownerId" dc:"群主ID"`
|
||||
SeqId int `json:"seqId" dc:"最新消息序号"`
|
||||
DelId int `json:"delId" dc:"删除序号"`
|
||||
SubCnt int `json:"subCnt" dc:"成员数"`
|
||||
TouchedAt *gtime.Time `json:"touchedAt" dc:"活跃时间"`
|
||||
CreatedAt *gtime.Time `json:"createdAt" dc:"创建时间"`
|
||||
UpdatedAt *gtime.Time `json:"updatedAt" dc:"修改时间"`
|
||||
PublicJson string `json:"publicJson" dc:"公开资料"`
|
||||
TrustedJson string `json:"trustedJson" dc:"可信资料"`
|
||||
TagsJson string `json:"tagsJson" dc:"标签"`
|
||||
AuxJson string `json:"auxJson" dc:"辅助资料"`
|
||||
TenantId int64 `json:"tenantId" dc:"租户ID"`
|
||||
TenantName string `json:"tenantName" dc:"租户名称"`
|
||||
Topic string `json:"topic" dc:"Topic"`
|
||||
State int `json:"state" dc:"状态"`
|
||||
OwnerId int64 `json:"ownerId" dc:"群主ID"`
|
||||
OwnerNickname string `json:"ownerNickname" dc:"群主昵称"`
|
||||
OwnerUsername string `json:"ownerUsername" dc:"群主用户名"`
|
||||
SeqId int `json:"seqId" dc:"最新消息序号"`
|
||||
DelId int `json:"delId" dc:"删除序号"`
|
||||
SubCnt int `json:"subCnt" dc:"成员数"`
|
||||
TouchedAt *gtime.Time `json:"touchedAt" dc:"活跃时间"`
|
||||
CreatedAt *gtime.Time `json:"createdAt" dc:"创建时间"`
|
||||
UpdatedAt *gtime.Time `json:"updatedAt" dc:"修改时间"`
|
||||
PublicJson string `json:"publicJson" dc:"公开资料"`
|
||||
TrustedJson string `json:"trustedJson" dc:"可信资料"`
|
||||
TagsJson string `json:"tagsJson" dc:"标签"`
|
||||
AuxJson string `json:"auxJson" dc:"辅助资料"`
|
||||
|
||||
GroupName string `json:"groupName" dc:"群名称"`
|
||||
AvatarFileId string `json:"avatarFileId" dc:"头像文件ID"`
|
||||
|
||||
@@ -89,3 +89,13 @@ WHERE NOT EXISTS (SELECT 1 FROM `hg_admin_menu` WHERE `name` = 'imGroupMemberRem
|
||||
INSERT INTO `hg_admin_menu` (`id`, `pid`, `title`, `name`, `path`, `icon`, `type`, `redirect`, `permissions`, `permission_name`, `component`, `always_show`, `active_menu`, `is_root`, `is_frame`, `frame_src`, `keep_alive`, `hidden`, `affix`, `level`, `tree`, `sort`, `remark`, `status`, `created_at`, `updated_at`)
|
||||
SELECT NULL, @groupListId, '转让群主', 'imGroupOwnerTransfer', '', '', '3', '', '/imGroup/ownerTransfer', '', '', '1', '', '0', '0', '', '0', '1', '0', '4', CONCAT('tr_', @imRootId, ' tr_', @groupDirId, ' tr_', @groupListId, ' '), '160', '', '1', @now, @now
|
||||
WHERE NOT EXISTS (SELECT 1 FROM `hg_admin_menu` WHERE `name` = 'imGroupOwnerTransfer');
|
||||
|
||||
INSERT INTO `hg_admin_menu` (`id`, `pid`, `title`, `name`, `path`, `icon`, `type`, `redirect`, `permissions`, `permission_name`, `component`, `always_show`, `active_menu`, `is_root`, `is_frame`, `frame_src`, `keep_alive`, `hidden`, `affix`, `level`, `tree`, `sort`, `remark`, `status`, `created_at`, `updated_at`)
|
||||
SELECT NULL, @groupListId, '解散群', 'imGroupDissolve', '', '', '3', '', '/imGroup/dissolve', '', '', '1', '', '0', '0', '', '0', '1', '0', '4', CONCAT('tr_', @imRootId, ' tr_', @groupDirId, ' tr_', @groupListId, ' '), '170', '', '1', @now, @now
|
||||
WHERE NOT EXISTS (SELECT 1 FROM `hg_admin_menu` WHERE `name` = 'imGroupDissolve');
|
||||
|
||||
INSERT IGNORE INTO `hg_admin_role_menu` (`role_id`, `menu_id`)
|
||||
SELECT source_role.`role_id`, dissolve_menu.`id`
|
||||
FROM `hg_admin_role_menu` source_role
|
||||
JOIN `hg_admin_menu` governance_update ON governance_update.`id` = source_role.`menu_id` AND governance_update.`name` = 'imGroupGovernanceUpdate'
|
||||
JOIN `hg_admin_menu` dissolve_menu ON dissolve_menu.`name` = 'imGroupDissolve';
|
||||
|
||||
Reference in New Issue
Block a user