Files
lone-services/services/product/internal/model/product_model.go
T
zzw 72d55d396d
CI / changes (push) Successful in 36s
CI / docker-bff (push) Successful in 3m8s
CI / docker-product (push) Successful in 3m36s
CI / docker-admin (push) Successful in 3m35s
CI / docker-user (push) Successful in 9s
CI / docker-ad (push) Successful in 29s
CI / docker-chore (push) Failing after 4s
feat: product number
2026-08-26 16:53:50 +08:00

40 lines
887 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) Create(data *dao.Create) error {
return m.Base.Create(data)
}
func (m ProductModel) IncrNumber(id int64, n uint32) (int64, error) {
ret := modelbase.DB().Table(m.TableName()).
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 := modelbase.DB().Table(m.TableName()).
Where("id = ? AND number >= ?", id, n).
Update("number", gorm.Expr("number - ?", n))
return ret.RowsAffected, ret.Error
}