@@ -49,6 +49,7 @@ func (c *Conversation) revokeMessage(ctx context.Context, tips *sdkws.RevokeMsgT
49
49
log .ZError (ctx , "GetMessageBySeq failed" , err , "tips" , & tips )
50
50
return errs .Wrap (err )
51
51
}
52
+
52
53
var revokerRole int32
53
54
var revokerNickname string
54
55
if tips .IsAdminRevoke || tips .SesstionType == constant .SingleChatType {
@@ -59,13 +60,15 @@ func (c *Conversation) revokeMessage(ctx context.Context, tips *sdkws.RevokeMsgT
59
60
} else {
60
61
log .ZDebug (ctx , "revoker user name" , "userName" , userName )
61
62
}
63
+
62
64
revokerNickname = userName
63
65
} else if tips .SesstionType == constant .SuperGroupChatType {
64
66
conversation , err := c .db .GetConversation (ctx , tips .ConversationID )
65
67
if err != nil {
66
68
log .ZError (ctx , "GetConversation failed" , err , "conversationID" , tips .ConversationID )
67
69
return errs .Wrap (err )
68
70
}
71
+
69
72
groupMember , err := c .db .GetGroupMemberInfoByGroupIDUserID (ctx , conversation .GroupID , tips .RevokerUserID )
70
73
if err != nil {
71
74
log .ZError (ctx , "GetGroupMemberInfoByGroupIDUserID failed" , err , "tips" , & tips )
@@ -134,26 +137,37 @@ func (c *Conversation) revokeMessage(ctx context.Context, tips *sdkws.RevokeMsgT
134
137
log .ZError (ctx , "SearchAllMessageByContentType failed" , err , "tips" , & tips )
135
138
return errs .Wrap (err )
136
139
}
140
+
137
141
for _ , v := range msgList {
138
142
err = c .quoteMsgRevokeHandle (ctx , tips .ConversationID , v , m )
139
- return errs .Wrap (err )
143
+ if err != nil {
144
+ log .ZError (ctx , "quote Msg Revoke Handle failed." , err , "chat Log content" , v )
145
+ }
140
146
}
141
- return nil
147
+ return errs . Wrap ( err )
142
148
}
143
149
144
150
func (c * Conversation ) quoteMsgRevokeHandle (ctx context.Context , conversationID string , v * model_struct.LocalChatLog , revokedMsg sdk_struct.MessageRevoked ) error {
145
- s := sdk_struct.MsgStruct {}
146
- _ = utils .JsonStringToStruct (v .Content , & s .QuoteElem )
151
+ s := sdk_struct.QuoteElem {}
152
+ if v .Content == "" {
153
+ err := errs .New ("Chat Log Content not found" )
154
+ return errs .Wrap (err )
155
+ }
147
156
148
- if s .QuoteElem .QuoteMessage == nil {
157
+ if err := utils .JsonStringToStruct (v .Content , & s ); err != nil {
158
+ return errs .New ("ChatLog content transfer failed." )
159
+ }
160
+
161
+ if s .QuoteMessage == nil {
149
162
return errs .New ("QuoteMessage is nil" ).Wrap ()
150
163
}
151
- if s .QuoteElem . QuoteMessage .ClientMsgID != revokedMsg .ClientMsgID {
164
+ if s .QuoteMessage .ClientMsgID != revokedMsg .ClientMsgID {
152
165
return errs .New ("quoteMessage ClientMsgID is not revokedMsg ClientMsgID" ).Wrap ()
153
166
}
154
- s .QuoteElem .QuoteMessage .Content = utils .StructToJsonString (revokedMsg )
155
- s .QuoteElem .QuoteMessage .ContentType = constant .RevokeNotification
156
- v .Content = utils .StructToJsonString (s .QuoteElem )
167
+
168
+ s .QuoteMessage .Content = utils .StructToJsonString (revokedMsg )
169
+ s .QuoteMessage .ContentType = constant .RevokeNotification
170
+ v .Content = utils .StructToJsonString (s )
157
171
if err := c .db .UpdateMessageBySeq (ctx , conversationID , v ); err != nil {
158
172
log .ZError (ctx , "UpdateMessage failed" , err , "v" , v )
159
173
return errs .Wrap (err )
0 commit comments