message_subscribe.go 2.6 KB
package models

import (
	"fmt"
	"gitlab.fjmaimaimai.com/allied-creation/sumifcc-discuss/cmd/discuss/interanl/pkg/domain"
	"gorm.io/gorm"
	"gorm.io/plugin/soft_delete"
)

type MessageSubscribe struct {
	Id           int64                  `json:"id"`                                             // 唯一标识
	Type         int                    `json:"type"`                                           // 分类(1评论回复 2获赞 3关注人更新)
	CompanyId    int64                  `json:"companyId"`                                      // 公司ID
	UserId       int64                  `json:"userId"`                                         // 用户ID
	OpenId       string                 `json:"openId"`                                         // 微信openID
	TemplateId   string                 `json:"templateId"`                                     // 模板ID
	TemplateData map[string]interface{} `json:"templateData" gorm:"serializer:json;type:text;"` // 模板参数
	Result       string                 `json:"result"`                                         // 发送结果
	Error        string                 `json:"error"`                                          // 调用接口错误信息
	CreatedAt    int64                  `json:",omitempty"`                                     // 创建时间
	UpdatedAt    int64                  `json:",omitempty"`                                     // 更新时间
	DeletedAt    int64                  `json:",omitempty"`                                     // 删除时间
	Version      int                    `json:",omitempty"`                                     // 版本
	IsDel        soft_delete.DeletedAt  `gorm:"softDelete:flag,DeletedAtField:DeletedAt"`       // 删除标记
}

func (m *MessageSubscribe) TableName() string {
	return "message_subscribe"
}

func (m *MessageSubscribe) BeforeCreate(tx *gorm.DB) (err error) {
	// m.CreatedAt = time.Now().Unix()
	// m.UpdatedAt = time.Now().Unix()
	return
}

func (m *MessageSubscribe) BeforeUpdate(tx *gorm.DB) (err error) {
	// m.UpdatedAt = time.Now().Unix()
	return
}

func (m *MessageSubscribe) CacheKeyFunc() string {
	if m.Id == 0 {
		return ""
	}
	return fmt.Sprintf("%v:cache:%v:id:%v", domain.ProjectName, m.TableName(), m.Id)
}

func (m *MessageSubscribe) CacheKeyFuncByObject(obj interface{}) string {
	if v, ok := obj.(*MessageSubscribe); ok {
		return v.CacheKeyFunc()
	}
	return ""
}

func (m *MessageSubscribe) CachePrimaryKeyFunc() string {
	if len("") == 0 {
		return ""
	}
	return fmt.Sprintf("%v:cache:%v:primarykey:%v", domain.ProjectName, m.TableName(), "key")
}