1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192 |
- package message
- import (
- logger "eta/eta_mini_ht_api/common/component/log"
- "eta/eta_mini_ht_api/models"
- "gorm.io/gorm"
- "time"
- )
- type StatusType string
- type SourceType string
- type MetaType string
- const (
- UserNoticeType MetaType = "USER_NOTICE"
- SysUserNoticeType MetaType = "SYS_USER_NOTICE"
- InitStatusType StatusType = "INIT"
- PendingStatusType StatusType = "PENDING"
- FinishStatusType StatusType = "FINISH"
- FailedStatusType StatusType = "FAILED"
- ReportSourceType SourceType = "REPORT"
- VideoSourceType SourceType = "VIDEO"
- AudioSourceType SourceType = "AUDIO"
- RefundSourceType SourceType = "REFUND"
- )
- // MetaInfo 表示 meta_infos 表的模型
- type MetaInfo struct {
- Id int `gorm:"primaryKey;autoIncrement;column:id"`
- Meta string `gorm:"column:meta"`
- From string `gorm:"column:from"`
- To string `gorm:"column:to"`
- SourceType SourceType `gorm:"column:source_type;type:enum('REPORT','VIDEO','AUDIO','REFUND')"`
- MetaType MetaType `gorm:"column:meta_type;type:enum('USER_NOTICE')"`
- Status StatusType `gorm:"column:status;type:enum('INIT','PENDING','FINISH','FAILED')"`
- CreatedTime time.Time
- UpdatedTime time.Time
- }
- type MetaData struct {
- SourceId int `json:"reportId"`
- AuthorId int `json:"AuthorId"`
- AuthorName string `json:"authorName"`
- PublishedTime string `json:"publishedTime"`
- }
- type RefundMetaData struct {
- RealName string `json:"realName,omitempty"`
- ProductOrderNo string `json:"productOrderNo,omitempty"`
- Result string `json:"result,omitempty"`
- }
- func (mt *MetaInfo) BeforeCreate(_ *gorm.DB) (err error) {
- mt.CreatedTime = time.Now()
- mt.Status = InitStatusType
- return nil
- }
- func CreateMetaInfo(metaInfo MetaInfo) (err error) {
- db := models.Main()
- return db.Create(&metaInfo).Error
- }
- func GetInitMetaInfos() (list []MetaInfo) {
- db := models.Main()
- err := db.Where("status = ?", InitStatusType).Order("id asc").Limit(100).Find(&list).Error
- if err != nil {
- logger.Error("获取meta数据失败:%v", err)
- return []MetaInfo{}
- }
- return list
- }
- func PendingMetaInfo(id int) bool {
- return updateStatus(id, PendingStatusType)
- }
- func FinishMetaInfo(id int) bool {
- return updateStatus(id, FinishStatusType)
- }
- func FailedMetaInfo(id int) bool {
- return updateStatus(id, FailedStatusType)
- }
- func updateStatus(id int, status StatusType) bool {
- db := models.Main()
- err := db.Model(&MetaInfo{}).Where("id = ?", id).Update("status", status).Error
- if err != nil {
- logger.Error("更新meta数据失败:%v", err)
- return false
- }
- return true
- }
|