diff --git a/business/jxcallback/orderman/order.go b/business/jxcallback/orderman/order.go index 689189091..bb2c14e79 100644 --- a/business/jxcallback/orderman/order.go +++ b/business/jxcallback/orderman/order.go @@ -1013,9 +1013,10 @@ func SaveJdsOrders(ctx *jxcontext.Context, orderCreatedStart, orderCreatedEnd ti globals.SugarLogger.Errorf("SaveJdsOrders : %v", err) } for _, order := range orders { - partner.CurOrderManager.OnOrderNew(order, model.Order2Status(order)) - noticeMsg := fmt.Sprintf("京东商城新订单,订单号:[%v]", order.VendorOrderID) + // partner.CurOrderManager.OnOrderNew(order, model.Order2Status(order)) + noticeMsg := fmt.Sprintf("京东商城新订单,订单号:[%v] ,将要发到的门店id:[%v] , 门店名:[%v]", order.VendorOrderID, order.StoreID, order.StoreName) ddmsg.SendUserMessage(dingdingapi.MsgTyeText, "DDC5657B43EE11E9A9FF525400E86DC0", "京东商城来新订单了!", noticeMsg) + ddmsg.SendUserMessage(dingdingapi.MsgTyeText, "1439B3E07D3911EA881A525400E86DC0", "京东商城来新订单了!", noticeMsg) } return err } @@ -1108,7 +1109,7 @@ func result2Orders(ctx *jxcontext.Context, result *jdshopapi.AllOrdersResult) (o return orders, err } -func TransferJdsOrder(ctx *jxcontext.Context, vendorOrderID string, storeID int) (err error) { +func TransferJdsOrder(ctx *jxcontext.Context, vendorOrderID string, storeID int) (vendorOrderIDJds string, err error) { globals.SugarLogger.Debugf("jds TransferJdsOrder vendorOrderID: %v, storeID : %v", vendorOrderID, storeID) var ( db = dao.GetDB() @@ -1116,23 +1117,23 @@ func TransferJdsOrder(ctx *jxcontext.Context, vendorOrderID string, storeID int) ) order, err := dao.GetSimpleOrder(db, vendorOrderID) if err != nil || order == nil { - return fmt.Errorf("未查询到该订单!订单号:[%v]", vendorOrderID) + return "", fmt.Errorf("未查询到该订单!订单号:[%v]", vendorOrderID) } if order.Status == model.OrderStatusFinished { - return fmt.Errorf("暂不支持已完成的订单进行转移!") + return "", fmt.Errorf("暂不支持已完成的订单进行转移!") } if order.VendorID != model.VendorIDJDShop { - return fmt.Errorf("暂不支持非京狗的订单进行转移!") + return "", fmt.Errorf("暂不支持非京狗的订单进行转移!") } skus, err := dao.GetSimpleOrderSkus(db, vendorOrderID) if err != nil || order == nil { - return fmt.Errorf("未查询到该订单商品!订单号:[%v]", vendorOrderID) + return "", fmt.Errorf("未查询到该订单商品!订单号:[%v]", vendorOrderID) } //将订单和运单取消 if order.Status == model.OrderStatusDelivering { waybills, err := dao.GetWaybills(db, vendorOrderID) if err != nil || len(waybills) == 0 { - return fmt.Errorf("未查询到该订单对应的运单信息!订单号:[%v]", vendorOrderID) + return "", fmt.Errorf("未查询到该订单对应的运单信息!订单号:[%v]", vendorOrderID) } for _, v := range waybills { if v.Status != model.WaybillStatusCanceled { @@ -1142,12 +1143,12 @@ func TransferJdsOrder(ctx *jxcontext.Context, vendorOrderID string, storeID int) handler := partner.DeliveryPlatformHandlers[waybill.WaybillVendorID] err = handler.Handler.CancelWaybill(waybill, 0, "订单转移被取消") if err != nil { - return err + return "", err } } err = jdshop.ChangeOrderStatus(vendorOrderID, model.OrderStatusCanceled, "订单转移被取消") if err != nil { - return err + return "", err } //重新构建order的数据 storeMaps, err := dao.GetStoresMapList(db, []int{order.VendorID}, []int{order.StoreID}, nil, model.StoreStatusAll, model.StoreIsSyncAll, "", "") @@ -1155,7 +1156,7 @@ func TransferJdsOrder(ctx *jxcontext.Context, vendorOrderID string, storeID int) order.StoreID = storeID order.StoreName = storeMaps[0].StoreName } else { - return fmt.Errorf("未查询到该门店对应的平台信息!门店:[%v]", order.StoreID) + return "", fmt.Errorf("未查询到该门店对应的平台信息!门店:[%v]", order.StoreID) } if len(order.VendorOrderID) > 12 { suffix := utils.Str2Int(order.VendorOrderID[12:len(order.VendorOrderID)]) @@ -1166,6 +1167,15 @@ func TransferJdsOrder(ctx *jxcontext.Context, vendorOrderID string, storeID int) sku.VendorOrderID = order.VendorOrderID order.Skus = append(order.Skus, sku) } + order.Status = model.OrderStatusNew err = partner.CurOrderManager.OnOrderNew(order, model.Order2Status(order)) + vendorOrderIDJds = order.VendorOrderID + return vendorOrderIDJds, err +} + +func SendJdwlForJdsOrder(ctx *jxcontext.Context, vendorOrderID string) (err error) { + order, err := partner.CurOrderManager.LoadOrder(vendorOrderID, model.VendorIDJDShop) + handler := partner.DeliveryPlatformHandlers[model.VendorIDJDWL] + _, err = handler.Handler.CreateWaybill(order, 0) return err } diff --git a/business/partner/delivery/jdeclp/waybill.go b/business/partner/delivery/jdeclp/waybill.go index dabe83115..8887cd55a 100644 --- a/business/partner/delivery/jdeclp/waybill.go +++ b/business/partner/delivery/jdeclp/waybill.go @@ -2,8 +2,10 @@ package jdeclp import ( "fmt" + "time" "git.rosy.net.cn/baseapi/platformapi/jdeclpapi" + "git.rosy.net.cn/baseapi/utils" "git.rosy.net.cn/jx-callback/business/jxutils" "git.rosy.net.cn/jx-callback/business/jxutils/jxcontext" "git.rosy.net.cn/jx-callback/business/model" @@ -46,7 +48,7 @@ func (c *DeliveryHandler) CreateWaybill(order *model.GoodsOrder, maxDeliveryFee if len(stores) == 0 || err != nil { return bill, fmt.Errorf("未查询到该门店! 门店id :[%v]", storeID) } - _, err = api.JdEclpAPI.WaybillReceive(&jdeclpapi.WaybillReceiveParam{ + vendorWaybillID, err := api.JdEclpAPI.WaybillReceive(&jdeclpapi.WaybillReceiveParam{ SalePlat: jdeclpapi.SalePlatSourceDelivery, CustomerCode: jdeclpapi.CustomerCode, OrderID: order.VendorOrderID, @@ -60,8 +62,20 @@ func (c *DeliveryHandler) CreateWaybill(order *model.GoodsOrder, maxDeliveryFee Vloumn: order.Weight, PackageCount: 1, Description: "生鲜", + Aging: 5, }) - // partner.CurOrderManager.OnWaybillStatusChanged(order) + waybill := &model.Waybill{ + VendorOrderID: order.VendorOrderID, + OrderVendorID: model.VendorIDJDShop, + VendorWaybillID: vendorWaybillID, + WaybillVendorID: model.VendorIDJDWL, + Status: model.WaybillStatusDelivering, + WaybillCreatedAt: time.Now(), + StatusTime: time.Now(), + WaybillFinishedAt: utils.DefaultTimeValue, + DeliveryFlag: model.OrderDeliveryFlagMaskScheduleDisabled, + } + dao.CreateEntity(dao.GetDB(), waybill) return bill, err } func (c *DeliveryHandler) CancelWaybill(bill *model.Waybill, cancelReasonID int, cancelReason string) (err error) { diff --git a/controllers/jx_order.go b/controllers/jx_order.go index 271794378..49ae5a1b2 100644 --- a/controllers/jx_order.go +++ b/controllers/jx_order.go @@ -1059,3 +1059,32 @@ func (c *OrderController) GetOrderUserBuyFirst() { return retVal, "", err }) } + +// @Title 京东商城订单转移 +// @Description 京东商城订单转移 +// @Param token header string true "认证token" +// @Param storeID formData int true "转移的门店ID" +// @Param vendorOrderID formData string true "转移的订单号" +// @Success 200 {object} controllers.CallResult +// @Failure 200 {object} controllers.CallResult +// @router /TransferJdsOrder [post] +func (c *OrderController) TransferJdsOrder() { + c.callTransferJdsOrder(func(params *tOrderTransferJdsOrderParams) (retVal interface{}, errCode string, err error) { + err = orderman.TransferJdsOrder(params.Ctx, params.VendorOrderID, params.StoreID) + return retVal, "", err + }) +} + +// @Title 京东商城订单发送京东物流 +// @Description 京东商城订单发送京东物流 +// @Param token header string true "认证token" +// @Param vendorOrderID formData string true "订单号" +// @Success 200 {object} controllers.CallResult +// @Failure 200 {object} controllers.CallResult +// @router /SendJdwlForJdsOrder [post] +func (c *OrderController) SendJdwlForJdsOrder() { + c.callSendJdwlForJdsOrder(func(params *tOrderSendJdwlForJdsOrderParams) (retVal interface{}, errCode string, err error) { + err = orderman.SendJdwlForJdsOrder(params.Ctx, params.VendorOrderID) + return retVal, "", err + }) +} diff --git a/routers/commentsRouter_controllers.go b/routers/commentsRouter_controllers.go index bade9af68..4cf9a19d1 100644 --- a/routers/commentsRouter_controllers.go +++ b/routers/commentsRouter_controllers.go @@ -1242,6 +1242,15 @@ func init() { Filters: nil, Params: nil}) + beego.GlobalControllerRouter["git.rosy.net.cn/jx-callback/controllers:OrderController"] = append(beego.GlobalControllerRouter["git.rosy.net.cn/jx-callback/controllers:OrderController"], + beego.ControllerComments{ + Method: "SendJdwlForJdsOrder", + Router: `/SendJdwlForJdsOrder`, + AllowHTTPMethods: []string{"post"}, + MethodParams: param.Make(), + Filters: nil, + Params: nil}) + beego.GlobalControllerRouter["git.rosy.net.cn/jx-callback/controllers:OrderController"] = append(beego.GlobalControllerRouter["git.rosy.net.cn/jx-callback/controllers:OrderController"], beego.ControllerComments{ Method: "SetOrderPrintStatus", @@ -1251,6 +1260,15 @@ func init() { Filters: nil, Params: nil}) + beego.GlobalControllerRouter["git.rosy.net.cn/jx-callback/controllers:OrderController"] = append(beego.GlobalControllerRouter["git.rosy.net.cn/jx-callback/controllers:OrderController"], + beego.ControllerComments{ + Method: "TransferJdsOrder", + Router: `/TransferJdsOrder`, + AllowHTTPMethods: []string{"post"}, + MethodParams: param.Make(), + Filters: nil, + Params: nil}) + beego.GlobalControllerRouter["git.rosy.net.cn/jx-callback/controllers:OrderController"] = append(beego.GlobalControllerRouter["git.rosy.net.cn/jx-callback/controllers:OrderController"], beego.ControllerComments{ Method: "UpdateOrderWaybillTip",