Merge branch 'refs/heads/feature-im'

# Conflicts:
#	service/imService.go
This commit is contained in:
junleea 2024-10-07 17:05:30 +08:00
commit e7898bdd9b
2 changed files with 70 additions and 10 deletions

View File

@ -203,7 +203,6 @@ func GetMessage(c *gin.Context) {
id := int(user_id.(float64))
//解析参数
if err := c.ShouldBind(&req); err == nil {
if req.Type == 2 {
msgs, err2 := dao.GetMsgGroupByIndex(req.GroupID, req.Index)
if err2 == nil {
@ -266,27 +265,52 @@ func AcceptInvite(c *gin.Context) {
user_id, _ := c.Get("id")
cid := int(user_id.(float64))
if err := c.ShouldBind(&req); err == nil {
err2 := service.AddFriendService(req.ID, cid, req.To_user_id)
if err2 == nil {
c.JSON(http.StatusOK, gin.H{"code": proto.SuccessCode, "message": "success"})
if req.Type == 1 {
//同意添加好友
err2 := service.AddFriendService(req.ID, cid, req.To_user_id)
if err2 == nil {
c.JSON(http.StatusOK, gin.H{"code": proto.SuccessCode, "message": "success"})
} else {
c.JSON(http.StatusOK, gin.H{"error": err2.Error(), "code": proto.OperationFailed, "message": "failed"})
}
} else if req.Type == 2 {
//同意加入群聊
err3 := service.JoinGroupService(req.ID, cid, req.To_user_id, req.GroupID)
if err3 == nil {
c.JSON(http.StatusOK, gin.H{"code": proto.SuccessCode, "message": "success"})
} else {
c.JSON(http.StatusOK, gin.H{"error": err3.Error(), "code": proto.OperationFailed, "message": "failed"})
}
} else {
c.JSON(http.StatusOK, gin.H{"error": err2.Error(), "code": proto.OperationFailed, "message": "failed"})
c.JSON(http.StatusOK, gin.H{"error": err.Error(), "code": proto.ParameterError, "message": "failed"})
}
} else {
c.JSON(http.StatusOK, gin.H{"error": err.Error(), "code": proto.ParameterError, "message": "failed"})
}
}
func RejectInvite(c *gin.Context) {
var req Message
user_id, _ := c.Get("id")
cid := int(user_id.(float64))
if err := c.ShouldBind(&req); err == nil {
err2 := service.RejectFriendService(req.ID, cid, req.To_user_id)
if err2 == nil {
c.JSON(http.StatusOK, gin.H{"code": proto.SuccessCode, "message": "success"})
if req.Type == 1 {
//拒绝添加好友
err2 := service.RejectFriendService(req.ID, cid, req.To_user_id)
if err2 == nil {
c.JSON(http.StatusOK, gin.H{"code": proto.SuccessCode, "message": "success"})
} else {
c.JSON(http.StatusOK, gin.H{"error": err2.Error(), "code": proto.OperationFailed, "message": "failed"})
}
} else if req.Type == 2 {
//拒绝加入群聊
err3 := service.RejectGroupService(req.ID, cid, req.To_user_id, req.GroupID)
if err3 == nil {
c.JSON(http.StatusOK, gin.H{"code": proto.SuccessCode, "message": "success"})
} else {
c.JSON(http.StatusOK, gin.H{"error": err3.Error(), "code": proto.OperationFailed, "message": "failed"})
}
} else {
c.JSON(http.StatusOK, gin.H{"error": err2.Error(), "code": proto.OperationFailed, "message": "failed"})
c.JSON(http.StatusOK, gin.H{"error": "parameter error", "code": proto.ParameterError, "message": "failed type error"})
}
} else {
c.JSON(http.StatusOK, gin.H{"error": err.Error(), "code": proto.ParameterError, "message": "failed"})

View File

@ -370,3 +370,39 @@ func SetRobotMsg(person_id, robot_id int, msg string) {
return
}
}
// 同意用户加入群聊
func JoinGroupService(im_id, cid, user_id, group_id int) error {
group := dao.FindGroup(group_id)
if len(group) == 0 {
return errors.New("no such group")
}
if group[0].AuthID != cid {
return errors.New("no permission")
}
//判断是否在群里
groupUser := dao.FindGroupUser(user_id, group_id)
if len(groupUser) > 0 {
return errors.New("已在群里")
}
err, _ := dao.JoinGroup(group_id, user_id)
if err != nil {
return err
}
err = dao.UpdateMessageStatus(uint(im_id), 1)
return err
}
func RejectGroupService(im_id, cid, user_id, group_id int) error {
group := dao.FindGroup(group_id)
if len(group) == 0 {
return errors.New("no such group")
}
if group[0].AuthID != cid {
return errors.New("no permission")
}
err := dao.UpdateMessageStatus(uint(im_id), 1) // 拒绝,设为已读
return err
}