Compare commits
No commits in common. "baeca78c5f2655be131a98178c15ca7a9ad0fdf9" and "33ca01c975046da8cca879bd409dd09298c429b7" have entirely different histories.
baeca78c5f
...
33ca01c975
@ -1,60 +0,0 @@
|
||||
package storage
|
||||
|
||||
import (
|
||||
v2 "gitea.timerzz.com/kedaya_haitao/common/structs/v2"
|
||||
"gorm.io/gorm"
|
||||
"gorm.io/gorm/clause"
|
||||
)
|
||||
|
||||
// ProviderArticleApi 管理供应商商品的接口
|
||||
type ProviderArticleApi interface {
|
||||
Get(query GetProviderArticleQuery) (article v2.ProviderArticle, err error)
|
||||
Upsert(article v2.ProviderArticle) error
|
||||
}
|
||||
|
||||
type providerArticleApi struct {
|
||||
db *gorm.DB
|
||||
}
|
||||
|
||||
func NewProviderArticleApi(db *gorm.DB) ProviderArticleApi {
|
||||
return &providerArticleApi{db: db}
|
||||
}
|
||||
|
||||
type GetProviderArticleQuery struct {
|
||||
ID uint `query:"id"`
|
||||
Brand string `query:"brand"`
|
||||
Pid string `query:"pid"`
|
||||
ProviderId string `query:"providerId"`
|
||||
SkuId string `query:"skuId"`
|
||||
}
|
||||
|
||||
func (g *GetProviderArticleQuery) 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.ProviderId != "" {
|
||||
db = db.Where("provider_id=?", g.ProviderId)
|
||||
}
|
||||
if g.SkuId != "" {
|
||||
db = db.Where("sku_id=?", g.SkuId)
|
||||
}
|
||||
return db
|
||||
}
|
||||
|
||||
func (p *providerArticleApi) Get(query GetProviderArticleQuery) (article v2.ProviderArticle, err error) {
|
||||
err = p.db.Scopes(query.Scope).Preload("CalculateProcess").First(&article).Error
|
||||
return
|
||||
}
|
||||
|
||||
func (p *providerArticleApi) Upsert(article v2.ProviderArticle) error {
|
||||
return p.db.Clauses(clause.OnConflict{
|
||||
Columns: []clause.Column{{Name: "provider_id"}, {Name: "sku_id"}},
|
||||
DoUpdates: clause.AssignmentColumns([]string{"cost"}),
|
||||
}).Create(&article).Error
|
||||
}
|
@ -27,25 +27,6 @@ type PageListQuery struct {
|
||||
PageQuery
|
||||
}
|
||||
|
||||
func NewPageListQuery(scoper Scoper) *PageListQuery {
|
||||
return &PageListQuery{Scoper: scoper}
|
||||
}
|
||||
|
||||
func (p *PageListQuery) SetPage(page int) *PageListQuery {
|
||||
p.Page = page
|
||||
return p
|
||||
}
|
||||
|
||||
func (p *PageListQuery) SetPageSize(pageSize int) *PageListQuery {
|
||||
p.Size = pageSize
|
||||
return p
|
||||
}
|
||||
|
||||
func (p *PageListQuery) SetScoper(scoper Scoper) *PageListQuery {
|
||||
p.Scoper = scoper
|
||||
return p
|
||||
}
|
||||
|
||||
func (p *PageListQuery) Scope(db *gorm.DB) *gorm.DB {
|
||||
if p.Scoper != nil {
|
||||
db = p.Scoper.Scope(db)
|
||||
|
@ -3,9 +3,8 @@ package storage
|
||||
import "gorm.io/gorm"
|
||||
|
||||
type Storage struct {
|
||||
articleApi ArticleApi
|
||||
providerApi ProviderApi
|
||||
providerArticleApi ProviderArticleApi
|
||||
articleApi ArticleApi
|
||||
providerApi ProviderApi
|
||||
}
|
||||
|
||||
func NewStorage(db *gorm.DB) *Storage {
|
||||
@ -24,7 +23,3 @@ func (s *Storage) Article() ArticleApi {
|
||||
func (s *Storage) Provider() ProviderApi {
|
||||
return s.providerApi
|
||||
}
|
||||
|
||||
func (s *Storage) ProviderArticle() ProviderArticleApi {
|
||||
return s.providerArticleApi
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user