MessageService.go 2.6 KB
Newer Older
M
monomania 已提交
1 2 3 4
package service

import (
	"github.com/silenceper/wechat/message"
S
shi.zeyuan 已提交
5
	"tesou.io/platform/foot-parent/foot-api/common/base"
M
monomania 已提交
6 7 8 9 10 11 12 13 14 15 16
	"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 {
S
shi.zeyuan 已提交
17
	base.Log.Info("请求内容:",v)
M
monomania 已提交
18 19 20 21
	switch v.MsgType {
	//文本消息
	case message.MsgTypeText:
		//do something
M
monomania 已提交
22 23
		text := message.NewText(v.Content)
		return &message.Reply{MsgType: message.MsgTypeText, MsgData: text}
M
monomania 已提交
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 109 110 111
		//图片消息
	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
}