| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354 |
- 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"
- }
|