Files
yunzerwebsiteallinone/go/models/wechat_mp.go
T
2026-09-16 18:06:18 +08:00

86 lines
5.0 KiB
Go
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
package models
import "time"
// =============================================================
// 微信公众号(服务号)绑定与推送(表结构见 docs/sql/create_platform_wechat_mp.sql)
// 1. 配置:AppID / AppSecret / Token / EncodingAESKey(敏感字段加密存储)
// 2. 粉丝:关注/取关事件沉淀,可绑定平台用户或租户用户,认证后定向推送
// 3. 验证码:扫码关注 → 公众号被动回复验证码 → 平台核销完成绑定
// =============================================================
// 绑定对象类型
const (
WechatBindTypePlatformUser = "platform_user" // 平台用户(yz_system_admin_user)
WechatBindTypeTenantUser = "tenant_user" // 租户用户(yz_system_tenant_user)
)
// 验证码状态
const (
WechatVerifyStatusWaiting = 0 // 待扫码
WechatVerifyStatusScanned = 1 // 已扫码待核销
WechatVerifyStatusUsed = 2 // 已核销
WechatVerifyStatusExpired = 3 // 已过期
)
// WechatMpConfig 微信公众号(服务号)配置 yz_platform_wechat_mp_config(单行)
type WechatMpConfig struct {
ID uint64 `orm:"column(id);pk;auto" json:"id"`
AppID string `orm:"column(app_id);size(64)" json:"app_id"`
AppSecret string `orm:"column(app_secret);size(512)" json:"-"` // 加密存储,不回显
Token string `orm:"column(token);size(128)" json:"token"`
AESKey string `orm:"column(aes_key);size(512)" json:"-"` // 加密存储,不回显
EncryptMode string `orm:"column(encrypt_mode);size(16)" json:"encrypt_mode"` // plain / compatible / safe
TemplateID string `orm:"column(template_id);size(128)" json:"template_id"`
Verified int8 `orm:"column(verified);default(0)" json:"verified"`
Enabled int8 `orm:"column(enabled);default(0)" json:"enabled"`
Remark string `orm:"column(remark);size(255)" json:"remark"`
CreateTime time.Time `orm:"column(create_time);type(datetime);auto_now_add" json:"create_time"`
UpdateTime *time.Time `orm:"column(update_time);type(datetime);null" json:"update_time"`
}
func (m *WechatMpConfig) TableName() string { return "yz_platform_wechat_mp_config" }
// WechatMpFollower 微信公众号关注用户(粉丝) yz_platform_wechat_mp_follower
type WechatMpFollower struct {
ID uint64 `orm:"column(id);pk;auto" json:"id"`
OpenID string `orm:"column(openid);size(64)" json:"openid"`
UnionID string `orm:"column(unionid);size(64)" json:"unionid"`
Nickname string `orm:"column(nickname);size(128)" json:"nickname"`
Avatar string `orm:"column(avatar);size(512)" json:"avatar"`
Sex int8 `orm:"column(sex);default(0)" json:"sex"`
City string `orm:"column(city);size(64)" json:"city"`
Province string `orm:"column(province);size(64)" json:"province"`
Country string `orm:"column(country);size(64)" json:"country"`
Subscribe int8 `orm:"column(subscribe);default(1)" json:"subscribe"`
SubscribeTime *time.Time `orm:"column(subscribe_time);type(datetime);null" json:"subscribe_time"`
UnsubscribeTime *time.Time `orm:"column(unsubscribe_time);type(datetime);null" json:"unsubscribe_time"`
BindType string `orm:"column(bind_type);size(32)" json:"bind_type"`
BindID uint64 `orm:"column(bind_id)" json:"bind_id"`
BindTid uint64 `orm:"column(bind_tid)" json:"bind_tid"`
BindTime *time.Time `orm:"column(bind_time);type(datetime);null" json:"bind_time"`
Remark string `orm:"column(remark);size(255)" json:"remark"`
CreateTime time.Time `orm:"column(create_time);type(datetime);auto_now_add" json:"create_time"`
UpdateTime *time.Time `orm:"column(update_time);type(datetime);null" json:"update_time"`
DeleteTime *time.Time `orm:"column(delete_time);type(datetime);null" json:"delete_time"`
}
func (m *WechatMpFollower) TableName() string { return "yz_platform_wechat_mp_follower" }
// WechatMpVerifyCode 公众号关注取码/绑定验证码 yz_platform_wechat_mp_verify_code
type WechatMpVerifyCode struct {
ID uint64 `orm:"column(id);pk;auto" json:"id"`
Scene string `orm:"column(scene);size(64)" json:"scene"`
Code string `orm:"column(code);size(8)" json:"code"`
OpenID string `orm:"column(openid);size(64)" json:"openid"`
Status int8 `orm:"column(status);default(0)" json:"status"`
BindType string `orm:"column(bind_type);size(32)" json:"bind_type"`
BindID uint64 `orm:"column(bind_id)" json:"bind_id"`
BindTid uint64 `orm:"column(bind_tid)" json:"bind_tid"`
ExpireAt *time.Time `orm:"column(expire_at);type(datetime);null" json:"expire_at"`
CreateTime time.Time `orm:"column(create_time);type(datetime);auto_now_add" json:"create_time"`
UpdateTime *time.Time `orm:"column(update_time);type(datetime);null" json:"update_time"`
}
func (m *WechatMpVerifyCode) TableName() string { return "yz_platform_wechat_mp_verify_code" }