models

package
v0.0.0-...-bf11d8c Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jun 27, 2024 License: GPL-3.0 Imports: 9 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func FileHashToDb

func FileHashToDb(file *multipart.FileHeader, saveFilePath string, suffix string) res.FileUpload

Types

type ArticleModel

type ArticleModel struct {
	gorm.Model
	Title         string         `gorm:"size:64" json:"title"`                    // 文章标题
	Abstract      string         `json:"abstract"`                                // 文章摘要
	Content       string         `gorm:"type:longtext" json:"content"`            // 文章内容
	LookCount     int            `gorm:"default:0" json:"look_count"`             // 浏览量
	CommentCount  int            `gorm:"default:0" json:"comment_count"`          // 评论量
	DiggCount     int            `gorm:"default:0" json:"digg_count"`             // 点赞量
	TagModels     []TagModel     `gorm:"many2many:article_tag" json:"tag_models"` // 文章标签
	CommentModels []CommentModel `gorm:"foreignKey:ArticleID" json:"-"`           // 文章评论列表
	UserModel     UserModel      `gorm:"foreignKey:UserID" json:"-"`              // 文章作者
	UserID        uint           `json:"user_id"`                                 // 用户
	Category      string         `gorm:"size:20" json:"category"`                 // 文章分类
	Source        string         `json:"source"`                                  // 文章来源
	Link          string         `json:"link"`                                    // 文章来源链接
	Cover         ImageModel     `json:"-"`                                       // 文章封面
	CoverID       uint           `json:"cover_id"`                                // 文章封面ID
	CoverPath     string         `json:"cover_path"`                              // 文章封面路径
	Nickname      string         `gorm:"size:42" json:"nick_name"`                // 文章作者昵称
	Tags          ctype.Array    `gorm:"type:string;size:64" json:"tags"`         // 文章标签
}

type CommentModel

type CommentModel struct {
	gorm.Model
	SubComments        []*CommentModel `gorm:"foreignKey:ParentCommentID" json:"sub_comments"`         // 子评论列表
	ParentCommentModel *CommentModel   `gorm:"foreignKey:ParentCommentID" json:"parent_comment_model"` // 父评论
	ParentCommentID    *uint           `json:"parent_comment_id"`                                      // 父评论ID
	Content            string          `gorm:"type:longtext" json:"content"`                           // 评论内容
	DiggCount          int             `gorm:"size:8;default:0" json:"digg_count"`                     // 点赞数
	CommentCount       int             `gorm:"size:8;default:0" json:"comment_count"`                  // 评论数
	Article            ArticleModel    `gorm:"foreignKey:ArticleID" json:"-"`                          // 所属文章 关联的文章 注意这里,如果数据库一开始创建了文章,这里会报错,因为文章表还没有创建,所以这里需要先创建文章表,再创建评论表
	ArticleID          uint            `json:"article_id"`                                             // 所属文章ID
	User               UserModel       `json:"user"`                                                   // 评论用户 关联的用户
	UserID             uint            `json:"user_id"`                                                // 评论用户ID
}

type Config

type Config struct {
}

type ImageModel

type ImageModel struct {
	gorm.Model
	Path         string                 `json:"path"`                               // 图片路径
	Hash         string                 `json:"hash"`                               // 图片hash
	Name         string                 `gorm:"size:128" json:"name"`               // 图片名称
	Suffix       string                 `gorm:"size:8" json:"suffix"`               // 文件后缀
	Type         string                 `gorm:"size:8;default:'image'" json:"type"` // 文件类型 image 或者 file
	FileLocation ctype.FileLocationType `gorm:"size:8;default:1" json:"file_location"`
}

func (*ImageModel) BeforeDelete

func (file *ImageModel) BeforeDelete(tx *gorm.DB) (err error)

BeforeDelete 删除前的钩子

type ImageSort

type ImageSort struct {
	ImageID uint `json:"image_id"` // 已经上传了的图片,对应file
	Sort    int  `json:"sort"`
}

type LoginDataModel

type LoginDataModel struct {
	gorm.Model
	UserID    uint      `json:"user_id"`
	UserModel UserModel `gorm:"foreignKey:UserID" json:"-"`
	IP        string    `gorm:"size:20" json:"ip"`
	Nickname  string    `gorm:"size:42" json:"nickname"`
	Token     string    `gorm:"size:256" json:"token"`
	Device    string    `gorm:"size:256" json:"device"`
	Addr      string    `gorm:"size:64" json:"addr"`
}
type MenuModel struct {
	gorm.Model
	MenuTitle    string      `gorm:"size:32" json:"menu_title"`
	MenuTitleEn  string      `gorm:"size:32" json:"menu_title_en"`
	Icon         string      `gorm:"size:32" json:"icon"`             // 图标名称(前端的图标库名称)
	Path         string      `gorm:"size:32 default:'/'" json:"path"` // 菜单路径
	Slogan       string      `gorm:"size:64" json:"slogan"`
	Abstract     ctype.Array `gorm:"size:64" json:"abstract"` // 简介
	AbstractTime int         `json:"abstract_time"`           // 简介的切换时间
	MenuTime     int         `json:"menu_time"`               // 菜单的切换时间 0表示不切换
	Sort         int         `gorm:"size:10" json:"sort"`     // 菜单顺序
	ImageSort    []ImageSort `gorm:"-" json:"image_sort"`     // 图片具体顺序
}

type MessageModel

type MessageModel struct {
	gorm.Model
	SendUserID       uint      `gorm:"primaryKey" json:"send_user_id"` // 发送者id
	SendUserModel    UserModel `gorm:"foreignKey:SendUserID" json:"-"`
	SendUserNickname string    `gorm:"size:42" json:"send_user_nickname"`
	SendUserAvatar   string    `json:"send_user_avatar"`

	RevUserID       uint      `gorm:"primaryKey" json:"rev_user_id"` // 接收者id
	RevUserModel    UserModel `gorm:"foreignKey:RevUserID" json:"-"`
	RevUserNickname string    `gorm:"size:42" json:"rev_user_nickname"`
	RevUserAvatar   string    `json:"rev_user_avatar"`

	IsRead  bool   `gorm:"default:false" json:"is_read"` // 接收方是否已读
	Content string `gorm:"type:longtext" json:"content"` // 消息内容
}

MessageModel 记录消息

type PageInfo

type PageInfo struct {
	Page  int    `form:"page"`
	Key   string `form:"key"`
	Limit int    `form:"limit"`
	Sort  string `form:"sort"` // desc降序 asc升序
}

type TagModel

type TagModel struct {
	gorm.Model
	Title    string         `gorm:"size:32" json:"title"`           // 标签名
	Articles []ArticleModel `gorm:"many2many:article_tag" json:"-"` // 标签对应的文章
}

type UserModel

type UserModel struct {
	gorm.Model
	Nickname      string           `gorm:"size:36" json:"nickname"`             // 昵称
	Username      string           `gorm:"size:36" json:"username"`             // 用户名
	Password      string           `gorm:"size:128" json:"-"`                   // 密码
	Avatar        string           `gorm:"size:256" json:"avatar"`              // 头像
	Email         string           `gorm:"size:128" json:"email"`               // 手机号
	Addr          string           `gorm:"size:64" json:"address"`              // 地址
	Token         string           `gorm:"size:64" json:"token"`                // token 后续写到redis中,不写入这里了,原来是想做永久登录的
	IP            string           `gorm:"size:20" json:"ip"`                   // ip
	Role          ctype.Role       `gorm:"size:4;default:1" json:"role"`        // 角色 1 管理员 2 普通用户 3 游客 4 被禁用
	SignStatus    ctype.SignStatus `gorm:"type=smallint(6)" json:"sign_status"` // 注册来源 qq 邮箱 手机等
	ArticleModels []ArticleModel   `gorm:"foreignKey:UserID" json:"-"`          // 发布文章列表
}

UserModel 用户表

Directories

Path Synopsis

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL