wx-server/internal/dao/draft.go

41 lines
1.1 KiB
Go

package dao
import (
"time"
"gorm.io/datatypes"
"gorm.io/gorm"
"gorm.io/gorm/clause"
)
// 帖子草稿表
type Draft struct {
UserId int32 `gorm:"primaryKey;comment:'发帖人ID'"`
CreatedAt time.Time `gorm:"type:datetime(0)"`
UpdatedAt time.Time `gorm:"type:datetime(0)"`
Title string `gorm:"index;type:varchar(255);comment:'帖子标题'"`
Content string `gorm:"type:text;comment:'帖子内容'"`
RoleIds datatypes.JSON `gorm:"comment:'关联角色'"`
}
// 如果存在,就更新。如果不存在,就创建
func Draft_Save(data *Draft) error {
return s.db.Clauses(clause.OnConflict{Columns: []clause.Column{{Name: "user_id"}}, DoUpdates: clause.AssignmentColumns([]string{"title", "content", "role_ids"})}).Create(&data).Error
}
func Draft_Query(userId int32) (*Draft, error) {
var data Draft
if err := s.db.Where("user_id = ?", userId).First(&data).Error; err != nil {
if err == gorm.ErrRecordNotFound {
return nil, nil
}
return nil, err
}
return &data, nil
}
func Draft_Delete(userId int32) error {
data := Draft{UserId: userId}
return s.db.Delete(&data).Error
}