同步商品名
This commit is contained in:
@@ -1348,6 +1348,9 @@ func UpdateSkuNamesExPrefix(ctx *jxcontext.Context, nameIDs []int, exPrefix, fro
|
||||
if toTime != "" {
|
||||
toTimeP = utils.Str2Time(toTime)
|
||||
}
|
||||
if toTimeP.Before(fromTimeP) {
|
||||
return "", fmt.Errorf("结束时间不可以小于开始时间!开始时间:[%v],结束时间:[%v]", fromTimeP, toTimeP)
|
||||
}
|
||||
task := tasksch.NewParallelTask("批量设置商品前缀", tasksch.NewParallelConfig().SetIsContinueWhenError(isContinueWhenError), ctx,
|
||||
func(task *tasksch.ParallelTask, batchItemList []interface{}, params ...interface{}) (retVal interface{}, err error) {
|
||||
nameID := batchItemList[0].(int)
|
||||
@@ -1368,3 +1371,13 @@ func UpdateSkuNamesExPrefix(ctx *jxcontext.Context, nameIDs []int, exPrefix, fro
|
||||
}
|
||||
return hint, err
|
||||
}
|
||||
|
||||
func SetSingleStoreSkuSyncModifyStauts(db *dao.DaoDB, vendorID int) (err error) {
|
||||
_, err = dao.UpdateStoreSkuBindSyncStatusForExPrefix(db, []int{vendorID})
|
||||
return err
|
||||
}
|
||||
|
||||
func SetMultiStoreSkuSyncModifyStauts(db *dao.DaoDB, vendorIDs []int) (err error) {
|
||||
_, err = dao.UpdateSkuSyncStatusForExPrefix(db, vendorIDs)
|
||||
return err
|
||||
}
|
||||
|
||||
@@ -398,6 +398,7 @@ func (v *VendorSync) SyncStoresSkus2(ctx *jxcontext.Context, db *dao.DaoDB, vend
|
||||
storeMap := batchItemList[0].(*model.StoreMap)
|
||||
if syncDisabled || storeMap.Status > model.StoreStatusDisabled {
|
||||
if setSyncStatus != 0 {
|
||||
SetSingleStoreSkuSyncModifyStauts(db, storeMap.VendorID)
|
||||
dao.SetStoreSkuSyncStatus(db, storeMap.VendorID, []int{storeMap.StoreID}, skuIDs, setSyncStatus)
|
||||
}
|
||||
if _, err = v.proxySyncStoreSku(ctx, task, storeMap, nil, skuIDs, excludeSkuIDs, false, isContinueWhenError); err != nil {
|
||||
@@ -685,7 +686,7 @@ func (v *VendorSync) ChangeStoreSkuSaleStatus(ctx *jxcontext.Context, storeID in
|
||||
skuIDs = append(skuIDs, v.SkuID)
|
||||
}
|
||||
vendorIDs := partner.GetPurchasePlatformVendorIDs()
|
||||
dao.UpdateStoreSkuBindSyncStatus(db, vendorIDs, storeID)
|
||||
dao.UpdateStoreSkuBindSyncStatusForSaleStatus(db, vendorIDs, storeID)
|
||||
v.SyncStoresSkus(ctx, db, vendorIDs, storeIDs, skuIDs, false, isAsync, isContinueWhenError)
|
||||
return err
|
||||
}
|
||||
|
||||
@@ -131,6 +131,7 @@ func SyncCategories(ctx *jxcontext.Context, parentTask tasksch.ITask, vendorIDs
|
||||
func SyncSkus(ctx *jxcontext.Context, parentTask tasksch.ITask, vendorIDs []int, appOrgCodes []string, nameIDs, skuIDs []int, isAsync bool) (hint string, err error) {
|
||||
globals.SugarLogger.Debugf("SyncSkus vendorIDs:%v, appOrgCodes:%v, nameIDs:%v, skuIDs:%v", vendorIDs, appOrgCodes, nameIDs, skuIDs)
|
||||
db := dao.GetDB()
|
||||
SetMultiStoreSkuSyncModifyStauts(db, vendorIDs)
|
||||
skuList, err := dao.GetSkusWithVendor(db, vendorIDs, appOrgCodes, nameIDs, skuIDs, true)
|
||||
if err == nil && len(skuList) > 0 {
|
||||
// todo 按vendorID orgCode合并操作
|
||||
|
||||
@@ -228,7 +228,7 @@ func calVendorPrice4StoreSku(inSku *dao.StoreSkuSyncInfo, pricePercentagePack mo
|
||||
func formalizeStoreSkuList(inSkuList []*dao.StoreSkuSyncInfo) []*dao.StoreSkuSyncInfo {
|
||||
for _, skuItem := range inSkuList {
|
||||
skuItem.MergedStatus = jxutils.MergeSkuStatus(skuItem.Status, skuItem.StoreSkuStatus)
|
||||
skuItem.SkuName = jxutils.ComposeSkuName(skuItem.Prefix, skuItem.Name, skuItem.Comment, skuItem.Unit, skuItem.SpecQuality, skuItem.SpecUnit, 0,skuItem.ExPrefix,skuItem.ExPrefixBegin,skuItem.ExPrefixEnd)
|
||||
skuItem.SkuName = jxutils.ComposeSkuName(skuItem.Prefix, skuItem.Name, skuItem.Comment, skuItem.Unit, skuItem.SpecQuality, skuItem.SpecUnit, 0, skuItem.ExPrefix, skuItem.ExPrefixBegin, skuItem.ExPrefixEnd)
|
||||
}
|
||||
return inSkuList
|
||||
}
|
||||
|
||||
@@ -329,7 +329,7 @@ func FloatWeight2Int(weight float32) int {
|
||||
|
||||
func ComposeSkuName(prefix, name, comment, unit string, spec_quality float32, spec_unit string, maxLen int, exPrefix string, exPrefixBegin, exPrefixEnd time.Time) (skuName string) {
|
||||
if exPrefix != "" && !utils.IsTimeZero(exPrefixBegin) && !utils.IsTimeZero(exPrefixEnd) {
|
||||
if time.Now().Before(exPrefixEnd) && time.Now().After(exPrefixBegin) {
|
||||
if time.Now().Add(6*time.Hour).After(exPrefixBegin) && time.Now().Add(-6*time.Hour).Before(exPrefixEnd) {
|
||||
skuName = exPrefix
|
||||
}
|
||||
}
|
||||
|
||||
@@ -871,7 +871,7 @@ func GetStoresSkusInfoBySaleTime(db *DaoDB, storeID int) (storeSkuBindList []*mo
|
||||
return storeSkuBindList, err
|
||||
}
|
||||
|
||||
func UpdateStoreSkuBindSyncStatus(db *DaoDB, vendorIDs []int, storeID int) (num int64, err error) {
|
||||
func UpdateStoreSkuBindSyncStatusForSaleStatus(db *DaoDB, vendorIDs []int, storeID int) (num int64, err error) {
|
||||
sql := `
|
||||
UPDATE store_sku_bind
|
||||
SET
|
||||
@@ -903,6 +903,72 @@ func UpdateStoreSkuBindSyncStatus(db *DaoDB, vendorIDs []int, storeID int) (num
|
||||
return ExecuteSQL(db, sql, sqlParams...)
|
||||
}
|
||||
|
||||
func UpdateStoreSkuBindSyncStatusForExPrefix(db *DaoDB, vendorIDs []int) (num int64, err error) {
|
||||
sql := `
|
||||
UPDATE store_sku_bind a
|
||||
JOIN sku b ON a.sku_id = b.id AND b.deleted_at = ?
|
||||
JOIN sku_name c ON c.id = b.name_id AND c.deleted_at = ?
|
||||
SET
|
||||
`
|
||||
fmtParams := []interface{}{}
|
||||
sqlParams := []interface{}{
|
||||
utils.DefaultTimeValue,
|
||||
utils.DefaultTimeValue,
|
||||
}
|
||||
if len(vendorIDs) > 0 {
|
||||
for _, v := range vendorIDs {
|
||||
fieldPrefix := ConvertDBFieldPrefix(model.VendorNames[v])
|
||||
sql += ` %s_sync_status = ?,`
|
||||
fmtParams = append(fmtParams, fieldPrefix)
|
||||
sqlParams = append(sqlParams, model.SyncFlagModifiedMask)
|
||||
}
|
||||
} else {
|
||||
return 0, errors.New("取平台ID名有错误!partner.GetPurchasePlatformVendorIDs()")
|
||||
}
|
||||
sql = sql[0:strings.LastIndex(sql, ",")]
|
||||
sql = fmt.Sprintf(sql, fmtParams...)
|
||||
sql += ` WHERE a.status = ?
|
||||
AND a.deleted_at = ?
|
||||
AND c.ex_prefix != ""
|
||||
AND (DATE_FORMAT(c.ex_prefix_begin,'%Y-%m-%d') = DATE_FORMAT(DATE_ADD(NOW(),INTERVAL '6' HOUR),'%Y-%m-%d')
|
||||
OR DATE_FORMAT(c.ex_prefix_end,'%Y-%m-%d') = DATE_FORMAT(NOW(),'%Y-%m-%d'))
|
||||
`
|
||||
sqlParams = append(sqlParams, model.StoreSkuBindStatusNormal, utils.DefaultTimeValue)
|
||||
return ExecuteSQL(db, sql, sqlParams...)
|
||||
}
|
||||
|
||||
func UpdateSkuSyncStatusForExPrefix(db *DaoDB, vendorIDs []int) (num int64, err error) {
|
||||
sql := `
|
||||
UPDATE sku b
|
||||
JOIN sku_name c ON c.id = b.name_id AND c.deleted_at = ?
|
||||
SET
|
||||
`
|
||||
fmtParams := []interface{}{}
|
||||
sqlParams := []interface{}{
|
||||
utils.DefaultTimeValue,
|
||||
utils.DefaultTimeValue,
|
||||
}
|
||||
if len(vendorIDs) > 0 {
|
||||
for _, v := range vendorIDs {
|
||||
fieldPrefix := ConvertDBFieldPrefix(model.VendorNames[v])
|
||||
sql += ` b.%s_sync_status = ?,`
|
||||
fmtParams = append(fmtParams, fieldPrefix)
|
||||
sqlParams = append(sqlParams, model.SyncFlagModifiedMask)
|
||||
}
|
||||
} else {
|
||||
return 0, errors.New("取平台ID名有错误!partner.GetPurchasePlatformVendorIDs()")
|
||||
}
|
||||
sql = sql[0:strings.LastIndex(sql, ",")]
|
||||
sql = fmt.Sprintf(sql, fmtParams...)
|
||||
sql += ` WHERE b.deleted_at = ?
|
||||
AND c.ex_prefix != ""
|
||||
AND (DATE_FORMAT(c.ex_prefix_begin,'%Y-%m-%d') = DATE_FORMAT(DATE_ADD(NOW(),INTERVAL '6' HOUR),'%Y-%m-%d')
|
||||
OR DATE_FORMAT(c.ex_prefix_end,'%Y-%m-%d') = DATE_FORMAT(NOW(),'%Y-%m-%d'))
|
||||
`
|
||||
sqlParams = append(sqlParams, model.StoreSkuBindStatusNormal, utils.DefaultTimeValue)
|
||||
return ExecuteSQL(db, sql, sqlParams...)
|
||||
}
|
||||
|
||||
func GetStoreSkusByNameIDs(db *DaoDB, storeIDs []int, nameID int) (skuList []*StoreSkuSyncInfo, err error) {
|
||||
sql := `
|
||||
SELECT a.*,c.unit,c.name
|
||||
|
||||
Reference in New Issue
Block a user