feat 添加seller Api
This commit is contained in:
parent
1907a3538a
commit
4dda7ac1fa
56
structs/storage/seller-article.go
Normal file
56
structs/storage/seller-article.go
Normal file
@ -0,0 +1,56 @@
|
||||
package storage
|
||||
|
||||
import (
|
||||
v2 "gitea.timerzz.com/kedaya_haitao/common/structs/v2"
|
||||
"gorm.io/gorm"
|
||||
"gorm.io/gorm/clause"
|
||||
)
|
||||
|
||||
// SellerArticleApi 管理供应商商品的接口
|
||||
type SellerArticleApi interface {
|
||||
Get(query GetProviderArticleQuery) (article v2.ProviderArticle, err error)
|
||||
Upsert(article v2.SellerArticle) error
|
||||
}
|
||||
|
||||
type sellerArticleApi struct {
|
||||
db *gorm.DB
|
||||
}
|
||||
|
||||
type GetSellerArticleQuery struct {
|
||||
ID uint `query:"id"`
|
||||
Brand string `query:"brand"`
|
||||
Pid string `query:"pid"`
|
||||
SellerId string `query:"sellerId"`
|
||||
SkuId string `query:"skuId"`
|
||||
}
|
||||
|
||||
func (g *GetSellerArticleQuery) Scope(db *gorm.DB) *gorm.DB {
|
||||
if g.ID > 0 {
|
||||
db = db.Where("id=?", g.ID)
|
||||
}
|
||||
if g.Brand != "" {
|
||||
db = db.Where("brand=?", g.Brand)
|
||||
}
|
||||
if g.Pid != "" {
|
||||
db = db.Where("pid=?", g.Pid)
|
||||
}
|
||||
if g.SellerId != "" {
|
||||
db = db.Where("seller_id=?", g.SellerId)
|
||||
}
|
||||
if g.SkuId != "" {
|
||||
db = db.Where("sku_id=?", g.SkuId)
|
||||
}
|
||||
return db
|
||||
}
|
||||
|
||||
func (p *sellerArticleApi) Get(query GetSellerArticleQuery) (article v2.SellerArticle, err error) {
|
||||
err = p.db.Scopes(query.Scope).First(&article).Error
|
||||
return
|
||||
}
|
||||
|
||||
func (p *sellerArticleApi) Upsert(article v2.SellerArticle) error {
|
||||
return p.db.Clauses(clause.OnConflict{
|
||||
Columns: []clause.Column{{Name: "seller_id"}, {Name: "sku_id"}},
|
||||
DoUpdates: clause.AssignmentColumns([]string{"sell"}),
|
||||
}).Create(&article).Error
|
||||
}
|
Loading…
Reference in New Issue
Block a user