diff --git a/business/jxcallback/orderman/order.go b/business/jxcallback/orderman/order.go index 29a734f20..dcd9ae516 100644 --- a/business/jxcallback/orderman/order.go +++ b/business/jxcallback/orderman/order.go @@ -4,11 +4,11 @@ import ( "crypto/md5" "errors" "fmt" - order_getSettleBillDetailV3_request "git.rosy.net.cn/baseapi/platformapi/tiktok_shop/sdk-golang/api/order_getSettleBillDetailV3/request" "git.rosy.net.cn/jx-callback/business/authz/autils" "git.rosy.net.cn/jx-callback/business/jxutils/excel" "git.rosy.net.cn/jx-callback/business/jxutils/netprinter" "git.rosy.net.cn/jx-callback/business/jxutils/weixinmsg" + "git.rosy.net.cn/jx-callback/business/partner/purchase/tiktok_store" "git.rosy.net.cn/jx-callback/globals/api2" beego "github.com/astaxie/beego/server/web" "math" @@ -2477,53 +2477,40 @@ func ExportOrderWithSku(ctx *jxcontext.Context, orders []*model.GoodsOrderExt) ( // UpdateTiktokShopTotalMoney 定时任务更新抖店订单的平台结算 func UpdateTiktokShopTotalMoney() { + db := dao.GetDB() var goodsOrders []*model.GoodsOrder + sql := `SELECT g.* FROM goods_order g WHERE g.order_created_at >= ? AND g.status = ? AND g.vendor_id = ? AND total_shop_money = ? ORDER BY g.order_created_at desc` orderCreateTime := time.Now().AddDate(0, 0, -15) param := []interface{}{orderCreateTime, model.OrderStatusFinished, model.VendorIDDD, model.NO} - if err := dao.GetRows(dao.GetDB(), &goodsOrders, sql, param...); err != nil { + if err := dao.GetRows(db, &goodsOrders, sql, param...); err != nil { globals.SugarLogger.Debugf("Update GoodsOrder Total shop money err %s", err) return } - orderList := make([]string, 0, 0) - goodsOrdersMap := make(map[string]*model.GoodsOrder, len(goodsOrders)) - for _, v := range goodsOrders { - orderList = append(orderList, v.VendorOrderID) - goodsOrdersMap[v.VendorOrderID] = v - } - - db := dao.GetDB() - randNum := 0 nextStartIndex := "" - if len(orderList) <= 50 { - randNum = 1 - } else { - randNum = len(orderList) / 50 - if len(orderList)%50 != 0 { - randNum++ + for _, v := range goodsOrders { + orderDetail, err := tiktok_store.GetOrderDetail(v.VendorOrgCode, v.VendorOrderID) + if err != nil { + globals.SugarLogger.Errorf("定时任务:查询订单详情错误,更新订单结算信息,[%s]", err) + continue } - } - for i := 0; i < randNum; i++ { - orderString := strings.Join(orderList[0:i*50], ",") - orderMap, next, err := api.TiktokStore.GetSettleBillDetailV3(&order_getSettleBillDetailV3_request.OrderGetSettleBillDetailV3Param{ - Size: 50, - OrderId: orderString, - StartIndex: nextStartIndex, - }) + childrenOrderList := make([]string, 0, 0) + for _, v := range orderDetail.SkuOrderList { + childrenOrderList = append(childrenOrderList, v.OrderId) + } + + totalShopMoney, next, err := tiktok_store.GetOrderTotalShopMoney(v.VendorOrgCode, strings.Join(childrenOrderList, ","), nextStartIndex) if err != nil { globals.SugarLogger.Errorf("获取平台订单异常 : %s", err) continue } - for k, v := range orderMap { - goodsOrdersMap[k].TotalShopMoney = v - if _, err := dao.UpdateEntity(db, goodsOrdersMap[k], "TotalShopMoney"); err != nil { - globals.SugarLogger.Errorf("更新本地订单结算信息错误 : %s", err) - continue - } - } nextStartIndex = next + v.TotalShopMoney = totalShopMoney + if _, err := dao.UpdateEntity(db, v, "TotalShopMoney"); err != nil { + globals.SugarLogger.Errorf("更新本地订单结算信息错误 : %s", err) + continue + } } - } diff --git a/business/jxstore/cms/store.go b/business/jxstore/cms/store.go index 37799842f..f99bb390b 100644 --- a/business/jxstore/cms/store.go +++ b/business/jxstore/cms/store.go @@ -4430,7 +4430,7 @@ func RefreshTiktokShopToken(ctx *jxcontext.Context) (err error) { globals.SugarLogger.Debugf("定时任务更新抖店店铺token错误:%s,%s", utils.Format4Output(v, false), err.Error()) continue } - if access.ExpiresIn-time.Now().Unix() > 48*60*60 { + if access.ExpiresIn-time.Now().Unix() > 60*60 { continue } api.SetToken(access.AccessToken) @@ -4441,7 +4441,7 @@ func RefreshTiktokShopToken(ctx *jxcontext.Context) (err error) { token, _ := json.Marshal(result) v.Token = string(token) v.UpdatedAt = time.Now() - v.Comment = utils.Time2Str(time.Now())[0:11] + ":" + v.Token[0:230] + v.StoreBrandName = "定时任务更新" dao.UpdateEntity(db, v, "Token", "UpdatedAt", "Comment") } } diff --git a/business/jxstore/cms/sync_store_sku.go b/business/jxstore/cms/sync_store_sku.go index 305bdba82..565c86484 100644 --- a/business/jxstore/cms/sync_store_sku.go +++ b/business/jxstore/cms/sync_store_sku.go @@ -678,15 +678,6 @@ func syncStoreSkuNew(ctx *jxcontext.Context, parentTask tasksch.ITask, causeFlag // } } - //globals.SugarLogger.Debugf("==============createList=%s", utils.Format4Output(createList, false)) - //globals.SugarLogger.Debugf("===============updateList%s", utils.Format4Output(updateList, false)) - //globals.SugarLogger.Debugf("==============deleteList=%s", utils.Format4Output(deleteList, false)) - //globals.SugarLogger.Debugf("===============priceList%s", utils.Format4Output(priceList, false)) - //globals.SugarLogger.Debugf("===============stockList%s", utils.Format4Output(stockList, false)) - //globals.SugarLogger.Debugf("==============onlineList=%s", utils.Format4Output(onlineList, false)) - //globals.SugarLogger.Debugf("===============offlineList %s", utils.Format4Output(offlineList, false)) - //globals.SugarLogger.Debugf("===============offlineList %s", utils.Format4Output(offlineList, false)) - task := tasksch.NewParallelTask("syncStoreSkuNew", tasksch.NewParallelConfig().SetParallelCount(1).SetIsContinueWhenError(isContinueWhenError2), ctx, func(task *tasksch.ParallelTask, batchItemList []interface{}, params ...interface{}) (retVal interface{}, err error) { step := batchItemList[0].(int) diff --git a/business/jxstore/misc/misc.go b/business/jxstore/misc/misc.go index bcf452a91..6e0d3fc68 100644 --- a/business/jxstore/misc/misc.go +++ b/business/jxstore/misc/misc.go @@ -243,6 +243,11 @@ func Init() { orderman.FixedOrderManager.AmendMissingOrders(jxcontext.AdminCtx, []int{model.VendorIDJD, model.VendorIDMTWM, model.VendorIDEBAI, model.VendorIDDD}, 0, curDate, curDate, true, true) }, 5*time.Second, 10*time.Minute) + //刷新抖音门店token + ScheduleTimerFuncByInterval(func() { + cms.RefreshTiktokShopToken(jxcontext.AdminCtx) + }, 60*time.Second, 30*time.Minute) + //刷新京东物竞天择订单结算价 ScheduleTimerFunc("RefreshJdShopOrdersEarningPrice", func() { orderman.RefreshJdShopOrdersEarningPrice(jxcontext.AdminCtx, utils.Time2Str(time.Now().AddDate(0, 0, -2)), utils.Time2Str(time.Now().AddDate(0, 0, -2))) @@ -332,10 +337,7 @@ func Init() { ScheduleTimerFunc("RefreshMTWMToken", func() { cms.RefreshMTWMToken(jxcontext.AdminCtx) }, updateActStatusTimeList) - //刷新抖音门店token - ScheduleTimerFunc("RefreshTiktokShopToken", func() { - cms.RefreshTiktokShopToken(jxcontext.AdminCtx) - }, updateActStatusTimeList) + //获取最新平台流量活动 ScheduleTimerFunc("GetNewVendorPopActs", func() { act.GetNewVendorPopActs(jxcontext.AdminCtx) diff --git a/business/partner/purchase/tiktok_store/order.go b/business/partner/purchase/tiktok_store/order.go index f8913c911..afa52c6cc 100644 --- a/business/partner/purchase/tiktok_store/order.go +++ b/business/partner/purchase/tiktok_store/order.go @@ -993,10 +993,15 @@ func (c *PurchaseHandler) OrderLogisticsStatus(orderId int64) (int64, error) { } // GetOrderTotalShopMoney 获取门店结算信息 -func GetOrderTotalShopMoney(appOrgCode string, orderIds string, nextStartIndex string) (map[string]int64, string, error) { +func GetOrderTotalShopMoney(appOrgCode string, orderIds string, nextStartIndex string) (int64, string, error) { return getAPI(appOrgCode, 0, "").GetSettleBillDetailV3(&order_getSettleBillDetailV3_request.OrderGetSettleBillDetailV3Param{ Size: 50, OrderId: orderIds, StartIndex: nextStartIndex, }) } + +// GetOrderDetail 获取订单详情 +func GetOrderDetail(appOrgCode, vendorOrderID string) (*order_orderDetail_response.ShopOrderDetail, error) { + return getAPI(appOrgCode, 0, "").GetTiktokOrderDetail(vendorOrderID) +} diff --git a/business/partner/purchase/tiktok_store/store_sku2.go b/business/partner/purchase/tiktok_store/store_sku2.go index 5351c9d44..0bd9fa706 100644 --- a/business/partner/purchase/tiktok_store/store_sku2.go +++ b/business/partner/purchase/tiktok_store/store_sku2.go @@ -206,7 +206,7 @@ func (p *PurchaseHandler) DeleteStoreSkus(ctx *jxcontext.Context, storeID int, v if v.VendorMainId == "" { continue } - if err = getAPI(storeSkuList[0].VendorOrgCode, storeID, vendorStoreID).DeleteStoreCommodity(utils.Str2Int64(v.VendorMainId)); err != nil { + if err = getAPI(storeSkuList[0].VendorOrgCode, storeID, vendorStoreID).DeleteStoreCommodity(utils.Str2Int64(v.VendorSkuID)); err != nil { failedList = append(failedList, putils.GetErrMsg2FailedSingleList(v, err, storeID, model.VendorChineseNames[model.VendorIDDD], "删除主商品")...) } }