修复了一些问题
This commit is contained in:
@@ -934,3 +934,93 @@ func GetMemberMuteStatusHandler(c *gin.Context) {
|
||||
"muted_until": mutedUntil,
|
||||
}, "获取成功")
|
||||
}
|
||||
|
||||
/**
|
||||
* GetGroupSettingsHandler
|
||||
* 功能:获取群设置(名称、头像、公告、邀请权限等)
|
||||
* 路径:GET /api/groups/:room_id/settings
|
||||
*/
|
||||
func GetGroupSettingsHandler(c *gin.Context) {
|
||||
roomID := c.Param("room_id")
|
||||
room, err := service.RoomSvc.GetRoom(roomID)
|
||||
if err != nil {
|
||||
utils.NotFound(c, "群聊不存在")
|
||||
return
|
||||
}
|
||||
utils.SuccessWithData(c, gin.H{
|
||||
"name": room.RoomName,
|
||||
"avatar": room.RoomAvatar,
|
||||
"description": room.Announcement,
|
||||
"invite_permission": 0,
|
||||
"created_at": room.CreatedAt,
|
||||
"updated_at": room.UpdatedAt,
|
||||
}, "获取成功")
|
||||
}
|
||||
|
||||
/**
|
||||
* UpdateGroupSettingsHandler
|
||||
* 功能:更新群设置
|
||||
* 路径:POST /api/groups/:room_id/settings
|
||||
*/
|
||||
func UpdateGroupSettingsHandler(c *gin.Context) {
|
||||
userID, _ := c.Get("user_id")
|
||||
roomID := c.Param("room_id")
|
||||
|
||||
ok, err := service.RoomSvc.IsGroupAdminOrOwner(roomID, userID.(string))
|
||||
if err != nil || !ok {
|
||||
utils.Forbidden(c, "无权限修改群设置")
|
||||
return
|
||||
}
|
||||
|
||||
var req struct {
|
||||
Name string `json:"name"`
|
||||
Avatar string `json:"avatar"`
|
||||
Description string `json:"description"`
|
||||
InvitePermission *int `json:"invite_permission"`
|
||||
}
|
||||
if err := c.ShouldBindJSON(&req); err != nil {
|
||||
utils.BadRequest(c, "参数错误")
|
||||
return
|
||||
}
|
||||
|
||||
updates := map[string]interface{}{}
|
||||
if req.Name != "" {
|
||||
updates["room_name"] = req.Name
|
||||
}
|
||||
if req.Avatar != "" {
|
||||
updates["room_avatar"] = req.Avatar
|
||||
}
|
||||
if req.Description != "" {
|
||||
updates["announcement"] = req.Description
|
||||
}
|
||||
if len(updates) == 0 {
|
||||
utils.BadRequest(c, "没有可更新的字段")
|
||||
return
|
||||
}
|
||||
|
||||
if err := service.RoomSvc.DB.Model(&model.ChatRoom{}).Where("room_id = ?", roomID).Updates(updates).Error; err != nil {
|
||||
utils.InternalError(c, "更新失败")
|
||||
return
|
||||
}
|
||||
GetGroupSettingsHandler(c)
|
||||
}
|
||||
|
||||
/**
|
||||
* GetCallHistoryHandler
|
||||
* 功能:获取当前用户的通话记录(基于 call_id 消息)
|
||||
* 路径:GET /api/calls/history
|
||||
*/
|
||||
func GetCallHistoryHandler(c *gin.Context) {
|
||||
userID, _ := c.Get("user_id")
|
||||
var messages []model.ChatMessage
|
||||
err := service.ChatSvc.DB.
|
||||
Where("(sender_user_id = ? OR receiver_user_id = ?) AND call_id <> '' AND call_id IS NOT NULL", userID, userID).
|
||||
Order("created_at DESC").
|
||||
Limit(50).
|
||||
Find(&messages).Error
|
||||
if err != nil {
|
||||
utils.InternalError(c, "查询失败")
|
||||
return
|
||||
}
|
||||
utils.SuccessWithData(c, messages, "获取成功")
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user