Files
2026-08-28 10:49:09 +08:00

45 lines
937 B
Go

package model
import (
"lone-services/pkg/modelbase"
"lone-services/services/product/internal/dao"
"gorm.io/gorm"
)
type ProductModel struct {
modelbase.Base
}
func (m ProductModel) TableName() string {
return modelbase.Prefix() + "product"
}
func (m ProductModel) Init() ProductModel {
m.Table = m.TableName()
return m
}
func (m ProductModel) WithTX(tx *gorm.DB) ProductModel {
m.Base = m.Base.WithTX(tx)
return m
}
func (m ProductModel) Create(data *dao.Create) error {
return m.Base.Create(data)
}
func (m ProductModel) IncrNumber(id int64, n uint32) (int64, error) {
ret := m.Session().
Where("id = ?", id).
Update("number", gorm.Expr("number + ?", n))
return ret.RowsAffected, ret.Error
}
func (m ProductModel) DecrNumber(id int64, n uint32) (int64, error) {
ret := m.Session().
Where("id = ? AND number >= ?", id, n).
Update("number", gorm.Expr("number - ?", n))
return ret.RowsAffected, ret.Error
}