64 lines
2.7 KiB
Go
64 lines
2.7 KiB
Go
package models
|
||
|
||
import (
|
||
"kefu/types"
|
||
)
|
||
|
||
// VirtualProduct 模型对应于虚拟产品表
|
||
type VirtualProduct struct {
|
||
ID uint `gorm:"primary_key" json:"id"`
|
||
KefuName string `gorm:"type:varchar(500);not null;default:''" json:"kefu_name"`
|
||
EntId string `gorm:"type:varchar(500);not null;default:''" json:"ent_id"`
|
||
ProductName string `gorm:"type:varchar(500);not null;default:''" json:"product_name"`
|
||
Payment string `gorm:"type:varchar(500);not null;default:''" json:"payment"`
|
||
ProductCategory string `gorm:"type:varchar(100);not null;default:''" json:"product_category"`
|
||
Description string `gorm:"type:text" json:"description"`
|
||
Price int `gorm:"type:int;not null;default:0;comment:'金额'" json:"price"`
|
||
ProductImg string `gorm:"type:varchar(1000);not null;default:''" json:"product_img"`
|
||
ResourceLink string `gorm:"type:varchar(1000);not null;default:''" json:"resource_link"`
|
||
IsActive int8 `gorm:"type:tinyint;not null;default:1;comment:'在线状态,1在售,2下架'" json:"is_active"`
|
||
CreatedAt types.Time `gorm:"type:timestamp;default:current_timestamp" json:"created_at"`
|
||
UpdatedAt types.Time `gorm:"type:timestamp;default:current_timestamp;update:current_timestamp" json:"updated_at"`
|
||
}
|
||
|
||
// CountVirtualProducts 返回符合条件的 VirtualProduct 记录数量
|
||
func CountVirtualProducts(query interface{}, args ...interface{}) int64 {
|
||
var count int64
|
||
db := DB.Model(&VirtualProduct{}).Where(query, args...)
|
||
db.Count(&count)
|
||
return count
|
||
}
|
||
|
||
// FindVirtualProduct 查询单个 VirtualProduct 记录
|
||
func FindVirtualProduct(query interface{}, args ...interface{}) VirtualProduct {
|
||
var product VirtualProduct
|
||
db := DB.Model(&VirtualProduct{}).Where(query, args...)
|
||
db.First(&product)
|
||
return product
|
||
}
|
||
|
||
// SaveVirtualProduct 更新 VirtualProduct 记录
|
||
func (p *VirtualProduct) SaveVirtualProduct(query interface{}, args ...interface{}) error {
|
||
db := DB.Model(&VirtualProduct{}).Where(query, args...).Updates(p)
|
||
return db.Error
|
||
}
|
||
|
||
// AddVirtualProduct 添加新的 VirtualProduct 记录
|
||
func (p *VirtualProduct) AddVirtualProduct() error {
|
||
return DB.Create(p).Error
|
||
}
|
||
|
||
// FindVirtualProducts 分页查询 VirtualProduct 记录
|
||
func FindVirtualProducts(page, pageSize int, query interface{}, args ...interface{}) []VirtualProduct {
|
||
var products []VirtualProduct
|
||
limit := pageSize
|
||
offset := (page - 1) * pageSize
|
||
DB.Model(&VirtualProduct{}).Where(query, args...).Order("id desc").Limit(limit).Offset(offset).Find(&products)
|
||
return products
|
||
}
|
||
|
||
// DeleteVirtualProduct 删除 VirtualProduct 记录
|
||
func DeleteVirtualProduct(query interface{}, args ...interface{}) error {
|
||
return DB.Where(query, args...).Delete(&VirtualProduct{}).Error
|
||
}
|