Merge branch 'jdshop' of https://e.coding.net/rosydev/jx-callback into jdshop

This commit is contained in:
richboo111
2022-10-10 13:58:31 +08:00
5 changed files with 143 additions and 105 deletions

View File

@@ -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 {

View File

@@ -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)
}

View File

@@ -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

View File

@@ -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
View File

@@ -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())
// }