京东eclp物流对接
This commit is contained in:
@@ -103,6 +103,7 @@ type GoodsOrder struct {
|
||||
InvoiceTaxerID string `orm:"size(32);column(invoice_taxer_id)" json:"invoiceTaxerID"` // 发票纳税人识别码
|
||||
InvoiceEmail string `orm:"size(64)" json:"invoiceEmail"` // 发票邮箱
|
||||
VendorOrgCode string `orm:"size(64)" json:"vendorOrgCode"` // 同一平台下不同的商户代码,如果只有一个,可以为空
|
||||
FromStoreID int `orm:"column(from_store_id)" json:"fromStoreID"` //物料配送门店
|
||||
|
||||
// 以下只是用于传递数据
|
||||
OriginalData string `orm:"-" json:"-"`
|
||||
|
||||
@@ -157,8 +157,8 @@ func GetMyOrderCountInfo(ctx *jxcontext.Context, fromDate, toDate time.Time, sta
|
||||
return countInfo, err
|
||||
}
|
||||
|
||||
func CreateOrder(ctx *jxcontext.Context, jxOrder *JxOrderInfo, addressID int64, createType int) (outJxOrder *JxOrderInfo, err error) {
|
||||
outJxOrder, deliveryAddress, err := generateOrder(ctx, jxOrder, addressID)
|
||||
func CreateOrder(ctx *jxcontext.Context, jxOrder *JxOrderInfo, addressID int64, createType int, fromStoreID int) (outJxOrder *JxOrderInfo, err error) {
|
||||
outJxOrder, deliveryAddress, err := generateOrder(ctx, jxOrder, addressID, fromStoreID)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
@@ -360,7 +360,7 @@ func isTimeInOpTime(openTime1, closeTime1, openTime2, closeTime2 int16, time2Che
|
||||
return false
|
||||
}
|
||||
|
||||
func generateOrder(ctx *jxcontext.Context, jxOrder *JxOrderInfo, addressID int64) (outJxOrder *JxOrderInfo, deliveryAddress *dao.UserDeliveryAddressEx, err error) {
|
||||
func generateOrder(ctx *jxcontext.Context, jxOrder *JxOrderInfo, addressID int64, fromStoreID int) (outJxOrder *JxOrderInfo, deliveryAddress *dao.UserDeliveryAddressEx, err error) {
|
||||
db := dao.GetDB()
|
||||
if jxOrder.StoreID == 0 {
|
||||
return nil, nil, fmt.Errorf("没有指定门店信息")
|
||||
@@ -381,6 +381,14 @@ func generateOrder(ctx *jxcontext.Context, jxOrder *JxOrderInfo, addressID int64
|
||||
if distance := jxutils.Point2StoreDistance(deliveryAddress.Lng, deliveryAddress.Lat, storeDetail.Lng, storeDetail.Lat, storeDetail.DeliveryRangeType, storeDetail.DeliveryRange); distance == 0 {
|
||||
return nil, nil, fmt.Errorf("当前送货地址不在门店%s的配送范围", storeDetail.Name)
|
||||
}
|
||||
//表示此订单为物料配送订单
|
||||
if fromStoreID != 0 {
|
||||
storeDetail2, err2 := dao.GetStoreDetail(db, fromStoreID, model.VendorIDJX)
|
||||
if err = err2; err != nil {
|
||||
return nil, nil, fmt.Errorf("fromStoreID有误,[%v]", fromStoreID)
|
||||
}
|
||||
deliveryAddress.ConsigneeName = storeDetail2.Name
|
||||
}
|
||||
|
||||
// 营业状态及时间检查
|
||||
if storeDetail.Status != model.StoreStatusOpened { // model.StoreStatusDisabled {
|
||||
@@ -571,7 +579,68 @@ func AdjustOrder(ctx *jxcontext.Context, order *model.GoodsOrder, removedSkuList
|
||||
}
|
||||
|
||||
func PickupGoods(order *model.GoodsOrder, isSelfDelivery bool, userName string) (err error) {
|
||||
return changeOrderStatus(order.VendorOrderID, model.OrderStatusFinishedPickup, "")
|
||||
err = changeOrderStatus(order.VendorOrderID, model.OrderStatusFinishedPickup, "")
|
||||
err = orderSolutionForWuLiao(order)
|
||||
return err
|
||||
}
|
||||
|
||||
func orderSolutionForWuLiao(order *model.GoodsOrder) (err error) {
|
||||
if order.FromStoreID != 0 {
|
||||
// var (
|
||||
// goodsNos []string
|
||||
// prices []int
|
||||
// quantities []int
|
||||
// db = dao.GetDB()
|
||||
// )
|
||||
err = changeOrderStatus(order.VendorOrderID, model.OrderStatusDelivering, "")
|
||||
// goods, err := dao.QueryOrders(db, order.VendorOrderID, -1, []int{model.VendorIDJX}, -1, utils.ZeroTimeValue, utils.ZeroTimeValue)
|
||||
// if err != nil || len(goods) == 0 {
|
||||
// return err
|
||||
// }
|
||||
// for _, v := range goods[0].Skus {
|
||||
// skus, err := dao.GetSkus(db, []int{v.SkuID}, nil, nil, nil)
|
||||
// if err != nil || len(skus) == 0 {
|
||||
// continue
|
||||
// }
|
||||
// goodsNos = append(goodsNos, skus[0].EclpID)
|
||||
// prices = append(prices, 0)
|
||||
// quantities = append(quantities, v.Count)
|
||||
// }
|
||||
// result, err := api.JdEclpAPI.AddOrder(&jdeclpapi.AddOrderParam{
|
||||
// IsvUUID: order.VendorOrderID,
|
||||
// IsvSource: jdeclpapi.IsvSource,
|
||||
// ShopNo: jdeclpapi.ShopNo,
|
||||
// DepartmentNo: jdeclpapi.DepartmentNo,
|
||||
// WarehouseNo: jdeclpapi.WarehouseNo,
|
||||
// SalesPlatformOrderNo: order.VendorOrderID,
|
||||
// SalePlatformSource: "",
|
||||
// ConsigneeName: order.ConsigneeName,
|
||||
// ConsigneeMobile: order.ConsigneeMobile,
|
||||
// ConsigneeAddress: order.ConsigneeAddress,
|
||||
// OrderMark: jdeclpapi.OrderMark,
|
||||
// GoodsNo: goodsNos,
|
||||
// Price: prices,
|
||||
// Quantity: quantities,
|
||||
// })
|
||||
// if err != nil {
|
||||
// return err
|
||||
// }
|
||||
// wayBill := &model.Waybill{
|
||||
// VendorOrderID: order.VendorOrderID,
|
||||
// OrderVendorID: model.VendorIDJX,
|
||||
// VendorWaybillID: result.EclpSoNo,
|
||||
// WaybillVendorID: model.VendorIDJD,
|
||||
// CourierName: "京东物流",
|
||||
// CourierMobile: "",
|
||||
// Status: model.WaybillStatusNew,
|
||||
// VendorStatus: utils.Int2Str(model.WaybillStatusDelivering),
|
||||
// WaybillCreatedAt: utils.DefaultTimeValue,
|
||||
// WaybillFinishedAt: utils.DefaultTimeValue,
|
||||
// StatusTime: time.Now(),
|
||||
// }
|
||||
// dao.CreateEntity(db, wayBill)
|
||||
}
|
||||
return err
|
||||
}
|
||||
|
||||
func SelfDeliverDelivering(order *model.GoodsOrder, userName string) (err error) {
|
||||
|
||||
Reference in New Issue
Block a user