Merge remote-tracking branch 'origin/mark' into yonghui
This commit is contained in:
@@ -208,6 +208,13 @@ type SkuNameAndPlace struct {
|
||||
Type int `json:"type"`
|
||||
}
|
||||
|
||||
type StoreSkuPriceAndWeight struct {
|
||||
VendorSkuID string `orm:"column(vendor_sku_id)"`
|
||||
SkuID int `orm:"column(sku_id)"`
|
||||
Weight int
|
||||
Price int
|
||||
}
|
||||
|
||||
// todo 应该通过需要同步的skuid来驱动同步分类,而不是当前这种分开的逻辑
|
||||
// 单门店模式厂商适用
|
||||
// 从store_sku_bind中,得到所有依赖的商家分类信息
|
||||
@@ -632,6 +639,42 @@ func oldGetFullStoreSkus(db *DaoDB, vendorID, storeID int) (skus []*StoreSkuSync
|
||||
return skus, err
|
||||
}
|
||||
|
||||
func GetStoreSkuPriceAndWeight(db *DaoDB, vendorStoreID string, vendorID int, vendorSkuIDs []string) (l []*StoreSkuPriceAndWeight, err error) {
|
||||
var vendorSkuIDField, sqlThingMap string
|
||||
var thingMapParams []interface{}
|
||||
if vendorID == model.VendorIDJX {
|
||||
vendorSkuIDField = "t1.id"
|
||||
} else if model.MultiStoresVendorMap[vendorID] != 0 {
|
||||
sqlThingMap = `
|
||||
LEFT JOIN thing_map t4 ON t4.thing_type = ? AND t4.thing_id = t1.id AND t4.deleted_at = ? AND t4.vendor_id = t3.vendor_id AND t4.vendor_org_code = t3.vendor_org_code`
|
||||
thingMapParams = []interface{}{
|
||||
model.ThingTypeSku, utils.DefaultTimeValue,
|
||||
}
|
||||
vendorSkuIDField = "t4.vendor_thing_id"
|
||||
} else {
|
||||
vendorSkuIDField = fmt.Sprintf("t2.%s_id", ConvertDBFieldPrefix(model.VendorNames[vendorID]))
|
||||
}
|
||||
sql := fmt.Sprintf(`
|
||||
SELECT %s vendor_sku_id, t1.id sku_id, t2.price, t1.weight
|
||||
FROM sku t1
|
||||
LEFT JOIN store_sku_bind t2 ON t2.sku_id = t1.id AND t2.deleted_at = ?
|
||||
LEFT JOIN store_map t3 ON t3.store_id = t2.store_id AND t3.vendor_id = ? AND t3.vendor_store_id = ? AND t2.deleted_at = ?
|
||||
%s
|
||||
WHERE %s IN (`+GenQuestionMarks(len(vendorSkuIDs))+`)`, vendorSkuIDField, sqlThingMap, vendorSkuIDField)
|
||||
sqlParams := []interface{}{
|
||||
utils.DefaultTimeValue,
|
||||
vendorID, vendorStoreID, utils.DefaultTimeValue,
|
||||
}
|
||||
sqlParams = append(sqlParams, thingMapParams...)
|
||||
if vendorID == model.VendorIDJX {
|
||||
sqlParams = append(sqlParams, utils.StringSlice2Int(vendorSkuIDs))
|
||||
} else {
|
||||
sqlParams = append(sqlParams, vendorSkuIDs)
|
||||
}
|
||||
err = GetRows(db, &l, sql, sqlParams...)
|
||||
return l, err
|
||||
}
|
||||
|
||||
// 这个函数之前是要设置没有删除或同步标志不为0的,会导致将同步标志不为0且删除了的把标志去掉,现在改为只设置没有删除的
|
||||
func SetStoreSkuSyncStatus(db *DaoDB, vendorID int, storeIDs []int, skuIDs []int, syncStatus int) (num int64, err error) {
|
||||
globals.SugarLogger.Debugf("SetStoreSkuSyncStatus, storeIDs:%v, vendorID:%d", storeIDs, vendorID)
|
||||
|
||||
Reference in New Issue
Block a user