pet-ai/server/plugin/wechat-integration/model/mp_menu.go

58 lines
2.3 KiB
Go

package model
import (
"github.com/flipped-aurora/gin-vue-admin/server/global"
)
// MpMenu 微信公众号菜单表
type MpMenu struct {
global.GVA_MODEL
Name *string `json:"name" gorm:"type:varchar(255);comment:菜单名称"`
MenuKey *string `json:"menuKey" gorm:"type:varchar(255);comment:菜单标识"`
ParentID *string `json:"parentId" gorm:"type:varchar(32);index;comment:父ID"`
Type string `json:"type" gorm:"type:varchar(32);not null;default:'';index;comment:按钮类型"`
URL *string `json:"url" gorm:"type:varchar(500);comment:网页链接"`
MiniProgramAppID *string `json:"miniProgramAppId" gorm:"type:varchar(32);comment:小程序appid"`
MiniProgramPagePath *string `json:"miniProgramPagePath" gorm:"type:varchar(200);comment:小程序页面路径"`
ReplyMessageType *string `json:"replyMessageType" gorm:"type:varchar(32);comment:消息类型"`
ReplyContent *string `json:"replyContent" gorm:"type:varchar(1024);comment:回复的消息内容"`
}
// TableName 指定表名
func (MpMenu) TableName() string {
return "mp_menu"
}
// MenuType 菜单类型常量
const (
MenuTypeClick = "click" // 点击推事件
MenuTypeView = "view" // 跳转URL
MenuTypeScanCodePush = "scancode_push" // 扫码推事件
MenuTypeScanCodeWaitMsg = "scancode_waitmsg" // 扫码推事件且弹出"消息接收中"提示框
MenuTypePicSysPhoto = "pic_sysphoto" // 弹出系统拍照发图
MenuTypePicPhotoOrAlbum = "pic_photo_or_album" // 弹出拍照或者相册发图
MenuTypePicWeixin = "pic_weixin" // 弹出微信相册发图器
MenuTypeLocationSelect = "location_select" // 弹出地理位置选择器
MenuTypeMiniProgram = "miniprogram" // 小程序
)
// IsClickType 是否为点击类型
func (m *MpMenu) IsClickType() bool {
return m.Type == MenuTypeClick
}
// IsViewType 是否为跳转类型
func (m *MpMenu) IsViewType() bool {
return m.Type == MenuTypeView
}
// IsMiniProgramType 是否为小程序类型
func (m *MpMenu) IsMiniProgramType() bool {
return m.Type == MenuTypeMiniProgram
}
// HasParent 是否有父菜单
func (m *MpMenu) HasParent() bool {
return m.ParentID != nil && *m.ParentID != ""
}