51 lines
1.3 KiB
Go
51 lines
1.3 KiB
Go
package cms
|
|
|
|
import (
|
|
"errors"
|
|
|
|
"git.rosy.net.cn/jx-callback/business/jxcallback/scheduler/basesch"
|
|
"git.rosy.net.cn/jx-callback/business/model"
|
|
"git.rosy.net.cn/jx-callback/business/model/dao"
|
|
"git.rosy.net.cn/jx-callback/business/partner"
|
|
)
|
|
|
|
type VendorSync struct {
|
|
}
|
|
|
|
var (
|
|
CurVendorSync VendorSync
|
|
)
|
|
|
|
var (
|
|
ErrHaveNotImplementedYet = errors.New("还没有实现")
|
|
)
|
|
|
|
func GetPurchaseHandler(vendorID int) partner.IPurchasePlatformHandler {
|
|
return basesch.FixedBaseScheduler.GetPurchasePlatformFromVendorID(vendorID)
|
|
}
|
|
|
|
func (v *VendorSync) SyncCategory(categoryID int, isForce bool, userName string) (err error) {
|
|
db := dao.GetDB()
|
|
cats := []*model.SkuCategory{}
|
|
if categoryID != 0 {
|
|
err = dao.GetRows(db, &cats, "SELECT * FROM sku_category WHERE id = ?", categoryID)
|
|
} else {
|
|
err = dao.GetRows(db, &cats, "SELECT * FROM sku_category")
|
|
}
|
|
for _, cat := range cats {
|
|
if (cat.JdSyncStatus & model.SyncFlagNewMask) != 0 { // 新增
|
|
err = GetPurchaseHandler(model.VendorIDJD).CreateCategory(cat, userName)
|
|
} else if (cat.JdSyncStatus&model.SyncFlagModifiedMask) != 0 || isForce { // 修改
|
|
err = GetPurchaseHandler(model.VendorIDJD).UpdateCategory(cat, userName)
|
|
}
|
|
if err == nil {
|
|
cat.JdSyncStatus = 0
|
|
_, err = dao.UpdateEntity(db, cat, "JdSyncStatus")
|
|
}
|
|
if err != nil {
|
|
break
|
|
}
|
|
}
|
|
return err
|
|
}
|