MessageService.go 2.4 KB
Newer Older
M
monomania 已提交
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108
package service

import (
	"github.com/silenceper/wechat/message"
	"tesou.io/platform/foot-parent/foot-core/common/base/service/mysql"
)

type MessageService struct {
	mysql.BaseService
}

/**
消息管理
 */
func (this *MessageService) Handle(v message.MixMessage) *message.Reply {
	switch v.MsgType {
	//文本消息
	case message.MsgTypeText:
		//do something
		return nil
		//图片消息
	case message.MsgTypeImage:
		//do something
		return nil
		//语音消息
	case message.MsgTypeVoice:
		//do something
		return nil
		//视频消息
	case message.MsgTypeVideo:
		//do something
		return nil
		//小视频消息
	case message.MsgTypeShortVideo:
		//do something
		return nil
		//地理位置消息
	case message.MsgTypeLocation:
		//do something
		return nil
		//链接消息
	case message.MsgTypeLink:
		//do something
		return nil
		//事件推送消息
	case message.MsgTypeEvent:
		return this.handleMsgTypeEvent(v)
	}
	text := message.NewText(v.Content)
	return &message.Reply{MsgType: message.MsgTypeText, MsgData: text}
}

/**
事件推送消息
 */
func (this *MessageService) handleMsgTypeEvent(v message.MixMessage) *message.Reply {
	switch v.Event {
	//EventSubscribe 订阅
	case message.EventSubscribe:
		//do something
		return nil
		//取消订阅
	case message.EventUnsubscribe:
		//do something
		return nil
		//用户已经关注公众号,则微信会将带场景值扫描事件推送给开发者
	case message.EventScan:
		//do something
		return nil
		// 上报地理位置事件
	case message.EventLocation:
		//do something
		return nil
		// 点击菜单拉取消息时的事件推送
	case message.EventClick:
		//do something
		return nil
		// 点击菜单跳转链接时的事件推送
	case message.EventView:
		//do something
		return nil
		// 扫码推事件的事件推送
	case message.EventScancodePush:
		//do something
		return nil
		// 扫码推事件且弹出“消息接收中”提示框的事件推送
	case message.EventScancodeWaitmsg:
		//do something
		return nil
		// 弹出系统拍照发图的事件推送
	case message.EventPicSysphoto:
		//do something
		return nil
		// 弹出拍照或者相册发图的事件推送
	case message.EventPicPhotoOrAlbum:
		//do something
		return nil
		// 弹出微信相册发图器的事件推送
	case message.EventPicWeixin:
		//do something
		return nil
		// 弹出地理位置选择器的事件推送
	case message.EventLocationSelect:
		//do something
		return nil
	}
	return nil
}