每晚刷新物料订单状态顺便刷新运单信息
This commit is contained in:
@@ -1261,6 +1261,8 @@ func RefreshAllMatterOrderStatus(ctx *jxcontext.Context) (err error) {
|
|||||||
}
|
}
|
||||||
dao.Commit(db)
|
dao.Commit(db)
|
||||||
changeOrderStatus(vv.VendorOrderID, model.OrderStatusFinished, "")
|
changeOrderStatus(vv.VendorOrderID, model.OrderStatusFinished, "")
|
||||||
|
getTrackMessagePlusByOrderResult, _ := api.JdEclpAPI.GetTrackMessagePlusByOrder(vv.VendorOrderID)
|
||||||
|
updateJdWayBillInfo(db, vv, getTrackMessagePlusByOrderResult)
|
||||||
} else {
|
} else {
|
||||||
deliveringCount++
|
deliveringCount++
|
||||||
}
|
}
|
||||||
@@ -1288,26 +1290,9 @@ func RefreshAllMatterOrderStatus(ctx *jxcontext.Context) (err error) {
|
|||||||
changeOrderStatus(v.VendorOrderID, v.Status, "")
|
changeOrderStatus(v.VendorOrderID, v.Status, "")
|
||||||
} else {
|
} else {
|
||||||
queryOrderStatus, _ := api.JdEclpAPI.QueryOrderStatus(v.EclpOutID)
|
queryOrderStatus, _ := api.JdEclpAPI.QueryOrderStatus(v.EclpOutID)
|
||||||
if len(queryOrderStatus.OrderStatusList) > 0 {
|
getTrackMessagePlusByOrderResult, _ := api.JdEclpAPI.GetTrackMessagePlusByOrder(v.VendorOrderID)
|
||||||
if queryOrderStatus.OrderStatusList[len(queryOrderStatus.OrderStatusList)-1].SoStatusCode == jdeclpapi.SoStatusCode10034 {
|
updateMatterOrderStatus(db, v, queryOrderStatus)
|
||||||
dao.Begin(db)
|
updateJdWayBillInfo(db, v, getTrackMessagePlusByOrderResult)
|
||||||
defer func() {
|
|
||||||
if r := recover(); r != nil {
|
|
||||||
dao.Rollback(db)
|
|
||||||
panic(r)
|
|
||||||
}
|
|
||||||
}()
|
|
||||||
v.Status = model.OrderStatusFinished
|
|
||||||
dao.UpdateEntity(db, v, "Status")
|
|
||||||
waybills, err := dao.GetWaybills(db, v.VendorOrderID)
|
|
||||||
if err == nil && len(waybills) > 0 {
|
|
||||||
waybills[0].Status = model.WaybillStatusDelivered
|
|
||||||
dao.UpdateEntity(db, waybills[0], "Status")
|
|
||||||
}
|
|
||||||
dao.Commit(db)
|
|
||||||
changeOrderStatus(v.VendorOrderID, model.OrderStatusFinished, "")
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return err
|
return err
|
||||||
@@ -1357,54 +1342,63 @@ func GetMatterOrderStatus(ctx *jxcontext.Context, vendorOrderID string) (result
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
if len(queryOrderStatus.OrderStatusList) > 0 {
|
if len(queryOrderStatus.OrderStatusList) > 0 {
|
||||||
if queryOrderStatus.OrderStatusList[len(queryOrderStatus.OrderStatusList)-1].SoStatusCode == jdeclpapi.SoStatusCode10034 {
|
updateMatterOrderStatus(db, order, queryOrderStatus)
|
||||||
dao.Begin(db)
|
|
||||||
defer func() {
|
|
||||||
if r := recover(); r != nil {
|
|
||||||
dao.Rollback(db)
|
|
||||||
panic(r)
|
|
||||||
}
|
|
||||||
}()
|
|
||||||
order.Status = model.OrderStatusFinished
|
|
||||||
dao.UpdateEntity(db, order, "Status")
|
|
||||||
waybills, err := dao.GetWaybills(db, vendorOrderID)
|
|
||||||
if err == nil && len(waybills) > 0 {
|
|
||||||
waybills[0].Status = model.WaybillStatusDelivered
|
|
||||||
dao.UpdateEntity(db, waybills[0], "Status")
|
|
||||||
}
|
|
||||||
dao.Commit(db)
|
|
||||||
changeOrderStatus(vendorOrderID, model.OrderStatusFinished, "")
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
if len(getTrackMessagePlusByOrderResult.ResultData) > 0 {
|
if len(getTrackMessagePlusByOrderResult.ResultData) > 0 {
|
||||||
var (
|
updateJdWayBillInfo(db, order, getTrackMessagePlusByOrderResult)
|
||||||
waybillCode = getTrackMessagePlusByOrderResult.ResultData[0].WaybillCode
|
|
||||||
cName string
|
|
||||||
cMobile string
|
|
||||||
waybills []*model.Waybill
|
|
||||||
)
|
|
||||||
for _, vv := range getTrackMessagePlusByOrderResult.ResultData {
|
|
||||||
if vv.OpeTitle == "配送员收货" {
|
|
||||||
result := regexpCnameAndCmobile.FindAllStringSubmatch(vv.OpeRemark, -1)
|
|
||||||
cName = result[0][1]
|
|
||||||
cMobile = result[0][2]
|
|
||||||
break
|
|
||||||
}
|
|
||||||
}
|
|
||||||
waybills, err = dao.GetWaybills(db, vendorOrderID)
|
|
||||||
if len(waybills) > 0 {
|
|
||||||
waybills[0].VendorWaybillID = waybillCode
|
|
||||||
waybills[0].CourierName = cName
|
|
||||||
waybills[0].CourierMobile = cMobile
|
|
||||||
order.VendorWaybillID = waybillCode
|
|
||||||
order.WaybillVendorID = model.VendorIDJDWL
|
|
||||||
dao.UpdateEntity(db, order, "VendorWaybillID", "WaybillVendorID")
|
|
||||||
dao.UpdateEntity(db, waybills[0], "VendorWaybillID", "CourierName", "CourierMobile")
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
return result, err
|
return result, err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func updateMatterOrderStatus(db *dao.DaoDB, order *model.GoodsOrder, queryOrderStatus *jdeclpapi.QueryOrderStatusResult) {
|
||||||
|
if queryOrderStatus.OrderStatusList[len(queryOrderStatus.OrderStatusList)-1].SoStatusCode == jdeclpapi.SoStatusCode10034 {
|
||||||
|
dao.Begin(db)
|
||||||
|
defer func() {
|
||||||
|
if r := recover(); r != nil {
|
||||||
|
dao.Rollback(db)
|
||||||
|
panic(r)
|
||||||
|
}
|
||||||
|
}()
|
||||||
|
order.Status = model.OrderStatusFinished
|
||||||
|
dao.UpdateEntity(db, order, "Status")
|
||||||
|
waybills, err := dao.GetWaybills(db, order.VendorOrderID)
|
||||||
|
if err == nil && len(waybills) > 0 {
|
||||||
|
waybills[0].Status = model.WaybillStatusDelivered
|
||||||
|
dao.UpdateEntity(db, waybills[0], "Status")
|
||||||
|
}
|
||||||
|
dao.Commit(db)
|
||||||
|
changeOrderStatus(order.VendorOrderID, model.OrderStatusFinished, "")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func updateJdWayBillInfo(db *dao.DaoDB, order *model.GoodsOrder, getTrackMessagePlusByOrderResult *jdeclpapi.GetTrackMessagePlusByOrderResult) (err error) {
|
||||||
|
var (
|
||||||
|
waybillCode = getTrackMessagePlusByOrderResult.ResultData[0].WaybillCode
|
||||||
|
cName string
|
||||||
|
cMobile string
|
||||||
|
waybills []*model.Waybill
|
||||||
|
)
|
||||||
|
for _, vv := range getTrackMessagePlusByOrderResult.ResultData {
|
||||||
|
if vv.OpeTitle == "配送员收货" {
|
||||||
|
result := regexpCnameAndCmobile.FindAllStringSubmatch(vv.OpeRemark, -1)
|
||||||
|
cName = result[0][1]
|
||||||
|
cMobile = result[0][2]
|
||||||
|
break
|
||||||
|
}
|
||||||
|
}
|
||||||
|
waybills, err = dao.GetWaybills(db, order.VendorOrderID)
|
||||||
|
if len(waybills) > 0 {
|
||||||
|
waybills[0].VendorWaybillID = waybillCode
|
||||||
|
waybills[0].CourierName = cName
|
||||||
|
waybills[0].CourierMobile = cMobile
|
||||||
|
order.VendorWaybillID = waybillCode
|
||||||
|
order.WaybillVendorID = model.VendorIDJDWL
|
||||||
|
dao.UpdateEntity(db, order, "VendorWaybillID", "WaybillVendorID")
|
||||||
|
dao.UpdateEntity(db, waybills[0], "VendorWaybillID", "CourierName", "CourierMobile")
|
||||||
|
}
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
func tryToSplitMatterOrder(jxOrder *JxOrderInfo) (outOrders []*JxOrderInfo, freightPrice int, err error) {
|
func tryToSplitMatterOrder(jxOrder *JxOrderInfo) (outOrders []*JxOrderInfo, freightPrice int, err error) {
|
||||||
var (
|
var (
|
||||||
skus = jxOrder.Skus
|
skus = jxOrder.Skus
|
||||||
|
|||||||
Reference in New Issue
Block a user