96 lines
3.1 KiB
Go
96 lines
3.1 KiB
Go
package model
|
|
|
|
import (
|
|
"time"
|
|
|
|
"github.com/flipped-aurora/gin-vue-admin/server/global"
|
|
)
|
|
|
|
// MpDraft 微信公众号草稿表
|
|
type MpDraft struct {
|
|
global.GVA_MODEL
|
|
MediaID string `json:"mediaId" gorm:"type:varchar(128);not null;index;comment:草稿的media_id"`
|
|
Title string `json:"title" gorm:"type:varchar(255);not null;comment:图文消息标题"`
|
|
Author *string `json:"author" gorm:"type:varchar(100);comment:作者"`
|
|
Digest *string `json:"digest" gorm:"type:varchar(500);comment:图文消息摘要"`
|
|
Content *string `json:"content" gorm:"type:longtext;comment:图文消息内容"`
|
|
ContentSourceUrl *string `json:"contentSourceUrl" gorm:"type:varchar(1024);comment:原文地址"`
|
|
ThumbMediaID *string `json:"thumbMediaId" gorm:"type:varchar(128);comment:缩略图的media_id"`
|
|
ThumbUrl *string `json:"thumbUrl" gorm:"type:varchar(1024);comment:缩略图URL"`
|
|
ShowCoverPic int `json:"showCoverPic" gorm:"default:1;comment:是否显示封面 0不显示 1显示"`
|
|
NeedOpenComment int `json:"needOpenComment" gorm:"default:0;comment:是否打开评论 0不打开 1打开"`
|
|
OnlyFansCanComment int `json:"onlyFansCanComment" gorm:"default:0;comment:是否粉丝才可评论 0所有人 1粉丝"`
|
|
|
|
// 草稿状态
|
|
Status string `json:"status" gorm:"type:varchar(32);default:'draft';comment:状态 draft草稿 published已发布"`
|
|
UpdateTime *time.Time `json:"updateTime" gorm:"comment:更新时间"`
|
|
|
|
// 微信相关
|
|
WechatMediaID *string `json:"wechatMediaId" gorm:"type:varchar(128);comment:微信草稿media_id"`
|
|
WechatCreateTime *time.Time `json:"wechatCreateTime" gorm:"comment:微信创建时间"`
|
|
WechatUpdateTime *time.Time `json:"wechatUpdateTime" gorm:"comment:微信更新时间"`
|
|
}
|
|
|
|
// TableName 指定表名
|
|
func (MpDraft) TableName() string {
|
|
return "mp_draft"
|
|
}
|
|
|
|
// DraftStatus 草稿状态常量
|
|
const (
|
|
DraftStatusDraft = "draft" // 草稿
|
|
DraftStatusPublished = "published" // 已发布
|
|
DraftStatusDeleted = "deleted" // 已删除
|
|
)
|
|
|
|
// IsDraft 是否为草稿状态
|
|
func (d *MpDraft) IsDraft() bool {
|
|
return d.Status == DraftStatusDraft
|
|
}
|
|
|
|
// IsPublished 是否已发布
|
|
func (d *MpDraft) IsPublished() bool {
|
|
return d.Status == DraftStatusPublished
|
|
}
|
|
|
|
// IsDeleted 是否已删除
|
|
func (d *MpDraft) IsDeleted() bool {
|
|
return d.Status == DraftStatusDeleted
|
|
}
|
|
|
|
// GetDisplayTitle 获取显示标题
|
|
func (d *MpDraft) GetDisplayTitle() string {
|
|
if d.Title == "" {
|
|
return "无标题"
|
|
}
|
|
return d.Title
|
|
}
|
|
|
|
// GetDisplayAuthor 获取显示作者
|
|
func (d *MpDraft) GetDisplayAuthor() string {
|
|
if d.Author == nil || *d.Author == "" {
|
|
return "未知作者"
|
|
}
|
|
return *d.Author
|
|
}
|
|
|
|
// HasThumb 是否有缩略图
|
|
func (d *MpDraft) HasThumb() bool {
|
|
return d.ThumbMediaID != nil && *d.ThumbMediaID != ""
|
|
}
|
|
|
|
// IsShowCover 是否显示封面
|
|
func (d *MpDraft) IsShowCover() bool {
|
|
return d.ShowCoverPic == 1
|
|
}
|
|
|
|
// IsOpenComment 是否打开评论
|
|
func (d *MpDraft) IsOpenComment() bool {
|
|
return d.NeedOpenComment == 1
|
|
}
|
|
|
|
// IsOnlyFansComment 是否仅粉丝可评论
|
|
func (d *MpDraft) IsOnlyFansComment() bool {
|
|
return d.OnlyFansCanComment == 1
|
|
}
|