diff --git a/business/jxcallback/orderman/order.go b/business/jxcallback/orderman/order.go index b99e0d1c4..0f2aebec6 100644 --- a/business/jxcallback/orderman/order.go +++ b/business/jxcallback/orderman/order.go @@ -1075,7 +1075,7 @@ func result2Orders(ctx *jxcontext.Context, result *jdshopapi.AllOrdersResult) (o } order := &model.GoodsOrder{ VendorOrderID2: utils.Int64ToStr(jdsOrder.OrderID), - VendorOrderID: utils.Int64ToStr(jdsOrder.OrderID) + "001", + VendorOrderID: utils.Int64ToStr(jdsOrder.OrderID) + "000001", VendorID: model.VendorIDJDShop, BaseFreightMoney: jxutils.StandardPrice2Int(jdsOrder.Freight), VendorStatus: utils.Int2Str(jdsOrder.OrderStatus), @@ -1219,8 +1219,14 @@ func TransferJdsOrder(ctx *jxcontext.Context, vendorOrderID string, storeID int) } //重新构建order的数据 storeMaps, err := dao.GetStoresMapList(db, []int{order.VendorID}, []int{storeID}, nil, model.StoreStatusAll, model.StoreIsSyncAll, "", "") + if err != nil || len(storeMaps) == 0 { + return "", fmt.Errorf("该门店未绑定京狗平台,请先绑定后再转移!门店:[%v]", storeID) + } stores, err := dao.GetStoreList(db, []int{storeID}, nil, nil, nil, "") if len(storeMaps) > 0 && len(stores) > 0 { + if storeMaps[0].VendorStoreID == "" { + return "", fmt.Errorf("该门店未绑定京狗平台,或绑定有误,请联系技术部!门店:[%v]", storeID) + } order.StoreID = storeID order.StoreName = stores[0].Name order.VendorStoreID = storeMaps[0].VendorStoreID @@ -1230,7 +1236,7 @@ func TransferJdsOrder(ctx *jxcontext.Context, vendorOrderID string, storeID int) if len(order.VendorOrderID) > 12 { suffix := utils.Str2Int(order.VendorOrderID[12:len(order.VendorOrderID)]) suffix++ - order.VendorOrderID = utils.Int64ToStr(utils.Str2Int64(order.VendorOrderID2)*100) + utils.Int2Str(suffix) + order.VendorOrderID = utils.Int64ToStr(utils.Str2Int64(order.VendorOrderID2)*100000) + utils.Int2Str(suffix) } for _, sku := range skus { sku.VendorOrderID = order.VendorOrderID diff --git a/business/jxcallback/orderman/orderman_ext.go b/business/jxcallback/orderman/orderman_ext.go index 8eb0e4846..7c3f9f1f1 100644 --- a/business/jxcallback/orderman/orderman_ext.go +++ b/business/jxcallback/orderman/orderman_ext.go @@ -7,6 +7,8 @@ import ( "strings" "time" + "github.com/astaxie/beego" + "git.rosy.net.cn/jx-callback/globals/api" "git.rosy.net.cn/jx-callback/business/jxutils/tasksch" @@ -314,111 +316,35 @@ func (c *OrderManager) ExportOrders(ctx *jxcontext.Context, fromDateStr, toDateS afsInfo[v.SkuID].Count -= minus } } - // if v.SkuCount2 == 1 { - // skuStr1 := strings.Join([]string{ - // utils.Int2Str(v.SkuID), - // utils.Int2Str(v.SkuCount2), - // utils.Int2Str(v.SkuShopPrice), - // utils.Int2Str(v.SkuSalePrice), - // utils.Int2Str(v.SkuEarningPrice), - // }, ",") - // if order == nil || v.ID != order.ID { - // order = v - // v.CourierVendorName = model.VendorChineseNames[v.WaybillVendorID] - // v.Status2 = model.OrderStatusName[v.Status] - // v.SkuInfo = skuStr1 - // v.SkuInfo2 = skuStr1 - // orders2 = append(orders2, v) - // } else { - // order.SkuInfo += ";" + skuStr1 - // order.SkuInfo2 += ";" + skuStr1 - // } - // } else if v.SkuCount2 > 1 { - // storeID := 0 - // if v.StoreID == 0 { - // storeID = v.JxStoreID - // } else { - // storeID = v.StoreID - // } - // result, _ := dao.GetEffectiveActStoreSkuInfo(dao.GetDB(), 0, nil, 0, []int{storeID}, []int{v.SkuID}, v.OrderCreatedAt, v.OrderCreatedAt) - // if len(result) > 0 { - // if result[0].EarningPrice != 0 { - // var ( - // storePayPercentage, price int - // ) - // stores, _ := dao.GetStoreList(dao.GetDB(), []int{v.StoreID}, nil, nil, nil, "") - // if len(stores) > 0 { - // storePayPercentage = stores[0].PayPercentage - // } else { - // storePayPercentage = 70 - // } - // skuStr1 := strings.Join([]string{ - // utils.Int2Str(v.SkuID), - // utils.Int2Str(v.SkuCount2), - // utils.Int2Str(v.SkuShopPrice), - // utils.Int2Str(v.SkuSalePrice), - // utils.Int2Str(v.SkuEarningPrice), - // }, ",") - // skuStr2 := strings.Join([]string{ - // utils.Int2Str(v.SkuID), - // utils.Int2Str(1), - // utils.Int2Str(v.SkuShopPrice), - // utils.Int2Str(v.SkuSalePrice), - // utils.Int2Str(v.SkuEarningPrice), - // }, ",") - // if v.SkuShopPrice < v.SkuSalePrice { - // price = v.SkuShopPrice * storePayPercentage - // } else { - // price = v.SkuSalePrice * storePayPercentage - // } - // skuStr3 := strings.Join([]string{ - // utils.Int2Str(v.SkuID), - // utils.Int2Str(v.SkuCount2 - 1), - // utils.Int2Str(v.SkuShopPrice), - // utils.Int2Str(v.SkuSalePrice), - // utils.Int2Str(price), - // }, ",") - // if order == nil || v.ID != order.ID { - // order = v - // v.CourierVendorName = model.VendorChineseNames[v.WaybillVendorID] - // v.Status2 = model.OrderStatusName[v.Status] - // v.SkuInfo2 = skuStr1 - // v.SkuInfo = skuStr2 + ";" + skuStr3 - // orders2 = append(orders2, v) - // } else { - // order.SkuInfo2 += ";" + skuStr1 - // order.SkuInfo += ";" + skuStr2 + ";" + skuStr3 - // } - // } - // } else { - // skuStr1 := strings.Join([]string{ - // utils.Int2Str(v.SkuID), - // utils.Int2Str(v.SkuCount2), - // utils.Int2Str(v.SkuShopPrice), - // utils.Int2Str(v.SkuSalePrice), - // utils.Int2Str(v.SkuEarningPrice), - // }, ",") - // if order == nil || v.ID != order.ID { - // order = v - // v.CourierVendorName = model.VendorChineseNames[v.WaybillVendorID] - // v.Status2 = model.OrderStatusName[v.Status] - // v.SkuInfo = skuStr1 - // v.SkuInfo2 = skuStr1 - // orders2 = append(orders2, v) - // } else { - // order.SkuInfo += ";" + skuStr1 - // order.SkuInfo2 += ";" + skuStr1 - // } - // } - // } if v.SkuCount2 > 0 { - skuStr := strings.Join([]string{ - utils.Int2Str(v.SkuID), - utils.Int2Str(v.SkuCount2), - utils.Int2Str(v.SkuShopPrice), - utils.Int2Str(v.SkuSalePrice), - utils.Int2Str(v.SkuEarningPrice), - }, ",") + var skuStr string + if beego.BConfig.RunMode == "jxgy" { + skuStr = strings.Join([]string{ + utils.Int2Str(v.SkuID), + utils.Int2Str(v.SkuCount2), + utils.Int2Str(v.SkuShopPrice), + utils.Int2Str(v.SkuSalePrice), + utils.Int2Str(v.SkuEarningPrice), + }, ",") + } else { + if v.PayPercentage == 100 { + skuStr = strings.Join([]string{ + utils.Int2Str(v.SkuID), + utils.Int2Str(v.SkuCount2), + utils.Int2Str(v.SkuEarningPrice), + utils.Int2Str(v.SkuSalePrice), + utils.Int2Str(v.SkuShopPrice), + }, ",") + } else { + skuStr = strings.Join([]string{ + utils.Int2Str(v.SkuID), + utils.Int2Str(v.SkuCount2), + utils.Int2Str(v.SkuShopPrice), + utils.Int2Str(v.SkuSalePrice), + utils.Int2Str(v.SkuEarningPrice), + }, ",") + } + } if order == nil || v.ID != order.ID { order = v v.CourierVendorName = model.VendorChineseNames[v.WaybillVendorID] diff --git a/business/jxcallback/scheduler/defsch/defsch.go b/business/jxcallback/scheduler/defsch/defsch.go index 643de03df..45c0c9910 100644 --- a/business/jxcallback/scheduler/defsch/defsch.go +++ b/business/jxcallback/scheduler/defsch/defsch.go @@ -763,9 +763,9 @@ func (s *DefScheduler) cancelOtherWaybillsCheckOrderDeliveryFlag(savedOrderInfo } func (s *DefScheduler) solutionJdsOrder(bill *model.Waybill) (err error) { - //表示此订单是京东商城转移的订单,不用出库,但要去修改运单号 if len(bill.VendorOrderID) > 12 { - if utils.Str2Int(bill.VendorOrderID[12:len(bill.VendorOrderID)]) > 1 { + //表示此订单是京东商城2次转移的订单,不用出库,但要去修改运单号 + if utils.Str2Int(bill.VendorOrderID[12:len(bill.VendorOrderID)]) > 2 { err = jdshop.CurPurchaseHandler.OrderTransfer(jxcontext.AdminCtx, bill.VendorOrderID, bill.VendorWaybillID, true) if err != nil { globals.SugarLogger.Errorf("京东商城订单自动转移失败!", err) @@ -779,6 +779,7 @@ func (s *DefScheduler) solutionJdsOrder(bill *model.Waybill) (err error) { func (s *DefScheduler) cancelOtherWaybills(savedOrderInfo *WatchOrderInfo, bill2Keep *model.Waybill, cancelReasonID int, cancelReason string) (err error) { globals.SugarLogger.Debugf("cancelOtherWaybills, orderID:%s, bill:%v", savedOrderInfo.order.VendorOrderID, bill2Keep) + globals.SugarLogger.Debugf("testcancelOtherWaybills,savedOrderInfo: %v", utils.Format4Output(savedOrderInfo, false)) for _, v := range savedOrderInfo.waybills { if v.Status < model.WaybillStatusEndBegin && !model.IsWaybillPlatformOwn(v) && diff --git a/business/jxstore/cms/store_sku.go b/business/jxstore/cms/store_sku.go index c2d2c3ffe..7858319e0 100644 --- a/business/jxstore/cms/store_sku.go +++ b/business/jxstore/cms/store_sku.go @@ -3334,6 +3334,7 @@ func AutoFocusStoreSkusForTopSkus(ctx *jxcontext.Context, isAsync, isContinueWhe var skuBindInfoList []*StoreSkuBindInfo for _, vv := range skuNameAndPlaceList { if skuNameMap[vv.ID] != 0 { + globals.SugarLogger.Debugf("testAutoFocusStoreSkusForTopSkus,storeID:%v,nameID:%v", v.ID, vv.ID) storeSkuBindInfo := &StoreSkuBindInfo{ StoreID: v.ID, NameID: vv.ID, @@ -4693,4 +4694,3 @@ func StoreSkuPriceAudit(ctx *jxcontext.Context, storeSkuAudits []*model.StoreSku } return hint, err } - diff --git a/business/jxstore/cms/sync.go b/business/jxstore/cms/sync.go index 54fa95b53..667f1d49d 100644 --- a/business/jxstore/cms/sync.go +++ b/business/jxstore/cms/sync.go @@ -1115,7 +1115,7 @@ func syncJdsStoreStock(ctx *jxcontext.Context, db *dao.DaoDB, storeSkus []*model } storeSku2, _ := dao.GetStoresSkusInfo(db, []int{storeMap.StoreID}, []int{storeSku.SkuID}) if storeSku.JdsID != 0 && len(storeSku2) > 0 { - if storeSku.Status != storeSku2[0].Status { + if storeSku.Status != storeSku2[0].Status && storeMap.VendorStoreID != "" { err = api.JdShopAPI.UpdateSkuSiteStock(storeSku.JdsID, stock, utils.Str2Int(storeMap.VendorStoreID)) } } @@ -1184,14 +1184,14 @@ func syncJdsStoresSkus(ctx *jxcontext.Context, db *dao.DaoDB, parentTask tasksch for _, v := range updateList { skuBindInfos1 = append(skuBindInfos1, buildStoreSkuBindInfo(db, storeMap.StoreID, v, false)) } - _, err = UpdateStoresSkusByBind(ctx, parentTask, skuBindInfos1, isAsync, isContinueWhenError, false) + UpdateStoresSkusByBind(ctx, parentTask, skuBindInfos1, isAsync, isContinueWhenError, false) } if len(addList) > 0 { for _, v := range addList { skuBindInfos2 = append(skuBindInfos2, buildStoreSkuBindInfo(db, storeMap.StoreID, v, true)) } - _, err = UpdateStoresSkusByBind(ctx, parentTask, skuBindInfos2, isAsync, isContinueWhenError, false) + UpdateStoresSkusByBind(ctx, parentTask, skuBindInfos2, isAsync, isContinueWhenError, false) } return err } diff --git a/business/jxstore/cms/sync_store_sku.go b/business/jxstore/cms/sync_store_sku.go index e54cb3d2c..92f98289c 100644 --- a/business/jxstore/cms/sync_store_sku.go +++ b/business/jxstore/cms/sync_store_sku.go @@ -283,7 +283,6 @@ func formalizeStoreSkuList(inSkuList []*dao.StoreSkuSyncInfo) []*dao.StoreSkuSyn skuItem.SkuNameOrigin = jxutils.ComposeSkuNameOriginal(skuItem.Prefix, skuItem.Name, skuItem.Comment, skuItem.Unit, skuItem.SpecQuality, skuItem.SpecUnit, 0) if skuItem.ImgWatermark != "" { downLoad, _ := uploadImgStandard(skuItem.ImgWatermark) - fmt.Println("testdo", downLoad) skuItem.ImgMix = jxutils.MixWatermarkImg(downLoad, skuItem.ImgOrigin, skuItem.ExPrefixBegin, skuItem.ExPrefixEnd) } } @@ -483,9 +482,9 @@ func syncStoreSkuNew(ctx *jxcontext.Context, parentTask tasksch.ITask, causeFlag } else { if sku.MergedStatus == model.SkuStatusNormal { if dao.IsVendorThingIDEmpty(sku.VendorCatID) && !strings.Contains(sku.StoreName, model.ExdStoreName) && vendorID != model.VendorIDYB && vendorID != model.VendorIDJDShop { - globals.SugarLogger.Warnf("syncStoreSkuNew 创建门店:%d商品:%d,但没有平台分类ID", storeID, sku.SkuID) + // globals.SugarLogger.Warnf("syncStoreSkuNew 创建门店:%d商品:%d,但没有平台分类ID", storeID, sku.SkuID) } else if dao.IsVendorThingIDEmpty(utils.Int64ToStr(sku.VendorVendorCatID)) && vendorID == model.VendorIDJDShop { - globals.SugarLogger.Warnf("syncStoreSkuNew 创建门店:%d商品:%d,但没有映射的平台ID", storeID, sku.SkuID) + // globals.SugarLogger.Warnf("syncStoreSkuNew 创建门店:%d商品:%d,但没有映射的平台ID", storeID, sku.SkuID) } else { createList = append(createList, sku) } @@ -509,7 +508,7 @@ func syncStoreSkuNew(ctx *jxcontext.Context, parentTask tasksch.ITask, causeFlag // 修改商品信息时不改价(以免活动引起的失败),而用单独的改价来改 if (model.IsSyncStatusUpdate(sku.SkuSyncStatus) || (model.IsSyncStatusSeq(sku.SkuSyncStatus) && reorderHandler == nil)) && singleStoreHandler != nil { if dao.IsVendorThingIDEmpty(sku.VendorCatID) && !strings.Contains(sku.StoreName, model.ExdStoreName) && vendorID != model.VendorIDYB && vendorID != model.VendorIDJDShop { - globals.SugarLogger.Warnf("syncStoreSkuNew 修改门店:%d商品:%d,但没有平台分类ID", storeID, sku.SkuID) + // globals.SugarLogger.Warnf("syncStoreSkuNew 修改门店:%d商品:%d,但没有平台分类ID", storeID, sku.SkuID) } else { isAdded2Update = true updateList = append(updateList, calVendorPrice4StoreSku(sku, storeDetail.PricePercentagePackObj, int(storeDetail.PricePercentage))) @@ -915,7 +914,9 @@ func amendAndPruneStoreStuff(ctx *jxcontext.Context, parentTask tasksch.ITask, v }) } } - + if storeID == 103075 { + fmt.Println("sku2Delete", utils.Format4Output(sku2Delete, false)) + } if opType == AmendPruneOnlyAmend || opType == AmendPruneAll { for _, v := range localSkuList { if !model.IsSyncStatusDelete(v.SkuSyncStatus) && v.BindID != 0 { diff --git a/business/jxstore/misc/misc.go b/business/jxstore/misc/misc.go index dd402e730..2870ebc70 100644 --- a/business/jxstore/misc/misc.go +++ b/business/jxstore/misc/misc.go @@ -46,10 +46,10 @@ var ( "22:00:00", } dailyWorkTimeList2 = []string{ - "23:00:00", + "04:00:00", } priceReferTimeList = []string{ - "01:00:00", + "03:00:00", } checkCookieList = []string{ "08:00:00", @@ -57,7 +57,7 @@ var ( "18:00:00", } createStorePriceTimeList = []string{ - "02:00:00", + "04:00:00", } refreshPageActTimeList = []string{ "7:00:00", @@ -393,7 +393,7 @@ func doDailyWork() { dao.SetStoresMapSyncStatus(dao.GetDB(), nil, nil, model.SyncFlagStoreStatus) cms.CurVendorSync.SyncStore2(jxcontext.AdminCtx, dao.GetDB(), nil, nil, true, true) - syncStoreSku() + // syncStoreSku() InitEx() cms.SyncStoresCourierInfo(jxcontext.AdminCtx, nil, false, true) netprinter.RebindAllPrinters(jxcontext.AdminCtx, false, true) diff --git a/business/jxstore/tempop/tempop.go b/business/jxstore/tempop/tempop.go index 3f33d72d7..4a8654820 100644 --- a/business/jxstore/tempop/tempop.go +++ b/business/jxstore/tempop/tempop.go @@ -8,8 +8,6 @@ import ( "strings" "time" - "git.rosy.net.cn/baseapi/platformapi/jdshopapi" - "git.rosy.net.cn/jx-callback/business/auth2/authprovider/weixin" "git.rosy.net.cn/jx-callback/business/partner/delivery" "github.com/360EntSecGroup-Skylar/excelize" @@ -1611,295 +1609,6 @@ func UploadJdsImage(ctx *jxcontext.Context) (err error) { // continue // } // } - var jdsIds = []int64{69355523686, - 69353698875, - 69353633443, - 69353579080, - 69353592976, - 69353575450, - 69353669915, - 69353617240, - 69353711276, - 69355552630, - 69353579078, - 69633169613, - 69353608855, - 69634881612, - 69353634806, - 69353675911, - 69353698186, - 69353698877, - 69607962771, - 69608002604, - 69666543870, - 69353541693, - 69411607058, - 69353594629, - 69353602818, - 69353698187, - 69355538267, - 69353633269, - 69355549016, - 69411607059, - 69593365617, - 69353589341, - 69353618034, - 69353633445, - 69353644658, - 69353644659, - 69353664332, - 69355505481, - 69355531215, - 69355552632, - 69353618035, - 69353619589, - 69353684423, - 69353687174, - 69353722053, - 69355493882, - 69627859883, - 69680935348, - 69353555847, - 69353570677, - 69353589397, - 69353592975, - 69353594611, - 69353602819, - 69353616402, - 69353624528, - 69353654004, - 69353668114, - 69353687173, - 69353701089, - 69353722052, - 69353723922, - 69355527850, - 69355552631, - 69628257042, - 69636525703, - 69680935349, - 69353579081, - 69353589342, - 69353632136, - 69353654006, - 69353726354, - 69355496067, - 69355515747, - 69355516049, - 69355527036, - 69355532703, - 69355558164, - 69355560640, - 69608002434, - 69608089252, - 69626869676, - 69628142211, - 69651275202, - 69665458721, - 69980157422, - 69353511255, - 69353550931, - 69353555846, - 69353579079, - 69353593375, - 69353595563, - 69353603501, - 69353608856, - 69353618036, - 69353628469, - 69353628470, - 69353632137, - 69353633267, - 69353633444, - 69353651935, - 69353668115, - 69353683331, - 69353684157, - 69353701088, - 69353723844, - 69353723845, - 69353726353, - 69355490631, - 69355493881, - 69355493884, - 69355520278, - 69355523687, - 69355532705, - 69355533814, - 69355536851, - 69355538268, - 69355538269, - 69593321185, - 69593321186, - 69607997022, - 69626638026, - 69626638027, - 69626872037, - 69627693305, - 69627954144, - 69628180933, - 69633580083, - 69633580085, - 69634881613, - 69635037810, - 69635204944, - 69636212985, - 69636446354, - 69659137913, - 69659219611, - 69665406179, - 69666460731, - 69673523007, - 69680905913, - 69681869918, - 69821176674, - 69913341309, - 69916445013, - 69353511254, - 69353570678, - 69353581400, - 69353589343, - 69353589398, - 69353593376, - 69353594630, - 69353609816, - 69353616406, - 69353617241, - 69353619591, - 69353633268, - 69353634833, - 69353642793, - 69353647695, - 69353651934, - 69353654005, - 69353664333, - 69353669914, - 69353673334, - 69353684159, - 69353684603, - 69353684604, - 69353684605, - 69353684607, - 69353698876, - 69353701090, - 69353711277, - 69353711278, - 69353726357, - 69355496066, - 69355520277, - 69355523688, - 69355527851, - 69355533813, - 69355533815, - 69355538270, - 69355559874, - 69355559875, - 69355559876, - 69355560641, - 69607988687, - 69608089253, - 69625036409, - 69625436705, - 69626674146, - 69626756838, - 69626849783, - 69626872040, - 69627211928, - 69627823696, - 69627823697, - 69627824429, - 69627859882, - 69627954146, - 69628055157, - 69628209840, - 69628220046, - 69628244518, - 69628620179, - 69628645373, - 69633038980, - 69633169614, - 69633311068, - 69633433209, - 69634285577, - 69634285578, - 69634566319, - 69634566320, - 69634620948, - 69635037811, - 69635075404, - 69635108188, - 69636525704, - 69636563250, - 69636658901, - 69636658902, - 69651265114, - 69659219612, - 69659883978, - 69662122661, - 69666543871, - 69666543872, - 69666660395, - 69666907986, - 69666931214, - 69673508504, - 69680887348, - 69818078270, - 69881553035, - 69901783885, - 69913362221, - 69916396643, - 69925717199, - 69933144351, - 69933974117, - 69935756246, - 69935768981, - 69935855227, - 69935915640, - 69937601360, - 69937642148, - 69939562884, - 69939571687, - 69948026907, - } - db := dao.GetDB() - for _, v := range jdsIds { - vendorSku, _ := api.JdShopAPI.FindSkuById(v) - var sku *model.Sku - sql := ` - SELECT b.* FROM store_sku_bind a,sku b WHERE a.sku_id = b.id AND a.store_id = 102919 AND a.jds_id = ? - ` - sqlParams := []interface{}{v} - err = dao.GetRow(db, &sku, sql, sqlParams) - skus, _ := dao.GetStoreSkus(db, model.VendorIDJDShop, model.JdShopMainStoreID, []int{sku.ID}) - storeSku := skus[0] - if sku.Comment != "" { - var specQuality = utils.Float64ToStr(float64(storeSku.SpecQuality)) + storeSku.SpecUnit - vendorSkuAttr := vendorSku.SaleAttrs[0].AttrValueAlias[0] - if vendorSkuAttr == specQuality { - err = api.JdShopAPI.UpdateWareSaleAttrvalueAlias(&jdshopapi.UpdateWareSaleAttrvalueAliasParam{ - WareID: vendorSku.WareID, - Props: []*jdshopapi.CreateSkuParamAttrs2{ - &jdshopapi.CreateSkuParamAttrs2{ - AttrID: vendorSku.SaleAttrs[0].AttrID, - AttrValues: []string{vendorSku.SaleAttrs[0].AttrValues[0]}, - AttrValueAlias: []string{sku.Comment}, - Type: "com.jd.pop.ware.ic.api.domain.prop", - Type2: "com.jd.pop.ware.ic.api.domain.Prop", - }, - }, - }) - } else { - if vendorSkuAttr != sku.Comment { - _, maxNo, _ := api.JdShopAPI.FindValuesByAttrId(utils.Str2Int(vendorSku.SaleAttrs[0].AttrID)) - api.JdShopAPI.SaveVenderAttrValue(sku.Comment, utils.Str2Int(vendorSku.SaleAttrs[0].AttrID), int(storeSku.VendorVendorCatID), maxNo+1) - } - } - } - // attrValue := vendorSku.SaleAttrs[0].AttrValueAlias[0] - // if storeSkus != nil { - // cms.CurVendorSync.SyncStoresSkus(ctx, nil, 0, db, []int{model.VendorIDJDShop}, []int{model.JdShopMainStoreID}, []int{storeSkus.SkuID}, false, true, true) - // } - } return err } diff --git a/business/jxutils/jxutils.go b/business/jxutils/jxutils.go index 6a878ed2c..442428e55 100644 --- a/business/jxutils/jxutils.go +++ b/business/jxutils/jxutils.go @@ -161,7 +161,7 @@ func GetPossibleVendorIDFromVendorOrderID(vendorOrderID string) (vendorID int) { vendorID = model.VendorIDWSC } else if orderIDLen == len("1000004390") { vendorID = model.VendorIDJX - } else if orderIDLen == len("124557362562002") { + } else if orderIDLen == len("124557362562000001") { vendorID = model.VendorIDJDShop } } diff --git a/business/partner/delivery/jdeclp/waybill.go b/business/partner/delivery/jdeclp/waybill.go index c781d6104..7015c38b6 100644 --- a/business/partner/delivery/jdeclp/waybill.go +++ b/business/partner/delivery/jdeclp/waybill.go @@ -30,6 +30,13 @@ func (c *DeliveryHandler) GetVendorID() int { return model.VendorIDJDWL } +func OnWaybillMsg() { +} + +func (c *DeliveryHandler) OnWaybillMsg() { + +} + func (c *DeliveryHandler) CreateStore(ctx *jxcontext.Context, storeDetail *dao.StoreDetail2) (vendorStoreID string, status int, err error) { return vendorStoreID, status, err } @@ -94,7 +101,3 @@ func (c *DeliveryHandler) GetWaybillFee(order *model.GoodsOrder) (deliveryFeeInf func (c *DeliveryHandler) ComplaintRider(bill *model.Waybill, resonID int, resonContent string) (err error) { return err } - -func (c *DeliveryHandler) OnWaybillMsg() { - -} diff --git a/business/partner/delivery/mtps/waybill.go b/business/partner/delivery/mtps/waybill.go index 09fc6e264..a602fcfa8 100644 --- a/business/partner/delivery/mtps/waybill.go +++ b/business/partner/delivery/mtps/waybill.go @@ -61,6 +61,7 @@ func OnWaybillExcept(msg *mtpsapi.CallbackOrderExceptionMsg) (retVal *mtpsapi.Ca } func (c *DeliveryHandler) OnWaybillMsg(msg *mtpsapi.CallbackOrderMsg) (retVal *mtpsapi.CallbackResponse) { + c.pushToGy(msg) jxutils.CallMsgHandler(func() { retVal = c.onWaybillMsg(msg) }, jxutils.ComposeUniversalOrderID(msg.OrderID, model.VendorIDMTPS)) @@ -104,13 +105,13 @@ func (c *DeliveryHandler) onWaybillMsg(msg *mtpsapi.CallbackOrderMsg) (retVal *m globals.SugarLogger.Warnf("onWaybillMsg unknown msg:%v", msg) return mtpsapi.SuccessResponse } - c.pushToGy(order, msg) globals.SugarLogger.Debugf("onWaybillMsg test, %v", msg) return mtpsapi.Err2CallbackResponse(partner.CurOrderManager.OnWaybillStatusChanged(order), order.VendorStatus) } -func (c *DeliveryHandler) pushToGy(waybill *model.Waybill, msg *mtpsapi.CallbackOrderMsg) { - order, _ := dao.GetSimpleOrder(dao.GetDB(), waybill.VendorOrderID) +func (c *DeliveryHandler) pushToGy(msg *mtpsapi.CallbackOrderMsg) { + vendorOrderID, _ := jxutils.SplitUniversalOrderID(msg.OrderID) + order, _ := dao.GetSimpleOrder(dao.GetDB(), vendorOrderID) //查不到订单可能就是果园的订单 if order == nil { cl := http.Client{} @@ -132,19 +133,7 @@ func (c *DeliveryHandler) pushToGy(waybill *model.Waybill, msg *mtpsapi.Callback if err != nil { return } - request.PostForm.Set("mt_peisong_id", msg.MtPeisongID) - request.PostForm.Set("courier_name", msg.CourierName) - request.PostForm.Set("delivery_id", utils.Int64ToStr(msg.DeliveryID)) - request.PostForm.Set("appkey", msg.AppKey) - request.PostForm.Set("order_id", msg.OrderID) - request.PostForm.Set("courier_phone", msg.CourierPhone) - request.PostForm.Set("status", utils.Int2Str(msg.Status)) - request.PostForm.Set("timestamp", utils.Int64ToStr(msg.Timestamp)) - request.PostForm.Set("cancel_reason_id", utils.Int2Str(msg.CancelReasonId)) - request.PostForm.Set("cancel_reason", msg.CancelReason) - request.PostForm.Set("sign", sign) - fmt.Println("testgy request : %v", request.FormValue("sign")) - request.Header.Set("content_type", "application/x-www-form-urlencoded; charset=UTF-8") + request.Header.Set("Content-Type", "application/x-www-form-urlencoded; charset=UTF-8") cl.Do(request) } } diff --git a/business/partner/purchase/jdshop/order.go b/business/partner/purchase/jdshop/order.go index 219514524..9e00309d6 100644 --- a/business/partner/purchase/jdshop/order.go +++ b/business/partner/purchase/jdshop/order.go @@ -46,6 +46,9 @@ func (p *PurchaseHandler) GetOrderStatus(vendorOrgCode, vendorOrderID string) (s Current: 1, PageSize: 1, }) + if err != nil { + return 0, err + } return status2Jxstatus(orderResult.OrderList[0].OrderStatus), err } @@ -85,9 +88,11 @@ func (p *PurchaseHandler) Swtich2SelfDelivered(order *model.GoodsOrder, userName return err } func (p *PurchaseHandler) SelfDeliverDelivering(order *model.GoodsOrder, userName string) (err error) { + ChangeOrderStatus(order.VendorOrderID, model.OrderStatusDelivering, "") return err } func (p *PurchaseHandler) SelfDeliverDelivered(order *model.GoodsOrder, userName string) (err error) { + ChangeOrderStatus(order.VendorOrderID, model.OrderStatusFinished, "") return err } func (p *PurchaseHandler) GetOrderRealMobile(ctx *jxcontext.Context, order *model.GoodsOrder) (mobile string, err error) { @@ -101,6 +106,9 @@ func (p *PurchaseHandler) AgreeOrRefuseCancel(ctx *jxcontext.Context, order *mod } func (p *PurchaseHandler) CancelOrder(ctx *jxcontext.Context, order *model.GoodsOrder, reason string) (err error) { ChangeOrderStatus(order.VendorOrderID, model.OrderStatusCanceled, reason) + if order.EclpOutID != "" { + _, err = api.JdEclpAPI.CancelOrder(order.EclpOutID) + } return err } func (p *PurchaseHandler) AdjustOrder(ctx *jxcontext.Context, order *model.GoodsOrder, removedSkuList []*model.OrderSku, reason string) (err error) { @@ -162,7 +170,7 @@ func (p *PurchaseHandler) OrderTransfer(ctx *jxcontext.Context, vendorOrderID, v if !isAuto { companyID = jdshopapi.JdsDeliveryCompanyJD } - err = api.JdShopAPI.UpdateWaybill(vendorOrderID[:12], companyID, vendorWaybillID) + err = api.JdShopAPI.UpdateWaybill(vendorOrderID[:12], companyID, vendorOrderID) return err } diff --git a/business/partner/purchase/jx/localjx/order.go b/business/partner/purchase/jx/localjx/order.go index ee675ec6c..da57fd8fb 100644 --- a/business/partner/purchase/jx/localjx/order.go +++ b/business/partner/purchase/jx/localjx/order.go @@ -385,6 +385,21 @@ func GenOrderNo(ctx *jxcontext.Context) (orderNo int64) { return orderNo } +func GenAfsOrderNo(ctx *jxcontext.Context) (orderNo int64) { + const prefix = 80 + const randPartNum = 100 + orderNo = time.Now().Unix() - orderNoBeginTimestamp + orderNo = orderNo * randPartNum + md5Bytes := md5.Sum([]byte(utils.GetUUID())) + randPart := 0 + for k, v := range md5Bytes { + randPart += int(v) << ((k % 3) * 8) + } + orderNo += int64(randPart % randPartNum) + orderNo += int64(math.Pow10(int(math.Log10(float64(orderNo)))+1)) * prefix + return orderNo +} + func GenPayOrderID(order *model.GoodsOrder) (payOrderID int64) { return utils.Str2Int64(order.VendorOrderID) } diff --git a/business/partner/purchase/jx/order_afs.go b/business/partner/purchase/jx/order_afs.go index 53319ea39..4b582378a 100644 --- a/business/partner/purchase/jx/order_afs.go +++ b/business/partner/purchase/jx/order_afs.go @@ -2,7 +2,11 @@ package jx import ( "fmt" + "time" + "git.rosy.net.cn/jx-callback/business/partner/purchase/jx/localjx" + + "git.rosy.net.cn/baseapi/utils" "git.rosy.net.cn/jx-callback/business/jxutils/jxcontext" "git.rosy.net.cn/jx-callback/business/model" "git.rosy.net.cn/jx-callback/business/partner" @@ -37,6 +41,56 @@ func (c *PurchaseHandler) RefundOrder(ctx *jxcontext.Context, order *model.Goods // 发起部分退款 func (c *PurchaseHandler) PartRefundOrder(ctx *jxcontext.Context, order *model.GoodsOrder, refundSkuList []*model.OrderSku, reason string) (err error) { + var skuMap = make(map[int]*model.OrderSku) + for _, sku := range order.Skus { + skuMap[sku.SkuID] = sku + } + orderStatus := buildOrderStatus(ctx, order, reason) + afsOrder := &model.AfsOrder{ + VendorID: order.VendorID, + AfsOrderID: orderStatus.VendorOrderID, + VendorOrderID: orderStatus.RefVendorOrderID, + VendorStoreID: order.VendorStoreID, + StoreID: order.StoreID, + AfsCreatedAt: time.Now(), + VendorAppealType: "", + AppealType: model.AfsAppealTypeRefund, + VendorReasonType: utils.Int2Str(model.AfsReasonNotOthers), + ReasonType: model.AfsReasonNotOthers, + ReasonDesc: utils.LimitUTF8StringLen(reason, 1024), + ReasonImgList: "", + RefundType: model.AfsTypePartRefund, + + VendorOrgCode: "", + } + for _, sku := range refundSkuList { + orderSku := &model.OrderSkuFinancial{ + Count: sku.Count, + VendorSkuID: utils.Int2Str(sku.SkuID), + SkuID: sku.SkuID, + } + if skuMap[sku.SkuID] != nil { + orderSku.Name = skuMap[sku.SkuID].SkuName + orderSku.UserMoney = skuMap[sku.SkuID].SalePrice + } + afsOrder.SkuUserMoney += orderSku.UserMoney + afsOrder.Skus = append(afsOrder.Skus, orderSku) + } err = fmt.Errorf("%s不支持售后部分退款,请让买家发起退款", model.VendorChineseNames[model.VendorIDJX]) return err } + +func buildOrderStatus(ctx *jxcontext.Context, order *model.GoodsOrder, reason string) (orderStatus *model.OrderStatus) { + orderStatus = &model.OrderStatus{ + VendorOrderID: utils.Int64ToStr(localjx.GenAfsOrderNo(ctx)), // 是售后单ID,不是订单ID,订单ID在RefVendorOrderID中 + VendorID: order.VendorID, + OrderType: model.OrderTypeAfsOrder, + RefVendorOrderID: order.VendorOrderID, + RefVendorID: order.VendorID, + VendorStatus: utils.Int2Str(model.AfsOrderStatusWait4Approve), + Status: model.AfsOrderStatusWait4Approve, + StatusTime: time.Now(), + Remark: reason, + } + return orderStatus +} diff --git a/conf/app.conf b/conf/app.conf index ef6f86ce8..c945d9c40 100644 --- a/conf/app.conf +++ b/conf/app.conf @@ -172,7 +172,7 @@ EnableDocs = false jdOrgCode = "320406" jdLoginName = "jd_jxcs1223" -jdToken = "77e703b7-7997-441b-a12a-2e522efb117a" +jdToken = "29afd5a8-f93f-4d4c-9fce-a7297340af59" jdAppKey = "1dba76d40cac446ca500c0391a0b6c9d" jdSecret = "a88d031a1e7b462cb1579f12e97fe7f4" @@ -395,7 +395,7 @@ enableElmStoreWrite = false enableMtwmStoreWrite = false enableWscStoreWrite = false enableYbStoreWrite = false -enableJdShopWrite = true +enableJdShopWrite = false jdOrgCode = "320406" jdLoginName = "jd_jxcs1223" diff --git a/routers/commentsRouter_controllers.go b/routers/commentsRouter_controllers.go index 9c584ef7c..d1f81aae3 100644 --- a/routers/commentsRouter_controllers.go +++ b/routers/commentsRouter_controllers.go @@ -744,8 +744,7 @@ func init() { MethodParams: param.Make( param.New("msgType", param.IsRequired), ), - Filters: nil, - Params: nil}) + }) beego.GlobalControllerRouter["git.rosy.net.cn/jx-callback/controllers:MsgController"] = append(beego.GlobalControllerRouter["git.rosy.net.cn/jx-callback/controllers:MsgController"], beego.ControllerComments{ @@ -2843,5 +2842,4 @@ func init() { MethodParams: param.Make(), Filters: nil, Params: nil}) - }