Files
nl_cms-api/internal/dao/dao.go
2025-07-29 12:45:07 +08:00

571 lines
12 KiB
Go

package dao
import (
"context"
"github.com/gogf/gf/v2/database/gdb"
"github.com/gogf/gf/v2/frame/g"
)
// 数据访问对象实例
var (
User = NewUserDao()
Role = NewRoleDao()
Article = NewArticleDao()
News = NewNewsDao()
Attachment = NewAttachmentDao()
Partner = NewPartnerDao()
Contact = NewContactDao()
Config = NewConfigDao()
)
// UserDao 用户数据访问对象
type UserDao struct {
table string
group string
columns UserColumns
}
type UserColumns struct {
Id string
Account string
NickName string
Avatar string
Email string
Password string
Balance string
QrCode string
RoleId string
IsSysNotifications string
IsCollectionNotifications string
IsMarketingNotifications string
Ip string
IpTable string
Status string
LastResetPasswordAt string
CreatedAt string
UpdatedAt string
DeletedAt string
}
func NewUserDao() *UserDao {
return &UserDao{
group: "default",
table: "users",
columns: UserColumns{
Id: "id",
Account: "account",
NickName: "nick_name",
Avatar: "avatar",
Email: "email",
Password: "password",
Balance: "balance",
QrCode: "qr_code",
RoleId: "role_id",
IsSysNotifications: "is_sys_notifications",
IsCollectionNotifications: "is_collection_notifications",
IsMarketingNotifications: "is_marketing_notifications",
Ip: "ip",
IpTable: "ip_table",
Status: "status",
LastResetPasswordAt: "last_reset_password_at",
CreatedAt: "created_at",
UpdatedAt: "updated_at",
DeletedAt: "deleted_at",
},
}
}
func (dao *UserDao) DB() gdb.DB {
return g.DB(dao.group)
}
func (dao *UserDao) Table() string {
return dao.table
}
func (dao *UserDao) Columns() UserColumns {
return dao.columns
}
func (dao *UserDao) Group() string {
return dao.group
}
func (dao *UserDao) Ctx(ctx context.Context) *gdb.Model {
return dao.DB().Model(dao.table).Safe().Ctx(ctx)
}
// RoleDao 角色数据访问对象
type RoleDao struct {
table string
group string
columns RoleColumns
}
type RoleColumns struct {
Id string
Name string
Description string
Permissions string
Status string
CreatedAt string
UpdatedAt string
DeletedAt string
}
func NewRoleDao() *RoleDao {
return &RoleDao{
group: "default",
table: "roles",
columns: RoleColumns{
Id: "id",
Name: "name",
Description: "description",
Permissions: "permissions",
Status: "status",
CreatedAt: "created_at",
UpdatedAt: "updated_at",
DeletedAt: "deleted_at",
},
}
}
func (dao *RoleDao) DB() gdb.DB {
return g.DB(dao.group)
}
func (dao *RoleDao) Table() string {
return dao.table
}
func (dao *RoleDao) Columns() RoleColumns {
return dao.columns
}
func (dao *RoleDao) Group() string {
return dao.group
}
func (dao *RoleDao) Ctx(ctx context.Context) *gdb.Model {
return dao.DB().Model(dao.table).Safe().Ctx(ctx)
}
// ArticleDao 文章数据访问对象
type ArticleDao struct {
table string
group string
columns ArticleColumns
}
type ArticleColumns struct {
Id string
Title string
Slug string
Summary string
Content string
HtmlContent string
CoverImage string
CategoryId string
Tags string
AuthorId string
ViewCount string
LikeCount string
CommentCount string
IsPublished string
IsFeatured string
IsTop string
SeoTitle string
SeoDescription string
SeoKeywords string
PublishedAt string
CreatedAt string
UpdatedAt string
DeletedAt string
}
func NewArticleDao() *ArticleDao {
return &ArticleDao{
group: "default",
table: "articles",
columns: ArticleColumns{
Id: "id",
Title: "title",
Slug: "slug",
Summary: "summary",
Content: "content",
HtmlContent: "html_content",
CoverImage: "cover_image",
CategoryId: "category_id",
Tags: "tags",
AuthorId: "author_id",
ViewCount: "view_count",
LikeCount: "like_count",
CommentCount: "comment_count",
IsPublished: "is_published",
IsFeatured: "is_featured",
IsTop: "is_top",
SeoTitle: "seo_title",
SeoDescription: "seo_description",
SeoKeywords: "seo_keywords",
PublishedAt: "published_at",
CreatedAt: "created_at",
UpdatedAt: "updated_at",
DeletedAt: "deleted_at",
},
}
}
func (dao *ArticleDao) DB() gdb.DB {
return g.DB(dao.group)
}
func (dao *ArticleDao) Table() string {
return dao.table
}
func (dao *ArticleDao) Columns() ArticleColumns {
return dao.columns
}
func (dao *ArticleDao) Group() string {
return dao.group
}
func (dao *ArticleDao) Ctx(ctx context.Context) *gdb.Model {
return dao.DB().Model(dao.table).Safe().Ctx(ctx)
}
// NewsDao 新闻数据访问对象
type NewsDao struct {
table string
group string
columns NewsColumns
}
type NewsColumns struct {
Id string
Title string
Slug string
Summary string
Content string
CoverImage string
Category string
Source string
Author string
ViewCount string
IsPublished string
IsFeatured string
IsTop string
PublishedAt string
CreatedAt string
UpdatedAt string
DeletedAt string
}
func NewNewsDao() *NewsDao {
return &NewsDao{
group: "default",
table: "news",
columns: NewsColumns{
Id: "id",
Title: "title",
Slug: "slug",
Summary: "summary",
Content: "content",
CoverImage: "cover_image",
Category: "category",
Source: "source",
Author: "author",
ViewCount: "view_count",
IsPublished: "is_published",
IsFeatured: "is_featured",
IsTop: "is_top",
PublishedAt: "published_at",
CreatedAt: "created_at",
UpdatedAt: "updated_at",
DeletedAt: "deleted_at",
},
}
}
func (dao *NewsDao) DB() gdb.DB {
return g.DB(dao.group)
}
func (dao *NewsDao) Table() string {
return dao.table
}
func (dao *NewsDao) Columns() NewsColumns {
return dao.columns
}
func (dao *NewsDao) Group() string {
return dao.group
}
func (dao *NewsDao) Ctx(ctx context.Context) *gdb.Model {
return dao.DB().Model(dao.table).Safe().Ctx(ctx)
}
// AttachmentDao 附件数据访问对象
type AttachmentDao struct {
table string
group string
columns AttachmentColumns
}
type AttachmentColumns struct {
Id string
OriginalName string
FileName string
FilePath string
FileUrl string
FileSize string
FileType string
MimeType string
FileExt string
StorageType string
UploadIp string
UploadedBy string
UsageCount string
CreatedAt string
UpdatedAt string
DeletedAt string
}
func NewAttachmentDao() *AttachmentDao {
return &AttachmentDao{
group: "default",
table: "attachments",
columns: AttachmentColumns{
Id: "id",
OriginalName: "original_name",
FileName: "file_name",
FilePath: "file_path",
FileUrl: "file_url",
FileSize: "file_size",
FileType: "file_type",
MimeType: "mime_type",
FileExt: "file_ext",
StorageType: "storage_type",
UploadIp: "upload_ip",
UploadedBy: "uploaded_by",
UsageCount: "usage_count",
CreatedAt: "created_at",
UpdatedAt: "updated_at",
DeletedAt: "deleted_at",
},
}
}
func (dao *AttachmentDao) DB() gdb.DB {
return g.DB(dao.group)
}
func (dao *AttachmentDao) Table() string {
return dao.table
}
func (dao *AttachmentDao) Columns() AttachmentColumns {
return dao.columns
}
func (dao *AttachmentDao) Group() string {
return dao.group
}
func (dao *AttachmentDao) Ctx(ctx context.Context) *gdb.Model {
return dao.DB().Model(dao.table).Safe().Ctx(ctx)
}
// PartnerDao 合作伙伴数据访问对象
type PartnerDao struct {
table string
group string
columns PartnerColumns
}
type PartnerColumns struct {
Id string
Name string
Logo string
Website string
Description string
Category string
SortOrder string
IsFeatured string
Status string
CreatedAt string
UpdatedAt string
DeletedAt string
}
func NewPartnerDao() *PartnerDao {
return &PartnerDao{
group: "default",
table: "partners",
columns: PartnerColumns{
Id: "id",
Name: "name",
Logo: "logo",
Website: "website",
Description: "description",
Category: "category",
SortOrder: "sort_order",
IsFeatured: "is_featured",
Status: "status",
CreatedAt: "created_at",
UpdatedAt: "updated_at",
DeletedAt: "deleted_at",
},
}
}
func (dao *PartnerDao) DB() gdb.DB {
return g.DB(dao.group)
}
func (dao *PartnerDao) Table() string {
return dao.table
}
func (dao *PartnerDao) Columns() PartnerColumns {
return dao.columns
}
func (dao *PartnerDao) Group() string {
return dao.group
}
func (dao *PartnerDao) Ctx(ctx context.Context) *gdb.Model {
return dao.DB().Model(dao.table).Safe().Ctx(ctx)
}
// ContactDao 联系我们数据访问对象
type ContactDao struct {
table string
group string
columns ContactColumns
}
type ContactColumns struct {
Id string
Name string
Email string
Phone string
Company string
Subject string
Message string
Ip string
UserAgent string
Status string
Reply string
RepliedAt string
RepliedBy string
CreatedAt string
UpdatedAt string
}
func NewContactDao() *ContactDao {
return &ContactDao{
group: "default",
table: "contacts",
columns: ContactColumns{
Id: "id",
Name: "name",
Email: "email",
Phone: "phone",
Company: "company",
Subject: "subject",
Message: "message",
Ip: "ip",
UserAgent: "user_agent",
Status: "status",
Reply: "reply",
RepliedAt: "replied_at",
RepliedBy: "replied_by",
CreatedAt: "created_at",
UpdatedAt: "updated_at",
},
}
}
func (dao *ContactDao) DB() gdb.DB {
return g.DB(dao.group)
}
func (dao *ContactDao) Table() string {
return dao.table
}
func (dao *ContactDao) Columns() ContactColumns {
return dao.columns
}
func (dao *ContactDao) Group() string {
return dao.group
}
func (dao *ContactDao) Ctx(ctx context.Context) *gdb.Model {
return dao.DB().Model(dao.table).Safe().Ctx(ctx)
}
// ConfigDao 配置数据访问对象
type ConfigDao struct {
table string
group string
columns ConfigColumns
}
type ConfigColumns struct {
Id string
ConfigKey string
ConfigValue string
ConfigType string
GroupName string
Description string
SortOrder string
IsSystem string
CreatedAt string
UpdatedAt string
}
func NewConfigDao() *ConfigDao {
return &ConfigDao{
group: "default",
table: "site_configs",
columns: ConfigColumns{
Id: "id",
ConfigKey: "config_key",
ConfigValue: "config_value",
ConfigType: "config_type",
GroupName: "group_name",
Description: "description",
SortOrder: "sort_order",
IsSystem: "is_system",
CreatedAt: "created_at",
UpdatedAt: "updated_at",
},
}
}
func (dao *ConfigDao) DB() gdb.DB {
return g.DB(dao.group)
}
func (dao *ConfigDao) Table() string {
return dao.table
}
func (dao *ConfigDao) Columns() ConfigColumns {
return dao.columns
}
func (dao *ConfigDao) Group() string {
return dao.group
}
func (dao *ConfigDao) Ctx(ctx context.Context) *gdb.Model {
return dao.DB().Model(dao.table).Safe().Ctx(ctx)
}