package dingtalk import ( "context" platServer "dashoo.cn/micro/app/service/plat" "dashoo.cn/opms_libary/plugin/dingtalk" dingContext "dashoo.cn/opms_libary/plugin/dingtalk/context" "dashoo.cn/opms_libary/plugin/dingtalk/message" "fmt" "github.com/gogf/gf/os/glog" ) type DingHandler struct{} func (h *DingHandler) CallBack(ctx context.Context, req *message.SubsMessage, rsp *message.Reply) error { req.Ctx = ctx handler := dingtalk.Client.GetDingTalkHandler(req) //设置接收消息的处理方法 handler.SetHandleMessageFunc(func(msg *message.MixMessage) string { switch msg.EventType { case message.EventCheckUrl: return h.handleCheckUrl(msg) case message.EventCalendarChange: return h.handleCalendarChange(msg, handler.Context) } return "" }) result, _ := handler.Handle() *rsp = result return nil } func (h *DingHandler) handleCheckUrl(msg *message.MixMessage) string { fmt.Println(msg) return "success" } func (h *DingHandler) handleCalendarChange(msg *message.MixMessage, ctx *dingContext.Context) string { fmt.Println(msg) // 本系统数据库操作 s, err := platServer.NewScheduleService(ctx.SubsMessage.Ctx) if err != nil { glog.Error(err) return err.Error() } // 回填数据 err = s.SaveByDingEvent(msg) if err != nil { glog.Error(err) return err.Error() } return "success" }