diff --git a/business/jxstore/cms/store_sku.go b/business/jxstore/cms/store_sku.go index a1398d59c..9a9145fc0 100644 --- a/business/jxstore/cms/store_sku.go +++ b/business/jxstore/cms/store_sku.go @@ -618,7 +618,7 @@ func getGetStoresSkusBaseSQL(db *dao.DaoDB, storeIDs, skuIDs []int, upcs []strin model.ThingTypeSku, utils.DefaultTimeValue, keywordInt64) if isFocus { sql += " OR t4.ebai_id = ? OR t4.mtwm_id = ? OR t4.dd_id = ?" - sqlParams = append(sqlParams, keywordInt64, keywordInt64,keywordInt64) + sqlParams = append(sqlParams, keywordInt64, keywordInt64, keywordInt64) } } sql += ")" @@ -716,6 +716,10 @@ func getGetStoresSkusBaseSQL(db *dao.DaoDB, storeIDs, skuIDs []int, upcs []strin sql += " OR (t4.ebai_sync_status & ? <> 0 AND NOT (t4.ebai_sync_status & ? <> 0 AND (t4.status <> ? OR t2.status <> ?)) )" sqlParams = append(sqlParams, params["ebaiSyncStatus"], model.SyncFlagNewMask, model.SkuStatusNormal, model.SkuStatusNormal) } + if params["ddSyncStatus"] != nil && realVendorMap[model.VendorIDDD] == 1 { + sql += " OR (t4.dd_sync_status & ? <> 0 AND NOT (t4.dd_sync_status & ? <> 0 AND (t4.status <> ? OR t2.status <> ?)) )" + sqlParams = append(sqlParams, params["ddSyncStatus"], model.SyncFlagNewMask, model.SkuStatusNormal, model.SkuStatusNormal) + } if params["mtwmSyncStatus"] != nil && realVendorMap[model.VendorIDMTWM] == 1 { sql += " OR (t4.mtwm_sync_status & ? <> 0 AND NOT (t4.mtwm_sync_status & ? <> 0 AND (t4.status <> ? OR t2.status <> ?)) )" sqlParams = append(sqlParams, params["mtwmSyncStatus"], model.SyncFlagNewMask, model.SkuStatusNormal, model.SkuStatusNormal) @@ -876,7 +880,7 @@ func getGetStoresSkusBaseSQL2(db *dao.DaoDB, storeIDs, skuIDs []int, upcs []stri model.ThingTypeSku, utils.DefaultTimeValue, keywordInt64) if isFocus { sql += " OR t4.ebai_id = ? OR t4.mtwm_id = ? OR t4.dd_id = ?" - sqlParams = append(sqlParams, keywordInt64, keywordInt64,keywordInt64) + sqlParams = append(sqlParams, keywordInt64, keywordInt64, keywordInt64) } } sql += ")" @@ -1135,9 +1139,9 @@ func GetStoresSkusNew(ctx *jxcontext.Context, storeIDs, skuIDs []int, upcs []str t4.created_at bind_created_at, t4.updated_at bind_updated_at, t4.last_operator bind_last_operator, t4.deleted_at bind_deleted_at, t4.sub_store_id, t4.price bind_price, IF(t4.unit_price IS NOT NULL, t4.unit_price, t1.price) unit_price, t4.status store_sku_status, t4.auto_sale_at, t4.ebai_id, t4.mtwm_id,t4.dd_id, t4.yb_id, CONCAT(smm.yb_store_prefix,t1.yb_name_suffix) yb_sku_name, t4.jds_id, t4.jds_ware_id, - t4.jd_sync_status, t4.ebai_sync_status, t4.mtwm_sync_status, t4.yb_sync_status, t4.jds_sync_status, - t4.jd_price, t4.ebai_price, t4.mtwm_price, t4.jx_price, t4.yb_price, t4.jds_price, - t4.jd_lock_time, t4.ebai_lock_time, t4.mtwm_lock_time, t4.jx_lock_time, t4.yb_lock_time, t4.jds_lock_time, + t4.jd_sync_status, t4.ebai_sync_status, t4.mtwm_sync_status,t4.dd_sync_status, t4.yb_sync_status, t4.jds_sync_status, + t4.jd_price, t4.ebai_price, t4.mtwm_price, t4.jx_price, t4.dd_price, t4.yb_price, t4.jds_price, + t4.jd_lock_time, t4.ebai_lock_time, t4.mtwm_lock_time, t4.dd_lock_time, t4.jx_lock_time, t4.yb_lock_time, t4.jds_lock_time, t4.status_sale_begin, t4.status_sale_end, t4.stock, t4.mt_ladder_box_price, t6.mid_unit_price real_mid_unit_price, t7.unit_price audit_unit_price @@ -1145,6 +1149,8 @@ func GetStoresSkusNew(ctx *jxcontext.Context, storeIDs, skuIDs []int, upcs []str if isHighPrice || priceType != 0 { sql += " , t4.unit_price DESC LIMIT 99" } + globals.SugarLogger.Debug("==============sqlDD", sql) + globals.SugarLogger.Debug("==============param", sqlParams) var tmpList []*tGetStoresSkusInfo beginTime := time.Now() if err = dao.GetRowsTx(txDB, &tmpList, sql, sqlParams...); err != nil { diff --git a/business/jxstore/cms/sync_store_sku.go b/business/jxstore/cms/sync_store_sku.go index 30bb731a8..585fd910a 100644 --- a/business/jxstore/cms/sync_store_sku.go +++ b/business/jxstore/cms/sync_store_sku.go @@ -403,6 +403,7 @@ func updateStoreSku(db *dao.DaoDB, vendorID int, storeSkuList []*dao.StoreSkuSyn for k, v := range storeSkuList { updateItemList[k] = sku2Update(vendorID, v, syncStatus) } + globals.SugarLogger.Debugf("updateItemList==========%s", updateItemList) num, err = dao.BatchUpdateEntityByKV(db, updateItemList) if vendorID == model.VendorIDYB { err = updateYbOhterSku(db, storeSkuList) @@ -755,6 +756,7 @@ func syncStoreSkuNew(ctx *jxcontext.Context, parentTask tasksch.ITask, causeFlag } } successList := putils.UnselectStoreSkuSyncListByVendorSkuIDs(batchedStoreSkuList, GetVendorSkuIDList(failedList)) + globals.SugarLogger.Debugf("successList================%s", utils.Format4Output(successList, false)) if len(successList) > 0 { updateStoreSku(dao.GetDB(), vendorID, successList, model.SyncFlagNewMask) } diff --git a/business/model/dao/store.go b/business/model/dao/store.go index 0e1e3300d..0d323ad19 100644 --- a/business/model/dao/store.go +++ b/business/model/dao/store.go @@ -505,6 +505,7 @@ func AddStoreCategoryMap(db *DaoDB, storeID, categoryID int, vendorID int, vendo CategoryID: categoryID, MtwmSyncStatus: model.SyncFlagNewMask, EbaiSyncStatus: model.SyncFlagNewMask, + DdSyncStatus: model.SyncFlagNewMask, YbSyncStatus: model.SyncFlagNewMask, } storeCat.DeletedAt = utils.DefaultTimeValue diff --git a/business/partner/purchase/tiktok_store/store_sku2.go b/business/partner/purchase/tiktok_store/store_sku2.go index ae1125667..034f93ab8 100644 --- a/business/partner/purchase/tiktok_store/store_sku2.go +++ b/business/partner/purchase/tiktok_store/store_sku2.go @@ -383,70 +383,98 @@ func (p *PurchaseHandler) createOrUpdateStoreSkus(ctx *jxcontext.Context, storeI storeSku.VendorSkuID = utils.Int64ToStr(tiktokResultChildren.ProductId) } } else { - syncType = "更新商品" - for _, storeSku := range storeSkuList { - param := &product_editV2_request.ProductEditV2Param{ - ProductId: utils.Str2Int64(storeSku.VendorSkuID), - CategoryLeafId: utils.Str2Int64(storeSku.VendorCatID), - Name: storeSku.Name, - PayType: tiktokShop.TiktokPayType1, - ReduceType: tiktokShop.SkuReduceTypePayMakeOrder, - FreightId: freightId, - Weight: utils.Int2Float64(storeSku.Weight), - DeliveryDelayDay: tiktokShop.DeliveryDelayDayToDay, - PresellType: tiktokShop.SendGoodsTypeNow, - Supply7dayReturn: 0, - Mobile: storeDetail.Tel1, - Commit: true, - Specs: "净重|" + fmt.Sprintf("%f", storeSku.SpecQuality) + storeSku.SpecUnit, - NeedRechargeMode: false, - SellChannel: []int64{0}, - StartSaleType: 0, - PickupMethod: "0", - StoreId: int64(storeSku.StoreID), - MainProductId: int64(storeSku.NameID), - } - - // 获取上传图,商品轮播图 - img, err := GetTiktokImgList(utils.Int2Str(storeSku.StoreID), storeDetail.VendorOrgCode, storeSku.ImgOrigin, storeSku.Img2, storeSku.Img3, storeSku.Img4, storeSku.Img5) - if err != nil { - return nil, err - } - param.Pic = img - // 商品详情图 - img2, err := GetTiktokImgList(utils.Int2Str(storeSku.StoreID), storeDetail.VendorOrgCode, storeSku.DescImg) - if err != nil { - return nil, err - } - param.Description = img2 - - // weight_unit 目前抖音只支持g和kg两种 - switch storeSku.Unit { - case "g", "ml", "G", "ML": - param.WeightUnit = tiktokShop.WeightUint_G - case "kg", "l", "L", "KG": - param.WeightUnit = tiktokShop.WeightUint_G - } - - // spec_prices - param.SpecPrices = GetSpecPrices(param.Specs, vendorStoreID, 0, storeSku) - // ProductFormatNew - productFormatNew, err := GetProductFormatNew(param.CategoryLeafId, storeDetail.VendorOrgCode) - globals.SugarLogger.Debug("更新=============productFormatNew", productFormatNew) - globals.SugarLogger.Debug("更新=============productFormatNew err", err) - if err != nil { - return nil, err - } - param.ProductFormatNew = productFormatNew - - // 抖店更新商品 - if err := api.EditStoreCommodity(param); err != nil { - failedList = putils.GetErrMsg2FailedSingleList(storeSkuList, err, storeID, model.VendorChineseNames[model.VendorIDDD], syncType) - storeSku.VendorSkuID = utils.Int2Str(storeSku.SkuID) - continue - } - } - return + //syncType = "更新商品" + //for _, storeSku := range storeSkuList { + // // 创建子商品 + // param := &product_addV2_request.ProductAddV2Param{ + // CategoryLeafId: utils.Str2Int64(storeSku.SkuVendorMapCatID), + // Name: storeSku.Name, + // PayType: tiktokShop.TiktokPayType1, + // ReduceType: tiktokShop.SkuReduceTypePayMakeOrder, + // Weight: utils.Int2Float64(storeSku.Weight), + // DeliveryDelayDay: tiktokShop.DeliveryDelayDayToDay, + // PresellType: tiktokShop.SendGoodsTypeNow, + // Supply7dayReturn: 0, + // Mobile: storeDetail.Tel1, + // Commit: true, + // Specs: "净重|" + fmt.Sprintf("%f", storeSku.SpecQuality) + storeSku.SpecUnit, + // NeedRechargeMode: false, + // SellChannel: []int64{0}, + // StartSaleType: 0, + // PickupMethod: "0", + // } + // // param.AccountTemplateId = "" + // // 获取上传图,商品轮播图 + // img, err := GetTiktokImgList(utils.Int2Str(storeSku.StoreID), storeDetail.VendorOrgCode, storeSku.ImgOrigin, storeSku.Img2, storeSku.Img3, storeSku.Img4, storeSku.Img5) + // if err != nil { + // return nil, err + // } + // param.Pic = img + // // 商品详情图 + // img2, err := GetTiktokImgList(utils.Int2Str(storeSku.StoreID), storeDetail.VendorOrgCode, storeSku.DescImg) + // if err != nil { + // return nil, err + // } + // param.Description = img2 + // + // // weight_unit 目前抖音只支持g和kg两种 + // switch storeSku.Unit { + // case "g", "ml", "G", "ML": + // param.WeightUnit = tiktokShop.WeightUint_G + // case "kg", "l", "L", "KG": + // param.WeightUnit = tiktokShop.WeightUint_G + // } + // + // // spec_prices + // param.SpecPrices = GetSpecPrices(param.Specs, vendorStoreID, 0, storeSku) + // // ProductFormatNew 获取商品属性 + // productFormatNew, err := GetProductFormatNew(param.CategoryLeafId, storeDetail.VendorOrgCode) + // globals.SugarLogger.Debug("创建=============productFormatNew", productFormatNew) + // globals.SugarLogger.Debug("创建=============productFormatNew err", err) + // if err != nil { + // return nil, err + // } + // param.ProductFormatNew = productFormatNew + // globals.SugarLogger.Debug("创建=============param", utils.Format4Output(param, false)) + // + // // 获取品牌 + // brandID, err := api.GetSkuBrand(param.CategoryLeafId) + // if err != nil { + // return nil, err + // } + // param.StandardBrandId = brandID + // + // tiktokResult, err := api.EditStoreCommodity(param) // 创建主商品 + // if err != nil { + // failedList = putils.GetErrMsg2FailedSingleList(storeSkuList, err, storeID, model.VendorChineseNames[model.VendorIDDD], syncType) + // storeSku.VendorSkuID = utils.Int2Str(storeSku.SkuID) + // continue + // } + // globals.SugarLogger.Debugf("tiktokResult main ===%s", utils.Format4Output(tiktokResult, false)) + // + // // 创建子商品 + // param.FreightId = freightId + // param.MainProductId = tiktokResult.ProductId + // param.SpecPrices = GetSpecPrices(param.Specs, vendorStoreID, tiktokResult.ProductId, storeSku) + // // 获取门店限售模板 + // saleLimitId, err := CreateSaleTemp(utils.Str2Int64(vendorStoreID), api) + // globals.SugarLogger.Debug("==22213123131231231", saleLimitId) + // if err != nil { + // return nil, err + // } + // param.SaleLimitId = saleLimitId + // param.StoreId = utils.Str2Int64(vendorStoreID) + // // 抖店创建商品 + // globals.SugarLogger.Debugf("zishangping=============%s", utils.Format4Output(param, false)) + // tiktokResultChildren, err := api.EditStoreCommodity(param) + // if err != nil { + // failedList = putils.GetErrMsg2FailedSingleList(storeSkuList, err, storeID, model.VendorChineseNames[model.VendorIDDD], syncType) + // storeSku.VendorSkuID = utils.Int2Str(storeSku.SkuID) + // continue + // } + // storeSku.VendorSkuID = utils.Int64ToStr(tiktokResultChildren.ProductId) + //} + //return } if len(failedList) > 0 { diff --git a/main.go b/main.go index c58b34378..987109b7c 100644 --- a/main.go +++ b/main.go @@ -134,44 +134,45 @@ func checkCmdFlags() bool { func main() { if !checkCmdFlags() { Init() - if err := tasks.RefreshWeixinToken(); err != nil { - globals.SugarLogger.Errorf("RefreshWeixinToken failed with error:%s", err) - return - } - if err := tasks.RefreshWeixin2Token(); err != nil { - globals.SugarLogger.Errorf("RefreshWeixin2Token failed with error:%s", err) - return - } - if err := tasks.RefreshWeixin3Token(); err != nil { - globals.SugarLogger.Errorf("RefreshWeixin3Token failed with error:%s", err) - return - } - // if err := tasks.RefreshWeimobToken(); err != nil { - // globals.SugarLogger.Errorf("RefreshWeimobToken failed with error:%s", err) - // return - // } - if err := tasks.RefreshYilianyunToken(); err != nil { - globals.SugarLogger.Errorf("RefreshYilianyunToken failed with error:%s", err) - return - } - if err := tasks.RefreshPushToken(); err != nil { - globals.SugarLogger.Errorf("RefreshPushToken failed with error:%s", err) - return - } - if web.BConfig.RunMode != "jxgy" { - if err := tasks.RefreshFnToken(); err != nil { - globals.SugarLogger.Errorf("RefreshFnToken failed with error:%s", err) - return - } - } - //if err := tasks.RefreshTiktokToken(); err != nil { - // globals.SugarLogger.Errorf("RefreshTiktokToken failed with error:%s", err) + //if err := tasks.RefreshWeixinToken(); err != nil { + // globals.SugarLogger.Errorf("RefreshWeixinToken failed with error:%s", err) // return //} - if err := tasks.RefreshQywxToken(); err != nil { - globals.SugarLogger.Errorf("RefreshQywxToken failed with error:%s", err) - return - } + //if err := tasks.RefreshWeixin2Token(); err != nil { + // globals.SugarLogger.Errorf("RefreshWeixin2Token failed with error:%s", err) + // return + //} + //if err := tasks.RefreshWeixin3Token(); err != nil { + // globals.SugarLogger.Errorf("RefreshWeixin3Token failed with error:%s", err) + // return + //} + //// if err := tasks.RefreshWeimobToken(); err != nil { + //// globals.SugarLogger.Errorf("RefreshWeimobToken failed with error:%s", err) + //// return + //// } + //if err := tasks.RefreshYilianyunToken(); err != nil { + // globals.SugarLogger.Errorf("RefreshYilianyunToken failed with error:%s", err) + // return + //} + //if err := tasks.RefreshPushToken(); err != nil { + // globals.SugarLogger.Errorf("RefreshPushToken failed with error:%s", err) + // return + //} + //if web.BConfig.RunMode != "jxgy" { + // if err := tasks.RefreshFnToken(); err != nil { + // globals.SugarLogger.Errorf("RefreshFnToken failed with error:%s", err) + // return + // } + //} + ////if err := tasks.RefreshTiktokToken(); err != nil { + //// globals.SugarLogger.Errorf("RefreshTiktokToken failed with error:%s", err) + //// return + ////} + //if err := tasks.RefreshQywxToken(); err != nil { + // globals.SugarLogger.Errorf("RefreshQywxToken failed with error:%s", err) + // return + //} + // if globals.IsProductEnv() { // orderman.SaveJdsOrders(nil, time.Now().Add(-2*time.Hour), time.Now()) // }