package MessageHandlers import ( "context" "encoding/json" "github.com/zeromicro/go-zero/core/logx" "time" "wechat-api/ent/addwechatfriendlog" "wechat-api/internal/pkg/wechat_ws" "wechat-api/internal/svc" "wechat-api/workphone" ) type TaskResultNoticeHandler struct { svcCtx *svc.ServiceContext } func NewTaskResultNoticeHandler(svcCtx *svc.ServiceContext) *TaskResultNoticeHandler { return &TaskResultNoticeHandler{ svcCtx: svcCtx, } } // Handle 实现 MessageHandlerStrategy 接口 func (f *TaskResultNoticeHandler) Handle(ctx context.Context, msg *wechat_ws.MsgJsonObject, svcCtx *svc.ServiceContext) error { message := workphone.TaskResultNoticeMessage{} err := json.Unmarshal([]byte(msg.Message), &message) logx.Infof("msg.Message 的内容是:%s", msg.Message) if err != nil { logx.Errorf("Unmarshal.fail") return err } if message.TaskType != workphone.EnumMsgType_AddFriendsTask { logx.Infof("不是添加好友任务的回执") return nil } m, err := ParseJSONStringToMap(msg.Message) if err != nil { logx.Errorf("解析 JSON 失败: %v", err) return err } update := svcCtx.DB.AddWechatFriendLog.Update(). Where(addwechatfriendlog.OwnerWxIDEQ(message.WeChatId)). Where(addwechatfriendlog.TaskIDEQ(message.TaskId)). //SetFindResult(m). SetAddResult(m). SetUpdatedAt(time.Now().Unix()) if message.Success { update.SetIsCanAdd(2) } if _, err := update.Save(ctx); err != nil { logx.Errorf("更新AddWechatFriendLog-field-add-result失败: %v", err) return err } return nil }