From c6c63af342cc671dadd932820f2c683475dc003f Mon Sep 17 00:00:00 2001 From: suyl <770236076@qq.com> Date: Thu, 21 Oct 2021 09:50:46 +0800 Subject: [PATCH] aa --- business/partner/purchase/jx/localjx/order.go | 244 +++++++++--------- 1 file changed, 122 insertions(+), 122 deletions(-) diff --git a/business/partner/purchase/jx/localjx/order.go b/business/partner/purchase/jx/localjx/order.go index 625e188ca..210e8e2f8 100644 --- a/business/partner/purchase/jx/localjx/order.go +++ b/business/partner/purchase/jx/localjx/order.go @@ -1210,129 +1210,129 @@ func PickupGoods(order *model.GoodsOrder, isSelfDelivery bool, userName string) } func orderSolutionForWuLiao(order *model.GoodsOrder) (err error) { - // if order.FromStoreID != 0 { err = changeOrderStatus(order.VendorOrderID, model.OrderStatusDelivering, "") - if order.OrderType == model.OrderTypeMatter { - var ( - db = dao.GetDB() - ) - goods, err := dao.QueryOrders(db, order.VendorOrderID, -1, []int{model.VendorIDJX}, -1, utils.ZeroTimeValue, utils.ZeroTimeValue) - if err != nil || len(goods) == 0 { - return err - } - order.WaybillVendorID = model.VendorIDJDWL - dao.UpdateEntity(db, order, "WaybillVendorID") - orderSkus := goods[0].Skus - if order.Weight <= splitMatterOrderMinWeight { //2020-04-26, 从5kg 改为小于4.5kg - var ( - goodsNos []string - prices []string - quantities []string - countSum int - ) - for _, v := range orderSkus { - skus, err := dao.GetSkus(db, []int{v.SkuID}, nil, nil, nil, nil) - if err != nil || len(skus) == 0 { - continue - } - goodsNos = append(goodsNos, skus[0].EclpID) - prices = append(prices, "0") - quantities = append(quantities, utils.Int2Str(v.Count)) - countSum += v.Count - } - //总订单不足3kg && 商品数量不足3个 && 五香粉有库存,要送五香粉,补足3个 - stockResult, err := api.JdEclpAPI.QueryStock(jxwxfMatterEclpID) - if err == nil && len(stockResult) > 0 && stockResult[0].UsableNum > 0 { - if order.Weight < 3000 && countSum < 3 { - //要判断他本身买没买五香粉EMG4418113943423 - var index = 9999 - for k, v := range goodsNos { - if v == jxwxfMatterEclpID { - index = k - } - } - //说明他买了五香粉 - if index != 9999 { - quantities[index] = utils.Int2Str(utils.Str2Int(quantities[index]) + 3 - countSum) - } else { - goodsNos = append(goodsNos, jxwxfMatterEclpID) - prices = append(prices, "0") - quantities = append(quantities, utils.Int2Str(3-countSum)) - } - } - } - result, err := api.JdEclpAPI.AddOrder(&jdeclpapi.AddOrderParam{ - IsvUUID: order.VendorOrderID, - IsvSource: jdeclpapi.IsvSource, - ShopNo: jdeclpapi.ShopNo, - DepartmentNo: jdeclpapi.DepartmentNo, - ShipperNo: jdeclpapi.ShipperNo, - WarehouseNo: jdeclpapi.WarehouseNo, - SalesPlatformOrderNo: order.VendorOrderID, - SalePlatformSource: jdeclpapi.SalePlatformSource, - ConsigneeName: order.ConsigneeName, - ConsigneeMobile: order.ConsigneeMobile, - ConsigneeAddress: order.ConsigneeAddress, - OrderMark: jdeclpapi.OrderMark, - GoodsNo: strings.Join(goodsNos, ","), - Price: strings.Join(prices, ","), - Quantity: strings.Join(quantities, ","), - }) - if err != nil { - return err - } - order.EclpOutID = result - dao.UpdateEntity(db, order, "EclpOutID") - waybill := &model.Waybill{ - VendorOrderID: order.VendorOrderID, - OrderVendorID: model.VendorIDJX, - VendorWaybillID: order.EclpOutID, - WaybillVendorID: model.VendorIDJDWL, - Status: model.WaybillStatusDelivering, - WaybillCreatedAt: time.Now(), - StatusTime: time.Now(), - WaybillFinishedAt: utils.DefaultTimeValue, - DeliveryFlag: model.OrderDeliveryFlagMaskScheduleDisabled, - } - dao.CreateEntity(db, waybill) - } else { //如果重量超过5kg则需要进行拆单分包,商品分包规则。最后一个包不超过5kg,其他包不超过3kg - outOrders, _, _ := tryToSplitMatterOrder(buildJxOrderInfo(order, orderSkus)) - //以下为仿照CreateOrder,改了一些参数 - for k, v := range outOrders { - v.OrderType = model.OrderTypeMatter - v.FromStoreID = order.FromStoreID - outJxOrder, deliveryAddress, err := generateOrder(jxcontext.AdminCtx, v, order.AddressID, order.FromStoreID, order.UserID, false, nil) - if err != nil { - return err - } - //分包后的子订单ID默认是后面加两位(目前的规则),要改的话要注意取消订单那的判断 - outJxOrder.OrderID = utils.Str2Int64(order.VendorOrderID)*100 + int64(k+1) - checkMatterDeliveryAddress(deliveryAddress) - order2, err2 := jxOrder2GoodsOrder(jxcontext.AdminCtx, outJxOrder, deliveryAddress, order.UserID, false, nil) - if err = err2; err == nil { - order2.FromStoreID = v.FromStoreID - order2.AddressID = order.AddressID - order2.Status = model.OrderStatusDelivering - err = partner.CurOrderManager.OnOrderNew(order2, model.Order2Status(order2)) - orderSolutionForWuLiao(order2) - } - } - //刷新一下库存 - for _, v := range goods[0].Skus { - cms.RefreshMatterStock(jxcontext.AdminCtx, v.SkuID) - } - } - for _, v := range order.Skus { - if bagSkuMap[v.SkuID] != 0 { - stores, _ := dao.GetStoreList(db, []int{order.FromStoreID}, nil, nil, nil, nil, "") - if len(stores) > 0 { - store := stores[0] - store.IsBoughtMatter = model.YES - dao.UpdateEntity(db, store, "IsBoughtMatter") - } - } - } - } + //TODO 2021-10-21 物料暂时不发京东配送,后续如果要发把下面注释放开就行了 + //if order.OrderType == model.OrderTypeMatter { + // var ( + // db = dao.GetDB() + // ) + // goods, err := dao.QueryOrders(db, order.VendorOrderID, -1, []int{model.VendorIDJX}, -1, utils.ZeroTimeValue, utils.ZeroTimeValue) + // if err != nil || len(goods) == 0 { + // return err + // } + // order.WaybillVendorID = model.VendorIDJDWL + // dao.UpdateEntity(db, order, "WaybillVendorID") + // orderSkus := goods[0].Skus + // if order.Weight <= splitMatterOrderMinWeight { //2020-04-26, 从5kg 改为小于4.5kg + // var ( + // goodsNos []string + // prices []string + // quantities []string + // countSum int + // ) + // for _, v := range orderSkus { + // skus, err := dao.GetSkus(db, []int{v.SkuID}, nil, nil, nil, nil) + // if err != nil || len(skus) == 0 { + // continue + // } + // goodsNos = append(goodsNos, skus[0].EclpID) + // prices = append(prices, "0") + // quantities = append(quantities, utils.Int2Str(v.Count)) + // countSum += v.Count + // } + // //总订单不足3kg && 商品数量不足3个 && 五香粉有库存,要送五香粉,补足3个 + // stockResult, err := api.JdEclpAPI.QueryStock(jxwxfMatterEclpID) + // if err == nil && len(stockResult) > 0 && stockResult[0].UsableNum > 0 { + // if order.Weight < 3000 && countSum < 3 { + // //要判断他本身买没买五香粉EMG4418113943423 + // var index = 9999 + // for k, v := range goodsNos { + // if v == jxwxfMatterEclpID { + // index = k + // } + // } + // //说明他买了五香粉 + // if index != 9999 { + // quantities[index] = utils.Int2Str(utils.Str2Int(quantities[index]) + 3 - countSum) + // } else { + // goodsNos = append(goodsNos, jxwxfMatterEclpID) + // prices = append(prices, "0") + // quantities = append(quantities, utils.Int2Str(3-countSum)) + // } + // } + // } + // result, err := api.JdEclpAPI.AddOrder(&jdeclpapi.AddOrderParam{ + // IsvUUID: order.VendorOrderID, + // IsvSource: jdeclpapi.IsvSource, + // ShopNo: jdeclpapi.ShopNo, + // DepartmentNo: jdeclpapi.DepartmentNo, + // ShipperNo: jdeclpapi.ShipperNo, + // WarehouseNo: jdeclpapi.WarehouseNo, + // SalesPlatformOrderNo: order.VendorOrderID, + // SalePlatformSource: jdeclpapi.SalePlatformSource, + // ConsigneeName: order.ConsigneeName, + // ConsigneeMobile: order.ConsigneeMobile, + // ConsigneeAddress: order.ConsigneeAddress, + // OrderMark: jdeclpapi.OrderMark, + // GoodsNo: strings.Join(goodsNos, ","), + // Price: strings.Join(prices, ","), + // Quantity: strings.Join(quantities, ","), + // }) + // if err != nil { + // return err + // } + // order.EclpOutID = result + // dao.UpdateEntity(db, order, "EclpOutID") + // waybill := &model.Waybill{ + // VendorOrderID: order.VendorOrderID, + // OrderVendorID: model.VendorIDJX, + // VendorWaybillID: order.EclpOutID, + // WaybillVendorID: model.VendorIDJDWL, + // Status: model.WaybillStatusDelivering, + // WaybillCreatedAt: time.Now(), + // StatusTime: time.Now(), + // WaybillFinishedAt: utils.DefaultTimeValue, + // DeliveryFlag: model.OrderDeliveryFlagMaskScheduleDisabled, + // } + // dao.CreateEntity(db, waybill) + // } else { //如果重量超过5kg则需要进行拆单分包,商品分包规则。最后一个包不超过5kg,其他包不超过3kg + // outOrders, _, _ := tryToSplitMatterOrder(buildJxOrderInfo(order, orderSkus)) + // //以下为仿照CreateOrder,改了一些参数 + // for k, v := range outOrders { + // v.OrderType = model.OrderTypeMatter + // v.FromStoreID = order.FromStoreID + // outJxOrder, deliveryAddress, err := generateOrder(jxcontext.AdminCtx, v, order.AddressID, order.FromStoreID, order.UserID, false, nil) + // if err != nil { + // return err + // } + // //分包后的子订单ID默认是后面加两位(目前的规则),要改的话要注意取消订单那的判断 + // outJxOrder.OrderID = utils.Str2Int64(order.VendorOrderID)*100 + int64(k+1) + // checkMatterDeliveryAddress(deliveryAddress) + // order2, err2 := jxOrder2GoodsOrder(jxcontext.AdminCtx, outJxOrder, deliveryAddress, order.UserID, false, nil) + // if err = err2; err == nil { + // order2.FromStoreID = v.FromStoreID + // order2.AddressID = order.AddressID + // order2.Status = model.OrderStatusDelivering + // err = partner.CurOrderManager.OnOrderNew(order2, model.Order2Status(order2)) + // orderSolutionForWuLiao(order2) + // } + // } + // //刷新一下库存 + // for _, v := range goods[0].Skus { + // cms.RefreshMatterStock(jxcontext.AdminCtx, v.SkuID) + // } + // } + // for _, v := range order.Skus { + // if bagSkuMap[v.SkuID] != 0 { + // stores, _ := dao.GetStoreList(db, []int{order.FromStoreID}, nil, nil, nil, nil, "") + // if len(stores) > 0 { + // store := stores[0] + // store.IsBoughtMatter = model.YES + // dao.UpdateEntity(db, store, "IsBoughtMatter") + // } + // } + // } + //} return err }