Merge branch 'jdshop' of https://e.coding.net/rosydev/jx-callback into jdshop
This commit is contained in:
@@ -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 {
|
||||
|
||||
@@ -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)
|
||||
}
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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 {
|
||||
|
||||
73
main.go
73
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())
|
||||
// }
|
||||
|
||||
Reference in New Issue
Block a user