116 lines
4.0 KiB
Go
116 lines
4.0 KiB
Go
package partner
|
||
|
||
import (
|
||
"git.rosy.net.cn/baseapi/utils"
|
||
"git.rosy.net.cn/jx-callback/business/jxutils/jxcontext"
|
||
"git.rosy.net.cn/jx-callback/business/jxutils/tasksch"
|
||
"git.rosy.net.cn/jx-callback/business/model/dao"
|
||
)
|
||
|
||
const (
|
||
FuncUpdateStoreSkusStock = 1
|
||
FuncUpdateStoreSkusStatus = 2
|
||
FuncUpdateStoreSkusPrice = 3
|
||
|
||
FuncCreateStoreSkus = 6
|
||
FuncUpdateStoreSkus = 7
|
||
FuncDeleteStoreSkus = 8
|
||
)
|
||
|
||
type BareStoreSkuInfo struct {
|
||
SkuID int `json:"skuID,omitempty"`
|
||
VendorSkuID string `json:"vendorSkuID,omitempty"`
|
||
NameID int `json:"nameID,omitempty"`
|
||
VendorNameID string `json:"vendorNameID,omitempty"`
|
||
|
||
Stock int `json:"stock,omitempty"`
|
||
Price int64 `json:"price,omitempty"`
|
||
Status int `json:"status,omitempty"`
|
||
}
|
||
|
||
type FullSkuInfo struct {
|
||
BareStoreSkuInfo
|
||
SkuName string
|
||
Comment string
|
||
SpecQuality float64
|
||
SpecUnit string
|
||
Weight int
|
||
ActPrice int64
|
||
}
|
||
|
||
type SkuNameInfo struct {
|
||
NameID int `json:"nameID,omitempty"`
|
||
VendorNameID string `json:"vendorNameID,omitempty"`
|
||
|
||
Prefix string
|
||
Name string
|
||
Description string
|
||
Unit string
|
||
VendorCatIDList []string
|
||
PictureList []string
|
||
Status int `json:"status,omitempty"`
|
||
SkuList []*FullSkuInfo
|
||
}
|
||
|
||
type BareStoreSkuInfoList []*BareStoreSkuInfo
|
||
|
||
func (l BareStoreSkuInfoList) GetVendorSkuIDList() (vendorSkuIDList []string) {
|
||
for _, v := range l {
|
||
if !dao.IsVendorThingIDEmpty(v.VendorSkuID) {
|
||
vendorSkuIDList = append(vendorSkuIDList, v.VendorSkuID)
|
||
}
|
||
}
|
||
return vendorSkuIDList
|
||
}
|
||
|
||
func (l BareStoreSkuInfoList) GetVendorSkuIDIntList() (vendorSkuIDIntList []int64) {
|
||
for _, v := range l {
|
||
if !dao.IsVendorThingIDEmpty(v.VendorSkuID) {
|
||
vendorSkuIDIntList = append(vendorSkuIDIntList, utils.Str2Int64(v.VendorSkuID))
|
||
}
|
||
}
|
||
return vendorSkuIDIntList
|
||
}
|
||
|
||
func (l BareStoreSkuInfoList) GetSkuIDList() (skuIDList []int) {
|
||
for k, v := range l {
|
||
if v.SkuID > 0 {
|
||
skuIDList[k] = v.SkuID
|
||
}
|
||
}
|
||
return skuIDList
|
||
}
|
||
|
||
type BareCategoryInfo struct {
|
||
VendorCatID string `json:"vendorCatID"`
|
||
|
||
Level int `json:"level"`
|
||
Name string `json:"name"`
|
||
Seq int `json:"seq,omitempty"`
|
||
Children []*BareCategoryInfo `json:"children,omitempty"`
|
||
}
|
||
|
||
type IPurchasePlatformStoreSkuHandler interface {
|
||
GetStoreSkusBatchSize(funcID int) int
|
||
|
||
GetStoreSkusInfo(ctx *jxcontext.Context, parentTask tasksch.ITask, storeID int, vendorStoreID string, inStoreSkuList []*BareStoreSkuInfo) (outStoreSkuList []*BareStoreSkuInfo, err error)
|
||
UpdateStoreSkusStock(ctx *jxcontext.Context, storeID int, vendorStoreID string, storeSkuList []*BareStoreSkuInfo) (err error)
|
||
UpdateStoreSkusStatus(ctx *jxcontext.Context, storeID int, vendorStoreID string, storeSkuList []*BareStoreSkuInfo) (err error)
|
||
UpdateStoreSkusPrice(ctx *jxcontext.Context, storeID int, vendorStoreID string, storeSkuList []*BareStoreSkuInfo) (err error)
|
||
}
|
||
|
||
type ISingleStoreStoreSkuHandler interface {
|
||
IPurchasePlatformStoreSkuHandler
|
||
|
||
// 这个函数与GetStoreSkusInfo的区别是GetStoreAllSkus取的是全信息,而GetStoreSkusInfo只含库存,价格与可售信息
|
||
GetStoreAllSkus(ctx *jxcontext.Context, storeID int, vendorStoreID string) (skuNameList []*SkuNameInfo, err error)
|
||
CreateStoreSkus(ctx *jxcontext.Context, vendorStoreID string, storeSkuList []*dao.StoreSkuSyncInfo) (err error)
|
||
UpdateStoreSkus(ctx *jxcontext.Context, vendorStoreID string, storeSkuList []*dao.StoreSkuSyncInfo) (err error)
|
||
DeleteStoreSkus(ctx *jxcontext.Context, storeID int, vendorStoreID string, storeSkuList []*BareStoreSkuInfo) (err error)
|
||
|
||
GetStoreAllCategories(ctx *jxcontext.Context, vendorStoreID string) (cats []*BareCategoryInfo, err error)
|
||
CreateStoreCategory(ctx *jxcontext.Context, vendorStoreID string, storeCat *dao.SkuStoreCatInfo) (err error)
|
||
UpdateStoreCategory(ctx *jxcontext.Context, vendorStoreID string, storeCat *dao.SkuStoreCatInfo) (err error)
|
||
DeleteStoreCategory(ctx *jxcontext.Context, vendorStoreID, vendorCatID string) (err error)
|
||
}
|