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
40 lines
887 B
Go
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
|
|
}
|