每晚刷新物料订单状态顺便刷新运单信息

This commit is contained in:
苏尹岚
2020-04-02 09:55:45 +08:00
parent 74cf1d755b
commit ef7ab4cca2

View File

@@ -1261,6 +1261,8 @@ func RefreshAllMatterOrderStatus(ctx *jxcontext.Context) (err error) {
}
dao.Commit(db)
changeOrderStatus(vv.VendorOrderID, model.OrderStatusFinished, "")
getTrackMessagePlusByOrderResult, _ := api.JdEclpAPI.GetTrackMessagePlusByOrder(vv.VendorOrderID)
updateJdWayBillInfo(db, vv, getTrackMessagePlusByOrderResult)
} else {
deliveringCount++
}
@@ -1288,26 +1290,9 @@ func RefreshAllMatterOrderStatus(ctx *jxcontext.Context) (err error) {
changeOrderStatus(v.VendorOrderID, v.Status, "")
} else {
queryOrderStatus, _ := api.JdEclpAPI.QueryOrderStatus(v.EclpOutID)
if len(queryOrderStatus.OrderStatusList) > 0 {
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)
}
}()
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, "")
}
}
getTrackMessagePlusByOrderResult, _ := api.JdEclpAPI.GetTrackMessagePlusByOrder(v.VendorOrderID)
updateMatterOrderStatus(db, v, queryOrderStatus)
updateJdWayBillInfo(db, v, getTrackMessagePlusByOrderResult)
}
}
return err
@@ -1357,54 +1342,63 @@ func GetMatterOrderStatus(ctx *jxcontext.Context, vendorOrderID string) (result
}
}
if len(queryOrderStatus.OrderStatusList) > 0 {
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, 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, "")
}
updateMatterOrderStatus(db, order, queryOrderStatus)
}
if len(getTrackMessagePlusByOrderResult.ResultData) > 0 {
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, 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")
}
updateJdWayBillInfo(db, order, getTrackMessagePlusByOrderResult)
}
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) {
var (
skus = jxOrder.Skus